P3rukao 0 Denunciar post Postado Outubro 7, 2009 Seguinte, como eu faço para carregar os dados de uma tabela no meu layout?? Eu tenho em meu layout, uma área onde tenho que listar as ultimas noticias... e tem de aparecer em todas as páginas... então... devo por isso no layout mesmo, ou há outra maneira de se fazer isso? Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Outubro 7, 2009 Se for apenas um trecho que é utilizado muitas vezes utilize elements, caso ele FAÇA realmente parte do layout, então incorporeo no layout. =D Sobre elements: http://book.cakephp.org/pt/view/97/Elements O layout você cria-o em "view/layouts", e executado por padrão é o default.ctp Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Outubro 8, 2009 Eu já estou usando um layout... e é justamente essa incorporação que não estou entendendo como fazer.... tipo... eu tenho algumas noticias... e quero que exibilas na coluna direita de meu site... em todas as páginas... então creio eu que seja para usar no layout mesmo... mas como que eu vou puxar os dados de algum lugar se eu não setei isso em nenhum controller?? ou eu devo só criar uma variável no meu controller das noticias e utiliza-la no meu layout ?? Mas eu vou dar uma sacada nesse Elements pra ver se resolve... obrigado por enquanto... ;) Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Outubro 8, 2009 Se em qualquer action de qualquer controller você fizer isto: function action(){ $this->set('var' , 'blabla'); }E em qualquer view/layout/element você fizer isso: <?php echo $var ?>Aparecerá o que se espera ;DEntão a solução é setar em AppController no método beforeRender, que é antes da view ser renderizada: function beforeRender(){ $this->set('variavel', 'ConteudoDela'); } Crie um arquivo em "\app\app_controller.php". Este arquivo é como se fosse "o filho" dos outros controles, oque você por ai será executado em todos os outros controles, então faça o seguinte: <?php class AppController extends Controller { function beforeRender(){ $this->set('variavel', 'ConteudoDela'); } ?> Se der certo diga ;D Compartilhar este post Link para o post Compartilhar em outros sites
Sérgio Macedo 0 Denunciar post Postado Outubro 8, 2009 Apenas uma correção a ser feita... "Este arquivo é como se fosse "o filho" dos outros controles" App é o PAI de todos os seus controles... o VÔ dos seus controles é o Controller 1º class Controller { ... } 2º class AppController extends Controller { ... } 3º class xxxController extends AppController { ... } ?> Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Outubro 8, 2009 Ops... é mesmo, erro meu xD Os outros estendem ele não são estendidos xD Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Outubro 8, 2009 Bacana... eu olhei o link http://book.cakephp.org/pt/view/97/Elements mas não achei ele muito esclarecedor não... e tbm naum achei muita coisa no google sobre Elements.. (talvez não esteja procurando direito =/)... mas eu tentei fazer do jeito que tinha pensado no início... só pra desencargo de consciência... e fiz assim: no meu controller de noticias: $conditions = array('conditions' => array("`Noticia`.ativado"=>1,"`Noticia`.excluido"=>0), 'limit'=>6,'order'=>array('`Noticia`.`id`'=>'desc')); $this->set('Not', $this->Noticia->find('all',$conditions)); e no meu layout eu simplesmente puxei os dados dentro de um foreach usando a variavel $Not que acabei de setar... e funcionou direitinho... xD Agora... eu gostaria de entender melhor esses Elements... V6 podem me indicar alguns links que expliquem bem o funcionamento dele? Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Outubro 8, 2009 Correção: e no meu layout eu simplesmente puxei os dados dentro de um foreach usando a variavel $Not que acabei de setar... e funcionou direitinho... xD Porém... somente quando eu acesso o endereço referente ao meu controller, nesse caso meusite/noticias/ daí ele faz a listagem dos dados... mas se for em qualquer outra página ele não lista nada... Compartilhar este post Link para o post Compartilhar em outros sites
Sérgio Macedo 0 Denunciar post Postado Outubro 8, 2009 Dentro de cada view sua terá que ter o código: <?php //Definição de qual layout usar ele é salvo dentro de app\view\layout\xxxxx.ctp $this->layout = 'xxxxx';?> E por sua vez dentro deste layout você poderá indicar qual css usar, fica salvo os css em app\webroot\css com o seguinte código: echo $html->css('yyyyy'); Obs.: Exemplo usados xxxxx e yyyyy não devem ter extensão informada ao ser chamada! (sem .ctp e sem .css) ;D Espero ter te ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Outubro 8, 2009 É simples utilizar elementos. Dentro de "app\view\elements" você deixa todos os seus elements (com extensão .ctp). Por exemplo, você vai fazer um element chamado banner, que existirá em algumas páginas, então: view\elements\banner.ctp <img src="<?php // codigo php pra deixar banner randomico ?>" /> Ai no layout "produtos" por exemplo, você quer exibi-lo: view\layouts\produtos.ctp <?php echo $this->element('banner') ?> Assim produtos.ctp chamaria banner.ctp =D Simples =D Existem outras configs opcionais, como por exemplo, setar uma variavel quando for carregar o elemento. Veja: view\layouts\produtos.ctp <?php echo $this->element('banner' , array('minhaVar' => 'meuValor')) ?> Sendo assim, o elemento banner conteria a variavel $minhaVar com o valor "meuValor". Veja mais em: http://book.cakephp.org/pt/view/97/Elements Compartilhar este post Link para o post Compartilhar em outros sites
P3rukao 0 Denunciar post Postado Outubro 8, 2009 ahhhh... então eh como se fosse os velhos includes xD... muito massa http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif eu vi, que na maioria dos casos ele eh usado para conteúdos estáticos então nesse caso... se eu quiser montar a estrutura do meu layout separando cada trecho do mesmo em Elements teria algum problema?? Vou ver se consigo trabalhar com ele.. ^^) Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Outubro 8, 2009 Não vejo problema. Mas o principal proposito dos elements é o reuso. Você tem 50 layouts, e todos eles tem em comum um menu, só que em lugares diferentes, oque você acha que será mais viavel, utilizar elements, ou refazer este menu em cada um dos layout? =D Compartilhar este post Link para o post Compartilhar em outros sites