ecshop模版設置添加廣告不成功

在ecshop後臺模版設置頁面進行廣告設置時,添加了一個廣告位置,但是保存後沒有顯示在頁面上。後來檢查數據庫發現,數據是已經保存到了數據裏裏面了,但是就是沒有生成到指定頁面的指定位置上。

通過調試發現,ecshop的template.php頁面遍歷所有可編輯區域,竟然沒有我添加的那塊內容。檢查了lib_template.php頁面裏的正則,發現了一些貓膩。程序通過正則表達式進行可編輯區域的獲取

$result = preg_match_all('/([\s|\S]{0,20})(<!--\\s#BeginLibraryItem\\s")([^"]+)("\\s-->)/',
 $matches[2], $lib_matches, PREG_SET_ORDER);

 $i = 0;
 if ($result && $result > 0)
 {
 foreach ($lib_matches AS $k => $v)
 {
 $v[3] = strtolower($v[3]);
 $libs[] = array('library' => $v[3], 'region' => $val, 'lib'=>basename(substr($v[3], 0, strpos($v[3], '.'))), 'sort_order' => $i);
 $i++;
 }

}

而我定義的可編輯區域的name中,攜帶了一些正則裏面的元素,比如“[]”,果斷去除該元素,發現程序也正常了,添加廣告列表易如反掌了。

總結一下:在ecshop裏面定義可編輯區域名稱時,一定不能使用正則所用到的符號,比如“[”,"]“等等


發佈了34 篇原創文章 · 獲贊 1 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章