/** * Applique les différents filtres du thème courant * * @return void */ private static function applyTheme() { if (function_exists('boxTemplate')) { $boxTemplate = call_user_func('boxTemplate'); } else { throw new PubwichErreur(Pubwich::__('You must define a boxTemplate function in your theme\'s functions.php file.')); } foreach (self::$classes as $classe) { $functions = array(); $parent = get_parent_class($classe); $classname = get_class($classe); $variable = $classe->getVariable(); if (!$classe->getBoxTemplate()->hasTemplate() && $boxTemplate) { $classe->setBoxTemplate($boxTemplate); } if ($parent != 'Service') { $functions = array($parent, $parent . '_' . $classname, $parent . '_' . $classname . '_' . $variable); } else { $functions = array($classname, $classname . '_' . $variable); } foreach ($functions as $f) { $box_f = $f . '_boxTemplate'; $item_f = $f . '_itemTemplate'; if (function_exists($box_f)) { $classe->setBoxTemplate(call_user_func($box_f)); } if (function_exists($item_f)) { $classe->setItemTemplate(call_user_func($item_f)); } } } }