star Опубликовано 10 января, 2017 Жалоба Поделиться Опубликовано 10 января, 2017 Если сортировать рекомендуемые или акционные в админке то сортировка работает, а как сделать сортировку новинок?Например в демо версии, телефон BlackBerry Bold 9900надо сделать последней загруженной новинкой, т. е. первый в списке товаров админки и первый в новинках на http://demo.simplacms.ru/ Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 10 января, 2017 Жалоба Поделиться Опубликовано 10 января, 2017 новинки в симпла берутся по дате добавления товара. вам нужно добавить новое поле в базу для товара, чтобы отмечать новинки как и рекомендуемые товары. плохо вы ищите http://forum.simplacms.ru/topic/2595-новинки-по-типу-рекомендуемых/?p=26651 Цитата Ссылка на сообщение Поделиться на другие сайты
star Опубликовано 18 января, 2017 Автор Жалоба Поделиться Опубликовано 18 января, 2017 для версии 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 Цитата Ссылка на сообщение Поделиться на другие сайты
star Опубликовано 18 января, 2017 Автор Жалоба Поделиться Опубликовано 18 января, 2017 и не надо никаких полей добавлять в базу Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 18 января, 2017 Жалоба Поделиться Опубликовано 18 января, 2017 и не надо никаких полей добавлять в базу ваша инструкция не завершенная. в api/Products.php как-то нужно еще обрабатывать ваш $params['news'] = 1; Цитата Ссылка на сообщение Поделиться на другие сайты
star Опубликовано 18 января, 2017 Автор Жалоба Поделиться Опубликовано 18 января, 2017 ваша инструкция не завершенная. в 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; не нужна Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 18 января, 2017 Жалоба Поделиться Опубликовано 18 января, 2017 честно так и не понял в чем прикол. вы могли и не делать еще один плагин, достаточно было сделать так {get_new_products var=new_products limit=3 sort='position'} но если у вас 4тыс товаров, не будете же вы каждый раз их таскать в верх списка, чтобы вывести как новинки. в таком случае лучше доп.поле Цитата Ссылка на сообщение Поделиться на другие сайты
star Опубликовано 18 января, 2017 Автор Жалоба Поделиться Опубликовано 18 января, 2017 честно так и не понял в чем прикол. вы могли и не делать еще один плагин, достаточно было сделать так {get_new_products var=new_products limit=3 sort='position'} но если у вас 4тыс товаров, не будете же вы каждый раз их таскать в верх списка, чтобы вывести как новинки. в таком случае лучше доп.полеприкол в том что это и есть ответ на вопрос по сортировке в админке Цитата Ссылка на сообщение Поделиться на другие сайты
star Опубликовано 18 января, 2017 Автор Жалоба Поделиться Опубликовано 18 января, 2017 новинки в симпла берутся по дате добавления товара. вам нужно добавить новое поле в базу для товара, чтобы отмечать новинки как и рекомендуемые товары. плохо вы ищите http://forum.simplacms.ru/topic/2595-новинки-по-типу-рекомендуемых/?p=26651получается что новинки от даты не зависят Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 18 января, 2017 Жалоба Поделиться Опубликовано 18 января, 2017 получается что новинки от даты не зависятСтандартно они как раз такие от даты и зависят. Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 18 января, 2017 Жалоба Поделиться Опубликовано 18 января, 2017 получается что новинки от даты не зависят зависят. просто если добавить sort='position' сортировка изменится. вместо сортировки по дате, станет сортировка по позициям. по это не до конца удобное решение Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.