PHPCMS提供了很多自帶的標簽,很方便在模板中調用,但是也有很多功能是沒有的,需要自定義標簽,本教程講解為何要采用標簽的形式,以及如何自定義PHPCMS標簽和自定義標簽參數,如何調用自定義標簽.
PHPCMS自定義標簽的好處:
1.采用標簽的形式,可以自由用于模板中,方便調用,而且方便重復調用。
2.在模板中使用PHPCMS標簽,生成靜態頁的時候,不用額外在action控制器中賦值,因為直接在模板中解析PC標簽了.
如何自定義PHPCMS標簽
根據PHPCMS自帶的一些標簽,我們可以很簡單的模仿并創造出新的功能,做成標簽的形式,比如內容模型,內容模型的PHPCMS標簽
在/modules/content/classes/content_tag.class.php。打開這個文件,新增的內容模型的標簽可以放在這里,在這個文件進行新加標簽,代碼如下:
- /**
- * 根據標簽顯示相關資訊
- * @param array $data 標簽配置數組
- */
- public function tags_article($data) {
- $tags = $data['tags'];
- $tags = explode('|', $tags);
- $tags = array_unique($tags);
- $tags = array_filter($tags);
- $tags_content_db = pc_base::load_model('tags_content_model');
- $modelid = $data['modelid'] ? $data['modelid'] : 19;
- foreach ($tags as $key => $r) { //開源軟件:Vevb.com
- $re = $tags_content_db->select(array('tagid'=>$r,'modelid'=>$modelid),'*', $data['limit'], 'contentid desc');
- foreach ($re as $id => $content) {
- $result[] = $content;
- }
- }
- return $result;
- }
PHPCMS自定義標簽調用方法,代碼如下:
- {pc:content action="tags_article" tags="$tags" num="6"}
- {loop $data $r}
- <li><span class="fl-rt">{date('m-d',$r['inputtime'])}</span><a href="{$r['url']}" target="_blank" class="link666">{$r['title']}</a></li>
- {/loop}
- {/pc}
- {pc:content action=”tags_article” tags=”$tags” num=”6″}
content表示內容模型,這個標簽是定義在內容模型的標簽類中的,catid是標簽參數,在自定義標簽中也可以自定義標簽參數。通過$data[‘xx’]讀取值,如本例的$data[‘tags’]是自定義的標簽參數。注意public function tags_article($data)不要掉了參數$data.
這僅僅是舉個例子,本例的功能就是根據tagid查找其他相關的內容,每個內容都有tagid對應的標簽.
新聞熱點
疑難解答