Стол заказов

Стол заказов 1.1.0

Barbarossa178

Пользователь
Жалко, что мод не удалось доработать. Тут две вещи некорректно работают:
1) ЛС отправляется не тому, кто запросил заказ, а тому, кто его выполнил;
2) при первом повторном нажатии на голос, предупреждение появляется, при втором и последующем - не появляется и тем самым голоса накручиваются.

По поводу первого пункта есть соображения.
Речь идёт о вызове функции (в файле ajax/order.php):
PHP:
send_pm($user_id, $subject, $message, BOT_UID);
выше по коду первый параметр принимает значение id текущего юзера (кто выполнил заказ), поэтому и ЛС отправляется тому, кто выполнил. Я думаю, что надо ввести новую переменную, сохранив в неё значение из поля order_user_id таблицы bb_order по известному значению из поля order_id.

То есть, вызов функции send_pm скорее всего будет в две строки:
PHP:
$user_id_old = DB()->fetch_rowset('SELECT order_user_id FROM '. BB_ORDER .'  WHERE order_id = $id');
send_pm($user_id_old, $subject, $message, BOT_UID);

В синтаксисе не уверен. Может кто поправит?
Вот так будет работать как надо

PHP:
case 'yes':
    $id = (int) $this->request['id'];
    $topic_id = (int) $this->request['topic_id'];
    $user_id = $userdata['user_id'];
    if(!DB()->fetch_row("SELECT topic_id FROM ". BB_TOPICS ." WHERE topic_id = $topic_id LIMIT 1"))
    {
        $this->ajax_die('Данного топика не существует, укажите правильный ID топика !');
    }
    if(DB()->fetch_row("SELECT order_topic_id FROM ". BB_ORDER ." WHERE order_topic_id = $topic_id LIMIT 1"))
    {
        $this->ajax_die('Проверьте правильность ID топика, уже привязана раздача.');
    }
    $subject = 'Статус вашего заказа был изменен.';
    $message = 'Ваш заказ был выполнен. [url=http://'.$bb_cfg['server_name'].$bb_cfg['script_path']. TOPIC_URL .$topic_id.']Смотреть тут[/url]';
    $user_id_old = DB()->fetch_rowset('SELECT order_user_id FROM '. BB_ORDER .'  WHERE order_id = '.$id);
    send_pm($user_id_old[0]['order_user_id'], $subject, $message, BOT_UID);
    DB()->query("UPDATE ". BB_ORDER ." SET order_yes = 1, order_user_performed_id = $user_id, order_topic_id = $topic_id WHERE order_id = $id");
    $this->response['id'] = $id;
    $this->response['username'] = '<a href="'. PROFILE_URL . $user_id .'">'.$userdata['username'].'</a>';
    $this->response['html'] = '<a href="'. TOPIC_URL .$topic_id.'" />'.$lang['YES'].'</a>';
break;
 
Сверху