首页 » 二次开发 » 阅读文章

在ecshop里添加新的库项目

2010-07-17 17:31 20722 5 发表评论

Ecshop后台模板设置里不支持自定义库项目(V2.5.1 R20080229), 但有的时候我们需要自己添加特殊功能的项目.

首先在模板目录的library子目录下新建一个.lib文件, 例如test.lib, 这样就可以在后台”模板管理->库项目管理”里直接打开编辑.
编辑完之后需要手工添加到想要使用该库项目的模板文件里(dwt文件), 比如想添加到主页, 就加入代码到index.dwt.

找到需要放置库项目的位置, 加入如下代码:

<!– #BeginLibraryItem “/library/test.lbi” –><!– #EndLibraryItem –>

但是ecshop有自检功能, 每次在后台修改模板设置时会从数据库里读取资料与现有模板进行比较并删除现有模板的改动, 原因是在dwt文件里在类似标签<!– TemplateBeginEditable name=”主区域中间” –>和<!– TemplateEndEditable –>之内的代码变动都会被自动还原(测试结果, 具体程序没有分析), 所以为了避免代码被自动删除, 需要我们手动删除新加入库项目两端的<!– TemplateBeginEditable name=”主区域中间” –>和<!– TemplateEndEditable –>.

PS: 直接修改MySQL里ECS_library项, 在里面插入新条目, 更改模板后仍然会被删除, 具体Ecshop是如何实现对比和还原的, 还有待摸索.

前天为在ecshop里添加新的库项目发愁了很久, 今天才发现早已经有高手解决了这个问题, 保存一下, 以备后查.
转帖steadystone发表在Ecshop官方论坛的帖子. 查看原帖

以首页index.php作为例子

首先对 函数get_category_recommend_goods 做一些修改,应该是系统的BUG吧,cat_id不起作用
file:/includes/lib_goods.php
function:get_category_recommend_goods($type = ”, $cats = ”, $brand = 0, $min =0, $max = 0, $ext=”)
line:272
原内容:
$sql .= ” AND ( ” . $cats . ” OR ” . get_extension_goods($cats) .”)”;
修改后内容:
$sql .= ” AND (g.cat_id = ” . $cats . ” OR g.cat_id = ” . get_extension_goods($cats) .”)”;
(1)首页文件->\index.php
line:99 操作:参考添加
$smarty->assign(‘mylibrary‘, get_category_recommend_goods(‘mylibrary‘,’4’)); //我的库项目名称
(2)模板库文件声明和定义->\admin\includes\lib_template.php,每个模板允许设置的库项目
line:123 操作:参考修改
数组:page_libs
变量:index

原内容:
‘/library/member.lbi’ => 0,
‘/library/new_articles.lbi’ => 0,
‘/library/recommend_guide.lbi’ => 0,
‘/library/top10.lbi’ => 0,
‘/library/invoice_query.lbi’ => 0,
‘/library/recommend_best.lbi’ => 3,
‘/library/recommend_new.lbi’ => 3,
‘/library/recommend_hot.lbi’ => 3,
‘/library/recommend_promotion.lbi’ => 3,
‘/library/group_buy.lbi’ => 3,
‘/library/auction.lbi’ => 3,
‘/library/brands.lbi’ => 0,
‘/library/cart.lbi’ => 0,
‘/library/vote_list.lbi’ => 0
修改后内容:
‘/library/member.lbi’ => 0,
‘/library/new_articles.lbi’ => 0,
‘/library/recommend_guide.lbi’ => 0,
‘/library/mylibrary.lbi’ => 3,
‘/library/recommend_best.lbi’ => 3,
‘/library/recommend_new.lbi’ => 3,
‘/library/recommend_hot.lbi’ => 3,
‘/library/recommend_promotion.lbi’ => 3,
‘/library/group_buy.lbi’ => 3,
‘/library/auction.lbi’ => 3
(3)添加一个mylibrary.lbi库文件,文件路径为:\themes\bluesky\library\mylibrary.lbi
(4)给mylibrary.lbi添加后台名称,也就是修改语言包
文件\languages\zh_cn\admin\template.php
line:93 操作:参考添加
$_LANG[‘template_libs’][‘mylibrary‘] = ‘我的库项目’;
文件\languages\zh_cn\common.php
line:325 操作:添加
$_LANG[‘mylibrary‘] = ‘我的库项目’;
文件\languages\en_us\admin\template.php
line:96 操作:添加
$_LANG[‘template_libs’][‘mylibrary‘] = ‘My library‘;
文件\languages\en_us\common.php
line:321 操作:添加
$_LANG[‘mylibrary‘] = ‘My library‘;
文件\languages\zh_tw\admin\template.php
line:93 操作:添加
$_LANG[‘template_libs’][‘mylibrary‘] = ‘我的库项目’;//繁体
文件\languages\zh_tw\common.php
line:325 操作:添加
$_LANG[‘mylibrary‘] = ‘我的库项目’;//繁体
(5)添加mylibrary.lbiCSS,文件:\themes\bluesky\css\component.css,内容自定
(6)添加mylibrary.lbi内容,内容自定
(7)修改includes/lib_goods.php ,跟商品设置的数目有关
function:get_category_recommend_goods($type = ”, $cats = ”, $brand = 0, $min =0, $max = 0, $ext=”)
line:250
原内容:
$type2lib = array(‘best’=>’recommend_best’, ‘new’=>’recommend_new’, ‘hot’=>’recommend_hot’, ‘promote’=>’recommend_promotion’);
޸修改后内容:
$type2lib = array(‘best’=>’recommend_best’, ‘new’=>’recommend_new’, ‘hot’=>’recommend_hot’, ‘promote’=>’recommend_promotion’,’mylibrary‘=>’mylibrary‘);
(8)后台“设置模板”中修改位置,前台显示效果可以通过测试,暂时没有出现出错

本文地址:http://www.jwzzsw.com/archives/75.html

文章作者:思悟
版权所有 © 转载时请以链接形式注明作者和原始出处!

评论 共5条 (RSS 2.0) 发表评论

  1. 江阴家教资讯网说道:

    文章写的不错,拜读了!

  2. 全集然文明说道:

    事物共有的规律,知识的原子能,创造:全集然文明

  3. 168知识网说道:

    阅过博主文章,特地帮博主顶下,顺手留个脚印希望博主别介意

  4. 门新闻说道:

    博主,你的空间是国内的还是国外的,最近被空间搞的没有脾气了,想找个好一点的空间,看你的博客访问速度不错,咨询一下,谢谢了!

  5. HAHA说道:

    ECShop 模板库项目功能详解

发表评论

联系我 Contact Me

回到页首