Ctreeview Jak Zmienić Template?

Cześć,

szukam odpowiedzi na pytanie jak w temacie, ale nie mogę znaleźć…

Potrzebuję dodać do każdej listy kilka znaczników html jak to zrobić w tym widżecie?

Cześć


$this->widget(

   'CtreeView', array(

      'cssFile'=> 'twoj css', //twój css do zmiany wyglądu

      'data'=>array(

         array(

            'text'=>'twój tekst' 

         ),

         array(

            'text'=>Chtml::link('twój link', 'url', array('class'='jakac klasa css')) // generuje HTML tab <a>

         ),

         array(

            'text'=>Chtml::tag('tag')."twój tekst".Chtml::closeTag('tag') // generuje dowolny HTML tag 

            //http://www.yiiframework.com/doc/api/1.1/CHtml#tag-detail

         ),

      )

   )

)

Reszta, w twoich rękach i Chtml.

Dzięki za odpowiedź .viktor., jednak takie rozwiązanie mnie nie satysfakcjonuję.

Aktualnie format tekstu robię w modelu:




private function formatTreeText($model)

     {

          $text = '<div class="list-tasks"><span class="id_color">#' . $model->id . '</span> ' .

                  CHtml::link($model->title, array('task/view', 'id' => $model->id)) .

                  ' <span class="status_color">' . $model->status . '</span> ' .

                  '<span class="title_color">' . $model->user->name . '</span> ' .

                  '<span class="p_color">' . $model->priority . '</span> ' .

                  '<span class="accomplished_color">' . $model->accomplished . '</span> ' .

                  '<span class="deadline_color">' . $model->deadline . '</span> ' .

                  '<span class="created_color">' . $model->created . '</span> ' .

                  '<span class="updated_color">' . $model->update . '</span> ' .

                  CHtml::link('<span class="glyphicon glyphicon-plus-sign"></span>', array('task/create', 'id' => $model->id), array('title' => 'Add subtask')) . '</div>'

          ;

          return $text;



Niezbyt fajnie to wygląda w modelu i chciałbym to przenieść do rozszerzonego widżetu CTreeView. Spoglądając na tą klasę //github.com/yiisoft/yii/blob/1.1.14/framework/web/widgets/CTreeView.php wnioskuję, że lista jest układana w JavaScript, bawił się ktoś z was rozszerzaniem CTreeView i modyfikowaniem standardowego formatowania listy i może coś poradzić?.

Dzięki.

Każdy widżet ma metodę init()




/**

* Initializes the widget.

* This method registers all needed client scripts and renders

* the tree view content.

*/

public function init()

{

...

    echo CHtml::tag('ul',$this->htmlOptions,false,false)."\n";

    echo self::saveDataAsHtml($this->data); // przygotowanie listy na podastwie tablicy data

}



ten widżet dodatkowo ma metodę odpowiedzialną za przygotwanie listy




public static function saveDataAsHtml($data)

{

...

}



możesz na bazie tego widżetu zaprojektować swój i wydaje mi się że wystarczy nadpisać saveDataAsHtml() oraz init()

[/php]