在實現PHPCMS網站過程中,根據業務需求,我們遇到很多問題,特此總結如下,以便大家參考學習。
【1】PHPCMS V9系統目錄簡析
在研究所有問題之前,請先了解一下系統的文件目錄結構,具體如下圖所示:
【2】想修改默認的模板風格怎麼辦?
PHPCMS V9默認的網頁模板在phpcms目錄下的templates文件夾。如果想更換模板,可以根據新模板的文件組織結構,分別覆蓋default文件夾和static文件夾。然後到網頁後臺管理平臺,切換網頁風格,就可以看到新換的網頁模板首頁樣式。
後臺管理操作步驟如下:設置——>站點管理——>修改–>模板風格配置(切換風格,當然風格由自己提前添加進代碼目錄中)
【3】如何修改WampServer默認存放網頁的文件夾?
左鍵單擊,點擊「www directory」,可以打開WampServer默認存放網頁的文件夾(例如 C:\wamp\www)。
實際的工作中,存放網頁的文件夾有可能不在www目錄下,或者WampServer安裝的盤符空間太小,爲了網站以後的可擴充性考慮,想把網站的實際路徑更換一下等等場景,需要修改WampServer默認的存放網頁的文件夾。修改步驟分爲以下幾步:
1. 打開WampServer的安裝目錄,再打開裏面的「script」文件夾,用Notepad++打開裏面的config.inc.php文件,搜索「wwwDir」,大概61行找到「$wwwDir = $c_installDir.’/www’;」,改成我們希望的目錄即可,比如改成D:\webdirectory,對應的代碼爲:
1 $wwwDir = $c_installDir.'d/webdirectory';
2. 打開WampServer的安裝目錄,找到文件夾(本地安裝在C盤) C:\wamp\bin\apache\apache2.4.9\conf,用Notepad++打開httpd.conf文件,搜索「DocumentRoot」,大概230行,修改爲:
1 DocumentRoot "d:/webdirectory/"
再搜索「Directory」,大概252行,修改爲:
1 <Directory "d:/webdirectory/">
3. 重新啓動所有服務Restart All Services,直到圖標顏色變爲綠色爲正常。否則,請首先檢查修改的目錄是否已存在;再檢查上面的兩步操作是否都正確。
4. 檢查修改結果。再點擊「www directory」,可以看到打開的應該爲剛剛修改過的文件夾目錄即可。另外,在瀏覽器網址欄輸入:http://localhost/phpcms/index.php 查看網頁默認模板首頁正常。
【3】外網訪問我們配置好的WampServer服務器腫麼辦?
安裝完WampServer和PHPCMS後,我們可以在本機瀏覽器訪問到網站的首頁,但是當我們嘗試通過外網訪問配置的服務器時候,發現外網訪問會提示權限不允許,這是因爲WampServer默認是隻允許127.0.0.1訪問的,也就是隻允許本機訪問。那麼,如何修改呢?找到 C:\wamp\bin\apache\apache2.4.9\conf,用Notepad++打開httpd.conf文件,搜索「onlineoffline」,大概278行左右,屏蔽Require local,添加爲Require all granted。如下圖所示:
【4】上傳文件大小受限怎麼辦?
如上圖所示,默認單個文件大小爲2MB。修改附近配置步驟如下:
1. 修改phpcms後臺配置
phpcms後臺管理–>站點設置–>修改–>附件配置–>允許附件大小,輸入數值如10240。(當然,這個值可以是你想要任何大小)
2. 修改php.ini文件配置
打開php的配置文件php.ini(文件路徑:)。搜索「upload_max_filesize」,把這個值改爲10240(如上,值可以根據自己需要改)。
繼續在php.ini中搜索「post_max_size」,把這個值改爲300000。(表單提交的最大限制值,此項不是限制上傳單個文件的大小,而是針對整個表單提交的數據進行限制。)
注意:一定要保證post_max_size >= upload_max_filesize,也就是前者一定要大於後者。另外,修改後一定要重啓服務器,一定要重啓。
【5】網站在發展的過程中,很可能需要多次的修改域名,那麼修改域名應該怎麼進行設置呢?
修改域名的步驟分爲以下幾步:
1. 修改/caches/configs/system.php裏面所有與域名有關的,把以前的老域名修改爲新域名就可以了。
2. 進行後臺設置–>站點管理。對相應的站點域名進行修改。
3. 更新系統緩存。點擊後臺右上角的「更新緩存」按鈕。
4. 切換至內容–>附件管理–>附件地址替換。把附件地址批量的替換爲新的地址。
5. 切換至內容–>批量更新URL。把所有文章的地址都自動更新一下。
域名修改後,可以通過瀏覽器利用域名進行訪問,測試一下效果。
【6】網站遷移的方法
網站遷移工作比較重要,具體可以分爲兩個方面:源網站的準備內容;新網站的部署任務。
源網站的準備內容,大概羅列爲一下幾點:
1. 備份數據庫
登錄網站管理平臺,在「擴展」菜單下的「數據庫工具」欄中的「請選擇數據鏈接池」區域中選擇在使用的數據鏈接池,這時在下面會顯示相應的表單文件名,全部選擇後單擊「開始備份數據」,備份完成後會彈出「備份成功」的提示語。這時會生成一個(或多個)SQL格式的文件在網站的「caches/bakup」文件夾裏。
2. 下載數據庫
完成上面的備份後,系統會自動將數據庫按2M(即2048KB)左右的大小按文件存放,備份完後可以單擊對應的文件後面的「下載」連接來下載相應的SQL格式的備份,一般會有多個文件,注意備份文件後面的序號。當然也可以使用FTP軟件一次下載(或拷貝)。
3. 下載網站模板
網站的風格和樣式都存放在模板文件中,模板文件存放在"phpcms/templates",通過FTP下載(或拷貝)這個文件夾。
4. 下載css文件
如果網站曾經修改過模板的位置及效果,這時需要下載(拷貝)css文件,需要備份的文件夾爲「statics/css」。
5. 下載數據庫配置文件
數據庫配置文件在「caches/configs」文件夾下的「database.php」,這裏主要是數據庫的名稱及頭,格式如下,下載(或拷貝)後在新建安裝軟件時要使用到。
1 <?php 2 return array ( 3 'default' => array ( 4 'hostname' => 'localhost', 5 'port' => 3306, 6 'database' => 'phpcmsv9', 7 'username' => 'root', 8 'password' => '', 9 'tablepre' => 'v9_', 10 'charset' => 'gbk', 11 'type' => 'mysql', 12 'debug' => true, 13 'pconnect' => 0, 14 'autoconnect' => 0 15 ), 16 ); 17 ?>
6. 下載(拷貝)附件
PHPCMS V9默認附件的文件夾爲「uploadfile」,原來的圖片、上傳的文件都在這個文件夾中,需要進行下載(或拷貝)。
新網站的部署任務,大概分爲一下幾步:
1. 安裝網站程序
在新的網站上安裝與原來網站字符一致的PHPCMS V9,在數據庫設置時,需要用到數據庫名和頭,請使用上面(5)的內容。
2. 上傳源網站備份數據
將備份的SQL文件上傳(粘貼)到新的網站「caches/bakup」文件夾。
3. 上傳源網站模板
將原來網站的模板文件上傳(粘貼)到「phpcms/templates」文件夾。
4. 上傳源網站css文件
如果沒有使用默認程序的CSS,請將備份的CSS上傳(粘貼)到「statics/css」
5. 上傳附件
將下載的「uploadfile」文件夾上傳(粘貼)到新的網站根目錄下。
6. 恢復數據
登錄到新網站的後臺,在「擴展」菜單下的「數據庫工具」中選擇「數據導入」,在下面選擇上傳的備份數據,請檢查是否完整,選中全部後單擊「恢復」將數據進行恢復。
7. 更新網站緩存
完成數據恢復後,請更新全站的緩衝,再檢查相應的欄目數據是否完成。
8. 生成網站與欄目及首頁
檢查網站的設置後,生成網站的網頁、欄目及首頁,就可以完成了。
到此,網站遷移結束。
【7】想修改網頁的首頁佈局等,應該從哪裏下手?
在default/content目錄下,存在一個index.html文件,該文件就是首頁模板。
同時,在該目錄下,存在一個header.html文件,該文件是網頁的頭部。
在該目錄下,存在一個footer.html文件,該文件是網頁的底部。
在static/css目錄下,存在網頁的樣式調整文件,即各種的css類型文件。
那麼,網頁具體使用到了哪種樣式文件呢?可以用瀏覽器打開網頁,然後在極速模式(注意與IE兼容模式區別)下,右鍵找到「審查元素」,然後查看待修改樣式的部分到底是由哪個css文件控制,這樣就可以把css文件與html文件的依賴關係找到,然後可以根據需求調整css文件的內容。
關於html文件,可以參見《HTML5》
關於css文件,可以參見文章《CSS》
【8】如何修改phpcms v9系統的logo圖標?
修改logo圖標?首先,必須弄明白logo圖標是怎麼添加到網站上的。
任何看到的東東都不是憑空、無緣無故產生的,當然,包括精神和物質的,比如愛和錢。那麼,logo圖標呢也不例外,可以篤定肯定有這樣的一張圖片。好吧!既然有這樣的一張圖片,在哪裏放着呢?分析一下phpcms v9的文件目錄結構,可以大概猜測到這張圖片應該放置在\static\images目錄下,具體呢?再搜索一下,哦嗯,她就在v9文件夾中。嗯哼,她默默的「藏」在這裏,發揮着她不可替代的作用,真可謂網站博大精深,系統分工不同哈。
再思考,網站網頁上是怎麼應用到她的呢?哦嗯,這個就得研究具體的網頁文件,比如這裏的\phpcms\templates\default\content\header.html文件,用Notepad++打開這個文件內容,搜索字符串「logo」,嗯,大概是這樣子的一行代碼:
<div class="logo"><a href="{siteurl($siteid)}/"><img src="{IMG_PATH}v9/logo.jpg" /></a></div>
有人這個時候靈機一動,就要說:「你個騙子呀~ 我腫麼知道是這個header.html文件呢?」問得鏗鏘有力,問得見微知著,問得無語凝噎。誰問的?你站出來,我不打你。其實,打你是因爲你問問題之前的那句感概,看來我要力爭澄清我不是一個名副其實的騙子。
打開瀏覽器,輸入http://localhost/phpcms/index.php 回車,我們可以看到網站的首頁頁面,如果看不到的話,請檢查你機器上的WampServer服務器是否已經正常啓動。當看到首頁,然後在網頁的任意位置右鍵,尋找<審查元素>行,什麼?木有看到?真的找不到?那說明你瀏覽器目前是IE兼容模式,請先切換瀏覽器到極速模式。關於瀏覽器模式切換請自問度娘,因爲每種瀏覽器的操作好像都有所差異,具體得根據你正在使用的瀏覽器再進行切換。切換完後,再尋找<審查元素>行,點擊選中後,看到了右邊的界面如下圖所示:
所謂審查元素,就是指右邊的各個標籤或塊等都與左邊的網頁元素項是一一對應的,當鼠標在右邊移動到具體的塊或標籤區域時,左邊網頁會鎖定到具體的元素對象上,整個過程的表現相當於審查的作用。好,當焦點放在上圖的紅色框行,我們可以看到左邊網頁選中的恰是系統的logo圖標,這時再看看src值內容,那麼到此至少說明了一點,這個圖標的名稱是logo,類型爲jpg,存放的目錄爲:\phpcms\statics\images\v9 嗯,也就驗證了剛剛關於logo圖標存放位置的猜測。
接下來,由於我們已經知道剛剛右邊查看的網頁文件是index.html,神馬?這個你還不知道?那你再折回去看看此篇文章第一個問題。現在用Notepad++打開\phpcms\templates\default\content\index.html文件,大膽的搜索「class=「logo」」,嗯哼?查不到?竟然找不到?難道,剛剛審查的不是這個網頁嗎?請先再覈對一下,經覈對後肯定的確是這個index.html。那麼,問題出在哪裏呢?看來還得分析這個index.html文件,哇哈~ 這麼多內容,到底從哪裏開始呢?有點丈二和尚摸不着頭腦。不要着急,不要心慌,不要僥倖,既然不知道從哪開始就從頭開始唄~ 嗯,這個時候得沉住氣,往往尤其這個時候才考驗一個人能不能幹大事。從第一行開始,第一行內容如下:
{template 「content」,「header」}
不應該呀!HTML文件一般的結構應該是先有head,再有body,即使沒有head,至少也應該存在body。要不說人還得多見世面,如果你真的還不懂這一點,那請你惡補《我的第一個HTML頁面》。在index.html中搜索「head」,木有找到;再搜索「body」,也木有找到,看來此處另有玄機!喝杯水,伸個懶腰,下午茶來了?讓我先吃點水果。
從HTML文檔的結構分析,還得從第一行着手。剛剛上道,不懂這行代碼幹嗎的?問度娘,不行就問谷哥,啥年代了還有解決不了的問題!通過網詢,這句代碼的作用是:調用(相當於包含頭文件)根目錄下phpcms\template\content\header.html文件。哦,嗯,今天的下午茶是酥梨,本來酥梨應該是酥的,卻偏偏套了個外袋,看着潔白無瑕,實則寡湯無味。當我左手握着大梨,右手輕輕的把header.html文件拖到Notepad++主界面打開的時候,我才瞬間嚐到了一點酥梨的酥,恍然大悟,正是這個頭文件,終於找到了她。當我潛意識的準備搜索「class=「logo」」時,才第一次發現我的右手很彆扭的不能同時按下Alt + F鍵,於是用右手接過左手的梨,同時左手很傲嬌似的嫺熟的通過快捷鍵打開了查找窗體。果然,看到了真面目,即審查元素時,當左邊鎖定系統圖標,右邊那坨代碼(就是上圖中紅色框的上下文代碼),正是我們需要查找的。
說到這裏,讓我鬆了一口氣。要現在再有人說我是騙子的話,建議你點擊網頁右上角的叉,關閉此網頁,我真不想和你做朋友了!
好勒~ 來龍去脈都搞清楚了,更換系統logo圖標自己看着辦吧~ 其實只需一步:用你想換的圖標把logo.jpg替換了。當然,爲了以後方便,建議把原logo.jpg文件的名稱修改爲logo_old.jpg即可,真的覆蓋掉了以後想再找個還不好弄了。
【9】PHPCMS V9系統數據庫,數據表結構
關於這個問題,可以參見《phpcms v9數據表結構在線版》
【10】PHPCMS V9系統php文件的結構以及作用
關於這個問題,可以參見《phpcms v9框架的目錄結構分析》
【11】phpcms V9默認模板文件目錄結構詳解
關於這個問題,可以參見《phpcms v9默認模板文件目錄結構詳解》
【12】默認模板詳情列表
可以通過後臺管理系統直接查看:
操作步驟如下圖所示:
結果如下:
【13】如何理解V9系統的設計邏輯?
從PHPCMS V9的後臺管理系統分析,要深入學習該系統,必須從以下內容深入。
首先,我們得理解站羣。具體請參見《phpcms V9站點管理實現站羣功能》、《利用phpcms V9站羣功能建立多個分站》。
站點管理入口:
其次,我們需要理解模塊,請參見《phpcms V9二次開發之模塊開發[360度無死角完全版]》
另外,就是內容部分。phpcms V9是標準的MVC框架,內容部分是網站的核心數據部分,爲了便於擴展和維護,必須理解模型、欄目、附件管理。
當新建一個新欄目,是以什麼樣的模型進行內容維護,模型管理:
當要向網頁添加一個新欄目時,欄目管理:
當有下載模塊時,需要維護用戶上傳的附件項,附件管理:
其他…
【14】phpcms V9後臺各個php文件的詳細分析
關於相關content、attachment、download等等文件的分析,請參見系列博文《phpcms-v9深入研究》
【15】PC標籤概述
1. PC標籤使用簡介
PC標籤必須以{pc}開始,並以{/pc}結尾。{pc:}冒號之後跟隨的是模塊名。作爲程序員,總覺得代碼最接地氣,請看聲明:
{pc:content action="position" posid="9" order="id" num="10" cache="3600"} {/pc}
可見,上面是使用的特例,其實模板更簡單:
{pc:模塊名/其他 參數名="參數值" 參數名="參數值" 參數名="參數值"} {/pc}
當然,不以{/pc}結尾並不會引起程序致命性的錯誤,導致無法繼續運行。但是,兩種可能會出現的問題如下:
[1] 當網頁中出現兩個PC標籤時,可能會使得沒有閉合的PC標籤之後的標籤數據與其混亂。
[2] 在後臺可視化編輯時,可能出現網頁結構錯亂的情況。
2. PC標籤包含兩類,分別爲:
2.1 工具類(網址:http://v9.help.phpcms.cn/html/2010/tools_0906/3.html)
關於工具類的詳解,請參見以下幾種情況:
[1] phpcms v9開發文檔《json工具箱》
[2] phpcms v9開發文檔《xml工具箱》
[3] phpcms v9開發文檔《get標籤》
[4] phpcms v9開發文檔《碎片工具箱》
2.2 模塊類
在PHPCMS V9中我們正式開始使用PC標籤作爲數據的獲取方式。
關於模塊類的詳解,請參見以下文章:
《前臺content模塊中PC標籤的調用說明》
《前臺其他模塊pc標籤的調用說明》
【16】網站的 SEO配置 是幹神馬的?
SEO,Search Engine Optimization,即搜索引擎優化。指在瞭解搜索引擎自然排名機制的基礎上,對網站進行內部及外部的調整優化,改進網站在搜索引擎中關鍵字的自然排名,獲得更多的展現量,吸引更多目標客戶點擊訪問網站,從而達到網絡營銷及品牌建設的目標。
【17】其他待續…