方法:后臺核心-批量維護-數(shù)據(jù)庫內(nèi)容替換
1. 選擇好要批量替換的數(shù)據(jù)表( 例如:文章模型附加表 dede_addonarticle )
2. 選擇好要替換的字段( 例如:文章內(nèi)容 body )
3. 選擇替換方式為正則表達式
4. 填寫主鍵字段( 表的主鍵,例如 aid )。
5. 填寫被替換內(nèi)容,正則表達式
<img(.*)src=\"([^\"]+)\"[^>]+>
6. 根據(jù)需要填寫替換條件( 例如:某個欄目 typeid=3 )
清空文章內(nèi)容里的style樣式(雙引號)可用下面正則表達式
style=\"[^\"]+\"
]]>
打開Include/?arc.archives.class.php
查找:
@SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['id'],$this->Fields['title'],'archives');
在上面代碼后面添加:
//替換圖片Alt和title為文檔標(biāo)題 $this->Fields['body'] = str_ireplace(array('altalt=""','alt=\'\''),'',$this->Fields['body']); $this->Fields['body'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$this->Fields['body']); $this->Fields['body'] = str_ireplace("<img " ,"<img alt=\"".$this->Fields['title']."\" title=\"".$this->Fields['title']."\" ",$this->Fields['body']); $this->Fields['imgurls'] = str_ireplace(array('altalt=""','alt=\'\''),'',$this->Fields['imgurls']); $this->Fields['imgurls'] = preg_replace("@ [\s]{0,}alt[\s]{0,}=[\"'\s]{0,}[\s\S]{0,}[\"'\s] @isU"," ",$this->Fields['imgurls']); $this->Fields['imgurls'] = str_ireplace("<img " ,"<img alt=\"".$this->Fields['title']."\" ",$this->Fields['imgurls']);
上面是修改默認的模板標(biāo)簽:{dede:field.body/} ,如果是其它字段,可以修改$this->Fields['body'] 為其它的字段名。
效率說明:使用了正則處理,會降低一些生成速度,如果數(shù)據(jù)量小,則可以忽略。
不修改系統(tǒng)核心文件,只用在模板里面調(diào)用就行了。把內(nèi)容頁的{dede:field.body/}調(diào)用標(biāo)簽替換為
{dede:field.body runphp=yes}
global $dsql,$id,$aid;
$myid = isset($id) ? $id : $aid;
$row = $dsql->GetOne("SELECT title FROM `#@__archives` WHERE id=$myid");
$title = $row['title'];
$str = @me;
$search = '/(<img.*?)alt=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$search1 = '/(<img.*?)title=(["\'])?.*?(?(2)\2|\s)([^>]+>)/is';
$content = preg_replace($search,'$1$3',$str);
$content = preg_replace($search1,'$1$3',$content);
@me = str_replace('<img', "<img alt='{$title}' title='{$title}'", $content);
{/dede:field.body}
因為這程序是我修改好的。從U盤上面復(fù)制到電腦上安裝的。以為是修改過程中出錯了。就另外全新安裝一個。結(jié)果發(fā)現(xiàn),全新安裝效果也是這樣。估計是IIS配置有問題了。仔細檢查發(fā)現(xiàn),原來為了避免安裝用不上的插件,我沒有全選安裝,常見HTTP功能里面的靜態(tài)內(nèi)容沒有選中,如下圖
選中后保存,然后再安裝織夢。熟悉的界面終于正常了。
]]>
文章發(fā)布后,在電腦查看圖片是正常的,但在手機端,就會發(fā)現(xiàn),圖片變形了,因為固定了長寬,所以下面就來去掉這個圖片自帶的長和寬設(shè)置
打開include/ arc.archives.class.php,查找代碼:
//設(shè)置全局環(huán)境變量
$this->Fields['typename'] = $this->TypeLink->TypeInfos['typename'];
@SetSysEnv($this->Fields['typeid'],$this->Fields['typename'],$this->Fields['id'],$this->Fields['title'],'archives');
在下面添加:
//去掉img的width和height
$this->Fields['body'] = preg_replace("/style=\"width\:(.*)\"/","",$this->Fields['body']);
OK!
]]>.img {max-width: 700px;//非IE瀏覽器
zoom:expression( function(elm) {//IE瀏覽器
if (elm.width>700) {
var oldVW = elm.width; elm.width=700;
elm.height = elm.height*(700 /oldVW);
}
elm.style.zoom = '1';
}(this));}
]]>