Esempio n. 1
0
function mso_auth_dialog($OPTIONS)
{
    if (!isset($_SERVER['PHP_AUTH_USER'])) {
        header('WWW-Authenticate: Basic realm=""');
        header('HTTP/1.0 401 Unauthorized');
        // echo 'Cancel';
        exit;
    } else {
        // введены данные, проверяем
        if (isset($_SERVER['PHP_AUTH_USER']) and isset($_SERVER['PHP_AUTH_PW']) and strcmp($_SERVER['PHP_AUTH_USER'], $OPTIONS['username']) == 0 and strcmp($_SERVER['PHP_AUTH_PW'], $OPTIONS['password']) == 0) {
            if (!isset($_SESSION)) {
                session_start();
            }
            $_SESSION[$OPTIONS['session']] = 1;
            // ставим признак
            mso_set_val('auth', true);
            // запоминаем
        } else {
            header('WWW-Authenticate: Basic realm=""');
            header('HTTP/1.0 401 Unauthorized');
            // echo 'Error login/password';
            exit;
        }
    }
}
Esempio n. 2
0
function mso_next_prev_page($r = array())
{
    $out = array();
    if (!isset($r['page_id']) or !isset($r['page_categories']) or !isset($r['page_date_publish'])) {
        $out['next'] = false;
        $out['prev'] = false;
        return $out;
    }
    // передаем дату отдельно, она используется в function_add_custom_sql
    mso_set_val('_sql_next_prev_pages_page_date_publish', $r['page_date_publish']);
    // $r['use_category'] — если нужно учитывать рубрику
    if (!isset($r['use_category'])) {
        $r['use_category'] = true;
    }
    if ($r['use_category']) {
        // рубрики
        $cat = $r['page_categories'];
        // если несколько рубрик, то ищем те, в которых
        // category_id_parent не равен 0 — это подрубрики
        // если такие есть, то по ним и делаем навигаци
        if (count($r['page_categories']) > 1) {
            $all_cat = mso_cat_array_single();
            // все рубрики
            foreach ($r['page_categories'] as $id) {
                if ($all_cat[$id]['parents'] > 0) {
                    $cat = array($id);
                    break;
                }
            }
        }
        $cat = implode(',', $cat);
    } else {
        $cat = '';
        // рубрика не учитывается
    }
    if (!isset($r['type'])) {
        $r['type'] = 'blog';
    }
    // можно задать тип записей
    // next
    if ($pages = mso_get_pages(array('content' => false, 'cat_id' => $cat, 'order_asc' => 'asc', 'limit' => 1, 'pagination' => false, 'custom_type' => 'home', 'function_add_custom_sql' => '_sql_next_page', 'get_page_categories' => false, 'get_page_meta_tags' => false, 'get_page_count_comments' => false, 'type' => $r['type'], 'exclude_page_id' => $r['page_id']), $temp)) {
        $out['next'] = $pages[0];
    } else {
        $out['next'] = false;
    }
    // prev
    if ($pages = mso_get_pages(array('content' => false, 'cat_id' => $cat, 'order_asc' => 'desc', 'limit' => 1, 'pagination' => false, 'custom_type' => 'home', 'function_add_custom_sql' => '_sql_prev_page', 'get_page_categories' => false, 'get_page_meta_tags' => false, 'get_page_count_comments' => false, 'type' => $r['type'], 'exclude_page_id' => $r['page_id']), $temp)) {
        $out['prev'] = $pages[0];
    } else {
        $out['prev'] = false;
    }
    // $r['reverse'] — меняем местами пункты
    if (isset($r['reverse']) and $r['reverse']) {
        $o = array();
        $o['next'] = $out['prev'];
        $o['prev'] = $out['next'];
        $out = $o;
    }
    return $out;
}
Esempio n. 3
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
// на странице пагинации next запись не выводим
if (mso_current_paged() > 1) {
    return;
}
$par = array('limit' => 1, 'cut' => mso_get_option('more', 'templates', tf('Читать полностью »')), 'cat_order' => 'category_name', 'cat_order_asc' => 'asc', 'pagination' => false, 'exclude_page_id' => mso_get_val('exclude_page_id'));
// подключаем кастомный вывод, где можно изменить массив параметров $par для своих задач
if ($f = mso_page_foreach('home-cat-block-last-page-mso-get-pages')) {
    require $f;
}
$pages = mso_get_pages($par, $temp);
mso_set_val('container_class', 'mso-home-last-page');
mso_set_val('full_format_title_start', '<h1>');
mso_set_val('full_format_title_end', '</h1>');
if ($fn = mso_find_ts_file('type/_def_out/full/full.php')) {
    require $fn;
}
# end file
Esempio n. 4
0
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0')) {
    $add_body_class = 'ie8';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 9.0')) {
    $add_body_class = 'ie9';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 10.0')) {
    $add_body_class = 'ie10';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Trident/7')) {
    $add_body_class = 'ie11';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Edge/12')) {
    $add_body_class = 'edge';
}
$add_body_class .= ' is-type-' . getinfo('type');
if (is_type('home')) {
    mso_set_val('body_class', 'body-home ' . $add_body_class);
} else {
    mso_set_val('body_class', 'body-' . getinfo('type') . ' ' . $add_body_class);
}
// возвращает путь к странице через связи дочерние-родительские страницы
function parents_out_way_to($page_id = 0)
{
    $cache_key = 'parents_out_way_to' . $page_id;
    $k = mso_get_cache($cache_key);
    if ($k) {
        return $k;
    }
    // да есть в кэше
    $r = '';
    $CI =& get_instance();
    $CI->db->select('page_id, page_id_parent, page_title, page_slug');
    $CI->db->where('page_id', $page_id);
    $CI->db->order_by('page_menu_order');
Esempio n. 5
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
mso_set_val('show_thumb', false);
mso_set_val('body_class', mso_get_val('main_class', ''));
mso_set_val('page_content_only', true);
mso_remove_hook('content_end');
mso_remove_hook('head_css');
mso_remove_hook('head');
mso_remove_hook('content');
#end of file
Esempio n. 6
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
mso_set_val('show_thumb', false);
mso_set_val('body_class', mso_get_val('main_class', ''));
mso_remove_hook('content_end');
Esempio n. 7
0
 public function output($r = array())
 {
     if (!$this->pages) {
         return;
     }
     // нет записей, выходим
     // дефолтный формат вывода
     $default = array('title_start' => '<h3 class="home-last-page">', 'title_end' => '</h3>', 'date' => 'D, j F Y г. в H:i', 'date_start' => '<span class="date"><time datetime="[page_date_publish_iso]">', 'date_end' => '</time></span>', 'cat_start' => ' | <span class="cat">', 'cat_end' => '</span>', 'cat_sep' => ', ', 'tag_start' => ' | <span class="tag">', 'tag_end' => '</span>', 'tag_sep' => ', ', 'author_start' => '', 'author_end' => '', 'read' => '»»»', 'read_start' => '', 'read_end' => '', 'comments_count_start' => '', 'comments_count_end' => '', 'thumb' => true, 'thumb_width' => 320, 'thumb_height' => 180, 'thumb_class' => 'thumb left', 'placehold' => false, 'placehold_path' => 'http://placehold.it/', 'placehold_pattern' => '[W]x[H].png', 'placehold_file' => false, 'placehold_data_bg' => '#CCCCCC', 'block_start' => '', 'block_end' => '', 'line1' => '[thumb]', 'line1_start' => '', 'line1_end' => '', 'line2' => '[title]', 'line2_start' => '', 'line2_end' => '', 'line3' => '[date] [cat]', 'line3_start' => '<p class="home-last-page-info">', 'line3_end' => '</p>', 'line4' => '', 'line4_start' => '', 'line4_end' => '', 'line5' => '', 'line5_start' => '', 'line5_end' => '', 'content' => true, 'content_chars' => 0, 'content_words' => 0, 'content_cut' => ' ...', 'content_start' => '<div class="mso-page-content">', 'content_end' => '</div>', 'columns' => 0, 'columns_class_row' => 'onerow', 'columns_class_cell' => 'col w1-2', 'clearfix' => false, 'page_start' => '', 'page_end' => '', 'pagination_start' => '', 'pagination_end' => '', 'box_grid' => 0, 'box_grid_class' => 'w50', 'box_grid_box_class' => 'table-box', 'exclude_page_add' => true);
     $r = array_merge($default, $r);
     // объединяем
     // $r = array_map('trim', $r);
     $p = new Page_out();
     // шаблонизатор
     // echo $r['block_start'];
     eval(mso_tmpl_prepare($r['block_start'], false));
     // формат записи
     $p->format('title', $r['title_start'], $r['title_end']);
     $p->format('date', $r['date'], $r['date_start'], $r['date_end']);
     $p->format('author', $r['author_start'], $r['author_end']);
     $p->format('cat', $r['cat_sep'], $r['cat_start'], $r['cat_end']);
     $p->format('tag', $r['tag_sep'], $r['tag_start'], $r['tag_end']);
     $p->format('read', $r['read'], $r['read_start'], $r['read_end']);
     $p->format('comments_count', $r['comments_count_start'], $r['comments_count_end']);
     if ($r['exclude_page_add']) {
         $exclude_page_id = mso_get_val('exclude_page_id');
     }
     if ($r['columns']) {
         $my_columns = new Columns($r['columns'], count($this->pages), $r['columns_class_row']);
     }
     if ($r['box_grid']) {
         $p->box_grid($r['box_grid']);
     }
     foreach ($this->pages as $page) {
         $p->load($page);
         // загружаем данные записи
         if ($r['box_grid']) {
             $p->box_grid_cell($r['box_grid_class'], $r['box_grid_box_class']);
         }
         if ($r['columns']) {
             $my_columns->out($r['columns_class_cell']);
         }
         // echo $r['page_start'];
         eval(mso_tmpl_prepare($r['page_start'], false));
         if ($r['thumb']) {
             // плейсхолд
             if ($r['placehold']) {
                 if ($r['placehold_file']) {
                     if ($r['placehold_file'] == 'data') {
                         // сами генерируем плейсхолд
                         // mso_holder($width = 100, $height = 100, $text = true, $background_color = '#CCCCCC', $text_color = '#777777', $font_size = 5)
                         $t_placehold = mso_holder($r['thumb_width'], $r['thumb_height'], false, $r['placehold_data_bg']);
                     } else {
                         $t_placehold = $r['placehold_path'] . $r['placehold_file'];
                     }
                 } else {
                     $t_placehold_pattern = str_replace('[W]', $r['thumb_width'], $r['placehold_pattern']);
                     $t_placehold_pattern = str_replace('[H]', $r['thumb_height'], $t_placehold_pattern);
                     $t_placehold_pattern = str_replace('[RND]', rand(1, 10), $t_placehold_pattern);
                     $t_placehold = $r['placehold_path'] . $t_placehold_pattern;
                 }
             } else {
                 $t_placehold = false;
             }
             if ($thumb = thumb_generate($p->meta_val('image_for_page'), $r['thumb_width'], $r['thumb_height'], $t_placehold)) {
                 $p->thumb = '<a href="' . mso_page_url($p->val('page_slug')) . '" title="' . htmlspecialchars($p->val('page_title')) . '"><img src="' . $thumb . '" class="' . $r['thumb_class'] . '" alt="' . htmlspecialchars($p->val('page_title')) . '"></a>';
             }
         }
         $p->line($r['line1'], $r['line1_start'], $r['line1_end']);
         $p->line($r['line2'], $r['line2_start'], $r['line2_end']);
         $p->line($r['line3'], $r['line3_start'], $r['line3_end']);
         if ($r['content']) {
             if ($r['content_chars']) {
                 $p->content_chars($r['content_chars'], $r['content_cut'], $r['content_start'], $r['content_end']);
                 // текст обрезанный
             } elseif ($r['content_words']) {
                 $p->content_words($r['content_words'], $r['content_cut'], $r['content_start'], $r['content_end']);
                 // текст обрезанный
             } else {
                 $p->content($r['content_start'], $r['content_end']);
             }
         }
         $p->line($r['line4'], $r['line4_start'], $r['line4_end']);
         $p->line($r['line5'], $r['line5_start'], $r['line5_end']);
         if ($r['clearfix']) {
             $p->clearfix();
         }
         // echo $r['page_end'];
         eval(mso_tmpl_prepare($r['page_end'], false));
         if ($r['columns']) {
             $my_columns->next();
         }
         if ($r['box_grid']) {
             $p->box_grid_next();
         }
         // сохраняем id записей, чтобы их исключить из вывода
         if ($r['exclude_page_add']) {
             $exclude_page_id[] = $p->val('page_id');
         }
     }
     if ($r['columns']) {
         $my_columns->close();
     }
     if ($r['box_grid']) {
         $p->box_grid_end();
     }
     if ($r['exclude_page_add']) {
         mso_set_val('exclude_page_id', $exclude_page_id);
     }
     if ($this->param['pagination']) {
         if (mso_hook_present('pagination')) {
             // echo $r['pagination_start'];
             eval(mso_tmpl_prepare($r['pagination_start'], false));
             mso_hook('pagination', $this->pagination);
             // echo $r['pagination_end'];
             eval(mso_tmpl_prepare($r['pagination_end'], false));
         }
     }
     // echo $r['block_end'];
     eval(mso_tmpl_prepare($r['block_end'], false));
 }
Esempio n. 8
0
if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
if ($f = mso_page_foreach('home-head-meta')) {
    require $f;
}
# начальная часть шаблона
if ($fn = mso_find_ts_file('main/main-start.php')) {
    require $fn;
}
mso_set_val('exclude_page_id', array());
// исключаем вывод записей из нижних блоков
// если указан текст перед всеми записями, то выводим и его
if (mso_get_option('home_text_do', 'templates', '')) {
    if ($fn = mso_find_ts_file('type/home/units/home-text-top.php')) {
        require $fn;
    }
}
// top-запись
if (mso_get_option('home_page_id_top', 'templates', '0')) {
    if ($fn = mso_find_ts_file('type/home/units/home-top-page.php')) {
        require $fn;
    }
}
// последняя запись
if (mso_get_option('home_last_page', 'templates', '0')) {
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
mso_set_val('home_list_header', '<div class="home_header">Последние записи</div>');
// используется только если выбран main-шаблон для двух сайдбаров
// mso_register_sidebar('2', t('2-й сайдбар'));
// сайдбары в подвале
mso_register_sidebar('3', t('Подвал: 1-й сайдбар'));
mso_register_sidebar('4', t('Подвал: 2-й сайдбар'));
mso_register_sidebar('5', t('Подвал: 3-й сайдбар'));
mso_register_sidebar('6', t('Подвал: 4-й сайдбар'));
mso_register_sidebar('7', t('Подвал: 5-й сайдбар'));
Esempio n. 10
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/*
 * (c) MaxSite CMS
 * http://max-3000.com/
 *
 * меняем формат вывода некоторых блоков
 *
 */
// mso_set_val('jquery_url', 'URL-адрес загрузки jQuery');
mso_set_val('head_section_html_add', ' lang="ru" prefix="og: http://ogp.me/ns#"');
// можно указать css-класс для BODY
if (is_type('home')) {
    mso_set_val('body_class', 'mso-body-home');
} else {
    mso_set_val('body_class', 'mso-body-all mso-body-' . getinfo('type'));
}
# end file
Esempio n. 11
0
mso_register_sidebar('1', tf('Первый сайдбар'));
# меняем форат вывода заголовков Hx
// заготовок виджета
mso_set_val('widget_header_start', '<div class="widget_header"><span>');
mso_set_val('widget_header_end', '</span></div><!-- class="widget_header" -->');
// оставьте комментарий
mso_set_val('leave_a_comment_start', '<div class="leave_a_comment">');
mso_set_val('leave_a_comment_end', '</div>');
//Комментариев
mso_set_val('page_comments_count_start', '<div class="page_comments_count">');
mso_set_val('page_comments_count_end', '</div>');
//Подписаться на эту рубрику по RSS
mso_set_val('show_rss_text_start', '<p class="show_rss_text">');
mso_set_val('show_rss_text_end', '</p>');
// Рубрика-заголовок в home-cat-block
mso_set_val('home_full_text_cat_start', '<div class="header_home_cat">');
mso_set_val('home_full_text_cat_end', '</div>');
// Еще записи по теме
mso_set_val('page_other_pages_start', '<div class="page_other_pages_header">');
mso_set_val('page_other_pages_end', '</div>');
// можно указать css-класс для BODY
// mso_set_val('body_class', '');
# подключим функции default-шаблона
if (file_exists(getinfo('templates_dir') . 'default/functions-template.php')) {
    require getinfo('templates_dir') . 'default/functions-template.php';
}
# дополнительный файл my_functions.php
if (file_exists(getinfo('template_dir') . 'custom/my_functions.php')) {
    require getinfo('template_dir') . 'custom/my_functions.php';
}
# end file
Esempio n. 12
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
# Диспетчер опций шаблона
# Сами опции вынесены в ini-файлы
// если выставить true, то подключаются все опции из ini-файлов  из shared/options/default/
// если false - то только те, которые размещены в каталоге шаблона
mso_set_val('get_options_default', false);
// require_once( getinfo('shared_dir') . 'options/options.php' ); // КОНТЕНТ ЭТОГО ФАЙЛА — НИЖЕ (закомментировано неиспользуемое)
echo '<h1>' . t('Настройка шаблона') . ' «' . getinfo('template_name') . '»</h1>';
echo '<p class="info">' . t('Выберите необходимые опции') . '</p>';
// функции для работы с ini-файлом
require_once getinfo('common_dir') . 'inifile.php';
// проверка на обновление POST
if (mso_check_post_ini()) {
    echo '<div class="update">' . t('Обновлено!') . '</div>';
}
$options = array();
// если переменная = true, то подгружаем дефолтные опции из shared/options/default/
// if (mso_get_val('get_options_default', true))
// {
//   // получим список всех файлов из options
//   $files = mso_get_path_files(getinfo('shared_dir') . 'options/default/', getinfo('shared_dir') . 'options/default/', true, array('ini'));
//   foreach($files as $file)
//   {
//     $add = mso_get_ini_file($file);
//     $options = array_merge($options, $add);
//   }
// }
Esempio n. 13
0
    if ($fn = mso_fe('main/main.php')) {
        $fn_main = $fn;
    } else {
        $fn_main = getinfo('template_dir') . 'main.php';
    }
    // может быть задан main-файл по-умолчанию в опции main_template_default
    if ($page_template = mso_get_option('main_template_default', 'templates', '')) {
        if ($fn = mso_fe('main/' . $page_template . '/main.php')) {
            $fn_main = $fn;
            // выставляем путь к файлу
        }
    }
    $MAIN_FILE = $fn_main;
}
// css-класс для main
$main_name = str_replace(getinfo('template_dir'), '', $MAIN_FILE);
$main_name = str_replace('/main.php', '', $main_name);
$main_name = str_replace('main/', '', $main_name);
$main_name = 'main-' . $main_name;
mso_set_val('main_class', $main_name);
// дополнительный файл там же — main-function.php если есть, то подключаем сразу
$main_file_function = str_replace('.php', '-function.php', $MAIN_FILE);
if (file_exists($main_file_function)) {
    require $main_file_function;
}
# библиотека для вывода записей в цикле и вывод колонок
require_once getinfo('shared_dir') . 'stock/page-out/page-out.php';
# библиотека для работы с изображениями
require_once getinfo('shared_dir') . 'stock/thumb/thumb.php';
ob_start();
# end file
Esempio n. 14
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
# Диспетчер опций шаблона
# Сами опции вынесены в ini-файлы
# поддерживаются custom/my_options.ini и custom/my_options.php
// если выставить true, то подключаются все опции из ini-файлов  из shared/options/default/
// если false - то только те, которые размещены в каталоге шаблона
mso_set_val('get_options_default', true);
require_once getinfo('shared_dir') . 'options/options.php';
# end file
Esempio n. 15
0
                require $f;
            }
            $pages = mso_get_pages($par, $temp);
            if ($pages) {
                $cat_info = mso_get_cat_from_id($cat_id);
                // все данные рубрики
                // название рубрики и ссылка
                echo '<div class="mso-header-home-cat">' . '<a href="' . getinfo('site_url') . 'category/' . $cat_info['category_slug'] . '">' . htmlspecialchars($cat_info['category_name']) . '</a>' . '</div>';
                // выводить описание рубрики
                if (mso_get_option('default_description_home_cat', 'templates', '0') and $cat_info['category_desc']) {
                    echo '<div class="mso-description-cat">' . $cat_info['category_desc'] . '</div>';
                }
                if ($f = mso_page_foreach('home-cat-block-out-pages-do')) {
                    require $f;
                }
                mso_set_val('container_class', 'mso-type-home mso-type-home-cat-block mso-type-home-cat-block-full');
                if ($fn = mso_find_ts_file('type/_def_out/full/full.php')) {
                    require $fn;
                }
            }
            // endif $pages
        }
        // end foreach $home_cat_block
    }
    mso_add_cache($key_home_cache, ob_get_flush(), 900);
}
// if $k
if ($f = mso_page_foreach('home-cat-block-posle')) {
    require $f;
}
echo NR . '</div><!-- class="mso-type-home-cat-block" -->' . NR;
Esempio n. 16
0
                            echo $p->img($image_for_page, mso_get_option('image_for_page_css_class', 'templates', 'image_for_page'), '', $p->val('page_title'));
                        }
                    }
                }
                $p->content('', '');
                // $p->clearfix();
            }
            // для page возможен свой info-bottom
            if ($f = mso_page_foreach('info-bottom-' . getinfo('type'))) {
                require $f;
            } elseif ($f = mso_page_foreach('info-bottom')) {
                require $f;
            }
            $p->html('<aside>');
            mso_page_content_end();
            $p->clearfix();
            $p->line('[comments]');
            $p->html('</aside>');
            $p->div_end('mso-page-content mso-type-' . getinfo('type') . '-content');
        }
    }
    $p->div_end('mso-page-only', '</article>');
    if ($f = mso_page_foreach(getinfo('type') . '-page-only-end')) {
        require $f;
    }
    $exclude_page_id[] = $p->val('page_id');
}
// end foreach
$p->div_end(mso_get_val('container_class'));
mso_set_val('exclude_page_id', $exclude_page_id);
# end file
Esempio n. 17
0
            $pages = mso_get_pages($par, $temp);
            if ($pages) {
                $cat_info = mso_get_cat_from_id($cat_id);
                // все данные рубрики
                // название рубрики и ссылка
                echo '<div class="mso-header-home-cat">' . '<a href="' . getinfo('site_url') . 'category/' . $cat_info['category_slug'] . '">' . htmlspecialchars($cat_info['category_name']) . '</a>' . '</div>';
                // выводить описание рубрики
                if (mso_get_option('default_description_home_cat', 'templates', '0') and $cat_info['category_desc']) {
                    echo '<div class="mso-description-cat">' . $cat_info['category_desc'] . '</div>';
                }
                if ($f = mso_page_foreach('home-cat-block-out-pages-do')) {
                    require $f;
                }
                mso_set_val('container_class', 'mso-type-home mso-type-home-cat-block mso-type-home-cat-block-list');
                if (mso_get_option('default_description_home', 'templates', '0')) {
                    mso_set_val('list_line_format', '[title] - [date] [meta_description]');
                }
                if ($fn = mso_find_ts_file('type/_def_out/list/list.php')) {
                    require $fn;
                }
            }
            // endif $pages
        }
        // end foreach $home_cat_block
    }
    mso_add_cache($key_home_cache, ob_get_flush(), 900);
}
// if $k
if ($f = mso_page_foreach('home-cat-block-posle')) {
    require $f;
}
Esempio n. 18
0
    $add_body_class = 'safari';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Opera')) {
    $add_body_class = 'opera';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0')) {
    $add_body_class = 'ie6';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0')) {
    $add_body_class = 'ie7';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0')) {
    $add_body_class = 'ie8';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 9.0')) {
    $add_body_class = 'ie9';
} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 10.0')) {
    $add_body_class = 'ie10';
}
$add_body_class .= ' is_type_' . getinfo('type');
mso_set_val('body_class', $add_body_class);
function parents_out_way_to($page_id = 0)
{
    $cache_key = 'parents_out_way_to' . $page_id;
    $k = mso_get_cache($cache_key);
    if ($k) {
        return $k;
    }
    // да есть в кэше
    $r = '';
    $CI =& get_instance();
    $CI->db->select('page_id, page_id_parent, page_title, page_slug');
    $CI->db->where('page_id', $page_id);
    $CI->db->order_by('page_menu_order');
    $query = $CI->db->get('page');
    $result = $query->result_array();