private static function applyTheme()
{
if (function_exists('boxTemplate')) {
$boxTemplate = call_user_func('boxTemplate');
} else {
throw new PubwichError(Pubwich::_('You must define a boxTemplate function in your theme\'s functions.php file.'));
}
foreach (self::$classes as $class) {
$functions = array();
$parent = get_parent_class($class);
$classname = get_class($class);
$variable = $class->getVariable();
if (!$class->getBoxTemplate()->hasTemplate() && $boxTemplate) {
$class->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)) {
$class->setBoxTemplate(call_user_func($box_f));
}
if (function_exists($item_f)) {
$class->setItemTemplate(call_user_func($item_f));
}
}
}
}