1. 程式人生 > 其它 >pbootcms通過欄位名稱獲得欄位描述

pbootcms通過欄位名稱獲得欄位描述

剛接觸這個系統,對二次開發還有所不瞭解,特別是如何從資料庫裡呼叫資料。

還好這個系統不是很新,在網上查看了相關程式碼和自己的研究,知道了如何像sql語句一般得到資料。

該效果運用在篩選效果比較合適。

1,在ExtLabelController.php新增方法。

路徑:/apps/home/controller/ExtLabelController.php

作用:該檔案的作用之一,是新增新的方法,擴充套件單個標籤。

修改:大約在35行,在“private function test()”的方法下面新增新的方法。

//獲得欄位描述
private function getfieldsdescription()
{	
	$pattern = '/\{getfieldsdescription\s?\(([^\}]+)\)\}/';
	if (preg_match($pattern, $this->content, $matches)) {
		$this->content = preg_replace_callback(
		$pattern,
		function($matches){
			$extfield = $matches[1];
			$result = \core\basic\Db::table('ay_extfield')->field('description')->where("name='". $extfield ."'")->find();
			$value = $result->description;
			return $value;
					
		},
		$this->content);
	}
}

  

然後在run()方法裡面執行該方法

/* 必備啟動函式 */
    public function run($content)
    {
        // 接收資料
        $this->content = $content;
        
        // 執行個人自定義標籤函式
        $this->test();
		$this->getFieldsDescription();
        
        // 返回資料
        return $this->content;
 }

  

最後在模板上新增程式碼。

{getfieldsdescription(*)} 即為該標籤,*處填寫欄位名稱。

標籤的程式碼使用,參考如下程式碼:

<div class="xmf-c z2 cssulv">
	<div class="xmf-d s16">{getfieldsdescription(ext_cssulv)}</div>
	<div class="xmf-select s14">
		<input type="text" class="cur" data-id="90" placeholder="請選擇">
		<div class="xmf-list">
			<label class="xmf-label">{pboot:selectall field=ext_cssulv}</label> 
			{pboot:select field='ext_cssulv'}
			<label class="xmf-label"><a title="[select:value]" href="[select:link]">
				<input type="checkbox" {pboot:if('[select:value]'=='[select:current]')} checked="" {/pboot:if} class="xmf-checkbox">
				<span class="xmf-name s14">[select:value]</span>
			</a></label>
			{/pboot:select}
		</div>
	</div>
</div>