Cd Chen's Services

ba ba ba la~~

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