PHPCMS V9万能字段增加单选功能,实现多条房产信息调用1个开发商信息等效果

用过PHPCMS V9万能字段的朋友应该知道,万能字段是个非常强大的功能,基本上可以实现任何复杂的字段逻辑调用,比如调用相关文章、调用相关房产信息等等。作者在帮一个客户做房产网站项目开发的时候,需要实现一个在具体房产页面调用开发商相关信息的功能,一般多条房产信息只对应一个开发商,是多对1的关系,然后想到了通过万能字段来实现。

但是在细节处理方面,万能字段的默认调用是多选效果,用户体验不好,容易误选,就是在弹出选择界面的时候,可以同时选择多条信息,那么能不能简单的改下代码从而实现单选效果呢,研究了下是可以的,下面作者在具体的实践总结过后为大家整理了实现的步骤,有需要的朋友可以参考下:

一、添加万能字段

1、在某个具体的模型下面添加一个万能字段,其中” developer “为当前万能字段名,”19″为要调用的数据模型id,这2个根据实际情况进行更改,其他保持默认即可。如果一个模型中需要有多个单选效果,才需要根据实际情况改下radio_value、radio_modelid、radio_desc这3个名字为不重复的名字(和下面admin_content.js里的内容对应)

<div>
<input type='hidden' name='info[developer]' id='radio_value' value='{FIELD_VALUE}'>
<input type='hidden' id='radio_modelid' value='19' />
<label id="radio_desc"></label>
<input type='button' value="请选择" onclick="omnipotent('selectid','?m=content&c=content&a=public_relationlist&modelid=19&tpl=1&valueid=radio_value&descid=radio_desc','添加相关开发商',1)" class="button" style="width:66px;">
</div>

 

PHPCMS V9万能字段增加单选功能,字段设置注意的2个地方

2、设置万能字段作为主表字段(可选),万能字段主要保存的是一个数字,建议改成主表字段,方便在列表页需要万能字段的地方调用,这样如果需要调用万能字段的内容,在{pc:content action=”list”}标签里就不用加moreinfo=”1″这个了,可以减少服务器负荷。万能字段默认是不能作为主表字段的,可以通过这个方法实现:右键(或者F12或者笔记本是Fn+F12)->审查元素->点击“作为主表字段”那个单选框->然后把单选按钮里面的那个”disabled”属性去掉就可以了

PHPCMS V9万能字段增加单选功能,字段设置作为主要字段

 

二、添加处理方法

1、添加处理方法,在文件\phpcms\modules\content\content.php的public_relationlist()方法里面,做如下更改:

include $this->admin_tpl('relationlist');

更改为

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

<script language="javascript" type="text/javascript" src="<?php echo JS_PATH?>styleswitch.js"></script>

下面增加如下脚本调用

<script language="javascript" type="text/javascript" src="<?php echo MY_JS_PATH?>admin_content.js"></script>

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]); }
PHPCMS V9万能字段增加单选功能,后台编辑页面最终显示效果

四、前台模板里面调用开发商数据参考:

{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万能字段单选”即可获取

相关推荐