Reescreva a saída do campo CCK sem usar modelos


7

O módulo Views tem a boa opção para reescrever a saída de um campo. Isso permite adaptar a saída dos campos CCK usando tokens sem precisar criar um modelo para essa visualização.

Existe um módulo que permita uma funcionalidade semelhante para a guia "Campos de exibição" de um tipo de conteúdo? Preciso modificar levemente a saída do campo para teaser e body, mas não quero criar um modelo completo.

Atualmente, estou usando o Contemplate para isso, mas isso é mais complicado do que eu preciso e é desnecessário e difícil se você não estiver familiarizado com a API do Drupal PHP. Também é irritante precisar modificar o modelo toda vez que adicionar um campo adicional ao tipo de conteúdo, só preciso reescrever alguns campos, não todo o corpo ou o teaser.

Então, o que eu gostaria de ter é uma maneira simples de reescrever cada saída de campo CCK usando qualquer token disponível para esse tipo de conteúdo. Existe algo assim?

Respostas:


5

Parece que você está procurando o módulo Formatadores Personalizados , muito semelhante ao Contemplate, mas especificamente para criar Formatadores de Campo para serem usados ​​na página Configurações de Exibição ou Vistas.

Formatadores personalizados podem ser criados com tokens ou código PHP puro.

Além disso, os Formadores personalizados podem ser exportados como ganchos Drupal nativos ou em um formato exportável de Recursos personalizados.


4

Se você está apenas tentando ajustar a marcação, vale a pena tentar o Semantic CCK .

O CCK semântico foi criado para fornecer aos usuários os meios de personalizar a saída HTML dos campos do CCK. Foi inspirado em parte pelo módulo altamente recomendado Views Semânticas, que fornece a mesma funcionalidade para Views.

Drupal 7

Uma versão Drupal 7 do Semantic CCK está atualmente em desenvolvimento: Semantic Fields .


2

O uso do módulo Contemplate não é recomendado, pois ele coloca o código PHP no banco de dados, que geralmente é considerado uma vulnerabilidade de segurança e não desempenho.

Você pode definir seus próprios formatadores de campo usando hook_field_formatter_info () . Isso permite definir retornos de chamada personalizados que podem lidar com cada campo. Aqui está um tutorial simples sobre como isso funciona para o Drupal 6.

Navegue pela implementação de hook_field_formatter_info () de outros módulos para ver como funciona. No Drupal 6, ele se vincula diretamente a hook_theme () enquanto o Drupal 7 usa hook_field_formatter_view () .



0

Também luto com esse mesmo problema há algum tempo.

Não posso / não quero usar ...

  1. Contemple por motivos medíocres de arquitetura.
  2. O Display Suite, que é incrível, mas exagerado e, na verdade, não permite alterações simples nos campos.
  3. Formatadores personalizados, pois novamente terminam com PHP no banco de dados para vários campos de valor.
  4. Modelo de campo porque estou apenas adicionando uma linha de texto com o item.
  5. CCK semântico porque isso altera apenas os elementos e as classes.
  6. hook_preprocess ou outras soluções baseadas em código porque eu preciso configurável.

É uma chatice de verdade, quando tudo o que preciso fazer é adicionar uma descrição do campo CCK para exibir a saída. Na verdade, isso deve ser bastante simples.

Parece que você precisava de Formatadores Personalizados.


n / m essa funcionalidade foi adicionada ao Semantic CCK 1.4
doublejosh

você encontrou uma solução fácil de manusear e com um bom desempenho? em drupal6, a boa solução era frequentemente usar a ['visualização'] do objeto nó e combiná-lo com alguma formatação de modelo de nó. saída muito limpa e confortável devido ao uso de ['view'] em 90% de todos os casos de uso. em Drupal 7 temos novamente as divities, porque render () produz uma grande quantidade de sobrecarga ...

Soa como exibição Suíte então drupal.org/project/ds
doublejosh

Os Formatadores Personalizados armazenam informações no banco de dados, mas o módulo é simplesmente um utilitário; portanto, depois de criar o Formatador no banco de dados, você o exporta e não tem mais o problema de código no banco de dados :)
Decifre



0

Eu usaria o módulo Token Filter , para especificar valores de token nos campos CCK com filtros de entrada. Aqui está um trecho da página do projeto do módulo:

... um módulo muito simples para disponibilizar valores de token como um filtro de entrada.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.