【最全最详细】publiccms使用教程

大家好,我是雄雄,欢迎关注微信公众号:雄雄的小课堂

拉取项目(项目部署阶段)


1.首先需要从gitee中拉取项目,地址为:public cms项目地址 ,在idea中点击文件--》新建--》来自版本控制的项目,输入连接地址,拉取项目

2.打开主项目publiccms-parent,然后开始配置Tomcat8.0启动。

3.在浏览器中输入:http://localhost:8080/publiccms_war/ 直接回车。

4.进入欢迎页面之后就别动了。

5.打开mysql,在数据库中新建一个数据库,名字为publiccms.

6.切换到浏览器中,点击下一步,然后按照操作继续往下。此时项目基本部署完成。

7.进入后台,开始进一步设置:http://localhost:8080/publiccms_war/admin ,默认用户名和密码都是admin

配置项目

站点配置

点击站点--》修改站点--》默认静态化配置--》保存

上传网站的相关素材

点击开发--》网站文件管理--》上传文件--》将本地的压缩包上传上去,然后点击压缩当前目录,

模板创建以及修改

点击文件管理中的模板文件管理,两种方式创建,分别为创建模板和上传模板(如果html文件已经写好了,可以直接上传模板文件)。

上传完模板文件之后,可以==刷新缓存==,然后会发现css以及js、图片都没有进来,这个时候就需要对模板文件进行修改,模板文件中所有在引入js,css和图片的地方,都需要在前面添加**${site.sitePath}**,或者可以直接点击网站文件选择所需要添加的css等文件即可,这样错不了。

修改logo为动态上传

由于logo会被好多页面来使用,所以不用模板的方式更改,直接在站点里面设置。

点击开发,选择配置管理中的站点配置管理,进去找到[site系统配置项],进去之后增加一行,点击保存。

最后点击维护,系统维护里面的站点配置,进入site系统配置项,点击修改配置数据,进去里面就可以上传动态的上传logo了。

在模板中替换logo:

打开模板文件,找到logo的地方,点击上面的模板帮助,然后进去选择配置参数,选择图标。最后将src中的路径替换掉,需要稍微的改改:

<img src=" <@_sysConfigData code='site'>${site.sitePath+object.logo}</@_sysConfigData>" />

分类扩展字段

点击内容,点击分类类型,点击增加分类类型。

该方法主要用于关于我们的页面等。

创建分类的页面

点击开发 ,选择模板 文件管理, 然后选择**创建模板  **,填写完可接受参数外,一定要点击后面的==增加==按钮方可生效 。

动态加载分类菜单

打开开发中的模板文件管理,找到==index.html==,然后找到导航菜单的代码块,直接替换成:

 <ul><li class="right_border"><a href="index.html">网站首页</a></li><#-- parentId:父分类ID,typeId:分类类型ID,allowContribute:允许投稿["true":是,"false":否],pageIndex:页码,pageSize:每页数据条数 -->
<@_categoryList parentId=parentId typeId=typeId allowContribute=allowContribute pageIndex=pageIndex pageSize=pageSize><#list page.list as a><li class="right_border"> <a href="${a.url!}" title="${a.name}">${a.name}</a></li></#list>
</@_categoryList></ul>

或者也可以:点击模板帮助,选择常用指令、方法,选择分类。

制作一些公共的区块

比如网站中的一些公共的部分,头部或者侧边栏,再或者是底部都是共用的,那么就可以把这一块儿的内容提取出来作为一个小模块,别的页面需要用的时候直接引入即可。

下面是操作步骤:

  • 进入开发--》页面片段管理,点击创建页面片段,然后起个名字,比如==Head==

  • 数据条数填写0,因为头部和尾部不需要数据,点击保存

  • 将页面中头部公共部分复制到该页面片段中

  • 切换到index.html中,将公共部分删掉,直接用页面片段替换即可。

  • 代码如下:

    <head><@_includePlace path="/040c12ca-a5b4-4267-af96-39a5bdb64a14.html"/> <#-- Head META --></head>
    

将带文章的分类页面数据换成动态的

1.在分类页面的上面添加代码:

<#assign attribute=getCategoryAttribute(id)/>

2.找到原来放内容的地方 ,写如下代码:

${(attribute.article?no_esc)!}

no_esc是为了避免编译器转义

article是分类扩展里面的带文章分类的字段名

配置分类为静态路径

1.在模板文件中新建一个模板文件

2.在内容--》分类管理--》增加一个分类,相关信息如下:

注意分类访问路径下面选择的是静态路径 ,指定的就是上面分类静态模板化

最后点击分类的时候就进入了静态的分类。

添加其他自定义分类

在添加自定义模板分类之前,需要在模型文件中新建一个模型,比如叫list_pic.html

点击==内容==,选择菜单分类管理,点击增加分类,注意分类访问的路径,一定要修改,修改成自己新建的==模板文件==。

添加子分类

还是在分类管理中,点击增加分类,和创建父分类不一样的地方,就是在此需要选择父分类,因为我们创建的是子分类,需要注意的是,在创建的时候一定要添加==可接收参数id==这个选项,不然就是个静态页面。如下:

在模型文件中,如何获取改分类下的子分类?代码如下:

文件的开头:

<@_category id=id><#assign category=object/>
</@_category>

获取子分类:

 <div class="hot_content"><@_categoryList parentId=category.id><#list page.list as a><div class="hot_content_box"><div class="hot_content_box_title"><img src="${site.sitePath}蓝色政府警务门户网站模板/img/hot_list_ico.png" />${a.name}</div></div></#list></@_categoryList></div>

动态修改网页中的标题或者搜索引擎关键词

在模型文件的最上面添加代码:

<#-- id:分类ID,code:分类编码 -->
<@_category id=id >
<#assign category=object/>
<#-- 参数:分类ID -->
<#assign attribute=getCategoryAttribute(id)/></@_category>

在搜索引擎优化部分修改内容:

<meta http-equiv="X-UA-Compatible" content="IE=edge,Chrome=1"><meta name="renderer" content="webkit"><!--国产浏览器高速模式--><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="author" content="${attribute.author}" /><!-- 作者 --><meta name="revised" content="${attribute.revised}" /><!-- 定义页面的最新版本 --><meta name="description" content="${attribute.description}" /><!-- 网站简介 --><meta name="keywords" content="${attribute.keywords" />

展示动态内容列表

1.新建一个模型文件,为展示内容列表做准备

2.在循环显示动态内容的地方,写如下代码:

<ul><#-- categoryId:分类ID,containChild:包含子分类内容,categoryIds:多个分类ID,modelId:模型ID,parentId:父内容ID,onlyUrl:外链["true":是,"false":否],hasImages:拥有图片列表["true":是,"false":否],hasFiles:拥有附件列表["true":是,"false":否],hasCover:拥有封面图["true":是,"false":否],orderField:排序字段["scores":分数,"comments":评论,"clicks":点击数,"publishDate":发布日期,"checkDate":审核日期,"updateDate":更新日期,默认:排序、发布日期字段倒序],orderType:排序类型["asc":正序,"desc":倒序],pageIndex:页码,pageSize:每页数据条数 -->
<@_contentList categoryId=id  pageIndex=pageIndex pageSize=category.pageSize><#list page.list as a><li><img src="${site.sitePath}蓝色政府警务门户网站模板/img/list_con_ico.png"><a href="${a.url!}">${a.title}</a><span>${a.publishDate?string(yyyy-mm-dd)}</span></li><a href="${a.url!}">${a.title}</a></#list>
</@_contentList></ul>

注意需要修改几个参数:

  • categoryId=id,获取分类的编号

  • pageSize=category.pageSize目的就是为了能在后台可控的去更改列表数量

  • 总记录数:${page.totalCount}

  • 总页数:${page.totalPage}

  • 首页:<a href="?id=${id}">首页</a></li>

  • 上一页:<a href="?id=${id}&&pageIndex=${page.prePage}">《</a>

  • 下一页:<a href="?id=${id}&&pageIndex=${page.nextPage)"}》</a>

  • 末页:<a href="?id=${id}&&pageIndex=${page.totalPage}">末页</a>

一定要级的在该页面中在添加一个参数pageIndex

给分类中添加文章

进入内容中的分类管理,选中需要的添加文章的分类,点击==修改分类==,选择可发布内容模型,然后新增个内容模型,基础的就可以。

新增之后的界面:

设置文章的访问路径:

注意,内容模型里面一定要把正文的复选框勾上:

在publiccms内部查询接口

在浏览器的地址栏中输入:http://localhost:8080/publiccms_war/interface.html,可以返回接口的列表。

比如像查询一下contentList的用法,点击send按钮,就会出来具体的信息。

动态获取文章信息

1.进入内容菜单,点击内容管理,左边选择分类,然后右边就可以添加文章了。

将文章设置成动态

1.在模板文件中,添加文章的模板。

2.在模板的最开头添加如下代码:

<#-- id:内容ID -->
<@_content id=id><#assign content=object/>
<#-- 参数:内容Id -->
<#assign attribute=getContentAttribute(id)/></@_content>

3.正文的替换代码:

 ${(attribute.text?no_esc)!}

本文所有图片均来自publiccms,版权归publiccms方所有。官网地址:http://www.publiccms.com/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

越努力越幸运,三年了!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”今天非常的开心&#xff0c;因为考了三年的驾照终于考完了。在大厅候考的时候&#xff0c;从10.40等到了1.40,坐在下面能看到LED上有自己的名字&#xff0c;但是前面等待的有200多人………

为什么我们要使用Async、Await关键字

前不久&#xff0c;在工作中由于默认&#xff08;xihuan&#xff09;使用Async、Await关键字受到了很多质问&#xff0c;所以由此引发这篇博文“为什么我们要用Async/Await关键字”&#xff0c;请听下面分解&#xff1a; Async/Await关键字 Visual Studio&#xff08;.net fra…

一次惊险的跳槽面试经历(阿里/美团/头条/网易/有赞...)

转载自 一次惊险的跳槽面试经历&#xff08;阿里/美团/头条/网易/有赞...) 每次说因为生活成本的时候面试官都会很惊奇&#xff0c;难道有我们这里贵&#xff1f;好想直接给出下面这张图&#xff0c;厦门的房价真的好贵好贵好贵。。。 面试过程 有兴趣加入阿里的欢迎发简历…

利用bladex+avue实现一对多的关系

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂”今天&#xff0c;记录一篇技术文章吧&#xff0c;也是解决了好久才解决掉的&#xff08;说来也惭愧&#xff09;。涉及技术前端&#xff1a;vue&#xff0c;element ui后端框架&#xff…

.NET中的高性能应用

本文要点 .NET自4.0以来得到了大幅的性能提升&#xff0c;很值得重新考虑一下基于旧版本.NET框架所做的假定。在讨论性能时垃圾回收是个重复出现的主题&#xff0c;它带来了许多CLR和语言的提升&#xff0c;比如引用返回和ValueTask在内存分配上更细粒度度量的性能分析API会成…

利用bladex+avue实现下拉数据源展示

“ 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂???? ”昨天给大家整理了下如何使用bladex实现多表查询的方法&#xff0c;今天我们趁热打铁&#xff0c;顺便看看下拉列表的实现。 需求 我们经常会有这样的需求&#xff0c;…

汇编语言(一)之反转字符串输出

BASED ADDRESSING反转输出 程序运行&#xff1a; 代码&#xff1a; datas segmentstring db BASED ADDRESSING$ count dw $-string-1 ;计算string的长度&#xff0c;$为当前地址&#xff0c;-1为去掉字符串结束符$srcsTip db SRC string:$ dstsTip db 0…

前后端分离项目部署上线详细教程

“ 大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂???? ”今天&#xff0c;给大家分享的是&#xff0c;SpringbootVue项目如何部署上线的详细步骤。 代码编辑器 前端&#xff1a;Webstorm 2021.1.2 后端&#xff1a;IntelliJ …

.Net Core2.0下使用Dapper遇到的问题

今天成功把.Net Framework下使用Dapper进行封装的ORM成功迁移到.Net Core 2.0上&#xff0c;在迁移的过程中也遇到一些很有意思的问题&#xff0c;值得和大家分享一下。下面我会还原迁移的每一个过程&#xff0c;以及在此过程中遇到的问题和处理这些问题的方法。 一、迁移前的…

汇编语言(二)之数值求和

输入一串数字&#xff0c;求和 运行结果&#xff1a; 程序代码&#xff1a; datas segmentx db ? y db ? z db ?xInputPrompt db Enter a number x$ yInputPrompt db 0dh,0ah,Enter a number y$ zOutputPrompt db 0dh,0…

avue中怎样隐藏新增和编辑的按钮

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????”????‍♂️今天给大家分享的技术是&#xff1a;avue中如何设置新增和编辑的按钮隐藏掉。????‍????涉及技术????前端&#xff1a;avue????后端&…

.NET跨平台实践:Linux .Net Core自宿主应用程序瘦身记

一&#xff0c;.NET Core 自宿主应用程序个头有点大 发布.NET Core应用程序有两个方式&#xff0c;一种是“便携式”&#xff0c;一种是“自宿主式”。便携式发布时&#xff0c;目标程序不带.net core运行环境&#xff0c;所以“个头”很小&#xff0c;可能只有几十K几百K字节…

汇编语言(三)之判断数值是否大于42H并统计个数

在内存中一串数值&#xff0c;判断数值是否大于42H并统计个数 程序运行&#xff1a; 代码&#xff1a; datas segmentidata equ 100hnums db idata dup(41h,42h,43h,42h,41h,43h,30h)count dw $-numsup dw 0down dw 0upNumber …

idea打war的问题

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 &#x1f468;‍&#x1f3eb;前言 今天&#xff0c;记录个到现在为止还没搞清的问题&#xff0c;这个问题浪费了我几个小时的时间&#xff0c;基本上昨天晚上…

汇编语言(四)之比较字符串

输入两个字符串&#xff0c;比较字符串是否相同 程序运行&#xff1a; 代码&#xff1a; datas segmentstring1MaxLength db 0ffh,0 string1 db 100h dup(?)string1Number dw 0 string2MaxLength db 0ffh,0 string2 db 100h dup(?) string2Number…

.NET平台微服务项目汇集

最近博客园出现了一篇文章《微服务时代之2017年五军之战&#xff1a;Net PHP谁先死》&#xff0c;掀起了一波撕逼&#xff0c;作者只是从一个使用者的角度来指点江山&#xff0c;这个姿势是不对的。.NET Core就是专门针对模块化的微服务架构而设计&#xff0c;在微服务架构这方…

idea打war包时,JDK版本的问题解决方式

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;????雄雄的小课堂????。”????‍????前言今天&#xff0c;记录个到现在为止还没搞清的问题&#xff0c;这个问题浪费了我几个小时的时间&#xff0c;基本上昨天晚上啥也没干&#xff0…

汇编语言(五)之数组中正数和负数分离

将数组中的正数和负数分离到两个数组 程序运行&#xff1a; 代码&#xff1a; datas segmenta dw -1,2,3,4,-2,-3,5,6,7,8,9,-10,13,15,-5,-24,-36,34,53,-90count dw ($-a)/2p dw 20 dup(?)n dw 20 dup(?)pNumber dw 0…

dotnet使用Selenium执行自动化任务

如果要做百度文库&#xff0c;百度贴吧&#xff0c;百度知道签到&#xff0c;你&#xff0c;会怎么做&#xff1f;前不久我还会觉得这好像太麻烦了&#xff0c;now,soeasy。 自动化测试工具&#xff1a;Selenium Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行…

若依前后端部署之后验证码不显示

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;&#x1f449;雄雄的小课堂&#x1f448;。 最近的几天都在搞publiccms的内容&#xff0c;从0到1实现&#xff0c;在花费了大量精力下&#xff0c;终于将一个门户站完完全全的实现了&#xff0c;且还可以…