it-swarm-es.com

Control de versiones de un tipo de contenido

Me gustaría crear un tipo de contenido. Mi problema es que este tipo de contenido cambiará con frecuencia (cada 6 meses, agregaré algunos campos y eliminaré otros).

¿Como lo harias? Había pensado varias opciones:

1) Crear un campo de "versión" con un valor predeterminado para cada versión que haga. Con el "hook_form_alter" me escondería o mostraría campos de acuerdo con la versión.

2) Otra opción es crear un nuevo tipo de contenido para cada versión "contenttype_10", "contenttype_11", "contenttype_20", ... ¿Existe algún módulo que permita crear un nuevo tipo de contenido copiando todos los campos de un tipo de contenido existente? ?

¿Qué piensa usted al respecto? ¿Qué versión es la mejor para ti?

5
user709

Para ser honesto, si está buscando conservar el contenido que ya tiene, este tipo de intromisión se soluciona mejor con un simple aumento y visibilidad de campo, en mi opinión.

Tener muchos tipos de contenido no es realmente viable; Hay una multitud de escenarios, como la búsqueda y las vistas, donde extraer de varios tipos simplemente no es "trabajar de manera inteligente".

La forma en que veo esto es que, si lo entiendo correctamente, CCK básicamente creará tablas automáticamente para sus campos; si agrega campos, agrega más cosas a los esquemas y tablas. Si desea "eliminar" los campos, CCK eliminará estos datos, por lo tanto, ya no existirá.

La mejor manera de hacer esto, según lo veo, es aumentar periódicamente su tipo de contenido con los nuevos campos y simplemente ocultar los campos "antiguos" con un módulo de visibilidad de campo. Si estás tan inclinado, podrías hacerlo programáticamente como aludiste. Sus datos antiguos aún están disponibles en el mismo tipo (y tablas) de esta manera.

Para la salida de "versionado" de su tipo, entonces sí, en teoría, podría agregar un campo de versión al tipo, pero si cambia periódicamente los campos (y, en consecuencia, la forma del nodo), entonces parece probable que simplemente pueda alterar el salida tan fácilmente. Probablemente tendría que actualizar varias vistas y plantillas de nodo en cualquier caso. El módulo de conjunto de pantallas podría ayudarlo a lograr ese último bit más fácilmente: la interfaz de usuario para manejar la visualización de nodos, etc., en lugar de mantener las manos sucias en las plantillas (¿útil si se actualiza con frecuencia?)

http://drupal.org/project/ds

http://grayside.org/field-permissions-plus

4
NikLP

El módulo Características está diseñado para este tipo de contenido de base de datos para codificar el control de versiones. Puede crear su tipo de contenido y exportarlo como una Característica. Esa característica podría ser controlada por la versión como cualquier otro código fuente (usando Git, SVN, etc.).

Si solo desea duplicar tipos de contenido, el módulo CCK en Drupal 6 tiene un submódulo Content Copy que permite eso. En Drupal 7, I No estoy seguro de si esto está integrado en el núcleo. Realizaría esta tarea utilizando las características.

5
user732