cms中是如何读取字段的,以及如何展现的?

读取字段信息

\addons\cms\library\Service.php

 /**
     * 获取指定类型的自定义字段列表,
     */
    public static function getCustomFields($source, $source_id, $values = [], $conditions = [])

在html渲染字段

  1. {cms:diyform name="fieldslist" /}
    这段的话分析是,diyform标签,传入了变量fieldslist
    标签位置:\addons\cms\taglib\Cms.php,标签的作用
public function tagDiyform($tag)
    {
        return '{$__DIYFORM__.' . $tag['name'] . '}';
    }

标签的作用是,返回$fieldslist变量。

在\addons\cms\controller\Diyform.php的post方法中。定义了$fields的值。准确的来说,应该是一个模板替换后的字符串。
 $fields = DiyformModel::getDiyformFields($diyform['id'], $diydata->toArray());
        $data = [
            'fields' => $fields
        ];
        $diyform['fieldslist'] = $this->fetch('common/fields', $data);

其中$__DIYFORM__是控制里定义的好的数据对象。

大概数据如下:
![](https://img2020.cnblogs.com/blog/1515769/202010/1515769-20201016155706559-1204624297.png)

文件\addons\cms\controller\Diyform.php
在初始化的时候定义的,  $this->view->assign("__DIYFORM__", $diyform);
  1. 其中fieldslist是变量名
  2. 引用了一个模板 模板位置 addons\cms\view\default\common\fields.html
    主要是在这个模板里进行了判断和渲染。
posted @   风意不止  阅读(193)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示