自定義標簽,說簡單點也只是一個代碼塊而已。制作這樣的自定義標簽,可以使用此標簽來顯示自己的一個代碼塊。
1、創建標簽類。這個標簽類一般創建在system/tag 目錄之下。
2、修改config/view.php文件,將自定義標稱注冊到系統之中。
[]'tags'=>['system\tag\類名'];這是一個數組,可以注冊多個自定義標簽。
<?php
namespace system\tag;
use hdphp\view\TagBase;
class AutoTab extends TagBase{
/**
* 聲明標簽:用戶自定義的標簽名
* 是一個二維數組
* 一維數組是用戶聲明的標簽名
* 二維是聲明的標簽的基本屬性
* 標簽基本屬性
* block:0 為行標簽;1 為塊標簽
* level:塊標簽屬性,只有block=1時才設置,是最多的嵌套層數
*/
public $tags = [
//'test' => ['block' => 1, 'level' => 4]
'autoTab' => ['block' => 0]
];
/**
* _autoTab:方法名與標簽名前加下劃線
* @param $attr 標簽屬性集合;標簽內書寫的標簽屬性,如row/name/id/class
* 上述這些屬性會以集合方式返回到此參數之中。因此,可以設置收集哪些參數。
* @param $content 標簽嵌套內容,塊標簽才有值;塊標簽體內包含的所有內容
* @param $view 視圖服務對象
*
* 同名方法內的返回內容就是此標簽的顯示內容。所以,此方法最終要返回一段php代碼。
* 并且,此方法返回的php代碼會被編譯器編譯成臨時文件存在。
*/
//public function _test($attr, $content, &$view){
//return 'this is _autoTab mothed';
//}
/**
* 1、參數和塊標簽是一樣的,只是第2參數沒有值;
* 2、首先要接收第1參數,即標簽內屬性傳來的值
* 3、基本設想:傳入一個標準二維數組,以表格形式自動創建表格
* 4、二維數組由屬性from來獲取
*/
public function _autoTab($attr, $content, &$view){
//當傳入數據,并且數據條數大于0
if(isset($attr['from']) && count($attr['from'])>0){
$dArray=$attr['from'];
}else{
return '沒有數據!';
}
return '此處要返回一個字符串,其中是php代碼塊';
}
}