Don't you speak portuguese? Translate this site with Google Translator

Pensamento do Dia

Tudo no fim dá certo; se não der certo, é porque não chegou ao fim.(Autor Desconhecido)

9.1 - Element

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:

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

<?php

echo $this->Html->link(__('Customers'), array('plugin'=>null,'controller'=>'Customers','action'=>'index', 'class'=>'a menu'));

echo '&nbsp;'.$this->Html->link(__('Grupos'), array('plugin'=>null,'controller'=>'Groups','action'=>'index'));

echo '&nbsp;'.$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

https://book.cakephp.org/3.0/en/views.html#elements

Comments fornecido por CComment

Novo Testamento

Ninguém de maneira alguma vos engane; porque não será assim sem que antes venha a apostasia, e se manifeste o homem do pecado, o filho da perdição,
(2Ts, 2:3)

Rotas no Mapa do Google

© 2015 Ribamar FS. All Rights Reserved. Designed By JoomShaper