Jan Mendes, estou fazendo da seguinte maneira pra mudar o tema do sistema:
Meu "SiteController" extende "BaseController" que extende "CController". Então em "BaseController" foi adicionado as seguintes funções:
<?php
class BaseController extends CController
{
/**
* Utilizado para definir o tema baseado na escolha do usuário
* @param <type> $id
* @param <type> $module
*/
public function __construct($id,$module=null) {
parent::__construct($id,$module);
# Definicao do tema
$session = Yii::app()->session;
if (isset($session['tema'])) Yii::app()->setTheme($session['tema']);
}
/**
* Muda o tema do sistema
*/
public function actionChangeTheme() {
if ($_GET['tema'] != "") {
$_SESSION['tema'] = $_GET['tema'];
$this->redirect(Yii::app()->getRequest()->urlReferrer);
}
}
}
Em nosso layout principal "view/layouts/main.php" foi adicionado:
Os links para os estilos dentro da tag <header></header>
Já na estrutura de pastas eu tenho “assets”, “protected”, “themes” bla bla Sacou?
Isto quer dizer que meus temas estão fora de "protected" e dentro de "themes" eu tenho as pastas "classic" e "modern" e que ambas contém as pastas "css e images".