Jump to content

Recommended Posts

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

			
			}		

 

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

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

 

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

Link to post
Share on other sites

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

Link to post
Share on other sites
$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}  

Link to post
Share on other sites

 

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

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

Edited by mishanya
Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites
  • 4 weeks later...

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

Link to post
Share on other sites

плохо что для каждого товара вызывается отдельно запрос в базу. 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 прямо в цикле.
Link to post
Share on other sites

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

 

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

 

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

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

Link to post
Share on other sites

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

 

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

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

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

 

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

Edited by mishanya
Link to post
Share on other sites

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

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

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

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

Link to post
Share on other sites

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

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

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

 

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

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

 

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

Link to post
Share on other sites

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

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

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

Link to post
Share on other sites

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

Link to post
Share on other sites

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

 

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

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

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

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

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

 

 

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

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

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

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

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

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...