Dostosowanie wyglądu widoku admin (zii.widgets.grid.CGridView)

Witam serdecznie,

czy mógłby mi ktoś wyjaśnić w łopatologiczny sposób, jak mogę zmieniać wygląd (oraz wykonywać różne operacje na wartościach kolumn) w zii.widgets.grid.CGridView?

Jestem sobie ładnie w adminie, ale pewne kolumny posiadają wartości liczbowe, które mają określać wartości logiczne. W miejsce cyfry 1 lub 0 chcę wstawić odpowiedni obrazek, żeby to nie wyglądało tak surowo.

Jak można tego w prosty sposób dokonać nie modyfikując kodu *.grid.CGridView?

Możesz to zrobić za pomocą stylów:




		array(

			'name'	=>'grade_final',

			'value'=> 'CHtml::tag("span", array("class"=> ( ! $data->grade_final ) ? "css_false" : "css_true"), $data->grade_final)',

			'type'=>'html'

		),



Jeśli już chcesz użyć obrazków to Chtml::image():




		array(

			'name'	=>'grade_final',

			'value'=> 'CHtml::image( (! $data->grade_final ) ? "false.jpg" : "true.jpg")',

			'type'=>'html'

		),



tą tablicę wstawiasz zamiast nazwy kolumny w parametrach grida np. ‘grade_final’,

Mniej więcej coś takiego (mam nadzieję, że nie machnąłem się przy jakimś nawiasie) :).

No jestem pod wrażeniem; ucierpiały jednak na tym trochę walory estetyczne. Czy istnieje rozwiązanie, które nie opiera się na umieszczaniu kodu PHP w łańcuchu znaków?

Raczej nie ma. Ale możesz jeszcze zastanowić się nad tym:

rowCssClassExpression

Ja osobiście pola typu ‘boolean’ (0,1) staram się prezentować za pomocą etykiet np. ‘TAK’ lub ‘NIE’ co ładniej wygląda (także w filtrze). Za pole o wartości 0 można też podstawić wartość NULL - wtedy widget automatycznie pokaże wartość z właściwości ‘nullDisplay’.

Ogólnie to CGridView to cacuszko, uwielbiam tego widgeta a jeszcze bardziej automatyczne generowanie akcji admin w gii ;D

Chciałem w adminie walnąć ikonki tick.png i cross.png z famfamfam.com (nie mylić z fapfapfap) w polach logicznych bo wiadomo, klienci uwielbiają obrazki, ikonki, mrugające gify i czerwony Comic Sans, stąd pojawił się mój problem.

Chciałbym przeprosić za - pewnie dość często głupie - pytania, ale przechodzę z Kohana 2.X na Yii no i pewne rzeczy są dla mnie podniecającą nowością…

Polecam zastosować rozwiązanie z przykładowego bloga w postaci tabelki Lookup. U mnie sprawdza się świetnie w wielu projektach.