komsit 2 Опубликовано 8 декабря, 2018 Жалоба Share Опубликовано 8 декабря, 2018 Доброго дня! Подскажите, как на карточке товара вывести товары из категории в которой они находятся. В интернете нашел руководство. http://webdesignseo.ru/kopilka-webmastera/vamshop/выводим-список-товаров-категории-в-ка.html Открываем файл includes/modules/product_info.php Ищём в нём строку $info->assign('PRODUCTS_MODEL', $product->data['products_model']); После неё, вставляем такой код: $query = "SELECT * FROM ".TABLE_PRODUCTS." as p "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) "; $query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') and (p.manufacturers_id='".$product->data['manufacturers_id']."') "; $query .= "ORDER BY p.products_sort;"; $xproducts_query = vamDBquery($query); $rows = 0; $cols = 0; while ($xproducts_data = vam_db_fetch_array($xproducts_query, true)){ $xproducts_list .= "<li class="also"><a href=".vam_href_link('' .$xproducts_data["><img title="" .$xproducts_data["products_name"]."" src="images/product_images/thumbnail_images/".$xproducts_data["products_image"]."" alt="" .$xproducts_data["products_name"]."" width="" height="" border="0" /></a>".$vamPrice->Format($xproducts_data["products_price"], true)."</li>"; Далее открываем файл нашей темы оформления tema_oformleniya/modules/product_info/product_info_v1.html И в нужном нам месте файла, вставляем метку: {$XPRODUCTS_LIST} Вношу необходимые изменения, Как сейчас выглядит на карточке товара вкладка "Модели серии" https://komsit.ru/anapa/split-sistema-ballu-bse-07hn1.html в итоге у меня выводится картинка и цена, а нужно реализовать вывод Картинки, Названия, Краткого описания, цены. (примерно как выводится товар в категории) И желательно все оформить в определенном стиле вывода, как вывод товаров в категории. Подскажите, где можно взять код, может из categories_listing, чтобы вывести на карточку товара в нужном стиле? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 декабря, 2018 Жалоба Share Опубликовано 8 декабря, 2018 В 08.12.2018 в 15:53, komsit сказал: Доброго дня! Подскажите, как на карточке товара вывести товары из категории в которой они находятся. Expand В общем-то, sql запрос на все данные есть в приведённом Вами примере. т.е. что б выводить описание, надо добавить $xproducts_data["products_short_description"] , что б цену - $xproducts_data["products_price"] Всё это добавлять в последней строке: $xproducts_list .= ... Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 8 декабря, 2018 Автор Жалоба Share Опубликовано 8 декабря, 2018 А как это оформить в определенный стиль? Прописать стили в product_info.PHP файле? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 декабря, 2018 Жалоба Share Опубликовано 8 декабря, 2018 В 08.12.2018 в 16:49, komsit сказал: А как это оформить в определенный стиль? Прописать стили в product_info.PHP файле? Expand В таком виде как написан код - не получится, тут не используется шаблон. т.е. нужно прямо внутри переменой $xproducts_list писать html-код. Лучше тогда использовать какой-то существующий модуль. Можно попробовать в шаблон карточки товара /templates/шаблон/module/product_info/product_info_v1.html добавить метку: {$MODULE_upcoming_products} Затем открыть /includes/modules/upcoming_products.php и поменять sql запрос на Ваш, что выше, т.е. поменять код: $expected_query = vamDBquery("select p.products_id, pd.products_name, products_date_available as date_expected from ".TABLE_PRODUCTS." p, ".TABLE_PRODUCTS_DESCRIPTION." pd where to_days(products_date_available) >= to_days(now()) and p.products_id = pd.products_id ".$group_check." ".$fsk_lock." and pd.language_id = '".(int) $_SESSION['languages_id']."' order by ".EXPECTED_PRODUCTS_FIELD." ".EXPECTED_PRODUCTS_SORT." limit ".MAX_DISPLAY_UPCOMING_PRODUCTS); на: $query = "SELECT * FROM ".TABLE_PRODUCTS." as p "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) "; $query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) "; $query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') and (p.manufacturers_id='".$product->data['manufacturers_id']."') "; $query .= "ORDER BY p.products_sort;"; $expected_query = vamDBquery($query); и уже затем править внешний вид в шаблоне /templates/шаблон/module/upcoming_products.html Вот тут уже легко сделать любой внешний вид. К примеру, можно просто взять и скопировать внешний вид новинок, т.е. скопировать содержимое /templates/шаблон/module/new_products_default.html и этот шаблон upcoming_products.html Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 8 декабря, 2018 Автор Жалоба Share Опубликовано 8 декабря, 2018 upcoming_products.php это вроде ожидаемые товары. Он практически не используется, так что идеально для этого подойдет. Спасибо, буду пробовать! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 декабря, 2018 Жалоба Share Опубликовано 8 декабря, 2018 В 08.12.2018 в 17:05, komsit сказал: upcoming_products.php это вроде ожидаемые товары. Он практически не используется, так что идеально для этого подойдет. Спасибо, буду пробовать! Expand Да, ожидамемые товары. Пробуйте, я сам этот вариант не пробовал, но, по идее, должно сработать. Если что, пишите. Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 8 декабря, 2018 Автор Жалоба Share Опубликовано 8 декабря, 2018 К сожалению возникает какая то ошибка и страничка совсем не грузится. 08/12/2018 21:12:36 | 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 | SELECT * FROM products as p LEFT JOIN products_description as pd ON (p.products_id = pd.products_id) LEFT JOIN products_to_categories as ptc ON (p.products_id = ptc.products_id) WHERE (ptc.categories_id = '0') and (p.products_status = '1') and (p.manufacturers_id='') ORDER BY p.products_sort; | /anapa/ Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 декабря, 2018 Жалоба Share Опубликовано 8 декабря, 2018 В 08.12.2018 в 17:59, komsit сказал: К сожалению возникает какая то ошибка и страничка совсем не грузится. 08/12/2018 21:12:36 | 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 | SELECT * FROM products as p LEFT JOIN products_description as pd ON (p.products_id = pd.products_id) LEFT JOIN products_to_categories as ptc ON (p.products_id = ptc.products_id) WHERE (ptc.categories_id = '0') and (p.products_status = '1') and (p.manufacturers_id='') ORDER BY p.products_sort; | /anapa/ Expand --- Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 8 декабря, 2018 Жалоба Share Опубликовано 8 декабря, 2018 В 08.12.2018 в 17:59, komsit сказал: К сожалению возникает какая то ошибка и страничка совсем не грузится. Expand Нет, немного не то написал выше. Сделайте так. В /includes/modules/upcoming_products.php внизу поменяйте: $default->assign('MODULE_upcoming_products', $module); на: $info->assign('MODULE_upcoming_products', $module); В /includes/modules/product_info.php после: include (DIR_WS_MODULES.'product_reviews.php'); добавьте: include (DIR_WS_MODULES.'upcoming_products.php'); Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 9 декабря, 2018 Автор Жалоба Share Опубликовано 9 декабря, 2018 Ошибка базы данных ушла, но сайт все равно не грузится. Что то ему видимо не нравится в текущем коде. То что в product_info.php прекрасно работало, напрочь отказывается работать в upcoming_products.php Перестает грузиться после того, как $xproducts_query = vamDBquery($query); меняется на $expected_query = vamDBquery($query); Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 декабря, 2018 Жалоба Share Опубликовано 9 декабря, 2018 В 09.12.2018 в 07:06, komsit сказал: Ошибка базы данных ушла, но сайт все равно не грузится. Что то ему видимо не нравится в текущем коде. То что в product_info.php прекрасно работало, напрочь отказывается работать в upcoming_products.php Перестает грузиться после того, как $xproducts_query = vamDBquery($query); меняется на $expected_query = vamDBquery($query); Expand Вы сделали как я написал в последнем сообщении?! Подключили в product_info.php ?! $default поменяли на $info внизу upcoming_products.php !? Не грузилась страница карточки товара если не поменять как раз этот код. Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 9 декабря, 2018 Автор Жалоба Share Опубликовано 9 декабря, 2018 Да, все верно. В /includes/modules/upcoming_products.php внизу поменяйте: $default->assign('MODULE_upcoming_products', $module); на: $info->assign('MODULE_upcoming_products', $module); В /includes/modules/product_info.php после: include (DIR_WS_MODULES.'product_reviews.php'); добавьте: include (DIR_WS_MODULES.'upcoming_products.php'); Проделал данные операции. Не загрузилась не только карточка товара, но и весь сайт. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 9 декабря, 2018 Жалоба Share Опубликовано 9 декабря, 2018 В 09.12.2018 в 08:02, komsit сказал: Не загрузилась не только карточка товара, но и весь сайт. Expand Возможно, правка upcoming_products.php сломала сам сайт, потому что по умолчанию этот блок для главной страницы. Попробуйте ещё в /includes/center_modules.php поменять: require(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS); на: //require(DIR_WS_MODULES . FILENAME_UPCOMING_PRODUCTS); Если не заработает, присылайте в личку ссылку на магазин, доступ на ftp. Попробую на месте поправить, так быстрее наверное будет, чем наугад делать. Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 14 декабря, 2018 Автор Жалоба Share Опубликовано 14 декабря, 2018 Все получилось, спасибо. Но согласно списку разрешенных меток, upcoming выводит только название товара, дату поступления и ссылку на товар. Попытки добавить картинку, цену не увенчались успехом(. Но это уже ближе к тому что нужно. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 декабря, 2018 Жалоба Share Опубликовано 14 декабря, 2018 В 14.12.2018 в 10:56, komsit сказал: Все получилось, спасибо. Но согласно списку разрешенных меток, upcoming выводит только название товара, дату поступления и ссылку на товар. Попытки добавить картинку, цену не увенчались успехом(. Но это уже ближе к тому что нужно. Expand Нет, Вы ж sql запрос заменили на свой?! У Вас в запросе select * т.е. у Вас должны быть доступны все данные. Используйте products_image для картинки, products_price для цены. Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 2 января, 2019 Автор Жалоба Share Опубликовано 2 января, 2019 Вроде разобрался, нужно в файле upcoming_products.php после строчек if (vam_db_num_rows($expected_query,true) > 0) { $row = 0; while ($expected = vam_db_fetch_array($expected_query,true)) { $row ++; $module_content[] = array ('PRODUCTS_LINK' => vam_href_link(FILENAME_PRODUCT_INFO, vam_product_link($expected['products_id'], $expected['products_name'])), 'PRODUCTS_NAME' => $expected['products_name'], 'PRODUCTS_DATE' => vam_date_short($expected['date_expected'])); } Вставить $row = 0; $module_content = array (); $expected_query = vamDBquery($query); while ($query = vam_db_fetch_array($expected_query, true)) { $module_content[] = $product->buildDataArray($query); } И только в этом случае начинает выводится картинка и цена (До этого выводилось только название товара ссылкой) Но краткое описание ({$products_data.PRODUCTS_SHORT_DESCRIPTION}) так и не вывелось. Буду дальше копать. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 января, 2019 Жалоба Share Опубликовано 2 января, 2019 В 02.01.2019 в 07:41, komsit сказал: Но краткое описание ({$products_data.PRODUCTS_SHORT_DESCRIPTION}) так и не вывелось. Буду дальше копать. Expand В sql запрос $ query добавьте в select ... pd.products_short_description Ссылка на сообщение Поделиться на другие сайты
komsit 2 Опубликовано 2 января, 2019 Автор Жалоба Share Опубликовано 2 января, 2019 Огромное спасибо! Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 2 января, 2019 Жалоба Share Опубликовано 2 января, 2019 В 02.01.2019 в 07:57, komsit сказал: Огромное спасибо! Expand Не за что, надеюсь, что разобрались. Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения