Ocultar campo al crear un nodo

11

¿Cómo puedo ocultar un campo al crear un nodo, pero mostrarlo al editar un modo?

usuario780
fuente

Respuestas:

16

Si entiendo su pregunta, creo que puede usar un módulo personalizado (en este ejemplo, el nombre del módulo es test_remove_field) e incluir el siguiente código:

function test_remove_field_form_alter(&$form, &$form_state) {

    if (arg(0) == 'node' && arg(1) == 'add') {
    $form['field_test']['#access'] = 0;
    }

}

Nota: recuerde que field_testdebe ser su nombre de campo respectivo.

cigotete
fuente
gracias. No estoy familiarizado con la creación del módulo. ¿Hay alguna sugerencia de CSS o tema para hacer esto?
user780
Hola av, con respecto a su pregunta, sí, es posible, puede agregar la misma declaración IF en page.tpl.php (dentro de la zona de cabecera) y agregar dentro de la declaración la respectiva regla CSS (ID o CLASE) para eliminar su campo: # field_name_test {display: none;}
cigotete
1
aquí está el código de mi prueba: <? php if (arg (0) == 'node' && arg (1) == 'add') {?> <style type = "text / css"> #field_name_test {display {display :ninguna; } </style> <? php}?>
cigotete
4

El módulo de permisos de campo le permite establecer permisos de nivel de campo:

  • Crear campo (editar en creación de contenido)
  • Editar campo independientemente del autor del contenido
  • Editar campo propio en contenido creado por el usuario
  • Ver campo independientemente del autor del contenido
  • Ver campo propio en contenido creado por el usuario

Puede usar estas opciones para habilitar el permiso basado en roles para un campo.

Cuando los permisos están habilitados, el acceso a este campo se deniega de manera predeterminada y se deben otorgar permisos explícitos a los roles de usuario adecuados desde la página de administración de permisos. Por otro lado, cuando estas opciones están deshabilitadas, los permisos de campo se heredan de la vista de contenido y / o permisos de edición. Por ejemplo, los usuarios autorizados para ver un nodo en particular también podrán ver este campo, y así sucesivamente.

Permisos de campo

Refineo
fuente
3

Que haría uso de hook_form_alter () y establezca la ['#access']propiedad a FALSEigual que la respuesta por @ moon.watcher.

Si estás en Drupal 6, necesitarías un módulo para hacerlo. En Drupal 7 puede llamar a hook_form_alter () desde su plantilla.

pcambra
fuente
2

Este es un caso de uso para el Módulo de soporte de formulario de reglas: https://www.drupal.org/project/rules_forms .

Las características incluyen:

  • Active eventos para la creación, validación y envío de formularios, formulario por formulario.
  • Apunte a elementos de formulario individuales o al formulario completo en condiciones y acciones. Manipule los atributos de un elemento de formulario como título, descripción, peso y más.
  • Valide los valores de los elementos del formulario durante la validación del formulario.
  • Establecer errores de formulario cuando falla la validación basada en reglas.
  • Redirige a los usuarios a una página diferente al ver o enviar un formulario.
  • Examine los atributos de los elementos en formas activas con la herramienta de inspección de elementos.
ske313
fuente
0

Puede hacerse cargo del formulario de agregar / editar nodo con las páginas del Panel. Con esto, puede elegir lo que quiere en el formulario.

Dee
fuente