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; }
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); }