2017-06-19 74 views
2

我使用電離CMS爲我的網站的後端,我想創建自己的標籤 - 從我自己的表傳遞數據。我遵循This教程來創建自定義標記,並通過 - 將數據傳遞到視圖,但我不斷收到錯誤:如何用codeigniter迭代ionize-cms中的數組?

標記缺失:演示,範圍:。

這是我的觀點:

<ul> 
    <ion:demo:details> 
     <li><ion:detail field="user_name" /></li> 
    </ion:demo:details> 
</ul> 

這裏是我加入到TagManager.php

public static $tag_definitions = array 
    (
    // <ion:demo:authors /> calls the method 「tag_details」 
    "demo:details" =>  "tag_details", 
    "demo:details:detail" => "tag_detail", 
    ); 

的變化我還試圖創建一個簡單的笨控制器和傳遞數據與視圖()並做類似的事情:

<ul> 
    <?php foreach($details as $detail): ?> 
    <li> 
    <?php echo $detail['name'] ?> 
    </li> 
    <?php endforeach ;?> 
</ul> 

但我得到und定義的錯誤爲$details

+0

請你展示你的控制器? –

+0

B.德賽,謝謝,電離CMS有2主控制器頁面和文章,當我在數據庫中創建一個網頁它正在通過它們,所以唯一的辦法傳遞變量查看與TagManager - 像教程 - 在我後....我的問題是,我不明白如何迭代變量..... – RoyBarOn

回答

5

改變了標籤,現在是很好的。

<?php 
class TagManager_Data extends TagManager 

{ 
    public static $tag_definitions = array(

     "authors" => "tag_authors", 
     "authors:author" => "tag_author", 
    ); 

    public static function index(FTL_Binding $tag) 
    { 
     $str = $tag->expand(); 
     return $str; 
    } 

    public static function tag_authors(FTL_Binding $tag) 
    { 
     $str = ''; 
     $authors = [["name" => 'josh', "foo" => 'josh'], ["name" => 'joshjosh', "foo" => 'josh'], ["name" => 'josh', "foo" => 'josh']]; 
     foreach($authors as $author) { 
     $tag->set('author', $author); 
     $str.= $tag->expand(); 
     } 

     return $str; 
    } 

    public static function tag_author(FTL_Binding $tag) 
    { 
     $field = $tag->getAttribute('field'); 
     if (!is_null($field)) { 
     $author = $tag->get('author'); 
     if (!empty($author[$field])) { 
      return self::output_value($tag, $author[$field]); 
     } 

     return self::show_tag_error($tag, 'The attribute <b>"field"</b> is not set'); 
     } 
    } 
}