最近要給客戶建個網站,考慮到效率問題,直接找了個開源的phpcms,(現在被收購了,以前的時候我還知道是個開源的)。由於對這個東西不熟悉,原來就是了解一些,php的建站系統,php的MVC框架。故此,只要搞到模版,控制台,數據模型就OK。上干貨。
第一步就是下載安裝。此步跳過。
第二步就是修改模板文件。一般的企業網站該有的,phpcms都具有。所以根據需要,修改 templates/default/content/里的index.html,header.html,footer.html。企業網站網站不需要廣告位,也不需要注冊,廣播等消息,主要是導航,和網站logo。所以把模板不需要的都干掉。
footer.html里面也一樣需要干掉東西。加入自己的東東。下面說重點。
phpcms默認的模板有文章模版,圖片模板,下載模板,視頻模板。在templates/default/content/ 下分別以category,picture,download和video關鍵字標示。這四種模型就足夠了。但是在模版里面不同的模型又分為幾種不同的頁面,如右圖所示紅色框內容所示,這四個文件是什么意思呢都以category開頭。網站里有的欄目是需要二級導航的,這種情況,當從首頁的導航點擊之后進入的就回是這四個中的一個,在這四個頁面里做子頁面的划分。然后是以list開頭的表示4個文件,這對應的就是列表。如http://v9.demo.phpcms.cn/網站實例所示的list頁面(下圖所示)。然后是以show開頭的四個模板文件,這是不同模型下每一個內容的展示模
板。知道這個不同模板i對應的功能,做起來就容易多了,最起碼知道當你的網站改到不同程度的時候要修改對應的模板。
要注意的是在修改模板的時候,模板里的數據都是一Smarty模板語言寫入的。網站里面用的最多的phpcms的模板pc標簽是
{pc:content action="lists" catid="$catid" order="id ASC" page="$page"}
這個函數的展示內容。這些內容可以看官網的開發文檔,學習。
有時候你需要在數據上進行包裝操作,這時候就需要寫php函數了,也就是control。這個函數該寫在什么地方呢,需要寫在\libs\functions 下的extention.func.php里面。如果需要擴展新的函數就在這里面添加。同理如果想看看系統的自帶的可用的函數在此路徑下的global.func.php里面。這樣就可以做出來你要的網站了。
在做這個網站的時候,我需要做的二級頁面的導航效果如下,可以看出是三級導航的效果。在phpcms基礎上,改進了代碼用到了兩個非常重要的函數
{php $i=0} {loop subcat($top_parentid) $v} {php if($v['type']!=0) continue;} <div class="accordion-group"> <div class="accordion-heading"> <a class="accordion-toggle {if $v[catid]==$catid||($catid==$top_parentid&&$i==0)}picture-nav-hover{/if}" data-toggle="collapse" data-parent="#accordion2" href="#collapse{$i}"> {$v[catname]} </a> </div> <div id="collapse{$i}" class="accordion-body collapse {if $v[catid]==$catid||($catid==$top_parentid&&$i==0)}in{/if}"> <div class="accordion-inner"> <ul > {php $j=0} {loop subcat($v[catid]) $r} {php if($i==0) $obj=$r['catid']} <li><a href="{$v[url]}" >{$r[catname]}</a> {$j++} {/loop} </ul> </div> </div> </div> {$i++} {/loop}
其中兩點說明:1)$top_parentid 是當前頁面的欄目所屬於的頂層欄目的catid。2)subcat(id) 函數作用就是找到所傳參數的所有子欄目。有了這些前台頁面效果基本搞定,特效還是需要js來搞的。
后台頁面:
phpcms有很多系統變量,比如后台登陸頁面的logo頁面,版權說明就是一個默認的變量,如果要修改要去哪里修改呢,在/languages/zh-cn 里的system.lang.php的93行。
后台管理有升級的時候經常會出提示,我要干掉提示要在哪里干掉呢,在\libs\classes 里的update.class.php里面。把notice的內容去掉即可
function notice() { return $this->url('notice'); } 改成 function notice() { }
當添加內容的時候需要圖片有個水印功能,這個圖片我們可以干掉,在\statics\images\ 下面的water文件夾干掉。這樣phpcms 找不到水印圖片就會添加文字,我們只需要把文子修改掉即可。在\libs\classes 下面的image.class.php里面找到128行 函數water_maker 里面的參數$w_text換成你要的文字
function watermark($source, $target = '', $w_pos = '', $w_img = '', $w_text = '需要添加的文字',$w_font = 8, $w_color = '#ff0000')
最后如果想把后台弄的干凈些,去掉用不到的功能,只需要在modules\admin\templates 里面修改index.tpl.php,main.tpl.php,header.tpl.php.
第三步修改樣式。主要修改的css文件有兩個:default.blue.css,和reset.css。兩個文件。對首頁和內容頁面的修改集中在default.blue.css里。
完成以上流程,一個網站思路基本出來了。細節內容還是需要好好琢磨的,比如我這個網站沒有另起一個新的網頁。還需要進步的,敬請各位拍磚!