nikolayv Опубликовано 2 августа, 2017 Жалоба Поделиться Опубликовано 2 августа, 2017 Привет! Подскажите, плз, как правильно вытянуть конечную категорию для отображения в админке в order.tpl.Очевидно, что надо добавить кусок кода с отображением категории в эту часть кода. foreach($purchases as &$purchase) { if(!empty($products[$purchase->product_id])) $purchase->product = $products[$purchase->product_id]; if(!empty($variants[$purchase->variant_id])) $purchase->variant = $variants[$purchase->variant_id]; $subtotal += $purchase->price*$purchase->amount; $purchases_count += $purchase->amount; } Не могу сообразить как именно добавить, чтобы можно было вытянуть название категории.Еще и бренд желательно. Заранее спасибо за помощь. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 2 августа, 2017 Жалоба Поделиться Опубликовано 2 августа, 2017 (изменено) смотрите тут http://forum.simplacms.ru/topic/6519-%D0%BA%D0%B0%D0%BA-%D0%B2-%D0%BA%D0%BE%D1%80%D0%B7%D0%B8%D0%BD%D0%B5-%D0%B2%D1%8B%D0%B2%D0%B5%D1%81%D1%82%D0%B8-%D0%B1%D1%80%D0%B5%D0%BD%D0%B4/ и тут http://forum.simplacms.ru/topic/2807-kategoriya-tovara-v-korzine/ Изменено 2 августа, 2017 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 2 августа, 2017 Автор Жалоба Поделиться Опубликовано 2 августа, 2017 Спасибо, но первый линк вообще пустой, во-втором немного наколеночное решение и не совсем то. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 2 августа, 2017 Жалоба Поделиться Опубликовано 2 августа, 2017 у меня открывает. и чем вам не подходит решение http://forum.simplacms.ru/topic/2807-kategoriya-tovara-v-korzine/?p=23999 там выбираются категории для всех товаров, дальше раскидываются по товарам. просто нужно правильно поменять для админки Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 2 августа, 2017 Автор Жалоба Поделиться Опубликовано 2 августа, 2017 $categories = $this->categories->get_product_categories($purchase->product_id); foreach($categories as &$category) { $cat = $this->categories->get_category((int)$category->category_id); $p_category->categories[] = $cat; } $purchase->product->category->name=$cat->name; решил так в итоге, топик можно закрывать в order.tpl вывожу {$purchase->product->category->name} Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 2 августа, 2017 Жалоба Поделиться Опубликовано 2 августа, 2017 (изменено) $categories = $this->categories->get_product_categories($purchase->product_id); foreach($categories as &$category) { $cat = $this->categories->get_category((int)$category->category_id); $p_category->categories[] = $cat; } $purchase->product->category->name=$cat->name; решил так в итоге, топик можно закрывать в order.tpl вывожу {$purchase->product->category->name} плохо что для каждого товара вызывается отдельно запрос в базу. 20 товаров = +20 запросов. по ссылке что я кинул реализовано лучше. в OrderAdmin.php ПЕРЕД $images = $this->products->get_images(array('product_id'=>$products_ids)); добавляете $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cs) { $cat = $this->categories->get_category((int)$cs->category_id); $products[$cs->product_id]->categories[] = $cat; } дальше используете как хотите массив категорий Изменено 2 августа, 2017 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
nikolayv Опубликовано 2 августа, 2017 Автор Жалоба Поделиться Опубликовано 2 августа, 2017 плохо что для каждого товара вызывается отдельно запрос в базу. 20 товаров = +20 запросов. по ссылке что я кинул реализовано лучше. в OrderAdmin.php ПЕРЕД $images = $this->products->get_images(array('product_id'=>$products_ids)); добавляете $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cs) { $cat = $this->categories->get_category((int)$cs->category_id); $products[$cs->product_id]->categories[] = $cat; } дальше используете как хотите массив категорий Да, спасибо! так гораздо лучше Цитата Ссылка на сообщение Поделиться на другие сайты
kislotnik Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 плохо что для каждого товара вызывается отдельно запрос в базу. 20 товаров = +20 запросов. по ссылке что я кинул реализовано лучше. в OrderAdmin.php ПЕРЕД $images = $this->products->get_images(array('product_id'=>$products_ids)); добавляете $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cs) { $cat = $this->categories->get_category((int)$cs->category_id); $products[$cs->product_id]->categories[] = $cat; } дальше используете как хотите массив категорийподскадите как вывести категорию категорию товара на странице всех заказов orders.tpl в order.tpl вывел Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 плохо что для каждого товара вызывается отдельно запрос в базу. 20 товаров = +20 запросов. по ссылке что я кинул реализовано лучше. в OrderAdmin.php ПЕРЕД $images = $this->products->get_images(array('product_id'=>$products_ids)); добавляете $categories = $this->categories->get_product_categories($products_ids); foreach($categories as $cs) { $cat = $this->categories->get_category((int)$cs->category_id); $products[$cs->product_id]->categories[] = $cat; } дальше используете как хотите массив категорий Самое глупое решение выполнить запрос к API прямо в цикле. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 Самое глупое решение выполнить запрос к API прямо в цикле. и в чем именно глупо мое решение? подскадите как вывести категорию категорию товара на странице всех заказов orders.tpl в order.tpl вывелнужно для каждого заказа выбирать сначала покукпки а потом уже категории Цитата Ссылка на сообщение Поделиться на другие сайты
kislotnik Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 и в чем именно глупо мое решение? нужно для каждого заказа выбирать сначала покукпки а потом уже категорииЕсли не трудно не могли бы подробнее описать? Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 и в чем именно глупо мое решение?Позор не знать чем плохо использовать запрос к БД прямо в цикле. Я сначала собираю массив идов, потом выбираю все данные одним запросом, а у тебя сколько интераций столько и запросов к БД. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 Позор не знать чем плохо использовать запрос к БД прямо в цикле.Я сначала собираю массив идов, потом выбираю все данные одним запросом, а у тебя сколько интераций столько и запросов к БД. позор не знать что get_category не делает запрос в базу Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 позор не знать что get_category не делает запрос в базуС воздуха берет категорию? Не пиши глупости. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 (изменено) С воздуха берет категорию? Не пиши глупости. посмотрите ф-ю а потом пишите или объяснить как работает init_categories Изменено 27 августа, 2017 пользователем mishanya Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 посмотрите ф-ю а потом пишите.Я и так симплу отлично знаю, доп. я посмотрел функцию и понимаю как она работает, а ты судя по всему нет. Твой "почерк" написания кода считается плохим тоном. Если тебе не понятно как работают категории в симпле то лучше вообще смени род деятельности. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 Я и так симплу отлично знаю, доп. я посмотрел функцию и понимаю как она работает, а ты судя по всему нет.Твой "почерк" написания кода считается плохим тоном.Если тебе не понятно как работают категории в симпле то лучше вообще смени род деятельности. видимо не понимаете раз считаете что каждый раз делается запрос в базу. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 видимо не понимаете раз считаете что каждый раз делается запрос в базу.Печально читать такое от спеца, ну что же советую начать с основ если ты не понимаешь как нужно писать код оптимально и правильно. Говнокод в большинстве случаев только создаст новых проблем. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 Печально читать такое от спеца, ну что же советую начать с основ если ты не понимаешь как нужно писать код оптимально и правильно.Говнокод в большинстве случаев только создаст новых проблем. так напишите как правильно а все тут посмотрят. и я так и не услышал делает ли в цикле каждый раз запрос в базу или нет. Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 так напишите как правильно а все тут посмотрят. и я так и не услышал делает ли в цикле каждый раз запрос в базу или нет.Функция инициализирует категории и да там идёт запрос к базе. Нет блин с воздуха берет категории само так сказать по магии. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 27 августа, 2017 Жалоба Поделиться Опубликовано 27 августа, 2017 это делается раз и только в случае если до этого небыло инициализации категорий, дальше все категории выбираются с локальной переменной и база не дергается так что не надо писать бред что делается каждый раз запрос в базу Цитата Ссылка на сообщение Поделиться на другие сайты
loxter Опубликовано 28 августа, 2017 Жалоба Поделиться Опубликовано 28 августа, 2017 Noxter в теме, наверное, поставил рекорд по количеству ляпов. Неполный список изобретений от Noxter-а: 1. Самое глупое решение выполнить запрос к API прямо в цикле. 2. Позор не знать чем плохо использовать запрос к БД прямо в цикле. 3. С воздуха берет категорию? Не пиши глупости. 4. Печально читать такое от спеца, ну что же советую начать с основ если ты не понимаешь как нужно писать код оптимально и правильно. Даже начинающий програмисты по ответам mishanya мог бы легко понять, что 1. Тут все зависит от деталей, в одних обстоятельствах это глупо, а в друхих - совсем наоборот. 2. Метод mishanya не использует циклические запросы к БД. 3. Категорию можно получать не только из запроса, но и другими методами. 4. Печально читать такие ляпы от форумного спеца с самым большим стажем. Которые к тому же обильно сдобрены грубостями и оскорблениями в адрес человека, предоставившего хорошее решение. Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.