Quiero configurar la página principal de Drupal mediante programación en tiempo de ejecución.
¿Cómo puedo hacer esto? es posible?
22
Puedes usar variable_set()
para eso.
variable_set('site_frontpage', $value);
hook_install
ohook_update_N
entonces debería estar bien.Hay un módulo ( Frontpage , que es uno que mantuve) que permite configurar una página principal diferente para usuarios anónimos y usuarios autenticados. El módulo permite que los módulos de terceros modifiquen la página a la que se redirige a los usuarios, o que modifiquen la matriz de estructura utilizada para representar la página. Los módulos de terceros pueden cambiar la URL de redireccionamiento solo cuando la página de inicio para anónimos o autenticados no se ha configurado dentro del módulo de Frontpage, o cuando ha habido un error durante la carga del nodo; el módulo probablemente se cambiará en el futuro para permitir que los módulos de terceros redirijan a los usuarios a una página específica que seleccionen.
Como alternativa, puede crear un módulo personalizado que, utilizando un código similar al utilizado por Frontpage, redirija a los usuarios a una página específica, basándose en criterios específicos.
El módulo debe implementar hook_menu () y asociar una devolución de llamada de menú a, por ejemplo, http://example.com/frontpage ; la devolución de llamada de la página de ese elemento del menú simplemente debe verificar que se verifique una condición y luego redirigir a los usuarios a una URL específica.
El esqueleto del código podría ser algo similar a lo siguiente:
fuente
Una solución muy flexible sería utilizar paneles . Se pueden presentar diferentes pantallas según cualquier criterio, y se controla a través de una interfaz de usuario.
fuente
Lo arreglé así:
fuente
hook_page_alter
y utilizadrupal_is_front_page
para redirigir a los usuarios, utilizandodrupal_goto
, en función de alguna condición (en este caso $ user-> uid no debería ser 0)El módulo de Reglas también se puede usar para configurar la portada "programáticamente".
La regla que se creará en realidad, sería una variación de la respuesta en Redirigir a los usuarios registrados (autenticados) a una página principal diferente usando reglas o código php .
Y, opcionalmente, combinarlo con el módulo Flag podría posiblemente mejorar aún más la experiencia del usuario. Por ejemplo, para los usuarios registrados para indicar cuáles de las posibles portadas consideran que son sus "favoritos".
fuente
Si está buscando configurar esto globalmente mediante programación, puede configurar la variable en settings.php:
fuente
He alterado el nodo de la página de inicio (en subdominios) configurando la variable en un hook_url_outbound_alter ()
Y luego redireccionando:
fuente