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時候的一些總結,希望對大家有點用處。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。