博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据调用方法
阅读量:6678 次
发布时间:2019-06-25

本文共 2215 字,大约阅读时间需要 7 分钟。

直接调用方法:

 
例如调用cate 
         <ul class="nav"> 
             <php>
               $cate = M('cate')->order('sort')->select();
               import('Class.Category',APP_PATH);
                $cate = Category::unlimitedForLayer($cate);
               </php>
                    <foreach name="cate" item="v">
                        <li>
                            <a href="">{$v.name}</a>
                            <ul class="subnav" style="display:none;">
                                <foreach name="v.child" item='value'>
                                    <li><a href="">{$value.name}</a></li>
                                </foreach>
                            </ul>
                        </li>
                    </foreach>
        </ul>

自定义标签方法:

1、在相应分组下TagLib文件夹中 建立文件如: TagLibNav.class.php
内容如下:
    注意:
    
    
1)、自定义的固定格式
    
    2)、注意使用"\"进行双引号中变量的转义,也可以用单引号,就不需要转义了,那得一句一句写,使用 ".="进行连接。
说明: $attr是传递了自定义标签的attribute的array , $content传递了自定义标签的内容,
<?php 
import('TagLib');
/**
* 自定义标签,来自视频40
*/
class TagLibNav extends TagLib{
    protected $tags = array(
        'nav'=>array('attr'=>'limit,order','close'=>1),
        );
    public function _nav($attr,$content){
        // echo $attr;
        // echo $content;
        $attr = $this->parseXmlAttr($attr);
        $limit = $attr['limit'];
$str = <<<str
<?php
    \$cate = M('Cate')->order("{$attr['order']}")->limit({$attr['limit']})->select();
    import('Class.Category' ,APP_PATH);
    \$cate = Category::unlimitedForLayer(\$cate);
    foreach (\$cate as \$v) :
        extract(\$v);
    \$url = U('/c_' . \$id);
?>
str;
        $str .= $content;
        $str .= '<?php endforeach;?>';
        return $str;
    }
}
?>
2、在相应的分组config.php中配置
    
 
  
'APP_AUTOLOAD_PATH'
=
>
'@.TagLib'
,
    'TAGLIB_BUILD_IN'=>'Cx,Nav',
3、在相应的文件里使用自定义标签
                
<nav limit='6' order='sort ASC'>   
                        <li><a href="{$url}">{$name}</a></li>
                        <ul>
                            <foreach name ='child' item='v'>
                                 <li><a href="{:U('/c_' . $v['id'])}">{$v.name}</a></li>
                            </foreach>
                        </ul>
                    </nav>

Widget方法:

1、在相应分组中建立Widget\HotWidget.class.php
   
 
<
?
php 
/**
* 自定义widget
*/
class HotWidget extends Widget
{
   
    public function render($data)
    {
        // p($data);
        // return "测试";
        // $blog = M('blog')->field(array('id','title','click'))->order('click Desc')->limit(5)->select();
        // p($blog);
        $data['blog'] = M('blog')->field(array('id','title','click'))->order('click Desc')->limit(5)->select();
        return $this->renderFile('',$data);
    }
}
 ?>
2、建立模板文件Widget\Hot\Hot.html
<dl>
    <dt>热门博文(widget)</dt>
    <foreach name ='blog' item ='v'>
        <dd><a href="{:U('/' .$v['id'])}">{$v.title}</a> <span>{$v.click}</span></dd>
    </foreach>
</dl>
3、调用
  
  {
:
W(
'Hot'
,
array
(
'id'
=
>
100
))}
调用时可传入参数,用array形式传入。

转载于:https://www.cnblogs.com/fansino/p/3555946.html

你可能感兴趣的文章
Node.js: 一个刚刚够用的 HTTPS 服务器
查看>>
基于 Django REST Framework 实现业务 api 并自动文档化
查看>>
Android应用安全常见问题及解决方案
查看>>
面试题解 | 创建最大数
查看>>
蚂蚁金服SOFAMesh在多语言上的实践 | CNUTCon 实录
查看>>
读Zepto源码之Fx模块
查看>>
蚂蚁双11的这群筑梦师
查看>>
彻底搞懂HTTPS的加密机制
查看>>
使用jstack确认saiku报表刷新缓存无法访问问题
查看>>
2018,一个转行程序员的成长 | 掘金年度征文
查看>>
[Android]后端之路--整合SSM(Spring+SpringMVC+MyBatis)框架(2)
查看>>
深入理解虚拟机之类文件结构
查看>>
深入Spring Boot--使用Arthas排查应用404/401问题
查看>>
从路由原理出发,深入阅读理解react-router 4.0的源码
查看>>
0707 - iTips v0.0.1
查看>>
ConstraintLayout 属性详解 和Chain的使用
查看>>
java基础(三) 加强型for循环与Iterator
查看>>
ReactNaive之CSS和Flex布局
查看>>
ES6-import 和 export
查看>>
[Day 2] 听说你没来 JSConf 2017?
查看>>