Module + Theme + Ajax

Hello boys,

é o seguinte, eu criei um módulo ‘admin’ pelo Gii, comprei um theme para sistemas (minha intenção é criar um pequeno sistema de gestão) que funciona com ajax e é responsivo. Explico:

Ele tem header, menu lateral e footer fixo. A div do content, ou seja o miolo do tema é atualizado via ajax, funcionando da seguinte forma:

|raiz/

– |main.php

– |ajax/

----- |home.php

----- |about.php

Funcionando somente o tema, quando eu clico no link home, ele está assim:


localhost/ajax/home.php

,

Para que não haja um "reload" na página, existe um método no jquery que muda o link daquele para este:


localhost/#ajax/home.php

.

Desta forma, ele mascara a URL para que eu permaneça no main.php (que é a masterpage com os menus, topo e rodapé fixo) porém, novamente o jquery quebra a url, recupera o endereço após o # e "popula" a div "content".

Desta forma, sempre e somente será atualizado a div "content" do arquivo da raiz "main.php".

Descrevi o funcionamento do tema, que funciona perfeitamente. O problema está ao aplicar ele no Yii, no módulo que criei, o admin, apliquei este tema, que pega somente esta masterpage(topo,menus e rodapé).

Na view do modulo ficou assim:

|views/

– |default/

----- | index.php

----- |ajax/

-------- |home.php

-------- |about.php

No DefaultController do módulo criei o método a seguir:




public function actionHome(){

    $this->render('ajax/home');

}



Agora que está feita a shit, porque ao acessar o link


 localhost/admin/default/home

, sem a aplicação do tema, aparece a página home perfeitamente, porém quando aplico o tema no módulo, ele muda a url para não dar refresh na página assim


 localhost/admin/#default/home

, que na teoria, deveria pegar o que está em "default/ajax/home" e jogar dentro da div "content". Só que, como a URL não é a real da aplicação, o jQuery não consegue encontrar o caminho, e então não dá nada certo. Nunca popula a div "content" do arquivo main.php do tema com o conteúdo do arquivo em default/ajax/home.php.

Alguém pode me ajudar a resolver isso?

Eu pensei em tratar o método actionIndex para renderizar o "miolo" de acordo com o que eu recuperar depois do #, mas não sei como quebrar a URL pelo Yii e recuperar por exemplo o "default/home".

Desta forma, talvez fosse possível criar um if e aplicar o render assim:


$this->render('ajax/home');

Ninguém?