您好,欢迎来到菜鸟吧源码网-本站资源仅供学习与参考,禁止用于商业或违法行为!
  • 首 页
  • 下载APP
  • 公告:菜鸟吧APP于2024.9.15正式上线,请首页右上角进入下载,本站资源均来源于互联网及会员投稿发布,所有资源仅供学习参考研究使用,请勿商用或其它非法用途,商用请购买正版,否则产生一切后果由用户自行承担!谢谢!

     

    当前位置:主页 > 站长学堂 > ecshop >
    Ecshop二次开发自定义库文件和模板数据调用案例
    时间:2019-10-15 14:30 作者:菜鸟哥 浏览:收藏 挑错 打印

    这篇文章主要为大家介绍了Ecshop二次开发之自定义库文件和模板数据调用方法,是进行ecshop二次开发中非常实用的重要技巧,涉及底层库文件的修改与应用,需要的朋友可以参考下

    本文实例讲述了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}" target="_blank">

      {$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模板文件中,调用库文件标签<&ndash; #BeginLibraryItem “/library/和<&ndash; #EndLibraryItem &ndash;>之间存在着一些和对应的lbi库文件中重复的内容。你可以把它们当作是注释,用Dreamweaver等编辑器编辑模板时候的需要看见的注释。 真正的库文件内容还需要到相应的库文件中去修改。好吧 ,就是这些,简单吧。

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

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请给我们来信:cainiaovip8@qq.com,我们尽快处理。

    修改ECSHOP评论表单中的Email为非必填的教程修改ECSHOP评论表单中的Email为非必填
    介绍ecshop中如何添加限时抢购功能介绍ecshop中如何添加限时抢购功能
    ecshop数据库ecs_stats短时间内会变很大的解决方案ecshop数据库ecs_stats短时间内会变很