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