Пример #1
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/*
    (c) MaxSite CMS, http://max-3000.com/
*/
// условие вывода компонента
// php-условие как в виджетах
if ($rules = trim(mso_get_option('footer_any1_rules_output', getinfo('template'), ''))) {
    $rules_result = eval('return ( ' . $rules . ' ) ? 1 : 0;');
    if ($rules_result === false) {
        $rules_result = 1;
    }
    if ($rules_result !== 1) {
        return;
    }
}
$opt = mso_get_option('footer_any1_block', getinfo('template'), '');
$CI =& get_instance();
$copy_maxsite = sprintf(tf('Работает на <a href="http://max-3000.com/">MaxSite CMS</a> | Время: {elapsed_time} | SQL: %s | Память: {memory_usage}'), $CI->db->query_count) . '<!--global_cache_footer--> | ';
if (is_login()) {
    $login = '******' . getinfo('siteurl') . 'admin">' . tf('Управление') . '</a> | ' . '<a href="' . getinfo('siteurl') . 'logout">' . tf('Выйти') . '</a>';
} else {
    $login = '******' . getinfo('siteurl') . 'login">' . tf('Вход') . '</a>';
}
// используем php-шаблонизатор
eval(mso_tmpl_prepare($opt));
# end of file
Пример #2
0
	<div class="t15px t-gray500 links-no-color links-hover-t-gray100">
	<?php 
if ($fn = mso_fe('components/_social/_social.php')) {
    require $fn;
}
?>
	</div>
</div>

<div class="logo-block flex flex-vcenter pad20">
	<div class="w100-max"><?php 
echo $logo;
?>
</div>
	<div class=""><?php 
eval(mso_tmpl_prepare(mso_get_option('top1_block', getinfo('template'), '')));
?>
</div>
</div>

<div class="menu-search flex flex-vcenter mar20-rl bg-gray800 flex-wrap-tablet">
	
	<div class="w100-tablet"><?php 
if ($fn = mso_fe('components/_menu/_menu.php')) {
    require $fn;
}
?>
</div>
	
	<div class="">
		<form name="f_search" class="f_search" method="get">
Пример #3
0
/**
*  вывод текста
*  
*  @return string
*/
function mso_output_text()
{
    global $VAR, $MSO;
    if ($fn = mso_fe(CURRENT_PAGE_DIR . $MSO['_page_file'])) {
        // имя кеша строится по фиксированному шаблону
        $cache_file = CURRENT_PAGE . '_' . $MSO['_page_file'] . $MSO['_cache_suffix'];
        if (isset($_SERVER['REQUEST_URI']) and $_SERVER['REQUEST_URI'] and strpos($_SERVER['REQUEST_URI'], '?') !== FALSE) {
            $cache_file .= '-' . md5($_SERVER['REQUEST_URI']);
        }
        $cache_file = str_replace(array('.', '/', '\\', '?'), '-', $cache_file);
        $cache_file = CACHE_DIR . $cache_file . '.html';
        // если есть кеш, то отдаем из него
        if (!$VAR['nocache'] and mso_fe($cache_file)) {
            $t_cache = filemtime($cache_file);
            // время файла кеша
            if (filemtime($fn) < $t_cache) {
                // отдаем из кеша
                echo file_get_contents($cache_file);
                $MSO['_use_cache'] = true;
                // для статистики
                return '';
            }
        }
        ob_start();
        // файл перед page.php
        if ($VAR['start_file_text'] and $fd = mso_fe($VAR['start_file_text'])) {
            require $fd;
        }
        // файл page.php
        if ($VAR['tmpl']) {
            // используется шаблонизатор
            $templ = mso_tmpl_prepare(file_get_contents($fn));
            eval($templ);
        } else {
            // простое подключение
            require $fn;
        }
        // файл после page.php
        if ($VAR['end_file_text'] and $fd = mso_fe($VAR['end_file_text'])) {
            require $fd;
        }
        $out = ob_get_contents();
        ob_end_clean();
        $out = mso_word_processing($out);
        $out .= mso_lazy();
        // pr($out, 1);
        // результат запишем в кеш
        if (!$VAR['nocache']) {
            // для 404 кешируем только без REQUEST_URI
            if (!(CURRENT_PAGE == PAGE_404 and mso_url_request())) {
                file_put_contents($cache_file, $out);
            }
        }
        echo $out;
    }
}
Пример #4
0
}
$footer_block1 = mso_get_option('footer_block1', getinfo('template'), '<div class="hide-print flex flex-wrap">
<div class="w30">Блок 1</div>
<div class="w30">Блок 2</div>
<div class="w30">Блок 3</div>
</div>');
$footer_block2 = mso_get_option('footer_block2', getinfo('template'), 'Блок 4');
eval(mso_tmpl_prepare($footer_block1));
?>
<div class="hide-print flex flex-wrap">
	<div class="t-white t90 hover-no-color links-no-color pad20-t">
		<div class="">&copy; <?php 
echo getinfo('name_site') . ', ' . date('Y');
?>
</div>
		<div class=""><?php 
echo $copy_maxsite;
?>
 <?php 
echo $login;
?>
</div>
	</div>
	
	<div class="pad10-t">
		<?php 
eval(mso_tmpl_prepare($footer_block2));
?>
	</div>
</div>
Пример #5
0
function mso_tmpl($fn, $replace = true)
{
    $template = file_get_contents($fn);
    return mso_tmpl_prepare($template, $replace);
}
Пример #6
0
function mso_email_message_new_comuser($comusers_id = 0, $ins_data = array(), $comusers_activate_auto = false)
{
    $email = $ins_data['comusers_email'];
    // email куда приходят уведомления
    if (!$email) {
        return false;
    }
    // comusers_password
    // comusers_activate_key
    $subject = tf('Регистрация на ') . getinfo('title');
    // шаблон уведомления
    $def_option = '{% if ($activate_auto) : %}
Спасибо за регистрацию на сайте "{{ $name_site }}" — {{ $site_url }} 
 
Ваша страница:
{{ $comuser_url }} 
 
Ваш код активации:
{{ $activate_key }} 
 
Сохраните это письмо, поскольку код активации может понадобиться для смены пароля.
{% else: %}
Вы или кто-то еще зарегистрировал ваш адрес на сайте "{{ $name_site }}" — {{ $site_url }} 
 
Если это действительно сделали вы, то вам нужно подтвердить эту регистрацию. Для этого следует пройти по ссылке:
{{ $comuser_url }} 
 
И ввести следующий код для активации:
{{ $activate_key }} 
 
(Сохраните это письмо, поскольку код активации может понадобиться для смены пароля.)
 
Если же регистрацию выполнили не вы, то просто удалите это письмо.
{% endif %}
';
    $template = mso_get_option('template_email_message_new_comuser', 'general', $def_option);
    $activate_auto = $comusers_activate_auto;
    $name_site = getinfo('name_site');
    $site_url = getinfo('siteurl');
    $comuser_url = getinfo('siteurl') . 'users/' . $comusers_id;
    $activate_key = $ins_data['comusers_activate_key'];
    $template = mso_tmpl_prepare($template, false);
    ob_start();
    eval($template);
    $text = ob_get_contents();
    ob_end_clean();
    return mso_mail($email, $subject, $text, $email);
    // поскольку это регистрация, то отправитель - тот же email
}
Пример #7
0
	<?php 
if ($logo) {
    ?>
	<div class="w100-max"><?php 
    echo $logo;
    ?>
</div>
	<?php 
}
?>
	
	<?php 
if ($top1_block) {
    ?>
	<div><?php 
    eval(mso_tmpl_prepare($top1_block));
    ?>
</div>
	<?php 
}
?>
</div>

<div class="menu-search flex flex-vcenter mar20-rl bg-gray800 flex-wrap-tablet">
	<div class="w100-tablet"><?php 
if ($fn = mso_fe('components/_menu/_menu.php')) {
    require $fn;
}
?>
</div>
	<div>
Пример #8
0
     // выполяем
     if ($rules_result === false) {
         $rules_result = 1;
     }
     // возможно произошла ошибка
     if ($rules_result !== 1) {
         continue;
     }
 }
 if (trim($UNIT['file'])) {
     // в подключаемом файле доступна переменная $UNIT — массив параметров
     if ($fn = mso_find_ts_file('type/home/units/' . trim($UNIT['file']))) {
         require $fn;
     }
 } elseif (isset($UNIT['html']) and trim($UNIT['html'])) {
     eval(mso_tmpl_prepare(trim($UNIT['html']), false));
 } elseif (isset($UNIT['require']) and trim($UNIT['require'])) {
     if ($fn = mso_fe(trim($UNIT['require']))) {
         require $fn;
     }
 } elseif (isset($UNIT['ushka']) and trim($UNIT['ushka']) and function_exists('ushka')) {
     echo ushka(trim($UNIT['ushka']));
 } elseif (isset($UNIT['component']) and trim($UNIT['component'])) {
     if ($_fn = mso_fe('components/' . trim($UNIT['component']) . '/' . trim($UNIT['component']) . '.php')) {
         require $_fn;
     }
 } elseif (isset($UNIT['option_key'], $UNIT['option_type'], $UNIT['option_default']) and trim($UNIT['option_key']) and trim($UNIT['option_type']) and trim($UNIT['option_default'])) {
     echo mso_get_option(trim($UNIT['option_key']), trim($UNIT['option_type']), trim($UNIT['option_default']));
 } elseif (isset($UNIT['sidebar']) and trim($UNIT['sidebar'])) {
     mso_show_sidebar($UNIT['sidebar']);
 }
Пример #9
0
/**
 * Получение yaml-конфигурации из файла и сохранение её в глобальные переменные 
 */
function mso_get_yaml($fn)
{
    global $VAR, $TITLE, $META, $META_LINK;
    $key = 'yaml-' . $fn;
    $conf = mso_get_cache($key, 0, false, filemtime($fn));
    if (!$conf) {
        $data = file_get_contents($fn);
        // проверяем вхождение /* === конфигурация === */
        if (preg_match('!\\/\\* \\=\\=\\=(.*?)\\=\\=\\= \\*\\/!is', $data, $conf)) {
            $yaml = trim($conf[1]);
            // разрешено использовать php-шаблонизатор
            ob_start();
            eval(mso_tmpl_prepare($yaml));
            $yaml = ob_get_clean();
            require_once ENGINE_DIR . 'yaml/Spyc.php';
            $conf = spyc_load($yaml);
            mso_add_cache($key, $conf);
        }
    }
    if ($conf) {
        if (isset($conf['TITLE'])) {
            $TITLE = $conf['TITLE'];
        }
        if (isset($conf['VAR']) and is_array($conf['VAR'])) {
            $VAR = array_merge($VAR, $conf['VAR']);
        }
        if (isset($conf['META']) and is_array($conf['META'])) {
            $META = array_merge($META, $conf['META']);
        }
        if (isset($conf['META_LINK']) and is_array($conf['META_LINK'])) {
            $META_LINK = array_merge($META_LINK, $conf['META_LINK']);
        }
    }
}
Пример #10
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));
 }