Seite 22 von 51
Re: Layout
Verfasst: Fr 4. Aug 2006, 10:51
von mvf
schau dir mal den uotput des moduls an, ganz unten wird die pagination ausgegeben und darüber der teaser, da stehen IMHO sogar klassen und id's drin wenn ich nicht irre
der rest ist plain html und css
Re: Layout
Verfasst: Fr 4. Aug 2006, 11:25
von Aixtraweb
mvf hat geschrieben:schau dir mal den uotput des moduls an, ganz unten wird die pagination ausgegeben und darüber der teaser, da stehen IMHO sogar klassen und id's drin wenn ich nicht irre
der rest ist plain html und css
Code: Alles auswählen
# Output data
# Every output manipulation should be done here...
#
# Base information:
# $aSettings["Elements"]: Number of expected, additional elements from each article
# $aSettings["ArticlePerPage"]: Number of articles per page (0: show all)
# $aSettings["k".$i]["ElementType"]: Per Element: Type of Element: Text, Image or ExtractedImage
# $aSettings["k".$i]["ElementWidth"]: Per Element: Text length or image width (-> recycling ...)
# $aSettings["k".$i]["ElementHeight"]: Per Element: Image width
#
# Per article:
# $aValue["Headline"]: Content of article element specified as containing the headline information
# $aValue["Link"]: Relative link to get to the listed article
# $aValue["LastModified"]: Last modified date of the article
# $aValue["Created"]: Created date of the article
# $aValue["Published"]: Published date of the article
# $aValue["Category"]: Category name
#
# Per article additional element:
# $aValue["i".$i]["Value"]: Text (only for text elements, otherwise "")
# $aValue["i".$i]["WebPath"]: HTTP... path to image
# $aValue["i".$i]["ServerPath"]: /server/... path to image
# $aValue["i".$i]["Width"]: >Original< image width
# $aValue["i".$i]["Height"]: >Original< image height
foreach ($aData as $aValue) {
echo '<div>', chr(10);
echo ' <div id="headline">'.$aValue["Headline"].'</div>', chr(10);
if ($aSettings["Elements"] > 0) {
for ($i = 0; $i < $aSettings["Elements"]; $i++) {
switch (TRUE) {
case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"):
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) {
# Check, if resize necessary
if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) &&
($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] ||
$aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) {
# Scale image
$image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false);
#Get dimensions of the image
list ($width, $height, $type, $attr) = getimagesize($image);
} else {
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
}
}
if ($image != "") {
echo ' <div id="image"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" vspace="4"/></div>', chr(10);
}
break;
default: // Everything else is treated as "Text"
echo ' <div id="text">'.$aValue["i".$i]["Value"].'</div>', chr(10);
}
}
}
echo '<div align="right"><a href="'.$aValue["Link"].'">'.mi18n("More...").'</a></div>', chr(10);
echo '</div><hr width="100%" size="1" noshade>', chr(10);
}
}
Mhmhm, für mich sieht das nach allem anderen aus als nach plain html!?
Es geht mir nicht um die CSS sondern das HTML Layout wo was platziert wird nicht wie es formatiert wird!
Re: Layout
Verfasst: Fr 4. Aug 2006, 12:23
von gruhle
Aixtraweb hat geschrieben:
Mhmhm, für mich sieht das nach allem anderen aus als nach plain html!?
Es geht mir nicht um die CSS sondern das HTML Layout wo was platziert wird nicht wie es formatiert wird!
Hallo,
wichtig sind die 'echo'-Zeilen, weil mit denen der HTML-Output erstellt wird. Die kannst Du nach Deinen Wünschen anpassen.
Ich habe aus Deinen Beiträgen aber nicht ganz ersehen können, ob Du die Elemente Überschrift, Bild und Text in einer Tabelle fest anordnen willst.
Im Ursprungsformat werden die Ausgaben mit <div> Elementen gemacht, was dazu führt, dass für jedes Element eine neue Zeile erstellt wird. Dein gewünschtes Layout wird daher zusätzlich <span>-Elemente brauchen.
Bei mir wird die Headline als Überschrift (als Link auf den Artikel) ausgegeben. Danach folgen nebeneinander ein Bild (wenn vorhanden) und der Text. Direkt im Anschluss an den Text verlinke ich mit "Weiter..."
Das sieht dann so aus:
Code: Alles auswählen
foreach ($aData as $aValue) {
echo '<div>', chr(10);
echo ' <div id="newshead"><span class="newscat">'.$aValue["Category"].':</span> <a href="'.$aValue["Link"].'">'.$aValue["Headline"].'</a></div>', chr(10);
echo ' <div id="text">';
if ($aSettings["Elements"] > 0) {
for ($i = 0; $i < $aSettings["Elements"]; $i++) {
switch (TRUE) {
case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"):
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) {
# Check, if resize necessary
if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) &&
($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] ||
$aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) {
# Scale image
$image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false);
#Get dimensions of the image
list ($width, $height, $type, $attr) = getimagesize($image);
} else {
$image = $aValue["i".$i]["WebPath"];
$width = $aValue["i".$i]["Width"];
$height = $aValue["i".$i]["Height"];
}
}
if ($image != "") {
echo ' <span class="newsimage"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" /></span>', chr(10);
}
break;
default: // Everything else is treated as "Text"
echo ' '.$aValue["i".$i]["Value"].'<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a></div>';
}
}
}
#echo '<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a>', chr(10);
echo '</div>', chr(10);
echo '<div id="textende"> </div>', chr(10);
}
}
Für das Bild gibt es eine eigene CSS-Klasse mit einer float-Angabe. Wichtig ist, dass die Float-Angabe später mit einer Clear-Anweisung (in der id Textende) wieder aufgehoben wird.
Gruß
Reiner
Re: Layout
Verfasst: Mo 7. Aug 2006, 06:57
von Aixtraweb
gruhle hat geschrieben:Bei mir wird die Headline als Überschrift (als Link auf den Artikel) ausgegeben. Danach folgen nebeneinander ein Bild (wenn vorhanden) und der Text. Direkt im Anschluss an den Text verlinke ich mit "Weiter..."
Gruß
Reiner
Super - Herzlichsten Dank, damit konnte ich meinen Layout-Wunsch auch anpassen... nur das mit dem float verstehe ich nicht!?
Re: Layout
Verfasst: Mo 7. Aug 2006, 09:58
von gruhle
Aixtraweb hat geschrieben:... nur das mit dem float verstehe ich nicht!?
Damit ein vorhandenes Bild links ausgegeben wird, und der Text darum fließt, hatte ich in der CSS-Formatierung eine Float-Anweisung aufgenommen. Ohne diese wurde das Bild zwar auch links abgebildet, aber außerhalb des linken Rahmens (der war nach rechts versetzt, also neben dem Bild). Wenn nun aber der Teaser-Text nicht nicht so hoch war, wie das Bild, ragte das Bild dann nach unten in den nächsten Teaser hinein.
Das habe ich gelöst, indem ich bei der Formatierung für die Schlusszeile eines Teasers noch 'Clear:both;' aufgenommen habe. Damit ist der Teasertextbereich nun so hoch wie das Bild, auch wenn der Teasertext weniger hoch ist.
Ohne linken und rechten Rahmen stellt sich dieses Problem aber möglicherweise garnicht.
Gruß
Reiner
Verfasst: Di 8. Aug 2006, 21:44
von Clawful
Moin,
danke erstmal für dieses geniale Modul. Ich habe allerdings eine Frage und ein Problem.
1. zum Problem:
Wenn ich im Teaser das erste Bild aus dem Text auslesen lasse und danach den Text ausgeben lasse, ist alles super. Sobald ich diesen Artikel dupliziere und das Bild ändere (bei gleicher Bildgröße) wirft das Modul die Headline und den Text völlig wirr formatiert aus und das Bild im Teaser gar nicht - im Artikel selber ist aber alles super. Kennt zufällig jemand das Phänomen oder hat jemand ne Lösung?
2. zur Frage:
Ist es möglich, mit diesem Script 4 Artikel als Teaser mit Bild anzeigen zu lassen und die folgenden 6 Artikel dann nur mit Überschrift. Ab dem 11. Artikel soll ein Archiv für Ordnung sorgen...
Vielen Dank schonmal für eure Antworten!
Verfasst: Mi 9. Aug 2006, 17:28
von HerrB
Zu 1: Hast Du mal ein Beispiel, was da rauskommt?
Zu 2: Naja, die Artikel werden in der Reihenfolge in der foreach-Schleife ausgegeben. Natürlich kannst Du einen Counter ergänzen und eine Abfrage, ob wir nach dem 4. Artikel liegen. Ganz einfach wäre es, wenn nur die Headline noch benötigt wird (d.h. kein zus. Element):
Code: Alles auswählen
$iCounter = 0;
foreach ($aData as $aValue) {
$iCounter++;
echo '<div>', chr(10);
echo ' <div id="headline">'.$aValue["Headline"].'</div>', chr(10);
if ($aSettings["Elements"] > 0 && $iCounter < 5) {
Gruß
HerrB
Wieder mal getimagesize Fehler
Verfasst: Mi 9. Aug 2006, 22:27
von finky
Ich komme nicht klar mit dem
Thumbnail - Problem, er zeigt mir immer die folgende Fehlermeldung an:
So hab ich alles eingestellt:
Woran kann das denn alles liegen? Diese Lösung greift bei mir nicht:
http://contenido.de/forum/viewtopic.php?t=12618
Verfasst: Mi 9. Aug 2006, 23:42
von HerrB
Woran kann das denn alles liegen? Diese Lösung greift bei mir nicht:
Doch, mit Sicherheit. Es gibt das Modul Illustration (dafür passt die Lösung aus dem Tipp 1:1). Das Modul Artikelliste Advanced enthält ebentfalls getimagesize - hier muss die Änderung leicht verändert vorgenommen werden (andere Variablen).
Hast Du die Änderung in der Ausgabe beider Module durchgeführt?
Gruß
HerrB
Also nochmal - was muss ich genau machen?
Verfasst: Do 10. Aug 2006, 13:06
von finky
Das Modul Illustration hab ich angepasst: Das klappt. Was genau muss ich beim Modul Article List Advanced ersetzen?
Es gibt 2 Stellen mit "getimagesize":
Code: Alles auswählen
list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["WebPath"]);
$aData[$i]["i".$k]["Width"] = $width;
$aData[$i]["i".$k]["Height"] = $height;
}
und
Code: Alles auswählen
list ($width, $height, $type, $attr) = getimagesize($image);
Und diese 2. Stelle ersetze ich mit folgendem Code:
Code: Alles auswählen
list ($width, $height, $type, $attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image));
Oder muss ich den irgendwie manuell anpassen? Was meinst Du mit "Änderung leicht verändert vornehmen" ? Welche Variablen muss ich ändern. Sorry - bin Newbie.
Verfasst: Do 10. Aug 2006, 14:21
von HerrB
Völlig korrekt.
Beim ersten Eintrag verwendest Du gleich die andere Variable:
Code: Alles auswählen
list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["ServerPath"]);
Gruß
HerrB
Vielen herzlichen Dank!
Verfasst: Do 10. Aug 2006, 15:13
von finky
Endlich funktioniert's
Ich bin begeistert
Danke für die superschnelle Hilfe, Mr. B!
Verfasst: Fr 11. Aug 2006, 08:10
von Clawful
Zu 1: Hast Du mal ein Beispiel, was da rauskommt?
Zu 2: Naja, die Artikel werden in der Reihenfolge in der foreach-Schleife ausgegeben. Natürlich kannst Du einen Counter ergänzen und eine Abfrage, ob wir nach dem 4. Artikel liegen. Ganz einfach wäre es, wenn nur die Headline noch benötigt wird (d.h. kein zus. Element):
Code:
$iCounter = 0;
foreach ($aData as $aValue) {
$iCounter++;
echo '<div>', chr(10);
echo ' <div id="headline">'.$aValue["Headline"].'</div>', chr(10);
if ($aSettings["Elements"] > 0 && $iCounter < 5) {
Gruß
HerrB
zu 1. siehe
http://web5.clawful.de/cms/
zu 2. Wo muss ich den Codem im Modul einsetzen bzw. muss ich was ersetzen...?
Verfasst: Fr 11. Aug 2006, 08:52
von Clawful
Hmm, im Grunde funktioniert das! Hab den Code eingebunden bekommen, aber ich hätte gerne den Stil á la
http://www.hannover96.de - geht das auch? So, dass ab der 5. News als Überschrift "Weitere News" da steht und man nur noch die Healine anklicken kann, d.h. das "...mehr" und auch das Datum sollen da dann weg...
Das 1. Problem besteht aber immer noch...

Verfasst: So 13. Aug 2006, 23:04
von Clawful
Moin,
das Problem mit der komischen Formatierung hat sich erledigt. Lag daran, dass ich die Bilder via FTP hochgeladen hatte und nicht über die Dateiverwaltung. Dadurch wurde eine benötigte Variable vom System nicht erstellt.
Der Stil Hannover 96 ist aber durchaus noch aktuell...