Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal tudo beleza?
Surgiu mais uma dúvida nos meus estudos.
Eu já fiz um sistema que não tinha a parte do site.
Mas agora eu to desenvolvendo um sistema que terá o site também.
Como que faço na questão do layout?
Quando é um só eu usei o default, supondo que eu usei o default para o site como que faço para o admin, seto com "$this->layout = 'outro'", ou tem como fazer de outro jeito?
Valeu
Aproveitando o assunto, pretendo ter meu próprio layout para formulários, mas gostaria de aproveitar o do Cake e só dar uma mexida - pelo que vi, ele "monta" a página na chamada à variável "$content_for_layout;" - mas onde está o conteúdo em si dessa variável?
Andei vendo a página form.php, mas acho que não deve ser ali não...
Queria encontrá-la para fazer uma cópia e editar sobre ela.
Mais 1 dúvida - onde vocês colocam exatamente o
$this->pageTitle = 'XXXX' ?
Coloquei no controller mas não alterou o título :huh:
Grata! ^_^
Natascha
>
Aproveitando o assunto, pretendo ter meu próprio layout para formulários, mas gostaria de aproveitar o do Cake e só dar uma mexida - pelo que vi, ele "monta" a página na chamada à variável "$content_for_layout;" - mas onde está o conteúdo em si dessa variável?
Andei vendo a página form.php, mas acho que não deve ser ali não...
Queria encontrá-la para fazer uma cópia e editar sobre ela.
Mais 1 dúvida - onde vocês colocam exatamente o
$this->pageTitle = 'XXXX' ?
Coloquei no controller mas não alterou o título :huh:
Grata! ^_^
Natascha
Seguinte @Natasch,
você não precisa mexer na variável $content_for_layout, monte o seu layout, e ponha essa variável no lugar onde vai ficar o conteúdo dinâmico, ou seja, onde vai ficar o conteúdo de cada página que você criar.
Quando você criar uma view para um formulário de contato, por exemplo, o conteúdo que vocÊ colocar nessa view irá aparecer automaticamente no seu layout, no lugar que a variável estiver colocada. Não tem segredo.
Quanto ao pageTitle. Utilize a versão mais recente do CakePHP (eu recomendo a 1.3.11, por ter mais tutoriais pra essa versão, ou a 2.0 que acabou de ser lançada).
No seu layout, tem que ter uma variável chamada $title_for_layout (ou o nome que você quiser, mas é melhor manter o padrão). E no seu controller você cria e seta ela, desta forma:
<?php
class PostsController extends AppController {
var $name = 'Posts';
function index(){
$title_for_layout = "Espaço do cliente - Dashbooard";
$this->set(compact('title_for_layout'));
}//end function login()
}//end class
e no seu layout, ou view.
<?php echo (isset($title_for_layout) && !empty($title_for_layout)) ? $title_for_layout. : 'Nome padrão';?>
Entendi. Estou usando a versão 1.3.13.
Sobre o title, funcionou o que você me passou, e o que tentei fazer anteriormente é a maneira que consta aqui, e não deu certo:
http://book.cakephp.org/pt/compare/962/Relativo-a-p%C3%A1gina-layout-e-pageTitle
+1pergunta: hoje coloquei máscara em campos de valor, para preenchimento automático da vírgula. Como ela existe no campo, "quebra" a validação do
'rule' => 'Numeric'
Aproveitando, no caso de eu ter uma mascara, ele consegue validar com essa regra:
array('between', 0, 99999)
? Porque no campo estará com ponto, vírgula...
Obrigada!
Você pode definir qual layout a action vai usar no controller, dentro da action:
$this->layout = 'meu_site'; // Usa o app/views/layouts/meu_site.ctp como layoutMas o recomendável é que o site (externo) seja o layout "default" e o sistema (interno) seja outro layout... Pois assim as mensagens de erro 404 e etc são exibidas no layout do site e não do sistema.