Ejemplo n.º 1
0
function __block_tag_output($tag, $arg_list)
{
    global $application, $zone;
    if ($zone == 'AdminZone' and !class_exists($tag)) {
        $mm =& $application->getInstance('Modules_Manager');
        $mm->includeViewFileOnce($tag);
    }
    if ($zone == 'AdminZone' && !modApiFunc('Users', 'checkCurrentUserAccess', $tag)) {
        echo file_get_contents($application->getAppIni('PATH_CORE_DIR') . '/block_no_access.tpl');
        return;
    }
    CProfiler::btStart($tag);
    if ($zone == 'CustomerZone' and !class_exists($tag)) {
        $application->prepareStorefrontBlockTag($tag);
    }
    #          ,                                  view.
    $view = $application->getLatestTag();
    if ($view != null && is_callable(array($view, 'getTag'))) {
        $view_obj =& $application->getInstance($view);
        $application->pushTag($tag);
        $output = $view_obj->getTag($tag, $arg_list);
        $application->popTag();
    }
    if (!isset($output)) {
        $obj =& $application->getInstance($tag);
        $application->pushTag($tag);
        $output = call_user_func_array(array(&$obj, 'output'), $arg_list);
        $application->popTag();
    }
    echo $output;
    CProfiler::btStop($tag);
}