之前學院制作了 《織夢移動化攻略全分享專題》獲得了大量管理員的關注,很大程度的降低了PC站移動化的難度,但美中不足的是移動端的URL只能動態實現。這次站長社區超級版主—洪石陳,又為大家帶來了福利《 Dedecms移動站靜態化實操分享》!
下面是圖片版的:
文字版如下:
一、功能:實現dedecms網站PC端和移動端數據同步,以及移動端網站靜態化
二、基於:dedecms20150618+ 官方默認移動端模板 + 移動站域名綁定/m/目錄
三、後台展現:從後台上來看,只有兩塊不同,原版的後台只有“一鍵更新網站”功能,修改後,在原有的“一鍵更新PC網站”基礎上增加了“一鍵更新移動網站”功能。
四、程序思路
dedecms V5.7SP1正式版(2015-06-18) 已增加移動端模塊,實現了網站pc端與移動端共用同一個後台和數據庫的功能,美中不足的是移動端網站除首頁外僅能動態浏覽,而無法全站生成靜態網頁。
簡單來說,dedecms靜態頁面(pc端)生成功能是調用pc端網站模板和對應標簽數據,組合為html代碼並按設置的文件名規則生成到相應的目錄下,從這一角度考慮,如果調用移動端模板,按照後台設置的文件名和生成目錄將文件同pc端路徑生成至移動端目錄(二級目錄/m/)下,再將移動域名綁至目錄/m/上,即實現了移動端靜態文件生成,且與pc端頁面url一一對應。
我們可以基於已有功能進行簡單修改來增加以上功能(需對dedecms系統文件結構有一定了解):
1、復制dedecms “一鍵更新網站”功能(如要實現移動端的“更新欄目HTML”、“更新文檔HMTL”等功能類似操作)相關的幾個系統文件,當然也可直接對原始文件進行二次開發,但考慮到減少影響原功能的可能性和後續程序升級,這裡采取了兩者功能文件隔離的方式。
2、dedecms移動端模板規則是在模板文件名後加“_m”,修改相應系統文件中的模板調用代碼,改為移動端模板路徑格式;找到生成路徑的代碼,將生成路徑前加上“/m/”。
3、修改dedecms後台菜單模板,加上“一鍵更新移動網站”鏈接至上面新增的系統文件,點擊後進行移動端網頁靜態文件的生成。
4、欄目更新:
(1)因為PC站可以通過“更新主頁HTML”、“更新欄目HTML”、“更新文檔HTML”來實現首頁、欄目、文章的更新,所以“一鍵更新PC網站”建議平時不需要多使用,比較占據資源。
(2)通過“一鍵更新移動網站”功能實現移動站的文檔、欄目和首頁的更新。
5、織夢移動站的搭建方法的延伸
(http://zhanzhang.baidu.com/college/courseinfo?id=750)
Dedecms移動站靜態化實操是作為上次分享的織夢移動站的搭建的補充和延伸。
6、目前常見的幾種織夢移動化的方法:
(1)使用織夢官方默認的方案,移動站為動態地址;
(2)PC站和移動站各一個後台,共用一個數據庫;
(3)本方案(在織夢官方默認方案的基礎上,進行文件修改,使移動站為靜態地址);
(4)其他方式。
五、文件結構說明(黑色文件名為新增文件,紅色文件名為替換原文件):
dede/
makehtml_all_m.php 一鍵更新移動網站頁面
makehtml_archives_action_m.php 移動端更新文檔
makehtml_list_action_m.php 移動端更新欄目
inc/
inc_menu.php 管理後台導航菜單
inc_archives_functions.php 發布文章自動生成(發布pc端文章同時自動生成移動端頁面)
templets/
makehtml_all_m.htm 一鍵更新移動網站頁面模板
makehtml_archives_m.htm 移動端更新文檔模板
include/
arc.archives.class.php pc端更新文檔類(發布pc端文章同時自動生成移動端頁面)
arc.archives_m.class.php 移動端更新文檔類
arc.listview_m.class.php 移動端更新欄目類
templets/
default/
index_m.htm 首頁模板
header_m.htm 通用頭部模板
list_default_m.htm 列表欄目頁默認模板(如某欄目不存在對應的移動端模板,則使用此模板)
index_article_m.htm 頻道欄目頁模板
article_article_m.htm 文章內容頁模板
m/
images/
defaultpic.gif 默認縮略圖
六、附文章圖片路徑問題的幾種解決方法:
方法一:修改模板的field.body標簽,將圖片替換為pc主域名的圖片地址,例:
{dede:field.body function='str_replace("/uploads/allimg/","http://www.主域名.com/uploads/allimg/",@me)/}
方法二:服務器設置rewrite規則進行圖片路徑重定向,例:
RewriteCond%{HTTP_HOST} ^m.主域名.com$ [NC]
RewriteRule^/uploads/allimg/(.*)$ http://www.主域名.com/uploads/allimg/$1 [NC,L]
方法三:dedecms後台 > 系統 >系統基本參數 > 核心設置 中,開啟“(是/否)支持多站點,開啟此項後附件、欄目連接、arclist內容啟用絕對網址”功能。(該方法僅對於開啟功能後發布的文章生效,對於之前發布的文章無效。)
(本文轉載自百度站長平台,原文地址:http://zhanzhang.baidu.com/college/articleinfo?id=888)