Mostrar nodo en superposición usando el módulo de superposición de drupal 7

Pregunta:

¿Hay alguna forma de abrir una superposición con un contenido de nodo utilizando el módulo principal de superposición de drupal? Si pudiera reutilizar al menos el código javascript, ya estaría feliz =)

Respuesta:

La forma más rápida es implementar hook_admin_paths_alter () en un módulo para redefinir cuáles de los elementos del menú definidos en hook_menu() por otros módulos son rutas administrativas. El valor devuelto de las implementaciones de hook_admin_paths () , que luego se modifican de las implementaciones de hook_admin_paths_alter() , se usa desde el módulo Overlay para decidir qué páginas se representan como superpuestas. Como otros módulos podrían usar la misma información para representar las páginas usando un tema diferente, el módulo debería requerir el módulo Superposición como dependencia, para asegurarse de que las páginas adicionales se representen de manera efectiva como superposición.

function mymodule_admin_paths_alter(&$paths) {
  $paths['node/*/view'] = TRUE;
}

Si nota que esta implementación no funciona cuando los usuarios están viendo, por ejemplo, example.com / node / 1, pero solo cuando están viendo example.com/node/1/view, entonces implementaría el gancho usando el siguiente código. La primera implementación que proporcioné debería funcionar, ya que la pestaña "Ver" es la predeterminada, y cuando los usuarios ven example.com/node/1, Drupal realmente muestra example.com/node/1/view.

function mymodule_admin_paths_alter(&$paths) {
  $paths['node/*'] = TRUE;
  $paths['node/*/view'] = TRUE;
}

Como la primera línea podría capturar todas las páginas de los nodos (no verifiqué eso), verificaría si hay otras páginas debajo de esa ruta que no deberían ser renderizadas; en ese caso, la implementación se puede cambiar como la siguiente ("nodo / * / backlinks" es solo un ejemplo):

function mymodule_admin_paths_alter(&$paths) {
  $paths['node/*'] = TRUE;
  $paths['node/*/view'] = TRUE;
  $paths['node/*/backlinks'] = FALSE;
}
  • Normalmente, los módulos implementan hook_admin_paths() para informar cuáles de sus elementos de menú son páginas administrativas; esto significa que si una página no es una página administrativa, no se agrega una entrada para esa página a la matriz devuelta.
  • hook_admin_paths() se implementa para los elementos del menú definidos en su propio módulo; para redefinir cuándo los elementos del menú definidos desde otros módulos son páginas administrativas, debe implementar hook_admin_paths_alter() .
  • A las páginas que se definen como páginas administrativas no se les aplica automáticamente un control de acceso; esto significa que el módulo que define los elementos del menú que se informan como páginas administrativas aún necesita usar "devolución de llamada de acceso" y "argumentos de acceso" para definir qué usuarios pueden acceder a esos elementos del menú asociados con las páginas administrativas. Las páginas definidas como páginas administrativas solo se representan de manera diferente, si hay un módulo que lo hace.
  • El módulo de nodo define las páginas de edición de nodo como página administrativa solo cuando se selecciona una casilla de verificación en una página administrativa; esas páginas ya están gestionadas.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım