分享好友 cms教程首页 频道列表

Ecshop二次开发之自定义库文件和模板数据调用实例

ecshop教程  2015-08-01 17:280

本文实例讲述了Ecshop二次开发之自定义库文件和模板数据调用方法。分享给大家供大家参考。具体方法如下:

Smarty的标签非常多,也比较繁琐,所以Ecshop使用了精简版的Smarty,其中用到的Smarty模板语法:

{$keywords} 输出模板变量
{$array.test.abc} 输出二维数组
{$lang.remark_package} 语言包$lang[remark_package]
{insert_scripts files='common.js'} 引入js文件
<!-- {foreach from=$property_group item=property} -->xxxx<!-- {/foreach} --> 循环
<!-- {if $package_goods_list} -->xxxx<!-- {/if} -->  判断
<!-- #BeginLibraryItem "/library/goods_tags.lbi" --><!-- #EndLibraryItem -->  引入goods_tags.lbi库文件,相当于PHP的include
{*内容*}  html注释,只在模板上显示,页面上会被删除掉.Ecshop二次开发的数据调用,主要动用到以下两个目录下的文件
dwt(模板文件)路径: themes\default
lbi(库文件)路径: themes\default\library
举个例子就很清楚了,是我从网上找来的,由于转载得很严重,所以不知道真正出处。
我们在themes\default\library下新建一个名为newest_comments.lbi的库文件,写入以下内容:

复制代码
代码如下:
if(!function_exists("get_new_comments")){
function get_new_comments($num)
{
$sql = 'SELECT * FROM '. $GLOBALS['ecs']->table('comment') .
' WHERE status = 1 AND parent_id = 0 and comment_type=0 '.
' ORDER BY add_time DESC';
if ($num > 0)
{
$sql .= ' LIMIT ' . $num;
}
//echo $sql;
$res = $GLOBALS['db']->getAll($sql);
$comments = array();
foreach ($res AS $idx => $row)
{
$comments[$idx]['add_time'] = $comments[$idx]['add_time'] = local_date
($GLOBALS['_CFG']['time_format'], $row['add_time']);
$comments[$idx]['user_name'] = $row['user_name'];
$comments[$idx]['content'] = $row['content'];
$comments[$idx]['id_value'] = $row['id_value'];
}
return $comments;
}
}
$this->assign('new_comments',get_new_comments(10)); // 10条最新评论
?>
<!--数据调用-最新评论开始 -->
<div class="comments">
<!--{foreach from=$new_comments item=comment}--></p> <p><div class="t_l f_l"><a href="goods.php?id={$comment.id_value}">
{$comment.content|truncate:15:""}</a></div>
<div class="d_r f_r">时间:{$comment.add_time}</div>
<!--{/foreach}--></div>

这样一个库文件就做好了。我们发现,库文件可以使用PHP、Smarty标签和HTML混写的写法,这无疑大大降低了我们二次开发的难度。这个库文件的作用,就是取出数据库中的10条最新评论,并且循环输出到模板。

接下来我们就要在模板中调用这个库文件,我们打开首页的模板themes\default\index.dwt(这里的dwt文件和页面都是一一对应,如商品页是goods.dwt,品牌页是brand.dwt)。我们在首页模板适当的地方加入:

复制代码
代码如下:
<!-- #BeginLibraryItem "/library/newest_comments.lbi" --> @@@这里即使修改了也没反应@@@<!-- #EndLibraryItem -->

这样就实现了自定义库文件的编写和调用。

细心的你可能会发现,在Ecshop的dwt模板文件中,调用库文件标签<– #BeginLibraryItem “/library/和<– #EndLibraryItem –>之间存在着一些和对应的lbi库文件中重复的内容。你可以把它们当作是注释,用Dreamweaver等编辑器编辑模板时候的需要看见的注释。 真正的库文件内容还需要到相应的库文件中去修改。好吧 ,就是这些,简单吧。

希望本文所述对大家的ecshop二次开发有所帮助。

查看更多关于【ecshop教程】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
ecshop配送方式里同时出现两个顺丰快递的解决方法
这篇文章主要介绍了ecshop配送方式里同时出现两个顺丰快递的解决方法,需要的朋友可以参考下

0评论2015-10-29471

ECSHOP全部品牌页实现分页换页功能方法
这篇文章主要介绍了ECSHOP全部品牌页实现分页换页功能方法,需要的朋友可以参考下

0评论2015-10-22549

在ECSHOP商品搜索页显示商品货号的方法
这篇文章主要介绍了在ECSHOP商品搜索页显示商品货号的方法,需要的朋友可以参考下

0评论2015-10-22230

在ECSHOP的商品列表调用评论数量的方法
这篇文章主要介绍了在ECSHOP的商品列表调用评论数量的方法,需要的朋友可以参考下

0评论2015-10-22152

ECSHOP模板系统控制标签使用介绍
这篇文章主要介绍了ECSHOP模板系统控制标签使用介绍,需要的朋友可以参考下

0评论2015-10-22136

ECSHOP模版系统显示标签使用介绍
这篇文章主要介绍了ECSHOP模版系统显示标签使用介绍,需要的朋友可以参考下

0评论2015-10-22172

ECSHOP模板系统变量调节标签使用说明
这篇文章主要介绍了ECSHOP模板系统变量调节标签使用说明,需要的朋友可以参考下

0评论2015-10-22171

ecshop配送方式和对应的文件整理
这篇文章主要介绍了ecshop配送方式和对应的文件整理,需要的朋友可以参考下

0评论2015-10-22147

修改ECSHOP评论表单中的Email为非必填的修改方法
这篇文章主要介绍了修改ECSHOP评论表单中的Email为非必填的修改方法,需要的朋友可以参考下

0评论2015-10-2295

ECSHOP购物车页面显示商品简单描述的实现方法
这篇文章主要介绍了ECSHOP购物车页面显示商品简单描述的实现方法,需要的朋友可以参考下

0评论2015-10-22192

在ECSHOP后台会员列表添加手机号查询功能的方法
这篇文章主要介绍了在ECSHOP后台会员列表添加手机号查询功能的方法,需要的朋友可以参考下

0评论2015-10-22173

分享几个Ecshop中二次开发的常见方法
Ecshop虽然写的很烂,但是也是一种解决方法,如让我们自己开发一个这样的商城,也是费时费力得不偿失,烂就烂点吧,我们可以通过二次开发,让他边的很强大,下面介绍几个Ecshop中二次开发的常见方法

0评论2015-10-22183

ECSHOP模版系统Assign和Include模版标签使用介绍
这篇文章主要介绍了ECSHOP模版系统Assign和Include模版标签介绍,需要的朋友可以参考下

0评论2015-10-22161

ECSHOP中的会员中心2条修改方法(等级价格.vip)
会员对于我们的网站有很深远的影响,拥有一群粘性用户是成功的关键,那么我们如何去吸引会员注册然后转化会员为高级会员呢,比如我们可以让所有会员都成为VIP会员,对于VIP会员,显示相对优惠的价格,而对于匿名购买的用户就没有优惠

0评论2015-10-22155

ecshop 添加左侧菜单需要修改的部分文件
这篇文章主要介绍了ecshop 添加左侧菜单需要修改的部分文件,需要的朋友可以参考下

0评论2015-08-11198

ecshop二次开发 购物时为每件商品添加备注信息的修改方法
ecshop二次开发 购物时为每件商品添加备注信息的修改方法,需要的朋友可以参考下。

0评论2015-08-02122

去掉echsop头部和底部的所有的版权的详细步骤
有很多网友在问我怎么去掉echsop的版权问题,今天告诉大家怎么去掉这些版权(这里只针对V2.7.1版本,当然其他版本我没有看过,大家可以找相应的文件

0评论2015-08-02119

更多推荐