Перейти к содержанию
Официальный форум поддержки Simpla

Рекомендуемые сообщения

знатоки помогите,

 

как создать цикл в свойстах товара в файле 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>

это касается и других параметров, например для размера одежды, или цвета.

 

спасибо

 

Ссылка на сообщение
Поделиться на другие сайты

знатоки помогите,

 

как создать цикл в свойстах товара в файле 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
Ссылка на сообщение
Поделиться на другие сайты

 

В яндекс картинки выводятся не так, их все по очереди нужно передавать в теге <picture>

</picture>

да я не спрашивал про теги, это понятно,

вопрос просто технический, как вывести.

 

а знатоки которые хотят за две строчки кода еще и деньги - сегодня не ваш день...

Ссылка на сообщение
Поделиться на другие сайты

Насколько я понимаю, вам вот это нужно

 

 

$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к товарах сайт упадет...
Ссылка на сообщение
Поделиться на другие сайты

да я не спрашивал про теги, это понятно,

вопрос просто технический, как вывести.

 

а знатоки которые хотят за две строчки кода еще и деньги - сегодня не ваш день...

Там не 2, а как минимум 8, и-то не факт, что Вы их правильно примените.

Я не претендую на то чтобы Вы заказали. Просто и эти "2 строчки" надо в нужное место вставить.

P.S. если будет время - напишу инструкцию. А пока отдельным файлом.

Ссылка на сообщение
Поделиться на другие сайты

Почему упадет? Из-за ресайза? Да, могут быть проблемы при нарезке изображений первый раз, но Яндекс сейчас требует минимум 600 пикселей по меньшей стороне.

Конкретно в данном случае Вы для каждого товара делаете запрос за картинками. Если идти правильным путем, то надо выборать все картинки. И раскидать их по товарам, как это сделано в том же каталоге.

Плюс к этому (если опять же делать граммотно), надо исключить JOIN из основного запроса, чтобы не делать лишних телодвижений в MySQL. Ну и еще несколько моментов по мелочи.

Ваше решение да - рабочее, но оно не то что неоптимальное - оно губительное для данного скрипта, т.к. тут не 20-30 товаров, а весь каталог.

Ссылка на сообщение
Поделиться на другие сайты

 

Насколько я понимаю, вам вот это нужно

 

$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>";
    }
}

 

именно то что надо, спасибо

Ссылка на сообщение
Поделиться на другие сайты

подскажите как сделать выборку БРЕНДА

в коде запроса к базе, тут:

 

$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 ");

Ссылка на сообщение
Поделиться на другие сайты
$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 ");
Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...

Расписал свое решение - пользуйтесь http://simplashop.com/article/vse-foto-tovarov-v-yandexmarket

Может еще заинтересует и более раннее "произведение" - http://simplashop.com/article/vse-svojstva-v-yandexmarket

Ссылка на сообщение
Поделиться на другие сайты

Расписал свое решение - пользуйтесь http://simplashop.com/article/vse-foto-tovarov-v-yandexmarket

Может еще заинтересует и более раннее "произведение" - http://simplashop.com/article/vse-svojstva-v-yandexmarket

 

 

ссылки не работают

Ссылка на сообщение
Поделиться на другие сайты

спасибо, отлично работает,

 

подскажите еще как в этом запросе сделать выбор по 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 ");
Ссылка на сообщение
Поделиться на другие сайты

$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 ");


Ссылка на сообщение
Поделиться на другие сайты

что-то не так с выборкой,

с первой категорией все норм. но

выбирает все равно товары из других категорий,

только для других категорий не выводится

<categoryId>..</categoryId >
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...