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; }
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; }
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, значит смотрим автора страницы и если он не равен юзеру, рубим доступ
// синхронизация количества комментариев у комюзеров 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');
<?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';
<?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); }
<?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
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); } }
$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>'; } }
$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'];
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; } }
function forms_content_callback($matches) { $text = $matches[1]; $text = str_replace("\r", "", $text); $text = str_replace(' ', ' ', $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; }
<?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>
<?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. Сохраняйте этот секретный адрес в надежном месте. В случае, если вы его забудете у вас не будет другой возможности, кроме как отключить плагин (удалить его файлы) или вручную исправить базу данных.');
<?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';
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>'; } } }
<?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) {
<?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
<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']) {
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']) {
} $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 все комментарии удаленных на анонимов
<?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) . ' мин. назад' : 'Еще не обновлялся'; ?>
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(); }
<?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 .= 'Список рассылки пуст. ';
// 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) { // значит добавляем
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; } }
<?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'])) {
<?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; }
$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);
<?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;