• ECSHOP增加独立评论页面,并分页显示



    ecshop使用一个单独的页面来显示所有的评论,并在评论中显示会员 评论的商品 评论内容等。

    修改方法。


    首先建立三个文件,testp.php  test.dwt   test.lbi,test.php 就是最终的评论页面。

    在test.php中加入以下内容

    <?PHP
    $page = isset($_REQUEST['page'])   && intval($_REQUEST['page'])  > 0 ? intval($_REQUEST['page'])  : 1;
    $size = 15;
    
    
        $count = get_comments_count();
        $max_page = ($count> 0) ? ceil($count / $size) : 1;
        if ($page > $max_page)
        {
            $page = $max_page;
        }
        $goodslist = get_comments($size, $page);
        $smarty->assign('my_comments',       $goodslist);
      assign_pager( 'test', '', $count, $size, '', $order, $page,'', '', '', '', '','', '', '');
      assign_dynamic('test');
    
    $smarty->display('test.dwt');
    
    function get_comments($size, $page)
    {
       $display = $GLOBALS['display'];
        /* 获得评论列表 */
        $sql = 'SELECT a.*,b.goods_id,b.goods_name,user_name FROM '. $GLOBALS['ecs']->table('comment') .
                ' AS a,'. $GLOBALS['ecs']->table('goods') .'AS b WHERE a.status = 1 AND a.parent_id = 0 and a.comment_type=0 and a.id_value=b.goods_id '.
                ' ORDER BY a.add_time DESC';
        $res = $GLOBALS['db']->selectLimit($sql, $size, ($page - 1) * $size);
       $arr = array();
        while ($row = $GLOBALS['db']->fetchRow($res))
        {
      $arr[$row['comment_id']]['type']             = $row['goods_type'];
      $arr[$row['comment_id']]['add_time']       = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);
      $arr[$row['comment_id']]['content']       = $row['content'];
      $arr[$row['comment_id']]['id_value']       = $row['id_value'];
     $arr[$row['comment_id']]['goods_name']  = $row['goods_name'];
      $arr[$row['comment_id']]['user_name']       = $row['user_name'];
       }
      return $arr;
    
    }
    
    function get_comments_count()
    {
        return $GLOBALS['db']->getOne('SELECT COUNT(*) FROM ' . $GLOBALS['ecs']->table('comment'));
    }
    ?>

    test.dwt中写入以下内容

    <!-- #BeginLibraryItem "/library/pl.lbi" --><!-- #EndLibraryItem -->
      <!-- #BeginLibraryItem "/library/pages.lbi" --><!-- #EndLibraryItem -->


    test.lbi 中写入以下内容

    <!--{foreach from=$my_comments item=comments}-->
    <!-- {if $comments.user_name eq ''} -->"游客"<!-- {else} -->"{$comments.user_name}"<!-- {/if} -->在{$comments.add_time} 评论 <a style="107;" href="goods-{$comments.id_value}.html" >"{$comments.goods_name}"</a>:<br />
      <div style="color:#f92ab4;">"{$comments.content}"</div><br />
    <!-- {/foreach} -->

    然后修改 includes\lib_main.php 大约509 后面加入以下代码

    case 'test':
                $uri_args  = array('page'=>$page, 'order' => $order);
                break;

    最后把 test.php放入站点根目录,test.dwt放入模板目录,test.lbi放入对应模板的
    库项目目录。

    访问test.php就可以看到评论已经显示
    并可以分页了,这里只是介绍了程序的实现方法,模板中并未引入头部和底部的模板也没有为评论显示设计样式。在实际使用时可根据具体的网站来来设计评论显示的样式。

  • 相关阅读:
    SqlServer2016数据同步之使用发布/订阅功能同步数据
    .Net6+Furion+Sqlsugar+SenparcSdk开发微信公众号系列之二:搭建项目
    加速训练之 TFrecordsshard与并行化
    yomswmstmsbms 订单管理系统、仓库管理系统、运输管理系统、账单管理系统
    WPF文件下载帮助类
    前端知识学习05
    前端知识学习07
    使用express+nodejs+mysql实现一个简单的接口
    前端知识学习06
    http中的Get、Post、Put、Delete的区别
  • 原文地址:https://www.cnblogs.com/wangblognet/p/2832922.html
Copyright © 2020-2023  润新知