¿Cómo se eliminan los campos de título y cuerpo predeterminados en un tipo de contenido Drupal generado por CCK?

StackOverflow https://stackoverflow.com/questions/89672

  •  01-07-2019
  •  | 
  •  

Pregunta

Cuando crea un nuevo tipo de contenido en Drupal utilizando el kit de creación de contenido, automáticamente obtiene los campos Título y Cuerpo en el formulario generado.¿Hay alguna manera de eliminarlos?

¿Fue útil?

Solución

Si no es desarrollador (o desea acortar el proceso de desarrollo), otra posible solución es utilizar el módulo auto_nodetitle.El título de nodo automático le permitirá crear reglas para generar el título del nodo.Pueden ser reglas programáticas, tokens que se reemplazan o simplemente texto estático.Vale la pena echarle un vistazo al menos.

Otros consejos

Para eliminar el cuerpo, edite el tipo, expanda "Configuración del formulario de envío" y deje en blanco la etiqueta del campo del cuerpo.Para el título, puede cambiarle el nombre a otro campo de texto.Si realmente no necesita ningún campo de texto, puede crear un módulo personalizado, digamos llamado foo, y crear la función foo_form_alter() que reemplaza $form['title'] con un #valor cuando $form['type']['#value'] es su tipo de nodo.

No es necesario instalar nada:
al editar el tipo de contenido, presione "Editar"
(en el menú de Editar | Administrar campos | Mostrar campos)
haga clic en la configuración del formulario de envío

en la etiqueta del campo Cuerpo:
Déjelo en blanco; eliminará el campo Cuerpo.

Si no es un desarrollador (o desea atacar el proceso de desarrollo), otra solución posible es utilizar el módulo Auto_Nodetitle.Auto Nodetitle le permitirá crear reglas para generar el título del nodo.Estas pueden ser reglas programáticas, tokens que se reemplazan o simplemente texto estático.Vale la pena echarle un vistazo si nada más.

Y para agregar a William O'Connor's solución...

Desafortunadamente, el módulo está mal documentado.En mi opinión, en realidad solo es efectivo si usas PHP con él.Marque "Evaluar PHP en patrón" y escriba en el campo "Patrón para el título" algo como:

<?php echo $node->field_staff_email[0]['email']; ?>

o:

<?php echo $node->field_staff_name[0]['value'] . '-' . gmdate('YmdHis'); ?>

... donde tenía un campo con un nombre interno de "field_staff_email" y estaba usando el módulo de correo electrónico CCK, por lo que se usó el tipo "correo electrónico".O tenía un campo con un nombre interno de "field_staff_name" y era simplemente un campo de texto normal, por lo que se utilizó el tipo "valor".La llamada gmdate() al final es para garantizar la unicidad porque puede tener dos o más miembros del personal con el mismo nombre.

La forma en que descubrí todo esto fue experimentando primero con:

<?php print_r($node); ?>

...lo que por supuesto dio resultados increíbles, pero al menos pude analizar el resultado y descubrir cómo usar el objeto $node correctamente aquí.

Solo tenga en cuenta que si usa cualquiera de estas rutinas PHP, terminará con la lista de Contenido en Drupal Admin mostrando las entradas exactamente como codificó PHP.Es por eso que no usé gmdate() solo porque entonces podría ser difícil encontrar mi registro para editarlo.

Tenga en cuenta también que es posible que pueda utilizar la conversión Base-36 en gmdate() para reducir el tamaño de la salida porque gmdate('YmdHis') es bastante largo.

Las respuestas iniciales son todas buenas.Sólo como otra idea para la parte del título...¿Qué tal crear un archivo de plantilla personalizado para el tipo de nodo cck?Copiaría node.tpl.php a node-TYPE.tpl.php y luego editaría el nuevo archivo y eliminaría el lugar donde se representa el título.(No olvides borrar tu caché).

Hacerlo de esta manera significa que cada nodo todavía tiene un título, por lo que para la gestión de contenido no quedarán títulos en blanco ni nada por el estilo.

¡HH!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top