astarot12 0 Опубликовано 23 мая, 2018 Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Edgar 356 Опубликовано 23 мая, 2018 8 минут назад, astarot12 сказал: Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 А по теме отписаться?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
zGosu 396 Опубликовано 23 мая, 2018 1 час назад, astarot12 сказал: А по теме отписаться?) Смотри какие он поля проверяет, когда выводит это сообщение и правь. А вообще люди сам скрипт ждали, когда ты скинешь. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
SteveDogs 1077 Опубликовано 23 мая, 2018 1 час назад, astarot12 сказал: Здравствуйте! Ищу человека, который смог бы подправить небольшой php скрипт ghtweb 5. Проблема в магазине на сайте. Когда выбираю предмет и жму "Купить", мне пишет "Выберите предметы", как будто я их не выбрал. Некоторые файлы личного кабинета взяты из версии ghtweb 5.0.15, а контроллеры покупки из версии 5.0.16, из-за этого данный трабл. Сама версия 5.0.15 была мной утеряна, так что взять контроллеры из нее я не могу. Жду ответов! Скрипт в студию Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 Вот) ShopController.php Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 23 мая, 2018 (изменено) 1 час назад, astarot12 сказал: Вот) ShopController.php Не в этом файле нужно искать ошибку. Тут всё правильно. Нужно найти что вызывает функцию 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 (изменено) 3 минуты назад, astarot12 сказал: Возможно этот файлик category.php Не. В поиск по содержимому во всех файлах CMS введи actionBuy и скрин результата. Скорее всего оно будет в .js файле, но может быть и .php Изменено 23 мая, 2018 пользователем Aslan Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
astarot12 0 Опубликовано 23 мая, 2018 1 час назад, 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.php category16.php Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Aslan 131 Опубликовано 24 мая, 2018 (изменено) 16 часов назад, 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 27 минут назад, 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 (изменено) 13 минут назад, 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 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты