Css eines Artikels ändern
Re: Css eines Artikels ändern
Danke pepe, das sieht vielversprechend aus. Die Seite auf der ich das brauchen kann, liegt voraussichtlich noch ein paar Monate auf Eis. Ich hoffe, deine Seite ist dann nicht schon im Ruhestand.
Re: Css eines Artikels ändern
Ich habe gerade mal OGs Vorschlag versucht... 1:1, das sah so gut aus.... leider kommt bei mir da nur im head an:
Neuinstallation - keine weiteren Scripts aktiv - alle Schalter in der config gesetzt, wie immer!
Könnte mir da ggf. jemand auf die Sprünge helfen.
Liegts vielleicht daran, dass ich nicht mehr so oft am PC bin und die "galoppierende Demenz" zugeschlagen hat?
Meine OS Rabiata ist momentan leider an der Schweine-Grippe erkrankt - bedauerlich - und ich mache für 2 Tage "Notdienst" am "Heim"-Computer
Code: Select all
<meta name="keywords" content="*CSS-dark*" />
Könnte mir da ggf. jemand auf die Sprünge helfen.
Liegts vielleicht daran, dass ich nicht mehr so oft am PC bin und die "galoppierende Demenz" zugeschlagen hat?
Meine OS Rabiata ist momentan leider an der Schweine-Grippe erkrankt - bedauerlich - und ich mache für 2 Tage "Notdienst" am "Heim"-Computer
Re: Css eines Artikels ändern
Das liegt nur an dem nicht ganz sauber geschriebenen Vergleich speziell bei strpos. Wenn das gesuchte Keyword als erstes steht klappt das so nicht. (Siehe strpos Manual). (Der Vergleich mit !== false fehlt nur).
Wenn in einer Funktion verwendet:
Knut
Code: Select all
if(strpos($content['all_keywords'], '*CSS-dark*') !== false) {
$template_default['body']['class'] = 'dark level-';
$content['all_keywords'] = str_replace('*CSS-dark*', '', $content['all_keywords']);
}
Code: Select all
if(strpos($GLOBALS['content']['all_keywords'], '*CSS-dark*') !== false) {
$GLOBALS['template_default']['body']['class'] = 'dark level-';
$GLOBALS['content']['all_keywords'] = str_replace('*CSS-dark*', '', $GLOBALS['content']['all_keywords']);
}
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Re: Css eines Artikels ändern
Jau... wunderbar,
kaum macht mans richtig... schon klappt es auch!
Danke flip-flop... na, wen das keine Super-Community ist. Keine Stunde gewartet und schon "löppt der Laden"
kaum macht mans richtig... schon klappt es auch!
Danke flip-flop... na, wen das keine Super-Community ist. Keine Stunde gewartet und schon "löppt der Laden"
Re: Css eines Artikels ändern
Funktioniert das nur mit dem body-tag?
Meine Versuche, auf gleiche Weise an Stelle von "body" andere IDs oder Klassen z.B. "content" oder "#content" anzusprechen, klappte nicht
Wenn doch, wie bitteschön
So klappte es natürlich:
Meine Versuche, auf gleiche Weise an Stelle von "body" andere IDs oder Klassen z.B. "content" oder "#content" anzusprechen, klappte nicht
Wenn doch, wie bitteschön
So klappte es natürlich:
Code: Select all
body.dark #content { background:#ccc; }
Re: Css eines Artikels ändern
Das ist in diesem Fall auf body beschränkt.
Siehe: Technik/Core index.php -> source -> Ab Zeile 152
Knut
Siehe: Technik/Core index.php -> source -> Ab Zeile 152
Knut
>> HowTo | DOCU | FAQ | TEMPLATES/DOCS << ( SITE )
Re: Css eines Artikels ändern
Danke flip-flop,
angeregt durch die Beispiele, habe ich mir jetzt ein rt_Script für den frontend-render-Ordner geschrieben, der mir die body-class grundsätzlich mit 2 zusätzlichen Klassen erweitert.
Einmal die CAT-ID der LaveLift-Kategorie und die CAT-ID der aktiven Kategorie selber
So kann ich jetzt LevelLift-weise oder/und auch Kategorie-weise meine Klassen in der CSS-Datei beeinflussen.
Damit wird aus: <body> => <body class="parent-XXX category-ZZZ">
Dadurch bekomme ich eine feine Möglichkeit, Anpassungen nahezu nur noch in der CSS-Datei vornehmen zu können...
FEINE SACHE, deshalb nochmas danke, für die Anregung
Einfügen in den Ordner:
.../template/inc_sript/frontend_render/rt_inject-body-with-LevelList-class.php
angeregt durch die Beispiele, habe ich mir jetzt ein rt_Script für den frontend-render-Ordner geschrieben, der mir die body-class grundsätzlich mit 2 zusätzlichen Klassen erweitert.
Einmal die CAT-ID der LaveLift-Kategorie und die CAT-ID der aktiven Kategorie selber
So kann ich jetzt LevelLift-weise oder/und auch Kategorie-weise meine Klassen in der CSS-Datei beeinflussen.
Damit wird aus: <body> => <body class="parent-XXX category-ZZZ">
Dadurch bekomme ich eine feine Möglichkeit, Anpassungen nahezu nur noch in der CSS-Datei vornehmen zu können...
FEINE SACHE, deshalb nochmas danke, für die Anregung
Einfügen in den Ordner:
.../template/inc_sript/frontend_render/rt_inject-body-with-LevelList-class.php
Code: Select all
<?php
/* ****************************************************************************************
rt_inject-body-with-LevelList-class.php 18.11.2009-20:25
Der body-class zwei zusaetliche Klassen anfuegen: "parent-XXX" und "category-YYY"
Damit wird aus: <body> => <body class="parent-XXX category-ZZZ">
Jetzt koennen CSS-Klassen nach dem folgenden Schnittmuster beeinflusst werden:
body {...}
body.parent-XXX {...} Betrifft die komplette Gruppe mit der LevelLift CAT-ID: XXX
body.category-ZZZ {...} Betrifft NUR die Kategorie mit der CAT-ID: ZZZ
#content {...}
.parent-XXX #content {...} Betrifft die komplette Gruppe mit der LevelLift CAT-ID: XXX
#right-container {...}
.category-ZZZ #right-content {...} Betrifft NUR die Kategorie mit der CAT-ID: ZZZ
So koennen Kategorie- oder LevelLift- basierte Aenderungen der CSS-Klassen erfolgen
Copyright (c) 2009 Manfred Peperkorn - all rights reserved
**************************************************************************************** */
// ----------------------------------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------------------------------
// Zuerst abfragen der Eben und zuordnen der "LevelLift-ID"
// ----------------------------------------------------------------------------------------
if(isset($GLOBALS['LEVEL_ID'][1])) { $level_id = $GLOBALS['LEVEL_ID'][1];
// Der body-class die "LevelLift-ID" der Parent-Ebene und die "Kategorie-ID" anfuegen
// ----------------------------------------------------------------------------------------
$GLOBALS['template_default']['body']['class'] = 'parent-'.$level_id.' category-';
}
?>
Re: Css eines Artikels ändern
Auf Kategorieebene erhalte ich mittels:
template/inc_settings/template_default/something_ABC_XYZ.php
bei allen in ihr enthaltenen Artikel.
(allerdings habe ich die index.php an entscheidender stelle modifiziert, da ich nicht ewig eine neue _ID in den CSS berücksichtigen bzw mitschleppen will. ich habe den "ID-hinten-anfüg-Teil" entfernt. claus und ich hatten das Thema damals einmal aufgegriffen.)
Mit der Script-Korrektur von Knut
Demnach werden die Angaben in template_default/... überschrieben.
Warum wieder eine "-1" angehängt wird, verstehe ich im Moment noch nicht.
Aber offenbar eignet sich das Sript dazu, über Kategorien hinweg, gesteuert über einen bestimmten Keyword-Tag, einzelne Artikel zu manipulieren. Tricky.
Pepes Vorschlag, zusätzlich auch den Parent-Level beeinflussen zu können, scheint mir zudem sehr flexibel zu sein, entzieht sich aber meinem Vorstellungsvermögen und habe ich noch nicht ausprobiert. Dazu konnte ich claus damals bereits nicht mehr folgen.
template/inc_settings/template_default/something_ABC_XYZ.php
Code: Select all
<body id="testid1" class="blupp testclass1">
(allerdings habe ich die index.php an entscheidender stelle modifiziert, da ich nicht ewig eine neue _ID in den CSS berücksichtigen bzw mitschleppen will. ich habe den "ID-hinten-anfüg-Teil" entfernt. claus und ich hatten das Thema damals einmal aufgegriffen.)
Mit der Script-Korrektur von Knut
erhalte ich nun:flip-flop wrote:...Der Vergleich mit !== false fehlt nur).
...Code: Select all
if(strpos($content['all_keywords'], '*CSS-dark*') !== false) { $template_default['body']['class'] = 'dark level-'; $content['all_keywords'] = str_replace('*CSS-dark*', '', $content['all_keywords']); }
Code: Select all
<body id="testid1" class="dark level-1">
Warum wieder eine "-1" angehängt wird, verstehe ich im Moment noch nicht.
Aber offenbar eignet sich das Sript dazu, über Kategorien hinweg, gesteuert über einen bestimmten Keyword-Tag, einzelne Artikel zu manipulieren. Tricky.
Pepes Vorschlag, zusätzlich auch den Parent-Level beeinflussen zu können, scheint mir zudem sehr flexibel zu sein, entzieht sich aber meinem Vorstellungsvermögen und habe ich noch nicht ausprobiert. Dazu konnte ich claus damals bereits nicht mehr folgen.
Re: Css eines Artikels ändern
Wenn ich z.B. die verschiedenen Haupteben einer umfangreichen Site mit verschiedenen "Leitfarben" ausrüsten will, damit der Besucher bereits an der Farbe merkt, in welchem Bereich er sich befindet, dann kann ich MEINE Lösung jetzt sehr gut nutzen, vorausgesetzt, der Layoutaufbau ist entsprechend vorbereitet.
Du willst bestimmte Kategorien 2spaltig statt 3 Spaltig ausführen.
Oder, du willst ParentLevel abhängig andere Headerbilder einbinden... ach, dir wird sicher was einfallen
Solltest du einfach mal versuchen...
Du willst bestimmte Kategorien 2spaltig statt 3 Spaltig ausführen.
Oder, du willst ParentLevel abhängig andere Headerbilder einbinden... ach, dir wird sicher was einfallen
Solltest du einfach mal versuchen...
Re: Css eines Artikels ändern
Hab's ausprobiert: nun erhalte ich für alle Artikel gleichsam bspw.:
wobei hier in der Sache nur die Klassen relevant sind, also parent-3 category-3.
Damit befinde ich mich aber wieder nur auf der Ebene einer Kategorie.
Wenn ich nur jeweils einen Artikel innerhalb einer Kategorie anlege, dann scheint mir das Script geeignet zu sein.
Aber das funktioniert auch mit den üblichen Bordmitteln.
/template/inc_settings/template_default/
0_start.php
1_media.php
2_seminare.php
3_konzept.php
4_referenzen.php
5_about.php
6_kontakt.php
So können in diesem Beispiel 7 verschiedene Bildschirmdarstellungen für alle Seiten in sieben Kategorien abgebildet werden.
Das lässt sich beliebig ausweiten.
/template/inc_script/frontend_init/disabled/inject_body_id.php
gibt's auch noch.
Innerhalb einer Darstellungssituation für eine bestimmte Ebene erscheint mir die Lösung auf der Basis eines Keyword-Tags besser geeignet, um damit gezielt nur einen einzelnen von mehreren Artikeln innerhalb einer Kategorie manipulieren zu können.
Code: Select all
<body id="testid1" class="parent-1 category-1">
<body id="testid3" class="parent-3 category-3">
usw.
Damit befinde ich mich aber wieder nur auf der Ebene einer Kategorie.
Wenn ich nur jeweils einen Artikel innerhalb einer Kategorie anlege, dann scheint mir das Script geeignet zu sein.
Aber das funktioniert auch mit den üblichen Bordmitteln.
...mache ich das mitpepe wrote:Wenn ich z.B. die verschiedenen Haupteben einer umfangreichen Site mit verschiedenen "Leitfarben" ausrüsten will, damit der Besucher bereits an der Farbe merkt, in welchem Bereich er sich befindet, dann ...
/template/inc_settings/template_default/
0_start.php
1_media.php
2_seminare.php
3_konzept.php
4_referenzen.php
5_about.php
6_kontakt.php
So können in diesem Beispiel 7 verschiedene Bildschirmdarstellungen für alle Seiten in sieben Kategorien abgebildet werden.
Das lässt sich beliebig ausweiten.
/template/inc_script/frontend_init/disabled/inject_body_id.php
gibt's auch noch.
Innerhalb einer Darstellungssituation für eine bestimmte Ebene erscheint mir die Lösung auf der Basis eines Keyword-Tags besser geeignet, um damit gezielt nur einen einzelnen von mehreren Artikeln innerhalb einer Kategorie manipulieren zu können.
Re: Css eines Artikels ändern
Dann hast du das noch nicht richtig verstanden Oder ich habs nicht klar genug gemacht
Das ganze wird doch erst dann Interessant, wenn du unterhalb dieser 1. Ebene eine oder mehrere Unterebenen hast... erst dann werden die Werte unterschiedlich sein!
parent-X bleibt dann für eine vertikale Ebenengruppe identisch
category-Z wird aber individuell sein
Erst dann wird das verständlich und macht auch Sinn. Funktioniert so wie der LevelLift bei der NAV_LIST_UL
Wenn du also z.B. hast:
0_start
1_media
2_seminare 0
+---7_seminar 1
+---8_seminar 2
+---9_seminar 3
3_konzept
4_referenzen
5_about
6_kontakt
Dann gilt folgendes:
2_seminar 0 = parent-2 | category-2
7_seminar 1 = parent-2 | category-7
8_seminar 2 = parent-2 | category-8
9_seminar 3 = parent-2 | category-9
Das ganze wird doch erst dann Interessant, wenn du unterhalb dieser 1. Ebene eine oder mehrere Unterebenen hast... erst dann werden die Werte unterschiedlich sein!
parent-X bleibt dann für eine vertikale Ebenengruppe identisch
category-Z wird aber individuell sein
Erst dann wird das verständlich und macht auch Sinn. Funktioniert so wie der LevelLift bei der NAV_LIST_UL
Wenn du also z.B. hast:
0_start
1_media
2_seminare 0
+---7_seminar 1
+---8_seminar 2
+---9_seminar 3
3_konzept
4_referenzen
5_about
6_kontakt
Dann gilt folgendes:
2_seminar 0 = parent-2 | category-2
7_seminar 1 = parent-2 | category-7
8_seminar 2 = parent-2 | category-8
9_seminar 3 = parent-2 | category-9
Re: Css eines Artikels ändern
parent-2 | category-8 soweit ok. Aber weiterhin werden damit komplette Ebenen berücksichtigt. Alle darin enthaltenen Artikel erhalten den gleichen Code. Genau diese Funktion ist durch die custom templates für beliebige Ebenen möglich, also ohne Script. Hinzu kommt, dass dieses Script den "eingebauten" Mechnanismus komplett aushebelt und ggf. bereits die in custom templates definierten IDs und Klassen ausschaltet. Ist also irgend wie doppeltgemoppelt. Das Anhängen der ID ist in meinen Augen zudem überflüssig bzw. erhöht u.U. den Aufwand bei der Steuerung über CSS.
Vor allem aber ist im Sinne der Fragestellung eine Abweichung bzw. Steuerung nur eines einzelnen Artikels aber nicht möglich. Genau hier setzt die Methode mittels Keyword an.
Vor allem aber ist im Sinne der Fragestellung eine Abweichung bzw. Steuerung nur eines einzelnen Artikels aber nicht möglich. Genau hier setzt die Methode mittels Keyword an.
Re: Css eines Artikels ändern
OK, meine Lösung kann nur category-weise unterscheiden und nicht artikel-weise ... da hast du nun recht.
Aber ich seh' es mal so:
Je mehr Tools sich in unserer Toolbox sammeln, um so flexibler können wir in der phpwcmsSandbox spielen
Aber ich seh' es mal so:
Je mehr Tools sich in unserer Toolbox sammeln, um so flexibler können wir in der phpwcmsSandbox spielen