顯示具有 PHP-Smarty 標籤的文章。 顯示所有文章
顯示具有 PHP-Smarty 標籤的文章。 顯示所有文章

2012年8月13日 星期一

解決 Codeigniter-Smarty 與 Discuz X 2.5 相衝突的問題.


origin: https://github.com/QueenbyeR/blog-text/blob/master/%E8%A7%A3%E6%B1%BA%20Codeigniter-Smarty%20%E8%88%87%20Discuz%20X%202.5%20%E7%9B%B8%E8%A1%9D%E7%AA%81%E7%9A%84%E5%95%8F%E9%A1%8C/page-001.md


目錄環境

  • PHP 5.4
  • Apache 2.2
  • CodeIgniter 2.1.2
  • CodeIgniter-Smarty
  • Discuz X2.5 (2012年4月7日繁體中文UTF8)
  • CodeIgniter 在 /
  • Discuz 在 /bbs/ (程式碼會因路徑而稍微有所不同)

問題

使用 Smarty 時,在各別樣版首次執行時,\smarty_compile_dir 內若無已存在的樣版的話,會造成以下錯誤:
Discuz! System Error
Oops! System file lost: class/smarty/smarty_internal_templatecompilerbase.php

解決

打開 \www\bbs\source\class\class_core.php
找到 throw new Exception('Oops! System file lost: '.$filename);
在前一行加入
    if ( ! strpos($_SERVER['REQUEST_URI'], 'bbs') ) return true;

2012年7月10日 星期二

在 Sublime Text 2 上,啟用 Smarty 語法高亮。



在 Sublime 中,貌似沒有簡單的方式(例如安裝Package或調改setting)能夠啟用 PHP-Smarty 語法高亮;爬了谷歌大神之後,在官方論壇中發現了一點線索
具體作法 (Windows 7):

1. 打開 Package 所在目錄。

Package所在目錄

2. 找到 Packages\HTML\HTML.tmLanguage 檔案

Packages\HTML\HTML.tmLanguage

3. 搜尋 <!-- 字元,你應該會發現有兩處與 Smarty 相關的代碼被註解起來了,解放它們。

4. 下載 Smarty.plist 檔案 (副本)。

5. 變更**副檔名**為 tmLanguage

6. 將 Smarty.tmLanguage 檔案放置到 Sublime text 的 package 目錄中,例如Packages\Smarty\Smarty.tmLanguage

Packages\Smarty\Smarty.tmLanguage

7. 或許預設的 coloru-scheme 不支持 Smarty,所以你可以試試看其它的 Scheme,例如Tomorrow Colour-Scheme

Packages\Smarty\Smarty.tmLanguage
Packages\Smarty\Smarty.tmLanguage
ps:(在預設安裝的 Sublime Text 2 中,你應該只需要以下幾個步驟,就能啟用 Smarty 語法高亮。)