Hardy-Berlin Posted August 21, 2011 Report Share Posted August 21, 2011 Hallo, eine Frage an die Spezialisten, wie realisiere ich es am einfachsten dem <body> eine weitere Klasse, in meinem Fall die jeweilige Kategorie, mit zu geben? Hintergrund, ich möchte den Kategorien unterschiedliche Hintergründe zuweisen können ... Danke schon mal im Voraus für eure zahlreichen Tips ... Grüsse aus der Hauptstadt Hardy Link to comment Share on other sites More sharing options...
cschnell Posted August 26, 2011 Report Share Posted August 26, 2011 Hallo, "Am einfachsten" gibt es hier nicht. Dafür ist eine Core-Aenderung nötig. Frag mich bitte nicht, warum die Programmierer meinten, der Body-Tag müsse nicht ins Template. Die Datei, die den Body-Tag generiert, ist xtCore/display.php Ich habe das mal gebraucht, um ein JavaScript zu laden und deshalb in einem Shop einen Hook in der Display.php untergebracht, das sieht dann so aus: <body<?php ($plugin_code = $xtPlugin->PluginCode('display.php:content_body')) ? eval($plugin_code) : false; ?>> [/PHP] Diesen Hook kann man dann mit einem Plugin ansprechen, in meinem Fall war aber keine Dynamik notwendig, deshalb konnte ich es einfach als Eingabeplugin bewerkstelligen. Aber vielleicht gibt dir das so einen Anhaltspunkt. ich lade mal mein Plugin noch dazu. Viel Erfolg.mda_body_hook.zip Link to comment Share on other sites More sharing options...
stwinger Posted August 26, 2011 Report Share Posted August 26, 2011 ..wenn Du die Kategorien als class oder id mit im Body Tag unterbringen möchtest kannst Du diesen auch aus der display.php entfernen und direkt in die index.html einbauen. Die jeweilige class bzw id füllst Du mit smarty indem du einfach den Get Parameter der jeweiligen Page abfragst. <body id="{$smarty.get.page}">[/CODE] Grüsse Link to comment Share on other sites More sharing options...
MiStahmann Posted August 30, 2011 Report Share Posted August 30, 2011 Einfachste Lösung: <body> raus aus /xtCore/display.php und in der /templates/xxx/index.php dann z.B. {if $page == "categorie" || $page == "product"} <body id="bg-{$top_navigation.1.name|lower|strip:''|replace:'&':''}"> {else} <body> {/if} Hier wird jeweils immer die erste Ebene der Navigation ausgegeben, wenn es sich um eine Kategorie oder eine Einzelproduktseite handelt. Weitere Sonderzeichen müssen natürlich noch extra gefiltert werden. Wäre gut, das im nächsten Update zu berücksichtigen. Die body-id ist für Layout-Umschaltungen einfach die beste Adresse. Gruß Michael Link to comment Share on other sites More sharing options...
stwinger Posted August 30, 2011 Report Share Posted August 30, 2011 Einfachste Lösung: <body> raus aus /xtCore/display.php und in der /templates/xxx/index.php dann z.B. {if $page == "categorie" || $page == "product"} <body id="bg-{$top_navigation.1.name|lower|strip:''|replace:'&':''}"> {else} <body> {/if}Hier wird jeweils immer die erste Ebene der Navigation ausgegeben, wenn es sich um eine Kategorie oder eine Einzelproduktseite handelt. Weitere Sonderzeichen müssen natürlich noch extra gefiltert werden. Wäre gut, das im nächsten Update zu berücksichtigen. Die body-id ist für Layout-Umschaltungen einfach die beste Adresse. Gruß Michael warum so kompliziert ? das reicht vollkommen: <body id="{$smarty.get.page}"> was zusätzlich wirklich noch nett wäre eine abfrage ob angemeldet/abgemeldet + Kundengruppe ! Link to comment Share on other sites More sharing options...
MiStahmann Posted August 30, 2011 Report Share Posted August 30, 2011 warum so kompliziert ? das reicht vollkommen: <body id="{$smarty.get.page}"> was zusätzlich wirklich noch nett wäre eine abfrage ob angemeldet/abgemeldet + Kundengruppe ! Hallo stwinger, ich wollte es nicht verkomplizieren, aber oft geht es ja genau darum, in Unterschiedlichen Produkt-Kategorien andere Hintergründe zu haben. Rasen für Draußen, Fliesen für's Bad und Holz für den Wohnbereich. Da würde ein <body id="catregory"> nicht ausreichen. Deshalb mein Beispiel mit der jeweils höchsten Ebene der Navigation. Leider schmeißt $top_navigation nur den Namen und die URL raus. Mit einer ID wäre es einfacher (und ohne Umwandlung) die CSS Auszeichnungen anzupassen. Das mit der An-/ABGEMELDET ließe sich so lösen: {if $registered_customer} class="logged-in" {else} class="logged-out" {/if}[/CODE] innderhalb des Body-Tags Gruß Michael Link to comment Share on other sites More sharing options...
stwinger Posted August 30, 2011 Report Share Posted August 30, 2011 ich meinte eigentlich das ich den weg über die top_naviagtion nicht gerade vorteilhaft finde und für die Kategorie zu typisieren reicht doch die ID ... und die ist in der session drin der beste weg wäre natürlich den body tag komplett ausserhalb von php zu plazieren !!! Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.