Page 1 of 2

Css eines Artikels ändern

Posted: Mon 16. Nov 2009, 14:50
by kubik
Hi Leute,
sehe momentan den Wald vor lauter Bäumen nicht:
Wenn ich für einen einzigen Artikel ein spezielles css angeben möchte, wo mache ich das?
Zur Erkärung, ich möchte einzelne Artikel mit einem dunklen statt einem hellen Seitenhintergrund haben.

Grüße aus Ludwigsburg

Jochen Kubik

Re: Css eines Artikels ändern

Posted: Mon 16. Nov 2009, 18:20
by Oliver Georgi
Ich würde mit einem speziellen Keyword arbeiten und mittels Frontend Render dann entsprechend darauf reagieren.

Keyword "*CSS-dark*" beim Artikel ins entsprechende Feld setzen. Beim Rendering wird darauf geprüft und <body> Tag erhält die entsprechende Klasse. Das kann dann normaler per CSS definiert werden.
2009-11-16_180910.png
2009-11-16_180910.png (1.18 KiB) Viewed 6492 times

Code: Select all

if(strpos($content['all_keywords'], '*CSS-dark*')) {
	$template_default['body']['class'] = 'dark level-';
	$content['all_keywords'] = str_replace('*CSS-dark*', '', $content['all_keywords']);
}
?>

Code: Select all

body.dark {
  background-color: #666666;
}
Achtung - die Klasse(n) "dark level-" wurde bewußt so gewählt, da immer noch zusätzlich die Level ID mitgegeben wird.

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 13:52
by kubik
Hallo Oliver,
ups, das ist mir zu hoch, da ändere ich doch lieber gleich eine gesamte Kat im einem zusätzlichen Stylesheet,
aber trotzdem vielen Dank für Deine unterstützung!
Grüße aus Ludwigsburg

Jochen Kubik

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 14:19
by Oliver Georgi
zu hoch? Lösung steht doch da!

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 14:49
by juergen
Das kann man so nicht stehen lassen !

Das ist cool !

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 15:09
by kubik
Hi Leute ;-)
Bloß weil es mir zu hoch ist, muß es ja nicht uncool sein, im Gegenteil ;-)

Grüße aus Ludwigsburg

Jochen Kubik

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 15:56
by top
Auch wenn es alles andere als elegant ist, so verkraften alle mir bekannten aktuellen Browser auch eine CSS-Einbindung innerhalb des BODY.

Wenn du also einfach ein Contentpart "HTML" mit folgendem Inhalt versiehst, sollte es auch funktionuckeln.

Code: Select all

<style type="text/css" media="screen"><!--
body {
	background-color: #C8E280; 
}
 --></style>
Ich habe mich allerdings noch nicht getraut, das Ergebnis mal durch einen Validator zu schicken. :mrgreen:

Wenn ich das nächste Mal etwas in die Richtung brauche, werde ich mir aber die Lösung von OG anschauen...

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 17:26
by Oliver Georgi
Inline CSS ist nicht erlaubt.

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 17:29
by pepe
Bin gerade mal vorbeigekommen...

Ich habe mir für solche Fälle ein HTML-Template vorbereitet, dass binde ich nur in den oder die entsprechenden Artikel ein...
Ohne weiteren Inhalt! Fertig! :D
Dadurch wird das gültige CSS-Format überschrieben... und steht auch an der richtigen Stelle im "head".
Nicht besonders "elegant", aber fix und klappt per Mausklick :D

Abspeichern unter ...../template/inc_cntpart/html/pepes_css-switch_dark-bg.tmpl

Code: Select all

[PHP]
/* 
 Einfach abspeichern unter ...../template/inc_cntpart/html/pepes_css-switch_dark-bg.tmpl
 Einbinden von zusaetzlichem css-Code zum Variieren der Standard-Formatierung 
*/
$GLOBALS['block']['custom_htmlhead']['css-switch-dark-bg'] = '
<!-- Umschaltung des "body" auf "dunkelen Hintergrund" -->
  <style type="text/css">
     body { background:#666 }
   </style >';
[/PHP]
[TITLE]<!-- {TITLE} -->[/TITLE][SUBTITLE]
<!-- {SUBTITLE} -->[/SUBTITLE]
In der Art habe ich mir diverse UMSCHALTER vorbereitet und kann so auch nur ein einziges Template mit unterschiedlicher "Optik" ausstatten:

Hier und in den Unterebenen kann man sehen, was ich meine. (Quelltext ansehen!)
http://webdesign-dp.de/pepes-sandbox/pe ... sign.phtml

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 18:33
by Heiko H.
Hallo,
wenn OG, den Tip mir dem Keyword nicht gegeben hätte, hätte ich es wahrscheinlich mittels "body_id" gelöst.
OG's Variante ist allerdings viiiiieel cooler (um hier mal beim Jargon zu bleiben) :mrgreen:

@ kubik
Schau's Dir nochmal an, sooo schwer ist es nicht UND es ist extrem flexibel!!! so kann z.Bsp. ein Redakteur mittels entsprechendem Keyword ohne weitere Kenntnisse/Rechte zwischen verschiedenen, vordefinierten Layouts wechseln - 'ne Spitzenidee :idea: :idea: :idea:

Los Grüßos - Heiko...

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 19:57
by markus s
@kubik,
mache dir eine datei - mit dem namen "csskeychange.php"
kopiere dir den "code" rein und setze die datei in den folder template/inc_script/frontend_render.

dann schreibe in das feld "keywords" das *CSS-dark* rein.
dann wird das gerendert und das ergebnis ist ein
body.dark { blablabla }

Code: Select all

<?php

/*************************************************************************************

   Copyright notice
   (c) 2002-2009 Oliver Georgi (oliver@phpwcms.de) // All rights reserved.

   This script is part of PHPWCMS. The PHPWCMS web content management system is
   free software; you can redistribute it and/or modify it under the terms of
   the GNU General Public License as published by the Free Software Foundation;
   either version 2 of the License, or (at your option) any later version.
   The GNU General Public License can be found at http://www.gnu.org/copyleft/gpl.html   A copy is found in the textfile GPL.txt and important notices to the license 
   from the author is found in LICENSE.txt distributed with these scripts.
   This script is distributed in the hope that it will be useful, but WITHOUT ANY 
   WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
   PARTICULAR PURPOSE.  See the GNU General Public License for more details.
   This copyright notice MUST APPEAR in all copies of the script!

*************************************************************************************/

// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------

if(strpos($content['all_keywords'], '*CSS-dark*') !== false) {
   $template_default['body']['class'] = 'dark level-';
   $content['all_keywords'] = str_replace('*CSS-dark*', '', $content['all_keywords']);
}
?>

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 23:38
by top
Oliver Georgi wrote:Inline CSS ist nicht erlaubt.
Ist ja auch kein Inline CSS :wink:

Mir ist schon klar, dass zentrale Formate in den HEAD-Bereich gehören und nicht in den BODY. (Auch wenn es trotzdem funktioniert... :roll: )

Es gibt manchmal Seiten, bei denen es einfach praktisch wäre, wenn man für einige Unterseiten ganz problemlos ein paar Änderungen zur allgemeinen CSS-Datei einfügen möchte. Für jede Kleinigkeit (die nur einmal auf der gesamten Website benötigt wird) dann neue Vorlagen einzuführen oder die CSS-Dateien zu erweitern ist da nicht unbedingt die beste Lösung. Da könnte ich schon ein Contentpart gebrauchen, mit der ich mal eben ein paar spezielle Formatierungen als zentrale Formate im HEAD positionieren könnte.
Wenn ich wüsste, wie ich einen Contentpart "HTML" mit einem CUSTOM_BLOCK innerhalb des HEAD einfügen könnte, hätte ich das schon längst gemacht. 8)

Re: Css eines Artikels ändern

Posted: Tue 17. Nov 2009, 23:49
by pepe
Du brauchst den CP "HTML" nur in dem Artikel selber positionieren und mein HTML-Template "auszuwählen"...
dann funktioniert der Rest schon automatisch ;-)

sieh selber:

OHNE HTML-CP: http://webdesign-dp.de/pepes-sandbox/pe ... sign.phtml

MIT HTML-CP: http://webdesign-dp.de/pepes-sandbox/pe ... gn-2.phtml

Und schon ist der BG dunkel... Und im Quellcode siehst du, dass alles an der richtigen Stelle eingebunden wurde!
Eigentlich genau das, was du suchst... und "verstehen" kann man es auch... finde ich :-)

Die Umschaltung vom 3 Spalter auf die 2 und 1 spaltige Variante, habe ich übrigens auch so gemacht...

Re: Css eines Artikels ändern

Posted: Wed 18. Nov 2009, 03:35
by Jensensen
Das Script funktioniert nicht, wenn man
/config/phpwcms/conf.template_default.inc.php

bzw. [custom]
/template/inc_settings/template_default/something_ABC_XYZ.php

benutzt.
Oder irre ich da?

Re: Css eines Artikels ändern

Posted: Wed 18. Nov 2009, 09:38
by Oliver Georgi
Du irrst und irrst nicht.

Das Script setzt direkt auf diese Funktionalität auf und ergänzt diese.