예제 #1
0
파일: index.php 프로젝트: Kmartynov/cms
function admin_ip_admin_init($args = array())
{
    // проверяем сегменты URL
    // получаем из опций секретный сегмент
    // если это секретный, то сбрасываем ip
    // получаем список разрешенных IP из опций
    // получаем текущий IP юзера
    // если его нет в разрешенных, то die('no');
    global $MSO;
    $options_key = 'plugin_admin_ip';
    $options = mso_get_option($options_key, 'plugins', array());
    if (!isset($options['secret'])) {
        $options['secret'] = '';
    }
    if (!isset($options['ip'])) {
        $options['ip'] = '';
    }
    if ($options['secret'] and mso_segment(3) == $options['secret']) {
        // сброс ip
        // http://localhost/codeigniter/admin/plugin_admin_ip/secret_to_reset - secret_to_reset
        $options['ip'] = '';
        mso_add_option($options_key, $options, 'plugins');
        mso_redirect('admin/plugin_admin_ip');
        // редирект на страницу плагина
    }
    if ($options['ip']) {
        // указаны IP
        $ips = explode("\n", $options['ip']);
        $curr_ip = $MSO->data['session']['ip_address'];
        $ok = false;
        // признак, что доступ разрешен
        foreach ($ips as $ip) {
            if (trim($ip) == $curr_ip) {
                $ok = true;
                break;
            }
        }
        if (!$ok) {
            die('Access denied');
        }
        // рубим
    }
    if (!mso_check_allow('admin_ip_admin_page')) {
        return $args;
        // 'Доступ запрещен';
    }
    $this_plugin_url = 'plugin_admin_ip';
    // url и hook
    # добавляем свой пункт в меню админки
    # первый параметр - группа в меню
    # второй - это действие/адрес в url - http://сайт/admin/demo
    #			можно использовать добавочный, например demo/edit = http://сайт/admin/demo/edit
    # Третий - название ссылки
    mso_admin_menu_add('plugins', $this_plugin_url, 'Admin IP');
    # прописываем для указаного admin_url_ + $this_plugin_url - (он будет в url)
    # связанную функцию именно она будет вызываться, когда
    # будет идти обращение по адресу http://сайт/admin/_null
    mso_admin_url_hook($this_plugin_url, 'admin_ip_admin_page');
    return $args;
}
예제 #2
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function calendar_widget_update($num = 1)
{
    $widget = 'calendar_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # получаем из POST
    $newoptions['header'] = mso_widget_get_post($widget . '_header');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #3
0
파일: index.php 프로젝트: Kmartynov/cms
function authors_widget_update($num = 1)
{
    $widget = 'authors_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #4
0
파일: index.php 프로젝트: Kmartynov/cms
function page_comments_widget_update($num = 1)
{
    $widget = 'page_comments_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['limit'] = (int) mso_widget_get_post($widget . 'limit');
    $newoptions['format'] = mso_widget_get_post($widget . 'format');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #5
0
파일: index.php 프로젝트: Kmartynov/cms
function random_pages_widget_update($num = 1)
{
    $widget = 'random_pages_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['count'] = mso_widget_get_post($widget . 'count');
    $newoptions['page_type'] = mso_widget_get_post($widget . 'page_type');
    $newoptions['page_content'] = mso_widget_get_post($widget . 'page_content');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #6
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function picasa_widget_update($num = 1)
{
    $widget = 'picasa_widget_' . $num;
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['url'] = mso_widget_get_post($widget . 'url');
    $newoptions['show_type'] = mso_widget_get_post($widget . 'show_type');
    $newoptions['albums_count'] = (int) mso_widget_get_post($widget . 'albums_count');
    if ($newoptions['albums_count'] < 1) {
        $newoptions['albums_count'] = 0;
    }
    $newoptions['album_name'] = mso_widget_get_post($widget . 'album_name');
    $newoptions['img_size'] = mso_widget_get_post($widget . 'img_size');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #7
0
파일: inifile.php 프로젝트: rettebinu/cms
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;
}
예제 #8
0
function mso_install_newsite($arg = array())
{
    $CI =& get_instance();
    $prefix = $CI->db->dbprefix;
    $charset = $CI->db->char_set ? $CI->db->char_set : 'utf8';
    $collate = $CI->db->dbcollat ? $CI->db->dbcollat : 'utf8_general_ci';
    $charset_collate = ' DEFAULT CHARACTER SET ' . $charset . ' COLLATE ' . $collate;
    $sql_file = FCPATH . '/' . APPPATH . 'views/install/model.sql';
    $sql = _mso_install_sqlfile($sql_file);
    foreach ($sql as $s) {
        $s = trim($s);
        if (!empty($s)) {
            $s = str_replace('_PREFIX_', $prefix, $s);
            $s = str_replace('_CHARSETCOLLATE_', $charset_collate, $s);
            $s = str_replace('_USERNAME_', $arg['username'], $s);
            $s = str_replace('_USERPASSWORD_', $arg['userpassword'], $s);
            $s = str_replace('_USEREMAIL_', $arg['useremail'], $s);
            $s = str_replace('_NAMESITE_', $arg['namesite'], $s);
            $s = str_replace('_IP_', $arg['ip'], $s);
            $CI->db->query($s);
        }
    }
    mso_add_option('admin_nick', $arg['username'], 'general');
    mso_add_option('name_site', $arg['namesite'], 'general');
    mso_add_option('template', 'default', 'general');
    mso_add_option('description', t('Очередной сайт на Maxsite CMS', 'install'), 'general');
    mso_add_option('keywords', '', 'general');
    if ($arg['demoposts']) {
        $sql_file = FCPATH . '/' . APPPATH . 'views/install/demo.sql';
        $sql = _mso_install_sqlfile($sql_file);
        foreach ($sql as $s) {
            $s = trim($s);
            if (!empty($s)) {
                $s = str_replace('_PREFIX_', $prefix, $s);
                $s = str_replace('_CHARSETCOLLATE_', $charset_collate, $s);
                $CI->db->query($s);
            }
        }
    }
    $res = '<p class="res"><strong>' . t('Логин:', 'install') . '</strong> ' . $arg['username'] . '</p>';
    $res .= '<p class="res"><strong>' . t('Пароль:', 'install') . '</strong> ' . $arg['userpassword_orig'] . '</p>';
    $res .= '<p class="res"><strong>' . t('Email:', 'install') . '</strong> ' . $arg['useremail'] . '</p>';
    return $res;
}
예제 #9
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function feedburner_count_update()
{
    $options = mso_get_option('samborsky_feedburner_count', 'plugins', array());
    if (empty($options['last_update'])) {
        $options['last_update'] = 0;
    }
    if (feedburner_count_need_update($options['last_update'], $options['update_interval'] * 60)) {
        require getinfo('plugins_dir') . 'feedburner_count/download.php';
        if ($content = get_download('https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=' . $options['feed_name'])) {
            preg_match('/circulation="(\\d+)"/', $content, $match);
            $options['count'] = (string) $match[1];
            $options['last_update'] = time();
        } else {
            $options['last_update'] = time() + 5 * 60;
            $options['count'] = 'Ошибка!';
        }
        mso_add_option('samborsky_feedburner_count', $options, 'plugins');
    }
}
예제 #10
0
파일: common.php 프로젝트: Kmartynov/cms
function mso_plugin_uninstall($f_name)
{
    global $MSO;
    if (in_array($f_name, $MSO->active_plugins)) {
        // в массиве, значит активен - отключаем его
        // выполним деактивацию в самом плагине, если есть
        $f = $f_name . '_deactivate';
        if (function_exists($f)) {
            $f();
        }
        $f = $f_name . '_uninstall';
        if (function_exists($f)) {
            $f();
        }
        // удалим из глобального
        $MSO->active_plugins = array_flip($MSO->active_plugins);
        unset($MSO->active_plugins[$f_name]);
        $MSO->active_plugins = array_flip($MSO->active_plugins);
        // обновляем настройки
        mso_add_option('active_plugins', $MSO->active_plugins, 'general');
        // echo '<div class="update">Плагин <strong>' . $f_name . '</strong> деинсталирован!</div>';
        return true;
    } else {
        return false;
    }
}
예제 #11
0
파일: admin.php 프로젝트: Kmartynov/cms
<?php

if (!defined('BASEPATH')) {
    exit('No direct script access allowed');
}
if (!is_array($list = mso_get_option('samborsky_ping_list', 'plugins'))) {
    $list = array();
}
if (isset($_POST['save_submit'])) {
    $list = explode("\n", $_POST['samborsky_ping_list']);
    foreach ($list as $key => $value) {
        $list[$key] = trim($value);
    }
    mso_add_option('samborsky_ping_list', array_unique($list), 'plugins');
}
$string_lists = '';
foreach ($list as $key => $value) {
    if (!empty($value)) {
        $string_lists .= $value . "\n";
    }
}
?>

<h1>Пинги</h1>

Список пинг сервисов (дубли удалятся)
<br>
<form action="" method="post">
	<textarea name="samborsky_ping_list" rows="10"><?php 
echo $string_lists;
?>
예제 #12
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function dignity_rss_widget_update($num = 1)
{
    $widget = 'dignity_rss_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['textdo'] = mso_widget_get_post($widget . 'textdo');
    $newoptions['feed_url'] = mso_widget_get_post($widget . 'feed_url');
    $newoptions['google_text'] = mso_widget_get_post($widget . 'google_text');
    $newoptions['yandex_text'] = mso_widget_get_post($widget . 'yandex_text');
    $newoptions['rss_text'] = mso_widget_get_post($widget . 'rss_text');
    $newoptions['rss_to_email'] = mso_widget_get_post($widget . 'rss_to_email');
    $newoptions['textposle'] = mso_widget_get_post($widget . 'textposle');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #13
0
파일: install.php 프로젝트: Kmartynov/cms
function sp_add_options()
{
    $options = array('archive_url' => 'polls-archive', 'show_archives_link' => 1, 'show_results_link' => 1, 'close_after_hour' => 0, 'admin_number_records' => 10, 'len_polls' => t('1 неделя'), 'secur_polls' => t('Защита по Coookie'));
    mso_add_option('plugin_samborsky_polls', $options, 'plugins');
}
예제 #14
0
파일: admin.php 프로젝트: rb2/MaxSite-CMS
}
/**
 * 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 .= 'Список рассылки пуст. ';
        }
        if (!$post['f_from']) {
            $error .= 'Нужно указать email отправителя. ';
        }
예제 #15
0
파일: index.php 프로젝트: Kmartynov/cms
function last_pages_widget_update($num = 1)
{
    $widget = 'last_pages_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['format'] = mso_widget_get_post($widget . 'format');
    $newoptions['date_format'] = mso_widget_get_post($widget . 'date_format');
    $newoptions['comments_format'] = mso_widget_get_post($widget . 'comments_format');
    $newoptions['count'] = (int) mso_widget_get_post($widget . 'count');
    $newoptions['page_type'] = mso_widget_get_post($widget . 'page_type');
    $newoptions['include_cat'] = mso_widget_get_post($widget . 'include_cat');
    $newoptions['sort'] = mso_widget_get_post($widget . 'sort');
    $newoptions['sort_order'] = mso_widget_get_post($widget . 'sort_order');
    $newoptions['img_prev_def'] = mso_widget_get_post($widget . 'img_prev_def');
    $newoptions['img_prev_attr'] = mso_widget_get_post($widget . 'img_prev_attr');
    $newoptions['max_words'] = mso_widget_get_post($widget . 'max_words');
    $newoptions['text_do'] = mso_widget_get_post($widget . 'text_do');
    $newoptions['text_posle'] = mso_widget_get_post($widget . 'text_posle');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #16
0
파일: index.php 프로젝트: Kmartynov/cms
function last_comments_widget_update($num = 1)
{
    $widget = 'last_comments_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['count'] = (int) mso_widget_get_post($widget . 'count');
    $newoptions['words'] = (int) mso_widget_get_post($widget . 'words');
    $newoptions['maxchars'] = (int) mso_widget_get_post($widget . 'maxchars');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #17
0
파일: index.php 프로젝트: Kmartynov/cms
function samborsky_ping_activate($args = array())
{
    // Пинг-сервисы по умолчанию
    mso_add_option('samborsky_ping_list', array('http://rpc.technorati.com/rpc/ping', 'http://blogsearch.google.com/ping/RPC2', 'http://ping.blogs.yandex.ru/RPC2', 'http://ping.feedburner.com', 'http://rpc.pingomatic.com/'), 'plugins');
    return $args;
}
예제 #18
0
    foreach ($sidebars as $sidebar => $widgets) {
        # готовим опцию для каждого
        $option = array();
        $widgets = explode("\n", $widgets);
        // в массив, потому что указано через Enter
        // проверяем виджеты
        foreach ($widgets as $widget) {
            $widget = trim($widget);
            // удлаим лишнее
            if ($widget) {
                $option[] = $widget;
            }
            // добавим в опцию
        }
        // pr($option);
        mso_add_option('sidebars-' . mso_slug($sidebar), $option, 'sidebars');
        // добавили
    }
    echo '<div class="update">' . t('Обновлено!') . '</div>';
    // pr($sidebars);
    // поскольку мы обновили опции, то обновляем и их кэш
    mso_refresh_options();
}
?>

<h1><?php 
echo t('Настройки сайдбаров');
?>
</h1>
<p class="info"><?php 
echo t('Добавьте в сайдбары необходимые виджеты. Каждый виджет в одной строчке. Виджеты будут отображаться в указанном вами порядке. Если указанные виджеты не существуют, то они будут проигнорированы при выводе в сайдбаре.');
예제 #19
0
파일: index.php 프로젝트: Kmartynov/cms
function random_gal_widget_update($num = 1)
{
    $widget = 'random_gal_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['gal'] = mso_widget_get_post($widget . 'gal');
    $newoptions['galother'] = mso_widget_get_post($widget . 'galother');
    $newoptions['count'] = mso_widget_get_post($widget . 'count');
    $newoptions['style'] = mso_widget_get_post($widget . 'style');
    $newoptions['style_img'] = mso_widget_get_post($widget . 'style_img');
    $newoptions['html'] = mso_widget_get_post($widget . 'html');
    $newoptions['sort'] = mso_widget_get_post($widget . 'sort');
    $newoptions['filter'] = mso_widget_get_post($widget . 'filter');
    $newoptions['class'] = mso_widget_get_post($widget . 'class');
    $newoptions['type'] = mso_widget_get_post($widget . 'type');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #20
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function tagclouds3d_widget_update($num = 1)
{
    $widget = 'tagclouds3d_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['block_start'] = mso_widget_get_post($widget . 'block_start');
    $newoptions['block_end'] = mso_widget_get_post($widget . 'block_end');
    $newoptions['min_size'] = mso_widget_get_post($widget . 'min_size');
    $newoptions['max_size'] = mso_widget_get_post($widget . 'max_size');
    $newoptions['max_num'] = mso_widget_get_post($widget . 'max_num');
    $newoptions['min_count'] = mso_widget_get_post($widget . 'min_count');
    $newoptions['width'] = mso_widget_get_post($widget . 'width');
    $newoptions['height'] = mso_widget_get_post($widget . 'height');
    $newoptions['speed'] = mso_widget_get_post($widget . 'speed');
    $newoptions['sort'] = mso_widget_get_post($widget . 'sort');
    /* === */
    $newoptions['bgcolor'] = mso_widget_get_post($widget . 'bgcolor');
    $newoptions['text_color'] = mso_widget_get_post($widget . 'text_color');
    $newoptions['text_color2'] = mso_widget_get_post($widget . 'text_color2');
    $newoptions['hover_color'] = mso_widget_get_post($widget . 'hover_color');
    /* === */
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #21
0
파일: common.php 프로젝트: rettebinu/cms
function mso_remove_allow($act = '')
{
    global $MSO;
    $d = mso_get_option('groups_allow', 'general');
    if (isset($d[$act])) {
        unset($d[$act]);
        mso_delete_option('groups_allow', 'general');
        mso_add_option('groups_allow', $d, 'general');
    }
}
예제 #22
0
파일: templates.php 프로젝트: rettebinu/cms
?>
</h1>
<p class="info"><?php 
echo t('Выберите нужный шаблон. Все шаблоны хранятся в каталоге <strong>«maxsite/templates»</strong>. Название шаблона совпадает с названием его каталога.');
?>
</p>

<?php 
$CI =& get_instance();
if ($post = mso_check_post(array('f_session_id', 'f_submit'))) {
    mso_checkreferer();
    $f_template = mso_array_get_key($post['f_submit']);
    # еще раз проверим есть ли шаблон
    $index = $MSO->config['templates_dir'] . $f_template . '/index.php';
    if (file_exists($index)) {
        mso_add_option('template', $f_template, 'general');
        $MSO->config['template'] = $f_template;
        echo '<div class="update">' . t('Обновлено!') . '</div>';
    } else {
        echo '<div class="error">' . t('Ошибка обновления') . '</div>';
    }
}
// получаем список каталогов
$CI->load->helper('directory');
$templates_dir = $MSO->config['templates_dir'];
$current_template = $MSO->config['template'];
echo '<div class="mar30-b flex flex-wrap bg-gray100 pad20">
		<h4 class="w100 mar0-t">' . t('Текущий шаблон:') . ' ' . $current_template . '</h4>
		<div class="mar10-b">
		';
if (file_exists($templates_dir . $current_template . '/screenshot.png')) {
예제 #23
0
파일: index.php 프로젝트: Kmartynov/cms
function sape_widget_update($num = 1)
{
    $widget = 'sape_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['count'] = (int) mso_widget_get_post($widget . 'count');
    $newoptions['htmldo'] = mso_widget_get_post($widget . 'htmldo');
    $newoptions['htmlposle'] = mso_widget_get_post($widget . 'htmlposle');
    $newoptions['links_or_articles'] = mso_widget_get_post($widget . 'links_or_articles');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #24
0
파일: index.php 프로젝트: Kmartynov/cms
function last_pages_unit_widget_update($num = 1)
{
    $widget = 'last_pages_unit_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['cache_time'] = (int) mso_widget_get_post($widget . 'cache_time');
    $newoptions['prefs'] = mso_widget_get_post($widget . 'prefs');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #25
0
파일: index.php 프로젝트: Kmartynov/cms
function search_form_widget_update($num = 1)
{
    $widget = 'search_form_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['text'] = mso_widget_get_post($widget . 'text');
    $newoptions['submit'] = mso_widget_get_post($widget . 'submit');
    $newoptions['style_text'] = mso_widget_get_post($widget . 'style_text');
    $newoptions['style_submit'] = mso_widget_get_post($widget . 'style_submit');
    $newoptions['text_posle'] = mso_widget_get_post($widget . 'text_posle');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #26
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function catclouds_widget_update($num = 1)
{
    $widget = 'catclouds_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['block_start'] = mso_widget_get_post($widget . 'block_start');
    $newoptions['block_end'] = mso_widget_get_post($widget . 'block_end');
    $newoptions['min_size'] = mso_widget_get_post($widget . 'min_size');
    $newoptions['max_size'] = mso_widget_get_post($widget . 'max_size');
    $newoptions['format'] = mso_widget_get_post($widget . 'format');
    $newoptions['sort'] = mso_widget_get_post($widget . 'sort');
    $newoptions['cat_id'] = mso_widget_get_post($widget . 'cat_id');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #27
0
파일: admin.php 프로젝트: rb2/MaxSite-CMS
$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) . ' мин. назад' : 'Еще не обновлялся';
?>
</strong>
<br>
Последнее показание счетчика: <strong><?php 
echo $options['count'];
?>
예제 #28
0
파일: index.php 프로젝트: rb2/MaxSite-CMS
function twitter_widget_update($num = 1)
{
    $widget = 'twitter_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    $newoptions['header'] = mso_widget_get_post($widget . '_header');
    $newoptions['url'] = mso_widget_get_post($widget . '_url');
    $newoptions['count'] = (int) mso_widget_get_post($widget . '_count');
    if ($newoptions['count'] < 1) {
        $newoptions['count'] = 5;
    }
    $newoptions['max_word_description'] = (int) mso_widget_get_post($widget . '_max_word_description');
    if ($newoptions['max_word_description'] < 1) {
        $newoptions['max_word_description'] = 0;
    }
    $newoptions['format'] = mso_widget_get_post($widget . '_format');
    $newoptions['format_date'] = mso_widget_get_post($widget . '_format_date');
    $newoptions['footer'] = mso_widget_get_post($widget . '_footer');
    $newoptions['show_nick'] = mso_widget_get_post($widget . '_show_nick');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #29
0
파일: index.php 프로젝트: Kmartynov/cms
function category_widget_update($num = 1)
{
    $widget = 'category_widget_' . $num;
    // имя для опций = виджет + номер
    // получаем опции
    $options = $newoptions = mso_get_option($widget, 'plugins', array());
    # обрабатываем POST
    $newoptions['header'] = mso_widget_get_post($widget . 'header');
    $newoptions['format'] = mso_widget_get_post($widget . 'format');
    $newoptions['format_current'] = mso_widget_get_post($widget . 'format_current');
    $newoptions['include'] = mso_widget_get_post($widget . 'include');
    $newoptions['exclude'] = mso_widget_get_post($widget . 'exclude');
    $newoptions['hide_empty'] = mso_widget_get_post($widget . 'hide_empty');
    $newoptions['order'] = mso_widget_get_post($widget . 'order');
    $newoptions['order_asc'] = mso_widget_get_post($widget . 'order_asc');
    $newoptions['include_child'] = mso_widget_get_post($widget . 'include_child');
    $newoptions['nofollow'] = mso_widget_get_post($widget . 'nofollow');
    $newoptions['group_header_no_link'] = mso_widget_get_post($widget . 'group_header_no_link');
    if ($options != $newoptions) {
        mso_add_option($widget, $newoptions, 'plugins');
    }
}
예제 #30
0
파일: index.php 프로젝트: Kmartynov/cms
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;
    }
}