用过PHPCMS V9万能字段的朋友应该知道,万能字段是个非常强大的功能,基本上可以实现任何复杂的字段逻辑调用,比如调用相关文章、调用相关房产信息等等。作者在帮一个客户做房产网站项目开发的时候,需要实现一个在具体房产页面调用开发商相关信息的功能,一般多条房产信息只对应一个开发商,是多对1的关系,然后想到了通过万能字段来实现。
但是在细节处理方面,万能字段的默认调用是多选效果,用户体验不好,容易误选,就是在弹出选择界面的时候,可以同时选择多条信息,那么能不能简单的改下代码从而实现单选效果呢,研究了下是可以的,下面作者在具体的实践总结过后为大家整理了实现的步骤,有需要的朋友可以参考下:
一、添加万能字段
1、在某个具体的模型下面添加一个万能字段,其中” developer “为当前万能字段名,”19″为要调用的数据模型id,这2个根据实际情况进行更改,其他保持默认即可。如果一个模型中需要有多个单选效果,才需要根据实际情况改下radio_value、radio_modelid、radio_desc这3个名字为不重复的名字(和下面admin_content.js里的内容对应)
更改为
if(trim($_GET['tpl']) == "1" ) {
$valueid = $_GET['valueid'];
$descid = $_GET['descid'];
include $this->admin_tpl('relationlist_radio');
}else{
include $this->admin_tpl('relationlist');
}
2、在\phpcms\modules\content\templates增加模板relationlist_radio.tpl.php,模板内容是参考复选效果模板改写的,内容比较长,后面作为附件贴出来
三、解决第二次编辑不显示初始数据的问题。
1、在网站的后台模板里面包含以下文件即可admin_content.js,内容作为附件贴出。具体添加位置:\phpcms\modules\admin\templates\header.tpl.php
下面增加如下脚本调用
admin_content.js 里主要是初始化数据的,如果有多个单选效果,可以复制多个就可以了
2、增加获取初始数据的方法,在\phpcms\modules\content\content.php里增加方法如下:
public function public_getjson_id() {
$modelid = intval($_GET['modelid']);
$id = intval($_GET['id']);
$this->db->set_model($modelid);
$r = $this->db->get_one(array('id'=>$id));
echo json_encode($r[title]);
}
四、前台模板里面调用开发商数据参考:
{php $sql = ” and id = ‘$developer’ “}
{pc:content action=”lists” catid=”23″ where=”$sql” num=”1″ order=”listorder DESC,inputtime DESC” moreinfo=”1″ return=”developer”}{/pc}
{loop $developer $r}
{$r[title]}
{/loop}
《 PHPCMS万能字段增加单选功能 》插件下载, 微信搜索“太友帮”或者微信号”taiyoubang”关注微信公众号 ,回复关键词“phpcms万能字段单选”即可获取