} if (!isset($rooms) || !is_scalar($rooms)) { $rooms = ''; } // Get client session if (is_object($session) && !empty($moderator_user_id) && !empty($current_user->id) && $current_user->is_admin === 'y') { if ($current_user->_db_getList('id = ' . $moderator_user_id, 1)) { $xmlwriter->setHeaderMessage('OK'); $xmlwriter->setHeaderStatus(0); $current_user->_db_freeList(); // Check categories $categories_new = array(); $categories_array = explode(',', $categories); foreach ($categories_array as $category_id) { $category_id = trim($category_id); if (pcpin_ctype_digit($category_id) && $category->_db_getList('id', 'id = ' . $category_id, 1)) { // Category exists $categories_new[] = $category_id; $category->_db_freeList(); } } $categories_new = array_unique($categories_new); sort($categories_new); // Check rooms $rooms_new = array(); $rooms_array = explode(',', $rooms); foreach ($rooms_array as $room_id) { $room_id = trim($room_id); if (pcpin_ctype_digit($room_id) && $room->_db_getList('id', 'id = ' . $room_id, 1)) { // Room exists $rooms_new[] = $room_id;
$parent_id = 0; // todo if (!isset($name) || !is_scalar($name)) { $name = ''; } if (!isset($description) || !is_scalar($description)) { $description = ''; } if (!isset($creatable_rooms) || !is_scalar($creatable_rooms)) { $creatable_rooms = 'n'; } $errortext = array(); if (!empty($current_user->id) && $current_user->is_admin === 'y' && $session->_s_user_id == $current_user->id) { $errortext = array(); $name = trim($name); $description = trim($description); $creatable_rooms = trim($creatable_rooms); if ($name == '') { $errortext[] = $l->g('category_name_empty'); } elseif ($category->_db_getList('parent_id = ' . $parent_id, 'name LIKE ' . $name, 1)) { $errortext[] = str_replace('[NAME]', $name, $l->g('category_name_exists')); } if (!empty($errortext)) { $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage(implode("\n", $errortext)); } else { $xmlwriter->setHeaderStatus(0); $xmlwriter->setHeaderMessage(str_replace('[NAME]', $name, $l->g('category_created'))); $category->addCategory($parent_id, $name, $description, $creatable_rooms); } }
$default_message_color = $session->_conf_all['default_message_color']; } if (!isset($password_protect) || !pcpin_ctype_digit($password_protect)) { $password_protect = 0; } if (!isset($password) || !is_scalar($password)) { $password = ''; } if (!isset($image) || !pcpin_ctype_digit($image)) { $image = 0; } if (!empty($current_user->id) && $current_user->is_admin === 'y' && $session->_s_user_id == $current_user->id) { $errortext = array(); $name = trim($name); $description = trim($description); if (empty($category_id) || !$category->_db_getList('id', 'id = ' . $category_id, 1)) { $errortext[] = $l->g('select_category'); } elseif ($name == '') { $errortext[] = $l->g('room_name_empty'); } elseif ($room->_db_getList('category_id = ' . $category_id, 'name LIKE ' . $name, 1)) { $errortext[] = str_replace('[NAME]', $name, $l->g('room_already_exists_in_category')); } elseif (!empty($password_protect) && !empty($change_password) && _pcpin_strlen($password) < 3) { $errortext[] = $l->g('password_too_short'); } if (!empty($errortext)) { $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage(implode("\n", $errortext)); } else { // Check image if (!empty($image) && $tmpdata->_db_getList('binaryfile_id', 'user_id = ' . $session->_s_user_id, 'type = 1', 1)) { $binaryfile_id = $tmpdata->_db_list[0]['binaryfile_id'];
if (!isset($profile_user_id)) { $profile_user_id = 0; } $member_xml = array(); $moderated_rooms = array(); $moderated_categories = array(); // Get client session if (is_object($session) && !empty($profile_user_id) && !empty($current_user->id) && $current_user->is_admin === 'y') { if ($current_user->_db_getList('moderated_categories,moderated_rooms', 'id = ' . $profile_user_id, 1)) { $xmlwriter->setHeaderMessage('OK'); $xmlwriter->setHeaderStatus(0); $member = $current_user->_db_list[0]; $current_user->_db_freeList(); $room_ids = array(); // Get moderated categories if (!empty($member['moderated_categories']) && $category->_db_getList('name', 'id IN ' . $member['moderated_categories'], 'name ASC')) { foreach ($category->_db_list as $category_data) { $moderated_categories[] = $category_data['name']; } $category->_db_freeList(); if ($room->_db_getList('id', 'category_id IN ' . $member['moderated_categories'])) { foreach ($room->_db_list as $room_data) { $room_ids[] = $room_data['id']; } $room->_db_freeList(); } } // Get moderated rooms if (!empty($member['moderated_rooms']) && $room->_db_getList('id', 'id IN ' . $member['moderated_rooms'])) { foreach ($room->_db_list as $room_data) { $room_ids[] = $room_data['id'];
$parent_id = 0; //todo if (!isset($name) || !is_scalar($name)) { $name = ''; } if (!isset($description) || !is_scalar($description)) { $description = ''; } if (!isset($creatable_rooms) || !is_scalar($creatable_rooms)) { $creatable_rooms = 'n'; } $errortext = array(); if (!empty($current_user->id) && $current_user->is_admin === 'y' && $session->_s_user_id == $current_user->id) { $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage($l->g('error')); if (!empty($category_id) && $category->_db_getList('id = ' . $category_id)) { // Category exists $xmlwriter->setHeaderStatus(0); $xmlwriter->setHeaderMessage('OK'); $category_data = $category->_db_list[0]; $category->_db_freelist(); switch ($action) { case 'change_listpos': if (empty($dir)) { // Move up if ($category->_db_getList('id,listpos', 'parent_id = ' . $category_data['parent_id'], 'listpos < ' . $category_data['listpos'], 'listpos DESC', 1)) { $higher_cat_id = $category->_db_list[0]['id']; $higher_cat_listpos = $category->_db_list[0]['listpos']; // Update category $category->updateCategory($category_id, false, true, null, null, null, null, $higher_cat_listpos); // Update higher category
_pcpin_loadClass('message'); $msg = new PCPIN_Message($session); _pcpin_loadClass('binaryfile'); $binaryfile = new PCPIN_BinaryFile($session); $errortext = array(); if (!isset($name)) { $name = ''; } if (!isset($description)) { $description = ''; } if (!isset($password) || !is_scalar($password)) { $password = ''; } if (!empty($current_user->id) && !empty($category_id) && is_scalar($category_id)) { if (!$category->_db_getList('name, creatable_rooms', 'id = ' . $category_id, 1)) { // Category does not exists $xmlwriter->setHeaderStatus(1); $errortext[] = $l->g('category_not_exists'); } elseif ($category->_db_list[0]['creatable_rooms'] == 'n' || $category->_db_list[0]['creatable_rooms'] == 'r' && $current_user->is_guest == 'y') { // New user room cannot be created in this category $xmlwriter->setHeaderStatus(1); $errortext[] = $l->g('user_room_create_category_error'); } else { $name = trim($name); $description = trim($description); if ($name == '') { $xmlwriter->setHeaderStatus(1); $errortext[] = $l->g('room_name_empty'); } elseif ($room->_db_getList('id', 'category_id = ' . $category_id, 'name = ' . $name)) { // Duplicate room name
if (!is_null($val) && isset($current_user_set[$key]) && $current_user_set[$key] != $val) { $update_args[$key] = $val; } } // Moderator? $update_args['moderated_rooms'] = ''; $update_args['moderated_categories'] = ''; if ($_pcpin_slave_userdata['is_moderator'] === 'y') { if ($room->_db_getList('id', 'id ASC')) { foreach ($room->_db_list as $data) { $update_args['moderated_rooms'] .= $data['id'] . ','; } $room->_db_freeList(); $update_args['moderated_rooms'] = trim($update_args['moderated_rooms'], ','); } if ($category->_db_getList('id', 'id ASC')) { foreach ($category->_db_list as $data) { $update_args['moderated_categories'] .= $data['id'] . ','; } $category->_db_freeList(); $update_args['moderated_categories'] = trim($update_args['moderated_categories'], ','); } } $current_user->_db_updateRow($current_user_set['id'], 'id', $update_args); // Update additional userdata $current_userdata->_db_getList('user_id = ' . $current_user_set['id'], 1); $current_userdata_set = $current_userdata->_db_list[0]; $current_userdata->_db_freeList(); $update_args = array(); foreach ($_pcpin_slave_userdata as $key => $val) { if (!is_null($val) && isset($current_userdata_set[$key]) && $current_userdata_set[$key] != $val) {
* * "PCPIN Chat 6" is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * "PCPIN Chat 6" is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ _pcpin_loadClass('category'); $category = new PCPIN_Category($session); if (!isset($category_id) || !pcpin_ctype_digit($category_id)) { $category_id = 0; } if (!empty($current_user->id) && $current_user->is_admin === 'y' && $session->_s_user_id == $current_user->id) { $xmlwriter->setHeaderStatus(1); $xmlwriter->setHeaderMessage($l->g('error')); if (!empty($category_id) && $category->_db_getList('name', 'id = ' . $category_id)) { // Category exists $xmlwriter->setHeaderStatus(0); $category_name = $category->_db_list[0]['name']; $xmlwriter->setHeaderMessage(str_replace('[NAME]', $category_name, $l->g('category_deleted'))); // Delete category $category->deleteCategory($category_id); } }