数据调用方法

直接调用方法:

  例如调用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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值