亚洲AV无码乱码在线观看AV,中文字幕国产二区看片资源,野花免费观看高清视频7,黄色片 网站,国产三级精品三级在线专区91

pbootcms增加foreach標簽指定內容按條件遍歷(默認逗號條件)

作者:PB模板網 時(shi)間:2022-04-13 12:54:18 瀏覽:2032 點贊(zan):208
2032

二開導讀

通(tong)過二開新增(zeng)的這個標簽可(ke)以實現按指定(ding)的字符進行(xing)遍(bian)(bian)歷(li),不填寫char參數(shu)默認使用逗(dou)號進行(xing)分割遍(bian)(bian)歷(li)。如下圖(tu):

圖中想把abcd用(yong)豎線進行(xing)分割,也可以使(shi)用(yong)逗(dou)號或其他(ta)自定義符號

image.pngimage.png

然后前臺用新增的標簽(qian)進行遍歷(li)調(diao)用

{pboot:foreach str={label:hotkey} char=|}
<a href="/search/?keyword=[foreach:name]" target="_blank" rel="nofollow">[foreach:name]</a>
{/pboot:foreach}

修改步驟

1、打開(kai)\apps\home\controller\ParserController.php,搜索(suo)“$this->parserReplaceKeyword”,在其下(xia)方增(zeng)加:

$content = $this->parserForeachLabel($content); // 指定隨意內容按條件遍歷 @pbhtml

image.png

2、繼續在之前文件里搜索“解析生成內容鏈接”,在其上方增加:

// 解析指定隨意內容遍歷,支持設定分隔符 @pbhtml
public function parserForeachLabel($content)
{
    $pattern = '/\{pboot:foreach(\s+[^}]+)?\}([\s\S]*?)\{\/pboot:foreach\}/';
    $pattern2 = '/\[foreach:([\w]+)(\s+[^]]+)?\]/';
    if (preg_match_all($pattern, $content, $matches)) {
        $count = count($matches[0]);
        for ($i = 0; $i < $count; $i ++) {
            // 獲取調節參數
            $params = $this->parserParam($matches[1][$i]);
            $str = '';
            $char = ',';
            
            if (! self::checkLabelLevel($params)) {
                $content = str_replace($matches[0][$i], '', $content);
                continue;
            }
            
            // 分離參數
            foreach ($params as $key => $value) {
                switch ($key) {
                    case 'num':
                        $num = $value;
                        break;
                    case 'str':
                        $str = $value;
                        break;
                    case 'char':
                        if ($value) $char = $value;
                        break;
                }
            }

            // 無數據直接替換為空并跳過
            if (! $str) {
                $content = str_replace($matches[0][$i], '', $content);
                continue;
            }
            
            // 匹配到內部標簽
            if (preg_match_all($pattern2, $matches[2][$i], $matches2)) {
                $count2 = count($matches2[0]); // 循環內的內容標簽數量
            } else {
                $count2 = 0;
            }
            
            $out_html = '';
            $key = 1;
            $arr = explode($char,$str);
            foreach ($arr as $value) { // 按查詢圖片條數循環
                $one_html = $matches[2][$i];
                for ($j = 0; $j < $count2; $j ++) { // 循環替換數據
                    $params = $this->parserParam($matches2[2][$j]);
                    switch ($matches2[1][$j]) {
                        case 'n':
                            $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $key) - 1, $one_html);
                            break;
                        case 'i':
                            $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $key), $one_html);
                            break;
                        case 'name':
                            $one_html = str_replace($matches2[0][$j], $this->adjustLabelData($params, $value), $one_html);
                            break;
                    }
                }
                $key ++;
                $out_html .= $one_html;
                if (isset($num) && $key > $num) {
                    unset($num);
                    break;
                }
            }
            $content = str_replace($matches[0][$i], $out_html, $content);
        }
    }
    return $content;
}

image.png

調用標簽

1、默認方式,用逗號進行分割,例如:定制表里填寫了a,b,c,然后通過遍歷組合生成搜索鏈接。

{pboot:foreach str={label:hotkey}}
<a href="/search/?keyword=[foreach:name]" target="_blank" rel="nofollow">[foreach:name]</a>
{/pboot:foreach}

2、其他分割符合,使用char參數,如:|

{pboot:foreach str={label:hotkey} char=|}
<a href="/search/?keyword=[foreach:name]" target="_blank" rel="nofollow">[foreach:name]</a>
{/pboot:foreach}

注意事項

二開文件(jian)隨著在線更新后會消失,在線更新后需要手動(dong)重新二開。

文章鏈接://bilinxiyi.cn/448.html
文章標題:pbootcms增加foreach標簽指定內容按條件遍歷(默認逗號條件)
文章版權:PB模板網 (bilinxiyi.cn) 所發布的內容,部分為原創文章,轉載請注明來源,網絡轉載文章如有侵權請聯系我們!
本文最后更新發布于2022-12-11 20:07:50,某些文章具有時效性,若有錯誤或已失效,請在下方留言或聯系客服:

相關閱讀

通知公告
PbootCMS安全提示
pbootcms網站上線后需要做防護
權限設置|主機防護|數據庫路徑...
我要查看