需求/問題描述:帝國CMS編輯發布文章時,有時因為文章來源于其他網站,因此粘貼時不可避免地會帶有原網站的文章內容格式(可以用帝國CMS編輯器的清除格式功能解決)和站外鏈接(指對方網站的內文鏈接和圖片鏈接)。
舉例來說,文章內容來自于中國站長站chinaz,在CHINAZ的文章內容中,很多圖片都帶有一個鏈接(鏈向一個絕對URL的圖片地址),而在你自己網站內容中,這些鏈接你并不想出現——因為鏈向的是CHINAZ網站而不是你自己的站。當然,這些鏈接可以在后臺編輯時,手動去掉,但除非本質工作是專業編輯,要不老是這么干,會讓人覺得煩、累!
那,有沒有更加智能和快捷的方法,可以一勞永逸地解決呢?華哥經過實踐,搞定了這一問題。
PS.此解決方法,也許只適合帝國CMS7.2版無法刪除非本站鏈接的問題。
打開文件/e/class/hinfofun.php,注:不要使用記事本打開編輯.php文件。PS.華哥是用dreamweaver2017版編輯的,至少用dw的查找功能是很方便實用的。
1、在文件最后即“?>”之前,添加如下代碼:PS.這是一段函數代碼,實現去除站外鏈接功能。
function Replace_Links($body)
{
$host_rule = $_SERVER[‘HTTP_HOST’];
$arr = ”;
preg_match_all(“#<a([^>]*)>(.*)<//a>#iU”, $body, $arr);
if( is_array($arr[0]) )
{
$rparr = array();
$tgarr = array();
foreach($arr[0] as $i=>$v)
{
if( $host_rule != ” && preg_match(‘#’.$host_rule.’#i’, $arr[1][$i]) )
{
continue;
} else {
$rparr[] = $v;
$tgarr[] = $arr[2][$i];
}
}
if( !empty($rparr) )
{
$body = str_replace($rparr, $tgarr, $body);
}
}
$arr = $rparr = $tgarr = ”;
return $body;
}
2、查找if(!$add[id]||!$add[title]||!$add[classid]||!$add[filename])在其上面添加如下代碼:PS.調用前面定義的函數代碼,真實代碼只是一行,下面兩行中的第一行是注釋,可以用也可以不用。
//帝國刪除非本站鏈接
$add[‘newstext’] = Replace_Links($add[‘newstext’]);
3、查找$ret_r=ReturnAddF($add,$class_r[$add[classid]][modid],$userid,$username,0,0,1);//返回自定義字段在其上面添加 PS.真實代碼只是一行,下面兩行中的第一行是注釋,可以用也可以不用。
//帝國刪除非本站鏈接
$add[‘newstext’] = Replace_Links($add[‘newstext’]);
新聞熱點
疑難解答