alterar Themes UI utilizando JUI EJqueryUiInclude

Estou desenvolvendo um sitema que no layout estou usando este widget para colocar o tema, alguem poderia me ajudar como eu faço para alterar via ajax o tema deste widget.


$this->widget('backend.extensions.jui.EJqueryUiInclude', array('theme'=>'vader'));

No topo do layout vai listar todos os temas, ai ele seleciona um tema e sem dar o reflesh eu gostaria de aplicar o tema, e salvar este tema no profile do usuário.

Obrigado

Edson,

Pode usar esse widget:

http://jqueryui.com/docs/Theming/ThemeSwitcher

Ai nas funções dele tu usa requisição ajax pra fazer update nos dados do usuário.

Mais se eu colocar no layout num vai fica lento pois carrega de eoutros arquivos externo?

Valew

No meu admin, eu uso personalização do layout, usando esses temas do jqueryui, mais não fiz por ajax.

Só listei no <select> e quando submeter o formulário, e salvar. E trocado o tema, mais eu usei pouca coisa, só topo de tabela, e topo do site, e alguns itens das tabs.

O bom e você cadastrar todos os temas, e baixa todo o tema, ai tu deixa o usuário escolher o tema, e na hora de submeter já muda o tema.

Só que eu fiz uma alteração no extensions.jui.EJqueryUiInclude.

Por que ele tinha que ler o arquivo que está estipulado na configuração do usuário.

o base.css já deixei lendo por padrão, mais os temas tinha que ser da configuração do usuário.




<!DOCTYPE html>

<html lang="pt-BR">

    <head>

        <link rel="stylesheet" type="text/css" href="/assets/9718fe11/css/base/jquery.ui.all.css" />

<link rel="stylesheet" type="text/css" href="/assets/9718fe11/css/dot-luv/jquery.ui.all.css" media="screen" />

EJqueryUiInclude.php




...

public function run()

   {

      $dir = dirname(__FILE__).DIRECTORY_SEPARATOR.'jquery';

      $baseUrl = Yii::app()->getAssetManager()->publish($dir);


      $clientScript = Yii::app()->getClientScript();


      $clientScript->registerCoreScript('jquery');


      switch ($this->getCompression()) {

         case 'none':

            $clientScript->registerScriptFile($baseUrl.'/js/jquery-ui-1.8.custom.js');

            break;

         case 'packed';

            $clientScript->registerScriptFile($baseUrl.'/js/jquery-ui-1.8.custom.packed.js');

            break;

         default:

            $clientScript->registerScriptFile($baseUrl.'/js/jquery-ui-1.8.custom.min.js');

            break;

      }


      if ($this->getUseBundledStyleSheet()) {

         $clientScript->registerCssFile($baseUrl.'/css/base/jquery.ui.all.css');

         $clientScript->registerCssFile($baseUrl.'/css/'.Yii::app()->controller->getTema()->titulo.'/jquery.ui.all.css', 'screen');

      }

   }

...

Fiz as modificações ai só! esse getTema() e onde pego o tema do usuário.

Segue abaixo o layout de um sistema meu.

http://www.yiiframework.com/forum/index.php?/topic/4143-sistemas-utilizando-yii/page__view__findpost__p__54267