Slavik911 Posted November 15, 2012 Report Share Posted November 15, 2012 Как сделать еще одну галочку по типу рекомендуемых товаров? То есть отмечаем как в рекомендуемых и отмеченные товары выводятся на сайте в нужной позиции? Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Последовательность приблизительно такая:1. В базе данных в таблице товаров создается поле по аналогии с рекомендуемыми.2. В шаблоне ПРОДУКТС в админке создается чекбокс с уникальным именем.3. В файле ПродуктсАдмин.пхп этот чекбокс отслеживается и сохраняется.4. В файле Продуктс.пхп в папке АПИ в 2х первых функциях это поле выбирается и отправляеться в шаблон.Дальше - уже смотря на то, что от этой галочки требуеться... Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 что-то не то в вашей рекомендации, сделал по аналогии с рекомендуемыми в имеющихся файлах - не работает Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Что именно не работает? И как это вообще должно работать? "и отмеченные товары выводятся на сайте в нужной позиции?" - это что?Если вывод на Главной отдельным списком, то для этого нужен фильтр (аналогично рекомендуемым) и специальный плагин + шаблон...Пока мы только выделили товары и передали свойство в шаблон. Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 да, нужно аналог рекомендуемых, принцип работы как рекомендуемых Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 чекбокс сделать удалось, но при его нажатии отмечается сразу 2 звездочки (картинку взял как у рекомендуемых) Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Каких звездочек? Где отмечается? Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 в админке в списке товаров - звездочка рекомендуемый... Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Кусок кода, выводящий звездочки - в студию... Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 {foreach $products as $product} <div class="{if !$product->visible}invisible{/if} {if $product->featured}featured{/if} row"> <input type="hidden" name="positions[{$product->id}]" value="{$product->position}"> <div class="move cell"><div class="move_zone"></div></div> <div class="checkbox cell"> <input type="checkbox" name="check[]" value="{$product->id}"/> </div> <div class="image cell"> {$image = $product->images|@first} {if $image} <a href="{url module=ProductAdmin id=$product->id return=$smarty.server.REQUEST_URI}"><img src="{$image->filename|escape|resize:35:35}" /></a> {/if} </div> <div class="name product_name cell"> <div class="variants"> <ul> {foreach $product->variants as $variant} <li {if !$variant@first}class="variant" style="display:none;"{/if}> <i title="{$variant->name|escape}">{$variant->name|escape|truncate:30:'…':true:true}</i> <input class="price {if $variant->compare_price>0}compare_price{/if}" type="text" name="price[{$variant->id}]" value="{$variant->price}" {if $variant->compare_price>0}title="Старая цена — {$variant->compare_price} {$currency->sign}"{/if} />{$currency->sign} <input class="stock" type="text" name="stock[{$variant->id}]" value="{if $variant->infinity}?{else}{$variant->stock}{/if}" />{$settings->units} </li> {/foreach} </ul> {$variants_num = $product->variants|count} {if $variants_num>1} <div class="expand_variant"> <a class="dash_link expand_variant" href="#">{$variants_num} {$variants_num|plural:'вариант':'вариатов':'варианта'} ?</a> <a class="dash_link roll_up_variant" style="display:none;" href="#">{$variants_num} {$variants_num|plural:'вариант':'вариатов':'варианта'} ?</a> </div> {/if} </div> <a href="{url module=ProductAdmin id=$product->id return=$smarty.server.REQUEST_URI}">{$product->name|escape}</a> </div> <div class="icons cell"> <a class="preview" title="Предосмотр в новом окне" href="../products/{$product->url}" target="_blank"></a> <a class="enable" title="Активен" href="#"></a> <a class="featured" title="Рекомендуемый" href="#"></a> <a class="featured" title="Рекомендуемый2" href="#"></a> <a class="duplicate" title="Дублировать" href="#"></a> <a class="delete" title="Удалить" href="#"></a> </div> <div class="clear"></div> </div> {/foreach} Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Что здесь написано? 2 раза class="featured"... Будет 2 звыездочки... ВОТ ЭТО НИКАК не связано ни с чем, кроме Рекомендованных...Обратите внимание на строкуdiv class="{if !$product->visible}invisible{/if} {if $product->featured}featured{/if} row"Здесь есть ваш класс или проверка на ваше поле? Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 да, проверил через страницу товара - отмечается корректно по-отдельности, скорее всего проблема именно в стилях. Но при попытке вставить вывод "рекомендуемых2" в main.tpl - выскакиевает ошибка:Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "/var/www/data/www/xxx.com.ua//design/default_2/html/main.tpl" on line 87 "{get_featured2_products var=featured2_products}" unknown tag "get_featured2_products"' in /var/www/data/www/xxx.com.ua/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php:431 Stack trace: #0 /var/www/data/www/xxx.com.ua/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php(253): Smarty_Internal_TemplateCompilerBase->trigger_template_error('unknown tag "ge...', 87) #1 /var/www/data/www/xxx.com.ua/Smarty/libs/sysplugins/smarty_internal_templateparser.php(2319): Smarty_Internal_TemplateCompilerBase->compileTag('get_featured2_p...', Array) #2 /var/www/data/www/xxx.com.ua/Smarty/libs/sysplugins/smarty_internal_templateparser.php(2812): Smarty_Internal_Templateparser->yy_r35() #3 /var/www/data/www/xxx.com.ua/Smarty/libs/sysplugins/smarty_inte in /var/www/data/www/xxx.com.ua/Smarty/libs/sysplugins/smarty_internal_templatecompilerbase.php on line 431 Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 Вставлял таким кодом в main.tpl:{* Рекомендуемые товары *}{get_featured2_products var=featured2_products}{if $featured2_products}<!-- Список товаров--><h1>Самое интересное</h1><ul class="tiny_products"> {foreach $featured2_products as $product} <!-- Товар--> <li class="product"> <!-- Фото товара --> {if $product->image} <div class="image"> <a href="products/{$product->url}"><img src="{$product->image->filename|resize:400:400}" alt="{$product->name|escape}"/></a> </div> {/if} <!-- Фото товара (The End) --> <!-- Название товара --> <h3><a data-product="{$product->id}" href="products/{$product->url}">{$product->name|escape}</a></h3> <!-- Название товара (The End) --> <!-- Описание товара --> <div class="annotation">{$product->annotation}</div> <!-- Описание товара (The End) --> </li> <!-- Товар (The End)--> {/foreach} </ul>{/if} Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Если вывод на Главной отдельным списком, то для этого нужен фильтр (аналогично рекомендуемым) и специальный плагин + шаблон...Если вы думаете, что програмисты - нахлебники, просто выкачивающие деньги, то вы очень ошибаетесь... Любое изменение в движке, даже таком простом, как Симпла, это много работы...Если кто-то дает вам что-то бесплатно - говорите спасибо... Лично я обычно решения в 3 строки никогда не продаю, но с другой стороны тратить свое время на обьяснения человеку, который не может или не хочет думать - значит не уважать себя... Если вы сделали все до этого момента, то НЕМНОГО приложив мозги сделаете и все остальное...Без обид, но если вы хотите разобраться, то надо думать... А если нужна просто халява... Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 спасибо! Quote Link to post Share on other sites
Slavik911 Posted November 15, 2012 Author Report Share Posted November 15, 2012 Вы были правы! Разобрался, спасибо еще раз! Quote Link to post Share on other sites
Kosjak76 Posted November 15, 2012 Report Share Posted November 15, 2012 Вот, я надеюсь, что следующий раз вы сперва подумаете, потом еще раз подумаете, а потом будете задавать будете вопрос, на который будет приятно отвечать...Я стараюсь всегда отвечать на взрослые, взвешенные и обдуманные вопросы))) Quote Link to post Share on other sites
Slavik911 Posted November 16, 2012 Author Report Share Posted November 16, 2012 я смотрю вас серьезно зацепило) Quote Link to post Share on other sites
Nikolas Posted January 12, 2016 Report Share Posted January 12, 2016 Последовательность приблизительно такая:1. В базе данных в таблице товаров создается поле по аналогии с рекомендуемыми.2. В шаблоне ПРОДУКТС в админке создается чекбокс с уникальным именем.3. В файле ПродуктсАдмин.пхп этот чекбокс отслеживается и сохраняется.4. В файле Продуктс.пхп в папке АПИ в 2х первых функциях это поле выбирается и отправляеться в шаблон.Дальше - уже смотря на то, что от этой галочки требуеться... Сдедал по аналогии - а галочка в чекбоксе не сохраняется!Можете помочь? Quote Link to post Share on other sites
Kosjak76 Posted January 12, 2016 Report Share Posted January 12, 2016 Надо эту галочку еще выбрать в АПИ/Продуктс.пхп Quote Link to post Share on other sites
Nikolas Posted January 12, 2016 Report Share Posted January 12, 2016 (edited) Надо эту галочку еще выбрать в АПИ/Продуктс.пхпСделал по аналогии с featured Здесь - public function get_products($filter = array())Здесь - public function count_products($filter = array())Здесь - public function get_product($id) Edited January 12, 2016 by Nikolas Quote Link to post Share on other sites
Kors Posted January 12, 2016 Report Share Posted January 12, 2016 Инструкция, которой пользуетесь:1. очень старая,2. написана небрежно,3. содержит очевидные ошибки. Например, в ней вообще не упоминается файл simpla/ProductAdmin.php. Скорее всего, потому у Вас и не работает... Quote Link to post Share on other sites
Nikolas Posted January 12, 2016 Report Share Posted January 12, 2016 Инструкция, которой пользуетесь:1. очень старая,2. написана небрежно,3. содержит очевидные ошибки. Например, в ней вообще не упоминается файл simpla/ProductAdmin.php. Скорее всего, потому у Вас и не работает... Да, все ок. Спасибо! Quote Link to post Share on other sites
villain1988 Posted April 2, 2016 Report Share Posted April 2, 2016 (edited) Народ, помогите реализовать. Может не в тему..Требуется создать Рекомендуемые товары2 (featured_new), аналог рекомендуемым товарам, которые также можно отмечать в админке с последующим выводом на сайте вместе с Новинками, акционными и рекомендуемыми.Что сделал:1. Создал дополнительное поле featured_new в БД в таблице s_products2. В файле ProductsAdmin.php добавил аналогично featured // Текущий фильтр if($f = $this->request->get('filter', 'string')) { if($f == 'featured') { $filter['featured'] = 1; } elseif($f == 'featured_new') { $filter['featured_new'] = 1; И ниже этого же файла case 'set_featured': { $this->products->update_product($ids, array('featured'=>1)); break; } case 'unset_featured': { $this->products->update_product($ids, array('featured'=>0)); break; } case 'set_featured_new': { $this->products->update_product($ids, array('featured_new'=>1)); break; } case 'unset_featured_new': { $this->products->update_product($ids, array('featured_new'=>0)); break; } 3. В шаблоне админки products.tpl добавил иконку и отредактировал стили <a class="featured_new" title="Новинки" href="#"></a> 4. Далее в api/Products.phpДобавил $is_featured_filter = ''; $is_featured_new_filter = ''; добавил еще if(isset($filter['featured'])) { $is_featured_filter = $this->db->placehold('AND p.featured=?', intval($filter['featured'])); } if(isset($filter['featured_new'])) { $is_featured_new_filter = $this->db->placehold('AND p.featured_new=?', intval($filter['featured_new'])); } ниже p.featured, p.featured_new, 5. Делаю вывод на сайте {* Рекомендуемые товары *} {get_featured_new_products var=featured_new_products limit=10} {if $featured_new_products} <div class="border-b-1-info p-y-1"> <div class="container"> {* Заголовок блока *} <div class="h1 m-b-1"> <span data-language="{$translate_id['main_recommended_products']}">{$lang->main_recommended_products}</span> </div> <div class="row"> {foreach $featured_new_products as $product} <div class="col-md-4 col-xl-3"> {include "tiny_products.tpl"} </div> {if $product@iteration % 3 == 0}<div class="col-xs-12 hidden-sm-down hidden-md-up"></div>{/if} {/foreach} </div> </div> </div> {/if} {* @END Рекомендуемые товары *} 6. api/ProductAdmin.php $product->featured = $this->request->post('featured'); $product->featured_new = $this->request->post('featured_new'); Но вся конструкция не работает.Помогите что-то упустил или сделал не так? Edited April 2, 2016 by villain1988 Quote Link to post Share on other sites
Kosjak76 Posted April 2, 2016 Report Share Posted April 2, 2016 {get_featured_new_products var=featured_new_products limit=10}Вы плагин для Смарти get_featured_new_products реализовали?В принципе можно сделать так:{get_new_products var=featured_new_products sort='position' featured_new=1 limit=10} Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.