CMS 使用记录 从零到搭建两平台 (1)

SMALL 5月前 1015

1、图集调用标签

{volist name="$__ARCHIVES__.imgurls|explode=',',###" id="image"}
 <a href="{$image|str_replace='_m.jpg','_b.jpg',###}" class="productimg">
  <img alt="" src="{$image}" />
 </a>
{/volist}

imgurls 为我后台自定义模型得图集字段

2、移动和pc分开模板(完全参考https://forum.fastadmin.net/thread/2242--感谢@jiangxt 大神)
修改:config.php 配置和修改控制器/controller/Base.php

3、关于自我仓库引用fastadmin仓库便于更新问题
情景1:在我自创一个仓库的清空下,用 git clone https://gitee.com/karson/fastadmin.git 创建在仓库子目录,无法更新到自我仓库,所修改内容页也无法提交
解决方案:直接更新下来 修改.git 为 .git.lock 和 .gitignore 为 .gitignore.lock 让自我仓库不认这两个文件 这样就能正常提交了。下次更新的时候把.git的.lock 删了就可以更新 fastadmin (特别注意:付费插件请更新私有仓库或者修改.gitignore 文件排除)

4、突然内容页 404 用原始路径可以访问,重新再插件管理保存未解决,通过删除伪静态内容页配置,再新加问题解决

5、上传图片加水印
根目录执行:composer require topthink/think-image
注:本地需要同步网站以下文件或目录 /composer.json、/composer.lock、/vendor/composer/、/vendor/topthink/think-image/、/vendor/autoload.php
修改/application/admin/controller/Ajax.php
首先use thinkImage;
再在代码$params 数组下面添加下面两行

$image = \think\Image::open('.'.$uploadDir . $splInfo->getSaveName());
$image->water('./assets/img/logo.png',\Think\Image::WATER_NORTHWEST)->save('.'.$uploadDir . $splInfo->getSaveName());

6、CMS api编辑功能?
注意要点,保存得时候需要把channel_id 一并传给save

$data['row']['model_id'] = $model['id'];
        $data['row']['channel_id'] = $channel_id;
        Db::startTrans();
        try {
            (new \app\admin\model\Archives)->allowField(true)->save($data['row'], ['id'=>$ids]);
            Db::commit();            
        } catch (PDOException $e) {
            Db::rollback();
            $this->error($e->getMessage());
        } catch (Exception $e) {
            Db::rollback();
            $this->error($e->getMessage());
        }
        $this->success('修改成功');

7、 selectpage 下拉前台模型不出来值得情况?
给 frontend.css 添加css 引用
@import url("../libs/fastadmin-selectpage/selectpage.css");
注:也可以在require-frontend.js 添加 include打包,当然这部需要执行 打包命令

8、cms 修改 插件目录的代码不生效?
1、修改后重新启用插件(插件管理)
2、清除缓存

9、cms 文章自动关键词(Keywords)/Tags/描述(Description)/缩略图(Imags)
在addonscmsapplicationadminmodelcmsArchives.php中添加下面代码(注:关键词和tags引用了第三方库 需要在官方群找我要或者自己搜索phpanalysis)

/*
    *自动描述
    */
    protected function setDescriptionAttr($value,$data)
    {
        $description = substr(strip_tags($data['content']),0,255);
        return $value ? $value : trim(preg_replace('/#p#|#e#/','',$description));
    }
    /*
    *自动tags
    */
    protected function setTagsAttr($value,$data){
        if($value)
            return $value;
        $keywords = $data['title'] . $data['title'] . $data['title'] . strip_tags($data['content']);
        vendor('phpanalysis.PHPAnalysisAutoload');
        $pa = new \PhpAnalysis ( 'utf-8', 'utf-8', false );
        $pa->LoadDict ();
        $pa->SetSource ( $keywords );
        $pa->StartAnalysis ( true );     
        $tags = $pa->GetFinallyKeywords(3); // 获取文章中的五个关键字
        return $tags;

    }
    /*
    *自动关键词
    */
    protected function setKeywordsAttr($value,$data){
        if($value)
            return $value;
        $keywords = $data['title'] . $data['title'] . $data['title'] . strip_tags($data['content']);
        vendor('phpanalysis.PHPAnalysisAutoload');
        $pa = new \PhpAnalysis ( 'utf-8', 'utf-8', false );
        $pa->LoadDict ();
        $pa->SetSource ( $keywords );
        $pa->StartAnalysis ( true );     
        $tags = $pa->GetFinallyKeywords(8); // 获取文章中的五个关键字
        return $tags;

    }
    /*
    *自动缩略图
    */
    protected function setImageAttr($value,$data){
        if($value)
            return $value;
        preg_match_all("/(src)=[\"|'| ]{0,}([^>]*\.(gif|jpg|bmp|png))/isU",$data['content'],$img_array);
        $img_array = array_unique($img_array[2]);
        if(count($img_array)>0)
        {
            return substr($img_array[0],strripos($img_array[0],"uploads")-1);
        }
        return '';
    }

10、文章页提供熊掌号:号主页展现

1、需要放在head标签里面  那么我们需要在layout.html 放
2、只对内容页展示:判断$__ARCHIVES__ 对象在输出
3、日期格式需要带T 日期格式得两个反斜杠(\\T) 在这里感谢@开着拖拉机去天安门升国旗-天水
{if isset($__ARCHIVES__)}          
        <script type="application/ld+json">
            {
                "@context": "ziyuan.baidu.com/contexts/cambrian.jsonld",
                "@id": "{cms:archives name="fullurl" /}",
                "appid": "1616365758107605",
                "title": "{cms:config name="cms.title"/} - {cms:config name="cms.sitename"/}",
                "images": ["{cms:archives name="image" /}"],
                "pubDate": "{cms:archives name="createtime|date='Y-m-d\\THms',###" /}"
            }
        </script>
        {/if}

11、tag标签 其它用户组不能填写和修改问题(无权限)
添加菜单规则(cms/tags/selectpage),然后在给用户组给权限
待续。。。。

最后于 1月前 被SMALL编辑 (tags selectpage)
最新回复 (14)
  • F4NNIU 打赏 5月前
    感谢TA
    0 引用 2

    感谢分享,先收藏,持续关注中。

  • likeni 22天前
    感谢TA
    0 引用 3

    请大金牛分享一下第三方库,包括库怎么用么么!!

  • SMALL 楼主 22天前
    感谢TA
    0 引用 4

    @likeni 前端还是什么?

  • likeni 20天前
    感谢TA
    0 引用 5

    @SMALL 是个:9、cms 文章自动关键词(Keywords)/Tags/描述(Description)/缩略图(Imags)
    在addonscmsapplicationadminmodelcmsArchives.php中添加下面代码(注:关键词和tags引用了第三方库 需要在官方群找我要或者自己搜索phpanalysis)

  • SMALL 楼主 18天前
    感谢TA
    0 引用 6

    @likeni 就是phpanalysis git 上有 我只是对它稍加修改

  • likeni 18天前
    感谢TA
    0 引用 7

    @SMALL xiexie

  • qqyule 10天前
    感谢TA
    0 引用 8

    我有个需求,针对每个管理员,在cms不同栏目或列表设置查看和发布权限,就是有的管理员部分栏目后台看不到,请问该怎么实现啊

  • SMALL 楼主 9天前
    感谢TA
    0 引用 9
  • qqyule 8天前
    感谢TA
    0 引用 10

    @SMALL 谢谢,我参考下

  • qqyule 8天前
    感谢TA
    0 引用 11

    TIM截图20181207170336.jpg
    大佬,想把后台cms/archives/index的发布会员这个字段由user_id改成user表的nickname,请问怎么弄grin

  • SMALL 楼主 5天前
    感谢TA
    0 引用 12

    @qqyule 自己关联查询一下

  • 千鸟 5天前
    感谢TA
    0 引用 13

    $image->water('./assets/img/logo.png',\Think\Image::WATER_NORTHWEST)->save('.'.$uploadDir . $splInfo->getSaveName());

    请问 $uploadDir 前为什么要 '.' ??

  • SMALL 楼主 4天前
    感谢TA
    0 引用 14

    @千鸟 . 代表当前目录 ./upload/xxxxx.jpg

  • 千鸟 3天前
    感谢TA
    0 引用 15

    image.png

    use think\Image;

    是不是这样才正确,虽然下面用了静态调用

    最后于 3天前 被千鸟编辑
  • 未登录
    16
返回