Jump to content
xt:Commerce Community Forum

Zusätzliche <body> Klasse


Recommended Posts

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

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

..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 :D

Link to comment
Share on other sites

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

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

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

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 :rolleyes:

der beste weg wäre natürlich den body tag komplett ausserhalb von php zu plazieren !!!

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...