antex Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 знатоки помогите, как создать цикл в свойстах товара в файле yandex.phpэто нужно например для вывода нескольких картинок товара,т.е. если у меня больше одного изображения, в итоге должно получится так: <param name="images"> <image id="1">http://best.seller.ru/img/device12345_2.jpg</image> <image id="2">http://best.seller.ru/img/device12345_3.jpg</image> <image id="3">http://best.seller.ru/img/device12345_4.jpg</image> </param> это касается и других параметров, например для размера одежды, или цвета. спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 http://simpla-tuning.com/products/market-vygruzka---vse-kartinki-tovara Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 знатоки помогите, как создать цикл в свойстах товара в файле yandex.phpэто нужно например для вывода нескольких картинок товара,т.е. если у меня больше одного изображения, в итоге должно получится так:<param name="images"> <image id="1">http://best.seller.ru/img/device12345_2.jpg</image> <image id="2">http://best.seller.ru/img/device12345_3.jpg</image> <image id="3">http://best.seller.ru/img/device12345_4.jpg</image> </param> это касается и других параметров, например для размера одежды, или цвета. спасибо http://www.simplashop.com/products/vse-kartinki-v-yandexmarket Цитата Ссылка на сообщение Поделиться на другие сайты
antex Опубликовано 1 октября, 2014 Автор Жалоба Поделиться Опубликовано 1 октября, 2014 В яндекс картинки выводятся не так, их все по очереди нужно передавать в теге <picture>http://demo.simplacms.ru/files/products/iphone4s-white.200x200.jpeg?2dc59fdcc1374518bcd3f46f32bb7c19</picture>да я не спрашивал про теги, это понятно,вопрос просто технический, как вывести. а знатоки которые хотят за две строчки кода еще и деньги - сегодня не ваш день... Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 Насколько я понимаю, вам вот это нужно $p_images = $simpla->products->get_images(array('product_id' => $p->product_id)); if(!empty($p_images)) { foreach($p_images as $img) { print "<picture>".$simpla->design->resize_modifier($img->filename, 800, 600)."</picture>"; } } Только при 2к товарах сайт упадет... Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 да я не спрашивал про теги, это понятно, вопрос просто технический, как вывести. а знатоки которые хотят за две строчки кода еще и деньги - сегодня не ваш день...Там не 2, а как минимум 8, и-то не факт, что Вы их правильно примените. Я не претендую на то чтобы Вы заказали. Просто и эти "2 строчки" надо в нужное место вставить. P.S. если будет время - напишу инструкцию. А пока отдельным файлом. Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 1 октября, 2014 Жалоба Поделиться Опубликовано 1 октября, 2014 Почему упадет? Из-за ресайза? Да, могут быть проблемы при нарезке изображений первый раз, но Яндекс сейчас требует минимум 600 пикселей по меньшей стороне.Конкретно в данном случае Вы для каждого товара делаете запрос за картинками. Если идти правильным путем, то надо выборать все картинки. И раскидать их по товарам, как это сделано в том же каталоге. Плюс к этому (если опять же делать граммотно), надо исключить JOIN из основного запроса, чтобы не делать лишних телодвижений в MySQL. Ну и еще несколько моментов по мелочи. Ваше решение да - рабочее, но оно не то что неоптимальное - оно губительное для данного скрипта, т.к. тут не 20-30 товаров, а весь каталог. Цитата Ссылка на сообщение Поделиться на другие сайты
antex Опубликовано 1 октября, 2014 Автор Жалоба Поделиться Опубликовано 1 октября, 2014 Насколько я понимаю, вам вот это нужно $p_images = $simpla->products->get_images(array('product_id' => $p->product_id)); if(!empty($p_images)) { foreach($p_images as $img) { print "<picture>".$simpla->design->resize_modifier($img->filename, 800, 600)."</picture>"; } } именно то что надо, спасибо Цитата Ссылка на сообщение Поделиться на другие сайты
antex Опубликовано 7 октября, 2014 Автор Жалоба Поделиться Опубликовано 7 октября, 2014 подскажите как сделать выборку БРЕНДАв коде запроса к базе, тут: $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, p.body, pc.category_id, i.filename as image FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY p.id ORDER BY p.id, v.position "); Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 7 октября, 2014 Жалоба Поделиться Опубликовано 7 октября, 2014 $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, p.body, pc.category_id, i.filename as image, b.id, b.name FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) LEFT JOIN __brands b ON p.brand_id = b.id WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY p.id ORDER BY p.id, v.position "); Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 15 октября, 2014 Жалоба Поделиться Опубликовано 15 октября, 2014 Расписал свое решение - пользуйтесь http://simplashop.com/article/vse-foto-tovarov-v-yandexmarket Может еще заинтересует и более раннее "произведение" - http://simplashop.com/article/vse-svojstva-v-yandexmarket Цитата Ссылка на сообщение Поделиться на другие сайты
antex Опубликовано 19 октября, 2014 Автор Жалоба Поделиться Опубликовано 19 октября, 2014 Расписал свое решение - пользуйтесь http://simplashop.com/article/vse-foto-tovarov-v-yandexmarket Может еще заинтересует и более раннее "произведение" - http://simplashop.com/article/vse-svojstva-v-yandexmarket ссылки не работают Цитата Ссылка на сообщение Поделиться на другие сайты
mart Опубликовано 19 октября, 2014 Жалоба Поделиться Опубликовано 19 октября, 2014 ссылки не работаютТочки добавил редактор Поправил исходные ссылки. Цитата Ссылка на сообщение Поделиться на другие сайты
antex Опубликовано 22 октября, 2014 Автор Жалоба Поделиться Опубликовано 22 октября, 2014 спасибо, отлично работает, подскажите еще как в этом запросе сделать выбор по ID категории, например я хочу выбрать товар где categoryID=1 $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, p.body, pc.category_id, i.filename as image, b.id, b.name FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) LEFT JOIN __brands b ON p.brand_id = b.id WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY p.id ORDER BY p.id, v.position "); Цитата Ссылка на сообщение Поделиться на другие сайты
Kors Опубликовано 22 октября, 2014 Жалоба Поделиться Опубликовано 22 октября, 2014 $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, p.body, pc.category_id, i.filename as image, b.id, b.name FROM __variants v LEFT JOIN __products p ON v.product_id=p.id LEFT JOIN __products_categories pc ON pc.category_id=1 AND p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1) LEFT JOIN __brands b ON p.brand_id = b.id WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY p.id ORDER BY p.id, v.position "); Цитата Ссылка на сообщение Поделиться на другие сайты
antex Опубликовано 22 октября, 2014 Автор Жалоба Поделиться Опубликовано 22 октября, 2014 что-то не так с выборкой,с первой категорией все норм. новыбирает все равно товары из других категорий,только для других категорий не выводится<categoryId>..</categoryId > Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.