logo星之书笔记

WienDesign | 左手代码,右手诗词

avatar

网名:Oliver Wien | 奥利弗·韦恩

职业:Web前端设计师、网页设计

现居地:陕西省-西安市-雁塔区

Phone:+86 182 2052 3738

Email:oliverwien@126.com

标签云功能_ThinkCMF

自定义函数

函数按照场景分可以分成以下三大类

核心库函数 文件路径在simplewind/cmf/下,这部分函数考虑后期核心升级不建议做修改。

自定义全局应用库函数,可以自行创建如/app/common.php

自定义应用级库函数,文件路径在/app/应用名/service/下,针对当前应用的一些自定义函数创建在这边。

先写一个获得所有文章标签的tags()函数:

public static function tags()
{
    $portalTagModel = new PortalTagModel();
    $tags = $portalTagModel->alias('tag')->select();
    return $tags;
}

所以我们来单独创建一个文件,将ApiService.php复制粘贴,重命名为PortalService.php

最终代码如下:

< php
namespace app\portal\service;

use app\portal\model\PortalPostModel;
use app\portal\model\PortalCategoryModel;
use app\portal\model\PortalTagModel;
use think\Db;

class PortalService
{

     /**
     * 返回指定所有标签
     */
    public static function tags()
    {
        $portalTagModel = new PortalTagModel();
        $tags = $portalTagModel->alias('tag')->select();
        return $tags;
    }

}

编辑、引入config.html文件:

文件位置:.\ThinkCMFX\themes\simpleboot3\public\config.html

<php>
    use app\portal\service\PortalService;
</php>

模板中需要引入config.html文件,当然你也可以在head位置引用

<include file="public@config"/>

前端模板用法:

<!-- 标签云 -->
<php>$tags=PortalService::tags();</php>
<div class="tags">
    <div class="head-title">
      <h3>标签云</h3>
    </div>
    <volist name="tags" id="vo" length="15" >
    <a class="tag-link">{$vo.name}</a>
    </volist>
</div>

以上的方式就可以将文章标签循环输出。

当然,你也可以做的更复杂一点,比如标签带上搜索,点击可以显示与此标签有关的文章。

Comments 0

0.215174s