ѡ̳

 找回密码
 ע
搜索
查看: 119|回复: 2
打印 上一主题 下一主题

万能字段说明

  [复制链接]

789

主题

1158

帖子

4197

积分

Ա

Rank: 9Rank: 9Rank: 9

积分
4197
跳转到指定楼层
¥
发表于 2019-2-18 14:09:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
phpcms后台内容模块->模型管理->添加字段功能很强大,你只需在phpcms的后台面板进行操作,不用在数据库中手动建表,也不用操作数据库增加或删除字段,添加好了字段和类型,发布内容的时候,表单上自动显示你要的字段和类型,这样方便了很多,包括表单验证,排序等所有功能都做好了。
phpcms还提供了一个字段叫万能字段,用户可以自定义字段的更多功能。

设置自定义表单:
<input type='text' name='info[game_swf]' value='{FUNC(show_date~~{FIELD_VALUE})}'>
比如这里有个文本框,我需要在填写表单的时候,框子中默认显示一个路径,/yx/swf/201312/,然后后面内容再人工填写,所以只能选择phpcms里的万能字段,但是value里面不能写{php …}这样的形式,也不能用<?php … ?>语法,它都会给你过滤掉。
这个时候要用到phpcms提供的一个调用函数的方式,语法是{FUNC(function~~params)},这样就可以调用自定义的php方法了,function是函数名,两个~~后面接着是参数。
比如我在phpcms扩展函数文件extension.func.php里添加了函数:
/**
* game_swf万能字段判断如果添加的时候默认显示/yx/swf/201306/
*/
function show_date($field){
    if(''==$field){
        return '/yx/swf/'.date("Ym").'/';
    }else{
        return $field;
    }
}


它的功能是传入当前万能表单字段名:game_swf 的value值{FIELD_VALUE},如果为空则显示’/yx/swf/’.date(“Ym”).’/’,否则编辑的时候就原样显示。这样就解决了问题。
这也是万能字段万能的所在。

使用方法二:
<select name='info[huodong]'   >
<option value='0' >请选择活动</option>

{FUNC(select_huodong~~{FIELD_VALUE})}

</select>

使用方法三

可以关联其他万能附属字段,附属字段不会显示  只会在万能字段的表单里面显示
比如新增了另外两个字段wangneng_a wangneng_b 则可以这样调用。
{wangneng_a} ,  <p> {wangneng_b} </p>

回复

使用道具 举报

789

主题

1158

帖子

4197

积分

Ա

Rank: 9Rank: 9Rank: 9

积分
4197
ɳ
 楼主| 发表于 2019-2-19 11:52:19 | 只看该作者
{FUNC(select_huodong~~{FIELD_VALUE})}
参数可以写的有: {FIELD_VALUE} 当前字段值 ,{MODELID} 当前模型id,    {ID},当前表的id.(默认的不支持需要改)
还可以填写 ‘Y-m-d’,   ‘###’ 等字符。 只支持一个参数 但可以写在一起,函数里面区分。
回复

使用道具 举报

789

主题

1158

帖子

4197

积分

Ա

Rank: 9Rank: 9Rank: 9

积分
4197
 楼主| 发表于 2019-2-19 13:40:42 | 只看该作者
admin 发表于 2019-2-19 11:52
{FUNC(select_huodong~~{FIELD_VALUE})}
参数可以写的有: {FIELD_VALUE} 当前字段值 ,{MODELID} 当前 ...

如果要支持参数{ID} 需要改写 phpcms\modules\content\fields\omnipotent\form.inc.php
function omnipotent($field, $value, $fieldinfo) {
   extract($fieldinfo);
   $formtext = str_replace('{FIELD_VALUE}',$value,$formtext);
   $formtext = str_replace('{MODELID}',$this->modelid,$formtext);
后面增加
  $formtext = str_replace('{ID}', $this->id ? $this->id : 0, $formtext);
去掉后面的
        $id  = $this->id ? $this->id : 0;
      $formtext = str_replace('{ID}',$id,$formtext);

然后更新缓存
回复

使用道具 举报

您需要登录后才可以回帖 登录 | ע

本版积分规则

QQ|Archiver|ֻ|С|ѡ̳

GMT+8, 2026-5-2 06:03 , Processed in 0.078003 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表
0.0938s