webform toke modulos modules for ctools drupal drupal-7 drupal-views

drupal - toke - Mostrar un nodo en Vistas, pero deshabilitar la página de nodo



toke drupal (2)

Estoy creando un bloque de "Testimonios" con un nuevo tipo de contenido y un módulo de Vistas. El problema es que Drupal crea una página separada para cada testimonio y los usuarios pueden acceder a la página si conocen su ID (o encuentran la página en SERP).

¿Es posible deshabilitar las páginas de nodo para ese tipo de contenido específico, pero enumerar los nodos en un bloque de Vistas? La página estándar de "Drupal" 404 sería ideal.

¡Gracias!


Difícil porque no podrá usar hook_node_access () (el modo de vista nunca se pasa, por lo que no puede determinar entre el avance y las páginas completas). Una forma rápida y sucia de hacerlo sería en hook_node_view () :

function MYMODULE_node_view($node, $view_mode, $langcode) { if ($node->type == ''my_node_type'' && $view_mode == ''full'') { drupal_not_found(); } }

Probablemente haya mejores formas de ''Drupal'' de modo para hacerlo, pero eso servirá en caso de necesidad.


Esta respuesta es para Drupal 6.x, pero probablemente sea bastante similar para Drupal 7 ...

Los módulos de Chaos Tools and Panels para Drupal pueden lograr esto. Con el submódulo Chaos Tools, ''Page Manager'', puede habilitar la página ''node_view'' en ''Administrar páginas ...'' (Creación del sitio -> Páginas).

Una vez que la página ''node_view'' está habilitada, agregará una ''Variant'' (por ejemplo, Título: ''Usuario no administrador'') con ''Selection Rules'' y establecerá los criterios en ''Node Type'', luego lo limitará a su tipo de contenido ( por ejemplo, Testimonio).

Después de eso, se necesitará una ''Regla de Selección'' más para ''Función del Usuario''. Con eso, elija los roles de usuario anónimos y autenticados.

A continuación, continúe con la configuración y elija un diseño de "columna única", luego haga clic en el ícono de "engranaje" en la "columna central" al elegir el contenido de su panel. A continuación, puede especificar un nodo existente (por ejemplo, su página de nodo 404).

A continuación, recomendaría configurar otra ''Variante'' (por ejemplo, Título ''Usuario administrador'') en su página ''vista_nodo'' con ''Criterios de selección'' establecidos en su tipo de contenido y establecer los criterios de usuario para su (s) rol (es) de administrador o usuario id # 1. Luego, en lugar de agregar el nodo 404 como contenido a la página de su panel, puede agregar el ''nodo actual que se está viendo'' al contenido del panel. De esta forma, los administradores aún pueden ver las páginas de los nodos y los usuarios normales serán dirigidos a su página 404.