将以下代码保存 放入 dayrui/app/tag/config/Hooks.php  (没有就新建一个)

我是通过内容发布之后的钩子来直接修改数据表的  所以需要先安装tag插件 然后 模块配置里开启自动存储关键词

<?php

\Phpcmf\Hooks::on('module_content_after', function($data) {
	$table = SITE_ID.'_tag';
	$table2 = \Phpcmf\Service::M()->prefix.SITE_ID.'_tag';
	$catid = $data['1']['catid'];
	$tag = $data['1']['keywords'];
	$module = APP_DIR;
    if (!\Phpcmf\Service::M()->db->fieldExists('catid', $table2)) {
    	\Phpcmf\Service::M()->query('ALTER TABLE `'.$table2.'` ADD `catid` INT(10) NOT NULL COMMENT \'栏目id\'');
    }
    if (!\Phpcmf\Service::M()->db->fieldExists('module', $table2)) {
    	\Phpcmf\Service::M()->query('ALTER TABLE `'.$table2.'` ADD `module` varchar(200) NOT NULL COMMENT \'模块名称\'');
    }
    if (!$tag) {
            return;
        }
        $arr = explode(',', $tag);
        foreach ($arr as $t) {
            if ($t) {
                    \Phpcmf\Service::M()->db->table($table)->where('name', $t)->update([
                    'catid' => $catid,'module' => $module]);
            }
        }
});

然后列表显示的话 请修改 dayrui\App\Tag\Views\tag_list.html 保存以下代码

{template "header.html"}

<link href="{THEME_PATH}assets/global/plugins/bootstrap-daterangepicker/daterangepicker.min.css" rel="stylesheet" type="text/css" />
<link href="{THEME_PATH}assets/global/plugins/bootstrap-datepicker/css/bootstrap-datepicker3.min.css" rel="stylesheet" type="text/css" />
<link href="{THEME_PATH}assets/global/plugins/bootstrap-timepicker/css/bootstrap-timepicker.min.css" rel="stylesheet" type="text/css" />
<link href="{THEME_PATH}assets/global/plugins/bootstrap-datetimepicker/css/bootstrap-datetimepicker.min.css" rel="stylesheet" type="text/css" />
<script src="{THEME_PATH}assets/global/plugins/bootstrap-datepicker/js/bootstrap-datepicker.finecms.js" type="text/javascript"></script>

<script type="text/javascript">
    if (App.isAngularJsApp() === false) {
        jQuery(document).ready(function() {
            if (jQuery().datepicker) {
                $('.date-picker').datepicker({
                    rtl: App.isRTL(),
                    orientation: "left",
                    autoclose: true
                });
            }
        });
    }
</script>
<div class="note note-danger">
    <p><a href="javascript:dr_update_cache('tag', '');">{dr_lang('更改数据之后需要更新缓存之后才能生效')}</a></p>
</div>
<div class="row table-search-tool">
    <form action="{SELF}" method="get">
        {dr_form_search_hidden(['pid'=>$pid])}
        <div class="col-md-12 col-sm-12">
            <label>
                <select name="field" class="form-control">
                    {loop $field $t}
                    {if $t.ismain}
                    <option value="{$t.fieldname}" {if $param.field==$t.fieldname}selected{/if}>{$t.name}</option>
                    {/if}
                    {/loop}
                </select>
            </label>
            <label><i class="fa fa-caret-right"></i></label>
            <label><input type="text" class="form-control" placeholder="" value="{$param['keyword']}" name="keyword" /></label>
        </div>

        <div class="col-md-12 col-sm-12">
            <button type="submit" class="btn green btn-sm onloading" name="submit" > <i class="fa fa-search"></i> {dr_lang('搜索')}</button>
        </div>

        {if $pid}
        <div class="col-md-12 col-sm-12" style="padding-top:2px">
            <a class="btn red btn-sm" href="{dr_url('tag/home/add', ['pid'=>$pid])}"> <i class="fa fa-plus"></i> {dr_lang('添加子词')}</a>
        </div>
        <div class="col-md-12 col-sm-12" style="padding-top:2px">
            <a class="btn blue btn-sm" href="{dr_url('tag/home/all_add', ['pid'=>$pid])}"> <i class="fa fa-plus"></i> {dr_lang('批量子词')}</a>
        </div>
        {/if}

    </form>
</div>


<form class="form-horizontal" role="form" id="myform">
    {dr_form_hidden()}
    <div class="table-scrollable">
        <table class="table table-striped table-bordered table-hover table-checkable dataTable">
            <thead>
            <tr class="heading">
                {if $ci->_is_admin_auth('del')}
                <th class="myselect">
                    <label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
                        <input type="checkbox" class="group-checkable" data-set=".checkboxes" />
                        <span></span>
                    </label>
                </th>
                {/if}
                <th style="text-align:center" width="70" class="{dr_sorting('displayorder')}" name="displayorder">{dr_lang('权重')}</th>
                <th width="220" class="{dr_sorting('name')}" name="name">{dr_lang('名称')}</th>
                <th width="170" class="{dr_sorting('code')}" name="code">{dr_lang('别名')}</th>
                <th width="100" class="{dr_sorting('hits')}" name="hits">{dr_lang('点击量')}</th>
                <th width="100" class="{dr_sorting('hits')}" name="hits">{dr_lang('模块')}</th>
                <th width="100" class="{dr_sorting('hits')}" name="hits">{dr_lang('栏目')}</th>
                {if $chinaz_tag_api}
                <th>{dr_lang('排名')}</th>
                {/if}
                <th>{dr_lang('操作')}</th>
            </tr>
            </thead>
            <tbody>
            {loop $list $t}
            <?php
            $t['url'] = isset($t['myurl']) && $t['myurl'] ? $t['myurl'] : \Phpcmf\Service::L('router')->tag_url($t['pcode']);
            $t['total'] = intval(\Phpcmf\Service::L('cache')->get('tag-'.SITE_ID, $t['code'], 'total'));
            ?>
            <tr class="odd gradeX" id="dr_row_{$t.id}">
                {if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
                <td class="myselect">
                    <label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
                        <input type="checkbox" class="checkboxes" name="ids[]" value="{$t.id}" />
                        <span></span>
                    </label>
                </td>
                {/if}
                <td style="text-align:center"> <input type="text" onblur="dr_ajax_save(this.value, '{dr_url('tag/home/order_edit', ['id'=>$t.id])}')" value="{$t.displayorder}" class="displayorder form-control input-sm input-inline input-mini"> </td>
                <td>{Function_list::title($t.name, $param, $t)}</td>
                <td>{$t.code}</td>
                <td>{$t.hits}</td>
                <td>{$t.module}</td>
                <td>{dr_share_cat_value($t.catid, "name")}</td>
                {if $chinaz_tag_api}
                <td>
                    {loop $chinaz_tag_api $i $name}
                    <p style="margin: 0">{$name} <span id="dr_api_{$i}_{$t.id}">...</span></p>
                    <script>
                        $(function () {
                            $.ajax({
                                type: "GET",
                                dataType: "json",
                                url: "{dr_url('zhanzhang/api/tag')}&id={$i}&tag={$t.name}",
                                success: function (json) {
                                    $('#dr_api_{$i}_{$t.id}').html(json.msg);
                                },
                                error: function(HttpRequest, ajaxOptions, thrownError) {
                                    $('#dr_api_{$i}_{$t.id}').attr('style', 'color:red');
                                    $('#dr_api_{$i}_{$t.id}').html('获取异常,请检查错误日志');
                                }
                            });
                        });
                    </script>
                    {/loop}
                </td>
                {/if}
                <td>
                    {if !$pid}
                    <label><a href="{dr_url('tag/home/index', ['pid'=>$t.id])}" class="btn btn-xs dark"> <i class="fa fa-tag"></i> {dr_lang('子词管理(%s)', $t.total)}</a></label>
                    {/if}
                    {if $ci->_is_admin_auth('edit')}
                    <label><a href="{dr_url('tag/home/edit', ['id'=>$t.id])}" class="btn btn-xs green"> <i class="fa fa-edit"></i> {dr_lang('修改')}</a></label>
                    {/if}
                </td>
            </tr>
            {/loop}
            </tbody>
        </table>
    </div>

         <div class="row fc-list-footer table-checkable ">
             <div class="col-md-5 fc-list-select">
                {if $ci->_is_admin_auth('del') || $ci->_is_admin_auth('edit')}
                <label class="mt-table mt-checkbox mt-checkbox-single mt-checkbox-outline">
                    <input type="checkbox" class="group-checkable" data-set=".checkboxes" />
                    <span></span>
                </label>
                <label><button type="button" onclick="dr_ajax_option('{dr_url($uriprefix.'/del')}', '{dr_lang('你确定要删除它们吗?')}', 1)" class="btn red btn-sm"> <i class="fa fa-trash"></i> {dr_lang('删除')}</button></label>
                {/if}
            </div>
             <div class="col-md-7 fc-list-page">
                 {$mypages}
             </div>
         </div>
</form>

{template "footer.html"}

前台调用的话 可以直接 module=模块名称 catid=栏目id (错了 不能直接接 要用where来接)

{php $where=urlencode("(module='article' and catid=".$t.id.")");}
{tag where=$where num=20 order=rand}
<a href="{$t.url}" title="点击量:{$t.hits}">{$t.name}</a>
{/tag}


文档最后更新时间:2020-05-28 20:49:35
文档作者:九天网络 不会操作怎么办?