Категории
[FAQ] Часто задаваемые вопросы и ответы
Проблемы и решения
Ошибки и исправления
Общие вопросы
Расширения
Установка и обновление
Модули
Шаблоны
Локализация интерфейса
Коммерческие предложения
Учимся бизнесу
Бизнес книги
Поисковая оптимизация (SEO)
Магазины на ShopOS
Хостинг для ShopOS
Предложения и пожелания
Курилка
|
Блок категорий с подкатегориями
Подскажите как сделать блок категорий с подкатегориями открытым сразу, а не при переходе в определенную категорию.
themes\шаблон\source\inc\show_category.inc.php
$MaxLevel = 1; - заменить 1 на 10. будет все открыто. ТОЛЬКО СОХРАНЯТЬ ФАЙЛ В КОДИРОВКЕ UTF8 БЕЗ BOM
огромное спасибо.
Обновил ссылку
Помогите, в следующей задаче. Как сделать, что б только одна категория была в развернутом виде (показывались подкатегории), а остальные категории в которых есть подкатегоирии были в свернутом виде. Жду ответа. Возможна платная консультация. Пишите сюда, или на скайп: g23lviv или aleksey(собачка)nautica.org.ua
Помогите, в следующей задаче. Как сделать, что б только одна категория была в развернутом виде (показывались подкатегории), а остальные категории в которых есть подкатегоирии были в свернутом виде.
надо, что бы при нажатии разворачивалась только одна категория, а остальные сворачивались, или надо. что бы одна определенная категория всегда была в развернутом виде?
надо, что бы одна категория всегда была открыта, вторая категория всегда свернута, желательно даже что б она и не разворачивалась,при открытие. Прсто что б открывалась страница с подкатегориями.
Все ещё жду ответа. ;D
Все ещё жду ответа. ;D
Стандартными методами нельзя, надо переписывать программный код блока категорий.
Помогите, в следующей задаче. Как сделать, что б только одна категория была в развернутом виде (показывались подкатегории), а остальные категории в которых есть подкатегоирии были в свернутом виде.
Можно сделать так развернуть все подкатегории, потом через css всем li прописать display:none; а нужной категории в li display:block;
это самое простое, что пришло в голову.
правда тут несколько мелочей нужно учитывать. так что как выше писали, нужно ковырять...
если коротенечко, то надо поставить условие и для определенной id категории задать свой класс, как выше написал NeBox
да. по классу определять категорию которую нужно раскрыть. ну а сели нужно всегда первый раскрывать, то в css есть first-child, либо через js можно определять..
в принципе все элементарно просто:
вставь в категориях class="cat'.$categories['categories_id'].' " а в css для нужной категории пропиши класс с требуемыми характеристиками .catN {........} где N - id требуемой категории можещь для каждой категории и подкатегории задать любые уникальные характеристики
может я неправельно выразился..или не понимаю вас.. речь идет о боксе в который выносяться категории и подкатегории. + я несильно во всем этом селен..т.к делаю для себя.. скажите для начала каки фалы нужны для работы... Yurg скиньте ваш скайп, или асю в лс..Я отблагодарю, и думаю в дальнейшем воспользуюсь вашими услугами по некоторым нововведениями на свой сайт..
скажите для начала каки фалы нужны для работы... Yurg скиньте ваш скайп, или асю
правятся два фвйла: themes/щаблон/source/boxes/categories.php или themes/шаблон/source/inc/show_category.inc.php (в зависимости от модификации бокса категорий) и themes/шаблон/style.css
ICQ: 576912650
вот содержимое categories.php
<?php /* ##################################### # ShopOS: Скрипт интернет-магазина # Copyright (c) 2008-2010 # http://www.shopos.ru # Ver. 1.0.1 ##################################### */
// reset var $box = new osTemplate; $box_content = ''; $id = ''; $box->assign('tpl_path', _HTTP_THEMES_C);
// include needed functions require_once(_THEMES_C.'source/inc/show_category.inc.php');
$categories_string = ''; if (GROUP_CHECK == 'true') { $group_check = "and c.group_permission_".$_SESSION['customers_status']['customers_status_id']."=1 "; } else { $group_check=''; }
$categories_query = osDBquery( "select c.categories_id, cd.categories_name, c.parent_id from " . TABLE_CATEGORIES . " c, " . TABLE_CATEGORIES_DESCRIPTION . " cd where c.categories_status = '1' ".$group_check." and c.categories_id = cd.categories_id and cd.language_id='" . (int)$_SESSION['languages_id'] ."' order by sort_order, cd.categories_name");
if (os_db_num_rows($categories_query,true)) {
while ($categories = os_db_fetch_array($categories_query,true)) { $foo] = array( 'name' => $categories['categories_name'], 'parent' => $categories['parent_id']); } os_show_category(0, 0, $foo, '');
// NaviListe bekommt die ID "CatNavi" $CatNaviStart = "\n<ul id=\"CatNavi\">\n";
// Hдtte man auch einfacher machen kцnnen, aber mit Tabulatoren ist schicker. // AuЯerdem kann man so leichter nachprьfen, ob auch wirklich alles korrekt lдuft. for ($counter = 1; $counter < $old_level+1; $counter++) { @$CatNaviEnd .= "</li>\n".str_repeat("\t", $old_level - $counter)."</ul>\n"; if ($old_level - $counter > 0) $CatNaviEnd .= str_repeat("\t", ($old_level - $counter)-1); }
}
// Fertige Liste zusammensetzen $box->assign('BOX_CONTENT', $CatNaviStart.$categories_string.$CatNaviEnd); $box->assign('language', $_SESSION['language']); // Jibbie - darauf einen Dujardin
// Viele, viele bunte Smarties if (USE_CACHE=='false') { $box->caching = 0; $box_categories= $box->fetch(CURRENT_TEMPLATE.'/boxes/box_categories.html'); } else { $box->caching = 1; $box->cache_lifetime=CACHE_LIFETIME; $box->cache_modified_check=CACHE_CHECK; $cache_id = $_SESSION['language'].$_SESSION['customers_status']['customers_status_id'].$current_category_id; $box_categories= $box->fetch(CURRENT_TEMPLATE.'/boxes/box_categories.html',$cache_id); } $osTemplate->assign('box_CATEGORIES',$box_categories); ?>
вот содержимое show_category.inc.php
<?php /* ##################################### # ShopOS: Shopping Cart Software. # Copyright (c) 2008-2010 # http://www.shopos.ru # http://www.shoposs.com # Ver. 1.0.2 ##################################### */
global $MaxLevel, $HideEmpty, $ShowAktSub;
$MaxLevel = 2; $HideEmpty = false; $ShowAktSub = true;
function os_show_category($cid, $level, $foo, $cpath) {
global $old_level, $categories_string; //, $HTTP_GET_VARS; // Brauchen wir nicht global $MaxLevel, $HideEmpty, $ShowAktSub;
// 1) Ьberprьfen, ob Kategorie Produkte enthдlt $Empty = true; $pInCat = os_count_products_in_category($cid); if ($pInCat > 0) $Empty = false; // 2) Ьberprьfen, ob Kategorie gezeigt werden soll $Show = false; if ($HideEmpty) { if (!$Empty) $Show = true; } else { $Show = true; }
// 3) Ьberprьfen, ob Unterkategorien gezeigt werden sollen $ShowSub = false; if ($MaxLevel) { if ($level < $MaxLevel) $ShowSub = true; } else { $ShowSub = true; } if($Show) { // Wenn Kategorie gezeigt werden soll .... if ($cid != 0) { // 24.06.2007 BugFix // Auf "product_info"-Seiten wurde Kategorie nicht erkannt // $category_path = explode('_',$HTTP_GET_VARS['cPath']); $category_path = explode('_',$GLOBALS['cPath']); $in_path = in_array($cid, $category_path); $this_category = array_pop($category_path); for ($a = 0; $a < $level; $a++) ; // Produktzдhlung $ProductsCount = false; // Lange gerдtselt, aber das ist tatsдchlich // ein String und kein Boolean. if (SHOW_COUNTS == 'true') $ProductsCount = ' <em>(' . $pInCat . ')</em>'; // Aktiv - Nicht Aktiv $Aktiv = false; if ($this_category == $cid) // Wenn Kategorie aktiv ist $Aktiv = ' Current'; elseif ($in_path) // Wenn Oberkategorie aktiv ist $Aktiv = ' CurrentParent'; // Hat ein SubMenue - hat kein SubMenue // CSS-Klasse festlegen $SubMenue = false; if (os_has_category_subcategories($cid)) $SubMenue = " SubMenue"; // Listenpunkt // CSS-Klasse festlegen $MainStyle = 'CatLevel'.$level; // Quelltext einrьcken $Tabulator = str_repeat("\t",$level-1); // Navigations-Liste ist jetzt hierarchisch! if($old_level) { if ($old_level < $level) { $Pre = "\n<ul>"; $Pre = str_replace("\n","\n".$Tabulator, $Pre)."\n"; } else { $Pre = "</li>\n"; if ($old_level > $level) { // Listenpunkte schlieЯen // Quelltext einrьcken for ($counter = 0; $counter < $old_level - $level; $counter++) { $Pre .= str_repeat("\t", $old_level - $counter -1)."</ul>\n".str_repeat("\t", $old_level - $counter- 2)."</li>\n"; } } } } // Listenpunkte zusammensetzen $categories_string .= @$Pre.$Tabulator. '<li class="'.$MainStyle.$SubMenue.$Aktiv.'">'. // Bugfix, 12. Juli 2007 //'<a href="' . os_href_link(FILENAME_DEFAULT, 'cPath=' . $cpath . $cid) . '">'. '<a href="' . os_href_link(FILENAME_DEFAULT, os_category_link($cid, $foo['name']) ) . '">'. $foo['name'].$ProductsCount. '</a>'; } // fьr den nдchsten Durchgang ... $old_level = $level; // Unterkategorien durchsteppen foreach ($foo as $key => $value) { if ($foo['parent'] == $cid) { // Sollen Unterkategorien gezeigt werden? if (@$ShowAktSub && @$Aktiv) $ShowSub = true; if ($ShowSub) os_show_category($key, $level+1, $foo, ($level != 0 ? $cpath . $cid . '_' : '')); } } } // Ende if($Show) } ?>
Помогите плиз...где что добавить?
в categories.php замени
while ($categories = os_db_fetch_array($categories_query,true)) { $foo] = array( 'name' => $categories['categories_name'], 'parent' => $categories['parent_id']); }
на
while ($categories = os_db_fetch_array($categories_query,true)) { $foo] = array('name' => $categories['categories_name'], 'id' => $categories['categories_id'], 'parent' => $categories['parent_id']); }
в файле show_category.inc.php замени
<a href="' . os_href_link(FILENAME_DEFAULT, os_category_link($cid, $foo['name']) ) . '">
на
<a class="cat'.$foo['id'].'" href="' . os_href_link(FILENAME_DEFAULT, os_category_link($cid, $foo['name']) ) . '">
в .css для нужной категории пропиши класс с требуемыми характеристиками .catN {........} где N - id требуемой категории
я так понял в css просто добавть .catN {........} что значит требуемые характиристики (я так понял вместо точек ваши). Какаое значение должно быть для открытой а какой для закрытой? разжуйте если не тяжело..
я так понял в css просто добавть .catN {........} что значит требуемые характиристики (я так понял вместо точек ваши). Какаое значение должно быть для открытой а какой для закрытой? разжуйте если не тяжело..
в css добавляется сласс, например .cat5 - где 5 это id редактируемой категории. и в нем прописываешь для конкретной категории уникальные характеристики: цвет, размер, положение и тд и тп, все что душе захочется, и так можно сделать для каждой конкретной категории/субкатегории. А что бы правильно прописать, что захочется душе изучай css, это не PHP, там все просто :)
мне цвет, положение, и всего остального не надо...Оно устраивает меня как есть сейчас.Меня только интерисует, что б в боксе, где отображаються категории, 2-ве категории в которых есть подгатигории были развернуты, а 8 категорий в которых есть подкатегории были свернуты... я понимаю что задаю нубские вопросы, но я не верстальщик, а сайт для себя мудрю...+ готов пару басков за помощь бросить..
мужики...ну помогите раз начали)))
10$ тому кто поможет ;D
пиши в личку, или асю 576912650, сделаю
Источник
|