neues modul :: picture

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

Beitrag von mvf » Di 7. Feb 2006, 16:08

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

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

Beitrag von mvf » Di 7. Feb 2006, 16:29

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

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

Beitrag von mvf » Di 7. Feb 2006, 16:32

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

rezeptionist
Beiträge: 1536
Registriert: Fr 20. Aug 2004, 10:07
Kontaktdaten:

Beitrag von rezeptionist » Di 7. Feb 2006, 16:34

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:
greets

media-konzept
Beiträge: 90
Registriert: So 20. Mär 2005, 13:24
Wohnort: CH-5430 Wettingen
Kontaktdaten:

Picture Modul zusammen mit Artikel List Advanced V.1.4

Beitrag von media-konzept » Mo 10. Apr 2006, 20:05

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
two beers or not two beers

stese
Beiträge: 1040
Registriert: Fr 3. Dez 2004, 17:47
Wohnort: München
Kontaktdaten:

Beitrag von stese » Sa 15. Apr 2006, 00:24

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

chrisonline
Beiträge: 18
Registriert: Mi 29. Mär 2006, 19:24
Kontaktdaten:

Beitrag von chrisonline » So 16. Apr 2006, 20:19

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

media-konzept
Beiträge: 90
Registriert: So 20. Mär 2005, 13:24
Wohnort: CH-5430 Wettingen
Kontaktdaten:

Bildzielpfad

Beitrag von media-konzept » Di 4. Jul 2006, 14:31

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
two beers or not two beers

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 4. Jul 2006, 15:10

schon mal ins error-log geschaut? steht da was?
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

media-konzept
Beiträge: 90
Registriert: So 20. Mär 2005, 13:24
Wohnort: CH-5430 Wettingen
Kontaktdaten:

Beitrag von media-konzept » Di 4. Jul 2006, 15:43

kummer hat geschrieben:schon mal ins error-log geschaut? steht da was?
yep...hat sich somit gerade erledigt...siehe nächsten Thread
Zuletzt geändert von media-konzept am Di 4. Jul 2006, 16:05, insgesamt 1-mal geändert.
two beers or not two beers

media-konzept
Beiträge: 90
Registriert: So 20. Mär 2005, 13:24
Wohnort: CH-5430 Wettingen
Kontaktdaten:

Problem Bildzielpfad gelöst

Beitrag von media-konzept » Di 4. Jul 2006, 16:03

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
two beers or not two beers

Neverlands
Beiträge: 45
Registriert: Mo 20. Sep 2004, 14:56
Wohnort: Wien
Kontaktdaten:

Beitrag von Neverlands » Di 5. Sep 2006, 10:19

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

media-konzept
Beiträge: 90
Registriert: So 20. Mär 2005, 13:24
Wohnort: CH-5430 Wettingen
Kontaktdaten:

Konfiguration?

Beitrag von media-konzept » Mi 13. Sep 2006, 19:40

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
two beers or not two beers

lynx
Beiträge: 9
Registriert: Do 14. Sep 2006, 11:10
Wohnort: Berlin
Kontaktdaten:

Beitrag von lynx » Do 21. Sep 2006, 15:31

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
Die verückten und ihre Autos:
CarPC-Forum

Neverlands
Beiträge: 45
Registriert: Mo 20. Sep 2004, 14:56
Wohnort: Wien
Kontaktdaten:

Re: Konfiguration?

Beitrag von Neverlands » Mo 25. Sep 2006, 23:25

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

Gesperrt