alttribute labels del model e lettere accentate

Ho un problema stupidissimo con Yii.

Se nella descrizione delle attribute labels del model metto dei caratteri accentati, nel browser viene segata via tutta la parola

Per esempio, nel model ho:




class Issue extends CActiveRecord

{

....

	/**

	 * @return array customized attribute labels (name=>label)

	 */

	public function attributeLabels()

	{

		return array(

			'id' => 'ID',

			'name' => 'Nome',

			'description' => 'Descrizione',

			'project_id' => 'Progetto',

			'type_id' => 'Tipo',

			'status_id' => 'Status',

			'priority_id' => 'Priorità',

....

   



e nella view ho




<div class="view">

....

	<b><?php echo CHtml::encode($data->getAttributeLabel('priority_id')); ?>:</b>

	<?php 

		echo '<span id="' .$data->priority->getCssClass() .'">';

		echo CHtml::encode($data->priority->getText());

		echo '</span>';

	?>






però quello che ottengo a video è che la descrizione del campo priority viene troncata, mentre riappare se tolgo la a accentata.

Credo di avere settato come charset utf-8 un pò dappertutto, ma forse trascuro qualcosa.

Qualche idea?

Roberto

Confermo di avere il charset settato a UTF-8, almeno è quello che ottengo con




>>echo Yii::app()->charset;

UTF-8

>>



Ho risolto così

Model:




class Issue extends CActiveRecord

{

....

	/**

	 * @return array customized attribute labels (name=>label)

	 */

	public function attributeLabels()

	{

		return array(

			'id' => 'ID',

			'name' => 'Nome',

			'description' => 'Descrizione',

			'project_id' => 'Progetto',

			'type_id' => 'Tipo',

			'status_id' => 'Status',

			'priority_id' => CHtml::decode("Priorit&agrave;"),

....

   



View:




<div class="view">

....

	<b>

        <?php 

                /* tolto il CHtml::encode */

                echo $data->getAttributeLabel('priority_id'); 

        ?>:

        </b>

	<?php 

		echo '<span id="' .$data->priority->getCssClass() .'">';

		echo CHtml::encode($data->priority->getText());

		echo '</span>';

	?>






ma se devo dire che mi piace…

Roberto

Penso che il problema sia dovuto al fatto che fai l’encode di qualcosa che non ne ha bisogno, tant’è che hai risolto aggiungendo il decode in [size=“2”]attributeLabels[/size]

Quindi a logica presumo che anziché usare:

[color="#660066"]CHtml[/color][color="#666600"]::[/color][color="#000000"]encode[/color]color="#666600";[/color]

tu debba usare un qualcosa del genere:

[color="#660066"][size=“2”]CHtml[/size][/color][color="#666600"][size=“2”]::scriviSenzaFare[/size][/color][size=“2”]Encode[/size][color="#666600"]size=“2”;[/size][/color]

ne approfitto per chiedere una delucidazione agli esperti.

Ma a cosa serve inserire nel modello gli attributeLabel ?

Non sarebbe più comodo, pratico e veloce inserire nella view direttamente le scritte?

In pratica sostituire direttamente:

[color="#660066"]CHtml[/color][color="#666600"]::[/color][color="#000000"]encode[/color]color="#666600";[/color]

con il risultato:

[color=#008800]Priorità[/color]

E se cambi la label? Dopo devi andare a modificarla sia nel file _form, che nel gile _view o view, se il campo è una chiave esterna di un’altra tabella devi fare la stessa cosa in tutti gli altri _form e _view o view.

Se ci pensi la lable è una informazione legata al dato, dunque al model. La view serve solo per impaginare i dati. Non è dato sapere, alla view, cosa c’è dentro le variabili. Sa solo che ci sono dei div con dei css. O per lo meno dovrebbe.