tp6多应用自定义taglib循环嵌套

程序猿 2021-03-26 09:55:08 1328浏览 加载中

tp6多应用自定义taglib标签一文中我们用到一个方法没有给详细解释,下面详细解释下。

$typeid = $this->varOrvalue($typeid);
// 代码
/**
 * 自动识别构建变量,传值可以使变量也可以是值
 * @access private
 * @param string $value 值或变量
 * @return string
 */
private function varOrvalue($value)
{
    $flag = substr($value, 0, 1);
    if ('$' == $flag || ':' == $flag) {
        $value = $this->autoBuildVar($value);
    } else {
        $value = str_replace('"', '\"', $value);
        $value = '"' . $value . '"';
    }
    return $value;
}

上面的方法就是在taglib循环嵌套的时候可以让需要的属性使用变量,在获取tag值的时候用下面方法获取

$typeid = !empty($tag['typeid']) ? $tag['typeid']: 0;
$typeid = $this->varOrvalue($typeid);

在循环的时候用下面方法,随便打个比方写个标签

{ht:channel id="vo"}
    {ht:article typeid="$vo.id" id="vo2"}
        {$vo.title}-{$vo2.title}-{$vo2.id}
    {/ht:article}
{/ht:channel}

在article标签中我们在获取typeid的时候使用了特殊方法,所以在给标签传值的时候可以使用变量。channel标签好比文章的分类,在循环分类的时候调用article标签,把分类下的文章也调用了出来。

标签: tp6 taglib
最后修改:2024-04-19 14:49:31

非特殊说明,本博所有文章均为博主原创。