ECShop自定义模板库

ECSHOP前台的数据是调用模板库,也就是在\themes\your_template\library文件夹下的库文件。在这些库文件中都是采用smarty的标签引擎。接下来简要介绍一下如何使用自定义的模板库。

1.在themes\your_template\library文件夹下创建.lib结尾的文件。该目录下的库文件程序会自动读取,参照admin/template.php里$template_dir= @opendir(ROOT_PATH . 'themes/')。

注意:在这之后,我们要弄清楚的是ecshop是如何从数据库取出数据展现在前台的,也就是说我们需要知道前台的展示和库文件之间的关系。在这里我们要特别关注两个文件lib_main.php和lib_insert.php,其中lib_main.php文件封装了数据库取数据的操作,而lib_insert.php则负责把后台的数据取出给前台的文件。

2.创建lib_newcoment.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/newcoment.lbi');

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

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

    return $val;
}

 

最后我们创建显示最新评论的库文件newcoment.lib,之后在首页调用{insert name="index_new_comment" sum=8}就OK了。

你可能感兴趣的:(sql,PHP,cache)