возвращаемся к вопросу 2
в чем суть
в admin/model/extension/dashboard/map.php
if (is_array($this->config->get('config_complete_status'))) { foreach ($this->config->get('config_complete_status') as $order_status_id) { $implode[] = (int)$order_status_id;
у меня в настройках к "завершенным заказам" относятся несколько статусов: "Завершен", "Возмещен", … "Аннулирован"
и хотя Аннулирован имеет id=16, но начинается с буквы А - то в базе в параметре 'config_complete_status' он стоит первым!
config_complete_status ["16","8","11","5","7","9","17","10","14"]
судя по логике указанного выше кода:
- проверяется, что config_complete_status это действительно массив
- запускается цикл, который должен преобразовать символьные переменные массива config_complete_status в массив целых чисел $implode
после чего из базы делается выборка заказов по статусам из $implode
WHERE o.order_status_id IN('" . (int)implode(',', $implode) . "')
по ходу получается выборка только по первому элементу массива $implode!!!!
и вот тут мне уже непонятна логика: ЗАЧЕМ в запросе в базу данных стоит (int)implode ????????
вроде как $implode и так уже массив целых чисел, зачем его еще раз делать "челым числом"?
помогите разобраться в этой логике!
прочитал описание функции
implode — Объединяет элементы массива в строку
т.е. вот эта конструкция
(int)implode(',', $implode)
а) implode делает из массива целых чисел $implode строку через запятую
б) а потом эта строка превращается в целое число
бред какой-то вообще получается?