it-swarm-es.com

¿Puedes diferenciar el título del elemento hook_menu () del título de la página?

Estoy creando un menú con hook_menu ().

Cuando construye la matriz para esto, especifica un título, que luego se pasa a la página que llama y se convierte en el título de la página. También es el nombre que se muestra en el elemento del menú.

$items['somewhere/something'] = array(
 'title' => 'Something',
 'description' => 'something else',
);

Esto generaría un enlace de menú llamado "Algo", y el título de la página sería el mismo. ¿Hay alguna manera de hacer que el nombre del elemento del menú sea una cosa, pero pase un título diferente para la página?

Sé que puedo usar drupal_set_title() en la función real hook_page(), pero tendría que realizar una extracción de base de datos adicional para que eso suceda en este caso, y prefiero no hacerlo ese.

6
oranges13

No, no hay forma de hacerlo con hook_menu () .

La forma más simple es lo que sugirió, usando drupal_set_title () y la más eficiente es lo que dobeerman sugirió anteriormente: use - phptemplate_preprocess_page () y modifique $ vars en consecuencia.

Honestamente, sin embargo, simplemente usaría drupal_set_title () incluso si hay esa llamada de db adicional que mencionaste (sin confirmar). Esta es una pequeña optimización y si el rendimiento es importante para usted, debe tener algún mecanismo de almacenamiento en caché (Varnish, Boost, etc.) y esta llamada adicional no hará la diferencia.

5
Alex Weber

Para establecer un título diferente para la página (el que se usa en la etiqueta <title>), Tiene dos posibilidades:

  • En su módulo, implemente MODULE_preprocess_page() y úselo para alterar el valor de $variables['head_title']. La página de documentación para template_preprocess_page () informa qué valores están disponibles en la matriz $variables.
  • Instale el módulo Título de la página , que le permite cambiar el conjunto de títulos de una página. Le permite ejecutar un fragmento PHP para establecer el título de la página, y también usa tokens .

Usando drupal_set_title () , no establece solo el título de la página o el título visible en la barra de título; configura ambos, como se informa en la documentación.

Establece el título de la página actual, para mostrar en la página y en la barra de título.

Parámetros

$ title
Valor de cadena opcional para asignar al título de la página; o si se establece en NULL (predeterminado), deja el título actual sin cambios.

Valor de retorno

El título actualizado de la página actual.

1
kiamlaluno