astarot12 0 Опубликовано 23 мая, 2018 Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 23 мая, 2018 В 23.05.2018 в 08:41, astarot12 сказал: Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 А по теме отписаться?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 23 мая, 2018 В 23.05.2018 в 09:01, astarot12 сказал: А по теме отписаться?) Смотри какие он поля проверяет, когда выводит это сообщение и правь. А вообще люди сам скрипт ждали, когда ты скинешь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SteveDogs 1082 Опубликовано 23 мая, 2018 В 23.05.2018 в 08:41, astarot12 сказал: Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов! Скрипт в студию Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 Вот) ShopController.php Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 23 мая, 2018 (изменено) В 23.05.2018 в 11:18, astarot12 сказал: Вот) ShopController.phpFetching info... Не в этом файле нужно искать ошибку. Тут всё правильно. Нужно найти что вызывает функцию actionBuy($category_link) и какие данные передает и откуда их берет. Скорее всего это JS - Ajax. // Предметы не выбраны if(!isset($_POST['items']) || !is_array($_POST['items']) || count($_POST['items']) < 1) { user()->setFlash(FlashConst::MESSAGE_ERROR, Yii::t('main', 'Выберите предметы.')); $this->redirectBack(); } До данного кода не дошли выбранные итемы, поэтому и кидает ошибку. Изменено 23 мая, 2018 пользователем Aslan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 Возможно этот файлик category.php Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 23 мая, 2018 (изменено) В 23.05.2018 в 12:58, astarot12 сказал: Возможно этот файлик category.phpFetching info... Не. В поиск по содержимому во всех файлах CMS введи actionBuy и скрин результата. Скорее всего оно будет в .js файле, но может быть и .php Изменено 23 мая, 2018 пользователем Aslan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 В 23.05.2018 в 13:01, Aslan сказал: Не. В поиск по содержимому во всех файлах CMS введи actionBuy и скрин результата. Скорее всего оно будет в .js файле, но может быть и .php Странно, но не нашло ничего... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 Объясню немного поподробнее: имеется два файла "category.php", оба с разных версий ЦМС (5.0.15 и 5.0.16). Вставляю на сайт файл из версии 5.0.16: Как мы видим, все работает. НО присутствует поле ввода количества покупаемого товара. Это для меня не желательно. Вставляем с заменой другой файл category.php, из версии 5.0.15, обновляем, смотрим... Как видим, поле ввода кол-ва товара исчезло и количество составляет столько, сколько я выставил в админке. НО после покупки появляется это самое сообщение "Выберите предметы". Как я понимаю, решение надо искать именно в этом файле (category.php), но возможно я не прав. Кто может, прошу помочь в решении) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
masone 298 Опубликовано 23 мая, 2018 Почему нельзя убрать поле инпут в оригинальном файле? Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 Если убираю инпут, тогда не отображается количество и покупать тоже не хочет. Пишет Выберите Предметы. Вот куски кода из разных файлов №1 <td><input type="count" name="items[<?php echo $ii ?>][count]" value="<?php echo $item->count ?>" class="form-control"></td> №2 <td><?php echo number_format($item->count, 0, '', '.') ?></td> Пробовал разные свистопляски с кодом, но все мои танцы с бубном не дали результата. Прошу помочь кто может) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 На всякий случай выложу оба файла, может кто сможет пошаманить) category15.phpFetching info... category16.phpFetching info... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 24 мая, 2018 (изменено) В 23.05.2018 в 14:15, astarot12 сказал: Странно, но не нашло ничего... ок, тут запилили раковым способом... так просто поиском не найти. Изменено 24 мая, 2018 пользователем Aslan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 24 мая, 2018 (изменено) foreach ($_POST['items'] as $item) { //if(!isset($item['id']) || !isset($item['count'])) if (!isset($item['id'])) { continue; } //$items[(int) $item['id']] = (int) $item['count']; $items[(int) $item['id']] = 1; } В 16 версии замени: <td><input type="text" name="items[<?php echo $ii ?>][count]" value="<?php echo $item->count ?>" class="form-control"></td> на <td><?php echo number_format($item->count, 0, '', '.') ?></td> Изменено 24 мая, 2018 пользователем Aslan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 24 мая, 2018 В 24.05.2018 в 06:09, Aslan сказал: В 16 версии замени: <td><input type="text" name="items[<?php echo $ii ?>][count]" value="<?php echo $item->count ?>" class="form-control"></td> на <td><?php echo number_format($item->count, 0, '', '.') ?></td> Пробовал заменять, не катит. Проблема решилась банальным добавлением куска кода, и заменой input type="text" на input type="hidden". Получилось не так красиво, но зато работает. Всем спасибо за советы и подсказки) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 24 мая, 2018 (изменено) В 24.05.2018 в 06:43, astarot12 сказал: Пробовал заменять, не катит. Проблема решилась банальным добавлением куска кода, и заменой input type="text" на input type="hidden". Получилось не так красиво, но зато работает. Всем спасибо за советы и подсказки) Ты не пробовал в ShopController.php заменить: foreach ($_POST['items'] as $item) { if (!isset($item['id']) || !isset($item['count'])) { continue; } $items[(int) $item['id']] = (int) $item['count']; } на foreach ($_POST['items'] as $item) { //if(!isset($item['id']) || !isset($item['count'])) if (!isset($item['id'])) { continue; } //$items[(int) $item['id']] = (int) $item['count']; $items[(int) $item['id']] = 1; } Поэтому и не работало) input type="hidden" я могу в любой момент вернуть и менять себе кол-во. В данном случае конечно не критично, но если всё в cms будешь таким способом исправлять, то дыры тебе обеспечены, нужно все таки понимать как работает и зачем. Изменено 24 мая, 2018 пользователем Aslan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты