说明:
齐博标签里的参数变量默认是不可以内外之间传递使用的,在此齐博提供了一个方法。
如标签:{qb:hy}{/qb:hy} 与{qb:tag}{/qb:tag}里边的参数变量$_cfg数组变量
在他之后就可以通过函数val()进行使用,直接输出内容的话,就以这个格式 {:val('xxx')} 注意有冒号开头。他等同于在标签内的{$_cfg.xxx} 只因在标签外不能使用{$_cfg.xxx} 所以就只能用 {:val('xxx')} 代替
要想使用参考如下方法:
内传外:
在标签里插入这个固定代码
{php}val($_cfg?:[]);{/php}
如下:
{qb:tag name="rocschool" type="cms" rows="5" order="list" by="asc"} {php}val($_cfg?:[]);{/php} {/qb:tag}
外传内:
在外面定义
{php} $arr = ['uid'=>$uid]; val($arr?:[]); {/php}
如下:
{:val('uid')}//标签内常规调用 {if val('uid')} 值存在 {/if}//条件判断格式。注意:此时没有冒号
多标签混合:
页面中如果有多个标签,需混用,可给予一个标志符。比如在标签内需要加
{php}val($_cfg?:[],'roc');{/php}//roc就是这个的标志符
调用时需要增加标志符,如下:
{:val('xxx','roc')}//调用标志符为roc的里的xxx
后端说明:
方法路径:application/common.php
调用方法如下:
if(!function_exists('val')){ /** * 函数内外之间传递变量 * @param array|string $array 变量或字符串 * @param string $k 标志符,默认是label不设置的话,也可以,但会被最后的替换 * @return unknown */ function val($array='',$k='label'){ static $data=[]; if (is_array($array)) { $data[$k] = $array; }elseif(is_string($array) && $array!=''){ return $data[$k]?$data[$k][$array]:''; }else{ return $data[$k]; } } }
前端:
一、标签内变量转值到标签外
1、内传外,内部定义数组,外部指定即可。
二、标签外变量转值到标签内
1、外传内,外部定义数组,内部指定即可。
//这里外部,如下定义数组变量$arr,传两个参数['cid'=>$id,'did'=>$info.id]。也可传数值['x1'=>123,'x2'=>456] {php} $arr = ['cid'=>$id,'did'=>$info.id]; val($arr?:[]); {/php}
2、标签内调用外部传的变量
{qb:tag name="rocschool" type="cms" rows="5" order="list" by="asc"} <li> <a href="{$rs.url}">{$rs.title|get_word=100}--{:val('cid')}-{:val('did')}</a>//传值cid,did </li> {/qb:tag}
if判断写法
{qb:tag name="rocschool" type="cms" rows="5" order="list" by="asc"} //获取本内容页的ID,与标签内循环的内容ID相等,添加class样式 ck 使得高亮当前标题 <li {if condition="$rs.id==val('cid')"}class="ck"{/if}> <a href="{$rs.url}">{$rs.title|get_word=100}--{:val('cid')}-{:val('did')}</a> </li> {/qb:tag}
三、标签内外之间传值案例
1、圈子设置:采用标签内传值至外,获取圈子设置的参数
//获取标签圈子设置的变量值传到本页面的样式里 {qb:hy name="rocschool" type="myform" conf="qun_style/cp_store/set.php"} {php}val($_cfg?:[]);{/php} {/qb:hy}
当前页其它地方获取,如传的是设置样式
{:val('roc_bg1')?:val('roc_bg2')?:'#1cbbb4'}//判断背景颜色 {:val('roc_style1')?:val('roc_style2')?:'sidebar-yellow'}//判断选择风格样式
判断使用:如果设置里传过来的mylink为空,即就是没有设置圈子菜单则输出定义的菜单,如果不为空则循环输出设置的菜单
{if val('mylink')==''} <a href="{:urls('qun/content/abouts',['id'=>$id])}" title="关于"><span class="bg-1"><i class="ui-icon-team bg-01"></i></span>关于</a> <a href="{:urls('qun/content/contact',['id'=>$id])}" title="联系"><span class="bg-2"><i class="ui-icon-tel bg-02"></i></span>联系</a> <a href="{:get_url('msg','-'.input('id'))}" title="群聊"><span class="bg-3"><i class="ui-icon-comment bg-03"></i></span>群聊</a> <a href="{:urls('qun/member/index',['id'=>$id])}" title="粉丝"><span class="bg-4"><i class="ui-icon-user bg-04"></i></span>粉丝</a> <a href="{:urls('qun/map/index',['aid'=>$id])}" title="导航"><span class="bg-5"><i class="ui-icon-location bg-05"></i></span>导航</a> <a href="{:purl('signin/index/index',['id'=>$id])}" title="签到"><span class="bg-6"><i class="ui-icon-carryout bg-06"></i></span>签到</a> <a href="javascript:;" onclick="popBox()" title="分享"><span class="bg-7"><i class="ui-icon-share bg-07"></i></span>分享</a> <a href="javascript:;" onclick="make_haibao()" title="海报"><span class="bg-8"><i class="ui-icon-image bg-08"></i></span>海报</a> {else/} {volist name="$menudb" id="rs"} <a href="{$rs.url}" title="{$rs.name}"><span class="bg-{$i}"><i class="{$rs.style}"></i></span>{$rs.name}</a> {/volist} {/if}