Modul: Standard-Artikelliste Advanced V1.4

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Re: Layout

Beitrag von mvf » Fr 4. Aug 2006, 10:51

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
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Re: Layout

Beitrag von Aixtraweb » Fr 4. Aug 2006, 11:25

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!
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

gruhle
Beiträge: 18
Registriert: Di 21. Jun 2005, 19:45
Wohnort: Riedstadt
Kontaktdaten:

Re: Layout

Beitrag von gruhle » Fr 4. Aug 2006, 12:23

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">&nbsp;</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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Re: Layout

Beitrag von Aixtraweb » Mo 7. Aug 2006, 06:57

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!?
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

gruhle
Beiträge: 18
Registriert: Di 21. Jun 2005, 19:45
Wohnort: Riedstadt
Kontaktdaten:

Re: Layout

Beitrag von gruhle » Mo 7. Aug 2006, 09:58

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

Clawful
Beiträge: 20
Registriert: Di 8. Aug 2006, 08:50
Kontaktdaten:

Beitrag von Clawful » Di 8. Aug 2006, 21:44

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!

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 9. Aug 2006, 17:28

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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

finky
Beiträge: 6
Registriert: So 26. Sep 2004, 16:03
Kontaktdaten:

Wieder mal getimagesize Fehler

Beitrag von finky » Mi 9. Aug 2006, 22:27

Ich komme nicht klar mit dem Thumbnail - Problem, er zeigt mir immer die folgende Fehlermeldung an:

Bild

So hab ich alles eingestellt:

Bild

Woran kann das denn alles liegen? Diese Lösung greift bei mir nicht:
http://contenido.de/forum/viewtopic.php?t=12618

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mi 9. Aug 2006, 23:42

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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

finky
Beiträge: 6
Registriert: So 26. Sep 2004, 16:03
Kontaktdaten:

Also nochmal - was muss ich genau machen?

Beitrag von finky » Do 10. Aug 2006, 13:06

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.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Do 10. Aug 2006, 14:21

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
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

finky
Beiträge: 6
Registriert: So 26. Sep 2004, 16:03
Kontaktdaten:

Vielen herzlichen Dank!

Beitrag von finky » Do 10. Aug 2006, 15:13

Endlich funktioniert's :!: :!:

Ich bin begeistert :!: :P

Danke für die superschnelle Hilfe, Mr. B!

Clawful
Beiträge: 20
Registriert: Di 8. Aug 2006, 08:50
Kontaktdaten:

Beitrag von Clawful » Fr 11. Aug 2006, 08:10

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...?

Clawful
Beiträge: 20
Registriert: Di 8. Aug 2006, 08:50
Kontaktdaten:

Beitrag von Clawful » Fr 11. Aug 2006, 08:52

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... :-(

Clawful
Beiträge: 20
Registriert: Di 8. Aug 2006, 08:50
Kontaktdaten:

Beitrag von Clawful » So 13. Aug 2006, 23:04

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...

Gesperrt