9.1 - Element
Creio muito na sorte. Quanto mais trabalho, mais sorte pareço ter.
Coleman Cox
Cake\View\View::element(string $elementPath, array $data, array $options =[])
Alguns aplicativos tem pequenos blocos de código de apresentação que se repetem de página para página, algumas vezes em diferentes lugares do layout. O CakePHP pode ajudar você a repetir partes do seu site que precisam ser reutilizadas. Estas partes reusáveis são chamadas de Elements. Ads, help boxes, navigational controls, extra menus, login forms e callouts são implementados em CakePHP como elements.
Um element é basicamente uma mini-view que pode ser incluída em outros pontos da view, em layouts, e até mesmo dentro de outros elements. Os elements podem ser usados para fazer uma view mais legível, colocando a prestação de elements repetidos em seu próprio arquivo. Eles também podem ajudá-lo a reutilizar fragmentos de conteúdo em sua aplicação.
Elements ficam na pasta
src\Template\Element
E tem extensão .ctp
Mostrando com o método element da view:
echo $this->element('helpbox');
Criando seu Próprio Element
Criaremos um pequeno Element que adicionará um menu para a região <nav> do layout.
Criar o arquivo
src\Template\Element\topmenu.ctp
Contendo:
<?php
echo $this->Html->link(__('Customers'), array('plugin'=>null,'controller'=>'Customers','action'=>'index', 'class'=>'a menu'));
echo ' '.$this->Html->link(__('Grupos'), array('plugin'=>null,'controller'=>'Groups','action'=>'index'));
echo ' '.$this->Html->link(__('Usuários'), array('plugin'=>null,'controller'=>'Users','action'=>'index'));
?>
Customizando o css para exibir melhor nosso menu:
Mude a linha com a para:
a {
color: black;
}
Usando
Para usar adicione a linha no src/Template/Layout/default.ctp, como indicado abaixo:
<body>
<nav class="top-bar expanded" data-topbar role="navigation">
<?php echo $this->element('topmenu');?>
Veja que é um element bem simples mas pode usar o conhecimento e criatividade para fazer algo melhor. Também pode ver um exemplo mais interessante no plugin admin-br.
Dicas sobre Element no Cake
Muitas aplicações possuem pequenos blocos de código de apresentação que precisam ser repetidos a cada página, às vezes em diferentes lugares no layout. O CakePHP ajuda você a repetir partes do seu website que precisam ser reutilizados. Estas partes reutilizáveis são chamadas de Elements (ou Elementos). Propagandas, caixas de ajuda, controles de navegação, menus extras, formulários de login e chamadas geralmente são implementadas como elements. Um element é basicamente uma mini-view que pode ser incluída em outras views, layouts e até mesmo em outros elements. Elements podem ser usados para criar uma view mais legível, colocando o processamento de elementos repetidos em seu próprio arquivo. Eles também podem ajudá-lo a reusar conteúdos fragmentados pela sua aplicação.
Element - são pequenos trechos de código que podem ser usados nas views para qualquer utilidade.
Um element pode ser acessado por qualquer view.
No local da view onde queremos que apareça o código do elemento inserimos:
echo $this->element('espacos');
Podemos passar informações para um element através do seu segundo parâmetro:
echo $this->element(’helpbox’, array(
"textoajuda" => "Oh, this text is very helpful."
));
echo $textoajuda;
São blocos de código tipo view reutilizáveis que criamos uma vez usamos várias vezes e em qualquer lugar do site (geralmente aplicados no layout)
Detalhes
Comments fornecido por CComment