nitrol Опубликовано 16 декабря, 2014 Жалоба Поделиться Опубликовано 16 декабря, 2014 Намедни задался целью сделать второй блок с категориями (не повторяющийся), например чтобы определенные категории выводились не в основном блоке, а в футере/правым сайдбаром или где еще. Для начала нам нужно сделать чекбокс в админке, чтобы сортировать категории для другого блокаSQL запрос ALTER TABLE `s_categories` ADD `cat_2` TINYINT( 1 ) NOT NULL AFTER `visible`; Файл simpla/CategoryAdmin.php после строки $category->visible = $this->request->post('visible', 'boolean'); добавляем $category->cat_2 = $this->request->post('cat_2', 'boolean'); Файл api/Categories.php (примерно 186 строка) вместо $query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.position FROM __categories c ORDER BY c.parent_id, c.position"); вставляем (добавляем c.cat_2 после c.visible) $query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.cat_2, c.position FROM __categories c ORDER BY c.parent_id, c.position"); Файл simpla/design/html/category.tpl находим код (~155 строка) <input name=visible value='1' type="checkbox" id="active_checkbox" {if $category->visible}checked{/if}/> <label for="active_checkbox">Активна</label> после нее вставляем код <input name=cat_2 value='1' type="checkbox" id="cat_2_checkbox" {if $category->cat_2}checked{/if}/> <label for="cat_2_checkbox">2й блок</label> "2й блок" меняйте на Ваше усмотрение Идете в Ваш шаблон, в index.tpl находите функцию вывода категорий <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} </div> <!-- Меню каталога (The End)--> Меняете ее на <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} {* Делаем вывод категорий БЕЗ галки "2й блок" *} {if $c->cat_2} {else} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree categories=$c->subcategories} </li> {/if} {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} </div> <!-- Меню каталога (The End)--> Вставляем в место где будет вывод наших отсортированных категорий <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree_two} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} {* Делаем вывод категорий С галкой "2й блок" *} {if $c->cat_2} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree_two categories=$c->subcategories} </li> {else} {/if} {/if} {/foreach} </ul> {/if} {/function} {categories_tree_two categories=$categories} </div> <!-- Меню каталога (The End)--> За помощь дополнительная благодарность ув. тов. Kors и Kosjak76 Цитата Ссылка на сообщение Поделиться на другие сайты
satelit8 Опубликовано 4 февраля, 2015 Жалоба Поделиться Опубликовано 4 февраля, 2015 Намедни задался целью сделать второй блок с категориями (не повторяющийся), например чтобы определенные категории выводились не в основном блоке, а в футере/правым сайдбаром или где еще. Для начала нам нужно сделать чекбокс в админке, чтобы сортировать категории для другого блокаSQL запрос ALTER TABLE `s_categories` ADD `cat_2` TINYINT( 1 ) NOT NULL AFTER `visible`; Файл simpla/CategoryAdmin.php после строки $category->visible = $this->request->post('visible', 'boolean'); добавляем $category->cat_2 = $this->request->post('cat_2', 'boolean'); Файл api/Categories.php (примерно 186 строка) вместо $query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.position FROM __categories c ORDER BY c.parent_id, c.position"); вставляем (добавляем c.cat_2 после c.visible) $query = $this->db->placehold("SELECT c.id, c.parent_id, c.name, c.description, c.url, c.meta_title, c.meta_keywords, c.meta_description, c.image, c.visible, c.cat_2, c.position FROM __categories c ORDER BY c.parent_id, c.position"); Файл simpla/design/html/category.tpl находим код (~155 строка) <input name=visible value='1' type="checkbox" id="active_checkbox" {if $category->visible}checked{/if}/> <label for="active_checkbox">Активна</label> после нее вставляем код <input name=cat_2 value='1' type="checkbox" id="cat_2_checkbox" {if $category->cat_2}checked{/if}/> <label for="cat_2_checkbox">2й блок</label> "2й блок" меняйте на Ваше усмотрение Идете в Ваш шаблон, в index.tpl находите функцию вывода категорий <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree categories=$c->subcategories} </li> {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} </div> <!-- Меню каталога (The End)--> Меняете ее на <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} {* Делаем вывод категорий БЕЗ галки "2й блок" *} {if $c->cat_2} {else} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree categories=$c->subcategories} </li> {/if} {/if} {/foreach} </ul> {/if} {/function} {categories_tree categories=$categories} </div> <!-- Меню каталога (The End)--> Вставляем в место где будет вывод наших отсортированных категорий <!-- Меню каталога --> <div id="catalog_menu"> {* Рекурсивная функция вывода дерева категорий *} {function name=categories_tree_two} {if $categories} <ul> {foreach $categories as $c} {* Показываем только видимые категории *} {if $c->visible} {* Делаем вывод категорий С галкой "2й блок" *} {if $c->cat_2} <li> {if $c->image}<img src="{$config->categories_images_dir}{$c->image}" alt="{$c->name|escape}">{/if} <a {if $category->id == $c->id}class="selected"{/if} href="catalog/{$c->url}" data-category="{$c->id}">{$c->name|escape}</a> {categories_tree_two categories=$c->subcategories} </li> {else} {/if} {/if} {/foreach} </ul> {/if} {/function} {categories_tree_two categories=$categories} </div> <!-- Меню каталога (The End)--> За помощь дополнительная благодарность ув. тов. Kors и Kosjak76всё по инструкции. но при отметке галкой 2-блок нажимаю сохранить и галка исчезает. помогите добить... Цитата Ссылка на сообщение Поделиться на другие сайты
MStyle28 Опубликовано 21 августа, 2017 Жалоба Поделиться Опубликовано 21 августа, 2017 Отличное решение,спасибо! Не подскажете как реализовать так,чтобы можно было менять расположение категорий в втором меню,без изменений в основном? Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.