Seite 1 von 4

Galerie für 4.4

Verfasst: Mi 29. Okt 2003, 23:10
von zwiebel
Hallo welche Bildergalerie funktioniert denn für 4.4 mit Thumbs und Größer etc?????? :?

Bildmodul

Verfasst: Fr 31. Okt 2003, 15:51
von chriscross
Hallo delicart

Ich kann dir im Moment eigentlich nur die Bildergallerie Version 0.9.1 empfehlen. Du findest das Modul unter der Contenido 4.2 Version ist aber kompatibel mit 4.4.
Die Galerie generiert selbst Thumbnails für JPG's und du kannst die Anzahl
Thumbs pro Seite selbst festlegen und mittels Page-Zapper durch die Galerie zappen. Ich benütze auch dieses Modul und habe es noch ein wenig angepasst so das die angeklicketen Thumbs in einem Detailwindow in Originalgrösse aufgehen.

Hier der Code:

Eingabe:

Code: Alles auswählen

$selected = "CMS_VALUE[0]";

echo "<table cellspacing=\"0\" cellpadding=\"5\" border=\"0\">
        <tr valign=\"top\">
          <td>Einzelbild-Seite</td>
           <td>
            <select name=\"CMS_VAR[0]\">";


$sql = "SELECT * FROM $cfgTab_cat_tree AS TREE, $cfgTab_cat_side AS CATSIDE, $cfgTab_cat AS CAT, $cfgTab_cat_lang AS CATLANG, $cfgTab_side_lang AS SIDELANG WHERE TREE.idcat=CATSIDE.idcat AND CATSIDE.idcat=CATLANG.idcat AND CATLANG.idlang='$lang' AND CATSIDE.idside=SIDELANG.idside AND SIDELANG.idlang='$lang' AND CAT.idcat=TREE.idcat AND CAT.idclient='$client' ORDER BY TREE.idtree";
$db->query($sql);

        if ($selected != 0) {
        echo "<option value=0>diese Seite</option>";
        } else {
        echo "<option value=0 selected>diese Seite</option>";
        }
        while ($db->next_record()) {
        $spaces = "";
                for ($i=0; $i<$db->f("level"); $i++) {
                $spaces = $spaces . "    ";
                }
                if ( $db->f("idcatside") != $selected ) {
                echo "<option value=\"".$db->f("idcatside")."\">$spaces ".$db->f("name")."---".$db->f("title")."</option>";
                } else {
                        echo "<option value=\"".$db->f("idcatside")."\" selected>$spaces ".$db->f("name")."---".$db->f("title")."</option>";
                }
        }
echo "</select>";

echo "      </td>
</tr>
        <tr>
        <td>
        Image-Directory:
       </td>
            <td>
          <input size=20 type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\">
</td>
  </tr>

        <tr>
        <td>
        Thumbnail-Directory:
       </td>
            <td>
          <input size=20 type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\">
</td>
  </tr>
                
        <tr>
        <td>
        Image-Dateieendung (z.B. .jpg;.gif):
       </td>
            <td>
          <input size=20 type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\">
</td>
  </tr>

        <tr>
        <td>
         Thumbnailtabelle in Spalten x Zeilen:
       </td>
            <td>
          <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\">
</td>
  </tr>
        

        <tr>
        <td>
         Thumbnailgr&ouml;sse in XxY:
       </td>
            <td>
          <input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\">x<input size=3 maxlength=2 type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\">
</td>
  </tr>

        <tr>
        <td>
        Pfad zum ImageMagick (optional):
       </td>
            <td>
              <input size=20 type=\"text\" name=\"CMS_VAR[9]\" value=\"CMS_VALUE[9]\"></td>
  </tr>
        
      </table>";
Ausgabe:

Code: Alles auswählen

<?php

$imagedir="CMS_VALUE[2]"; 
$thumbnails="CMS_VALUE[3]";  
$imagetypes=explode(";","CMS_VALUE[4]"); 
$rows="CMS_VALUE[6]";  
$cols="CMS_VALUE[5]"; 

$thb_x_size="CMS_VALUE[7]"; 
$thb_y_size="CMS_VALUE[8]"; 

$image_idcat="CMS_VALUE[0]";  
$image_idside="CMS_VALUE[1]"; 

$im_path="CMS_VALUE[9]"; 

//-- config ende -------------------------------------

function is_image($filename,$typearray) {
  reset($typearray);
  while($val=each($typearray)) {
     if (strstr($filename,$val[value])!==false) {
       return true;
     }
  }
}

//-- functions ende ----------------------------------

if (!isset($mmstart)) {
  $mmstart=0;
}

// Anzeige eines Bildes oder Übersicht?

if ($subfile!="") {
// Bild anzeigen
 echo "<img src=\"$subfile\">";

} else {
// Gallery anzeigen

$handle=opendir($imagedir);

echo "<table width=\"100%\" height=\"100%\"  border=\"0\" cellpadding=\"5\">";
$n=0;
$filearray=Array();
while (false !== ($file = readdir($handle))) { 
        if ($file != "." && $file != ".." && is_image($file,$imagetypes)) {
             $filearray[]=$file;
        }
}

reset($filearray);

// skip images...
for ($n=0;$n<$mmstart;$n++)
  $ffile=each($filearray);
$n=0;
while ($ffile=each($filearray)) {
             $file=$ffile[value];
             // generate thumbnail, if nessesairy. Now THIS is fun :)
             // natuerlich nur, wenn imagemagick vorhanden ist...
            if (!file_exists($thumbnails."/thb_".$file) ) {
               if ($im_path!="") {
                 $cmd=$im_path."/convert -scale ".$thb_x_size."x".$thb_y_size." ".$imagedir."/".$file." ".$thumbnails."/thb_".$file;

                 exec($cmd);
                 // nochmal prüfen!
                 $thumbnail=file_exists($thumbnails."/thb_".$file); 
                } else 
                  $thumbnail=false;
            } else
              $thumbnail=true;
            if ($n%$cols==0) 
              echo "<tr>\n";
            if ($image_idcat!=0)
              $url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcatside=$image_idcat&subfile=".rawurlencode($imagedir."/".$file));  
            else
              $url=$sess->url("front_content.php?client=$client&lang=$lang&subid=$subid&idcat=$idcat&idside=$idside&subfile=".rawurlencode($imagedir."/".$file));  
            echo "<td valign=\"middle\" align=\"center\" width=\"$thb_x_size\" height=\"$thb_y_size\"><a href=\"/dw.php?file=$file\" target=\"dw\" onClick=\"MM_openBrWindow(\'/dw.php?file=$file\',\'dw\',\'menubar=yes,scrollbars=yes,resizable=yes,width=700,height=400\')\">".($thumbnail ? "<img src=\"$thumbnails/thb_$file\" border=\"0\">":"$file")."</a></td>
            \n";
            $n++; 
            if ($n%$cols==0) 
              echo "</tr>\n";
         

        // nur solange wie's not tut...
        if ($n>=$rows*$cols)
          break;
    }
echo "<tr> <td colspan=\"$cols\" align=\"center\" height=\"35\" valign=\"middle\">";

if ($mmstart>0) {
  $url=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&subid=$subid&idside=$idside&mmstart=".($mmstart-$rows*$cols)); 
  echo "<a href=\"$url\">vorherige Bilder...</a>";
}

echo " | zeige Bilder ".($mmstart+1)." - ".($mmstart+$n)." | ";

if ($n+$mmstart<count($filearray)) {
  $url=$sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&subid=$subid&idside=$idside&mmstart=".($mmstart+$rows*$cols)); 
  echo "<a href=\"$url\">weitere Bilder...</a>";
}
echo "</td>\n";
echo "</tr>\n";
echo "</table>"; 
} // Ende Gallery anzeigen
?>
Das Detailwindow:

Code: Alles auswählen

<?php  

$file=$HTTP_GET_VARS["file"];

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Detail Ansicht</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css">
<!--
body {
	background-color: #FFFFFF;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
-->
</style></head>

<body>

<table width="100%" height="100%"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" valign="middle"><a href="javascript:" onClick="window.close()"; title="schliessen"><? echo "<img src=\"/cms/upload/bilder/galerie/$file\" border=\"0\">" ?></a></td>
  </tr>
</table>
</body>
</html>
Wenn du diesen Code benutzen willst musst du nur noch die Links zum Detailwindow und der Bildaufruf-link im Detailwindow anpassen und dann sollte es gehen. Für die restlichen Dokus zur Bildergalerie findest du im entsprechenden Bildergalerie Version 0.9.1 Modul. good luck!

Leider unterstützt das Modul noch keine Bildbeschreibung aber ich denke das wird demnächst auch noch von irgend einer guten Programmiererseele realisiert.

gruss
chris

Verfasst: Fr 31. Okt 2003, 23:02
von zwiebel
Hmmmm ich weiß nixht wo Das Detailwindow:
ist???

Verfasst: Mo 3. Nov 2003, 09:11
von chriscross
Morgen Delicart

Der Code für das Detailwindow ist in meinem ersten Posting ganz unten eingefühgt.

Der Einfachheit halber ist er hier noch mal:

Code: Alles auswählen

<?php  

$file=$HTTP_GET_VARS["file"]; 

?> 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
<title>Detail Ansicht</title> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<style type="text/css"> 
<!-- 
body { 
   background-color: #FFFFFF; 
   margin-left: 0px; 
   margin-top: 0px; 
   margin-right: 0px; 
   margin-bottom: 0px; 
} 
--> 
</style></head> 

<body> 

<table width="100%" height="100%"  border="0" cellpadding="0" cellspacing="0"> 
  <tr> 
    <td align="center" valign="middle"><a href="javascript:" onClick="window.close()"; title="schliessen"><? echo "<img src=\"/cms/upload/bilder/Galerie/$file\" border=\"0\">" ?></a></td> 
  </tr> 
</table> 
</body> 
</html> 
Diesen Code kannst du kopieren und erstellst damit eine neue Datei, die dw.php heisst. Diese Datei fügst du nun in deinem Verzeichnis ein wo immer du möchtest, du musst einzig darauf achten das du im Galerie-Modul-Ausgabe den Pfad zu der Detailwindow-Datei richtig angibst.
Du kannst nach folgendem Anker-Tag suchen:

Code: Alles auswählen

<a href=\"/dw.php?file=$file\" target=\"dw\" onbeforeunload=\"MM_openBrWindow(\'/dw.php?file=$file\',\'dw\',\'menubar=yes,scrollbars=yes,resizable=yes,width=700,height=400\')\">(

Verfasst: Mo 3. Nov 2003, 22:00
von zwiebel
Hallo Chriscross, ich kann machen was ich will ich bekomme keinen editor nur ne weisse seite beim öffnen.

Was ist wenn Imagemagick nicht vom Provider unterstütz wird?

Verfasst: Mi 5. Nov 2003, 18:50
von hu-go
bzw. was muss man angeben?

Sorry für die Verspätung

Verfasst: Do 6. Nov 2003, 10:35
von chriscross
@delicart deine weisse Seite im Editor kommt vielleicht daher, dass kein template für diesen Artikel gewählt wurde.


@hu-go was genau meinst du mit "...was muss man angeben?"??
bezieht sich deine Frage auf den Codebereich des Moduls oder den Template-Konfigurationsbereich??


chris

Ähm habs probiert

Verfasst: Mi 12. Nov 2003, 17:03
von COS
Hallo hab das geänderte Script ausprobiert.
Bekomm leider nur Quellcode. Was könnte ich falsch gemacht haben???

gruß Cos

Verfasst: Mi 12. Nov 2003, 17:14
von chriscross
Hallo COS

1. welche Contenido Version benutzt du?
2. in welchem Bereich bekommst du nur Quellcode?
3. Hast du das Modul konfiguriert?
4. benutzt du Imagemagick auf deinem Server?



chriscross

Tach auch

Verfasst: Mi 12. Nov 2003, 17:44
von COS
Benutze Version 4.4.1
Im Layout also auf der normalen HTML Ansicht.
Ja das Modul habe ich von oben übernommen aber ohne PHP Tags (weil sonst Fehler)
Nein benutze ich nicht.

Gruß COS

Sorry für die Kurzfassung, bin in eile

So jetzt aber...

Verfasst: Do 13. Nov 2003, 12:32
von chriscross
Hallo COS

Also was du falsch gemacht hast, kann ich dir so nicht sagen aber ich kann sagen wie du das Teil benutzen kannst ohne das es Fehler generiert. Ich habe dieses Modul schon auf mehreren Seiten mit CMS Version 4.4.1 am laufen. Also "sollte" das Modul so wie es oben gepostet ist funktionsfähig sein! :wink:

1. neues Modul erstellen, indem du mittels copy&paste den Code für den Input- und Outputbereich übernimmst von meinem Posting. Du solltest aber den Code schon ganz übernehmen sonst läuft das Modul vermutlich nicht.

2. Ein Detailwindow-Datei erstellen in dem dann die Bilder in Originalansicht angezeigt werden. In meinem Fall habe ich eine Datei mit dem Namen dw.html erstellt und diese Datei habe ich dann ins wwwroot-Verzeichnis gespeichert. Der name der Datei sowie das Verzeichnis in dem es liegt kannst du natürlich selbst noch anpassen. Du findest den entsprechenden Codeabschnitt im Output-bereich des Galerie-Moduls. Hier der Codeabschnitt:

Code: Alles auswählen

 echo "<td valign=\"middle\" align=\"center\" width=\"$thb_x_size\" height=\"$thb_y_size\"><a href=\"/dw.php?file=$file\" target=\"dw\" onClick=\"MM_openBrWindow(\'/dw.php?file=$file\',\'dw\',\'menubar=yes,scrollbars=yes,resizable=yes,width=700,height=400\')\">".($thumbnail ? "<img src=\"$thumbnails/thb_$file\" border=\"0\">":"$file")."</a></td> 
            \n";
Der Detailwindow-Aufruf ist ein herkömmlicher Dreamweaver Javascript Detailwindowlink. Daher solltest du in deinem Layout-Header einen entsprechen JS-Script haben damit es sauber funktioniert.

3. Erstelle nun im Verzeichnis upload/bilder ein Ordner mit dem Namen galerie und in diesem Ordner erstelltst du wider ein Ordner mit dem Namen thumbs. So und in diese Verzeichnisse lädst du nun mittels Contenido Dateiverwaltung deine Originalbilder sowie die Thumbnails von deinen Originalbildern.

4. Erstelle nun ein Template und ordne das Galerie-Modul hinzu.

5. Erstelle einen Artikel und konfiguriere nun dein Galerie Modul entsprechen. Angabe zu deinem Bilder Verzeichnis sollte etwa so
lauten upload/bilder/galerie/ bzw. für die Thumbs lautet der Pfad dann etwa so: upload/bilder/galerie/thumbs/ .

6. Nun sollte eigentlich deine Galerie angezeigt werden.

Ich arbeite zurzeit an einer Überarbeitung des Modules, so dass man noch einen Description-Text jedem Bild mitgeben kann. Sobald das Ding dann ready ist werde ich es hier posten.

Gruss
Chris

Verfasst: Do 20. Nov 2003, 12:20
von zwiebel
Es ist ja nicht so, als wenn das Modul bei mir funktioniert. Ich bekomme das Template gezeigt habe aber keine eingabemöglichkeit oder auswahl, einfach nichts!!! Was mache ich denn da falsch? :(

gruß delicart

versuche mal die Org. Version

Verfasst: Do 20. Nov 2003, 13:34
von chriscross
Hallo

Anhand deiner Beschreibung ist es mir nicht möglich zu erklähren was bei
dir nicht sauber funktioniert.
Im Contenido unter Administration finden sich log- files, schau doch mal da nach ob du was Aufschlussreiches findest.

Aber vielleicht wäre es besser wenn du zuerst einmal die Original Bildergalerie implementierst.
Du kannst sie auf der Contenido-Website unter Module für 4.2 downloaden.
Versuche mal ob du diese Galerie zum laufen bringst und wenn du die auch nicht zum laufen bringst, könnte was mit deiner Contenido Installation nicht sauber sein.

gruss chris

Verfasst: Do 20. Nov 2003, 13:38
von zwiebel
Hi Chris, die habe ich auch schon versucht einzubinden, dann bekommme ich den code zu sehen (im Template)

Gruß Delicart

Verfasst: Do 20. Nov 2003, 13:50
von chriscross
Hallo delicart

Ich vermute jetzt mal das mit deiner Conti Installation was nicht in Ordnung ist. Versuche doch mal die neuste Contenido Version 4.4.1
zu installieren.

Wenn das auch nichts bringt so schreibe einfach mal Schritt für Schritt auf wie du das Galerie Modul implementierst und zu guter letzt schreibst du noch auf was du in den Error-Log für Einträge findest.

gruss