mart Posted September 24, 2011 Report Share Posted September 24, 2011 Отдельная страница по отображению всех брендов.Наконец-то опробовал новую архитектуру в действии. Кому интересно - http://blog.rlstudio.com/2011/09/simpla-2-0-vse-brendy/ Quote Link to post Share on other sites
yastranger Posted March 22, 2012 Report Share Posted March 22, 2012 очень интересно, и полезно пользователям, сможете скинуть? yastranger@ya.ru спасибо Quote Link to post Share on other sites
mart Posted March 22, 2012 Author Report Share Posted March 22, 2012 По ссытке пройдите и сможете скачать. Quote Link to post Share on other sites
yastranger Posted March 22, 2012 Report Share Posted March 22, 2012 ааа всё, сорри, вначале не открывалась ссылка. спс Quote Link to post Share on other sites
Sudba Posted March 22, 2012 Report Share Posted March 22, 2012 Для версии 2.1.0 не подходит! Quote Link to post Share on other sites
aqaholding Posted February 11, 2014 Report Share Posted February 11, 2014 Да верно потому как инструкция не полная, точнее косячная. Итак по пунктам:Правим контроллер api/Brands.php:Добавляем свою функцию, которая генерирует бренды: (я вставил после функции public function delete_image($brand_id)) public function get_rand_brands($count = 2) { $brands = array(); $category_id_filter = ''; // Выбираем все бренды $query = $this->db->placehold("SELECT id, name, url, meta_title, meta_keywords, meta_description, description, image FROM __brands WHERE 1 ORDER BY RAND() LIMIT $count"); $this->db->query($query); return $this->db->results(); } Далее в файле view/IndexView.php сразу после function fetch() { вставляем: $brandni = $this->brands->get_rand_brands(15); $this->design->assign('brandni', $brandni); get_rand_brands(15) - 15 это число брендов выведенных в блоке. Теперь в шаблоне design/{ваш_шаблон}/index.tpl вместо полного списка брендов, будет выводить случайный набор:В любом месте шаблона вставьте: <h2>Производители</h2> <div class="catalog_menu"> <ul> {foreach $brandni as $brandss} <!-- Бренд --> <li> <!-- Фото бренда --> {if $brandss->image} <div><a href="brands/{$brandss->url}"><img src="./files/brands/{$brandss->image}" alt="{$brandss->name|escape}"/></a></div> {else} <!-- Фото бренда (The End) --> <!-- Название бренда --> <h3><a href="brands/{$brandss->url}">{$brandss->name|escape}</a></h3> <!-- Название бренда (The End) --> {/if} <!-- Бренд (The End)--> {/foreach} </ul> <hr> <b><center><a href="brands/">Все бренды</a><center></b> </div> Добавим с .htaccess перекидку на новый модуль — сразу после RewriteRule ^products/?$ index.php?module=ProductsView [L,QSA] Вставляем: RewriteRule ^brands/?$ index.php?module=BrandsView [L,QSA] Создаем файл подготовки данных view/BrandsView.php, который формирует данные для страницы брендов. <?PHP require_once('View.php'); class BrandsView extends View { function fetch() { // Выбираем товар из базы $this->design->assign('meta_title', 'Все производители'); $this->design->assign('meta_keywords', 'Все производители'); $this->design->assign('meta_description', 'Все производители'); $brands = $this->brands->get_brands(); $this->design->assign('brands', $brands); return $this->design->fetch('brands.tpl'); } } И теперь делаем вывод всего этого в новый шаблон design/{ваш_шаблон}/brands.tpl (этот файл нужно создать) {if $brands} <!-- Список брендов --> <ul> {foreach $brands as $brand} <!-- Бренд --> <li> <!-- Фото бренда --> {if $brand->image} <div><a href="brands/{$brand->url}"><img src="./files/brands/{$brand->image}" alt="{$brand->name|escape}"/></a></div> {/if} <!-- Фото бренда (The End) --> <!-- Название бренда --> <h3><a href="brands/{$brand->url}">{$brand->name|escape}</a></h3> <!-- Название бренда (The End) --> </li> <!-- Бренд (The End)--> {/foreach} </ul> <!-- Список брендов (The End)--> {else} Бренды не найдены<br /><br /> {/if} Вот и все работает! Пример http://s.intimdolgopa.ru Quote Link to post Share on other sites
mart Posted February 11, 2014 Author Report Share Posted February 11, 2014 А в чем косячность, если не секрет? Из тех 20 с "копейками" человек, которые за более чем 2 года (как была написана статья) писали мне - особых проблем не было. Только по верстке в основном спрашивали. Скажите, что Вы переписали и в каких версиях тестировали - я поправлю статью.P.S. Извините, что я не предусмотрел в 2012 году функционал последующих версий Симплы и писаль только под версию 2.1.3 (на тот момент). Quote Link to post Share on other sites
aqaholding Posted February 11, 2014 Report Share Posted February 11, 2014 У многих мог не работать вывод брендов в блоге, из-за того, что вы передаете массив, а выводите ссылку из объекта.Тут необходимо было использовать цикл: {foreach $brandni as $brandss} <!-- Бренд --> <li> <!-- Фото бренда --> {if $brandss->image} <div><a href="brands/{$brandss->url}"><img src="./files/brands/{$brandss->image}" alt="{$brandss->name|escape}"/></a></div> {else} <!-- Фото бренда (The End) --> <!-- Название бренда --> <h3><a href="brands/{$brandss->url}">{$brandss->name|escape}</a></h3> <!-- Название бренда (The End) --> {/if} <!-- Бренд (The End)--> {/foreach} А так все замечательно. Quote Link to post Share on other sites
aqaholding Posted February 11, 2014 Report Share Posted February 11, 2014 Я просто решил ответить на тему без ответа Quote Link to post Share on other sites
mart Posted February 11, 2014 Author Report Share Posted February 11, 2014 Понял К сожалению всего не учтешь... А насчет необходимости замены переменных - даже в стандартном шаблоне в некоторых местах есть загвоздка, например, связанные товары в карточке - одна и та же переменная $product. Quote Link to post Share on other sites
aqaholding Posted February 12, 2014 Report Share Posted February 12, 2014 Понял К сожалению всего не учтешь... А насчет необходимости замены переменных - даже в стандартном шаблоне в некоторых местах есть загвоздка, например, связанные товары в карточке - одна и та же переменная $product.Да мне пришлось некоторые переменные переназначить Quote Link to post Share on other sites
testus Posted December 21, 2015 Report Share Posted December 21, 2015 Если тема еще не мертва подскажите пожалуйста как в таком ключе сделать вывод товаров каждого бренда отдельно по аналогии c products / product и можно ли вытащить сначала категории товаров к которым принадлежат товары данного бренда? Quote Link to post Share on other sites
Kosjak76 Posted December 21, 2015 Report Share Posted December 21, 2015 В Симпле есть по умолчанию вывод товаров бренда:http://demo.simplacms.ru/brands/blackberryhttp://demo.simplacms.ru/brands/samsungПо поводу категорий бренда - есть решение на форуме, используйте поиск. Quote Link to post Share on other sites
adeiit Posted January 1, 2016 Report Share Posted January 1, 2016 Да верно потому как инструкция не полная, точнее косячная. Итак по пунктам:Правим контроллер api/Brands.php:Добавляем свою функцию, которая генерирует бренды: (я вставил после функции public function delete_image($brand_id)) public function get_rand_brands($count = 2) { $brands = array(); $category_id_filter = ''; // Выбираем все бренды $query = $this->db->placehold("SELECT id, name, url, meta_title, meta_keywords, meta_description, description, image FROM __brands WHERE 1 ORDER BY RAND() LIMIT $count"); $this->db->query($query); return $this->db->results(); } Далее в файле view/IndexView.php сразу после function fetch() { вставляем: $brandni = $this->brands->get_rand_brands(15); $this->design->assign('brandni', $brandni); get_rand_brands(15) - 15 это число брендов выведенных в блоке. Теперь в шаблоне design/{ваш_шаблон}/index.tpl вместо полного списка брендов, будет выводить случайный набор:В любом месте шаблона вставьте: <h2>Производители</h2> <div class="catalog_menu"> <ul> {foreach $brandni as $brandss} <!-- Бренд --> <li> <!-- Фото бренда --> {if $brandss->image} <div><a href="brands/{$brandss->url}"><img src="./files/brands/{$brandss->image}" alt="{$brandss->name|escape}"/></a></div> {else} <!-- Фото бренда (The End) --> <!-- Название бренда --> <h3><a href="brands/{$brandss->url}">{$brandss->name|escape}</a></h3> <!-- Название бренда (The End) --> {/if} <!-- Бренд (The End)--> {/foreach} </ul> <hr> <b><center><a href="brands/">Все бренды</a><center></b> </div> Добавим с .htaccess перекидку на новый модуль — сразу после RewriteRule ^products/?$ index.php?module=ProductsView [L,QSA] Вставляем: RewriteRule ^brands/?$ index.php?module=BrandsView [L,QSA] Создаем файл подготовки данных view/BrandsView.php, который формирует данные для страницы брендов. <?PHP require_once('View.php'); class BrandsView extends View { function fetch() { // Выбираем товар из базы $this->design->assign('meta_title', 'Все производители'); $this->design->assign('meta_keywords', 'Все производители'); $this->design->assign('meta_description', 'Все производители'); $brands = $this->brands->get_brands(); $this->design->assign('brands', $brands); return $this->design->fetch('brands.tpl'); } } И теперь делаем вывод всего этого в новый шаблон design/{ваш_шаблон}/brands.tpl (этот файл нужно создать) {if $brands} <!-- Список брендов --> <ul> {foreach $brands as $brand} <!-- Бренд --> <li> <!-- Фото бренда --> {if $brand->image} <div><a href="brands/{$brand->url}"><img src="./files/brands/{$brand->image}" alt="{$brand->name|escape}"/></a></div> {/if} <!-- Фото бренда (The End) --> <!-- Название бренда --> <h3><a href="brands/{$brand->url}">{$brand->name|escape}</a></h3> <!-- Название бренда (The End) --> </li> <!-- Бренд (The End)--> {/foreach} </ul> <!-- Список брендов (The End)--> {else} Бренды не найдены<br /><br /> {/if} Вот и все работает! Пример http://s.intimdolgopa.ru делал всё как вы говорили, но после изменения файла brands.php симпла выдала ошибку, Parse error: syntax error, unexpected T_PUBLIC in Z:\home\lec\www\api\Brands.php on line 132 Quote Link to post Share on other sites
Kors Posted January 1, 2016 Report Share Posted January 1, 2016 Возможно, вставили в api/Brands.php в неверное место. Надо вставлять по аналогии с другими функциями (перед заключительной фигурной скобкой). Quote Link to post Share on other sites
LiveWizard Posted January 4, 2016 Report Share Posted January 4, 2016 У меня работает, но я использовал обычный список брендов для вывода всех, вместо: $brandni = $this->brands->get_rand_brands(15); $this->design->assign('brandni', $brandni); 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.