原始出處 http://www.xoops.org/modules/mediawiki/index.php/Xoops_Blocks
Step 3 – 建立區塊選項
這是一個比較複雜的主題。作對時可以讓你的區塊相當的有彈性。
編輯tutorial/xoops_version.php 並輸入紅色的兩行程式碼:
// Blocks
$modversion['blocks'][1]['file'] = "tutorial_block.php";
$modversion['blocks'][1]['name'] = 'Block for Tutorial';
$modversion['blocks'][1]['description'] = 'This is a Block for the tutorial module';
$modversion['blocks'][1]['show_func'] = "tut_blockList";
$modversion['blocks'][1]['template'] = 'tutorial_block.html';
$modversion['blocks'][1]['edit_func'] = "tut_blockList_edit";
$modversion['blocks'][1]['options'] = 'Hello|1';
第一行是告訴Xoops 哪個函式控制這個區塊的編輯邏輯。這個編輯函式必須在同一個程式檔案裡面,如本範例中就也要在 tutorial_block.php 檔案內。第二行提供區塊選項的預設值。這個範例中區塊有兩個選項,一個選項的預設值是"Hello"另外一個是"1"。區隔預設值的符號是'|'。
打開tutorial/blocks/tutorial_block.php
內容如下:
<?php
function tut_blockList($options){
$block=array();
$block['textOne']=$options[0];
$block['textTwo']=$options[1];
return $block;
}
function tut_blockList_edit($options){
$form = "Option 1: <input type='text' size='9' name='options[0]' value='$options[0]' />";
$form .= "";
$form .= "Option 2: <input type='text' size='1' name='options[1]' value='$options[1]' />";
$form .= "";
return $form;
}
?>
可以看到多了一個函式(tut_blockList_edit)控制區塊選項。第一個函式tut_blockList會接收從xoops 傳來的選項($options)。
幾個必須注意的事項:
- 編輯選項的函式(在本範例中是tut_blockList_edit)必須回傳變數$form。
- $form是字串變數(string)而不是陣列變數(array)。
- 你可以建立任意數目個選項。
- Xoops 會將選項的值存在資料庫而不需要你手動新增表格儲存。
- $form必須有名稱為'options'的表單元件。
- options索引起始值必須是0,例如:name='options[0]'。
編輯tutorial/templates/blocks/tutorial_block.html並將程式碼改寫成:
<p>My First option is: <{$block.textOne}></p>
<p>My Second option is: <{$block.textTwo}></p>
好了。我們現在重新安裝tutorial 模組讓Xoops 可以為區塊選項產生需要的改變。
在重新安裝完模組、刪除區塊樣版快取、編輯區塊選項值後,打開區塊管理介面,確定我們可以在網站前端看到tutorial 模組區塊。點選區塊旁邊的編輯連結你會看到兩個選項;一個選項的值是'Hello'另外一個是'1'。將'Hello'改成'I like Xoops'而'1'改成'5',然後到網站前端看看吧。