Example #1
0
function theme_switch_init($args = array())
{
    global $MSO;
    // если есть get ?theme=шаблон , то выставляем новую куку по этому значению
    // идея nicothin (Николай Громов) - http://forum.max-3000.com/viewtopic.php?p=9943#p9943
    $get = mso_parse_url_get(mso_url_get());
    $get = (isset($get['theme']) and $get['theme']) ? mso_xss_clean($get['theme']) : false;
    // проверяем есть ли post
    if ($post = mso_check_post(array('f_session_id', 'f_theme_switch_submit', 'theme_switch_radio')) or $get) {
        if (!$get) {
            mso_checkreferer();
            $dir = $post['theme_switch_radio'][0];
            // каталог шаблона
        } else {
            $dir = $get;
        }
        // если он есть - проверяем, то пишем куку и редиректимся
        if (file_exists(getinfo('templates_dir') . $dir . '/index.php')) {
            $opt = mso_get_option('theme_switch', 'plugins', array());
            if (isset($opt['templates'][$dir])) {
                // 30 дней = 2592000 секунд 60 * 60 * 24 * 30
                mso_add_to_cookie('theme_switch', $dir, time() + 2592000, true);
            }
        }
    }
    // проверяем существование куки theme_switch
    if (isset($_COOKIE['theme_switch'])) {
        $dir = $_COOKIE['theme_switch'];
        // значение текущего кука
        if (file_exists(getinfo('templates_dir') . $dir . '/index.php')) {
            $opt = mso_get_option('theme_switch', 'plugins', array());
            if (isset($opt['templates'][$dir])) {
                $MSO->config['template'] = $dir;
                $functions_file = $MSO->config['templates_dir'] . $dir . '/functions.php';
                if (file_exists($functions_file)) {
                    require_once $functions_file;
                }
            } else {
                @setcookie('theme_switch', '', time());
            }
            // сбросили куку
        } else {
            @setcookie('theme_switch', '', time());
        }
        // сбросили куку
    }
    return $args;
}
Example #2
0
function mso_check_post_ini()
{
    $CI =& get_instance();
    // проверяем входящие данные - поля всегда одни
    if ($post = mso_check_post(array('f_session_id', 'f_options', 'f_submit', 'f_ini'))) {
        # защита рефера
        mso_checkreferer();
        $options = $post['f_options'];
        if (isset($post['f_all_checkbox'])) {
            $all_checkbox = $post['f_all_checkbox'];
        } else {
            $all_checkbox = array();
        }
        // добавим к $options $all_checkbox если их нет
        // и сразу заменим on на 1
        // pr($options);
        foreach ($all_checkbox as $key => $val) {
            if (!isset($options[$key])) {
                $options[$key] = '0';
            } else {
                if (!is_array($options[$key])) {
                    $options[$key] = '1';
                } else {
                    $options[$key] = array_map('trim', $options[$key]);
                }
            }
        }
        // pr($options);
        // pr($all_checkbox);
        foreach ($options as $key_type => $val) {
            // разделим имя опции на ключ и группу
            $key_type = explode('_m_s_o_', $key_type);
            $key = $key_type[0];
            $type = $key_type[1];
            // pr($key . ' ' . $val . ' ' . $type, 1);
            // добавляем опцию без mso_refresh_options();
            mso_add_option($key, $val, $type, false);
        }
        mso_refresh_options();
        mso_flush_cache();
        // посколько у нас всегда true, то результат не анализируем
        return true;
    }
    return false;
}
Example #3
0
if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
// основа кода из edit.php
// принимаем ajax
// post в виде серилизованного массива
// проверим залогиненность
if (!is_login()) {
    die('no login');
}
// проверим разрешение на редактирование записей
if (!mso_check_allow('admin_page_edit')) {
    die('no allow');
}
if ($post = mso_check_post(array('params', 'id'))) {
    mso_checkreferer();
    // защищаем реферер
    $id = $post['id'];
    // проверим, чтобы это было число
    if (!is_numeric($id)) {
        $id = false;
    } else {
        $id = (int) $id;
    }
    if ($id) {
        $CI =& get_instance();
        # проверим текущего юзера и его разрешение на правку чужих страниц
        # если admin_page_edit=1, то есть разрешено редактировать в принципе (уже проверили раньше!),
        # то смотрим admin_page_edit_other. Если стоит 1, то все разрешено
        # если false, значит смотрим автора страницы и если он не равен юзеру, рубим доступ
Example #4
0
     // синхронизация количества комментариев у комюзеров
     mso_comuser_update_count_comment();
     if ($post['f_comments_email_subscribe']) {
         require_once getinfo('common_dir') . 'comments.php';
         // получим по номеру коммента номер страницы и её титул - нужно для отправки
         $CI->db->select('comments_page_id, page_title');
         $CI->db->from('comments, page');
         $CI->db->where('comments_page_id = page_id');
         $CI->db->where('comments_id', $id);
         $query = $CI->db->get();
         if ($query->num_rows() > 0) {
             $row = $query->row_array();
             mso_email_message_new_comment_subscribe(array('id' => $id, 'comments_approved' => (int) $post['f_comments_approved'], 'comments_content' => $post['f_comments_content'], 'comments_page_id' => $row['comments_page_id'], 'page_title' => $row['page_title']));
         }
     }
 } elseif ($post = mso_check_post(array('f_session_id', 'f_submit_delete'))) {
     // удалить комментарий
     mso_checkreferer();
     $CI->db->where_in('comments_id', $id);
     if ($CI->db->delete('comments')) {
         mso_flush_cache();
         // синхронизация количества комментариев у комюзеров
         mso_comuser_update_count_comment();
         mso_redirect('admin/comments');
     } else {
         echo '<div class="error">' . t('Ошибка удаления') . '</div>';
     }
 }
 # вывод данных комментария
 $CI->db->select('comments.*, users.users_nik, users.users_id, comusers.comusers_nik, page.page_title, page.page_slug, page.page_id');
 $CI->db->from('comments');
Example #5
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
$CI =& get_instance();
// проверяем входящие данные
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_update_widgets'))) {
    # защита рефера
    mso_checkreferer();
    $widgets = $post['f_update_widgets'];
    # перебираем полученные виджеты
    foreach ($widgets as $widget => $val) {
        // разбиваем полученное значение на функцию и номер - они указываются через -
        $arr_w = explode('--', $widget);
        // в массив
        if (sizeof($arr_w) > 1) {
            $widget = trim($arr_w[0]);
            // первый - функция
            $num = mso_slug(trim($arr_w[1]));
            // второй - номер виджета
            $num = str_replace('--', '-', $num);
        } else {
            $num = 0;
            // номер виджета не указан, значит 0
        }
        $func = $widget . '_update';
Example #6
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
$CI =& get_instance();
//	if ($_POST) _pr($_POST);
if ($post = mso_check_post(array('f_session_id'))) {
    mso_checkreferer();
    // есть ли выбранные пункты?
    if (isset($post['f_check_submit'])) {
        // определяем действие
        if (isset($post['f_activate_submit'])) {
            $act = 'activate';
        } elseif (isset($post['f_deactivate_submit'])) {
            $act = 'deactivate';
        } elseif (isset($post['f_uninstall_submit'])) {
            $act = 'uninstall';
        } else {
            $act = false;
        }
        if ($act) {
            $out = t('Выполнено:') . ' ';
            foreach ($post['f_check_submit'] as $f_name => $val) {
                if ($act == 'activate') {
                    mso_plugin_activate($f_name);
                } elseif ($act == 'deactivate') {
                    mso_plugin_deactivate($f_name);
                } elseif ($act == 'uninstall') {
                    mso_plugin_uninstall($f_name);
                }
Example #7
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
$CI =& get_instance();
$options_key = 'plugin_colorbox';
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_style', 'f_effect', 'f_size', 'f_width', 'f_height', 'f_slideshowspeed'))) {
    mso_checkreferer();
    $options = array();
    $options['style'] = $post['f_style'];
    $options['effect'] = $post['f_effect'];
    $options['size'] = $post['f_size'];
    $options['width'] = $post['f_width'];
    $options['height'] = $post['f_height'];
    $options['slideshowspeed'] = $post['f_slideshowspeed'];
    mso_add_option($options_key, $options, 'plugins');
    echo '<div class="update">Обновлено!</div>';
}
?>
<h1><?php 
echo t('Настройка ColorBox');
?>
</h1>
<p class="info"><?php 
echo t('При использовании заданных размеров лайтбокса допустимы значения в процентах (%) и пикселях (px)<br />
Время перехода в слайд-шоу задаётся в миллисекундах (1 секунда = 1000 миллисекунд)');
?>
</p>

<?php 
Example #8
0
function mso_page_content($page_content = '', $use_password = true, $message = 'Данная запись защищена паролем.')
{
    global $page;
    mso_hook('content_start');
    # хук на начало блока
    if ($use_password and $page['page_password']) {
        $form = '<p><strong>' . tf($message) . '</strong></p>';
        $form .= '<form action="' . getinfo('siteurl') . 'page/' . $page['page_slug'] . '" method="post">' . mso_form_session('f_session_id');
        $form .= '<input type="hidden" name="f_page_id" value="' . $page['page_id'] . '">';
        $form .= '<p>' . tf('Пароль:') . ' <input type="text" name="f_password" value=""> ';
        $form .= '<input type="submit" name="f_submit" value="ОК"></p>';
        $form .= '</form>';
        // возможно пароль уже был отправлен
        if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_page_id', 'f_password'))) {
            mso_checkreferer();
            $f_page_id = (int) $post['f_page_id'];
            // номер записи
            $f_password = $post['f_password'];
            // пароль
            if ($f_page_id == $page['page_id'] and $f_password == $page['page_password']) {
                // верный пароль
                $page['page_password_ok'] = true;
                echo mso_hook('content_content', $page_content);
            } else {
                echo '<p style="color: red;">' . tf('<strong>Ошибочный пароль!</strong> Повторите ввод.') . '</p>' . $form;
            }
        } else {
            echo $form;
        }
    } else {
        echo mso_hook('content_content', $page_content);
    }
}
Example #9
0
        $rss = $rss->items;
        $rss = array_slice($rss, 0, 3);
        // последние три записи
        echo '<h2 class="bor-solid-b bor-gray400 mar20-b mar20-t i-rss">' . t('Новости MaxSite CMS') . '</h2>';
        foreach ($rss as $item) {
            // title link category description date_timestamp pubdate
            // if (!isset($item['category'])) $item['category'] = '-';
            echo '<h5><a href="' . $item['link'] . '">' . $item['title'] . '</a> - ' . date('d.m.Y', $item['date_timestamp']) . '</h5>';
            echo '<p>' . $item['description'] . '</p>';
            echo '<hr class="dotted mar0-t">';
        }
    }
}
if (mso_check_allow('admin_home')) {
    $show_clear_cache = true;
    if ($post = mso_check_post(array('f_session_id', 'f_submit_clear_cache'))) {
        mso_checkreferer();
        $show_clear_cache = false;
        mso_flush_cache();
        // сбросим кэш
        // echo '<p>' . t('Кэш удален') . '</p><br>';
        mso_redirect('admin/home');
    }
    if ($show_clear_cache) {
        echo '<form method="post">' . mso_form_session('f_session_id');
        if ($show_clear_cache) {
            echo '<p><button type="submit" name="f_submit_clear_cache" class="button i-stack-overflow">' . t('Сбросить кэш системы') . '</button></p>';
        }
        echo '</form>';
    }
}
Example #10
0
            $r = array();
            $r['userfile_mini'] = 1;
            // делать миниатюру
            $r['userfile_mini_size'] = $post['f_userfile_mini_size'];
            $r['mini_type'] = $post['f_mini_type'];
            $r['prev_size'] = 100;
            mso_upload_mini($up_data, $r);
            // миниатюра
            mso_upload_prev($up_data, $r);
            // превьюшка
        }
    }
    echo '<div class="update">' . t('Выполнено') . '</div>';
}
# загрузка нового файла
if ($post = mso_check_post(array('f_session2_id', 'f_upload_submit'))) {
    mso_checkreferer();
    require_once getinfo('common_dir') . 'uploads.php';
    // функции загрузки
    // параметры для mso_upload
    // конфиг CI-библиотеки upload
    $mso_upload_ar1 = array('upload_path' => getinfo('uploads_dir') . $current_dir, 'allowed_types' => $allowed_types);
    $mso_upload_ar2 = array('userfile_title' => $post['f_userfile_title'], 'fn_mso_descritions' => $fn_mso_descritions, 'userfile_resize' => isset($post['f_userfile_resize']), 'userfile_resize_size' => $post['f_userfile_resize_size'], 'userfile_water' => isset($post['f_userfile_water']), 'userfile_water_file' => getinfo('uploads_dir') . 'watermark.png', 'water_type' => $post['f_water_type'], 'userfile_mini' => isset($post['f_userfile_mini']), 'userfile_mini_size' => $post['f_userfile_mini_size'], 'mini_type' => $post['f_mini_type'], 'prev_size' => 100, 'message1' => '');
    // запомним указанные размеры и выставим их для полей формы вновь
    $f_userfile_resize = isset($post['f_userfile_resize']);
    $f_userfile_resize_size = $post['f_userfile_resize_size'];
    $f_userfile_water = isset($post['f_userfile_water']);
    $f_water_type = $post['f_water_type'];
    $f_userfile_mini = isset($post['f_userfile_mini']);
    $f_userfile_mini_size = $post['f_userfile_mini_size'];
    $f_mini_type = $post['f_mini_type'];
Example #11
0
function mso_remote_f_deletecategory($post)
{
    if ($post = mso_check_post(array('category_id'))) {
        require_once getinfo('common_dir') . 'functions-edit.php';
        // функции редактирования
        // получаем номер категории
        $f_id = $post['category_id'];
        // подготавливаем данные
        $data = array('category_id' => $f_id);
        $result = mso_delete_category($data);
        if (isset($result['result']) and $result['result']) {
            mso_flush_cache();
            // сбросим кэш
            $out = 'OK: ' . $result['description'];
        } else {
            $out = 'ERROR: ' . $result['description'];
        }
        return $out;
    } else {
        $out = 'ERROR: ' . 'missing arguments';
        return $out;
    }
}
Example #12
0
function forms_content_callback($matches)
{
    $text = $matches[1];
    $text = str_replace("\r", "", $text);
    $text = str_replace('&nbsp;', ' ', $text);
    $text = str_replace("\t", ' ', $text);
    $text = str_replace('<br />', "<br>", $text);
    $text = str_replace('<br>', "\n", $text);
    $text = str_replace("\n\n", "\n", $text);
    $text = str_replace('     ', ' ', $text);
    $text = str_replace('    ', ' ', $text);
    $text = str_replace('   ', ' ', $text);
    $text = str_replace('  ', ' ', $text);
    $text = str_replace("\n ", "\n", $text);
    $text = str_replace("\n\n", "\n", $text);
    $text = trim($text);
    $out = '';
    // убиваем исходный текст формы
    //$r = preg_match_all('!\[email=(.*?)\]|\[redirect=(.*?)\]\[subject=(.*?)\]|\[field\](.*?)\[\/field\]|\[ushka=(.*?)\]!is', $text, $all);
    // на какой email отправляем
    $r = preg_match_all('!\\[email=(.*?)\\]!is', $text, $all);
    if ($r) {
        $email = trim(implode(' ', $all[1]));
    } else {
        $email = mso_get_option('admin_email', 'general', '*****@*****.**');
    }
    // тема письма
    $r = preg_match_all('!\\[subject=(.*?)\\]!is', $text, $all);
    if ($r) {
        $subject = trim(implode(' ', $all[1]));
    } else {
        $subject = tf('Обратная связь');
    }
    // куда редиректить после отправки
    $r = preg_match_all('!\\[redirect=(.*?)\\]!is', $text, $all);
    if ($r) {
        $redirect = trim(implode(' ', $all[1]));
    } else {
        $redirect = '';
    }
    // eirf к форме
    $r = preg_match_all('!\\[ushka=(.*?)\\]!is', $text, $all);
    if ($r) {
        $ushka = trim(implode(' ', $all[1]));
    } else {
        $ushka = '';
    }
    // отправить копию на ваш email
    $r = preg_match_all('!\\[nocopy\\]!is', $text, $all);
    if ($r) {
        $forms_subscribe = false;
    } else {
        $forms_subscribe = true;
    }
    // кнопка Сброс формы
    $r = preg_match_all('!\\[noreset\\]!is', $text, $all);
    if ($r) {
        $reset = false;
    } else {
        $reset = true;
    }
    // pr($all);
    // поля формы
    $r = preg_match_all('!\\[field\\](.*?)\\[\\/field\\]!is', $text, $all);
    $f = array();
    // массив для полей
    if ($r) {
        $fields = $all[1];
        /* 
        pr($fields);
        pr($email);
        pr($redirect);
        pr($subject);
        pr($ushka);
        */
        if ($subject) {
            // поле тема письма делаем в виде обязательнного поля select.
            // формируем массив для формы
            $subject_f['require'] = 1;
            //$subject_f['type'] = 'select';
            $subject_f['type'] = mb_strpos($subject, '#') === false ? 'text' : 'select';
            // если это одиночное поле, но при этом текст сабжа начинается
            // с _ то ставим тип hidden
            if ($subject_f['type'] == 'text' and mb_strpos($subject, '_') === 0) {
                $subject = mb_substr($subject . ' ', 1, -1, 'UTF-8');
                $subject_f['type'] = 'hidden';
            }
            $subject_f['description'] = tf('Тема письма');
            //$subject_f['tip'] = t('Выберите тему письма');
            $subject_f['values'] = $subject;
            $subject_f['value'] = $subject;
            $subject_f['default'] = '';
            // преобразования, чтобы сделать ключ для поля
            $f1['subject'] = $subject_f;
            // у поля тема будет ключ subject
            foreach ($f as $key => $val) {
                $f1[$key] = $val;
            }
            $f = $f1;
        }
        $i = 0;
        foreach ($fields as $val) {
            $val = trim($val);
            if (!$val) {
                continue;
            }
            $val = str_replace(' = ', '=', $val);
            $val = str_replace('= ', '=', $val);
            $val = str_replace(' =', '=', $val);
            $val = explode("\n", $val);
            // разделим на строки
            $ar_val = array();
            foreach ($val as $pole) {
                $pole = preg_replace('!=!', '_VAL_', $pole, 1);
                $ar_val = explode('_VAL_', $pole);
                // строки разделены = type = select
                if (isset($ar_val[0]) and isset($ar_val[1])) {
                    $f[$i][$ar_val[0]] = $ar_val[1];
                }
            }
            $i++;
        }
        if (!$f) {
            return '';
        }
        // нет полей - выходим
        // теперь по-идее у нас есть вся необходимая информация по полям и по форме
        // смотрим есть ли POST. Если есть, то проверяем введенные поля и если они корректные,
        // то выполняем отправку почты, выводим сообщение и редиректимся
        // если POST нет, то выводим обычную форму
        // pr($f);
        if ($_POST) {
            $_POST = mso_clean_post(array('forms_antispam1' => 'integer', 'forms_antispam2' => 'integer', 'forms_antispam' => 'integer', 'forms_name' => 'base', 'forms_email' => 'email', 'forms_session' => 'base'));
        }
        if ($post = mso_check_post(array('forms_session', 'forms_antispam1', 'forms_antispam2', 'forms_antispam', 'forms_name', 'forms_email', 'forms_submit'))) {
            mso_checkreferer();
            $out .= '<div class="forms-post">';
            // верный email?
            if (!($ok = mso_valid_email($post['forms_email']))) {
                $out .= '<div class="message error small">' . tf('Неверный email!') . '</div>';
            }
            // антиспам
            if ($ok) {
                $antispam1s = (int) $post['forms_antispam1'];
                $antispam2s = (int) $post['forms_antispam2'];
                $antispam3s = (int) $post['forms_antispam'];
                if ($antispam1s / 984 + $antispam2s / 765 != $antispam3s) {
                    // неверный код
                    $ok = false;
                    $out .= '<div class="message error small">' . tf('Неверная сумма антиспама') . '</div>';
                }
            }
            if ($ok) {
                foreach ($f as $key => $val) {
                    if ($ok and isset($val['require']) and $val['require'] == 1) {
                        if (!isset($post['forms_fields'][$key]) or !$post['forms_fields'][$key]) {
                            $ok = false;
                            $out .= '<div class="message error small">' . tf('Заполните все необходимые поля!') . '</div>';
                        }
                    }
                    if (!$ok) {
                        break;
                    }
                }
            }
            // всё ок
            if ($ok) {
                //pr($post);
                // pr($f);
                // pr($redirect);
                // pr($email);
                // pr($subject);
                // формируем письмо и отправляем его
                if (!mso_valid_email($email)) {
                    $email = mso_get_option('admin_email', 'general', '*****@*****.**');
                }
                // куда приходят письма
                $message = t('Имя: ') . $post['forms_name'] . "\n";
                $message .= t('Email: ') . $post['forms_email'] . "\n";
                foreach ($post['forms_fields'] as $key => $val) {
                    //pr($key);
                    if ($key === 'subject' and $val) {
                        $subject = $val;
                        //pr($subject);
                        continue;
                    }
                    $message .= $f[$key]['description'] . ': ' . $val . "\n\n";
                }
                if ($_SERVER['REMOTE_ADDR'] and $_SERVER['HTTP_REFERER'] and $_SERVER['HTTP_USER_AGENT']) {
                    $message .= "\n" . tf('IP-адрес: ') . $_SERVER['REMOTE_ADDR'] . "\n";
                    $message .= tf('Отправлено со страницы: ') . $_SERVER['HTTP_REFERER'] . "\n";
                    $message .= tf('Браузер: ') . $_SERVER['HTTP_USER_AGENT'] . "\n";
                }
                // pr($message);
                $form_hide = mso_mail($email, $subject, $message, $post['forms_email']);
                if ($forms_subscribe and isset($post['forms_subscribe'])) {
                    mso_mail($post['forms_email'], tf('Вами отправлено сообщение:') . ' ' . $subject, $message);
                }
                $out .= '<div class="message ok small">' . tf('Ваше сообщение отправлено!') . '</div><p>' . str_replace("\n", '<br>', htmlspecialchars($subject . "\n" . $message)) . '</p>';
                if ($redirect) {
                    mso_redirect($redirect, true);
                }
            } else {
                $out .= forms_show_form($f, $ushka, $forms_subscribe, $reset, $subject);
            }
            $out .= '</div>';
            $out .= mso_load_jquery('jquery.scrollto.js');
            $out .= '<script>$(document).ready(function(){$.scrollTo("div.forms-post", 500);})</script>';
        } else {
            $out .= forms_show_form($f, $ushka, $forms_subscribe, $reset, $subject);
        }
    }
    return $out;
}
Example #13
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
$CI =& get_instance();
$options_key = 'plugin_down_count';
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_file', 'f_prefix', 'f_format'))) {
    mso_checkreferer();
    $options = array();
    $options['file'] = $post['f_file'];
    $options['prefix'] = $post['f_prefix'];
    $options['format'] = $post['f_format'];
    $options['referer'] = isset($post['f_referer']) ? 1 : 0;
    $options['real_title'] = isset($post['f_real_title']) ? 1 : 0;
    mso_add_option($options_key, $options, 'plugins');
    echo '<div class="update">' . t('Обновлено!') . '</div>';
}
?>
<h1><?php 
echo t('Счетчик переходов');
?>
</h1>
<p class="info"><?php 
echo t('С помощью этого плагина вы можете подсчитывать количество скачиваний или переходов по ссылке. Для использования плагина обрамите нужную ссылку в код [dc]ваша ссылка[/dc]');
?>
</p>
Example #14
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
global $MSO;
$CI =& get_instance();
$options_key = 'plugin_admin_ip';
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_secret_url', 'f_ip'))) {
    mso_checkreferer();
    $options = array();
    $options['ip'] = $post['f_ip'];
    $options['secret'] = mso_slug($post['f_secret_url']);
    mso_add_option($options_key, $options, 'plugins');
    echo '<div class="update">' . t('Обновлено! Обязательно сохраните секретный адрес сейчас!') . '</div>';
}
?>
<h1><?php 
echo t('Admin IP');
?>
</h1>
<p class="info"><?php 
echo t('Вы можете указать IP с которых разрешен доступ в админ-панель. Если пользователь попытается войти в панель управления с другого IP, то ему будет отказано в доступе.');
?>
</p>
<p class="info"><?php 
echo t('На тот случай, если у администратора сменится IP, следует указать секретный адрес (URL), по которому можно очистить список разрешенных IP. Сохраняйте этот секретный адрес в надежном месте. В случае, если вы его забудете у вас не будет другой возможности, кроме как отключить плагин (удалить его файлы) или вручную исправить базу данных.');
Example #15
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
if ($post = mso_check_post(array('data'))) {
    $output = $post['data'];
    $output = trim($output);
    $output = str_replace(chr(10), "<br>", $output);
    $output = str_replace(chr(13), "", $output);
    $output = mso_hook('content', $output);
    $output = mso_hook('content_auto_tag', $output);
    $output = mso_hook('content_balance_tags', $output);
    $output = mso_hook('content_out', $output);
    $output = mso_hook('content_content', $output);
    // стили вначале подключаем базу из preview.css
    $css_link = '<link rel="stylesheet" href="' . getinfo('plugins_url') . 'editor_markitup/preview.css" type="text/css" media="screen">';
    // теперь остальные по алгоритму default 2
    $css_link .= NT . '<link rel="stylesheet" href="';
    if (file_exists(getinfo('template_dir') . 'css/css.php')) {
        $css_link .= getinfo('template_url') . 'css/css.php';
    } else {
        if (file_exists(getinfo('template_dir') . 'css/my_style.css')) {
            $css_link .= getinfo('template_url') . 'css/my_style.css';
        } else {
            if (file_exists(getinfo('template_dir') . 'css/style-all-mini.css')) {
                $css_link .= getinfo('template_url') . 'css/style-all-mini.css';
            } elseif (file_exists(getinfo('template_dir') . 'css/style-all.css')) {
                $css_link .= getinfo('template_url') . 'css/style-all.css';
            } else {
                $css_link .= getinfo('templates_url') . 'default/css/style-all-mini.css';
Example #16
0
function mso_comuser_lost($args = array())
{
    global $MSO;
    if (!isset($args['css_ok'])) {
        $args['css_ok'] = 'comment-ok';
    }
    if (!isset($args['css_error'])) {
        $args['css_error'] = 'comment-error';
    }
    // если нет опции password_recovery, значит восстанавливаем с учетом номера комюзера во втором сегмента адреса
    // если опция есть, значит восстанавливаем без учета id комюзера
    if (!isset($args['password_recovery'])) {
        $password_recovery = false;
    } else {
        $password_recovery = true;
    }
    # id комюзера, который в сессии - какой комюзер
    # если комюзер залогинен, то будет $id_session
    # если нет, то залогиненности нет
    if (isset($MSO->data['session']['comuser']) and $MSO->data['session']['comuser']) {
        $id_session = $MSO->data['session']['comuser']['comusers_id'];
    } else {
        $id_session = false;
    }
    if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_comusers_email'))) {
        # защита рефера
        mso_checkreferer();
        # защита сессии - если не нужно закомментировать строчку!
        if ($MSO->data['session']['session_id'] != $post['f_session_id']) {
            mso_redirect();
        }
        if (!$password_recovery) {
            // получаем номер юзера id из f_submit[]
            $id = (int) mso_array_get_key($post['f_submit']);
            if (!$id) {
                return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя') . '!</div>';
            }
            # проверяем id в сессии с сабмитом
            if ($id_session and $id != $id_session) {
                return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный номер пользователя2') . '</div>';
            }
        }
        $comusers_email = trim($post['f_comusers_email']);
        if (!$comusers_email) {
            return '<div class="' . $args['css_error'] . '">' . tf('Нужно указать email') . '</div>';
        }
        if (!mso_valid_email($comusers_email)) {
            return '<div class="' . $args['css_error'] . '">' . tf('Ошибочный email') . '</div>';
        }
        $CI =& get_instance();
        // проверим есть ли вообще такой юзер
        $CI->db->select('comusers_id');
        if (!$password_recovery) {
            $CI->db->where('comusers_id', $id);
        }
        // если явно указан id, то ищем по нему
        $CI->db->where('comusers_email', $comusers_email);
        $query = $CI->db->get('comusers');
        if ($query->num_rows() == 0) {
            // нет такого комментатора
            return '<div class="' . $args['css_error'] . '">' . tf('Неверный email или номер пользователя') . '!</div>';
        }
        if ($password_recovery) {
            // получим id этого комюзера
            $res = $query->result_array();
            $id = $res[0]['comusers_id'];
        }
        $comusers_new_password = trim($post['f_comusers_password']);
        $comusers_activate_key = trim($post['f_comusers_activate_key']);
        if ($comusers_email and !$comusers_activate_key and !$comusers_new_password) {
            // проверим есть ли активация
            $CI->db->select('comusers_id, comusers_activate_key');
            $CI->db->where('comusers_id', $id);
            $CI->db->where('comusers_activate_string=comusers_activate_key', '', false);
            $CI->db->where('comusers_email', $comusers_email);
            $CI->db->limit(1);
            $query = $CI->db->get('comusers');
            if ($query->num_rows() > 0) {
                $comuser = $query->result_array();
                // данные комюзера
                mso_email_message_new_comuser($id, array('comusers_email' => $comusers_email, 'comusers_activate_key' => $comuser[0]['comusers_activate_key']));
                return '<div class="' . $args['css_ok'] . '">' . tf('Код активации отправлен на ваш email') . '!</div>';
            } else {
                return '<div class="' . $args['css_error'] . '">' . tf('Данный email не зарегистрирован или не активирован') . '</div>';
            }
        } elseif ($comusers_email and $comusers_new_password and !$comusers_activate_key) {
            return '<div class="' . $args['css_error'] . '">' . tf('Для установки нового пароля нужно заполнить все поля!') . '</div>';
        } elseif ($comusers_email and !$comusers_new_password and $comusers_activate_key) {
            // указан email и код активации, но не указан новый пароль
            return '<div class="' . $args['css_error'] . '">' . tf('Для установки нового пароля нужно заполнить все поля!') . '</div>';
        }
        // если указано поле активации и новый пароль, то сверяем код активации с базой + email + id и если все верно,
        // то обновляем пароль
        // если же поле активации не указано, то высылаем его на указанный email
        $CI->db->select('comusers_id');
        $CI->db->where('comusers_id', $id);
        $CI->db->where('comusers_activate_key', $comusers_activate_key);
        $CI->db->where('comusers_activate_string', $comusers_activate_key);
        $CI->db->where('comusers_email', $comusers_email);
        $CI->db->limit(1);
        $query = $CI->db->get('comusers');
        if ($query->num_rows() > 0) {
            $CI->db->where('comusers_id', $id);
            $CI->db->where('comusers_email', $comusers_email);
            $res = $CI->db->update('comusers', array('comusers_password' => mso_md5($comusers_new_password))) ? '1' : '0';
            $CI->db->cache_delete_all();
            if ($res) {
                // сразу логиним и редиректим на страницу комюзера
                $data = array('email' => $comusers_email, 'password' => $comusers_new_password, 'redirect' => getinfo('siteurl') . 'users/' . $id, 'allow_create_new_comuser' => false);
                mso_comuser_auth($data);
                exit;
                // return '<div class="' . $args['css_ok']. '">'. t('Новый пароль установлен!'). '</div>';
            } else {
                return '<div class="' . $args['css_error'] . '">' . tf('Ошибка БД при смене пароля...') . '</div>';
            }
        } else {
            return '<div class="' . $args['css_error'] . '">' . tf('Данные указаны неверно!') . '</div>';
        }
    }
}
Example #17
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
global $_COOKIE;
// if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) die('AJAX Error');
mso_checkreferer();
// защищаем реферер
if ($post = mso_check_post(array('rating', 'slug'))) {
    // данные хранятся в куках посетителя - алгоримт тотже, что и в mso_page_view_count_first
    $name_cookies = 'maxsite_rating';
    $expire = 60 * 60 * 24 * 30;
    // 30 дней = 2592000 секунд
    if (isset($_COOKIE[$name_cookies])) {
        $all_slug = $_COOKIE[$name_cookies];
    } else {
        $all_slug = '';
    }
    // нет такой куки вообще
    $slug = $post['slug'];
    // слаг страницы откуда пришел запрос
    $all_slug = explode(' ', $all_slug);
    // разделим в массив
    if (in_array($slug, $all_slug)) {
        echo '<span>' . t('Вы уже голосовали!') . '</span>';
        return;
    }
    $rating = (int) $post['rating'];
    // выставленная оценка
    if ($rating) {
Example #18
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
if ($post = mso_check_post(array('file_path', 'content'))) {
    $file = base64_decode($post['file_path']);
    $file = str_replace('~', '-', $file);
    $file = str_replace('\\', '-', $file);
    $file = getinfo('template_dir') . $file;
    // бэкап делать нужно???
    if (file_exists($file)) {
        file_put_contents($file, $post['content']);
    }
    echo '<span class="i-check mar10-l t-green t130"></span>Сохранено';
}
# end file
Example #19
0
<p>[text]</p>
<hr>
</div>';
}
// текст до цикла
if (!isset($options['start'])) {
    $options['start'] = '<h2>Отзывы</h2>';
}
// текст после цикла
if (!isset($options['end'])) {
    $options['end'] = '';
}
$session = getinfo('session');
// текущая сессия
// тут приём post
if ($post = mso_check_post(array('f_session_id', 'f_submit_guestbook', 'f_fields_guestbook', 'f_guestbook_captha'))) {
    mso_checkreferer();
    $captcha = $post['f_guestbook_captha'];
    // это введенное значение капчи
    $char = mso_md5($MSO->data['session']['session_id'] . mso_current_url());
    $char = str_replace(array('a', 'b', 'c', 'd', 'e', 'f'), array('1', '5', '8', '2', '7', '9'), $char);
    $char = substr($char, 1, 4);
    if ($captcha != $char) {
        echo '<div class="mso-message-error">' . t('Неверно введены нижние символы! Вернитесь назад и повторите попытку.') . '</div>';
        mso_flush_cache();
    } else {
        // прошла капча, можно добавлять отзыв
        // pr($post);
        // данные для новой записи
        $ins_data = array('guestbook_date' => date('Y-m-d H:i:s'), 'guestbook_ip' => $session['ip_address'], 'guestbook_browser' => $session['user_agent']);
        if ($options['moderation']) {
Example #20
0
    eval(mso_tmpl_ts('type/loginform/units/loginform-user-tmpl.php'));
} elseif ($comuser = is_login_comuser()) {
    if (mso_segment(2) == 'error') {
        mso_redirect('loginform');
    }
    if (!$comuser['comusers_nik']) {
        $hello = t('Привет!');
    } else {
        $hello = t('Привет,') . ' ' . $comuser['comusers_nik'] . '!';
    }
    eval(mso_tmpl_ts('type/loginform/units/loginform-comuser-tmpl.php'));
} else {
    $redirect_url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : getinfo('siteurl');
    // для запоминания уже введенных полей
    $vreg_email = $vreg_password = $vreg_password_repeat = $vreg_nik = $vreg_url = '';
    if ($post = mso_check_post(array('freg_session_id', 'freg_rules_ok', 'freg_email', 'freg_password', 'freg_password_repeat', 'freg_nik', 'freg_url', 'freg_submit'))) {
        mso_checkreferer();
        // обработка _post
        $post = mso_clean_post(array('freg_email' => 'email', 'freg_password' => 'base', 'freg_password_repeat' => 'base', 'freg_nik' => 'base|not_url', 'freg_url' => 'base', 'freg_redirect_url' => 'base'), $post);
        // подставим введенные поля
        $vreg_email = $post['freg_email'];
        $vreg_password = $post['freg_password'];
        $vreg_password_repeat = $post['freg_password_repeat'];
        $vreg_nik = $post['freg_nik'];
        $vreg_url = $post['freg_url'];
        // проверки введенных данных
        $error = '';
        if (!$post['freg_rules_ok']) {
            $error .= '<div class="mso-message-error">' . tf('Необходимо принять правила сайта') . '</div>';
        }
        if (!$post['freg_email']) {
Example #21
0
}
$CI =& get_instance();
?>

<h1><?php 
echo t('Комментаторы');
?>
</h1>

<p class="info"><?php 
echo t('Список комментаторов сайта');
?>
</p>

<?php 
if ($post = mso_check_post(array('f_session_id', 'f_delete_submit', 'f_check_comusers'))) {
    mso_checkreferer();
    // pr($post);
    $f_check_comusers = $post['f_check_comusers'];
    // номера отмеченных
    // на всякий случай пройдемся по массиву и составим массив из ID
    $arr_ids = array();
    // список всех где ON
    foreach ($f_check_comusers as $id_com => $val) {
        if ($val) {
            $arr_ids[] = $id_com;
        }
    }
    $CI->db->where_in('comusers_id', $arr_ids);
    if ($CI->db->delete('comusers')) {
        // заменим в таблице _comments все комментарии удаленных на анонимов
Example #22
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
$CI =& get_instance();
$options = mso_get_option('samborsky_feedburner_count', 'plugins', array());
if ($post = mso_check_post(array('submit_set_default'))) {
    mso_checkreferer();
    feedburner_count_set_default();
    $options = mso_get_option('samborsky_feedburner_count', 'plugins', array());
} else {
    if ($post = mso_check_post(array('submit', 'feed_name', 'update_interval', 'template'))) {
        mso_checkreferer();
        $options = mso_get_option('samborsky_feedburner_count', 'plugins', array());
        $options['feed_name'] = $_POST['feed_name'];
        $options['update_interval'] = $_POST['update_interval'];
        $options['template'] = base64_encode($_POST['template']);
        $options['last_update'] = 0;
        $options['count'] = 'n/a';
        mso_add_option('samborsky_feedburner_count', $options, 'plugins');
    }
}
if ($options['template']) {
    $options['template'] = base64_decode($options['template']);
}
?>
<h1>Настройка FeedBurner Count от <a href="http://www.samborsky.com/">samborsky.com</a></h1>
Здравствуйте, последний раз счетчик обновлялся <strong><?php 
echo $options['last_update'] ? round((time() - $options['last_update']) / 60) . ' мин. назад' : 'Еще не обновлялся';
?>
Example #23
0
if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
// проверим залогиненность
if (!is_login()) {
    die('no login');
}
// проверим разрешение на редактирование записей
if (!mso_check_allow('admin_page_edit')) {
    die('no allow');
}
if ($post = mso_check_post(array('dir'))) {
    mso_checkreferer();
    // защищаем реферер
    $current_dir = $post['dir'];
    $all_files_res = '';
    $uploads_dir = getinfo('uploads_dir') . $current_dir;
    $uploads_url = getinfo('uploads_url') . $current_dir;
    $CI =& get_instance();
    $CI->load->helper('directory');
    $CI->load->helper('file');
    // все файлы в массиве $dirs
    $dirs = directory_map($uploads_dir, 2);
    // только в текущем каталоге
    if (!$dirs) {
        $dirs = array();
    }
Example #24
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
$CI =& get_instance();
$options_key = 'mail_send';
if ($post = mso_check_post(array('f_session_id', 'f_subject', 'f_from', 'f_files', 'f_message', 'f_list'))) {
    mso_checkreferer();
    $options = array();
    $options['maillist'] = $post['f_list'];
    $options['subject'] = $post['f_subject'];
    $options['files'] = $post['f_files'];
    $options['message'] = $post['f_message'];
    $options['from'] = $post['f_from'];
    mso_add_option($options_key, $options, 'plugins');
    // сохраним в опциях введенные данные
    if (isset($post['f_submit_send'])) {
        $error = '';
        if (!$post['f_subject']) {
            $error .= 'Нужно указать тему письма. ';
        }
        if (!$post['f_message']) {
            $error .= 'Нужно указать текст письма. ';
        }
        if (!$post['f_list']) {
            $error .= 'Список рассылки пуст. ';
Example #25
0
    // mso_checksession($post['f_session_id'], 'loginform');
    // получаем номер опции id из fo_edit_submit[]
    $f_id = mso_array_get_key($post['f_edit_submit']);
    // полученное новое значение
    $f_new_value = $post['f_desc'][$f_id];
    // формируем sql-запрос
    $CI->db->where('page_type_id', $f_id);
    if ($CI->db->update('page_type', array('page_type_desc' => $f_new_value))) {
        echo '<div class="update">' . t('Обновлено!') . '</div>';
        $CI->db->cache_delete_all();
    } else {
        echo '<div class="error">' . t('Ошибка обновления') . '</div>';
    }
}
// проверяем входящие данные если было добавление нового типа
if ($post = mso_check_post(array('f_session_id', 'f_new_submit', 'f_new_name', 'f_new_desc'))) {
    # защита рефера
    mso_checkreferer();
    # защита сессии - если нужно то убрать коммент
    // mso_checksession($post['f_session_id'], 'loginform');
    // полученное новое значение
    $f_new_name = trim($post['f_new_name']);
    $f_new_desc = trim($post['f_new_desc']);
    if ($f_new_name > '') {
        // перед добавлением нужно проверить есть ли уже такой тип
        // если есть, то ничего не добавлять
        $CI->db->select('page_type_id');
        $CI->db->where(array('page_type_name' => $f_new_name));
        $query = $CI->db->get('page_type');
        if ($query->num_rows() == 0) {
            // значит добавляем
Example #26
0
function mso_admin_plugin_options($key, $type, $ar, $title = '', $info = '', $text_other = '', $show_goto_plugins = false)
{
    if ($show_goto_plugins) {
        echo '<p><a href="' . getinfo('site_admin_url') . 'plugins" class="i plugins">' . t('Плагины') . '</a></p>';
    }
    if ($title) {
        echo '<h1><a href="">' . $title . '</a></h1>';
    } else {
        echo '<h1><a href="">' . t('Опции плагина') . '</a></h1>';
    }
    if ($info) {
        echo '<p class="info">' . $info . '</p>';
    } else {
        echo '<p class="info">' . t('Укажите необходимые опции плагина.') . '</p>';
    }
    if ($text_other) {
        echo '<p>' . $text_other . '</p>';
    }
    # тут получаем текущие опции
    $options = mso_get_option($key, $type, array());
    // получаем опции
    # здесь смотрим post
    # в post должен быть $key . '-' . $type
    if ($post = mso_check_post(array('f_session_id', 'f_submit', $key . '-' . $type))) {
        # защита рефера
        mso_checkreferer();
        # наши опции
        $in = $post[$key . '-' . $type];
        if (isset($in['_mso_checkboxs'])) {
            $ch_names = array_keys($in['_mso_checkboxs']);
            // получили все чекбоксы
            $t = array();
            // временный массив
            foreach ($ch_names as $val) {
                if (isset($in[$val])) {
                    $t[$val] = '1';
                }
                // если есть, значит отмечен
            }
            $t = array_merge($in['_mso_checkboxs'], $t);
            // объединим с чекбоксамии
            unset($in['_mso_checkboxs']);
            // удалим _mso_checkboxs
            $in = array_merge($in, $t);
            // объединим с $in
            // теперь в $in все чекбоксы
        }
        # перед проверкой удалим из $ar все типы info
        $ar1 = $ar;
        foreach ($ar1 as $m => $val) {
            if ($val['type'] == 'info') {
                unset($ar1[$m]);
            }
        }
        # проверяем их с входящим $ar - ключи должны совпадать
        # финт ушами: смотрим разность ключей массивов - красиво?
        # если будет разность, значит неверные входящие данные, все рубим
        if (array_diff(array_keys($ar1), array_keys($in))) {
            die('Error key. :-(');
        }
        $newoptions = array_merge($options, $in);
        // объединим
        if ($options != $newoptions) {
            mso_add_option($key, $newoptions, $type);
            // обновим
            $options = $newoptions;
            // сразу обновим переменную на новые опции
            mso_flush_cache();
            // сбросим кэш
        }
        echo '<div class="update">' . t('Обновлено!') . '</div>';
    }
    if ($ar) {
        # тут генерируем форму
        $form = '';
        foreach ($ar as $m => $val) {
            if ($val['type'] == 'info') {
                if (isset($val['id'])) {
                    $tag_id = ' id="' . $val['id'] . '"';
                } else {
                    $tag_id = '';
                }
                if (isset($val['class'])) {
                    $tag_class = ' ' . $val['class'];
                } else {
                    $tag_class = '';
                }
                $form .= '<div class="admin_plugin_options_info' . $tag_class . '"' . $tag_id . '>';
                if (isset($val['title'])) {
                    $form .= '<h3>' . $val['title'] . '</h3>';
                }
                if (isset($val['text'])) {
                    $form .= '<p>' . $val['text'] . '</p>';
                }
                $form .= '</div>';
                continue;
            }
            if (!isset($options[$m])) {
                $options[$m] = $val['default'];
            }
            $group_start = isset($val['group_start']) ? $val['group_start'] : '';
            $group_end = isset($val['group_end']) ? $val['group_end'] : '';
            /*
            			// обрамление группы опций
            			if (isset($val['group_start']))
            			{
            				if ($val['group_start']) $group_start = '<div class="admin_plugin_options">';
            				else $group_start = '';
            			}
            			else $group_start = '<div class="admin_plugin_options">';
            if (isset($val['group_end']))
            			{
            				if ($val['group_end']) $group_end = '</div>';
            				else $group_end = '<br>';
            			}
            			else $group_end = '</div>';
            */
            if ($val['description']) {
                $val['description'] = '<span class="hint-options">' . $val['description'] . '</span>';
            }
            if ($val['type'] == 'text') {
                if (isset($val['itype'])) {
                    $itype = $val['itype'];
                } else {
                    $itype = 'text';
                }
                if ($itype == 'hidden') {
                    $form .= $group_start . '<p><span>' . $val['name'] . '</span>' . '<input type="' . $itype . '" value="' . htmlspecialchars($options[$m]) . '" name="' . $key . '-' . $type . '[' . $m . ']' . '">' . $val['description'] . '</p>' . $group_end . NR;
                } else {
                    $form .= $group_start . '<p><label><span>' . $val['name'] . '</span>' . '<input type="' . $itype . '" value="' . htmlspecialchars($options[$m]) . '" name="' . $key . '-' . $type . '[' . $m . ']' . '"></label>' . $val['description'] . '</p>' . $group_end . NR;
                }
            } elseif ($val['type'] == 'textarea') {
                if (isset($val['rows'])) {
                    $rows = (int) $val['rows'];
                } else {
                    $rows = 10;
                }
                $form .= $group_start . '<p><label><span>' . t($val['name']) . '</span>' . '<textarea rows="' . $rows . '" name="' . $key . '-' . $type . '[' . $m . ']' . '">' . htmlspecialchars($options[$m]) . '</textarea></label>' . $val['description'] . '</p>' . $group_end . NR;
            } elseif ($val['type'] == 'checkbox') {
                $ch_val = $options[$m];
                if ($ch_val) {
                    $checked = 'checked="checked"';
                } else {
                    $checked = '';
                }
                $form .= $group_start . '<p><label><input class="checkbox" type="checkbox" value="' . $ch_val . '"' . ' name="' . $key . '-' . $type . '[' . $m . ']' . '" ' . $checked . '> <span>' . $val['name'] . '</span></label>' . $val['description'] . '</p>' . $group_end . NR;
                # поскольку не отмеченные чекбоксы не передаются в POST, сделаем массив чекбоксов в hidden
                $form .= '<input type="hidden" name="' . $key . '-' . $type . '[_mso_checkboxs][' . $m . ']" value="0">';
            } elseif ($val['type'] == 'select') {
                $form .= $group_start . '<p><label><span>' . $val['name'] . '</span>' . '<select name="' . $key . '-' . $type . '[' . $m . ']' . '">';
                // если есть values, то выводим - правила задания, как в ini-файлах
                if (isset($val['values'])) {
                    $values = explode('#', $val['values']);
                    foreach ($values as $v) {
                        $v = trim($v);
                        $v_t = $v;
                        $ar = explode('||', $v);
                        if (isset($ar[0])) {
                            $v = trim($ar[0]);
                        }
                        if (isset($ar[1])) {
                            $v_t = trim($ar[1]);
                        }
                        if (htmlspecialchars($options[$m]) == $v) {
                            $checked = 'selected="selected"';
                        } else {
                            $checked = '';
                        }
                        $form .= NR . '<option value="' . $v . '" ' . $checked . '>' . $v_t . '</option>';
                    }
                }
                $form .= '</select></label>' . $val['description'] . '</p>' . $group_end . NR;
            } elseif ($val['type'] == 'radio') {
                $form .= $group_start . '<p><span>' . $val['name'] . '</span></p><p>';
                if (!isset($val['delimer'])) {
                    $delimer = '<br>';
                } else {
                    $delimer = stripslashes($val['delimer']);
                }
                // если есть values, то выводим - правила задания, как в ini-файлах
                if (isset($val['values'])) {
                    $values = explode('#', $val['values']);
                    foreach ($values as $v) {
                        $v = trim($v);
                        $v_t = $v;
                        $ar = explode('||', $v);
                        if (isset($ar[0])) {
                            $v = trim($ar[0]);
                        }
                        if (isset($ar[1])) {
                            $v_t = trim($ar[1]);
                        }
                        if (htmlspecialchars($options[$m]) == $v) {
                            $checked = 'checked="checked"';
                        } else {
                            $checked = '';
                        }
                        $form .= NR . '<label><input type="radio" value="' . $v . '" ' . $checked . ' name="' . $key . '-' . $type . '[' . $m . ']' . '"> ' . $v_t . '</label>' . $delimer;
                    }
                }
                $form .= $val['description'] . '</p><hr>' . $group_end . NR;
            }
        }
        # выводим форму
        echo NR . '<form method="post" class="mso_admin_plugin_options">' . mso_form_session('f_session_id');
        echo $form;
        echo NR . '<button type="submit" name="f_submit" class="i save">' . t('Сохранить') . '</button>';
        echo '</form>' . NR;
    } else {
        echo t('<p>Опции не определены.</p>') . NR;
    }
}
Example #27
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
$CI =& get_instance();
$options_key = 'plugin_feedburner';
if ($post = mso_check_post(array('f_session_id', 'f_submit'))) {
    mso_checkreferer();
    $options = array();
    $options['key'] = $post['f_key'];
    mso_add_option($options_key, $options, 'plugins');
    echo '<div class="update">' . t('Обновлено!') . '</div>';
}
?>
<h1><?php 
echo t('Плагин FeedBurner');
?>
</h1>
<p class="info"><?php 
echo t('Плагин выполняет перенаправление вашего основного rss на сервис feedburner.com.');
?>
</p>

<?php 
$options = mso_get_option($options_key, 'plugins', array());
if (!isset($options['key'])) {
Example #28
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
mso_checkreferer();
// защищаем реферер
if ($post = mso_check_post(array('text', 'id'))) {
    $text = $post['text'];
    $id = $post['id'];
    // номер записи
    $fn = mso_add_float_option('autosave-' . $id, $text, '', false, '.txt', false);
    // и в float-опции без серилизации
    echo getinfo('uploads_url') . $fn;
}
Example #29
0
                        $pages_count++;
                    }
                }
                $out .= '</ul>';
                echo $out . '<div class="update">' . t('Готово! Проверка выполнена!<br>Предположительно запросов к БД будет:') . ' ' . $sql_count . '<br>' . t('Измененных slug (url):') . ' ' . $slug_rename . '<br>' . t('Всего записей:') . ' ' . $pages_count . '<br>' . t('Всего комментариев:') . ' ' . $comments_count . '</div>';
            } else {
                echo '<div class="error">' . t('Ошибка! Пустой файл!') . '</div>';
            }
        } else {
            echo '<div class="error">' . t('Файл') . ' <b>' . f_xml_file . '</b> ' . t('не найден! Загрузите его в каталог /uploads/ Можно через Загрузку.') . '</div>';
        }
    }
}
////////////////////////////////////////////////////////////////////////////
// конвертер
if ($post = mso_check_post(array('f_session_id', 'f_submit_go', 'f_xml_file'))) {
    mso_checkreferer();
    if (!isset($post['f_yes'])) {
        echo '<div class="error">' . t('Вы не приняли условия использования конвертера') . '</div>';
    } else {
        $f_xml_file = $post['f_xml_file'];
        $fn = getinfo('uploads_dir') . $f_xml_file;
        $url = getinfo('uploads_url') . $f_xml_file;
        if (file_exists($fn)) {
            // попытаемся установить большое время выполнения скрипта
            @set_time_limit(0);
            @ini_set('max_execution_time', 0);
            // echo '<div class="update">Пошел процесс... Ждите...</div>';
            require_once getinfo('common_dir') . 'category.php';
            require_once getinfo('common_dir') . 'functions-edit.php';
            $all = fetch_rss($url);
Example #30
0
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
/**
 * MaxSite CMS
 * (c) http://max-3000.com/
 */
$CI =& get_instance();
$options_key = 'sape';
if ($post = mso_check_post(array('f_session_id', 'f_submit', 'f_kod', 'f_articles_url', 'f_articles_template'))) {
    mso_checkreferer();
    $options = array();
    $options['kod'] = $post['f_kod'];
    $options['go'] = 0;
    // признак, что код установлен верно - каталог есть и доступен для записи
    // проверим введенный код
    $fn = $_SERVER['DOCUMENT_ROOT'] . '/' . $options['kod'] . '/sape.php';
    if (!file_exists($fn)) {
        echo '<div class="error">Введенный вам код, возможно неправильный, или вы не распаковали архив на сервере!</div>';
    } else {
        if (!is_writable($_SERVER['DOCUMENT_ROOT'] . '/' . $options['kod'])) {
            echo '<div class="error">Указанный вами каталог недоступен для записи. Установите для него права 777 (разрешающие запись).</div>';
        } else {
            $options['go'] = 1;
        }
        // нет ошибок
    }
    $options['start'] = isset($post['f_start']) ? 1 : 0;
    $options['context'] = isset($post['f_context']) ? 1 : 0;