在開發Xoops區塊的時候,我們會吧區塊編輯函式(block_edit)的設定值放在options陣列裡面,送出後以字串形式儲存在newblocks資料表的options欄位中,
然後在區塊執行函式(block_show)使用$options陣列來取得設定值,但由於Xoops限制區塊執行函式只能取用options欄位的設定值,其他的像是bid,name,title欄位都是無法取得數值,若是我們需要取用bid來做前台js資料區隔就沒辦法,解決方案只有修改kernel/block.php->$show_func涵式,增加第二傳遞參數功能,吧整個$this都送入$show_func涵式,這樣在模組區塊中就能調用到newblocks資料表全部數值了,方法如下。
1、開啟kernel/block.php檔案,用文字編輯器找到481行
$block = $show_func($options);
2、修改為 $block = $show_func($options,$this);
3、模組區塊執行函式增加第二參數
function 模組ID_block_show($options,$thisvar){
略..........
}
注意:模組區塊執行函式第二參數請勿用$this命名變數
4、如果要取用bid值輸出樣板,$block['bid']=$thisvar->getVar('bid');
5、在模組樣板上使用<{$block.bid}>即可
6、>getVar('可輸入任何newblocks資料表的欄位名稱')
這樣就可以了,複製區塊一樣能抓到數值,有需要的朋友參考看看!!
工作心得分享:徐嘉裕 Neil hsu
留言
張貼留言