È possibile definire una funzione hook_preprocess in base al tipo di entità come profile2?


8

Ho esaminato i possibili hook utilizzando la funzione hook_preprocess(&$vars, $hook)e solo l'entità era disponibile per l'uso. È possibile fare qualcosa del genere hook_preprocess_profile2_entity()o devo scrivere una condizione if per verificare il tipo di entità hook_preprocess_entity()?

Risposte:


15

Ciò adatta il modello di tema Zen per le funzioni di preelaborazione del nodo alle entità:

<?php

/**
 * Implements template_preprocess_entity().
 *
 * Runs a entity specific preprocess function, if it exists.
 */
function MYTHEME_preprocess_entity(&$variables, $hook) {
  $function = __FUNCTION__ . '_' . $variables['entity_type'];
  if (function_exists($function)) {
    $function($variables, $hook);
  }
}

/**
 * Profile2 specific implementation of template_preprocess_entity().
 */
function MYTHEME_preprocess_entity_profile2(&$variables, $hook) {
}

/**
 * Field Collection specific implementation of template_preprocess_entity().
 */
function MYTHEME_preprocess_entity_field_collection_item(&$variables, $hook) {
}

Questo è bellissimo. Dimentico sempre che PHP ti consente di fare cose del genere.
— mpdonadio

Se vuoi farlo in un tema genitore ed ereditare / sovrascrivere, dovrai scavare più a fondo in hook_theme. Hook_theme di Zen è un buon esempio (anche se lungo).
— Capi Etheriel,

Le sarei grato se qualcuno mi mostrasse come posso ottenere qualcosa di simile al di fuori del tema! Mi sta facendo impazzire ...
— NikLP,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.