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

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

Привет! Подскажите, плз, как правильно вытянуть конечную категорию для отображения в админке в 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;		

			
			}		

 

Не могу сообразить как именно добавить, чтобы можно было вытянуть название категории.

Еще и бренд желательно. 

 

Заранее спасибо за помощь. 

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

Спасибо, но первый линк вообще пустой, во-втором немного наколеночное решение и не совсем то. 

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

у меня открывает. и чем вам не подходит решение http://forum.simplacms.ru/topic/2807-kategoriya-tovara-v-korzine/?p=23999 там выбираются категории для всех товаров, дальше раскидываются по товарам. просто нужно правильно поменять для админки

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

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

 

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

дальше используете как хотите массив категорий

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

плохо что для каждого товара вызывается отдельно запрос в базу. 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;
}

дальше используете как хотите массив категорий

 

Да, спасибо! так гораздо лучше

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

плохо что для каждого товара вызывается отдельно запрос в базу. 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 вывел

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

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

Самое глупое решение выполнить запрос к API прямо в цикле.

 

и в чем именно глупо мое решение?

 

подскадите как вывести категорию категорию товара на странице всех заказов orders.tpl в order.tpl вывел

нужно для каждого заказа выбирать сначала покукпки а потом уже категории

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

и в чем именно глупо мое решение?

 

нужно для каждого заказа выбирать сначала покукпки а потом уже категории

Если не трудно не могли бы подробнее описать?

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

и в чем именно глупо мое решение?

Позор не знать чем плохо использовать запрос к БД прямо в цикле.

Я сначала собираю массив идов, потом выбираю все данные одним запросом, а у тебя сколько интераций столько и запросов к БД.

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

Позор не знать чем плохо использовать запрос к БД прямо в цикле.

Я сначала собираю массив идов, потом выбираю все данные одним запросом, а у тебя сколько интераций столько и запросов к БД.

 

позор не знать что get_category не делает запрос в базу

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

С воздуха берет категорию? Не пиши глупости.

 

посмотрите ф-ю а потом пишите или объяснить как работает init_categories

Изменено пользователем mishanya
Ссылка на сообщение
Поделиться на другие сайты

посмотрите ф-ю а потом пишите.

Я и так симплу отлично знаю, доп. я посмотрел функцию и понимаю как она работает, а ты судя по всему нет.

Твой "почерк" написания кода считается плохим тоном.

Если тебе не понятно как работают категории в симпле то лучше вообще смени род деятельности.

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

Я и так симплу отлично знаю, доп. я посмотрел функцию и понимаю как она работает, а ты судя по всему нет.

Твой "почерк" написания кода считается плохим тоном.

Если тебе не понятно как работают категории в симпле то лучше вообще смени род деятельности.

 

видимо не понимаете раз считаете что каждый раз делается запрос в базу.

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

видимо не понимаете раз считаете что каждый раз делается запрос в базу.

Печально читать такое от спеца, ну что же советую начать с основ если ты не понимаешь как нужно писать код оптимально и правильно.

Говнокод в большинстве случаев только создаст новых проблем.

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

Печально читать такое от спеца, ну что же советую начать с основ если ты не понимаешь как нужно писать код оптимально и правильно.

Говнокод в большинстве случаев только создаст новых проблем.

 

так напишите как правильно а все тут посмотрят. и я так и не услышал делает ли в цикле каждый раз запрос в базу или нет.

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

так напишите как правильно а все тут посмотрят. и я так и не услышал делает ли в цикле каждый раз запрос в базу или нет.

Функция инициализирует категории и да там идёт запрос к базе.

Нет блин с воздуха берет категории само так сказать по магии.

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

это делается раз и только в случае если до этого небыло инициализации категорий, дальше все категории выбираются с локальной переменной и база не дергается так что не надо писать бред что делается каждый раз запрос в базу

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

Noxter в теме, наверное, поставил рекорд по количеству ляпов.

 

Неполный список изобретений от Noxter-а:

1. Самое глупое решение выполнить запрос к API прямо в цикле.

2. Позор не знать чем плохо использовать запрос к БД прямо в цикле.

3. С воздуха берет категорию? Не пиши глупости.

4. Печально читать такое от спеца, ну что же советую начать с основ если ты не понимаешь как нужно писать код оптимально и правильно.

 

 

Даже начинающий програмисты по ответам mishanya мог бы легко понять, что

1. Тут все зависит от деталей, в одних обстоятельствах это глупо, а в друхих - совсем наоборот.

2. Метод mishanya не использует циклические запросы к БД.

3. Категорию можно получать не только из запроса, но и другими методами.

4. Печально читать такие ляпы от форумного спеца с самым большим стажем. Которые к тому же обильно сдобрены грубостями и оскорблениями в адрес человека, предоставившего хорошее решение.

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

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

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

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

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

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

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

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

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

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