doktormemo Posted February 16, 2007 Report Share Posted February 16, 2007 Hallo, ich möchte gerne, wenn man eine Hauptkategorie auswählt, dass die dazugehörigen Unterkategorien in einer extra Box anzeigen lassen. Hier ein kleines Beispiel, was ich mir vorstelle... Bath Accessories, Bath Decor: Luxury Bath Accessories & Bath Items at Restoration Hardware Ich habe mir eine Listenversion der xtc_show_category.inc.php runtergeladen, um die Kategorien besser mit CSS zu formatieren zu können. <?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 Shows, which categories have subcategories 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'; if (xtc_has_category_subcategories($counter)) { $categories_string .= ' submenue'; } $categories_string .= '"><a class="'; if ( ($id) && (in_array($counter, $id)) ) { $categories_string .= 'gewaehlt'; } $categories_string .= '" href="'; } else //subcat { $categories_string .= ' <li class="subcat level'.$foo[$counter]['level']; if (xtc_has_category_subcategories($counter)) { $categories_string .= ' submenue'.$foo[$counter]['level']; } $categories_string .= '"><a class="'; if ( ($id) && (in_array($counter, $id)) ) { $categories_string .= 'gewaehlt'; } $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>'; } } ?>[/PHP] Wie kann ich nun eine extra Box erstellen, wo dann die Unterkategorien von der aktiven Hauptkategorie angezeigt wird? Link to comment Share on other sites More sharing options...
doktormemo Posted February 17, 2007 Author Report Share Posted February 17, 2007 Also ich habe bereits herausfinden können, welche Dateien für die Anzeige der Kategorien Navigation verwantwortlich sind... das wären: templates/eigenestemplate/source/boxes/categories.php templates/eigenestemplate/source/inc/xtc_show_category.inc.php templates/eigenestemplate/boxes/box_categories.html Kann mir da jemand zustimmen. Leider weiß ich nicht wie ich nun eine Box erstelle in der nur die Unterkategorien angezeigt werden sollen... jemand eine Idee oder ein Tipp der mich auf die richtige Richtung bringt? Link to comment Share on other sites More sharing options...
doktormemo Posted February 18, 2007 Author Report Share Posted February 18, 2007 Hallo, leider habe ich nicht viel Reaktion auf meine Fragen erhalten...:sad: deshalb habe ich erstmal selber weiter gemacht und habe diese Anleitung abgearbeitet: Erstellen einer neuen Box f?r XT-Commerce RC 1.2 (Version 1.0) 1. Eine bestehende Box kopieren und anpassen: Gehen Sie in das Verzeichniss: /template/ihrtemplate/source/boxes Dort kopieren Sie z.b.: box_information.php in box_links.php Das gleiche machen Sie im Verzeichniss: /template/ihrtemplate/boxes Hier kopieren Sie die box_information.html in box_links.html 2. ?ndern der Bezeichnungen in den beiden Files: In der .php Datei ersetzen Sie alle Eintr?ge die "information" lauten, mit "links". Achten Sie darauf das folgender Code gro? geschrieben werden mu?: $smarty->assign('box_INFORMATION',$box_information); Hier also das INFORMATION in LINKS ?ndern 3. Neue Box in der boxes.php einbinden: ?ffnen Sie die Datei: /template/ihrtemplate/source/boxes.php Und f?gen Sie unter: require(DIR_WS_BOXES . 'information.php'); folgendes ein: require(DIR_WS_BOXES . 'links.php'); 4. Smarty Tag in die Index.html einf?gen: ?ffnen sie die Datei "index.html" im Verzeichniss: /template/ihrtemplate/ F?gen Sie {$box_LINKS} entweder in die Linke oder in die Rechte Navigationsleiste ein. <td>{$box_CART} {$box_LOGIN} {$box_INFOBOX} {$box_ADMIN} {$box_BESTSELLERS} {$box_CURRENCIES} {$box_LANGUAGES} {$box_MANUFACTURERS_INFO} {$box_MANUFACTURERS} {$box_NOTIFICATIONS} {$box_TELL_FRIEND} {$box_LINKS} </td> 5. ?ndern des file_flag in der links.php: $content_query=xtc_db_query("SELECT content_id, categories_id, parent_id, content_title, content_group FROM ".TABLE_CONTENT_MANAGER." WHERE languages_id='".(int)$_SESSION['languages_id']."' and file_flag=3 and content_status=1"); Hier ?ndern Sie bitte file_flag=0 auf file_flag=3 6. ?nderung in der Datenbank: Gehen Sie in Ihre Datenbank. Dort finden Sie die Tabelle: cm_file_flags Erzeugen Sie einen neuen Eintrag und schreiben Sie f?r file_flag = 3 Und geben Sie der Box noch den Namen: links Dieser Name wird dann in der Auswahlbox des Content-Managers stehen. 7. ?ndern der Sprachdatei: Gehen Sie in des Verzeichniss: lang/german/ ?ffnen Sie die Datei: lang_german.conf F?gen Sie im Abschnitt [boxes] (ziemlich weit unten) folgendes ein: heading_linkbox = 'Spielelinks' (K?nnen Sie nat?rlich Ihren Begebenheiten anpassen) ?ffnen Sie Ihre links.html Datei und ?ndern Sie: den Smarty Tag: {#heading_infobox#} in {#heading_linkbox#} 8. Content erzeugen: Melden Sie sich als Admin an, gehen Sie zum Content-Manager. Erstellen Sie einen neuen Content. Jetzt sollten Sie bei "Box" die neue Box "links" ausw?hlen k?nnen und der Box den neuen Content zuweisen. Achten Sie darauf auch das K?stchen "Sichtbar" anzuklicken, da sonst Ihre neue Box erst garnicht erscheint. Bisher konnte ich nur bis zum Punkt 5 kommen. Die Queryabfrage sieht bei templates/eigenestemplate/source/boxes/categories.php etwas anders aus. Ich weiß nicht wie ich jetzt weitermachen soll. Link to comment Share on other sites More sharing options...
webprogra Posted February 18, 2007 Report Share Posted February 18, 2007 mit dem was du da schreibst, kannst du zwar eine neue box erstellen. aber die inhalte dafür kannst du nur im content manager in diese box leiten, da kannst du dann aswählen, dass es in der neuen box erscheint. ein artikel zum beispiel: Feuerlöscher und Zubehör zu Discountpreisen (Onlineshop) dem habe ich die boxen angelegt, weil er die da alle so haben will. wenn du nur bis 5 gekommen bist, reicht das dafür auch nicht. das was du möchtest geht damit nicht. du kannst ja unterkategorien erstellen, aber die sind dann eben unter deiner hauptkategorie zu sehen. wie man das macht, was du da willst, weiß ich leider nicht. vg micha Link to comment Share on other sites More sharing options...
meniskus Posted February 22, 2007 Report Share Posted February 22, 2007 Servus, also das mit der neuen Box ist ja schonmal nicht schlecht. Jetzt mußt Du nur noch dafür sorgen, das die Box nur eingeblendet wird, wenn eine Oberkategorie angeklickt wird. Und eben eine modifizierte Version der Funktion zur Erstellung der Kategorie enthält und so beschnitten ist, daß eben nur die Kinderkategorien der gerade aktiven Oberkategorie ausgespuckt werden. Das würde ich als Vorgehensweise ansehen. Kann mich auch täuschen. Weis nicht genau. Was ich allerdings weis ist, das eine saubere Implementierung der Sache sicher nicht aus der hohlen Hand gerade so zu machen ist. ciao, Stefan Link to comment Share on other sites More sharing options...
doktormemo Posted February 23, 2007 Author Report Share Posted February 23, 2007 Hallo, ich habe eine Lösung gefunden Wie bereits erwähnt habe ich die ersten vier Punkte der Anleitung abgearbeitet. Also diese Dateien so modifiziert das ich eine Kopie der Kategorienanzeige hatte. templates/eigenestemplate/source/boxes/categories.php templates/eigenestemplate/source/inc/xtc_show_category.inc.php templates/eigenestemplate/boxes/box_categories.html Leider wurde die Seite danach komplett nicht mehr angezeigt. Der Fehler lag darin, dass die Funktion xtc_show_category() in den kopierten Dateien von templates/eigenestemplate/source/boxes/categories.php templates/eigenestemplate/source/inc/xtc_show_category.inc.php umgenannt werden muss, z.B. in xtc_show_subcategory(). Danach hatte ich zwei Boxen mit jeweils der gleichen Kategoriennavigation. Jetzt muss man nur noch von einer der Boxen die xtc_show_category.inc.php so modifizieren, so dass nur die Unterkategorien angezeigt werden. Viele Grüße doktormemo:cool: Link to comment Share on other sites More sharing options...
meniskus Posted February 23, 2007 Report Share Posted February 23, 2007 Sag ich doch :-) Gut gemacht. Wird die zusätzlich Box eigentlich auch ausgeblendet, wenn grad keine Oberkategorie angewählt ist? tschüß, Stefan Link to comment Share on other sites More sharing options...
doktormemo Posted February 23, 2007 Author Report Share Posted February 23, 2007 Sag ich doch :-) Gut gemacht. Wird die zusätzlich Box eigentlich auch ausgeblendet, wenn grad keine Oberkategorie angewählt ist? tschüß, Stefan Ja, sie bleibt ausgeblendet Link to comment Share on other sites More sharing options...
sophie Posted May 13, 2007 Report Share Posted May 13, 2007 Hallo, könntest Du den Code Deiner xtc_show_subcategory,php zur Verfügung stellen? Das würde mir sehr weiterhelfen. Vorab vielen Dank :-) Grüße Sophie Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.