Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Bild url prüfen ob bild existiert

    Tab

    • Neu im Forum
    • Beiträge: 39
    Bild url prüfen ob bild existiert
    am: 22. Juli 2016, 08:59:23
    Hallo Zusammen,

    ich würde gerne prüfen ob das Produktbild in der Listenansicht der Kategorie existiert.
    Standardmäßig wird ja geprüft ob die BildURL leer ist.

    Das sieht bei mir so aus:
    {if $module_data.PRODUCTS_IMAGE!=''}

    Da wohl blöderweise einige BIlder gelöscht wurden würde ich gerne prüfen. Dazu würde ich bei den betroffenen Produkten einen speziellen Platzhalter anzeigen.

    Ich habe es so versucht
    {if (file_exists($module_data.PRODUCTS_IMAGE))}

    es geht aber  nicht.

    gegebenfalls weiß jemand da weiter.
    Danke schon mal.

    Gruß Tab

    Linkback: https://www.modified-shop.org/forum/index.php?topic=35401.0

    voodoopupp

    • Fördermitglied
    • Beiträge: 1.869
    • Geschlecht:
    Re: Bild url prüfen ob bild existiert
    Antwort #1 am: 22. Juli 2016, 09:44:11
    Sorry, aber was?

    {if $module_data.PRODUCTS_IMAGE!=''} prüft doch, ob ein Bild vorhanden ist? Und zeigt es eben nur an, sofern es exisitert?

    Oder verstehe ich dich irgendwie nicht richtig?

    Grüße
    Dominik

    Tab

    • Neu im Forum
    • Beiträge: 39
    Re: Bild url prüfen ob bild existiert
    Antwort #2 am: 22. Juli 2016, 09:59:37
    HI

    habe ich anders verstanden. es prüft ob im String etwas steht. " !=' ' " heist für mich [wenn da nix drin ist]
    Heist aber nicht "wenn da was drin steht die datei aber nicht da ist"
    oder liege ich da falsch. ich habe ne menge "brocken ImageLinks" in der Ansicht.

    Tab

    • Neu im Forum
    • Beiträge: 39
    Re: Bild url prüfen ob bild existiert
    Antwort #3 am: 22. Juli 2016, 10:01:00
    es wird ja die URL aus der Datenbank geholt.
    Wenn da eine ist aber die Datei nicht da ist ... hmmm

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Bild url prüfen ob bild existiert
    Antwort #4 am: 22. Juli 2016, 10:18:04
    [...]
    Da wohl blöderweise einige BIlder gelöscht wurden würde ich gerne prüfen. Dazu würde ich bei den betroffenen Produkten einen speziellen Platzhalter anzeigen.
    [...]

    Diese Funktionalität existiert bereits, dazu muss sich allerdings in den Produktbildordnern 'thumbnail_images',  'Info_images' und 'popup_images' ein Bild mit dem Namen 'noimage.gif' befinden und ausserdem muss in 'includes/classes/product.php' folgender Code vorhanden sein.

    Code: PHP  [Auswählen]
         // BOF - Tomcraft - 2009-10-30 - noimage.gif is displayed, when no image is defined
        //$this->useStandardImage=false;
        $this->useStandardImage=true;
        // EOF - Tomcraft - 2009-10-30 - noimage.gif is displayed, when no image is defined
        $this->standardImage='noimage.gif';
     

    Gruss
    Hanspeter

    Tab

    • Neu im Forum
    • Beiträge: 39
    Re: Bild url prüfen ob bild existiert
    Antwort #5 am: 22. Juli 2016, 10:48:30
    Vielen Dank schon mal.
    Es sieht aber so aus als würde diese Funktion einen Platzhalter anzeigen wenn dem Produkt kein Bild zugewiesen ist.

    Wir haben jedoch das Problem, dass den Produkten wo Bilder vorlagen die Bilder auch alle zunächst angezeigt wurden jetzt aber einige nicht.
    Da wo keine Bilder zugewiesen sind wird noimage.gif angezeigt.

    Jetzt tritt der fall ein, dass Bilder einfach vom Server aus den Imagesverzeichnissen gelöscht wurden.
    Die URLs jedoch noch in den Produkten stehen. (menschliches versagen  :-))

    Werden die nun in der Kategorieliste ausgegeben werden alle wo den Produkt kein Bild zugewiesen wurde das noimge.gif angezeigt. aber bei denen welche blöderweise vom server gelöscht wurden wird ein BrokenLink angezeigt.

    das standardscript ist etwas so:

    {if $module_data.PRODUCTS_IMAGE!=''}
    Produktbild
    {else}
    noimage.gif
    {/if}

    Da wird nach meinem Verständnis nach nur geprüft ob in DB für das BIld eine URL hinterlegt ist.
    Ob die Datei dieser URL auch existiert wird nicht geprüft.

    daher hatte ich es zunächst mit
    {if (file_exists($module_data.PRODUCTS_IMAGE))}
    versucht.

    Tab

    • Neu im Forum
    • Beiträge: 39
    Re: Bild url prüfen ob bild existiert
    Antwort #6 am: 22. Juli 2016, 10:49:59
    Zitat
    when no image is defined

    das sag genau das aus. Wenn in diesem Produkt ein Imge definiert wurde.
    Nicht wenn dieses Image auch auf dem Server liegt.

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Bild url prüfen ob bild existiert
    Antwort #7 am: 22. Juli 2016, 11:15:00
    Hast Du schon mal das Imageprocessing angeworfen um fehlende Bilder ggf. wieder zu erstellen?

    Tab

    • Neu im Forum
    • Beiträge: 39
    Re: Bild url prüfen ob bild existiert
    Antwort #8 am: 22. Juli 2016, 11:44:24
    ich hab schiss das dann alles durcheinander geht.
    wir reden von ca 500 Bildern welche in allen Bilderordnern wahllos gelöscht wurden.
    So in der Art: info_images 150 stück, thumb... 100 und so weiter
    Insgeamt gibt es 4000 Produkte.

    für mich wäre ne brokenLink_abfrage besser dann kann ich ein noimege.gif mit einem kleinen Marker ausgeben und man weiß gleich wo ein Bild fehlt. Das muss eh manuell berichtigt werden.

    das kann man mit PHP mit 5 Zeilen abbilden ich bekomme das aber nicht in das Listentemplate eingebaut.
    Smarty ist nicht so meins...

    hpzeller

    • Experte
    • Beiträge: 4.129
    • Geschlecht:
    Re: Bild url prüfen ob bild existiert
    Antwort #9 am: 22. Juli 2016, 11:56:04
    Hallo Tab,

    versuche erst einmal den Vorschlag von Webald, wenn der nicht fruchtet, dann findest Du in 'includes/classes/product.php' folgende Funktion, durch anpassen dieser Funktion solltest Du dein Problem lösen können.

    Code: PHP  [Auswählen]
      /**
       * productImage
       *
       * @param string $name
       * @param string $type
       * @return string
       */

      function productImage($name, $type) {
        switch ($type) {
          case 'info' :
            $path = DIR_WS_INFO_IMAGES;
            break;
          case 'thumbnail' :
            $path = DIR_WS_THUMBNAIL_IMAGES;
            break;
          case 'popup' :
            $path = DIR_WS_POPUP_IMAGES;
            break;
        }

        if (empty($name)) { // vr - 2010-04-09 no distinction between "name is null" and "name == ''"
          // BOF - Tomcraft - 2009-11-12 - noimage.gif is displayed, when no image is defined
          //if ($this->useStandardImage == 'true' && $this->standardImage != '') // comment in when "noimage.gif" should be displayed when there is no image defined in the database
          //  return $path.$this->standardImage; // comment in when "noimage.gif" should be displayed when there is no image defined in the database
          return $name; // comment out when "noimage.gif" should be displayed when there is no image defined in the database
          // EOF - Tomcraft - 2009-11-12 - noimage.gif is displayed, when no image is defined
        } else {
          // check if image exists
          if (!file_exists($path.$name)) {
            if ($this->useStandardImage == 'true' && $this->standardImage != '') {
              $name = $this->standardImage;
            }
          }
          return $path.$name;
        }
      }
     

    Vorallem dieser Teil dürfte für dein Problem interessant sein.

    Code: PHP  [Auswählen]
        if (empty($name)) { // vr - 2010-04-09 no distinction between "name is null" and "name == ''"
          // BOF - Tomcraft - 2009-11-12 - noimage.gif is displayed, when no image is defined
          //if ($this->useStandardImage == 'true' && $this->standardImage != '') // comment in when "noimage.gif" should be displayed when there is no image defined in the database
          //  return $path.$this->standardImage; // comment in when "noimage.gif" should be displayed when there is no image defined in the database
          return $name; // comment out when "noimage.gif" should be displayed when there is no image defined in the database
          // EOF - Tomcraft - 2009-11-12 - noimage.gif is displayed, when no image is defined
        } else {
          // check if image exists
          if (!file_exists($path.$name)) {
            if ($this->useStandardImage == 'true' && $this->standardImage != '') {
              $name = $this->standardImage;
            }
          }
          return $path.$name;
        }
     

    [EDIT]
    Die Bildordner kannst Du vor dem Durchführen eines Imageprocessing sichern, damit kannst Du den alten Zustand wieder herstellen wenn etwas schief läuft.

    Gruss
    Hanspeter

    webald

    • modified Team
    • Beiträge: 2.791
    Re: Bild url prüfen ob bild existiert
    Antwort #10 am: 22. Juli 2016, 11:57:42
    ansonsten hilft ein Blick in die Doku von Smarty: {php}...{/php}

    Tab

    • Neu im Forum
    • Beiträge: 39
    Re: Bild url prüfen ob bild existiert
    Antwort #11 am: 22. Juli 2016, 13:44:19
    wenn ich jetzt in dieser Funktion ein Variable setzte geht die dann in die Smarty-methode und wie bekomme ich die im Template abgefragt.

    hmm ich versuch jetzt erst mal ein wenig.

    Dank schon mal
    3 Antworten
    3307 Aufrufe
    30. August 2012, 02:24:14 von noRiddle (revilonetz)
    2 Antworten
    5308 Aufrufe
    12. Juni 2015, 10:34:05 von derheiko
    3 Antworten
    3555 Aufrufe
    08. Oktober 2012, 17:15:11 von web0null
               
    anything