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ść,
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]