转:fastadminCMS 使用心得技巧

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\\THs',###" /}"
            }
        </script>
        {/if}

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

Fastadmin常用到的知识点记录

一、时间搜索:

{field: 'xieche_time', title: __('Xieche_time'), operate:'RANGE', addclass:'datetimerange', formatter: Table.api.formatter.datetime},

复制代码二、搜索中不显示:operate:false

{field: 'addtime', title: __('Addtime'), operate:false},

复制代码三、between搜索

{field: 'gai_yunfei', title: __('Gai_yunfei'), operate:'BETWEEN'},

复制代码四、页面中隐藏

visible:false

复制代码五、传递参数

data-params='{"custom[is_del]":"0"}'

复制代码六、弹窗大小
在js中设置

$(".btn-edit,.btn-add,.btn-editone").data("area", ["100%","100%"]);

复制代码七、模糊搜索

operate: 'LIKE %...%', placeholder: '关键字,模糊搜索'

//禁用默认搜索

search: false,

//启用普通表单搜索

commonSearch: true,

//可以控制是否默认显示搜索单表,false则隐藏,默认为false

searchFormVisible: false,

唯一搜索设置字段

$searchFields = ['chehao','id'];

list($where, $sort, $order, $offset, $limit) = $this->buildparams($searchFields);

复制代码八、搜索里面添加selectpage

var table = $("#table");

// table.on('common-search.bs.table', function (event, table, params, query) {

// //这里可以对params值进行修改,从而影响搜索条件

// });

//在普通搜索渲染后

table.on('post-common-search.bs.table', function (event, table) {

$("input[name='shifa_id']").addClass("selectpage").data("source", "kuangdian/index");

$("input[name='xie_addr_id']").addClass("selectpage").data("source", "xiehuodian/index");

$("input[name='xianlu']").addClass("selectpage").data("source", "xianlu/index");

$("input[name='depart_id']").addClass("selectpage").data("source", "depart/index").attr("data-field","depart_name");

Form.events.cxselect($("form", table.$commonsearch));

Form.events.selectpage($("form", table.$commonsearch));

});

复制代码九、下拉框搜索

{field: 'from_id', title: '数据来源', searchList: {"0":'调度结算',"1":'无磅单数据',"2": '司机宝导入', "3": '货速运导入'}, operate: 'FIND_IN_SET', formatter: Table.api.formatter.normal,visible:false},

复制代码十、批量操作

$(".btn-qiyong").on("click", function (e) {

var url = $(this).data('url');

var temp=table.bootstrapTable('getSelections');

var arr = [];

$.each(temp,function (i, v) {

arr.push(v.USERID);

})

Fast.api.ajax({

type: 'POST',

url: url,

data: {ids:arr,dis:0},

}, function (data, ret) {

$('.btn-refresh').click();

});

});

复制代码十一、自定义字段显示样式

{

field: 'DISABLE', title: __('Disable'), align: 'left', formatter: function (value, row, index) {

// console.log(row);return;

var str = '';

if (row.DISABLE == 0){

str = '<div class="tdtitle">启用</div>';;

}

if (row.DISABLE == 1){

str = '<div class="tdtitle" style="color: red;">已禁用</div>';;

}

return str;

// return '<div class="tdtitle"><a href="' + row.url + '">' + value + '</a></div>';

}

},

用户名少于3个字符不能登陆,这个如何 修改 ,如果是2个汉字,也就是不能登陆
字符应该按字母算吧,ab 是2个字符,汉字最少2个汉子。
这个问题怎么调整解决

修改user.php
$rule = [ 'username' => 'require|length:3,30', 'password' => 'require|length:6,30', 'email' => 'require|email', 'mobile' => 'regex:/^1\d{10}$/', 'captcha' => 'require|captcha', '__token__' => 'token', ];

每日壁纸

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注