POST TIME:2017-11-13 01:03
今天又接了個(gè)織夢(mèng)CMS的有償服務(wù),客戶想要后臺(tái)添加文章內(nèi)容的時(shí)候,縮略圖自動(dòng)變成帶上絕對(duì)路徑的格式.
比如我們默認(rèn)的縮略圖是這樣的/uploads/allimg/150814/123P2NB-0-lp.png 他想要的效果是這樣的 http://www.genban.org/uploads/allimg/150814/123P2NB-0-lp.png
大家懂我意思了吧.
因?yàn)樗麄兪怯袀€(gè)PC端和手機(jī)端,用的同一個(gè)數(shù)據(jù)庫(kù),但是不同的服務(wù)器,所以不加絕對(duì)路徑的話,其中一端的不能顯示圖片的.
大家一般想做這個(gè)縮略圖自動(dòng)帶上絕對(duì)路徑的話可能一般有2種思路:
在點(diǎn)擊上傳縮略圖和編輯器自動(dòng)獲取第一張圖做縮略圖的代碼處加上域名這個(gè)絕對(duì)路徑,也就是這里需要改2處地方
在插入數(shù)據(jù)庫(kù)和修改數(shù)據(jù)庫(kù)的時(shí)候(添加和編輯),只需判斷當(dāng)前縮略圖是否包含域名這個(gè)字符串,如果包含了就不做操作,沒包含就加一個(gè)絕對(duì)路徑,就解決了.也就是這里只需要改一個(gè)地方,就是操作數(shù)據(jù)庫(kù)前處理下就好了.我用的是這種.
下面是詳細(xì)代碼:
大家打開織夢(mèng)的后臺(tái)路徑 默認(rèn)是dede/article_add.php 和 dede/article_edit.php
兩個(gè)文件一個(gè)是添加的時(shí)候,一個(gè)是編輯的時(shí)候
搜索if(preg_match("#j#", $flag)) $ismake = -1; 這句代碼
在這句代碼的上面加入以下代碼:
if($litpic!='' && !checkstr($litpic,$cfg_basehost)){
$litpic=$cfg_basehost.$litpic;
}
然后隨便在include的一個(gè)php文件里面加入以下代碼:
function checkstr($str,$str1){
//判斷是否包含$str1這個(gè)字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
就解決了,這個(gè)判斷的意思就是如果縮略圖不為空的話,并且縮略圖url不包含域名的話,就給他加一個(gè)域名,這樣就解決了.
昨天那篇教程只寫了關(guān)于縮略圖的,因?yàn)楫?dāng)時(shí)客戶沒和我說織夢(mèng)內(nèi)容頁里面也需要轉(zhuǎn)為帶域名的絕對(duì)路徑.
所以今天早上就把后面的代碼寫完了.我直接寫代碼吧.
打開include\dialog\select_images_post.php這個(gè)文件,然后在108行
$fileurl = $activepath.'/'.$filename;
改為
$fileurl = $cfg_basehost.$activepath.'/'.$filename;
這里的意思就是編輯器上傳的時(shí)候,帶上域名這樣的絕對(duì)路徑.
然后打開/dede/inc/inc_archives_functions.php
找到436行的樣子
global $cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
改為
global $cfg_basehost,$cuserLogin,$cfg_ddimg_width,$cfg_ddimg_height,$cfg_basedir,$ddcfg_image_dir,$cfg_addon_savetype;
找到481行的樣子
if($isremote==1 && preg_match("#^http:\/\/#i", $picname))
改成
if(($isremote==1 && preg_match("#^http:\/\/#i", $picname)) && !checkstr($picname,$cfg_basehost))
找到502行的樣子
if(($litpic=='ddfirst' && !preg_match("#^http:\/\/#i", $picname))
改為
if(($litpic=='ddfirst' && !preg_match("#^http:\/\/#i", $picname)) || ($litpic=='ddfirst' && checkstr($picname,$cfg_basehost)))
找到503行的樣子
$oldpic = $cfg_basedir.$picname; 在這句代碼的上面加一句 $picname = str_replace($cfg_basehost,'',$picname);
然后可以把滾動(dòng)條拉到最下面 加入以下函數(shù):
function checkstr($str,$str1){
//判斷是否包含$str1這個(gè)字符
$tmparray = explode($str1,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}
那么基本就搞定了
具體什么意思我就不說了,看的懂的看代碼就懂了,看不懂的說了也沒用.
織夢(mèng)CMS縮略圖和文章內(nèi)容圖片自動(dòng)轉(zhuǎn)化為帶域名的絕對(duì)路徑 這個(gè)教程也就講完了,希望可以幫助到大家