it-swarm-es.com

¿Cómo anular la función única de template.php del tema usando un subtema?

Target: Drupal 7 Desarrollo de subtemas
No quiero anular todo el archivo template.php. Solo quiero anular la función única del archivo template.php.

4
user931

Realmente depende del tipo de función:

  • Si se trata de una función de tema (theme_username()), simplemente puede volver a declarar la función con el nombre de su subtema (SUBTHEME_username()).

  • Si se trata de una función de preproceso, puede tener su propia versión del preproceso en su subtema, pero IIRC seguirá invocando el preproceso del tema principal.

  • Si es una función propia (no una función estándar basada en HOOK), entonces tendría que poner algo de su propia lógica para permitir que otros temas la sobrescriban.

Tal vez proporcione más información sobre la función en cuestión para que alguien pueda darle una respuesta más específica.

5
Decipher

Puede usar hook_html_head_alter () para alterar las etiquetas XHTML HEAD) antes de que sean procesadas por 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