Seite 5 von 6

Verfasst: Di 7. Feb 2006, 16:08
von mvf
habe jetzt deinen code genommen und alles was ich angepasst habe sind die folgenden zeilen, die lediglich die bildgrösse regeln

deine variante

Code: Alles auswählen

      function setIniValues() {
   
         global $cfgClient, $client;
         
         $bildzielpfad = "CMS_VALUE[0]";
         $this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$bildzielpfad;
         $this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$bildzielpfad;
   
         $this->bildhoehe = "CMS_VALUE[1]";
         $this->bildbreite = "CMS_VALUE[2]";
         
         if (empty($this->bildhoehe)) $this->bildhoehe = 400;
         if (empty($this->bildbreite)) $this->bildbreite = 200;
      }
meine version, da ich die eingabe nicht über die template config regle sondern fix setze, sprich CMS_VALUE[1] und 2 werden nicht im input abgefragt.

Code: Alles auswählen

      function setIniValues($bildbreite, $bildhoehe, $bildzielpfad) {
   
         global $cfgClient, $client;
         
         $bildzielpfad = "CMS_VALUE[0]";
         $this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$bildzielpfad;
         $this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$bildzielpfad;
   
         // $this->bildhoehe = "CMS_VALUE[1]";
         // $this->bildbreite = "CMS_VALUE[2]";
         $this->bildhoehe = $bildhoehe;
         $this->bildbreite = $bildbreite;
         
         if (empty($this->bildhoehe)) $this->bildhoehe = 250;
         if (empty($this->bildbreite)) $this->bildbreite = 300;
      }
kein unterschied im ie wie im ff immernoch des selbe (ist online siehe link oben)

ff OK
IE kotzt

und ich auch gleich :twisted:

danke für dein bemühen rezeptionist

nachtrag: seitetiitel ist gestzt, IE hover zeigts an aber immernoch blank page :(

Verfasst: Di 7. Feb 2006, 16:29
von mvf
jetzt check ich gar nichts mehr :(

ich habe jetzt 1:1 den code von rezeptionist oben:

Code: Alles auswählen

<?php
/**
  * $Revision: 1.4 $
  * $Source: D:/cvs/cvsrepo/test/PPI_Nade/module/picture/output.php,v $
  * $Date: 2005/11/28 17:03:08 $
  */

/**
 * picture
 * @author Andreas Kummer
 * @copyright Copyright &copy; 2005, w3concepts AG
 */

if (!class_exists('picture')) {
   
   class picture {
   
      /**
       * Klassenkonstruktor.
       * @param String  Absoluter Pfad zum Bild.
       */
      function picture($bildpfad) {
   
         global $cfgClient, $client;
         
         if (empty($bildpfad)) return false;
         
         $this->bildpfad = $bildpfad;
         $this->link = $link;
   
         /*
          * Initialwerte fest legen
          */
         $this->setIniValues();
         
         /*
          * Datenbankverbind initialisieren
          */
         $this->db = new DB_contenido();
   
         /*
          * Bildpfad und Dateiname ermitteln
          */
         $dirname = dirname($bildpfad)."/";
         $dirname = str_replace ($cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'],'',$dirname);
         $filename = basename($bildpfad);
         
         /*
          * Bildpfad setzen
          */
         $this->path = $this->createImage($dirname,$filename);
         
         /*
          * Popup-Titel setzen
          */
         $this->setPopupTitle();
      }
      
      function setIniValues() {
   
         global $cfgClient, $client;
         
         $bildzielpfad = "CMS_VALUE[0]";
         $this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$bildzielpfad;
         $this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$bildzielpfad;
   
         $this->bildhoehe = "CMS_VALUE[1]";
         $this->bildbreite = "CMS_VALUE[2]";
         
         if (empty($this->bildhoehe)) $this->bildhoehe = 400;
         if (empty($this->bildbreite)) $this->bildbreite = 200;
      }
      
      function setPopupTitle() {
         
         global $cfg, $idart, $lang;
         
         $this->db->query("SELECT pagetitle FROM {$cfg['tab']['art_lang']} WHERE idart = $idart AND idlang = $lang");
               
         $this->db->next_record();
         
         $this->title = $this->db->f('pagetitle');
      }
   
      function createImage($dirname, $filename) {
   
         global $cfgClient, $client;
   
         $src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
         
         $this->srchoehe = $src_image_size[1];
         $this->srcbreite = $src_image_size[0];
   
         if ($src_image_size[0]/$this->bildbreite < $src_image_size[1]/$this->bildhoehe) {
            $resizeFactor = $src_image_size[1]/$this->bildhoehe;
         } else {
            $resizeFactor = $src_image_size[0]/$this->bildbreite;
         }
   
         $this->bildhoehe = round($src_image_size[1]/$resizeFactor);
         $this->bildbreite = round($src_image_size[0]/$resizeFactor);
         
         $bilddateiname = "{$this->bildbreite}_{$this->bildhoehe}_$filename.jpg";
   
            if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) {
               
               $dst_im = imagecreatetruecolor($this->bildbreite,$this->bildhoehe);
   
            if ($src_image_size[2] == 1) {
               $src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
            } elseif ($src_image_size[2] == 2) {
               $src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
            } elseif ($src_image_size[2] == 3) {
               $src_im = ImageCreateFromPNG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
            } else {
               $src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename);
            }
                      
            imagecopyresampled ($dst_im,$src_im,0,0,0,0,$this->bildbreite,$this->bildhoehe,$src_image_size[0],$src_image_size[1]);
            imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100);
            }
   
         return $this->bildzielpfad['frontend'].$bilddateiname;
      }
      
      function outputPicture($link,$target,$imgDescr = null, $linkDescr = null) {
         
         global $edit;
         
         if ($edit) {
            $this->outputPictureEdit($link, $target, $imgDescr, $linkDescr);
            return false;
         }
         
         if (empty($link) || empty($this->bildpfad)) return false;
         
         $img = "<img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\">";
         $breite = $this->bildbreite;
   
         if ($link != "http://") {
            $img = sprintf('<a href="%s" target="%s">%s</a>',$link, $target, $img);
         } elseif ($this->bildpfad != '') {
            $img = "<a href=\"javascript:popup({$this->srcbreite},{$this->srchoehe},'{$this->bildpfad}&title={$this->title}');\"><img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\" /></a>";
         }
         
         if (empty($imgDescr)) {
            echo '<div style="margin-bottom:3px;"><div style="width:'.$breite.'px; padding:1px;">'.$img.'</div></div>';
         } else {
            echo '<div style="margin-bottom:3px;"><div style="width:'.$breite.'px; padding:1px;">'.$img.'</div><div class="imgDescr">'.$imgDescr.'</div></div>';
         }
      }
      
      function outputPictureEdit($link, $target, $imgDescr, $linkDescr) {
         
         if (!empty($this->path)) {
            echo "<img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\">";
         }
         echo "<br />";
         echo $imgDescr;
         echo "<br />";
         echo $linkDescr;
         echo "<br />";
         
      }
   }
}

if (!$edit) {
   echo '<script type="text/javascript" src="js/pictureResized.js"></script>'."\n";
}

$bild1 = new picture("CMS_IMG[2]"); // initialisierung
$bild1->outputPicture("CMS_LINK[2]","CMS_LINKTARGET[2]","CMS_IMGDESCR[2]","CMS_LINKDESCR[2]");


?>
einzige änderung:
nur ein bild zum testen

ff ok IE nochimmer kein image :(

LINK

hier noch zum vergleich meine .js und .php aus dem cms/js dir


Code: Alles auswählen

function popup(w,h,site) {
   x = screen.availWidth/2-w/2;
   y = screen.availHeight/2-h/2;
   popupWindow = window.open('js/pictureResized.php?path='+site,'','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y);
} 

Code: Alles auswählen

<html>

   <head>
      <title><?php echo $_GET['title']; ?></title>
   </head>
   
   <body leftmargin="0" marginwidth="0" topmargin="0" marginheight="0">

      <img src="<?php echo $_GET['path']; ?>" onClick="self.close();"/>

   </body>
   
</html>

Verfasst: Di 7. Feb 2006, 16:32
von mvf
GOT IT

steses modrewrite ausgeschaltet und es funzt

auf an's debuggen ;)

merci für deinen input rezeptionist
nachgehakt: läufts bei dir auch mit mr ???

Verfasst: Di 7. Feb 2006, 16:34
von rezeptionist
naja soviel konnte ich dir nicht helfen


benutze momentan kein mr muss jetzt auch mal nach der galerie schauen da soll es auch nicht gehen :cry:

Picture Modul zusammen mit Artikel List Advanced V.1.4

Verfasst: Mo 10. Apr 2006, 20:05
von media-konzept
Hallo Zusammen,
hat schon jemand das Picture Modul aus Kummerschen Softwareschmiede zusammen mit der Artikelliste Advanced V.1.4. von HerrB in einem Template verwendet...

Bei uns erzeugt das einen Fehler im Picturemodul mit der Fehlerausgabe " Ein Dateisystem muss angegeben werden " und zwar für jedes eingefügte Bild und nur beim ersten Seitenaufruf, wird die Seite ein zweites mal aufgerufen oder eine andere Seite mit dem gleichen Template, funzt es...(Server IIS kein Apache)

Gruss Felix

Verfasst: Sa 15. Apr 2006, 00:24
von stese
@mvf

habe das problem mit mod rewrite in den griff bekommen.

die datei "pictureResized.js" in eine php Datei umbenennen: "pictureResized.js.php" die folgenden inhalt bekommt:

Code: Alles auswählen

function popup(w,h,site) {
   
   <?php
      include_once("../../contenido/includes/config.php");

      if (isset($cfg['mod_rewrite']['use']) && $cfg['mod_rewrite']['use'] == 1 ) {
         print 'var basepath= "'. $cfg['mod_rewrite']['rootdir'] . 'cms/' .'";';
      } else {
         print 'var basepath= "";';
      }

?>


   
   x = screen.availWidth/2-w/2;
   y = screen.availHeight/2-h/2;
   popupWindow = window.open( basepath + 'js/pictureResized.php?path='+site,'','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y);
} 

danach im moduloutput vom pictureViewer die zeile:

Code: Alles auswählen

if (!$edit) {
   echo '<script type="text/javascript" src="js/pictureResized.js"></script>'."\n";
}
in folgende zeile abändern:

Code: Alles auswählen

if (!$edit) {
   echo '<script type="text/javascript" src="js/pictureResized.js.php"></script>'."\n";
}
thats it.
ps. mr 4.6.8 kommt morgen bis übermorgen raus.

Verfasst: So 16. Apr 2006, 20:19
von chrisonline
Bei der Konfiguration kann ich keinen Bildzielpfad auslesen. An den Rechten sollte es nicht liegen. Ich arbeite mit Contenido 4.6.8, PHP5 und XAMPP (Windows). Wie ich in diesem Beitrag gesehen habe, hatten andere Personen das gleiche Problem. Kann mir jemand verraten wo die Ursache des Problems liegt und wie ich es beheben kann? Vielen Dank!

Gruss, Chris

Bildzielpfad

Verfasst: Di 4. Jul 2006, 14:31
von media-konzept
nach dem Umzug vom IIS auf den Apache haben wir nun auch das Problem das wir keinen Bildzielpfad mehr auswählen können...weiss zwischezeitlich jemand Rat?

Gruss aus der heissen Schweiz
Felix

Verfasst: Di 4. Jul 2006, 15:10
von kummer
schon mal ins error-log geschaut? steht da was?

Verfasst: Di 4. Jul 2006, 15:43
von media-konzept
kummer hat geschrieben:schon mal ins error-log geschaut? steht da was?
yep...hat sich somit gerade erledigt...siehe nächsten Thread

Problem Bildzielpfad gelöst

Verfasst: Di 4. Jul 2006, 16:03
von media-konzept
unter PHP 5 wurde die array merge Funktion verändert...Input Code durch folgenden Code ersetzen und es funzt:

Code: Alles auswählen

?><?php 
/** 
  * $Revision: 1.3 $ 
  * $Source: D:/cvs/cvsrepo/test/PPI_Nade/module/picture/input.php,v $ 
  * $Date: 2005/11/29 16:10:51 $ 
  */ 
/** 
 * picture 
 * @author Andreas Kummer 
 * @copyright Copyright &copy; 2005 w3concepts AG 
 */ 


if (!class_exists('pictureInput')) { 
    
   class pictureInput { 
    
      function pictureInput($pfad) { 
         $this->pfad = $pfad; 
         $this->pathlen = strlen($this->pfad); 
      } 
    
      function getPath($root,$level = 0) { 
         $content = $this->readDir($root); 
    
         foreach ($content as $file) { 
            if (is_dir($root.$file)) { 
               $verzeichnis = substr($root,$this->pathlen); 
               $returnvalue["{$verzeichnis}{$file}/"] = str_repeat("&nbsp;",$level * 5).$file; 
               $returnvalue = array_merge((array)$returnvalue,(array)$this->getPath($root.$file."/",$level+1)); 
            } 
         } 
    
         return $returnvalue; 
      } 
    
      function readDir($path) { 
         $handle = opendir($path); 
    
         while ($file = readdir ($handle)) { 
            if ($file != "." && $file != "..") $returnvalue[] = $file; 
         } 
         closedir($handle); 
    
         return $returnvalue; 
      } 
    
      function makeSelect($preselection) { 
         $pfad = $this->getPath($this->pfad); 
    
         foreach ($pfad as $key => $value) { 
            echo "$key :: $value<br/>\n"; 
            if ($preselection == $key) { 
               echo "<option value=\"$key\" selected=\"selected\">$value</option>"; 
            } else { 
               echo "<option value=\"$key\">$value</option>"; 
            } 
         } 
      } 
   } 
} 

$pfad = new pictureInput($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']); 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">"; 

echo "<tr><td>Bildzielpfad:</td>"; 
echo "<td><select size=\"1\" name=\"CMS_VAR[0]\" />"; 
$pfad->makeSelect("CMS_VALUE[0]"); 
echo "</td>"; 

echo "<tr><td>Maximale Bildhöhe [px]:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\" size=\"3\" /></td>"; 

echo "<tr><td>Maximale Bildbreite [px]:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"3\" /></td>"; 

echo "</table>";
danke für den Tip mit dem Errorlog...in dieser Hitze sah ich wohl den Wald vor blablabla

Gruss Felix

Verfasst: Di 5. Sep 2006, 10:19
von Neverlands
Hallo,

bisher hat das Modul bei mir einwandfrei funktioniert mit IIS6 und auch mit Apache auf Windows.
Nun mußte ich auf Linux umziehen mit Apache - ich bekomme nun Folgendes im Errorlog:

Code: Alles auswählen

[05-Sep-2006 11:16:24] PHP Warning:  Invalid argument supplied for foreach() in /var/www/www.cobas.at/contenido/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 27
Hat hier jemand eine Idee?
Liebe grüße,
Neverlands

Konfiguration?

Verfasst: Mi 13. Sep 2006, 19:40
von media-konzept
Neverlands hat geschrieben:Hallo,

bisher hat das Modul bei mir einwandfrei funktioniert mit IIS6 und auch mit Apache auf Windows.
Nun mußte ich auf Linux umziehen mit Apache - ich bekomme nun Folgendes im Errorlog:

Code: Alles auswählen

[05-Sep-2006 11:16:24] PHP Warning:  Invalid argument supplied for foreach() in /var/www/www.cobas.at/contenido/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 27
Hat hier jemand eine Idee?
Liebe grüße,
Neverlands
Hast Du das Template noch einmal konfiguriert? Die Seite in der das Modul eingebunden ist einfach noch einmal kurz konfigurieren, dem Modul die nötigen Angaben mitgeben.

Gruss Felix

Verfasst: Do 21. Sep 2006, 15:31
von lynx
hallo

habe eigentlich nur ein kleines anliegen, finde jedoch nicht, wo ich dieses umsetzen kann...

das auswahlfeld für verzeichnis / datei / bild ist mir einfach zu klein! ich würde das gerne statt size="5" auf 10 oder 15 hochschrauben, aber wie gesagt, ich finde einfach die stelle nicht, wo dieser code generiert wird.

vieleicht kanns mir wer sagen :)

gruß
lynx

Re: Konfiguration?

Verfasst: Mo 25. Sep 2006, 23:25
von Neverlands
media-konzept hat geschrieben:
Hast Du das Template noch einmal konfiguriert? Die Seite in der das Modul eingebunden ist einfach noch einmal kurz konfigurieren, dem Modul die nötigen Angaben mitgeben.

Gruss Felix
Hallo Felix,

danke Modul funktioniert mitlerweile :)

Eine andere Frage: Wie kann man beim Thumbnail via Mouseover die Bildbeschreibung anzeigen lassen?

Liebe Grüße,
Neverlands