neues modul :: picture

#ayshe
Beiträge: 445
Registriert: Do 25. Mär 2004, 10:04
Kontaktdaten:

nochmal: modul umschreiben

Beitrag von #ayshe »

Hallo,

ich bin ja bekanntlich dickschädlig :wink: und deshalb will ich immer noch diesem Modul für einen bestimmten Mandanten die thumbnail-Funktion wegnehmen.
Hab jetzt mal probiert, die Funktion auszukommentieren, von der ich glaube, dass sie das produziert:

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 = 150; 
          if (empty($this->bildbreite)) $this->bildbreite = 550; 
      }
      
      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}\" 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 = "<img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\" />";
         }
         
         if (empty($imgDescr)) {
            echo '<div>'.$img.'</div>';
         } else {
            echo '<div>'.$img.'<div class="imgDescr">'.$imgDescr.'</div></div>';
         }
      }
      
      function outputPictureEdit($link, $target, $imgDescr, $linkDescr) {
         
         if (!empty($this->path)) {
            echo "<img src=\"{$this->path}\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\">";
         }
         echo "<br />";
         echo $imgDescr;
         /* echo "<br />";
         echo $linkDescr;
         echo "<br />"; */
         
      }
   }
}




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



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

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

* $bild4 = new picture("CMS_IMG[5]"); // initialisierung
* $bild4->outputPicture("CMS_LINK[5]","CMS_LINKTARGET[5]","CMS_IMGDESCR[5]","CMS_LINKDESCR[5]");   
**/
?>

Aber offenbar liege ich damit falsch, denn nun kommt im Frontend die Fehlermeldung:
Fatal error: Call to undefined method picture::createImage() in C:\xampplite\htdocs\emc\front_content.php(770) : eval()'d code on line 448
Da habe ich wohl noch etwas übersehen. Kann mir jemand sagen, was und wo?

Als Gegenleistung kann ich euch verraten, wo die doppelten Dateisuffixe herkamen (dateiname.jpg.jpg):

Code: Alles auswählen

$bilddateiname = "{$this->bildbreite}_{$this->bildhoehe}_$filename.jpg";
Nachdem ich daraus

Code: Alles auswählen

$bilddateiname = "{$this->bildbreite}_{$this->bildhoehe}_$filename";
gemacht habe, sind die Suffixe schonmal nicht mehr gedoppelt.

Grüße,
Ayshe
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: nochmal: modul umschreiben

Beitrag von Halchteranerin »

Hallo ayshe,
#ayshe hat geschrieben:Als Gegenleistung kann ich euch verraten, wo die doppelten Dateisuffixe herkamen (dateiname.jpg.jpg):
dazu hatte dir HerrB schon etwas im anderen Thread geschrieben. Die doppelten Suffixe haben ihren Sinn, falls du NICHT NUR jpg-Dateien hast. Sonst kann man sicherlich darauf verzichten.

Gruss
Christa
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

hallo community

um das modul XHTML dähig zu machen fehlt noch mindestens ein alt= atribute im outputcode beim imagetag

das ist kein problem, aber wie bekomme ich da den 'wahren' dateiname hinein und nicht den des erzeugten images mit dem md5.xxx namen ???

beispiel:

Code: Alles auswählen

         $img = "<img src=\"{$this->path}\" border=\"0\" width=\"{$this->bildbreite}\" height=\"{$this->bildhoehe}\" alt=\"{$this->imagetitle}\" />";
bringt nur den md5 name :( und im outputcode komme ich direkt nicht an den wahren filenam ran scheint mir :(

NACHTRAG:

war mein fehler, geht schon aber wenn des bild schon P1231684651 heisst ist man halt verwirrt ;)
Zuletzt geändert von mvf am Mi 18. Jan 2006, 19:13, insgesamt 1-mal geändert.
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
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Hallo bekomme beim Moduleinsatz folgende Fehlermeldung:

Warning: imagejpeg(): Unable to access /home/www/web487/html/cms/upload/bilder/unstrutwichtel/100_137_wichtel_02.jpg in /home/www/web487/html/cms/front_content.php(771) : eva

Hab alle Rechte gesetzt, alles ein zweites mal kopiert.
Fehler im ie un firefox. Was kann das sein?

Danke schon mal

jacke
Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin »

jacke hat geschrieben:Warning: imagejpeg(): Unable to access /home/www/web487/html/cms/upload/bilder/unstrutwichtel/100_137_wichtel_02.jpg in /home/www/web487/html/cms/front_content.php(771) : eva
Erstens: stimmt der Pfad? Bitte auch auf Kleinigkeiten achten!
Zweitens: was fuer Rechte hat denn die Datei?
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Guten Morgen,

die Rechte der Ordner sind 777. Dan Bild kann ich nicht auf 777 setzen. Der Pfad stimmt bis zum Bild. allerdings heißt das Bild nur "wichtel_02.jpg" ohne die vorgesetzte "100_137_".

Die zweite Erweiterung ".jpg" hab ich im code schon entfernt.

mfg

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

Beitrag von rezeptionist »

ist das modul richtig konfiguriert sprich Bildzielpfad ??

kannst du das bild im browser direkt aufrufen

/cms/upload/bilder/unstrutwichtel/100_137_wichtel_02.jpg



greets
greets
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Der Pfad stimmt. Allerdings bastelt das Modul den Namen um:
ist falsch:
/cms/upload/bilder/unstrutwichtel/100_137_wichtel_02.jpg

ist richtig:
/cms/upload/bilder/unstrutwichtel/wichtel_02.jpg

Keine Ahnung wo das her kommt.

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

Beitrag von rezeptionist »

die 100 ist die breite 137 die höhe und wird immer davor gestellt denn:

wenn diese dateinamenerweiteung nicht wäre würde ja das original bild überschrieben was wirklich keiner will.

Bildzielpfad ist der Pfad zu dem Ordner in dem deine Thumbs abgelegt werden sollen.

versuche mal eins lege einen neuen ordner an ( thumbs ) und gebe in der Konfiguration diesen Ordner an dann sollte es gehen.


greets
greets
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

DA hat sich was geändert - allerdings nicht besser:

Code: Alles auswählen

Warning: imagejpeg(): Unable to access /home/www/web487/html/cms/upload/bilder/unstrutwichtel/thumbs/1_1_wichtel_02.jpg in /home/www/web487/html/cms/front_content.php(771) : eval()'d code on line 917
Wenn ich den Ordner anlege und angebe - weiß aber doch keiner mehr wo die eigentlichen Bilder liegen.

mfg

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

Beitrag von rezeptionist »

hast du mal nen link

zum verständniss von mir wo das originalbild (unverändert) liegt sollte der Redakteur wissen wo das Thumbnail ertstellt wird ist im endeffekt eigentlich egal solange es das modul noch weiss und das tut es ja übrigens dein bild ist nur 1x1 pixel groß schick mir mal nen link dann können wir weiter schauen


greets
greets
jacke
Beiträge: 303
Registriert: Mi 25. Sep 2002, 19:37
Kontaktdaten:

Beitrag von jacke »

Hier ist mal ein Link:
http://web487.can18.de/cms/front_content.php?idcat=12

kann das einfach nicht verstehen.

gruß

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

Re: Modul 2 mal verwenden im selben Template

Beitrag von mvf »

media-konzept hat geschrieben:Hallo zusammen
hat schon jemand versucht das Modul 2 mal im selben Template zu verwenden? Hätte da gerade eine Anwandung dafür, einmal waagrecht und einmal senkrecht.
Würde mich freuen
Gruss Felix
ich stehe auch genau vor dem scheunen tor, da alle bilder immer die gleiche grösse habe :(

ich benötige aber oben waagerecht 3 nebeneinander grösse X*X
darunter
6 senkrecht grösse Y*Y

habe das modul dupliziert und den output angepasst zu darstellung sowie die grössen wenn ich jedes der module in einem eigenen template einsetze funktioniert es wunderbar (also jedes für sich) in der kombination in einem template zwerschiesst es die bildgrössen des 2 moduls :(

$db in $db2 und verschiedenste andere werte die mir wichtig erschienen habe ich schon umbenannt, aber immer des gleiche ergebnis, die bilder des codes der als zweites abgerbeitet wird haben die grösen derer darüber?
:(

@media-konzept: habt ihr eventuell schon eine lösung?
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
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

hast du in beiden fällen die gleichen bild-indizes verwendet?

weil eigentlich sollte alles funktionieren. die klasse ist nur in einem modul zu definieren. sonst treten fehler auf.

und die bild-indizes dürfen nicht gleich sein.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf »

kummer hat geschrieben:hast du in beiden fällen die gleichen bild-indizes verwendet?

weil eigentlich sollte alles funktionieren. die klasse ist nur in einem modul zu definieren. sonst treten fehler auf.

und die bild-indizes dürfen nicht gleich sein.
hallo andi, merci für deinen support/input, also wenn ich dich rechtverstehe meinst du damit

Code: Alles auswählen

$bildXXX = new picture("CMS_IMG[XXX]"); // initialisierung
jau habe ich, aber das broblem liegt darin, dass ich keine 2 unterschiedlichen breiten definieren kann:

setze ich das modul einmal ein, mit 4 bildern, 300*300 dann passt des alle 4 pics funzen

setze ich das modul danach ein zweites mal ein, ( benötige ich den imput code auch 2x? habe es mit und ohne versucht!) und setze im outputcode oder per konfig die bilder auf 400*400, dann haben alle 8 pics eine grösse

geht des gar nicht oder wärst du so nett, mir und der community zu beschreiben wie der input/output des moduls für den doppelten einsatz in einem template aussehen muss, damit man 2 'sets' von bilder mit unterschiedlichen grössen definieren kann? :oops: beschäfttigt mich nun schon ne weile :oops:

merci vielmal und grüsse in die schweiz
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
Gesperrt