Algunos usuarios solo pueden tener la capacidad de editar uno de los conjuntos de campos que se muestran en pestañas verticales en el formulario de edición de nodos. En tal caso, parece bastante tonto usar pestañas verticales ya que solo hay una pestaña vertical para elegir. Ver captura de pantalla:
Entonces, ¿es posible deshabilitar las pestañas verticales por rol de usuario? ¿O, salvo eso, deshabilitarlos por completo para ciertos tipos de contenido? Para mi caso de uso, solo quiero que la ubicación no se muestre en pestañas verticales.
Intenté Renderable Fields y Field Group juntos, pero manejaron el formulario incorrectamente (creo que es defectuoso). Los campos de organización no pueden separar las pestañas verticales.
Respuestas:
Hay pocas formas de hacer esto:
Puede usar el módulo Elementos Renderables (como mencionó anteriormente). Le permite registrar cualquier pieza de construcción en su instalación y administrar la pantalla a través de la interfaz de usuario de campo. Pondrá a disposición elementos (adicionales) de entidades existentes en los formularios de gestión / pantallas de visualización o, por ejemplo, puede registrar el formulario de contacto y reorganizar los campos a través de la interfaz de usuario de campo. Actualmente funciona bien en formularios, el soporte para otros viene en una segunda iteración.
O agregue lo siguiente a su módulo personalizado:
Un módulo de espacio aislado que deshabilita las pestañas verticales
Aquí está este problema central que se refiere a esto.
fuente
También puede usar la comprobación de #acceso para evitar que las personas vean las pestañas verticales.
Simplemente agréguelo a un formulario de enlace alternativo o entre la carga y la representación de un formulario. Después de eso, puede llamar a render ($ form) para obtener el marcado.
fuente
Escribí una posible solución simple en el hilo ya mencionado: https://drupal.org/node/1048644#comment-7822687 . Por conveniencia, lo pegaré aquí.
Hay una manera simple de deshabilitar las pestañas verticales en un formulario, simplemente cambiando el
$form['additional_settings']['#type']
valor de la variable'fieldset'
en una implementación de hook_form_alter () o hook_form_FORM_ID_alter () , si es igual a'vertical_tabs'
.No es necesario cambiar la configuración de acceso o recorrer toda la
$form
matriz de forma recursiva, esta última consume demasiados recursos innecesariamente.(Probado en Drupal 7.23 .)
Eso es todo, por supuesto, sustituto del nombre
MYMODULEORTHEMENAME
de su propio módulo o tema (este último en untemplate.php
archivo) ymy_form_id
de la identificación de su formulario.También puede deshabilitar los campos verticales solo para usuarios que NO tienen la función de administrador :
En caso de que alguien esté interesado, adjunté un parche (que hace lo mismo que el anterior) al módulo de sandbox de Dripman: # 2080739: Simplifique el método de deshabilitar las pestañas verticales con solo cambiar el
$form['additional_settings']['#type']
a'fieldset'
.fuente
Los elementos que se pueden procesar actualmente no son compatibles, y reconoce en la página del proyecto que choca con algunos otros módulos contribuidos, por lo que no confiaría en él para los sitios de producción.
La cuestión de cómo deshabilitar completamente las pestañas verticales se aborda en este hilo .
Dripman ha creado un módulo sandbox simple para deshabilitar completamente las pestañas verticales.
Dependiendo de su nivel deseado de compromiso con la codificación, el módulo de Dripman debe ser fácilmente personalizable para ser selectivo en función de los campos / roles.
Disculpas por la superposición con una respuesta sucinta de @nicoz
fuente
Puede usar el módulo Visibilidad de pestañas verticales .
Actualmente el módulo está en sandbox
fuente
Para mi caso de uso, estaba tratando de deshabilitar las pestañas verticales que se aplican en la sección Opciones de publicación en un formulario de edición de nodo (ya que este era el único conjunto de campos al que un conjunto particular de usuarios tiene acceso):
Para aclarar, no solo necesita establecerlo
additional_settings
#collapsible
en FALSO, sino que todos los elementos dentro deben tener el elemento #collapsibleset to
FALSE, in my case that was the
options`.fuente