Exemple #1
0
function mso_edit_comuser($data)
{
    global $MSO;
    $CI =& get_instance();
    $data = mso_xss_clean_data($data, array('user_login', 'password', 'comusers_email', 'comusers_new_password', 'comusers_nik', 'comusers_icq', 'comusers_url', 'comusers_msn', 'comusers_jaber', 'comusers_skype', 'comusers_avatar_url', 'comusers_description', 'comusers_date_birth_y', 'comusers_date_birth_m', 'comusers_date_birth_d', 'comusers_notify', 'comusers_language', 'comusers_activate_key', 'comusers_activate_string', 'comusers_admin_note'));
    if (isset($data['user_login'])) {
        $user_login = $data['user_login'];
    } else {
        $user_login = $MSO->data['session']['users_login'];
    }
    if (isset($data['password'])) {
        $password = $data['password'];
    } else {
        $password = $MSO->data['session']['users_password'];
    }
    # проверка можно ли редактировать этому пользователю с этим паролем и этим разрешением
    if (!mso_check_user_password($user_login, $password, 'admin_comusers')) {
        return array('result' => 0, 'description' => 'Login/password incorrect');
    }
    $comusers_id = isset($data['comusers_id']) ? (int) $data['comusers_id'] : 0;
    if ($comusers_id <= 0) {
        return array('result' => 0, 'description' => 'Comuser ID incorrect');
    }
    $comusers_email = isset($data['comusers_email']) ? $data['comusers_email'] : '';
    # нет email - ошибка
    if (!$comusers_email or !mso_valid_email($comusers_email)) {
        return array('result' => 0, 'description' => 'Email incorrect');
    }
    ### пароль
    $comusers_new_password = '';
    if (isset($data['comusers_new_password'])) {
        $comusers_new_password = mso_strip($data['comusers_new_password'], false);
        if ($comusers_new_password and strlen($comusers_new_password) > 6) {
            $comusers_new_password = mso_md5($comusers_new_password);
        } else {
            return array('result' => 0, 'description' => 'Password incorrect');
        }
    }
    $comusers_nik = isset($data['comusers_nik']) ? $data['comusers_nik'] : '';
    $comusers_icq = isset($data['comusers_icq']) ? $data['comusers_icq'] : '';
    $comusers_url = isset($data['comusers_url']) ? $data['comusers_url'] : '';
    $comusers_msn = isset($data['comusers_msn']) ? $data['comusers_msn'] : '';
    $comusers_jaber = isset($data['comusers_jaber']) ? $data['comusers_jaber'] : '';
    $comusers_skype = isset($data['comusers_skype']) ? $data['comusers_skype'] : '';
    $comusers_avatar_url = isset($data['comusers_avatar_url']) ? $data['comusers_avatar_url'] : '';
    $comusers_description = isset($data['comusers_description']) ? $data['comusers_description'] : '';
    $comusers_date_birth_y = isset($data['comusers_date_birth_y']) ? $data['comusers_date_birth_y'] : '1970';
    $comusers_date_birth_m = isset($data['comusers_date_birth_m']) ? $data['comusers_date_birth_m'] : '1';
    $comusers_date_birth_d = isset($data['comusers_date_birth_d']) ? $data['comusers_date_birth_d'] : '1';
    $comusers_notify = isset($data['comusers_notify']) ? $data['comusers_notify'] : '0';
    $comusers_language = isset($data['comusers_language']) ? $data['comusers_language'] : 'ru';
    $comusers_activate_key = isset($data['comusers_activate_key']) ? $data['comusers_activate_key'] : '';
    $comusers_activate_string = isset($data['comusers_activate_string']) ? $data['comusers_activate_string'] : '';
    $comusers_admin_note = isset($data['comusers_admin_note']) ? $data['comusers_admin_note'] : '';
    # дату в MySQL
    $comusers_date_birth = mso_date_convert_to_mysql($comusers_date_birth_y, $comusers_date_birth_m, $comusers_date_birth_d);
    $upd_data = array('comusers_nik' => $comusers_nik, 'comusers_admin_note' => $comusers_admin_note, 'comusers_email' => $comusers_email, 'comusers_icq' => $comusers_icq, 'comusers_url' => $comusers_url, 'comusers_msn' => $comusers_msn, 'comusers_jaber' => $comusers_jaber, 'comusers_skype' => $comusers_skype, 'comusers_avatar_url' => $comusers_avatar_url, 'comusers_description' => $comusers_description, 'comusers_date_birth' => $comusers_date_birth, 'comusers_notify' => $comusers_notify, 'comusers_language' => $comusers_language, 'comusers_activate_string' => $comusers_activate_string, 'comusers_activate_key' => $comusers_activate_key);
    if ($comusers_new_password) {
        $upd_data['comusers_password'] = $comusers_new_password;
    }
    // _pr($upd_data);
    $CI->db->where('comusers_id', $comusers_id);
    $res = $CI->db->update('comusers', $upd_data) ? '1' : '0';
    mso_flush_cache();
    // сбросим кэш
    $response = array('result' => $res, 'description' => 'Update');
    return $response;
}
Exemple #2
0
function mso_remote_f_getpost($post)
{
    if (!isset($post['remote_page_id']) or !$post['remote_page_id']) {
        return 'ERROR: missing arguments';
    }
    require_once getinfo('common_dir') . 'page.php';
    require_once getinfo('common_dir') . 'inifile.php';
    // функции для работы с ini-файлом
    // удалим хуки для текста - должно отдаваться как в базе
    mso_remove_hook('content');
    mso_remove_hook('content_auto_tag');
    mso_remove_hook('content_balance_tags');
    mso_remove_hook('content_out');
    mso_remove_hook('content_complete');
    $par = array('custom_type' => 'home', 'pagination' => false, 'content' => true, 'work_cut' => false, 'type' => false, 'page_id' => $post['remote_page_id'], 'date_now' => false, 'page_status' => false, 'page_id_autor' => $post['remote_users_id'], 'all_fields' => true);
    // если юзеру разрешено редактировать чужие страницы, то 'page_id_autor' сбрасываем
    // иначе только свои страницы можно загружать
    if (mso_check_user_password($post['remote_users_login'], $post['remote_users_password'], 'admin_page_edit_other')) {
        $par['page_id_autor'] = false;
    }
    $pages = mso_get_pages($par, $pagination);
    // получим странички
    $out = '';
    if ($pages) {
        foreach ($pages as $page) {
            foreach ($page as $p_name => $p_val) {
                if ($p_name == 'page_categories_detail') {
                    continue;
                } elseif ($p_name == 'users_description') {
                    continue;
                } elseif ($p_name == 'users_avatar_url') {
                    continue;
                } elseif ($p_name == 'users_login') {
                    continue;
                } elseif ($p_name == 'page_content') {
                    $p_val = str_replace("\n", '!RMTNR!', $p_val);
                } elseif ($p_name == 'page_categories') {
                    // это массив, где хранятся id рубрик
                    $p_val = implode(" ", $p_val);
                } elseif ($p_name == 'page_tags') {
                    // это массив, где хранятся имена меток
                    $p_val = implode('!RMTNR!', $p_val);
                } elseif ($p_name == 'page_meta') {
                    //  это массивы в массиве
                    $pm = '';
                    foreach ($p_val as $page_meta_key => $page_meta_val) {
                        $pm .= '!RMTMETA!' . $page_meta_key . '=' . implode('!RMTNR!', $page_meta_val);
                    }
                    $p_val = $pm;
                } elseif ($p_name == 'page_date_publish') {
                    //page_date_publish=2009-01-05 22:27:22
                    $out .= NR . 'page_date_publish_year=' . mso_date_convert('Y', $p_val, false);
                    $out .= NR . 'page_date_publish_mon=' . mso_date_convert('m', $p_val, false);
                    $out .= NR . 'page_date_publish_day=' . mso_date_convert('d', $p_val, false);
                    $out .= NR . 'page_date_publish_hour=' . mso_date_convert('H', $p_val, false);
                    $out .= NR . 'page_date_publish_min=' . mso_date_convert('i', $p_val, false);
                    $out .= NR . 'page_date_publish_sec=' . mso_date_convert('s', $p_val, false);
                } elseif (is_array($p_val)) {
                    continue;
                }
                $out .= NR . $p_name . '=' . $p_val;
            }
        }
        # нужно передать и все метаполя, которые в шаблоне и admin_page/meta.ini.
        # Они могут быть пустыми, поэтому их нет в page_meta
        $all = mso_get_ini_file(getinfo('admin_plugins_dir') . 'admin_page/meta.ini');
        if (file_exists(getinfo('template_dir') . 'meta.ini')) {
            $meta_templ = mso_get_ini_file(getinfo('template_dir') . 'meta.ini');
            if ($meta_templ) {
                $all = array_merge($all, $meta_templ);
            }
        }
        $pm = '';
        foreach ($all as $key => $val) {
            $pm .= '!RMTMETA!' . $key . '=' . _mso_implode($val);
        }
        $out .= NR . 'page_meta_template=' . $pm;
    } else {
        return 'ERROR: no page';
    }
    return trim($out);
}