aplicar um estilo diferente

Eu tenho no controlador este layout:


public $layout='//layouts/column2';

No Column2:


<div class="span-17 last">

Como posso acrescentar mais uma classe a este div apenas numa certa view?

in controller use like this

em uso controlador como esse

$this->layout=‘print_wrapper’;

Mas tenho que utilizar outro layout só por causa de uma classe diferente?

Sim, eu penso assim

Não posso passar parametros para dentro do layout?

pode fazer assim:




<div class="span-17 last<? if($this->getId()=='meucontroller' && $this->getAction()->getId() == 'nomedaaction'): echo " classe-especifica"; ?>">

E no caso de serem várias views?

Não dá para enviar um parâmetro em vez de dizer especificamente qual é a view?

Voce também pode aplicar o nome da classe consoante a ação, assim:


<div class="span-17 last<? echo $this->getId() . '-' $this->getAction()->getId(); ?>">

e no css aplicar o estilo para as suas actions:


.controller-accao1 {

  ...

}


.controller-accao2, .controller-accao3 {

  ...

}

A yii framework utiliza Blueprint como CSS framework dái termos definido na definição da nossa aplicação por defeito :


<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()-

>request->baseUrl; ?>/css/main.css" />

<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()-

>request->baseUrl; ?>/css/form.css" />

para definir um layout diferente temos que aplicar o controlador , algo deste genêro:




class Login extends Controller

{


// significa que vamos ter um ficheiro css com o nome newlayout.css referente que vai ser executado sempre

// que a página de login for executada 

public $layout='newlayout';




}

Espero que tenha ajudado

Cumprimentos