Overrides

Você já criou seu estilo, alterou os arquivos CSS e para a página principal de seu site e você ainda não está satisfeito com o resultado? :-) Então este é o momento perfeito para falarmos em Overrides, no Joomla existem dois tipo de substituições (overrides): Por template e layouts auternativos. 

Template overrides

Vamos supor que você queira mudar a forma como os resuldados de pesquisa são mostrados. O componente de pesquisa tem um template padrão para isso que é armazendado na pasta /components/com_search/views/search/tmpl/default.php.  Este arquivo mostra como os resultados de pesquisa aparecem. Adicione algumas palavras no código salve e você verá imediatamente o resultado. Por exemplo adcione

<strong>I have changed something :-) </strong>

na linha 13 e veja o que acontece (Figura 1).

cocoate.com/node/6476Template override

Figura 1: Auterações na saída HTML.

O resultado é bom, serve para dar motivação porque é muito fácil e será mostrado em todos os templates. Mas não é bom para sua reputação porque você acabou de editar o código do núcelo do Joomla. Na proxima atualização do Joomla, esse código vai sumir. 

A melhor alternativa seria fazer substituições nos templates em cada um dos templates. Copie o arquivo alterado para a pasta templates/[template_name]/html/com_search/search/default.php e remova a alteração feita no core do arquivo original. O resultado na página é o mesmo mas, nos bastidores, foi substituido o arquivo original  .../default.php com o layout desejado - sem alterar o arquivo do Core do Joomla. Bão neh!

Este sistema foi introduzido no ano de 2007 com o lançamento do Joomla 1.5 e ainda funciona bem até hoje. 

layouts alternativos 

No Joomla 2.5 overrides tem um acessório chamado layouts alternativos. Tenho certeza que você já viu o campo Layout Altenativo no formulario de edição de artigos, módulos e categorias  (Figura 2).

cocoate.com/node/6476Alternative Layout

Figura 2: layout alternativo em artigos

Por que precisamos de layouts alternativos? Imagine você é um administrador ou um webmaster e um template vem com 3 layouts alternativos para artigos. Às vezes é um artigo normal, às vezes ele deve aparecer como um produto, e às vezes como uma página de livro. Você só tem que escolher o layout que desejar. Isso soa como um grande recurso e é! 

A tecnica é a mesma da substituição (overrides) de templates. Você precisa criar uma pasta com o mesmo nome do componente ou do módulo e uma subpasta para exibição. Existem duas diferenças: 

  1. Obviamente o nome do arquivo precisa ser diferente de /default.php como este foi já foi utilizado para override do template 
  2. O layout alternativo é claro não está definido como padrão você precisa definir.

Além da disposição alternativa, tipos de itens de menus também podem ter layouts alternativos, os itens de opções de artigos podem ser controlados por um arquivo XML, como o mesmo nome do arquivo alternativo. 

(Figura 3)

cocoate.com/node/6476Additional Menu item Type

Figura 3: Tipos de menus adicionais :-) 

A criação destes arquivos não são para nenhum novato, mas estou certo que templates de terceiros em breve irão fazer uso dessas novas possibilidades 

(Figura 4) 

cocoate.com/node/6476More alternative layouts

Figura 4: Layouts adicionais em um artigo