Zurück   xt:Commerce Webshop Shop Support > xt:Commerce Shopsoftware Community Area > Contributions/Downloads

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 22.01.2006, 18:36
xt:C Sponsor
 
Registriert seit: 28.11.2005
Beiträge: 31
Daumen runter

Hallo Leute, ich habe mal die Kategorieschleife f?r einen Kunden angepasst und biete Sie hiemit der Allgemeinheit an.

Was sicherlich nicht hundertprozentig stimmt, sind die Kommentare - also wenn jemand das verbessert wenn etwas nicht logisch-korrekt ist bin ich dankbar.

Mir hat diese Version es erm?glicht bessere Anpassungen vorzunehmen.

F?r Fragen & Anregungen bin ich jederzeit gerne bereit.

Gr??e
Danimax



<?php
/* -----------------------------------------------------------------------------------------
Modified and customized version - for questions mail to: 101.13946@germanynet.de
-----------------------------------------------------------------------------------------
based on:
$Id: xtc_show_category.inc.php 1262 2005-09-30 10:00:32Z mz $
XT-Commerce - community made shopping
http://www.xt-commerce.com
Copyright ? 2003 XT-Commerce
-----------------------------------------------------------------------------------------
based on:
? 2000-2001 The Exchange Project (earlier name of osCommerce)
? 2002-2003 osCommerce(categories.php,v 1.23 2002/11/12); www.oscommerce.com
? 2003 nextcommerce (xtc_show_category.inc.php,v 1.4 2003/08/13); www.nextcommerce.org
Released under the GNU General Public License
---------------------------------------------------------------------------------------*/

function xtc_show_category($counter) {
global $foo, $categories_string, $id;


// Vor allen Elementen / Anfangstags
$categories_string .= '<ul>';

//Schleifenaufruf
for ($a=0; $a<$foo[$counter]['level']; $a++){
$categories_string .= '';
}
// 1. Kategorie-Ebene
if ($foo[$counter]['level']=='') {
$categories_string .= '<li class="Ebene_1">';
}
// 2. Kategorie-Ebene
if ($foo[$counter]['level']=='1') {
$categories_string .= '<li class="Ebene_2">';
}
// 3. Kategorie-Ebene
if ($foo[$counter]['level']=='2') {
$categories_string .= '<li class="Ebene_3">';
}

// Gilt f?r alle Elemente
$categories_string .= '<a href="';
$cPath_new=xtc_category_link($counter,$foo[$counter]['name']);
$categories_string .= xtc_href_link(FILENAME_DEFAULT, $cPath_new);
$categories_string .= '">';

// Ausgew?hltes Element
if ( ($id) && (in_array($counter, $id)) ) {
$categories_string .= '';
}
// Kategorienamen anzeigen
$categories_string .= $foo[$counter]['name'];

// Tags schlie?en
if ( ($id) && (in_array($counter, $id)) ) {
$categories_string .= '
';
}
$categories_string .= '</a>';
// Letztes Element erreicht? / Schleifenende
if ($foo[$counter]['next_id']){
xtc_show_category($foo[$counter]['next_id']);
}
// Nach allen Elementen / Schlu?tag
else{
$categories_string .= '[/list]';
}
}
?>
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 22.01.2006, 20:23
xt:Commerce Support Kunde
 
Registriert seit: 03.05.2004
Ort: Witzhausen
Beiträge: 422
Standard

sorry........

Geändert von regor (14.12.2007 um 00:13 Uhr)
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 23.01.2006, 06:51
Benutzerbild von dukie6666
VEYTON Service Partner
 
Registriert seit: 26.01.2004
Ort: Nueva Colombia/Paraguay
Beiträge: 1.831
Standard

baja, sie gibt zum beispiel die navi in list tags aus
__________________
Grüße Oliver


Zertifizierter xt:Commerce VEYTON Reseller & Service Partner
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #4 (permalink)  
Alt 23.01.2006, 10:51
xt:C Sponsor
 
Registriert seit: 28.11.2005
Beiträge: 31
Standard

stimmt, sie gibt das ganze momentan in listen tags aus,


-> also ich habe tagelang versucht ANpassungen in der bestehenden Datei zu machen, anber die dort vorhandene Logik hat mir nicht gereicht um mein Ziel (Shop des Kunden)
anzupassen.

jetzt kann man f?r 3 verschiedene Ebenen die entsprechenden Styles aufrufen oder was auch immer damit machen ---

hey da sind kommentare... also wird man's schon verstehen...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #5 (permalink)  
Alt 22.02.2006, 23:57
Erfahrener Benutzer
 
Registriert seit: 22.02.2006
Beiträge: 120
Standard

premiere, erster beitrag in diesem forum - und gleich eine frage:

mit genau dem gleichen problem schlag ich mich auch gerade rum - allerdings leider erfolglos...

@danimax: bei mir hat deine ge?nderte version nicht funktioniert.

:-(

zuerst kam eine fehlermeldung, dass die funktion "xtc_category_link" nicht bekannt sei - das hab ich aber wieder hingekriegt, indem ich die entsprechenden stellen in denen der link erzeugt wird, mit denen aus der original-datei ersetzt habe.

und dann wurde im ergebnis vor jedes li ein ul gesetzt.
woran kann das liegen?

[ich hab version 3.03 installiert
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #6 (permalink)  
Alt 25.02.2006, 09:26
Erfahrener Benutzer
 
Registriert seit: 22.02.2006
Beiträge: 120
Standard

Ich hab eine andere L?sung gefunden!

:-)

Noch mal zur Verdeutlichung: Gew?nscht hatte ich mir urspr?nglich eigentlich folgende HTML-Ausgabe:

Code:
<ul class="navilist">
	<li>Kategorie 1
 <ul>
 	<li>Kategorie 1.1
  <ul>
  	<li>Kategorie 1.1.1</li>
  	<li>Kategorie 1.1.2</li>
  </ul>
 	</li>
 	<li>Kategorie 1.2</li>
 </ul>
	</li>
	<li>Kategorie 2</li>
	<li>Kategorie 3</li>
	<li>Kategorie 4</li>
</ul>
So hab ich das leider nicht hingekriegt. Ich bin immer daran gescheitert, der "?berkategorie mit Unterkategorien" das schlie?ende nach dem Link NICHT mitzugeben, und das dann daf?r dort einzuf?gen, wo dann die "n?chsttiefere" <ul>[/list]aufh?rt. Ich f?rchte, das k?nnte auf eine rekursive Funktion hinauslaufen, und f?r sowas war ich irgendwie schon immer zu bl?d.

Also anders:

Ausgegeben wird jetzt eine ganz "normale" Liste, ohne weitere Verschachtelungen. Allerdings mit folgenden CSS-Klassen, mit denen man ?ber ?nderungen am Stylesheet seine Hierarchien ebensogut im Griff hat:

Code:
<ul class="navilist">
	<li class="maincat">Kategorie 1</li>
	<li class="subcat level1">Kategorie 1.1</li>
	<li class="subcat level2">Kategorie 1.1.1</li>
	<li class="subcat level2">Kategorie 1.1.2</li>
	<li class="subcat level1">Kategorie 1.2</li>
	<li class="maincat">Kategorie 2</li>
	<li class="maincat">Kategorie 3</li>
	<li class="maincat">Kategorie 4</li>
</ul>
Die Level-Nummer nach class="subcat level.." wird ?ber $foo[$counter]['level'] mitgegeben. So kann man dann ?ber sein Stylesheet die ganzen "levels" wie gew?nscht weiter einr?cken oder ihnen eine andere Farbe/Schriftgr??e geben - was auch immer.

Im Gegensatz zur L?sung von danimax k?nnen damit auch noch tiefere Hierarchien verarbeitet werden.

Ein bisschen Detailarbeit m?chte ich allerdings noch machen, bevor ich den Code poste.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #7 (permalink)  
Alt 25.02.2006, 11:09
Erfahrener Benutzer
 
Registriert seit: 22.02.2006
Beiträge: 120
Standard

Fertig!

Bestimmt kann man einige Dinge auch etwas eleganter l?sen, aber ich kenn mich halt noch nicht so gut aus.

Code:
<?php
/*	
	-------------------------------------------------------------------------------------------
	$Id: xtc_show_category.inc.php,v 1.1 2004/04/26 20:26:42 fanta2k Exp $

	XT-Commerce - community made shopping
	http://www.xt-commerce.com

	Copyright (c) 2003 XT-Commerce
	-------------------------------------------------------------------------------------------
	based on: 
	(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
	(c) 2002-2003 osCommerce(categories.php,v 1.23 2002/11/12); www.oscommerce.com
	(c) 2003 nextcommerce (xtc_show_category.inc.php,v 1.4 2003/08/13); www.nextcommerce.org 

	Released under the GNU General Public License 
	--------------------------------------------------------------------------------------------
	Modified to get a cleaner HTML-output without tables
	by Gunnar Tillmann
	http://www.gunnart.de
	---------------------------------------------------------------------------------------------
*/

function xtc_show_category($counter) {
global $foo, $categories_string, $id;


// our loop
for ($a=0; $a<$foo[$counter]['level']; $a++)
	{
	$categories_string .= '';
	}
	
// starting an unordered list called "navilist"
if ($foo[$counter]['level']=='') 
	{
	if (strlen($categories_string)=='0') // Check if this is the first of our categories
 {
 $categories_string .='
 	<ul class="navilist">
  <li class="maincat">';
 } 
	else 
 {
 $categories_string .='
  <li class="maincat">';
 }
	}
else // subcategories are called "subcat"
	{
	$categories_string .= '
  <li class="subcat level'.$foo[$counter]['level'].'">';
	}

// check if link has subcats, check if link is active
if (xtc_has_category_subcategories($counter))
	{
	$categories_string .= '<a class="submenue';
	if ( ($id) && (in_array($counter, $id)) )
 {
 $categories_string .= ' active';
 }
	$categories_string .= '" href="';
	}
else
	{
	$categories_string .= '<a';
	if ( ($id) && (in_array($counter, $id)) )
 {
 $categories_string .= ' class="active"';
 }
	$categories_string .= ' href="';
	}

// linking
if ($foo[$counter]['parent'] == 0) 
	{
	$cPath_new = 'cPath=' . $counter;
	} 
else
	{
  $cPath_new = 'cPath=' . $foo[$counter]['path'];
  }

if (SEARCH_ENGINE_FRIENDLY_URLS == 'true') 
	$cPath_new.='&category='.xtc_cleanName($foo[$counter]['name']);
	$categories_string .= xtc_href_link(FILENAME_DEFAULT, $cPath_new);
	$categories_string .= '">';

// display category name
$categories_string .= $foo[$counter]['name'];

if (SHOW_COUNTS == 'true')
	{
	$products_in_category = xtc_count_products_in_category($counter);
	if ($products_in_category > 0) 
 {
 $categories_string .= ' <span class="catcount">(' . $products_in_category . ')</span>';
 }
	}

// close tags
$categories_string .= '</a></li>';

if ($foo[$counter]['next_id']) 
	{
	xtc_show_category($foo[$counter]['next_id']);
  } 
else // close our "navilist"
	{
	$categories_string .= '
 	</ul>';
  }
}
?>
- Ausgabe in einer ungeordneten Liste
- Hauptkategorien werden von <li class="maincat"> umschlossen
- Unterkategorien entsprechend von <li class="subcat level#">, die Nummer steht f?r die Hierarchietiefe
- Bei aktiven Men?punkten werden die Links selbst durch die Klasse <a class="active"> markiert und nicht der Text innerhalb durch Fettdruck hervorgehoben (einige CSS Geschichten sind sonst nicht m?glich)
- Die Z?hlung hinter den Kategorien ist jetzt innerhalb des Links (ebenfalls aus CSS-Gr?nden) - damit man die Z?hlung individuell stylen kann, steht sie innerhalb eines <span>-Tags
- Es wird CSS-m??ig zwischen Men?punkten mit und Ohne Untermen? unterschieden. Auf diese Weise k?nnte man z.B. Navigationen realisieren, in denen Men?punkte, unter denen noch mehr zu finden ist, mit einem Dreieck gekennzeichnet werden, das dann bei Klick nach unten umklappt.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #8 (permalink)  
Alt 02.03.2006, 16:18
Erfahrener Benutzer
 
Registriert seit: 22.02.2006
Beiträge: 120
Standard

Moinmoin,

bei meiner Modifikation haben sich einige Bugs eingeschlichen, die ich vorher gar nicht bemerkt habe: Nach einigen Aktionen (z.B. Bewertung eines Artikels abgeben) erh?lt man r?tselhafte Fehlermeldungen mit "Headers already sent".

Ich hatte zun?chst darauf getippt, dass es daran lag, dass xtCommerce in einem Unterordner installiert war und ich beim Anpassen der verschienenen "configuration.php"s irgendwo Mist gebaut h?tte.

Es lag aber DOCH an meiner Modifikation.

Hier eine gefixte Version - bis jetzt ist mir unter xtCommerce 3.04 jedenfalls noch kein Fehler aufgefallen:

Code:
<?php
/*
	-----------------------------------------------------------------------------------------
	$Id: xtc_show_category.inc.php 1262 2005-09-30 10:00:32Z mz $

	XT-Commerce - community made shopping
	http://www.xt-commerce.com

	Copyright (c) 2003 XT-Commerce
	-----------------------------------------------------------------------------------------
	based on: 
	(c) 2000-2001 The Exchange Project (earlier name of osCommerce)
	(c) 2002-2003 osCommerce(categories.php,v 1.23 2002/11/12); www.oscommerce.com
	(c) 2003 nextcommerce (xtc_show_category.inc.php,v 1.4 2003/08/13); www.nextcommerce.org 

	Released under the GNU General Public License 
	-----------------------------------------------------------------------------------------
	Modified to get a cleaner HTML-output without tables
	Bugfix
	by Gunnar Tillmann
	http://www.gunnart.de
	-----------------------------------------------------------------------------------------
*/

function xtc_show_category($counter) {

global $foo, $categories_string, $id;


//start the loop
for ($a=0; $a<$foo[$counter]['level']; $a++) 
	{}


if ($foo[$counter]['level']=='') //maincat
	{
	if (strlen($categories_string)=='0') 
 {
 $categories_string .='<ul class="navilist">';
 } 
	$categories_string .='
  <li class="maincat"><a ';
	if (xtc_has_category_subcategories($counter))
 {
 $categories_string .= 'class="submenue" ';
 }
	if ( ($id) && (in_array($counter, $id)) ) 
 {
 $categories_string .= 'class="active" ';
  	}
	$categories_string .= 'href="';
	} 

else //subcat
	{
	$categories_string .= '
  <li class="subcat level'.$foo[$counter]['level'].'"><a ';
	if (xtc_has_category_subcategories($counter))
 {
 $categories_string .= 'class="submenue" ';
 }
	if ( ($id) && (in_array($counter, $id)) ) 
 {
 $categories_string .= 'class="active" ';
  	}
	$categories_string .= 'href="';
	}

$cPath_new=xtc_category_link($counter,$foo[$counter]['name']);

$categories_string .= xtc_href_link(FILENAME_DEFAULT, $cPath_new);
$categories_string .= '">';

$categories_string .= $foo[$counter]['name'];

if (SHOW_COUNTS == 'true') 
	{
	$products_in_category = xtc_count_products_in_category($counter);
	if ($products_in_category > 0) 
 {
 $categories_string .= '<span class="catcount">(' . $products_in_category . ')</span>';
 }
	}

$categories_string .= '</a></li>';

if ($foo[$counter]['next_id']) 
	{
	xtc_show_category($foo[$counter]['next_id']);
	} 
else 
	{
	$categories_string .= '
 	</ul>';
	}
}

?>
Einige Tabulatorzeichen und Zeilenumbr?che bei $categories_string .= '......' kann man nat?rlich weglassen, ich hab aber immer ganz gerne einen ?bersichtlich eingr?ckten Quelltext in der HTML-Ausgabe.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #9 (permalink)  
Alt 05.03.2006, 17:59
xt:C Sponsor
 
Registriert seit: 03.03.2006
Beiträge: 19
Standard

Zitat:
Originally posted by pufaxx@Mar 2 2006, 04:18 PM
Moinmoin,

bei meiner Modifikation haben sich einige Bugs eingeschlichen, die ich vorher gar nicht bemerkt habe: Nach einigen Aktionen (z.B. Bewertung eines Artikels abgeben) erh?lt man r?tselhafte Fehlermeldungen mit "Headers already sent".

Ich hatte zun?chst darauf getippt, dass es daran lag, dass xtCommerce in einem Unterordner installiert war und ich beim Anpassen der verschienenen "configuration.php"s irgendwo Mist gebaut h?tte.

Es lag aber DOCH an meiner Modifikation.

Hier eine gefixte Version - bis jetzt ist mir unter xtCommerce 3.04 jedenfalls noch kein Fehler aufgefallen:

Hallo,

darf ich fragen, was f?r Bugs denn in dieser Version vorliegen? Dieses Script ist n?mlich die einzige Version (habe im Forum insgesamt drei Varianten gefunden), die bei mir funktioniert. Bei den anderen wird mir im Browser lediglich eine leere Seite angezeigt (Quelltextanzeige ist auch leer), so da? ich keinen Ansatzpunkt zur Fehlersuche habe.

Die Artikelbewertungen werde ich aus meinem Shop rausnehmen, deshalb w?rde dieser Fehler bei mir schon mal nicht auftreten. Wenn Du mir sagst, was in dieser Version nicht stimmt, k?nnte ich die ?nderungen selbst in das funktionierende Script einbauen.

Ich nutze allerdings noch die Version 3.03, ich mache das Update erst bevor ich den Shop online stelle, mu? jetzt erstmal das Layout auf die Beine stellen...
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #10 (permalink)  
Alt 05.03.2006, 22:20
Benutzerbild von satzone
Erfahrener Benutzer
 
Registriert seit: 02.11.2003
Ort: Schweiz
Beiträge: 1.469
Standard

Dann stelle dies aber gleich auf 3.04, denn sonst kannste Dir den Aufwand gleich nochmal aufb?rden.
category listing ist in 303 nicht gleich wie in 304 und das template muss ebenfalls an div. Stellen angepasst werden.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
angepasste, xtcshowcategory

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand