Файл: Arhmobi_esdcms/betachat/rooms.sort.php
Строк: 41
<?php
include_once '../sys/inc/start.php';
$doc = new document();
$doc->title = __('Изменение порядка комнат');
if (isset($_GET['sortable'])) {
$sort = explode(',', $_POST['sortable']);
$q = $db->prepare("SELECT * FROM `rooms` WHERE `group_show` <= ? ORDER BY `position` ASC");
$q->execute(Array($user->group));
$res_up = $db->prepare("UPDATE `rooms` SET `position` = ? WHERE `id` = ?");
while ($category = $q->fetch()) {
if (($position = array_search('cid' . $category['id'], $sort)) !== false) {
$res_up->execute(Array($position, $category['id']));
}
}
$doc->clean();
header('Content-type: application/json');
echo json_encode(
array(
'result' => 1,
'description' => __('Порядок комнат успешно сохранен')
));
exit;
}
if (!empty($_GET['id']) && !empty($_GET['act'])) {
$q = $db->prepare("SELECT * FROM `rooms` WHERE `group_show` <= ? ORDER BY `position` ASC");
$q->execute(Array($user->group));
$sort = array();
while ($category = $q->fetch()) {
$sort[$category['id']] = $category['id'];
}
switch ($_GET['act']) {
case 'up':
if (misc::array_key_move($sort, $_GET['id'], -1))
$doc->msg(__('Комната успешно перемещена вверх'));
else
$doc->err(__('Комната уже находится вверху'));
break;
case 'down':
if (misc::array_key_move($sort, $_GET['id'], 1))
$doc->msg(__('Комната успешно перемещена вниз'));
else
$doc->err(__('Комната уже находится внизу'));
break;
}
// сбрасываем ключи массива.
// Остается порядковый массив с идентификаторами категорий
$sort = array_values($sort);
$q = $db->prepare("SELECT * FROM `rooms` WHERE `group_show` <= ? ORDER BY `position` ASC");
$q->execute(Array($user->group));
$res_up = $db->prepare("UPDATE `rooms` SET `position` = ? WHERE `id` = ?");
while ($category = $q->fetch()) {
if (($position = array_search($category['id'], $sort)) !== false) {
$res_up->execute(Array($position, $category['id']));
}
}
$doc->ret('Вернуться', '?' . passgen());
header('Refresh: 1; url=?' . passgen());
exit;
}
$listing = new listing();
$q = $db->prepare("SELECT * FROM `rooms` WHERE `group_show` <= ? ORDER BY `position` ASC");
$q->execute(Array($user->group));
while ($category = $q->fetch()) {
$post = $listing->post();
$post->id = 'cid' . $category['id'];
$post->title = text::toValue($category['name']);
$post->icon('forum.category');
$post->post = text::for_opis($category['description']);
$post->action('up', '?id=' . $category['id'] . '&act=up');
$post->action('down', '?id=' . $category['id'] . '&act=down');
}
$listing->sortable = '?sortable';
$listing->display(__('Доступных Вам комнат нет'));
$doc->ret(__('Чат прихожая'), 'index.php');