Klasse für den Body

Was sehr praktisch wäre ist es, wenn man im <body> als Klassen die aktuelle Seite + ID drin hat

zum Beispiel:

<body class=“page_aktionen page_13”>

<body class=“page_aktionen_werkzeuge page_14”>

oder so ähnlich.
So kann man einfach mit Javascript / jQuery entsprechend darauf zugreifen und mit CSS entsprechend (conditional stylesheets).

Wie kann man sonst die aktuelle Seite noch rausfinden?

du kannst doch mit jQuery auf Body zugreifen auch wenn es keine ID hat, z.B.

$("body").bla();

und sonst mit [{$oView->getClassName()}] bekommst du die aktive Klasse raus

naja es gibt ja auch in jQuery die Möglichkeit mit

$(body.irgendwas)…
sowie im CSS
body.irgendwas form .field {…}

[{$oView->getClassName()}]
gibt nur
alist
aus :wink:

Da wette ich dagegen :slight_smile:

[{$oView->getClassName()}] gibt bei mir wirklich nur das gleiche überall aus, egal in welchem Template der Code drin ist.

[B]Sind keine CMS Seiten sondern normale Oxid Shop Kategorien / Artikelauflistungen.[/B]
Kannst ja mir das Gegenteil beweisen

[{$oView->getTitle()}] hilft mir da etwas weiter, bekomme wenigstens den Titel.

normale OXID Shop Kategorien / Artikelauflistungen
sind eben alle vom gleichen Typ, das is normal das da für “getClassName()” immer “alist” kommt.

In der Artikel-Detailseite kommt “details” und z.B. im Warenkorb kommt “basket”.

mfg Tobi

Mh ja, aber leider kann man nur den Kategorienamen [{$oView->getTitle()}] ausgeben
Gebe jetzt [{$oView->getTitle()}] und [{$oView->getClassName()}] noch zusätzlich im <body> Tag als Klassen aus, so kann ich auch einfach darauf zugreifen per CSS (1 Kategorie sieht ganz anders aus als andere)

Sollte entsprechend vielleicht hinzugefügt werden zu Oxid?

[QUOTE=Souleater;100784]
Sollte entsprechend vielleicht hinzugefügt werden zu Oxid?[/QUOTE]

wozu?
95% der Leute hier sind schon glücklich wenn der Shop einfach läuft ohne dass sie einen IT Profi anheuern müssen.

Und wer den Unterschied zwischen einer Klasse und einer ID kennt, wird diese Dinger innerhalb von 10 Sekunden selbst einbauen können.

Es geht darum, dass OXID generell im body Tag etc die Klassen einfügt was erheblich die Arbeit als Webentwickler vereinfachen würde, falls du es noch nicht verstanden hast.

also

<body id=“gleitschirme” class=“alist gleitschirme”>

<div id=“page” class=“alist …”>

Es geht ja um uns, wird helfen schließlich auch mit OXID noch besser zu machen.

Ist ja toll wenn du das nicht brauchst und nicht aufwändig die Klassen und IDs nachträglich einfügen musst als OXID Code.
Manuell das in jedem OXID Shop zu machen ist etwa zu viel verlangt.

Schließlich kann auch nicht jeder Programmieren aber oft CSS und dementsprechend kein OXID Code bzw kennt auch nicht die Funktionen und Klassen … von OXID und dessen API …

[QUOTE=Souleater;100790] und dementsprechend kein OXID Code bzw kennt auch nicht die Funktionen und Klassen … von Oxid und dessen API …[/QUOTE]

und wie willst du ihm dann beibringen, woher er weiß, wann er “alist” und wann “details” für seine CSS Klasse nehmen soll und woher er überhaupt weiß welche Klassen es gibt und warum sowohl die Kategorie “Frauenunterwäsche” als auch “Gartenzubehör” beide “alist” sind.

Ich verstehe schon, dass deine Idee unter speziellen Umständen dem Webdesigner 5 Sekunden Zeit spart und in meinem Template habe ich die aktuelle View Klasse auch im body Tag, aber Du verstehst nicht, dass online Shops nicht für Webdesigner gemacht sind, sondern für den Shopbetreiber, der aber meistens keinen Webdesigner unterm Tisch hat, der für ihn alles kostenlos programmiert. Daher müsste der Shop möglichst shopbetreiberfreundlich sein.

falls du es noch nicht verstanden hast
Hehe, ich glaub der vanilla hat ein ganz gutes Verständnis für solche komplexen Sachen.

aufwändig die Klassen und IDs nachträglich einfügen

So aufwändig is das ja nu auch nich, da gibs schlimmeres, Du hast das doch ganz gut gelöst, erfüllt doch seinen Zweck.

er soll einfach die Klassen sowie die Kategorienamen etc ausgeben, dafür gibt es ja die Funktionen.

Ein Webdesigner ist kein Webentwickler :wink:

und ein Betreiber kein Progger

irgendwie beisst sich die Maus in den Schwanz, habe ich den Eindruck…

Und wie sollte nun OXID die Priorität legen? Lieber ein allgemeines, vielfältig anpassbar und erweiterbares Stück eCommerce-Software - oder ein gekapseltes klicki-bunti für DAUs?

in gewisser Weise hat er ja recht, man könnte von Haus aus bei den Kategorien und/oder bei den einzelnen Artikeln und/oder Content-Seiten eine zus. Eigenschaft “class” oder sowas mit ins Admin-Backend einfügen, So was gibts ja schon in der Form das man ein alternatives Template angeben kann, würde natürlich spezielle Anpassunge pro Kategorieseite vereinfachen.

mfg Tobi

Genau, so mein ich es auch. Je nach Thema / Kategorie anderes Aussehen, Farbkombination etc zum Beispiel …

Wird dann entsprechend im Frontend bzw im Quellcode ausgegeben …

jetzt hats bei mir auch geklickt - bitte trage das hier mal ein, nicht dass es im Forum mit der Zeit verschütt geht:

https://oxid.uservoice.com/forums/31940-feature-requests

(by the way - moved to Feature Requests)

Ok, habs jetzt mal dort erstellt:

Ich hoffe, dass es so entsprechend verständlich ist. =)

Ich googel nach diesem Problem und finde diese Seite sehr schnell. Und was muss ich fest stellen? Zwei Seiten Grundsatzdiskussion, ob das überhaupt sinnvoll ist. Es wird danach gefragt, also antwortet doch darauf oder garnicht. Denkt bitte auch mal an die Leute, die von Google hier rein kommen! Da denkt man, man findet was nützliches und dann kommt sowas dabei raus…!

Hallo Hap,
in [B][I]dein_shop/application/views/azure/tpl/layout/page.tpl[/I][/B] ganz oben Einfügen:


[{capture name="bodyclass" assign="bodyclass"}]
$("body").addClass("[{$oView->getClassName()}]"); 
[{/capture}]
[{oxscript add=$bodyclass}]

Selbstverständlich kannst du jetzt Klassen noch weiter erweitern um immer und überall eindeutige Klassen zu bekommen.

Grüße
Rafig

Ich hätte auch noch einen Vorschlag:

<body class="[{$smarty.server.REQUEST_URI|replace:'/':' '|replace:'.html':''}]">

Die URL als Klassen reinschreiben, Leerzeichen-getrennt.

Raus kommt dann sowas:

<body class=" bekleidung sportswear neopren anzuege neoprenanzug-npx-vamp" cz-shortcut-listen="true">