opas !

 Sobre a documentação:
 A nova versão do manual está em construção, aqui: http://tempdocs.cakephp.org/
 Ele está muito mais claro, mais detalhado (onde deve), e, obviamente,
cobre os novos features do cake1.2

 A versão antiga, você já deve saber, está no
http://manual.cakephp.org/ , e a parte específica do layout, em
http://manual.cakephp.org/chapter/views

 Outra paradinha que ajuda: http://www.cakephp.org/files/cakesheet.pdf

 Resumindo, você tem um arquivo de layout que vai envolver o conteúdo
gerado pelas views. Pra começar , você tem o layout default.ctp , que
fica dentro de /views/layouts  . Aqui vai ficar o doctype, <html>,
<head> a chamada do css, js, <body> e os elementos que vão dar a cara
mais geral do site, e lá no meio tem a chamada pro conteúdo da view:
http://manual.cakephp.org/chapter/views
  Aí, se as coisas complicarem (por exemplo, num site, você pode ter
um layout para a home, e outro para as paginas internas), é só mudar o
layout no controller,
  $this->layout = 'outrolayout';

  Dentro dele, assim como nas views, você usa PHP/HTML normal, e os
helpers do cakephp para gerar seus links (independente do path da sua
aplicação), assim como alguns facilitadores para criar forms, selects,
inputs, labels, etc etc etc

  Nas views, você pode usar os elements para partes do seu código que
se repetem (ou que fiquem melhor separadas da view principal):
 <?php echo $this->renderElement('banner/full'); ?>
 Esse código vai pegar o que estiver em
"/views/elements/banner/full.ctp" . Para alguma variável para o
elemento, use um array nomeado como parametro:
<?php echo $this->renderElement('banner/full', array('pagina' =>'home')); ?>

 Uma das coisas mais úteis, e que alivia o cake, em termos de memória,
é usar um requestAction que só retorna um valor (e não cria novas
instâncias da view):
<?php echo $this->renderElement('banner/full', array('pagina'
=>$this->requestAction('/banners/showBanner/home'))); ?>

E lá no meu BannersController eu teria
function showBanner($pag = null)
{
  return $this->Banner->getBannerToShow($pag);
}


  Outras coisas que fui descobrindo:
 - para sua ação renderizar outra view e/ou outro layout:
$this->render('outraview', 'outrolayout');

 - para que sua view não renderize layout nenhum (quando sua ação é só
de processamento, por exemplo), defina no na sua ação no controller:
$this->autoLayout = false;
$this->autoRender = false;

 - o cakephp tem um esquema de temas, que o usuário poderia modificar,
que não sei usar , mas tem essa variável aqui, em algum lugar
$this->themeWeb


  espero ter ajudado a decifrar o enigma :)
  spark




On Nov 12, 2007 4:51 AM, Josenivaldo Benito Junior
<[EMAIL PROTECTED]> wrote:
> Só acrescentando que já resolvi esse problema.
>
> Por algum motivo que eu não sei qual é, havia um "allow" no redirect do meu
> grupo de teste. Então o oth redireciona para tal controller "allow" que não
> existe. Retirando o allow do redirect agora ele funciona como deveria.
>
> Também testei a situação onde o usuário tenta "re-logar" sem ter feito
> logout. O othAuth trata essa situação, de qualquer forma vou fazer com que o
> users/login teste se o usuário já está logado e retorne ele ao sistema após
> uma mensagem "você já está logado" ou coisa tipo. Isso garante qualquer
> eventual furo.
>
> Obrigado a todos que deram as dicas. Assim que colocar o site no ar eu posto
> a URL para vocês darem uma olhada... e claro, criticar à vontade.
>
> Em tempo, um comentário. Eu já disse que meu negócio não é layout, não tenho
> o mínimo de dom artistico necessário (na realidade tenho urticária quando
> penso em layout hihihi). Mas estava curioso e procurando documentação do
> Cake sobre seu esquema de layout. Fiquei impressionado como não achei nada
> de concreto. A documentação do cake é super vaga quando fala de layouts e
> sim, abri o código e vasculhei, vi que não é complicado de comprender, mas
> uma documentaçãozinha seria bem legal. Recentemente fiz uma doação ao time
> do Cake, acredito que devemos suportar aquilo que nos ajuda, acho que quando
> tiver propriedade sobre assunto vou ajudar documentando alguma coisa.
>
> Valeu outra vez galera.
>
> Abraço,
> Benito
>
>
> On 11/9/07, Josenivaldo Benito Junior <[EMAIL PROTECTED] > wrote:
>
> > Obrigado Bill.
> >
> > O mesmo está funcionando, apenas estou enfretando um probleminha que ainda
> estou debugando sem muito sucesso.
> >
> > Seu eu tento fazer algo protegido ele me direciona para a página de login
> (ótimo!). Tudo ocorre bem agora. Mas, se eu sou um usuário esperto e savei a
> URL: localhost/app/users/login e uso ela para entrar no site (ou seja, não
> sou redirecionado para o login, vou direto a ele como primeira atividade do
> site), após o login o "auto redirect" me joga para
> >
> > localhost/app/allow
> >
> > que obviamente não é um controller válido. Me parece que allow é lixo
> dentro da variável "from" que não está setada. Mas já estou correndo atrás
> para descobrir onde se origina o problema. Assim que souber eu posto aqui.
> >
> > Abraço
> > Benito
> >
> >
> >
> > On 11/9/07, Bill < [EMAIL PROTECTED]> wrote:
> > >
> > >
> > > Vamos a algumas dicas do padeiro aqui..rsrsrsrs
> > >
> > > no arquivo app_controller.php, dentro da função beforeFilter, insira
> esta linha
> > >
> > >         $this->othAuthRestrictions[] = Configure::read('Routing.admin');
> > >
> > > Ficando desta maneira
> > >
> > > function beforeFilter()
> > >     {
> > >
> > >         $this->othAuthRestrictions[] = Configure::read('Routing.admin');
> > >
> > >
> > > Agora, no component oth_auth.php, troque todas referências:
> > >
> > > defined('CAKE_ADMIN')
> > >
> > > Por:
> > >
> > > Configure::read('Routing.admin')
> > >
> > >
> > > e todas ocorrencias de:
> > >
> > > CAKE_ADMIN
> > >
> > > Por:
> > > Configure::read('Routing.admin')
> > >
> > >
> > > e tb troque neste arquivo a linha:
> > > $res = $UserModel->save($row,true,array($this->user_table_last_visit));
> > >
> > >
> > > Por estas 2 linhas:
> > > $UserModel->id = $row[$this->user_model]['id']; $res =
> $UserModel->saveField($this->user_table_last_visit,$row[$this->user_model][$this->user_table_last_visit],true);
> > >
> > >
> > > Estas dicas foram extraidas deste blog:
> > > http://www.ancientwisdom.cc/news/archives/111
> > >
> > > Espero q te ajude
> > >
> > >
> > > > Boa noite Bill, Gustavo e lista,
> > > >
> > > > Bill, funcionou, agora ele não tenta mais criar um registro novo na
> > > > tabela de usuários e atualiza os dados de last visit e modified
> > > > corretamente. Porém continua  o notice:
> > > >
> > > > Notice: Only variables should be assigned by reference in
> > > > C:\xampp\htdocs\logbook\app\controllers\components\oth_auth.php on
> > > > line 301
> > > >
> > > > Obviamente seguido de um "Cannot modify headers" já que isso
> > > > acontece em um redirecionamento.
> > > >
> > > > Algum outro ajuste no oth_auth.php?
> > > >
> > > > Grato.
> > > > Benito
> > > >
> > > > On 11/8/07, Bill wrote:>  Bom, vamos lá,
> > >
> > > > instalei aqui o othAuth e funcionou perfeito, mas tem alguns
> > > > ajustes necessários, primeiro, vamos tratar deste erro:
> > > >
> > > >> + ou - na linha 323 do component oth_auth.php, temos o seguinte
> > > >> trecho de código:
> > > >>
> > > >> // Update the last visit date to now
> > > >>           if(isset($this->user_table_last_visit))             {
> > > >>                   $row[$this->user_model][$this-
> > > >> >user_table_last_visit] = date('Y-m-d H:i:s');
> > > >> $res = $UserModel->save($row,true,array($this-
> > > >> >user_table_last_visit));             }     Substitua por isto:
> > > >> // Update the last visit date to now
> > > >>           if(isset($this->user_table_last_visit))             {
> > > >>               $row[$this->user_model][$this-
> > > >> >user_table_last_visit] = date('Y-m-d H:i:s');
> > > >>               $UserModel->id = $row[$this->user_model]['id'];
> > > >>             $res = $UserModel->saveField($this-
> > > >> >user_table_last_visit,$row[$this->user_model][$this-
> > > >> >user_table_last_visit],true);             }
> > > >>
> > > >>
> > > >> Na linha ($res = $UserModel->saveField($this-
> > > >> >user_table_last_visit,$row[$this->user_model][$this-
> > > >> >user_table_last_visit],true); ) eu troquei o $UserModel->save
> > > >> por $UserModel->saveField, que atualiza o registro, atualizando
> > > >> assim a data de autenticação do usuário, quando o save, apenas
> > > >> está tentando isnerir um novo registro, por isto dá erro
> > > >>
> > > >>
> > > >> Ah, acessa a tabela de usuários do othAuth e deleta um registro
> > > >> em branco q tem lá, ele foi criado por este save besta ai de
> > > >> cima..rs
> > > >>
> > > >> Qquer coisa so perguntar
> > > >>
> > > >>
> > > >>> Bom dia,
> > > >>>
> > > >>> Não falei que iria começar a fazer perguntas? Seguindo a
> > > >>> documentação do othAuth consegui por para funcionar (ainda tem
> > > >>> bugs) mas estou tendo dois problemas:
> > > >>>
> > > >>> 1) Recebo a mensagem: Notice: Only variables should be assigned
> > > >>> by reference in
> > > >>> C:\xampp\htdocs\logbook\app\controllers\components\oth_auth.php
> > > >>> on line 301 logo depois de logar com usuário correto. A linha
> > > >>> 301 está, se não me engano, fazendo o save do LoginAttempt
> > > >>> model. Como dá esse Notice, não grava o login attempt e,
> > > >>> obviamente, não faz o redirect corretamente.
> > > >>>
> > > >>> 2) Se apago o cookie de sessão (para forçar um login), recebo,
> > > >>> além do item um acima, um
> > > >>>
> > > >>>
> > > >>> Query: INSERT INTO `users` (`last_visit`,`created`,`modified`)
> > > >>> VALUES ('2007-11-08 02:05:27','2007-11-08 02:05:27','2007-11-08
> > > >>> 02:05:27')
> > > >>> Warning: SQL Error: 1062: Duplicate entry '' for key 2 in
> > > >>> C:\xampp\htdocs\cake_core\cake\libs\model\datasources\dbo_source.php
> o
> > > >>>  n line 440 que, neste caso, está tentando dar INSERT de
> > > >>> valores na tabela users para uma key 2. O detalhe é que só
> > > >>> tenho um usuário na tabela users e ele tem key (Id) 1. Os
> > > >>> campos create e modified e last_visit do user (id=1) não são
> > > >>> mexidos, mas a entrada 2 é criada (caso não exista) e depois
> > > >>> recebo esse erro. Pergunta, o othAuth não deveria tentar um
> > > >>> "UPDATE" ao invés de INSERT? Alguém sabe o que está causando
> > > >>> isso? Grato Benito
> > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
>
>  >
>



-- 
[livesets] http://djspark.com.br/
[web] http://sydi.net
[filmes] http://melhoresfilmes.com.br

--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a