Пример #1
0
?>

<h1><?php 
echo t('Шаблоны для сайта');
?>
</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">
Пример #2
0
?>
</h1>
<p><a href="<?php 
echo $MSO->config['site_admin_url'] . 'comusers';
?>
"><?php 
echo t('Вернуться к списку комментаторов');
?>
</a></p>

<?php 
$CI =& get_instance();
if ($post = mso_check_post(array('f_session_id', 'f_submit'))) {
    mso_checkreferer();
    // получаем номер комюзера id из fo_edit_submit[]
    $f_id = mso_array_get_key($post['f_submit']);
    // подготавливаем данные для xmlrpc
    $data = array('user_login' => $MSO->data['session']['users_login'], 'password' => $MSO->data['session']['users_password'], 'comusers_id' => $f_id, 'comusers_nik' => $post['f_nik'], 'comusers_email' => $post['f_email'], 'comusers_icq' => $post['f_icq'], 'comusers_url' => $post['f_url'], 'comusers_msn' => $post['f_msn'], 'comusers_jaber' => $post['f_jaber'], 'comusers_skype' => $post['f_skype'], 'comusers_avatar_url' => $post['f_avatar_url'], 'comusers_description' => $post['f_description'], 'comusers_date_birth_y' => $post['f_date_birth_y'], 'comusers_date_birth_m' => $post['f_date_birth_m'], 'comusers_date_birth_d' => $post['f_date_birth_d'], 'comusers_notify' => $post['f_notify'], 'comusers_language' => $post['f_language'], 'comusers_activate_key' => $post['f_activate_key'], 'comusers_activate_string' => $post['f_activate_string'], 'comusers_admin_note' => $post['f_admin_note']);
    if ($post['f_new_password'] and $post['f_new_password'] == $post['f_new_confirm_password']) {
        $data['comusers_new_password'] = $post['f_new_password'];
    }
    // pr($data);
    require_once getinfo('common_dir') . 'functions-edit.php';
    // функции редактирования
    $result = mso_edit_comuser($data);
    //pr($result);
    if (isset($result['result']) and $result['result']) {
        echo '<div class="update">' . t('Обновлено!') . '</div>';
        // . $result['description'];
        mso_flush_cache();
        // сбросим кэш
Пример #3
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>';
        }
    }
}