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', ];