it-swarm-eu.dev

Můžete změnit název položky hook_menu () od názvu stránky?

Vytvářím menu s hook_menu ().

Když pro toto sestavujete pole, určíte název, který se pak předá na stránku, na kterou voláte, a stává se názvem stránky. Je to také zobrazovaný název položky nabídky.

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

Tím by se vygeneroval odkaz na nabídku nazvaný „Něco“ a název stránky by byl stejný. Existuje způsob, jak učinit z názvu položky jednu věc, ale předat jiný název stránky?

Vím, že mohu použít funkci drupal_set_title() ve skutečné funkci hook_page(), ale musím provést další tah databáze, aby se to stalo v tomto případě, a raději bych to neudělal že.

6
oranges13

Ne neexistuje způsob, jak to udělat s hook_menu () .

Nejjednodušší způsob je to, co jste navrhli, pomocí drupal_set_title () a nejefektivnější je to, co washerman navržené výše: use - phptemplate_preprocess_page () a podle toho mění $ vars.

Upřímně řečeno, jen bych použil drupal_set_title (), i když existuje další volání db, které jste zmínili (nepotvrzené). Jedná se o nepatrnou optimalizaci a pokud je pro vás důležitý výkon, měli byste mít nějaký mechanismus ukládání do mezipaměti (lak, zvýšení, atd.) A toto zvláštní volání nezmění!

5
Alex Weber

Chcete-li pro stránku nastavit jiný název (název použitý ve značce <title>), Máte dvě možnosti:

  • Ve svém modulu implementujte MODULE_preprocess_page() a použijte jej ke změně hodnoty $variables['head_title']. Stránka dokumentace pro template_preprocess_page () uvádí, jaké hodnoty jsou k dispozici v poli $variables.
  • Nainstalujte modul Page Title , který vám umožní změnit sadu titulů pro stránku. To vám umožní spustit útržek PHP) pro nastavení názvu stránky, a také používá tokeny .

Pomocí drupal_set_title () nenastavíte pouze nadpis stránky nebo titul viditelný v záhlaví; nastavíte oba, jak je uvedeno v dokumentaci.

Nastavte název aktuální stránky, aby se zobrazoval na stránce a v záhlaví.

Parametry

$ title
Nepovinná hodnota řetězce pro přiřazení názvu stránky; nebo pokud je nastavena na NULL (výchozí), ponechá aktuální titul nezměněný.

Vrácená hodnota

Aktualizovaný název aktuální stránky.

1
kiamlaluno