Page 1 of 3

Gesamterscheinungsbild eines ContentArtikel

Posted: Tue 13. Nov 2007, 12:00
by isp-master
Hallo,

ich bin momentan am verzweifeln.
Versuche gerade das Gesamterscheinungsbild eines ContentArtikel zu verändern. Jedoch weis ich nicht so ganz genau, wonach ich suchen soll.

Die Ausgabe des Titels wird z.B. in der conf.template_default.inc.php Datei formatiert.

Wie sieht es aber mit dem Gesamten Content aus?

Ein Beispiel: Ich möchte auf einer Seite mehrere Artikel erstellen. Jeder Artikel soll in einem eigenen Kasten erscheinen.

Vielleicht hat ja jemand eine Idee wie ich da vorgehen muss?!

Gruß aus dem Norden,

Posted: Tue 13. Nov 2007, 12:35
by flip-flop

Posted: Tue 13. Nov 2007, 14:31
by isp-master
Hallo Knut,

Danke erst mal, aber das ist nicht ganz das richtige.

Ich meinte die Formatierung der anderen Contents (gezielt WYSIWYG HTML)

Die Formatierung für den Übergeortneten Artikel kenne ich.

Dafür ist ja die Datei article_summary.tmpl im Ordner template\inc_default zuständig.

Gruß

Posted: Tue 13. Nov 2007, 14:36
by flip-flop
Ich glaube ich verstehe dich nicht.

Posted: Tue 13. Nov 2007, 14:43
by isp-master
mmhh, wie kann ich Dir das besser erklären...

Welche .tmpl Datei ist für den Artikel Content "WYSIWYG HTML" zuständig?

Posted: Tue 13. Nov 2007, 15:43
by flip-flop
Gibt es kein Template zu.
Der CP Text mit Bild bringt zumindest eine Klasse mit.

So etwas musst du dann übergeordnet lösen.

Posted: Tue 13. Nov 2007, 15:59
by isp-master
und wie gehe ich dabei vor, wenn ich z.B. Den CP Text mit Bild benutze?

Posted: Tue 13. Nov 2007, 16:09
by pepe
Was willst du denn eiegentlich ändern???

Ich glaube, du stellst dir das komplizierter vor, als es ist!?

Das Aussehen (Die Formatierung) wird komplett über die frontend.css gesteuert...

Posted: Tue 13. Nov 2007, 16:13
by isp-master
ich möchte, dass um jeden Inhalt des CP eine Linie oder auch Kasten erscheint.

Posted: Wed 14. Nov 2007, 00:19
by pepe
Wenn du innerhalb eines Artikels mehrere CPs Text mit Bild verwendest, wird jeder CP folgendermassen Eingerahmt:

Code: Select all

<div class="articleText">
.
.
.
.
</div>
Damit hast du die Möglichkeit, innerhalb der frontend.css diese Klasse zu erweitern, so, daß du deinen Rahmen bekommst:

z.B.:

Code: Select all

.articleText {
margin:20px 0;
padding:10px;
border: 1px solid #ccc;
.
.
.
}
Aber damit hast du NICHT die CP-Titel im Sack!!!
Aber vielleicht reicht dir das ja schon???

Posted: Wed 14. Nov 2007, 10:17
by Iller13
@pepe

Na gut, hat man aber einen Text mit Bild, funktioniert das auch nicht mehr, dann ist das Bild außerhalb des Rahmens?! :(

Posted: Wed 14. Nov 2007, 10:32
by pepe
Das mag sein, kommt eben immer darauf an, wie man seinen Content aufbaut...
Ich verwende NIE Bilder im CP Text mit Bild, sondern immer separat, dann bin ich flexibler.

Was die Rahmen angeht,
mach ich das meist mit separaten HTML-CPs vor und hinter dem/den CPs, die gerahmt oder spezielle formatiert dargestellt werden sollen:

CP-HTML:
<div class="irgendein_name" style="......">
...
Hier alle die gewünschten CPs mit "Sonderformatierung"
...
CM-HTML:
</div>

Und da ich mir solche kurzen Passagen als Snippet abgespeichert habe (TagsHelper) geht das recht fix...


Die Klasse kann man dann in der frontend.css "befüllen"

KH: space before/after

Posted: Wed 14. Nov 2007, 12:41
by flip-flop
Wir waren da vor einiger Zeit schon einmal ziemlich nah dran.

Ich spinne jetzt mal ein bischen:

Wenn wir uns z.B. diese beiden CP-Begrenzer anschauen: Abstand: davor [333] danach [333]

<div style="margin: 333px 0pt 0pt; padding: 0pt;" class="spaceBeforeCP"></div>
----------
... CP ...
----------
<div style="margin: 0pt 0pt 333px; padding: 0pt;" class="spaceAfterCP"></div>

Und nun im frontend_render einen punktgenauen kleinen Ersetzer ablegen ........ :idea:

Nachteil: Der variable Abstand fällt natürlich weg.

Aber -> Man könnte ja auch z.B. margin: 1105px zerlegen (11=MeineFormatierung | 05=Abstand) und so wieder den variablen Abstand herstellen. :idea: :idea:

(Die Möglichkeiten sind sehr vielfältig, man darf irgendwann nur nicht den Überblick verlieren wenn es mehr wird). :D

Ist eine Technik die aus der Feder von O.G. stammt :!:

[EDIT]
Einfaches Beispiel (Rahmen um CP), wie diese Idee umgesetzt werden kann. (Ist nicht laufzeitoptimiert, die Richtung sollte aber stimmen.)
Die Ausgabe eines CPs mit SHOW_CONTENT verlangt eine gesonderte Behandlung -> siehe "space before: for a cp output using SHOW_CONTENT"

Grundsätzlich sollte in diesem Fall immer Abstand: davor [333] danach [333] zusammen verwendet werden.

Achtung: Wird speziell eine Box um den CP "Text mit Bild" gelegt und dieser CP mit SHOW_CONTENT abgerufen, orientiert sich die Boxunterkante am Text und nicht am Bild !!!
Dem Verhalten kann bisher nur entgegengesteuert werden indem im CP "Text mit Bild" die Option "Bild in Tabelle links/rechts" gewählt wird.

In die Datei /template/inc_script/frontend_render/rt_before_after_cp01.php und in der config -> $phpwcms['allow_ext_render'] = 1;

Code: Select all

<?php
// **************************************************************************
// 15.11.07 KH (flip-flop) Conception by Oliver Georgi
// Converting the original spacer line before and after a cp into an other 
// or enhanced instruction by triggering the space: before and after input
// Forum: http://www.phpwcms.de/forum/viewtopic.php?p=94762#94762
// Input e.g: CP backend -> Space: before [333] after [333]
// **************************************************************************
// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------

// space before: for a normal cp output
$content['all'] = str_replace('<div style="margin:333px 0 0 0;padding:0;" class="spaceBeforeCP"></div>',
 '<div class="spaceBeforeCP"><!-- nop --></div><div style="border: 1px solid #ccc;  padding:5px; margin:10px 0 10px 0;">',
  $content['all']);

// space after: for a normal cp output
$content['all'] = str_replace('<div style="margin:0 0 333px 0;padding:0;" class="spaceAfterCP"></div>',
 '<div style="clear: both;"><!-- nop --></div></div><div class="spaceAfterCP"><!-- nop --></div>',
 $content['all']);

// -------------------- 
// space before: for a cp output using SHOW_CONTENT 
$content['all'] = str_replace('<div style="margin:333px 0 333px 0; padding:0;">',
 '<div class="spaceBeforeCP"><!-- nop --></div><div style="border: 1px solid #ccc; padding:5px; margin:10px 0 10px 0;">',
  $content['all']);

// space after for cp output using SHOW_CONTENT
// The closing </div> will be generated by the system
// !!! There we have no chance to set a clear: both in the section "after CP" !!!  

?>
Die häufigste Anwendungsfall wird sicher eine Linie oberhalb- und/oder unterhalb eines CPs sein.
Abstand: davor [111] danach [222]

In die Datei /template/inc_script/frontend_render/rt_before_after_cp02.php und in der config -> $phpwcms['allow_ext_render'] = 1;

Code: Select all

<?php
// **************************************************************************
// 15.11.07 KH (flip-flop) Conception by Oliver Georgi
// Converting the original spacer line before and after a cp into an other 
// or enhanced instruction by triggering the space: before and after input
// Forum: http://www.phpwcms.de/forum/viewtopic.php?p=94762#94762
// Input e.g: CP backend -> Space: before [111] after [222]  (line before/after)
// **************************************************************************
// ----------------------------------------------------------------
// obligate check for phpwcms constants
if (!defined('PHPWCMS_ROOT')) {
   die("You Cannot Access This Script Directly, Have a Nice Day.");
}
// ----------------------------------------------------------------

// One line before or after the CP (space: before [111]  after [222])

// simple line before the CP
$content['all'] = str_replace('<div style="margin:111px 0 0 0;padding:0;" class="spaceBeforeCP"></div>',
 '<div style="border-top:1px dotted #666; margin-top:10px; margin-bottom:5px;" class="spaceBeforeCP"></div>',
 $content['all']);

// simple line after the CP
$content['all'] = str_replace('<div style="margin:0 0 222px 0;padding:0;" class="spaceAfterCP"></div>',
 '<div style="clear: both;"><!-- nop --></div><div style="border-bottom:1px dotted #666; margin: 10px 0 10px 0;" class="spaceAfterCP"></div>',
 $content['all']);

// -------------------- 
// simple line before/after: for a cp output using SHOW_CONTENT 
$content['all'] = str_replace('<div style="margin:111px 0 222px 0; padding:0;">',
 '<div class="spaceBeforeCP"><!-- nop --></div><div style="border-top:1px dotted #666; border-bottom:1px dotted #666; 
 margin:10px 0 10px 0; padding: 5px 0 5px 0;">',
  $content['all']);

// simple line before/after for  a cp output using SHOW_CONTENT 
// The closing </div> will be generated by the system 
// !!! There we have no chance to set a clear: both in the section "after CP" !!!  


// simple line before: for a cp output using SHOW_CONTENT 
$content['all'] = str_replace('<div style="margin:111px 0 0 0;padding:0;clear:both;"></div>',
 '<div class="spaceBeforeCP"><!-- nop --></div><div style="border-top:1px dotted #666; margin-top:10px; padding-top:5px; clear:both;"></div>',
 $content['all']);

// simple line after: for a cp output using SHOW_CONTENT 
$content['all'] = str_replace('<div style="margin:0 0 222px 0;padding:0;clear:both;"></div>',
 '<div style="border-bottom:1px dotted #666; margin-bottom:10px; padding-bottom:5px; clear:both;"></div><div class="spaceAfterCP"><!-- nop --></div>',
 $content['all']);

?>
[/EDIT]

Knut

Posted: Wed 14. Nov 2007, 14:34
by pepe
moin flip-flop,

deine Denkansatz ist ja nicht schlecht... aber doch irgendwie Frickelei!
Denk mal an die vielen Newbees, die jetzt schon keinen Durchblick haben :cry:

Besser wäre da schon, ein zusätzliches Feld im jedem CP vorzusehen, in das man eine eigene Klasse ablegen kann, die dann das komplette CP umschließt.

Z.B. unmittelbar über dem Titelfeld

- Bleibt das Leer... alles wie bisher.
- Ist dort ein Eintrag vorhanden, wie: pepes_klasse_klasse , dann wird um den CP folgendes gerendert:

<div class="pepes_klasse_klasse">
.
.
.
</div>


DAS... wäre eine GUTE Lösung, oder?

Alternativ wäre natürlich auch der Aufruf eines eigenen Templates denkbar... oder sogar "sowohl als auch"...
Man was für Möglichkeiten sich dann auftäten.....

PS
Womit ich deine Idee nicht kaput machen will, immerhin besser als garnichts :wink:

PPS EDIT
Und das mir bloß niemand die Felder für Abstand oberhalb und Unterhalb der CPs wegrationalisiert...

.spaceBeforeCP hat bei mir z.B. ein clear:both bekommen
.spaceAfterCP dagegen aber NICHT

Damit kann ich eine Menge verschiedenen Layout-Varianten im Contentbereich schnell erreichen... je nach dem, was ich wo eintrage :wink:
Brauch ich wie das "Tägliche Brot"

Posted: Wed 14. Nov 2007, 15:20
by oeconom
Hallo Pepe,
finde ich einen tollen Vorschlag!
Damit wäre allen gedient.

Winterliche Grüße aus dem Schwabenland, :wink:
Felix