说明:
齐博标签里的参数变量默认是不可以内外之间传递使用的,在此齐博提供了一个方法。
如标签:{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}