[PHPCMS V9二次开发]自定义字段模型-文本组
2017-11-15 15:41
459 查看
PHPCMS V9,我们在做类似于酒店房型等类型的时候,需要用到文本组字段模型,但PHPCMS并未提供该模型。
方法如下:
打开phpcms\modules\content\fields目录,复制文件夹downfiles,并改名为textgroups。
打开phpcms\modules\content\fields\fields.inc.php文件,增加字段类型:
‘textgroups’=>’多文件上传’,
打开phpcms\modules\content\fields\textgroups目录(第一步复制的文件夹),修改以下文件:
form.inc.php
修改input.inc.php
修改的output.inc.php
更新后台缓存。在模型中新建字段,可以看到文本组,创建后就可以添加。
前台调用:
方法如下:
打开phpcms\modules\content\fields目录,复制文件夹downfiles,并改名为textgroups。
打开phpcms\modules\content\fields\fields.inc.php文件,增加字段类型:
‘textgroups’=>’多文件上传’,
打开phpcms\modules\content\fields\textgroups目录(第一步复制的文件夹),修改以下文件:
form.inc.php
function textgroups($field, $value, $fieldinfo) { extract(string2array($fieldinfo['setting'])); $list_str = ''; if($value) { $value = string2array(html_entity_decode($value,ENT_QUOTES)); if(is_array($value)) { foreach($value as $_k=>$_v) { $list_str .= "<div id='textsgroups{$_k}'> <input type='text' name='{$field}_fx[]' value='{$_v[fx]}' style='width:100px;' class='input-text'> <input type='text' name='{$field}_fj[]' value='{$_v[fj]}' style='width:100px;' class='input-text'> <input type='text' name='{$field}_cx[]' value='{$_v[cx]}' style='width:100px;' class='input-text'> <input type='text' name='{$field}_kd[]' value='{$_v[kd]}' style='width:100px;' class='input-text'> <input type='text' name='{$field}_vip[]' value='{$_v[vip]}' style='width:100px;' class='input-text'> <a href=\"javascript:remove_div('textsgroups{$_k}')\">".L('remove_out')."</a></div>"; } } } $string ='<script type=text/javascript> function add_textsfile(returnid) { var ids = parseInt(Math.random() * 10000); var str = "<li id=\'textsgroups"+ids+"\'> <input type=\'text\' name=\'"+returnid+"_fx[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <input type=\'text\' name=\'"+returnid+"_fj[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <input type=\'text\' name=\'"+returnid+"_cx[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <input type=\'text\' name=\'"+returnid+"_kd[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <input type=\'text\' name=\'"+returnid+"_vip[]\' value=\'\' style=\'width:100px;\' class=\'input-text\'> <a href=\"javascript:remove_div(\'textsgroups"+ids+"\')\">Remove</a> </li>"; $(\'#\'+returnid).append(str); }</script>'; $string .= '<input name="info['.$field.']" type="hidden" value="1"> <fieldset class="blue pad-10"> <legend>'.L('mm_fxlist').'</legend><div id="tt"> <input type="text" value="'.L('mm_fx').'" readonly style="width:100px;border:0;" class="input-text"> <input type="text" value="'.L('mm_fj').'" readonly style="width:100px;border:0;" class="input-text"> <input type="text" value="'.L('mm_cx').'" readonly style="width:100px;border:0;" class="input-text"> <input type="text" value="'.L('mm_kd').'" readonly style="width:100px;border:0;" class="input-text"> <input type="text" value="'.L('mm_lyj').'" readonly style="width:100px;border:0;" class="input-text"> </div>'; $string .= $list_str; $string .= '<ul id="'.$field.'" class="picList"></ul> </fieldset> <div class="bk10"></div> '; $string .= $str."<input type=\"button\" class=\"button\" value=\"".L('mm_addfx')."\" onclick=\"add_textsfile('{$field}')\">"; return $string; }
修改input.inc.php
function textgroups($field, $value) { $hotel = $_POST[$field.'_fx']; $hotel_fj = $_POST[$field.'_fj']; $hotel_cx = $_POST[$field.'_cx']; $hotel_kd = $_POST[$field.'_kd']; $hotel_vip = $_POST[$field.'_vip']; $array = $temp = array(); if(!empty($hotel)) { foreach($hotel as $key=>$hote) { $temp['fx'] = $hote; $temp['fj'] = $hotel_fj[$key]; $temp['cx'] = $hotel_cx[$key]; $temp['kd'] = $hotel_kd[$key]; $temp['vip'] = $hotel_vip[$key]; $array[$key] = $temp; } } $array = array2string($array); return $array; }
修改的output.inc.php
function textgroups($field, $value) { return string2array($value); }
更新后台缓存。在模型中新建字段,可以看到文本组,创建后就可以添加。
前台调用:
<table> <tr><th>房型</th><th>房价</th><th>床型</th><th>路游价</th></tr> {loop $fxinfo $v} <!--$fxinfo为字段名称--> <tr><td>{$v[fx]}</td><td>¥{$v[fj]}元</td><td>{$v[cx]}</td><td><strong style="color:#f60;font-size:18px;font-family:Tahoma,Helvetica,Arial,sans-serif;">¥{$v[vip]}</strong>元</td></tr> {/loop} </table>
相关文章推荐
- PHPCMS V9二次开发]自定义字段模型-文本组
- [PHPCMS V9二次开发]自定义字段模型-文本组
- PHPCMS V9二次开发自定义分页函数的方法分享
- PHPCMS V9二次开发便捷自定义后台入口文件夹
- ecshop二次开发 给商品添加自定义字段
- Ecshop二次开发:给商品添加自定义字段(三)
- phpcms V9二次开发之联动菜单筛选 包括box字段的多选 单选 筛选教程
- phpcms v9二次开发之模型类的应用(2)
- phpcms V9二次开发之联动菜单筛选 包括box字段的多选 单选 筛选教程
- PHPCMS V9二次开发自定义分页函数的解决方案
- Anemometer自动审核sql,添加自定义字段,二次开发需要修改的地方
- PHPCMS V9二次开发自定义分页函数的方法
- phpcms v9二次开发之模型类的应用(1)
- PHPCMS V9二次开发自定义后台访问入口
- 如何在dede栏目设置中添加自定义字段(dede二次开发-纯抄贴)
- ecshop二次开发 给商品添加自定义字段
- Ecshop二次开发:给商品添加自定义字段(三)
- ecshop二次开发 给商品添加自定义字段【包含我自己进一步的开发实例详解】
- ecshop二次开发 给商品添加自定义字段
- PHPCMS V9二次开发便捷自定义后台入口文件夹