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');