"on-the-fly-images" für Gambio 2.0.x, 2.1.x, 2.2.x

Thema wurde von Avenger, 30. März 2015 erstellt.

  1. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89

    Anhänge:

  2. soprao
    soprao Erfahrener Benutzer
    Registriert seit:
    26. Februar 2015
    Beiträge:
    160
    Danke erhalten:
    18
    Danke vergeben:
    28
    Hi Avenger,

    danke für das Plugin! Es hilft ungemein bei der Arbeit mit CSV Import.

    Leider zeigt er mir das nopic Bild nicht an, wenn die Datei nicht vorhanden ist.

    Beispiel:
    Artikel A | Bild1.jpg laut DB | Bild1.jpg auf FTP -> Bild wird korrekt angezeigt
    Artikel B | Bild2.jpg laut DB | - auf FTP -> nopic sollte aufgerufen werden, wird aber nicht angezeigt. kopiert ist sie wie in der Anleitung beschrieben nach original_images.

    Hast du oder auch die anderen einen Tipp, woran es liegt?

    Danke und Grüße
     
  3. michaelmlakar
    michaelmlakar Erfahrener Benutzer
    Registriert seit:
    28. Oktober 2014
    Beiträge:
    49
    Danke erhalten:
    1
    @Avenger
    Super Plugin, aber bei mir das gleiche Problem wie bei soprao. Das nopic wird leider nicht angezeigt, gibt es dafür einen Fix?


    Gambio 2.2.1.2
    5.5.24-nmm1 (Zend: 2.5.0)
    GD Version bundled (2.1.0 compatible)
     
  4. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Versuche es mal mit dieser Version von "pt_getimg.php".(in der Shop-Root)

    PHP:
    <?php
    /* --------------------------------------------------------------
    pt_getimg.php 2013-06-05 Avenger

    Copyright (c) 2013 Avenger, entwicklung@powertemplate.de
    Allow "on-the-fly" product-image creation to avoid lengthy "image-processing" in case of chnages

    Released under the GNU General Public License (Version 2)
    [http://www.gnu.org/licenses/gpl-2.0.html]
    --------------------------------------------------------------

    based on:
    (c) 2000-2001 The Exchange Project  (earlier name of osCommerce)
    (c) 2002-2003 osCommerce(application_top.php,v 1.273 2003/05/19); www.oscommerce.com
    (c) 2003   nextcommerce (application_top.php,v 1.54 2003/08/25); www.nextcommerce.org
    (c) 2003 XT-Commerce - community made shopping http://www.xt-commerce.com ($Id: application_top.php 1323 2005-10-27 17:58:08Z mz $)

    ---------------------------------------------------------------------------------------*/

    if (!defined('DIR_FS_DOCUMENT_ROOT'))
    {
      if (
    file_exists('includes/local/configure.php'))
      {
        include (
    'includes/local/configure.php');
      }
      else
      {
        include (
    'includes/configure.php');
      }
    }
    //$fp=fopen('__getimg_log.txt','a');
    $fp=false;
    if (
    $fp)
    {
      
    fwrite($fp,PHP_EOL.date('d.m.Y, H:i:s')." -- file='$file'".PHP_EOL);
      
    fwrite($fp,"original_file='$original_file'".PHP_EOL);
    }
    $file=trim($_SERVER['REQUEST_URI']);
    //debugbreak();
    if (DIR_WS_CATALOG=='/')
    {
      
    $file=substr($file,1);
    }
    else
    {
      
    $file=str_replace(DIR_WS_CATALOG,'',$file);
    }
    $file=DIR_FS_DOCUMENT_ROOT.$file;
    $image_dirs=array('thumbnail_images','info_images','popup_images','gallery_images');
    $original_file=str_replace($image_dirs,'original_images',$file);
    //debugbreak();
    if ($file<>$original_file)
    {
      if (!
    is_file($original_file))
      {
        
    $no_pic='/nopic.jpg';
        
    $original_file=dirname($original_file).$no_pic;
        
    $file=dirname($file).$no_pic;
        if (
    $fp)
        {
          
    fwrite($fp,"original file missing".PHP_EOL);
        }
      }
      
    $rebuild=!is_file($file); //Image file not available?
      //debugbreak();
      
    if ($fp)
      {
        
    fwrite($fp,"rebuild missing file='$rebuild'".PHP_EOL);
      }
      if (!
    $rebuild)
      {
        
    $rebuild=filemtime($original_file)>filemtime($file);  //Original file is newer than existing file to load?
        
    if ($fp)
        {
          
    fwrite($fp,"rebuild outdated file='$rebuild'".PHP_EOL);
        }
      }
      if (
    $rebuild && is_file($original_file))
      {
        if (
    $fp)
        {
          
    fwrite($fp,"rebuild file='$rebuild'".PHP_EOL);
        }
        include(
    'includes/application_top_get_img.php');
        
    $pt_image_processing=new pt_image_processing;
        
    $pt_image_processing->process($file,$original_file);
      }
      if (
    is_file($file))
      {
        if (
    $fp)
        {
          
    fwrite($fp,"***** file exists *****".PHP_EOL);
        }
        
    $image_type preg_replace"/.*\.(png|jp(e)?g|gif)$/""\\1"$file );
        
    $image_type = (strcmp$image_type"jpg") == 0) ? "jpeg" $image_type;
        
    header("Content-Type: image/" $image_type);
        @
    readfile($file);
      }
      else
      {
        if (
    $fp)
        {
          
    fwrite($fp,"***** file not exists *****".PHP_EOL);
        }
        
    header("HTTP/1.0 404 Not Found");
      }
      if (
    $fp)
      {
        
    fclose($fp);
      }
    }
    else
    {
      
    $info=@getimagesize($file);
      if (
    is_array($info))
      {
        
    header("Content-Type: " $info['mime']);
        @
    readfile$file );
      }
      else
      {
        
    header("HTTP/1.0 404 Not Found");
      }
    }

    class 
    pt_image_processing
    {
      var 
    $code$title$description$enabled;

      function 
    __construct()
      {
        
    $old_reporting=error_reporting(0);
        
    define('DIR_FS_CATALOG_IMAGES'DIR_FS_CATALOG 'images/');
        
    $product_images=DIR_FS_CATALOG_IMAGES .'product_images/';
        
    define('DIR_FS_CATALOG_ORIGINAL_IMAGES'$product_images.'original_images/');
        
    define('DIR_FS_CATALOG_THUMBNAIL_IMAGES'$product_images.'thumbnail_images/');
        
    define('DIR_FS_CATALOG_INFO_IMAGES'$product_images.'info_images/');
        
    define('DIR_FS_CATALOG_POPUP_IMAGES'$product_images.'popup_images/');
        
    define('DIR_FS_CATALOG_GALLERY_IMAGES'$product_images.'gallery_images/');
        
    error_reporting($old_reporting);
      }

      function 
    process(&$file,$original_file)
      {
        if (
    is_file($original_file))
        {
          function 
    clear_string($value)
          {
            
    $string str_replace(array("'",')','('), ''$value);
            
    $array explode(','$string);
            return 
    $array;
          }

          
    define'_VALID_XTC',true);
          
    $admin_includes=DIR_FS_DOCUMENT_ROOT.'admin/includes/';
          include (
    $admin_includes.'classes/image_manipulator_GD2.php');
          
    $products_image_name basename($file);
          
    $GLOBALS['is_products_image']=true;
          require(
    $admin_includes 'product_xxxxx_images.php');
        }
        else
        {
          
    $file='';
        }
      }
    }

    function 
    get_usermod($file)
    {
      return 
    $file;
    }
    Sehe gerade:

    das Modul hat heute seinen 2-jährigen Geburtstag :)
     
  5. michaelmlakar
    michaelmlakar Erfahrener Benutzer
    Registriert seit:
    28. Oktober 2014
    Beiträge:
    49
    Danke erhalten:
    1
    Gratuliere zum Geburtstag!
    Leider hilft das auch nicht.
     
  6. michaelmlakar
    michaelmlakar Erfahrener Benutzer
    Registriert seit:
    28. Oktober 2014
    Beiträge:
    49
    Danke erhalten:
    1
    habe jetzt die Bilder in allen Verzeichnissen verteilt und jetzt klappt das! ...danke
     
  7. michaelmlakar
    michaelmlakar Erfahrener Benutzer
    Registriert seit:
    28. Oktober 2014
    Beiträge:
    49
    Danke erhalten:
    1
    damit wird dann zwar das "nopic.jpg" angezeigt, jedoch keine neuen Bilder on the fly mehr erstellt.
     
  8. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Mmmhhh...

    Hast Du einen (Test-)Shop, in dem ich das mal untersuchen kann?

    FTP-Zugang?

    Auf welcher Seite fehlt ein Bild?
     
  9. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Neue Bilder werden nur erstellt wenn ich auf die Popups klicke!
    V2.2.1.3
     
  10. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Kann eigentlich nicht sein...

    Denn das Vorhandensein eines Bildes wird bei jeder Anforderung eines Bildes überprüft....
     
  11. Steffen (indiv-style.de)
    Steffen (indiv-style.de) G-WARD 2013/14/15/16
    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Ich weis aber leider ist es so.... Ich grübel schon den ganzen Vormittag....
     
  12. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Testsystem?
     
  13. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    8. Februar 2013
    Beiträge:
    1.425
    Danke erhalten:
    250
    Danke vergeben:
    173
    cooles Teil hab ich jetzt auch ;-)
     
  14. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Zur Abrundung:

    Steffen hatte schon eine eigene Verfügbarkeitsprüfung für Bilder drin, so dass der Shop direkt das "Bild nicht verfügbar"-Bild angefordert hatte...
     
  15. rolllamoto
    rolllamoto Aktives Mitglied
    Registriert seit:
    9. November 2013
    Beiträge:
    40
    Danke erhalten:
    2
    Danke vergeben:
    5
    Hallo Avenger,

    nochmal vielen Dank für das Super Plugin. Ich habe per Skript 1.5GB an Bildern in den Ordner original_images geschaufelt. Das sind über 13000 Bilder, damit kommt Gambio selbst überhaupt nicht zurecht.


    Wäre es möglich, dass auch die Bilder von Eigenschaften erzeugt werden, also für den Ordner properties_combis_images?
     
  16. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    So weit ich das sehen kann werden die properties_combis_images nicht mit der Gambio-Bildbearbeitung verarbeitet (skaliert), sondern einfach beim Upload nur kopiert.

    Da kann/muss man nichts tun.
     
  17. Dennis (MotivMonster.de)
    Dennis (MotivMonster.de) G-WARD 2013/14/15/16
    Registriert seit:
    22. September 2011
    Beiträge:
    31.211
    Danke erhalten:
    6.221
    Danke vergeben:
    1.108
    Beruf:
    Mann für alles :)
    Ort:
    Weilburg
    Doch, man muss sie leider von Hand vorher auf die gewünschte Größe bringen. VOR dem Upload.
     
  18. Avenger
    Avenger G-WARD 2012/13/14/15
    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Mit "nichts tun" meinte ich "on-the-fly"....
     
  19. rolllamoto
    rolllamoto Aktives Mitglied
    Registriert seit:
    9. November 2013
    Beiträge:
    40
    Danke erhalten:
    2
    Danke vergeben:
    5
    Naja, die original_images sind leider teilweise größer. Kannst du es nicht einbauen, dass dein on-the-fly skript sie auf eine akzeptable Größe bringt?

    Wobei das größte Problem ist: Die Bilder liegen in original_images und nicht im Ordner für combi_images.
     
  20. Anonymous
    Anonymous Mitglied
    Registriert seit:
    30. Januar 2018
    Beiträge:
    9
    Danke erhalten:
    0
    Danke vergeben:
    2
    Funktioniert das script auch noch unter GX3 ?