国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 建站經驗 > 正文

ecshop定義模板css與JS 路徑的分析

2024-04-25 20:40:23
字體:
來源:轉載
供稿:網友

ecshop中模板中路徑的處理給我們模板的制作帶來了極大的方便

ecshop會自動解析模板文件中的圖片,css文件,js文件的路徑,但并不是所有的圖片,css文件,js文件的路徑都會替換,

例如在dwt模板文件中有:

<link href="css/index.css" rel="stylesheet" type="text/css">

將會自動替換成

<link href="themes/模板目錄名/css/index.css" rel="stylesheet" type="text/css">

例如在dwt模板文件中有:

<link href="css/public.css" rel="stylesheet" type="text/css">

將會被自動替換為

<link href="themes/模板目錄名/css/public.css" rel="stylesheet" type="text/css">

能自動替換路徑的css文件一定要以路徑css開頭的css文件

例如在dwt模板文件中有:

<script type="text/javascript" src="js/index.js"></script>

將會被自動替換為

<script type="text/javascript" src="themes/模板目錄名/js/index.js"></script>

能自動替換路徑的js文件一定要以路徑js開頭的js文件

例如在dwt模板文件中有:

<img src="images/icon.png">

將會被自動替換為

<img src="themes/模板目錄名/images/icon.png">

能自動替換路徑的圖片文件一定要以路徑img開頭的圖片文件

這種自動解析方便我們可以把這些css,js,img和模板放在一起而不用考慮實際的路徑

ecshop對圖片,CSS,JavaScript的路徑替換原則可以參看include/cls_template.php文件里面的smarty_prefilter_preCompile()的最后幾行正則替換:

/* 在頭部加入版本信息 */

$source = preg_replace('/<head>/i', "<head>/r/n<meta name=/"Generator/" content=/"" . APPNAME .' ' . VERSION . "/" />", $source);

/* 修正css路徑 */

$source = preg_replace('/(<link/shref=["|/'])(?:/.//|/././/)?(css//)?([a-z0-9A-Z_]+/.css["|/']/srel=["|/']stylesheet["|/']/stype=["|/']text//css["|/'])/i','/1' . $tmp_dir . '/2/3', $source);

/* 修正js目錄下js的路徑 */

$source = preg_replace('/(<script/s(?:type|language)=["|/']text//javascript["|/']/ssrc=["|/'])(?:/.//|/././/)?(js//[a-z0-9A-Z_/-/.]+/.(?:js|vbs)["|/']><//script>)/', '/1' . $tmp_dir . '/2', $source);

/* 更換編譯模板的編碼類型 */

$source = preg_replace('/<meta/shttp-equiv=["|/']Content-Type["|/']/scontent=["|/']text//html;/scharset=(?:.*?)["|/'][^>]*?>/r?/n?/i', '<meta http-equiv="Content-Type" content="text/html; charset=' . EC_CHARSET . '" />' . "/n", $source);

}

/**

* 處理庫文件

*/

elseif ($file_type == '.lbi')

{

/* 去除meta */

$source = preg_replace('/<meta/shttp-equiv=["|/']Content-Type["|/']/scontent=["|/']text//html;/scharset=(?:.*?)["|/']>/r?/n?/i', '', $source);

}

/* 替換文件編碼頭部 */

if (strpos($source, "/xEF/xBB/xBF") !== FALSE)

{

$source = str_replace("/xEF/xBB/xBF", '', $source);

}

$pattern = array(

'/<!--[^>|/n]*?({.+?})[^<|{|/n]*?-->/', // 替換smarty注釋

'/<!--[^<|>|{|/n]*?-->/', // 替換不換行的html注釋

'/(href=["|/'])/././/(.*?)(["|/'])/i', // 替換相對鏈接

'/((?:background|src)/s*=/s*["|/'])(?:/.//|/././/)?(images//.*?["|/'])/is', // 在images前加上 $tmp_dir

'/((?:background|background-image):/s*?url/()(?:/.//|/././/)?(images//)/is', // 在images前加上 $tmp_dir

'/([/'|"])/././//is', // 以../開頭的路徑全部修正為空

);

$replace = array(

'/1',

'',

'/1/2/3',

'/1' . $tmp_dir . '/2',

'/1' . $tmp_dir . '/2',

'/1'

);

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 揭东县| 凉城县| 茌平县| 精河县| 孟津县| 平度市| 任丘市| 承德县| 固镇县| 昌乐县| 鸡西市| 巨野县| 本溪市| 广汉市| 斗六市| 紫云| 灵丘县| 新河县| 蕲春县| 宽城| 渭南市| 苏尼特右旗| 兰坪| 靖安县| 通州区| 安西县| 青川县| 海林市| 贡觉县| 威海市| 玛纳斯县| 牟定县| 房产| 霍林郭勒市| 香港| 会理县| 绥江县| 九江市| 万载县| 罗平县| 沈阳市|