Ecshop二次开发之自定义库文件和模…
2019-04-13 17:25发布
生成海报
Smarty的标签非常多,也比较繁琐,所以Ecshop使用了精简版的Smarty,其中用到的Smarty模板语法:
{$keywords} 输出模板变量
{$array.test.abc} 输出二维数组
{$lang.remark_package} 语言包$lang[remark_package]
{insert_scripts files='common.js'} 引入js文件
xxxx 循环
xxxx 判断
引入goods_tags.lbi库文件,相当于PHP的include
{*内容*} html注释,只在模板上显示,页面上会被删除掉.Ecshop二次开发的数据调用,主要动用到以下两个目录下的文件
dwt(模板文件)路径: themesdefault
lbi(库文件)路径: themesdefaultlibrary
举个例子就很清楚了,是我从网上找来的,由于转载得很严重,所以不知道真正出处。。
我们在themesdefaultlibrary下新建一个名为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条最新评论
- ?>
复制代码这样一个库文件就做好了。我们发现,库文件可以使用PHP、Smarty标签和HTML混写的写法,这无疑大大降低了我们二次开发的难度。这个库文件的作用,就是取出数据库中的10条最新评论,并且循环输出到模板。
接下来我们就要在模板中调用这个库文件,我们打开首页的模板themesdefaultindex.dwt(这里的dwt文件和页面都是一一对应,如商品页是goods.dwt,品牌页是brand.dwt)。我们在首页模板适当的地方加入:
-
@@@这里即使修改了也没反应@@@
复制代码这样就实现了自定义库文件的编写和调用。
细心的你可能会发现,在Ecshop的dwt模板文件中,调用库文件标签<–
#BeginLibraryItem “/library/和<– #EndLibraryItem
–>之间存在着一些和对应的lbi库文件中重复的内容。你可以把它们当作是注释,用Dreamweaver等编辑器编辑模板时候的需要看见的注释。
真正的库文件内容还需要到相应的库文件中去修改。好吧 ,就是这些,简单吧。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮