17 12
发新话题
打印

教你在任何地方调用任何内容【代码级】

教你在任何地方调用任何内容【代码级】

知道我的人可能已经看到我昨天发的帖子,被逼无奈我为了这个功能要送极品域名。

我是要在首页调用详细的评论,功能已经实现,截图给大家看下。

由于很少涉及php,所以到处询问,所谓的各大ecshop技术交流群,给我最多的回答是:

“你多钱能做?我帮你问问”

ecshop很无私,开源给我们用,为什么我们不能真正做个技术交流群,交流!懂么

好了,不说了,昨天自己到百度搜了一些关于smart的一些文章,还有一个smart开发文章,现在分享给大家,并且就首页显示评论的功能教大家怎么去做,怎么个思维。



在这之前,请大家看看这篇文章
http://linux.chinaitlab.com/PHP/38324.html

smart手册我附件里下载

现在开始教大家这个功能的实现过程

首先大家要明白ecshop的目录结构

includes 【程序库文件,直观理解就是首页的php文件是直接调用功能函数的,而这些函数都在includes下集中保存了,方便调用】
themes  【模板目录】

功能要在 index.php 页面实现 html布局要写在 index.dwt 模板文件里

记住一个重要的思想:“index.php里我们把要显示的内容都保存到一个变量,,在到index.dwt显示出这个变量

理论上,我们在index.php加入php代码就可以了,但是为了程序结构清晰,我们把稍微复杂的程序写到includes函数库中。

下面我们怎么做呢,我们目前要考虑的是,把要调用的内容存在变量里,内容在哪呢,mysql数据库,对。

我选择了修改 lib_goods.php 这个库函数文件,主要参考了 调用最新商品的函数也在这里,所以就选择了这个文件,具体includes下的文件结构,我还不懂。

在任意位置,当然不要加到其他函数里面去了,添加如下代码:

【代码我也不太会写,主要参考了admin目录下的,comment_manage.php】

ps://后面的注释可以都删掉,我只是想给大家说明白为什么这样写
复制内容到剪贴板
代码:
/**
* 获得首页评论列表
*/
function get_comment_index()     //函数名 index.php我们要调用的
{

   $sql = "SELECT * FROM " .$GLOBALS['ecs']->table('comment'). " WHERE parent_id = 0 and status = 1 ORDER BY comment_id DESC LIMIT 5 ";  // 查询数据库,parent_id 0是用户的评论,屏蔽掉了管理员的回复;status 是允许显示的评论,limit 5 限制只显示5条,大家可以随意改
   $result = $GLOBALS['db']->getAll($sql);     // 执行这个查询
   $comment = array();                                //建立一个数组
    foreach ($result AS $idx => $row)           //建立循环,循环所有查询的条数
    {
     
       $comment[$idx]['id']          = $row['comment_id'];                              // 评论id ,,一般用不上,但这里调用了备用
        $comment[$idx]['name']        = $row['user_name'];                           // 评论人
        $comment[$idx]['content']     = $row['content'];                               //评论内容
        $comment[$idx]['rank']        = $row['comment_rank'];                     //评论分数
        $comment[$idx]['time']        = local_date($GLOBALS['_CFG']['time_format'], $row['add_time']);       //评论时间  [这个我没测试,结果不一定对]

         if ($row['comment_type'] == 0)         //comment_type 区别了是文章调用,还是商品调用
    {
        $sql = "SELECT goods_name FROM " .$GLOBALS['ecs']->table('goods'). " WHERE goods_id = '$row[id_value]'";    //查询商品表,id_value 是评论表里的数据,指定了评论对象的id
        $comment[$idx]['title'] = $GLOBALS['db']->getOne($sql);       //取得评论对象            
        $comment[$idx]['url']   = "goods.php?id=$row[id_value]";    //取得评论对象的url
    }
    else
    {
        $sql = "SELECT title FROM " .$GLOBALS['ecs']->table('article'). " WHERE article_id='$row[id_value]'";  //查询文章表 id_value 共用的
        $comment[$idx]['title'] = $GLOBALS['db']->getOne($sql);      //取得评论对象
        $comment[$idx]['url']   = "article.php?id=$row[id_value]";     //取得评论对象的url
    }
   
   
    }
    return $comment;
}


index.php :

88 行下面加上
复制内容到剪贴板
代码:
  $smarty->assign('comment', get_comment_index());      // 评论列表
大概理解为,get_comment_index() 函数取得的内容,送到comment 变量,在模板中调用

index.dwt:  大家自己分析吧,,能看懂这篇文章的,模板部分肯定没问题。回应功能还没做,日后需要加上。
复制内容到剪贴板
代码:
<!--------------------------评论调用 START ----------------------->
<!--{foreach from=$comment item=comment}-->
<UL class="tlst">
  <LI class="ilst" style="CLEAR: both"><A title=國產凌凌漆
  href="http://www.douban.com/subject/1307739/"><IMG class=fil alt=國產凌凌漆
  src="images/s2865043.jpg"></A> </LI>
  <LI class="clst"><SPAN class="pl ll obss"><SPAN class=starb><A
  href="http://url">{$comment.name}</A> 评论: <A
  href="{$comment.url}">{$comment.title}</A> </SPAN><SPAN
  class="stars{$comment.rank} stars"></SPAN></SPAN><BR><BR>
  <DIV class="pl">{$comment.content|truncate:90:"..."}<A class=pl href="http://url">(48回应)</A></DIV>
</LI></UL>
<DIV class=clear></DIV>
<!--{/foreach}-->
<!--------------------------评论调用 END--------------------------->
功能截图:


[ 本帖最后由 柴火 于 2008-7-21 11:27 编辑 ]

附件

smarty手册.chm (361.86 KB)

2008-7-21 11:25, 下载次数: 228

本帖最近评分记录
  • sonyr 体力 +10 LZ你太强悍了! 2008-8-27 18:30
  • asher +2 楼主你太伟大了。。 2008-8-27 00:37

TOP

这么好的资料,不顶对不起自己

TOP

哈哈,2楼的朋友,见笑了啊!~

好多都是自己理解的,专业人士看了肯定会忍不住笑。

TOP

汗,那个评论内容。。。。刚看到  

TOP

17722701 店长互助群

TOP

顶你!!!
提供美国空间,QQ:282633714,国内空间300M100元送100M数据库100M邮局

TOP

引用:
ecshop很无私,开源给我们用,为什么我们不能真正做个技术交流群,交流!懂么
支持

TOP

柴火我想点燃你.你和我最近遇上的事情好像.我也在玩命搞PHP.哈哈.

我研究了在首页任意调用产品的程序.也准备要贴出来的.你的不错.顶下

ECSHOP求助QQ群:67674574

TOP

Do everything as u can do, everything will be going well .

TOP

楼主太伟大了。。
生日礼物-+ 礼品-+ 别给我发PM。。

TOP

 17 12
发新话题