Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

нужно помочь по show_category.inc.php

с горем пополам сделал вывод категорий горизонтально, таким Макаром :

$Pre .= str_repeat("\t", $old_level - $counter -1)."</td>\n".str_repeat("\t", $old_level - $counter- 2)."<td bgcolor=#ffffff>\n";

все вроде бы хорошо, но когда уже нажать трехуровневую категорию вылазит боком этот Макар, тобеж переводит далее в бок а не под самой категорией, собственно проф. глазом можна по коду определить где подвох или по ссылке
index.php/cat/c108_Popolneniya-Kivstar--Djuice--Life--MTC--Jeans--Beeline.html

<?php
/*
#####################################
# ShopOS: Скрипт интернет-магазина
#  Copyright (c) 2008-2009
# http://www.shopos.ru
# Ver. 1.0.1
#####################################
*/

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);
$category_path = explode('_',$GLOBALS);
$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;
// Listenpunkt
// CSS-Klasse festlegen
$aMainStyle = 'aCatLevel'.$level;

// Quelltext einrьcken
$Tabulator = str_repeat("\t",$level-1);

// Navigations-Liste ist jetzt hierarchisch!
if($old_level) {
if ($old_level < $level) {
$Pre = "\n</div>";
$Pre = str_replace("\n","\n".$Tabulator, $Pre)."\n";
} else {
$Pre = "</div>\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)."</td>\n".str_repeat("\t", $old_level - $counter- 2)."<td bgcolor=#ffffff>\n";
}
}
}
}

// Listenpunkte zusammensetzen
$categories_string .= $Pre.$Tabulator.
'<div class="'.$MainStyle.$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) ) . '" class="'.$aMainStyle.'">'.
$foo.$ProductsCount.
'</a>';
}

// fьr den nдchsten Durchgang ...
$old_level = $level;

// Unterkategorien durchsteppen
foreach ($foo as $key => $value) {

if ($foo == $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)
}
?>


Попробовать заменить

for ($counter = 0; $counter < $old_level - $level; $counter++) {
$Pre .= str_repeat("\t", $old_level - $counter -1)."</td>\n".str_repeat("\t", $old_level - $counter- 2)."<td bgcolor=#ffffff>\n";
}


на


if ($level == 3)
{
for ($counter = 0; $counter < $old_level - $level; $counter++) {
$Pre .= str_repeat("\t", $old_level - $counter -1)."\n".str_repeat("\t", $old_level - $counter- 2);
}
}
else
{
    for ($counter = 0; $counter < $old_level - $level; $counter++) {
$Pre .= str_repeat("\t", $old_level - $counter -1)."</td>\n".str_repeat("\t", $old_level - $counter- 2)."<td bgcolor=#ffffff>\n";
}
}


именно так вышло как я хотел, но не совсем, код требует полностью переработки


Евгений, помогите пожалуйста, уже неделю туплю не могу ни как сделать меню категорий в виде

категория1-->категория1.1--> категория1.1.1
категория2-->категория2.2--> категория2.2.2
категория3-->категория3.3--> категория3.3.3


по умолчанию, если развернуть горизонтально получается вот так

категория1-->
                    категория1.1-->
                                          категория1.1.1
категория2-->
                    категория2.2-->
                                          категория2.2.2
категория3-->
                    категория3.3-->
                                            категория3.3.3


хочу добиться вот такого кода

div id="menu1"><ul class="navigation">
<li>Категория1</li>
<li>Категория2</li>
<li>Категория3</li>
</ul></div>
<div id="menu2"><ul class="navigation">
<li>Категория1.1</li>
<li>Категория2.2</li>
<li>Категория3.3</li>
</ul></div>
<div id="menu3"><ul class="navigation">
<li>Категория1.1.1</li>
<li>Категория2.2.1</li>
<li>Категория3.3.1</li>
</ul></div>

Чтоб при нажатии на "категорию 1" выводилось справа другая колонка "категория 1.1" 


как вывести title напр. второй категории а саму ее отключить ? очень много переключалок выходит!
на картинке видно, второй уровень категории служит для названия подкатегорий
нужно помочь по show_category.inc.php


Надо переделывать вывод практически полностью.
И непонятно, при чем тут show_category.inc.php.  Этот файл используется для вывода только в боксе категорий.
А Вам, судя по всему, надо в основном контенте.


этот файл categorie_listing.html с какими файлами работает? хочу добавить в него подкатегории чтобы выводил


Источник



Copyright ShopOS