整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

PHPCMS栏目缓存及栏目缓存在模板中的调用方法

PHPCMS栏目缓存及栏目缓存在模板中的调用方法

HPCMS栏目缓存及栏目缓存在模板中的调用方法很多,以下举例说明。栏目缓存 array($CATEGORY),格式如下:type=0 ,内部栏目,type=1,单网页,type=2 ,外部栏目调用方法:

$CATEGORY[栏目ID]['调用项目'],如$CATEGORY[1][‘url’]即为调用栏目ID为1的栏目的路径。PHPCMS栏目缓存在实际使用中都是动态读取当前栏目的相关信息,其中栏目ID用$catid代码,如调用当前栏目的栏目名称并加上链接:

{$CATEGORY[$catid]['catname']} 如果想调用当前栏目的父栏目名称,即可用:

CATEGORY[$CATEGORY[$catid]['parentid']]['catname']嵌套调用同样也可以使用类似的方法调用该栏目的所有子栏目的相关信息,如对$CATEGORY[$catid]['arrchildid']进行分割为数组,然后循环输出子栏目ID,再通过GET标签这些子栏目的文章信息等。

下面是列举的调用栏目缓存而成的栏目信息变量中文注释:

$CATEGORY[$catid][catid] 栏目id$CATEGORY[$catid][module] 栏目所在的模块$CATEGORY[$catid][type] 栏目类型$CATEGORY[$catid][modelid] 栏目所属模型id$CATEGORY[$catid][catname] 栏目名称$CATEGORY[$catid][style] 栏目名称样式$CATEGORY[$catid][image] 栏目图片$CATEGORY[$catid][catdir] 栏目路径$CATEGORY[$catid][url] 目录url$CATEGORY[$catid][parentid] 栏目的父id$CATEGORY[$catid][arrparentid] 所有上级栏目ID$CATEGORY[$catid][parentdir] 父栏目的路径$CATEGORY[$catid][child] 是否有子栏目$CATEGORY[$catid][arrchildid] 栏目的所有子栏目id$CATEGORY[$catid][items] 栏目信息数$CATEGORY[$catid][ismenu] 栏目是否显示导航$CATEGORY[$catid][catid] 栏目id$CATEGORY[$catid][module] 栏目所在的模块$CATEGORY[$catid][type] 栏目类型$CATEGORY[$catid][modelid] 栏目所属模型id$CATEGORY[$catid][catname] 栏目名称$CATEGORY[$catid][style] 栏目名称样式$CATEGORY[$catid][image] 栏目图片$CATEGORY[$catid][catdir] 栏目路径$CATEGORY[$catid][url] 目录url$CATEGORY[$catid][parentid] 栏目的父id$CATEGORY[$catid][arrparentid] 所有上级栏目ID$CATEGORY[$catid][parentdir] 父栏目的路径$CATEGORY[$catid][child] 是否有子栏目$CATEGORY[$catid][arrchildid] 栏目的所有子栏目id$CATEGORY[$catid][items] 栏目信息数$CATEGORY[$catid][ismenu] 栏目是否显示导航

下面是PHPCMS部分栏目缓存数组:

<?php array ( 1=> array ( catid=> 1, module=> phpcms, type=> 1, modelid=> 0, catname=> 网站介绍, style=> , image=> , catdir=> about, url=> /phpcms/about/index.html, parentid=> 0, arrparentid=> 0, parentdir=> , child=> 1, arrchildid=> 1,2,3,4,5, items=> 0, citems=> 0, pitems=> 0, ismenu=> 0, letter=> , ), 2=> array ( catid=> 2, module=> phpcms, type=> 1, modelid=> 0, catname=> 关于我们, style=> , image=> , catdir=> aboutus, url=> /phpcms/about/aboutus/index.html, parentid=> 1, arrparentid=> 0,1, parentdir=> about/, child=> 0, arrchildid=> 2, items=> 0, citems=> 0, pitems=> 0, ismenu=> 0, letter=> , )

nginx进程,一般设置为和cpu核数一样

worker_processes 4;

#错误日志存放目录

error_log /data1/logs/error.log crit;

#运行用户,默认即是nginx,可不设置

user nginx

#进程pid存放位置

pid /application/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.

#最大文件打开数(连接),可设置为系统优化后的ulimit -HSn的结果

worker_rlimit_nofile 51200;

cpu亲和力配置,让不同的进程使用不同的cpu

worker_cpu_affinity 0001 0010 0100 1000 0001 00100100 1000;

#工作模式及连接数上限

events

{

use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能

worker_connections 1024; #;单个后台worker process进程的最大并发链接数

}

所在的公司是一个大型的国企集团,经常要制作大大小小的网站,活动专题,集团下属,部分分站等等,之前一直内部完成,悲剧的是内部开发人员技术比较残,做出来的后台感觉惨不忍睹,因为后台太简单,所以制作新网站效率非常低,这时候迫切需要采购一个专业的CMS系统来替代,

当初选择pageadmin做网站是经过深思熟虑,在选cms之前研究过国内主流的几大cms系统:pageadmin、织梦、帝国、phpcms、wp等等,最后还是选择了pageadmin,并不是功能多强大,其实cms功能几乎大同小异,该有的都有,不该有的那就得定制了。

选择pageadmin主要由有两点:安全性和技术栈。

安全性这块做得不错,过安全等保的时候安全检测几乎是满分,然后就是技术栈,很多cms框架都是jquery,这里不是说jquery不行,只是前段的发展到现在,vue,react,Angular这些mvvm框架已经逐步取代了jquery,研究了那么多cms,也就pageadmin采用了vue这种新技术,其他的全都是jquery框架,就这一点,我认为一个公司能不断保持最新技术栈改进,从侧面就印证了这个公司对待产品的态度,废话有点多,下面就说我们采用pageadmin时候的一些坑。

1、模板中获取数据库中字段时,字段的第一个字母要大写,不管字段名是不是大写。

@foreach (var item in Html.InfoDataList(new{Table="news",ShowNumber=10}))
 {
      var title=item.Title; //读取标题字段,注意字段第一个字符要大写,也可以直接在html中写@(item.Title)
      <span>@title</title>
 }


这段代码我想搞前端的都大致能看懂,就是一个循环读取,title是news表的一个字段,循环读取时候一定要大写,如果你写成item.title,不好意思肯定报错了。

如果你在后台给news表添加了一个字段,比如作者字段:author,那么调用时候一定要按下面方式调用。

var author=item.Author

我感觉pageadmin为了调用的的统一性,统一大写了,所以大家后台添加自定义字段时候,最好用驼峰式命名,比如创建日期字段可以用createDate,而不要用create-date或create_date这种方式,要不搞前端的调用起来会感觉很奇怪,不符合标准。


2、网站不用设置默认文档,但是.NetFrameWork一定要安装4.5以上版本。

这个我刚开始也无法理解,之前也配置过很多网站,也用过很多cms,基本都会有一个默认主页,比如index.html,default.php类似页面,但是pageadmin根目录下就一个配置文件,后来网上看了一下mvc介绍,大致明白了,这个模式开发的系统对NetFrameWork要求比较高,如果服务器是win7的,必须去微软下载.NetFrameWork4.6版本才能运行,否则会报:HTTP 错误 403.14 - Forbidden 这个错误,所以大家如果出现这个错误,不用你设置什么主页,那基本就是NetFrameWork的版本低了。

3、公共模板文件要放在templates/模板目录/views/shared目录下。

做网站模板时候,可以把一些公共地方提出来,比如顶部,底部,侧边栏等等,凡是有共用的地方都可以把html提出来放到shared目录下,一定要放这里,后缀必须改成cshtml,这个和我们之前模板经常做成html后缀有点区别,比如底部公用文件:footer.cshtml。

在其他页面可以采用下面方式加载:

  @Html.Partial("Footer")

4、重装大法。 之前在另外一台电脑上安装过pageadmin系统了,然后把项目复制到新服务器后,死活就不能正常运行,因为pageadmin安装的参数不一样,所以需要重新安装,把Web.config中的这段的value改为空值即可。

 <add key="InstallEnabled" value="" />

这个方法对于很多情况很好用,比如后台不记得了,后台初始密码不记得,更换了新域名打不开了等等,都可以用这个方式解决。

上面是我本人使用pageadmin时候的一些总结,希望对大家有点用处。