Приветствую, друзья. Недавно, посещая популярные доски объявлений, увидел одну полезную страницу — «Карту категорий». На данной странице располагаются все категории вашей доски объявлений, тем самым упрощая индексацию поисковыми системами. О пользе и надобности данной страницы у вас могут быть свои рассуждения, ну а я просто расскажу, как ее сделать .
Для начала посчитайте максимальный уровень вложенности своих категорий. Т.е, если у вас есть такой набор категорий Купить — Авто — BMW , то можно сказать, что у вас 2 уровня вложенности категорий(это нужно будет для пункта 4). Главная категория — «Купить«, а 2 — это уже подкатегории.
Данное решение подходит для Boxcode любой версии. Тестировалось на версии 8.4.
И так, для начала нам нужно открыть файл .htaccess в корне вашего движка boxcode. После строки
1 |
RewriteRule ^newadv/?$ index.php?m=doska&k=addadvert [QSA,L] |
ставим новую сылочку на нашу карту категорий
1 |
RewriteRule ^map/?$ index.php?m=doska&k=map [QSA,L] |
Далее, по пунктам:
- Открываем файл и в нем прописываем нашу новую страницу
1/moduls/doska/mas_init_component.php
после
1"addadvert" => array( false, array() ),
добавляем
1"map" => array( false, array() ),
- Потом, создаем папку по пути
1/moduls/doska/filesmodul/map/
и в ней два файла forming_data.php и control_data.php (укажите кодировку UTF-8 ) - Открываем файл
1/moduls/doska/filesmodul/map/forming_data.php
и копируем туда мой код
1234567891011121314151617181920212223242526272829<?phpglobal $masSettings;$title="Карта категорий";$title_text="Карта категорий";$keywords ='';$description = 'Карта категорий';global $mas_value_template,$tpl,$masConfig;$mas_perem = $mas_value_template;$mas_perem["masConfig"]=$masConfig;$mas_perem["dir_http_template_modul"] = $this->dir_http_template_modul;$mas_perem["obj_doska"] = &$this;$tpl->template_dir = $this->dir_template_mfile."/page/";$tpl->assign($mas_perem);$text = $tpl->fetch("map.html"); - Далее, нам нужно создать файл шаблона map.html в папке
1/templates/шаблон/moduls/doska/mtemplates/page
и добавить в него следующий код
123456789101112131415161718192021222324252627282930313233343536373839404142434445{? $mas_category = $obj_doska->get_mas_nested_category(0,false,false) }{if sizeof($mas_category) }<ul class="map-doska">{foreach from = $mas_category value="category"}<li><div><b><a href="{$obj_doska->forming_all_name_url_category($category['id_category'],'high')}" title="Объявления о продаже, {$category["name"]}">{$category["name"]}</a></b></div>{? $mas_inferiorcategory = $obj_doska->get_mas_nested_category($category["id_category"],false,false) }{ if sizeof($mas_inferiorcategory) }{foreach from = $mas_inferiorcategory value="podcategory" }<div class='podcategory-map-wrap'><div class='podcategory-map'><a href="{$obj_doska->forming_all_name_url_category($podcategory['id_category'],'inferior')}" title="Объявления о продаже, { $podcategory["name"] }">{ $podcategory["name"] }</a></div>{? $mas_inferiorcategory_2 = $obj_doska->get_mas_nested_category($podcategory["id_category"],false,false) }{ if sizeof($mas_inferiorcategory_2) }{foreach from = $mas_inferiorcategory_2 value="podcategory_sub" }<div class='podcategory-map-sub'><a href="{$obj_doska->forming_all_name_url_category($podcategory_sub['id_category'],'inferior')}" title="Объявления о продаже, { $podcategory_sub["name"] }"> - { $podcategory_sub["name"] }</a></div>{/foreach}{/if}</div>{/foreach}{/if}</li>{/foreach}</ul>{else}Нет категорий...{/if}
Данный шаблон выведет только две подкатегории в главной категории. Для того, чтобы выводить больше подкатегорий, вам нужно в каждом цикле foreach добавлять новый цикл (слово «номер» измените на цифру подкатегории.)
1234567{? $mas_inferiorcategory_номер = $obj_doska->get_mas_nested_category($podcategory["id_category"],false,false) }{ if sizeof($mas_inferiorcategory_номер) }{foreach from = $mas_inferiorcategory_номер value="podcategory_sub" }<div class='podcategory-map-sub'><a href="{$obj_doska->forming_all_name_url_category($podcategory_sub['id_category'],'inferior')}" title="Объявления о продаже, { $podcategory_sub["name"] }"> - { $podcategory_sub["name"] }</a></div>{/foreach}{/if}
*Не забудьте вывести ссылку где-нибудь на сайте.
На это и закончим ..Удачи =)
присылайте свои идеи к нам на admin@make-board.ru
Добавил, все отлично работает. Но можно как то Карту категорий сделать не в один столбик, а в два например? И еще созданный файл control_data.php так и должен быть пустым?
вам в помощь HTML. Делайте,сколько нужно столбиков.
Да, можете оставить пустым
Ясно, спасибо еще раз. ))
после
«addadvert» => array( false, array() ),
добавляем
«map» => array( false, array() ),
а если у меня вместо строки
«addadvert» => array( false, array() ),
такая строка
«addadvert» => array( true, array() ),
что делать?
все тоже самое