¿Es posible deshabilitar un tipo de contenido?

8

Actualmente estoy creando un pequeño sitio web de Drupal 7, pero no planeo usar el tipo de contenido del artículo entregado. ¿Es posible deshabilitarlo sin eliminarlo? Lo que quiero decir con eso es asegurarse de que ningún usuario creará artículos por accidente.

No pude encontrar una opción para esto. Gracias.

Jérôme Verstrynge
fuente

Respuestas:

16
  • No puede deshabilitar un tipo de contenido, pero puede evitar que (casi) todos creen / vean / modifiquen, etc. un artículo con la configuración de los permisos en consecuencia.
  • Si no hay contenido del artículo en el sitio, es 100% seguro eliminarlo. (Es interesante comprobar cómo el perfil de instalación predeterminado y mínimo proporciona diferentes conjuntos de tipos de contenido. El artículo es solo un tipo de contenido "en inventario" que de ninguna manera es necesario tener).
Escorchio
fuente
7

Para las personas que no están familiarizadas con Drupal, evitará que las personas usen un tipo de contenido yendo (en 7) People > Permissions (url: admin/people/permissions)

Luego, bajo Nodo, desmarque el Article: Create new contentpermiso para los roles seleccionados. :)

Obviamente, cambiaría Articleal tipo de contenido relevante.

mediaashley
fuente
¿Puede pensar en alguna razón por la cual un usuario aún podría acceder al enlace "crear" para un tipo de contenido en particular, a pesar de que su rol no permite la creación de ese tipo de contenido? Clono mi rol de usuario administrador y creé un rol de usuario "admin-lite" que solo debería tener acceso para crear un puñado de los muchos tipos de contenido en mi sitio. Sin embargo, esos usuarios admin-lite pueden crear todos los diferentes tipos de contenido ... Intenté reconstruir los permisos, pero eso tampoco ayudó.
hockey2112
2
Descubrí mi problema ... el rol todavía tenía habilitado el permiso "Omitir control de acceso al contenido". Deshabilité eso, y solucionó mi problema.
hockey2112
5

En su archivo .install:

function YOURMODULE_disable() {

  // Disable content type MyContentType
  disable_content_type('MyContentType');


  //Activation message
  drupal_set_message(t('MyContentType is now disabled on your site.'));
}

y ahora en su archivo .module o .inc:

function disable_content_type($type) {
  $type_info = node_type_load($type);
  $type_info->module = 'node';
  $type_info->custom = 1;
  $type_info->modified = 1;
  $type_info->locked = 0;
  $type_info->disabled = 1;
  node_type_save($type_info);
}
drupal_stuff_alter
fuente
¿Esto hace que el tipo de nodo y cualquier contenido de ese tipo sean invisibles? Mi caso de uso es una opción en el módulo que requeriría nuevos tipos de contenido, pero solo si esa opción está seleccionada. No quiero que vean el tipo de contenido si no eligen esa opción, pero también quiero mantener la integridad de los datos si activan / desactivan / activan / etc.
UnsettlingTrend
@UnsettlingTrend sí. Tenía una necesidad similar y probé esta opción. También tuve que crear una función _enable () en mi archivo .install que llamaba enable_content_type ('MyContentType'). En el archivo .module (o .inc), $ type_info-> disabled está establecido en 0. De esa manera, cuando el módulo está habilitado, el tipo de contenido está disponible. Cuando el módulo está deshabilitado, el tipo de contenido no está disponible. Si necesita acceso al contenido (por ejemplo, como administrador), puede considerar otra opción que cambie los permisos para el tipo de contenido. Esa fue la ruta que terminé yendo.
sho
1

Hay algunos tipos de contenido que se pueden "deshabilitar" en virtud de deshabilitar el módulo que lo usa. Por ejemplo: los tipos de contenido de encuestas, foros, libros y blogs desaparecen de los tipos disponibles cuando deshabilita los módulos asociados. La página básica y el artículo son las dos excepciones.

usuario1991685
fuente