zoukankan      html  css  js  c++  java
  • ThinkPHP中Widget的两种写法及调用

    Widget扩展一般用于页面组件的扩展,在页面根据需要输出不同的内容,下面介绍一下ThinkPHP中Widget的两种写法及调用

    写法一:

    ArticlWidget.class.php文件:

    class ArticleWidget extends Widget {
    
        /**
         * 
         * @param array $data
         * @return type
         * 调用方法:{:W('ArticleList',array('cid'=>25,'limit'=>5))}
         * cid为分类id,limit为调用数量
         */
        public function render($data) {
    
            $Article = M('Article');
            $articleMap["cid"] = $data["cid"];
            $data["articleList"] = $Article->where($articleMap)->order('id desc')->limit($data["limit"])->select();
            foreach ($articleList as $key => $value) {
                if ($value["thumbnail"] == "") {
                    $data["articleList"][$key]["thumbnail"] = '/Public/Img/Common/noThumbnail.jpg';
                }
            }
    
            return $this->renderFile('articleList', $data);
        }
    
    }

    模板文件articleList.html在Lib/Widget/Article目录下

    <volist name="articleList" id="articleList_vo">
        <li>
            <a href="__APP__/Channel/articleDetail/code/article/id/{$articleList_vo.id}" title="{$articleList_vo.title}">{$articleList_vo.title}</a>
        </li>
    </volist>

    写法二:

    class ArticleWidget extends Action {
    
        /**
         * 
         * @param array $data
         * @return type
         * 调用方法:{:R('Article/articleList',array('cid'=>25,'limit'=>5),'Widget')}
         * cid为分类id,limit为调用数量
         */
        public function articleList($cid, $limit) {
    
            $Article = M('Article');
            $articleMap["cid"] = $cid;
            $data = $Article->where($articleMap)->order('id desc')->limit($limit)->select();
            foreach ($data as $key => $value) {
                if ($value["thumbnail"] == "") {
                    $data[$key]["thumbnail"] = '/Public/Img/Common/noThumbnail.jpg';
                }
            }
    
            $this->assign('articleList', $data);
            $this->display('Widget:articleList');
        }
    
    }

    模板文件articleList.html,内容同写法一,但放在Tpl/风格名/Widget/目录下

    如果模板文件放在ArticleWiget.class.php文件所在目录的Article文件夹下,则写法如下:

    $this->display(dirname(__FILE__) . '/Article/articleList.html');
  • 相关阅读:
    网站服务器架构设计
    使用同步或异步的方式完成 I/O 访问和操作(Windows核心编程)
    堆栈上的舞蹈之释放重引用(UAF) 漏洞原理实验分析
    内核模式下的线程同步的分析(Windows核心编程)
    用户模式下的线程同步的分析(Windows核心编程)
    Linux下部署Django项目
    HDU 2075 A|B?
    HDU 2052 Picture
    HDU 2024 C语言合法标识符
    HDU 2026 首字母变大写
  • 原文地址:https://www.cnblogs.com/yhdsir/p/5026297.html
Copyright © 2011-2022 走看看