Категории

[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, сделаю


Источник



Copyright ShopOS