custom.module vs template.php

9

Esta é uma pergunta não tão direcionada, mas não consigo encontrar nenhuma informação boa sobre isso.

Quando é considerada prática correta colocar código no arquivo template.php e quando implementá-lo em um módulo?

Quero dizer, no meu exemplo atual, preciso chamar hook_preprocess_node e, dentro, executar um drupal_get_form e renderizar esse formulário. Eu coloquei minha lógica dentro do template.php.

Isso está correto? Caso contrário, você pode me dar uma pequena lista de DOS e DONTS em relação ao problema?

magtak
fonte
11
se for muito complexo, eu o coloco em um módulo; se houver poucas linhas de código, eu o coloco em template.php. Depende também do uso, se for para um tema (template.php) ou para temas diferentes (módulo). Você decide.
precisa saber é o seguinte

Respostas:

9

Há duas coisas que tento ter em mente ao tomar essa decisão.

Esse é um recurso funcional ou puramente visual? Componentes funcionais vão em módulos. Os puramente visuais entram no tema.

O que acontece se eu alterar ou mudar radicalmente o tema no futuro e / ou permitir vários temas para o meu site? Se você não deseja replicar o recurso, ele deve ser inserido em um módulo.

O Drupal facilita a interligação de conteúdo, lógica de negócios e apresentação. Para a manutenção de longo prazo de um site, você realmente precisa ter cuidado ao implementar as coisas.

Uma boa regra de ouro é que um tema não deve precisar de saber sobre IDs ( $nid, $uid, $tid, etc) para qualquer coisa, e só deve precisar de saber os nomes das máquinas para alterar a aparência visual.

No seu caso, adicionar um formulário a um nó é uma mudança funcional, e eu realmente colocaria isso em um módulo.

mpdonadio
fonte