com_smf 在 php5 上的修改法
今天把 SLBU 網站裝上了 SimpleMachine Forum 1.1rc1,也安裝了來自 JoomlaHacks.com 的 bridge - com_smf。嗯嗯,整體感覺還不錯,不過由於 JoomlaHacks.com 提供的 com_smf 係針對 php4 所開發的,這造成了在 FC4 上會發生類似下列的錯誤訊息:
[client ---------------] PHP Notice: Undefined index: action in /XXXXXXXXXXXXXXXXX/joomla-1.0.2/components/com_smf/smf.php on line 32, referer: http://slbu.cdchen.idv.tw/index.php?option=com_frontpage&Itemid=1
[client ---------------] PHP Notice: Undefined index: action in /XXXXXXXXXXXXXXXXX/joomla-1.0.2/components/com_smf/smf.php on line 32, referer: http://slbu.cdchen.idv.tw/index.php?option=com_frontpage&Itemid=1
在搜遍網路上所有的文章都找不到解決方法之際,我只好靠自己的力量來試試看。結果,我發現 com_smf 寫得很不嚴謹,造成 php5 會一直抱怨,所以在下列幾個地方修改成:
- JOOMLA_HOME/administrator/components/com_smf/admin.smf.php: 263
- 原為:<?php echo $registration_module == smf
- 改為:<?php echo $registration_module == 'smf'
- JOOMLA_HOME/administrator/components/com_smf/admin.smf.php:264
- 原為:<?php echo $registration_module == mambo
- 改為:<?php echo $registration_module == 'mambo'
- JOOMLA_HOME/administrator/components/com_smf/admin.smf.php:265
- 原為:<?php echo $registration_module == cb
- 改為:<?php echo $registration_module == 'cb'
- JOOMLA_HOME/components/com_smf/smf.php:23
- 原為:if ($_GET['action'] == "profile2" ) {
- 改為:if (isset($_GET['action']) && $_GET['action'] == "profile2" ) {
- JOOMLA_HOME/components/com_smf/smf.php:32
- 原為:if(($my->id > 0) && (!$_GET['action'] == 'login2')...
- 改為:if(($my->id > 0) && isset($_GET['action']) && (!$_GET['action'] == 'login2')...
這樣就沒有討厭的提醒訊息了。您也可以試試看!!
這篇內容的 Trackback 網址:
http://cdchen.idv.tw/trackback/144
- cdchen 的 BLOG
- 如果想要發表回應,請先登入 或 註冊。