Reescribe la salida del campo CCK sin usar plantillas

7

El módulo Vistas tiene la buena opción de reescribir la salida de un campo. Esto permite adaptar la salida de los campos CCK utilizando tokens sin tener que crear una plantilla para esa vista.

¿Existe un módulo que permita una funcionalidad similar para la pestaña "Mostrar campos" de un tipo de contenido? Necesito modificar ligeramente la salida del campo para el avance y el cuerpo, pero no quiero crear una plantilla completa.

Actualmente estoy usando Contemplate para eso, pero eso es más complicado de lo que necesito e innecesariamente difícil si no estás familiarizado con la API de Drupal PHP. También es molesto que necesite modificar la plantilla cada vez que agrego un campo adicional al tipo de contenido, realmente solo necesito reescribir algunos campos, no todo el cuerpo o el avance.

Entonces, lo que me gustaría tener es una forma simple de reescribir cada salida de campo CCK usando cualquier token disponible para ese tipo de contenido. Algo como eso existe?

Científico loco
fuente

Respuestas:

5

Parece que está buscando el módulo Formateadores personalizados , muy similar a Contemplate, pero específicamente para crear Formateadores de campo para usar a través de la página de Configuración de pantalla o Vistas.

Los formateadores personalizados se pueden construir con tokens o código PHP puro.

Además, los formateadores personalizados se pueden exportar como ganchos nativos de Drupal o en un formato exportable de características personalizadas.

Descifrar
fuente
4

Si solo está buscando modificar el marcado, vale la pena probar Semantic CCK .

Semantic CCK se creó para proporcionar a los usuarios los medios para personalizar la salida HTML de los campos CCK. Fue inspirado en parte por el módulo altamente recomendado Semantic Views que proporciona la misma funcionalidad para las vistas.

Drupal 7

Actualmente se está desarrollando una versión Drupal 7 de Semantic CCK: Semantic Fields .

tim.plunkett
fuente
2

No se recomienda el uso del módulo Contemplate, ya que coloca el código PHP en la base de datos, que generalmente se considera una vulnerabilidad de seguridad y no funciona.

Puede considerar definir sus propios formateadores de campo usando hook_field_formatter_info () . Esto le permite definir devoluciones de llamada personalizadas que pueden manejar cada campo. Aquí hay un tutorial simple sobre cómo funciona esto para Drupal 6.

Explore la implementación de otros módulos de hook_field_formatter_info () para ver cómo funciona. En Drupal 6 se vincula directamente con hook_theme () mientras que Drupal 7 usa hook_field_formatter_view () .

c4rl
fuente
0

He estado luchando con este mismo problema desde hace algún tiempo también.

No puedo / no quiero usar ...

  1. Contemplar por razones de arquitectura mediocre.
  2. Display Suite, que es impresionante pero exagerado y en realidad no permite alteraciones simples en los campos.
  3. Formateadores personalizados, ya que nuevamente termina con PHP en la base de datos para múltiples campos de valor.
  4. Plantilla de campo porque solo estoy agregando una línea de texto con el elemento.
  5. CCK semántico porque eso solo altera los elementos y las clases.
  6. hook_preprocess u otras soluciones basadas en código porque lo necesito configurable.

Es un verdadero fastidio, cuando todo lo que necesito hacer es agregar una descripción de campo CCK para mostrar la salida. Esto debería ser bastante simple.

Suena como si necesitaras Formateadores personalizados.

doublejosh
fuente
n / m esta funcionalidad se agregó a Semantic CCK 1.4
doublejosh
¿Encontró una solución fácil de manejar que tenga un buen rendimiento? en drupal6, la buena solución era usar la ['vista'] del objeto de nodo y combinarlo con algún formato de plantilla de nodo. salida muy limpia y cómoda debido al uso de ['vista'] en el 90% de todos los casos de uso. en Drupal 7 tenemos de nuevo los divities, debido a render () produce una gran cantidad de gastos generales ...
Suena como Display Suite y luego drupal.org/project/ds
doublejosh
Los Formateadores personalizados almacenan información en la base de datos, pero el módulo es simplemente una utilidad, por lo que una vez que haya creado el Formateador en la base de datos, lo exporta y ya no tiene el problema del código en la base de datos :)
Decipher
0

Me gustaría utilizar el filtro simbólico módulo, para especificar valores de los símbolos en los campos CCK con filtros de entrada. Aquí hay un extracto al respecto de la página del proyecto del módulo:

... un módulo muy simple para hacer que los valores de token estén disponibles como filtro de entrada.

bkildow
fuente