Xoops模組的區塊欄位資料表newblocks裡面除了有儲存設定的options欄位,還有content的text類型欄位,但除了Xoops自訂區塊能夠寫入content以外,模組區塊就只能以陣列方式儲存options欄位,即使能存進去content也讀不出來,原因是modules/system/class/block.php裡面的$edit_form = $edit_func($options);只允許$options傳入,要能讀出content就要修改block.php這才行,方法如下:
略...............
}
1、找到以下檔案用編輯器打開
根目錄/modules/system/class/block.php
找到第221行
$edit_form = $edit_func($options);
修改為,加上紅字的$this
$edit_form = $edit_func($options,$this);
2、修改模組區塊函式block_edit,增加$thisvar傳入
//區塊編輯函式
function 模組ID_block_edit($options,$thisvar){略...............
}
3、讀寫content方法如下:
->要寫入資料庫,欄位name請用name='content_block'
->要讀出content請用$thisvar->getVar('content', 'e')
以上既完成區塊編輯函數(block_edit)也能讀寫content欄位功能開發,實際來測試看看
先在模組區塊中輸入【測試測試測試測試測1352466】
然後儲存,再確認newblocks資料表的content欄位也是有被寫入!!
然後於Xoops的區塊管理->編輯區塊,查看文字框能否讀出寫入的資料,如果能讀出,表示這一整套流程都沒問題,可安心使用。
以上工作心得撰寫,有需要的朋友參考看看
工作心得分享:徐嘉裕 Neil hsu
留言
張貼留言