# cms **Repository Path**: seamanx/cms ## Basic Information - **Project Name**: cms - **Description**: FastCMS,更好的CMS,该项目是TpMeCMS升级版本 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-01-04 - **Last Updated**: 2025-01-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 该CMS是一款基于FastAdmin框架(version:1.5.0.20240328)开发的,FastAdmin基于ThinkPHP5+Bootstrap开发的框架。 ## 界面截图 ![超级管理员才有的设置](https://gitee.com/xiaohe4966/cms/raw/master/public/demo/demo_config.jpg "超级管理员才有的设置") ## 环境要求 操作系统:Linux、Windows、Mac OS Web 服务器:Apache、Nginx PHP 版本:>= 7.2 且 <= 7.4 (推荐 PHP7.4 版本) MySQL 版本:>= 5.6 且 <= 8.0 (需支持 innodb 引擎) ## 下载方法 下载默认直接: `git clone https://gitee.com/xiaohe4966/cms.git` 下载某个分支: `git clone -b 分支名 https://gitee.com/xiaohe4966/cms.git` ## 安装方法 修改网站运行目录为public 修改伪静态!!!修改伪静态!!修改伪静态! 正常Nginx伪静态 ``` location ~* (runtime|application)/{ return 403; } location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php?s=$1 last; break; } } ``` 文件在application/database.php里面修改 //或者在根目录.env里面更改(没有此文件请忽略) 然后安装即可 安装完成,就可以访问了后台地址 域名/h.php 后台地址在public/h.php 可以自行修改文件名即可 cms首页: 打开域名会跳转到/cms/index/index,如果不需要可以自行注释跳转 application/index/controller/Index.php ## 使用流程 安装好框架后 只需要复制表修改表字段(只需要字段) 一键生成后台菜单命令(增删改查) 添加/修改栏目选择表即可(如果数据库表名未修改不用修改) ## 注意事项及说明 * 数据库设计要求 * 字段命名要求https://doc.fastadmin.net/doc/database.html * 使用后台的《在线命令管理》或者用命令php think crud -t 表名生成CRUD时会自动生成对应的HTML元素和组件 * 数据库说明 * xx代表表前缀 * xx_cate CMS栏目的栏目,不能删除(可以添加其他通用字段 * xx_page CMS的单页内容信息,不能删除(可以添加其他通用字段 * xx_user 在原Fastadmin的user表 * xx_admin 登陆后台的账号 * xx_command Fastadmin的一键命令插件记录 * xx_config 网站常规配置就在这里面,在后台可直接添加 * xx_news 列表页的内容,通用都可以复制此表改名改备注即可(列表页面的 deletetime 字段不要删除,用户在后台删除后,可以进入回收站,但前台会看不见,以防误操作) ## 在线演示 http://cms.he4966.cn/cms/index/index ## 配置 微信配置在 后台常规管理->系统配置->微信->设置小程序公众号等资料 ![设置图](https://he4966.cn/uploads/tpmecms/1.png "设置图") 调试模式开启application/config.php // 应用调试模式 'app_debug' => Env::get('app.debug', 1), //或者在根目录.env里面更改(没有此文件请忽略) 数据库配置修改application/database.php里面修改 //或者在根目录.env里面更改(没有此文件请忽略) ## 使用标签 thinkphp5.0 手册(https://www.kancloud.cn/manual/thinkphp5/125005) ### 后台参数标签 ```html {$site.后台添加的字段} {$site.name} //网站名称 {$site.keywords} //网站关键字 {$site.description} //网站描述 {$site.beian} //网站备案号 {$site.logo} //网站logo ...可以自己添加 ``` ### 获取config.php里面的配置 ```html {$Think.config.fastadmin.version} ``` ### 获取栏目名 ```html {tp:cate id="38" type="name"} ``` ### 获取栏目地址链接 ```html {tp:cate id="38" type="url"} ``` //这个url在application/common.php getCateUrl方法里面(可自行修改封装 ### 获取栏目某个字段 ```html {tp:cate id="38" type="字段"} ``` ### 获取栏目里面的 列表数据 ```html {volist name="nav" id="v"} {if $v.id==67} {volist name="$v.childlist" id="v2"}
{$v2.name}
{/volist} {/if} {/volist} ``` ### 🗂️获取列表 参数:id(栏目id),name(变量名 默认$list),pagesize(一页数量),where(条件),limit(每页数量 默认0),order(排序 默认'weigh DESC,id DESC') ```html {tp:list name="list" id="1" limit="3"} //{$list.这个栏目表里面的字段} {$list.title} {$list.image} {$list.url}//这个url在application/common.php 里面的getShowUrl方法里面(可自行修改封装 {/tp:list} ``` ```html 🌹只能在列表页面使用 列表页字带list变量 {volist name="list" id="v"} {$v.title} {/volist} ``` #### 🗂️获取列表加条件 where里面是条件 ```html {tp:list id="61" limit="2" name="v" where="FIND_IN_SET('1', hotdata)"}
{$v.title} {:date('Y-m-d',$v.createtime)}

{$v.description}

{/tp:list} ``` #### 🗂️获取列表加条件 FIND_IN_SET多个 ```html {tp:list id="61" limit="2" name="v" where="FIND_IN_SET('1', hotdata) OR FIND_IN_SET('2', hotdata)"} {/tp:list} ``` #### 🗂️获取新增列表数据示例 ```html {tp:list name="v" id="67" limit="10" where="FIND_IN_SET('1', hotdata) AND cate_id=68"} {$v.title} {/tp:list} ``` ### 循环多级栏目 及 当前栏目高亮 ```html {volist name="nav" id="v"} {if $v.childlist} {else /}
  • {$v.name}
  • {/if} {/volist} ``` 这段代码通过循环遍历和条件判断,动态生成了多级导航菜单。使用了volist标签来循环遍历导航数据。其中name="nav"表示遍历的变量名为nav(导航栏目),id="v"表示将遍历的每个元素赋值给变量v。 在遍历过程中,使用if标签判断当前导航是否有子菜单(childlist),如果有,则将其渲染为下拉菜单。下拉菜单中同样使用了volist标签来遍历子菜单数据。子菜单同样存在是否有子菜单的情况,通过嵌套使用volist标签来实现。 如果导航没有子菜单,则直接渲染为一个普通的导航项。在导航项中,通过if标签判断当前导航项是否为当前选中状态,如果是,则添加class="current"。 ### 列表页分页示例 #### 上一页 ```html {if $page_data['prev_page']}
  • {/if} ``` #### 循环中间页码并高量当前页 ```html {volist name="$page_data['list']" id="v"}
  • {$v.num}
  • {/volist} ``` #### 下一页 ```html {if $page_data['next_page']}
  • {/if} ``` ### 详情页面 #### 上一篇: ```html {if $content.prev}{/if} ``` #### 下一篇: ```html {if $content.next}{/if} ``` ### 非单页面获取单页数据: ```html {tp:page id="52" type="content"} ``` ### 不放a标签点击跳转页面(确定✅页面里有引用过jquery) ```js ``` ### 友情链接 ```html {tp:link limit="20"}
  • {$key+1}.{$link.title}
  • {/tp:link} {tp:link name="v"}
  • {$v.title}
  • {/tp:link} ``` ### 其他说明 ```html 留言地址: /cms/gbook/add 前段页面form表单提交地址可以返回 {if $site.gbook_captcha_switch}
    {/if} 获取当前位置信息 当前位置:首页 {tp:position name="v" cate_id="$cate['id']"} > {$v.name} {/tp:position} 🌹除了首页都有$cate变量(可直接使用) 🌹详情页和单页有$content变量(可直接使用) 🌹搜索地址:/路由?search=搜索的内容 自动搜索该栏目下的内容 示例/news?search=小和 搜索代码application/cms/controller/Cms.php get_cate_art_list2方法 if(isset($params['search']) && !empty($params['search'])){ $where['title|content|seotitle|keywords|description|memo'] = ['like',"%".$params['search']."%"]; unset($where['cate_id']);//如果搜索当前栏目下的列表就注释该代码 } ``` ```html data-area='["80%", "80%"]' 按钮弹窗大小定义 示例 {:__('Add')} ``` ``` 自己添加定时检查链接是否有效 域名+/api/cms/link_check 检测链接是否有效 ``` ## 版本更新日志 2024-03-01 开始立项 2024-05-13 继续开始开发 2024-05-16 完成基本功能 2024-05-17 添加违禁词验证(后台内容可强制添加/编辑 有设置开关,函数bans(违禁词)返回包含的违禁词) 2024-05-22 添加后台超级管理员配置 可隐藏非超级管理员的组或者某个配置字段 2024-05-30 添加后台配置字段crud_copy_switch 可在线命令生成 复制数据按钮 2024-11-28 添加批量移动/复制/编辑字段,根据表含有cate_id自动生成 (方法在👉🏻app\common\controller\Backend) 2024-11-29 添加前台网站生成sitemap功能 /api/cms/update_sitemap ## 代码说明 ## 文件说明 * 标签文件定义 application/common/library/Tp.php * 方法定义 application/common.php * 栏目选择 把空格实体替换成空字符 text = text.replace(/ /g," "); 文件路径 public/assets/libs/fastadmin-selectpage/selectpage.js ## 界面截图 https://he4966.cn/index/product/10.html?cate=9 ![栏目管理](https://he4966.cn/uploads/tpmecms/3.png "栏目管理") ![栏目添加](https://he4966.cn/uploads/tpmecms/4.png "栏目添加") ![栏目添加选择模板](https://he4966.cn/uploads/tpmecms/6.png "栏目添加选择模板") ![栏目添加选择模板](https://he4966.cn/uploads/tpmecms/5.png "栏目添加选择模板") ## 问题反馈 在使用中有任何问题,请加QQ群153073132 请备注CMS ## 特别鸣谢 FastAdmin ## 版权信息 CMS遵循Apache2开源协议发布,并提供免费使用。 本项目包含的第三方源码和二进制文件之版权信息另行标注。