logo

JTBC5.0模块添加字段时自定义名称如何调用?

2025-02-19 点击 5

JTBC5.0模块添加字段时自定义名称如何调用?

建站时,JTBC5.0模块默认字段通常是不够使用的,这时我们会自行添加一些字段,这些字段的名称在系统中有时没有默认值。

我们就需要在添加字段时使用自定义名称。

这个自定义字段名称的调用,系统是默认不支持的。

如果需要调用模块添加字段时的自定义名称,就需要进行二次开发。

实现步骤:

1.前台代码修改

打开文件Public/news/common/diplomat/index.php

添加处理函数

  public function getFieldText($data)
  {
      if(is_array($data)){
          $model = new TinyModel();
          $tableInfos = [];
          foreach ($model -> table -> getTableInfo() as $tableInfo)
          {
              if(Validation::isJSON($tableInfo['comment'])){
                  $texts = JSON::decode($tableInfo['comment']);
                  if(!empty($texts['text'])) $tableInfos[$tableInfo['field']] = $texts['text'];
              }
          }
          foreach ($data as $key => $item)
          {
            if(!empty($tableInfos[$key])) $data[$key.'_text'] = $tableInfos[$key];
          }
      }
     return $data;
  }

说明:字段的自定义名称是存储在字段注释中的,需要查询并处理。

2.修改列表页和详情页输出

同样打开文件Public/news/common/diplomat/index.php

public function list(Request $req, Response $res)

找到

    $result = $renderer -> render($data -> toArray());

修改为

    $result = $renderer -> render($this -> getFieldText($data -> toArray()));


public function detail(Request $req, Response $res)

找到

      $result = $renderer -> render([$rs -> all()]);

修改为

      $result = $renderer -> render([$this -> getFieldText($rs -> all())]);


3.模板中调用

比如新建的字段为name,名称为新闻标题

则模板中调用方法:

{$name_text}:{$name}

4.结束



0%