Muitos construtores de sites fogem do MODX CMS porque pensam (ou já ouviram falar) que é principalmente para desenvolvedores que são qualificados em codificação PHP e JavaScript.
Embora o MODX tenha componentes poderosos para uso por codificadores habilidosos, também há muitas vantagens para designers menos experientes em tecnologia. O mais importante deles é a liberdade criativa que a MODX oferece. Ele permite que você facilmente faça seu site parecer exatamente do jeito que você quer, sem compromissos.
O MODX foi desenvolvido por programadores da Web que estavam frustrados com as limitações criativas de outras plataformas CMS. Eles odiavam ter que trabalhar em sistemas que tinham noções internas de como um site deveria ser construído e onde colocar as coisas para que elas funcionassem.
Eles também queriam fazer um trabalho melhor de separar o conteúdo de um site do código que apresentava esse conteúdo - uma prática que torna muito mais fácil redesenhar e manter sites.
O que pode ser chamado de “primeiro princípio” da MODX é, sempre que possível, permitir que o designer do site faça o que quiser, e faça isso facilmente. No coração dessa liberdade criativa estão os modelos MODX e as tags MODX.
Um modelo MODX nada mais é do que uma página de código HTML (e, opcionalmente, tags MODX e JavaScript). Você pode escolher uma página em um site que não seja do CMS e colar o código HTML dessa página em um modelo MODX, ajustar os URLs de qualquer arquivo CSS e informar ao MODX para usar esse modelo ao exibir um documento específico no site. Isso levaria menos de cinco minutos e, quando você visualizasse a página MODX, ela seria exatamente a mesma do site original. A única restrição é que você não pode ter nenhum código PHP na página (mais sobre isso depois).
Colar o código de uma página inteira em um modelo ignoraria muitos dos poderosos recursos do MODX, mas isso ajuda a demonstrar quanta liberdade você tem na criação de sites do MODX.
O poder principal do MODX vem das tags MODX. Essencialmente, as tags MODX representam coisas que você sai do modelo e coloca em outro lugar para maior conveniência e flexibilidade adicional. O que permanece no modelo é tipicamente o shell HTML e as tags MODX.
A operação básica do mecanismo MODX é incrivelmente simples. Quando uma página da web é solicitada por um navegador, o MODX verifica se o modelo está associado a essa página. Ele obtém o modelo, substitui todas as tags MODX no modelo e as envia para o navegador. É isso aí.
A capacidade de ter um site dinâmico e criativo no MODX vem do que as tags podem representar. Existem vários tipos de tags, e cada um é substituído por algo diferente. Todas as tags são opcionais e qualquer tag pode ir a qualquer lugar no modelo. Vejamos um exemplo simples envolvendo o que chamamos de tags “chunk”.
Nota: Os exemplos aqui são para o MODX Revolution. O MODX Evolution usa um estilo de tag ligeiramente diferente, mas os conceitos são os mesmos.
No MODX, um “pedaço” é apenas um pouco de código HTML que você deseja usar em mais de uma página. Pode ser um cabeçalho, rodapé, barra lateral, menu ou qualquer outra coisa. Digamos que seja um rodapé que você queira mostrar em todas as páginas (ou em algum subconjunto de suas páginas). Você cria o bloco no Gerenciador MODX, digite o código HTML para o rodapé, dê a ele um nome (FooterChunk) e salve-o. Agora, no seu modelo, basta colocar a seguinte tag onde deseja que o rodapé apareça:
[[$FooterChunk]]
Cada página que usa esse modelo mostrará o bloco de rodapé nesse local. Se você decidir alterar o texto ou o HTML do rodapé, basta editar o FooterChunk e a nova versão aparecerá em todas as suas páginas. Se você quiser o rodapé em algum outro lugar da página, basta mover a tag no modelo.
Outro tipo de tag no MODX é a tag “resource content” (geralmente chamada de tag de “conteúdo”). No MODX, cada página da web corresponde a um documento armazenado no banco de dados MODX. Quando você cria uma nova página para um site da Web da MODX, é apresentado um formulário que pode ser preenchido com informações sobre o documento.
Existem campos de entrada de texto para um Título, Longtitle, Descrição, Resumo, Alias (a ser usado na URL), Conteúdo (o conteúdo principal da página) e Título do Menu (usado automaticamente nos menus). Existem caixas de seleção que indicam se o documento é publicado e se deve ser ocultado dos menus.
Há também campos de data para indicar datas futuras de publicação ou não e a data em que o documento foi publicado.
Existem outros campos também, mas aqui novamente vemos a flexibilidade do MODX - todos os campos, exceto o Título e Alias, são opcionais! Cada página tem que ter um título e algo para colocar no URL da página, mas depende inteiramente de você usar os outros campos ou não. O que acontece nos outros campos também depende muito de você. Você quase certamente quer colocar o conteúdo principal da página no campo de conteúdo, mas não é necessário. Se você quiser usar o campo Título Longo para armazenar o signo astrológico do usuário perfilado na página, vá em frente.
Para voltar às tags de "conteúdo", elas representam os campos do formulário. Quando o MODX vê uma tag de conteúdo, ela é substituída pelo valor do campo de formulário nomeado. No local em que você deseja que o conteúdo principal da página apareça, por exemplo, você coloca essa tag no modelo:
[[*content]]
Onde você quer que o título longo da página apareça (se você quiser), coloque esta tag:
[[*longtitle]]
Para o título principal, você usaria essa tag:
[[*pagetitle]]
Se você decidir que o Título ou Título Longo apareça em algum outro lugar, basta mover as tags em seu modelo. Se você não quiser mostrar o título longo, remova a tag do seu modelo. Se você quiser que o título longo apareça no rodapé da página, você pode até mover sua tag para o FooterChunk que mencionamos anteriormente. Para usar um exemplo improvável, você pode até colocar o URL do caminho para o arquivo CSS que deseja usar para a página no campo Título Longo e colocar essa tag na seção head do seu modelo:
MODX é muito simplista quando se trata de tags. Quando vê uma tag MODX, ela a substitui pelo que representa. Não importa o que seja ou por que você está colocando lá. Assume que você sabe o que quer e age de acordo. Não há como lutar para descobrir o que a MODX quer ou por que ela não está fazendo o que você quer porque ela simplesmente faz o que você quer. Confie em mim, é uma mudança agradável de ter que lidar com um CMS que pensa que sabe mais sobre o que você quer do que você, ou tem noções preconcebidas sobre como as coisas devem ser exibidas ou onde elas devem ser localizadas.
Anteriormente no artigo, mencionei o código PHP. No MODX, o código PHP entra em um trecho, que é qualquer código PHP que você queira usar no site. Quando o MODX vê uma tag de snippet, ela é substituída pelo que for retornado do snippet. Colocar o código PHP em snippets torna o site muito mais seguro e fácil de manter, porque o código é separado do conteúdo. Se algum hacker conseguir colocar uma página em seu site que contenha código PHP malicioso, o MODX ignorará o código porque não está em um trecho.
Se você não for um codificador PHP, ainda usará tags de snippet porque há componentes adicionais MODX (geralmente chamados de “extras” no MODX) que farão muito trabalho pesado em seu site.
O snippet do Wayfinder, por exemplo, produzirá um menu a partir dos documentos no seu site. Se você criar uma nova página, ela aparecerá automaticamente no menu. Na sua forma mais simples, basta colocar uma tag como essa onde você deseja que o menu apareça:
[[Wayfinder]]
O MODX substituirá essa tag por um menu de todas as páginas do seu site. Por padrão, o Wayfinder exibe as opções do menu como links em uma lista não ordenada, mas você pode configurá-lo para criar qualquer tipo de menu desejado.Visto menus suspensos suspensos, menus horizontais, menus verticais, menus olho de peixe, megamenus, menus pop-up e até menus circulares, todos produzidos com o Wayfinder. Na verdade, ainda estou para ver um menu que não pode ser produzido com o Wayfinder.
Você também pode usar o Wayfinder para mostrar menus de apenas uma parte do seu site e pode ter mais de um menu do Wayfinder na mesma página. Lembre-se das caixas de seleção "Hide From Menus" e "Published" que mencionamos anteriormente? O Wayfinder não mostrará páginas não publicadas ou ocultas, a menos que você diga.
Outro snippet usado com frequência é o getResources. O snippet getResources mostrará seleções de documentos no seu site, formatados da maneira que você preferir (usando tags MODX, é claro), classificados, selecionados e exibidos da maneira que você quiser. Um uso comum de getResources seria mostrar o título e o resumo dos cinco ou dez documentos criados mais recentemente no site, cada um com um link para o documento completo.
O Wayfinder e o getResources usam pedaços para sua formatação (esse tipo de bloco é chamado de um pedaço do Tpl no MODX) com código HTML e tags MODX para os vários elementos a serem mostrados. Se você quiser alterar a formatação ou o conteúdo de sua saída, basta editar os fragmentos do Tpl (ou criar os seus próprios).
Ao mesmo tempo, foi um pouco difícil criar um blog no MODX (uma desvantagem definitiva para muitas pessoas). Agora, no entanto, o artigo extra é um componente de blog completo para o MODX que é fácil de usar e configurar. Os artigos têm comentários, tags, moderação, discussões encadeadas e tudo mais que você possa desejar para o seu blog, tornando o MODX uma alternativa atraente ao WordPress.
Este artigo apenas arranhou a superfície do MODX. Espero ter aguçado seu apetite pela MODX e mostrado a você um pouco sobre a liberdade que ela oferece na criação do site que você tem em mente. Mover um site não-MODX para o MODX é surpreendentemente fácil. Para uma breve descrição do processo, consulte esta página .
Se você é um web designer e quer um CMS que lhe permita a liberdade criativa de fazer seu site parecer exatamente do jeito que você quer, você definitivamente deve experimentar o MODX.