示例#1
0
function gettemplate($files, $template = false, $template_path = false)
{
    global $user;
    $template_ex = '.tpl.html';
    if ($template === false) {
        return sys_file_read(TEMPLATE_DIR . '/' . $files . $template_ex);
    }
    if (is_string($files)) {
        //    $files = array('body' => $files);
        $files = array(basename($files) => $files);
    }
    if (!is_object($template)) {
        $template = new template();
    }
    //$template->set_custom_template($template_path ? $template_path : TEMPLATE_DIR, TEMPLATE_NAME, TEMPLATE_DIR);
    $tmpl_name = gettemplatename($user['dpath']);
    $template->set_custom_template(($template_path ? $template_path : SN_ROOT_PHYSICAL . 'design/templates/') . $tmpl_name . '/', $tmpl_name, TEMPLATE_DIR);
    foreach ($files as &$filename) {
        $filename = $filename . $template_ex;
    }
    $template->set_filenames($files);
    return $template;
}
示例#2
0
/**
 * @param array|string  $files
 * @param template|bool $template
 * @param string|bool   $template_path
 *
 * @return template
 */
function gettemplate($files, $template = false, $template_path = false)
{
    global $sn_mvc, $sn_page_name, $user;
    $template_ex = '.tpl.html';
    if ($template === false) {
        return sys_file_read(TEMPLATE_DIR . '/' . $files . $template_ex);
    }
    is_string($files) ? $files = array(basename($files) => $files) : false;
    !is_object($template) ? $template = new template() : false;
    //$template->set_custom_template($template_path ? $template_path : TEMPLATE_DIR, TEMPLATE_NAME, TEMPLATE_DIR);
    $tmpl_name = gettemplatename($user['dpath']);
    $template->set_custom_template(($template_path ? $template_path : SN_ROOT_PHYSICAL . 'design/templates/') . $tmpl_name . '/', $tmpl_name, TEMPLATE_DIR);
    // TODO ГРЯЗНЫЙ ХАК! Это нужно, что бы по возможности перезаписать инфу из языковых пакетов модулей там, где она была перезаписана раньше инфой из основного пакета. Почему?
    //  - сначала грузятся модули и их языковые пакеты
    //  - затем по ходу дела ОСНОВНОЙ языковой пакет может перезаписать данные из МОДУЛЬНОГО языкового пакета
    // Поэтому и нужен этот грязный хак
    // В норме же - страницы заявляют сами, какие им пакеты нужны. Так что сначала всегда должны грузится основные языковые пакеты, а уже ПОВЕРХ них - пакеты модулей
    !empty($sn_mvc['i18n']['']) ? lng_load_i18n($sn_mvc['i18n']['']) : false;
    $sn_page_name ? lng_load_i18n($sn_mvc['i18n'][$sn_page_name]) : false;
    foreach ($files as &$filename) {
        $filename = $filename . $template_ex;
    }
    $template->set_filenames($files);
    return $template;
}