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>

  

posted @ 2022-01-28 12:40  特平庸青年  阅读(504)  评论(1)    收藏  举报