跳到主要內容

發表文章

目前顯示的是 8月, 2024的文章

Xoops模組區塊開發-修改block.php讓區塊編輯函數(block_edit)也能讀寫content欄位

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