it-swarm-eu.dev

Jak potlačit jednu funkci šablony template.php motivu pomocí podtému?

Cíl: Drupal 7 Vývoj dílčích témat
Nechci přepsat celý soubor template.php. Chci jen přepsat jednu funkci souboru template.php.

4
user931

To opravdu záleží na typu funkce:

  • Pokud se jedná o funkci motivu (theme_username()), můžete funkci jednoduše deklarovat pomocí názvu podtémat (SUBTHEME_username()).

  • Pokud je to funkce předzpracování, můžete mít ve svém dílčím motivu vlastní verzi předzpracování, ale předzpracování nadřazeného tématu bude stále vyvoláno.

  • Pokud je to vaše vlastní funkce (nikoli standardní funkce založená na HOOK), pak byste museli vložit některé své vlastní logiky, aby ji bylo možné přepsat jinými tématy.

Možná poskytnete nějaké další informace o dané funkci, aby vám někdo mohl dát konkrétnější odpověď.

5
Decipher

Pomocí hook_html_head_alter () můžete změnit XHTML HEAD tagy dříve, než jsou vykresleny pomocí drupal_get_html_head ()).

function mytheme_html_head_alter(&$head_elements) {
  foreach ($head_elements as $key => $element) {
    if (isset($element['#attributes']['rel']) && $element['#attributes']['rel'] == 'canonical') {
      // I want a custom canonical URL.
      $head_elements[$key]['#attributes']['href'] = mymodule_canonical_url();
    }
  }
}
1
Pooja Goyal