Noxter Опубликовано 14 июля, 2017 Жалоба Поделиться Опубликовано 14 июля, 2017 Ужас как любопытно узнать подробности - кто пропустил, где пропустил, как надо правильно делать с break...И это пишет Корс гуру программирования допотопными средствами Читаем матчасть по циклам, как минимум сэкономит запросы к БД. Цитата Ссылка на сообщение Поделиться на другие сайты
ЯкЦинДрак Опубликовано 14 июля, 2017 Жалоба Поделиться Опубликовано 14 июля, 2017 Можете ТОЧНО сказать, где в указанном способе в коде "Пропустил break" ? Приведенный код создает ОДИН запрос к БД, Если знаете, как лучше или правильнее, сообщайте. Если не можете или не хотите сказать ТОЧНО по делу, просьба не писать вообще, чтоб не разводить флуд... Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 14 июля, 2017 Жалоба Поделиться Опубликовано 14 июля, 2017 Можете ТОЧНО сказать, где в указанном способе в коде "Пропустил break" ? Приведенный код создает ОДИН запрос к БД, Если знаете, как лучше или правильнее, сообщайте. Если не можете или не хотите сказать ТОЧНО по делу, просьба не писать вообще, чтоб не разводить флуд...Ну если его здесь нет:Пробуйте $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) if(!isset($products[$cat->product_id]->category)) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); Логично же что пропустил break. Цитата Ссылка на сообщение Поделиться на другие сайты
ЯкЦинДрак Опубликовано 14 июля, 2017 Жалоба Поделиться Опубликовано 14 июля, 2017 По моему, совсем не логично.Чтобы понять Вашу логику, я и прошу написать по-Вашему правильный вариант вместе с правильно вставленным break.В коде Simpla полным-полно подобных циклов, и никто на форуме, кажется, до сих пор не требовал навставлять там break-ов. Цитата Ссылка на сообщение Поделиться на другие сайты
C1ocks Опубликовано 9 ноября, 2018 Жалоба Поделиться Опубликовано 9 ноября, 2018 Пробуйте $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) if(!isset($products[$cat->product_id]->category)) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); Подскажите пожалуйста, почему выводится только одна категория? Другие категории этого товара не выводятся Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 9 ноября, 2018 Жалоба Поделиться Опубликовано 9 ноября, 2018 Подскажите пожалуйста, почему выводится только одна категория? Другие категории этого товара не выводятся Потому что задуман вывод только одной категории.Если надо выводить все, потребуется некоторое усложнение... Цитата Ссылка на сообщение Поделиться на другие сайты
mistika Опубликовано 10 декабря, 2019 Жалоба Поделиться Опубликовано 10 декабря, 2019 усложните уже кто-нибудь, я разрешаю) Как раз мне это надо Цитата Ссылка на сообщение Поделиться на другие сайты
Flexcore Опубликовано 10 декабря, 2019 Жалоба Поделиться Опубликовано 10 декабря, 2019 усложните уже кто-нибудь, я разрешаю) Как раз мне это надо Поясните Цитата Ссылка на сообщение Поделиться на другие сайты
shooroop Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 Поясните это значит напишите решение которое ее устроит и опубликуйте на сайт. Цитата Ссылка на сообщение Поделиться на другие сайты
Flexcore Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 это значит напишите решение которое ее устроит и опубликуйте на сайт.Да вы кэп! Цитата Ссылка на сообщение Поделиться на другие сайты
FDA Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 Пробуйте $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cat) if(!isset($products[$cat->product_id]->category)) $products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); Подскажите, а как можно данное решение использовать для вывода категории товара в yandex.php Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 По-разному можно использовать.Если готовы оплачивать, можно написать немаленькую статью с описанием нескольких способов...А если ждете ответ краткий, то можно данное решение использовать копированием-вставкой. Желательно при этом понимать смысл: что копируем, зачем, куда вставляем, почему именно туда, а не в десяток разных прочих мест и т.д. Цитата Ссылка на сообщение Поделиться на другие сайты
FDA Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 (изменено) По-разному можно использовать.Если готовы оплачивать, можно написать немаленькую статью с описанием нескольких способов... А если ждете ответ краткий, то можно данное решение использовать копированием-вставкой. Желательно при этом понимать смысл: что копируем, зачем, куда вставляем, почему именно туда, а не в десяток разных прочих мест и т.д.Я просто спросил совета. Мне не нужна "немаленькая статья".Вы же понимаете суть вопроса? Я и сам понимаю, что "Копированием и вставкой" тут не обойтись, но именно с yndex.php у меня не получается. Изменено 11 декабря, 2019 пользователем FDA Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 Я просто спросил совета. Мне не нужна "немаленькая статья".Вы же понимаете суть вопроса? Я и сам понимаю, что "Копированием и вставкой" тут не обойтись, но именно с yndex.php у меня не получается. Так стандартно же выводится название категории в yandex.php А у самого товара прописывается id этой категории как по правиламЕсли у вас своя какая-то наработка или выгрузка, то уточните правило вывода и какой тег должен выводить название внутри offer Цитата Ссылка на сообщение Поделиться на другие сайты
FDA Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 (изменено) Так стандартно же выводится название категории в yandex.php А у самого товара прописывается id этой категории как по правиламЕсли у вас своя какая-то наработка или выгрузка, то уточните правило вывода и какой тег должен выводить название внутри offer В этом-то вся и проблема, помимо id категории товара, надо чтобы прописывалось наименование категории которой принадлежит товар <typePrefix>Видеокамера</typePrefix> <model>Видеокамера ST-712 IP PRO D</model> Здесь <model> это как <name> (название товара)<typePrefix> это наименование категории к которой принадлежит товар Изменено 11 декабря, 2019 пользователем FDA Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 В этом-то вся и проблема, помимо id категории товара, надо чтобы прописывалось наименование категории которой принадлежит товар <typePrefix>Видеокамера</typePrefix> <model>Видеокамера ST-712 IP PRO D</model> Здесь <model> это как <name> (название товара)<typePrefix> это наименование категории к которой принадлежит товар Не понятно зачем вам решение которое тут применено? Тут у вас простой SQL запрос, где вы должны подтянуть название категории. Ну а дальше просто в теге где вам нужно выводите. Данное решение вам не зачем. Цитата Ссылка на сообщение Поделиться на другие сайты
FDA Опубликовано 11 декабря, 2019 Жалоба Поделиться Опубликовано 11 декабря, 2019 Не понятно зачем вам решение которое тут применено? Тут у вас простой SQL запрос, где вы должны подтянуть название категории. Ну а дальше просто в теге где вам нужно выводите. Данное решение вам не зачем.Наверное неправильно выразился. Мне нужно у товара вывести категорию к которой он принадлежит и сделать это надо в yandex.php Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 12 декабря, 2019 Жалоба Поделиться Опубликовано 12 декабря, 2019 Наверное неправильно выразился. Мне нужно у товара вывести категорию к которой он принадлежит и сделать это надо в yandex.php Очень неправильно выразился. Ибо неопределенно, расплывчато и непонятно.1. "у товара вывести категорию к которой он принадлежит" - это стандартно делается в виде<categoryId>".$p->category_id."</categoryId>2. Если надо непременно выводить и НАЗВАНИЕ категории, то надо говорить, как и что, в частности:2.1 в каком виде выводить - как минимум два варианта есть: Ботинки/Детские/Летние или просто Летние,2.2 название одной главной категории или и дополнительных категорий тоже.3. В зависимости от желаний 2.1 и 2.2 в реализации будут "большие разницы"... Цитата Ссылка на сообщение Поделиться на другие сайты
FDA Опубликовано 12 декабря, 2019 Жалоба Поделиться Опубликовано 12 декабря, 2019 Очень неправильно выразился. Ибо неопределенно, расплывчато и непонятно.1. "у товара вывести категорию к которой он принадлежит" - это стандартно делается в виде<categoryId>".$p->category_id."</categoryId>2. Если надо непременно выводить и НАЗВАНИЕ категории, то надо говорить, как и что, в частности:2.1 в каком виде выводить - как минимум два варианта есть: Ботинки/Детские/Летние или просто Летние,2.2 название одной главной категории или и дополнительных категорий тоже.3. В зависимости от желаний 2.1 и 2.2 в реализации будут "большие разницы"... Надо вывести именно НАЗВАНИЕ категории и именно ТОЛЬКО "Летние". Товар всегда относится только к одной категории (это наверняка тоже важно, чтобы не было вопросов что выводить если товар принадлежит нескольким категориям) Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 12 декабря, 2019 Жалоба Поделиться Опубликовано 12 декабря, 2019 В yandex.php уже есть выбор всех категорийНужно сформировать массив id => nameИ потом у каждого товара по его category_id выводить соответствующее имя из массива категорий Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 12 декабря, 2019 Жалоба Поделиться Опубликовано 12 декабря, 2019 В мето куда надо вставить <typePrefix>".$categories[$p->category_id]->name."</typePrefix> Цитата Ссылка на сообщение Поделиться на другие сайты
FDA Опубликовано 12 декабря, 2019 Жалоба Поделиться Опубликовано 12 декабря, 2019 В мето куда надо вставить <typePrefix>".$categories[$p->category_id]->name."</typePrefix> Спасибо огромное!!! Именно то что надо. Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 14 декабря, 2022 Жалоба Поделиться Опубликовано 14 декабря, 2022 (изменено) а как в карточке товара у связанных товарах вывести название категории? Изменено 14 декабря, 2022 пользователем get31 Цитата Ссылка на сообщение Поделиться на другие сайты
phukortsin Опубликовано 14 декабря, 2022 Жалоба Поделиться Опубликовано 14 декабря, 2022 По аналогии с тем как в начале темы советовал Виталий Анатольевич... Цитата Ссылка на сообщение Поделиться на другие сайты
get31 Опубликовано 14 декабря, 2022 Жалоба Поделиться Опубликовано 14 декабря, 2022 4 часа назад, phukortsin сказал: По аналогии с тем как в начале темы советовал Виталий Анатольевич... Делаю и чет ничего вставляю в ProductView.php $related_ids = array(); $related_products = array(); foreach($this->products->get_related_products($product->id) as $p) { $related_ids[] = $p->related_id; $related_products[$p->related_id] = null; } if(!empty($related_ids)) { foreach($this->products->get_products(array('id'=>$related_ids, 'in_stock'=>1, 'visible'=>1)) as $p) $related_products[$p->id] = $p; // ВЫВОДИМ КАТЕГОРИЮ $categories = $this->categories->get_product_categories($related_products); foreach($categories as $cat) $related_products[$cat->product_id]->category = $this->categories->get_category((int)$cat->category_id); // ВЫВОДИМ КАТЕГОРИЮ $related_products_images = $this->products->get_images(array('product_id'=>array_keys($related_products))); foreach($related_products_images as $related_product_image) if(isset($related_products[$related_product_image->product_id])) $related_products[$related_product_image->product_id]->images[] = $related_product_image; $related_products_variants = $this->variants->get_variants(array('product_id'=>array_keys($related_products), 'in_stock'=>1)); foreach($related_products_variants as $related_product_variant) { if(isset($related_products[$related_product_variant->product_id])) { $related_products[$related_product_variant->product_id]->variants[] = $related_product_variant; } } foreach($related_products as $id=>$r) { if(is_object($r)) { $r->image = &$r->images[0]; $r->variant = &$r->variants[0]; } else { unset($related_products[$id]); } } $this->design->assign('related_products', $related_products); } в шаблоне {$related_product->category->name} Подскажите плиз, где ошибка? Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.