自定义ecshop模板库

 

首先:ecshop系统本身没有自己的标签库,他带了一系列的框架文件和模版库文件,搭建模版时使用模版框架搭建界面,具体的数据展示是模版框架调用模版库,在模版库里写数据和数据展示格式,它的数据也不像其他cms那样的自定义标签,而是使用smarty这个标签引擎的,这里说下如何自定义标签库

 

 

1,在themes\模版名称\library 下建立模版库文件

 

   这个目录是系统自带的模版库,大部分功能都是用它们完成的,这里重要的是自定义模版库。

 

   方法很简单,新建一个文件 以.lbi后缀就行了,程序自己会读取目录文件展示

 

   具体在admin/template.php里$template_dir= @opendir(ROOT_PATH . 'themes/');


   重要的是如何从数据库里读取数据并展示出来

 

   ecshop里有2个文件 必须要知道

 

   lib_main.php   从数据库里取数据的文件

 

   lib_insert.php 封装后台取得的数据给前台的文件,因为在php里使用smarty取函数的数据时,需要使用insert,所以这里命名为lib_insert.php

 

   这里,我们为了不混淆自己的函数和ecshop的函数,我们自己创建这样的两个文件,lib_zhp_function.php和 lib_insert.php功能和ecshop里的lib_main.php和lib_insert.php一样。

 

   下面以“在首页取最新的评论”为例:

 

    首先我在lib_zhp_function.php里写取最新评论的函数

 

 

function index_new_comment($sum)

{

    

 

    /* 取得评论列表 */

    $sql = 'SELECT * FROM ' . $GLOBALS['ecs']->table('comment') .

            " WHERE status = 1 AND parent_id = 0".

            ' ORDER BY addtime DESC';

    $res = $GLOBALS['db']->selectLimit($sql, $sum["sum"], 0);

 

    $arr = array();

    $ids = '';

    while ($row = $GLOBALS['db']->fetchRow($res))

    {

        $ids .= $ids ? ",$row[comment_id]" : $row['comment_id'];

        $arr[$row['comment_id']]['id']       = $row['comment_id'];

        $arr[$row['comment_id']]['email']    = $row['email'];

        $arr[$row['comment_id']]['username'] = $row['user_name'];

        $arr[$row['comment_id']]['content'] = str_replace('\r\n', '<br />', htmlspecialchars($row['content']));

        $arr[$row['comment_id']]['content'] = str_replace('\n', '<br />', $arr[$row['comment_id']]['content']);

        $arr[$row['comment_id']]['rank']     = $row['comment_rank'];

        $arr[$row['comment_id']]['add_time'] = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);

    }

    

    $cmt = array('comments' => $arr);

 

    return $cmt;

}

 

 

其次 在lib_insert.php封装数据给前台界面

 

 

function insert_index_new_comment($sum=8){

 

    $need_cache = $GLOBALS['smarty']->caching;

    $need_compile = $GLOBALS['smarty']->force_compile;

 

    $GLOBALS['smarty']->caching = false;

    $GLOBALS['smarty']->force_compile = true;

 

    /* 验证码相关设置 */

    if ((intval($GLOBALS['_CFG']['captcha']) & CAPTCHA_COMMENT) && gd_version() > 0)

    {

        $GLOBALS['smarty']->assign('enabled_captcha', 1);

        $GLOBALS['smarty']->assign('rand', mt_rand());

    }

    $GLOBALS['smarty']->assign('username',     stripslashes($_SESSION['user_name']));

    $GLOBALS['smarty']->assign('email',        $_SESSION['email']);

    $GLOBALS['smarty']->assign('comment_type', $arr['type']);

    $GLOBALS['smarty']->assign('id',           $arr['id']);

    $cmt = index_new_comment($sum);

    $GLOBALS['smarty']->assign('comments',     $cmt['comments']);

    $GLOBALS['smarty']->assign('pager',        $cmt['pager']);

 

 

    $val = $GLOBALS['smarty']->fetch('library/test.lbi');

 

    $GLOBALS['smarty']->caching = $need_cache;

    $GLOBALS['smarty']->force_compile = $need_compile;

 

    return $val;

}

然后 需要创建显示评论的模版库,test.lbi

 

 

最后在首页里调用就行了:

{insert name="index_new_comment" sum=8}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值