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

Сортировка списка товаров в админке


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

Если сортировать рекомендуемые или акционные в админке то сортировка работает, а как сделать сортировку новинок?

Например в демо версии, телефон BlackBerry Bold 9900

надо сделать последней загруженной новинкой, т. е. первый в списке товаров админки и первый в новинках на http://demo.simplacms.ru/

 

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

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

 

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

 

плохо вы ищите http://forum.simplacms.ru/topic/2595-новинки-по-типу-рекомендуемых/?p=26651

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

для версии 2.3.6 сделал так

1. в файле view/View.php добавляем:

			// Настраиваем плагины для смарти

                        $this->design->smarty->registerPlugin("function", "get_news",                   array($this, 'get_news_plugin'));

и ниже

	/**
	 *
	 * Плагины для смарти
	 *
	 */	

		
    public function get_news_plugin($params, &$smarty)
    {
        if(!isset($params['visible']))
            $params['visible'] = 1;
            $params['news'] = 1;
		if(!empty($params['var']))
		{
			foreach($this->products->get_products($params) as $p)
				$products[$p->id] = $p;

			if(!empty($products))
			{
				// id выбраных товаров
				$products_ids = array_keys($products);
		
				// Выбираем варианты товаров
				$variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));
				
				// Для каждого варианта
				foreach($variants as &$variant)
				{
					// добавляем вариант в соответствующий товар
					$products[$variant->product_id]->variants[] = $variant;
				}
				
				// Выбираем изображения товаров
				$images = $this->products->get_images(array('product_id'=>$products_ids));
				foreach($images as $image)
					$products[$image->product_id]->images[] = $image;
	
				foreach($products as &$product)
				{
					if(isset($product->variants[0]))
						$product->variant = $product->variants[0];
					if(isset($product->images[0]))
						$product->image = $product->images[0];
				}				
			}

			$smarty->assign($params['var'], $products);
			
		}
	}

2. в файле main.tpl делаем вывод:

{* Новинки *}
{get_new_products var=new_products limit=3}
{if $new_products}

меняем на

{* Новинки *}
{get_news var=new_products limit=3}
{if $new_products}

После станет возможным сортировка с сохранением позиций в админке http://demo.simplacms.ru/simpla/index.php?module=ProductsAdmin

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

и не надо никаких полей добавлять в базу

 

ваша инструкция не завершенная. в api/Products.php как-то нужно еще обрабатывать ваш $params['news'] = 1;

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

ваша инструкция не завершенная. в api/Products.php как-то нужно еще обрабатывать ваш $params['news'] = 1;

Согласен.  тогда так

	/**
	 *
	 * Плагины для смарти
	 *
	 */	

		
    public function get_news_plugin($params, &$smarty)
    {
        if(!isset($params['visible']))
            $params['visible'] = 1;
		if(!empty($params['var']))
		{
			foreach($this->products->get_products($params) as $p)
				$products[$p->id] = $p;

			if(!empty($products))
			{
				// id выбраных товаров
				$products_ids = array_keys($products);
		
				// Выбираем варианты товаров
				$variants = $this->variants->get_variants(array('product_id'=>$products_ids, 'in_stock'=>true));
				
				// Для каждого варианта
				foreach($variants as &$variant)
				{
					// добавляем вариант в соответствующий товар
					$products[$variant->product_id]->variants[] = $variant;
				}
				
				// Выбираем изображения товаров
				$images = $this->products->get_images(array('product_id'=>$products_ids));
				foreach($images as $image)
					$products[$image->product_id]->images[] = $image;
	
				foreach($products as &$product)
				{
					if(isset($product->variants[0]))
						$product->variant = $product->variants[0];
					if(isset($product->images[0]))
						$product->image = $product->images[0];
				}				
			}

			$smarty->assign($params['var'], $products);
			
		}
	}

строка $params['news'] = 1; не нужна

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

честно так и не понял в чем прикол. вы могли и не делать еще один плагин, достаточно было сделать так 

 

{get_new_products var=new_products limit=3 sort='position'}

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

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

честно так и не понял в чем прикол. вы могли и не делать еще один плагин, достаточно было сделать так 

 

{get_new_products var=new_products limit=3 sort='position'}

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

прикол в том что это и есть ответ на вопрос по сортировке в админке

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

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

 

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

 

плохо вы ищите http://forum.simplacms.ru/topic/2595-новинки-по-типу-рекомендуемых/?p=26651

получается что новинки от даты не зависят

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

получается что новинки от даты не зависят

 

зависят. просто если добавить sort='position' сортировка изменится. вместо сортировки по дате, станет сортировка по позициям. по это не до конца удобное решение

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

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

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

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

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

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

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

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

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

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