Managed Server
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: Bilder einfacher zu ordnen?

    Zitro

    • Neu im Forum
    • Beiträge: 9
    Bilder einfacher zu ordnen?
    am: 15. Dezember 2015, 19:29:48
    Guten Abend,

    gibt es zufällig eine Lösung für mein "Problem"?
    CSV Datei habe ich erfolgreich ohne Fehler etc. hoch geladen.Artikel werden auch ordentlich im Shop angezeigt. Nun rätsel ich ob es eine Funktion gibt die Bilder vom Artikel einfacher den Artikeln zu zu ordnen. Normalerweise müßte ich jedes Bild einzeln nach dem hochladen auf dem Server den Artikeln manuell zu weisen. Was allerdings bei mehreren tausend Artikeln ziemlich lange dauert (wieviel Wochen will ich garnicht wissen^^).
    Gibt es eine Möglichkeit dies zu vereinfachen? Ich bin relativ frisch mit modified am werkeln,deswegen habe ich diesbezüglich auch keine eigene Lösung gefunden und Google spruckt auch nicht wirklich was brauchbares raus.
    Würde mich sehr über hilfreiche Antworten freuen.

    Mit freundlichen Grüßen
    Rico

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

    marco1004

    • Neu im Forum
    • Beiträge: 48
    • Geschlecht:
    Re: Bilder einfacher zu ordnen?
    Antwort #1 am: 16. Dezember 2015, 08:44:43
    Hallo,
    gebe den Bildern doch einfach den Artikelnamen.
    Wenn du eine CSV Liste hast ist das mit einen Batch in paar Minuten erledigt.
    Schau mal bei Google nach da sind tausende Vorschläge.
    Gruß
    Marco

    piru

    • Fördermitglied
    • Beiträge: 1.263
    • Geschlecht:
    Re: Bilder einfacher zu ordnen?
    Antwort #2 am: 16. Dezember 2015, 09:34:54
    CSV Datei habe ich erfolgreich ohne Fehler etc. hoch geladen.Artikel werden auch ordentlich im Shop angezeigt.
    Normalerweise müßte ich jedes Bild einzeln nach dem hochladen auf dem Server den Artikeln manuell zu weisen.

    Ich verstehe nicht. Du kannst in der .csv Datei der name der Bilder eingeben unter p_image bzw. p_image.1, etc. Danach lädst du alle Bilder in den original_bilder Ordner hoch. Warum muss du die manuell zuweisen?

    Gruß piru

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Bilder einfacher zu ordnen?
    Antwort #3 am: 16. Dezember 2015, 09:45:53
    Wenn die Bilder richtig benannt sind, also mit <products_id>_0.jpg, und das auch so in der CSV steht, kann man die Bilder einfach in den images/product_images/original_images Ordner legen, das CSV importieren und das Imageprocessing laufen lassen.
    Zum umbenennen von hunderten Bildern in einem Rutsch empfehle ich Irfanview.

    Wenn Du Scripte brauchst, die das importieren erledigen:
    import_products.php
    Code: PHP  [Auswählen]
    <?php

    // security -- only allow IP adress of our office
    // include('ipcheck.php'); // DANGER! You need your security solution here!


    // filename of input file
    $filename = 'import.csv';

    // tell modified shop code, we have a secure access
    define ("_VALID_XTC","OK");

    // tell import class our delimeter and textsign
    define ('CSV_SEPERATOR',"\t"); // I use tab here (make sure your import.csv doesn't contain any tab inside a cell!!!)
    define ('CSV_TEXTSIGN','^');    // I use # here (make sure your import.csv doesn't contain any # inside a cell!!!)

    // include
    require('includes/application_top.php');
    require('admin/includes/classes/import.php');
    require('inc/xtc_format_filesize.inc.php');
    require('inc/xtc_get_customers_statuses.inc.php');


    // import data
    $handler = new xtcImport($filename);
    $mapping=$handler->map_file($handler->generate_map());
    $import=$handler->import($mapping);

    // output success and/or failure
    if ($import)
    {
     if ($import[0])
     {
      echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">
                            <tr>
                                    <td class="messageStackSuccess">'
    ;

                                    if (isset($import[0]['prod_new'])) echo 'Neue Artikel:'.$import[0]['prod_new'].'<br />';
                                    if (isset($import[0]['cat_new'])) echo 'Neue Kategorien:'.$import[0]['cat_new'].'<br />';
                                    if (isset($import[0]['prod_upd'])) echo 'Aktualisierte Artikel:'.$import[0]['prod_upd'].'<br />';
                                    if (isset($import[0]['cat_upd'])) echo 'Aktualisierte Kategorien:'.$import[0]['cat_upd'].'<br />';
                                    if (isset($import[0]['cat_touched'])) echo 'Betroffene Kategorien:'.$import[0]['cat_touched'].'<br />';
                                    if (isset($import[2])) echo $import[2];

      echo '                </td>
                            </tr>
                    </table>'
    ;
     }

     if (isset($import[1]) && $import[1][0]!='')
     {
      echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">
                            <tr>
                                    <td class="messageStackError">'
    ;

                                    for ($i=0;$i<count($import[1]);$i++)
                                    {
                                            echo $import[1][$i].'<br />';
                                    }


      echo '                </td>
                            </tr>
                    </table>'
    ;
     }

    }

    ?>

    Das script nutzt die imageprocessing routine des shops:
    Code: PHP  [Auswählen]
    <?php
    // security -- only allow IP adress of our office
    // include('ipcheck.php'); // DANGER! You need your own security solution here!
    // tell modified shop code, we have a secure access
    define ("_VALID_XTC","OK");
    require_once('includes/application_top.php');

    // copy from admin configure.php
    if (!defined('HTTP_SERVER')) define('HTTP_SERVER', 'https://kollateral-verlag.net'); // eg, http://localhost or - https://localhost should not be empty for productive servers
    if (!defined('HTTP_CATALOG_SERVER')) define('HTTP_CATALOG_SERVER', 'https://www.kollateral-verlag.net');
    if (!defined('HTTPS_CATALOG_SERVER')) define('HTTPS_CATALOG_SERVER', 'https://www.kollateral-verlag.net');
    if (!defined('ENABLE_SSL_CATALOG')) define('ENABLE_SSL_CATALOG', 'true'); // secure webserver for catalog module
    if (!defined('USE_SSL_PROXY')) define('USE_SSL_PROXY', false); // using SSL proxy?
    if (!defined('DIR_FS_DOCUMENT_ROOT')) define('DIR_FS_DOCUMENT_ROOT', '/var/www/vhosts/kollateral-verlag.net/httpdocs/'); // where the pages are located on the server
    if (!defined('DIR_WS_ADMIN')) define('DIR_WS_ADMIN', '/admin/'); // absolute path required
    if (!defined('DIR_FS_ADMIN')) define('DIR_FS_ADMIN', '/var/www/vhosts/kollateral-verlag.net/httpdocs/admin/'); // absolute pate required
    if (!defined('DIR_WS_CATALOG')) define('DIR_WS_CATALOG', '/'); // absolute path required
    if (!defined('DIR_FS_CATALOG')) define('DIR_FS_CATALOG', '/var/www/vhosts/kollateral-verlag.net/httpdocs/'); // absolute path required
    if (!defined('DIR_WS_IMAGES')) define('DIR_WS_IMAGES', 'images/');
    if (!defined('DIR_FS_CATALOG_IMAGES')) define('DIR_FS_CATALOG_IMAGES', DIR_FS_CATALOG . 'images/');
    if (!defined('DIR_FS_CATALOG_ORIGINAL_IMAGES')) define('DIR_FS_CATALOG_ORIGINAL_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/original_images/');
    if (!defined('DIR_FS_CATALOG_THUMBNAIL_IMAGES')) define('DIR_FS_CATALOG_THUMBNAIL_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/thumbnail_images/');
    if (!defined('DIR_FS_CATALOG_INFO_IMAGES')) define('DIR_FS_CATALOG_INFO_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/info_images/');
    if (!defined('DIR_FS_CATALOG_POPUP_IMAGES')) define('DIR_FS_CATALOG_POPUP_IMAGES', DIR_FS_CATALOG_IMAGES .'product_images/popup_images/');
    if (!defined('DIR_WS_ICONS')) define('DIR_WS_ICONS', DIR_WS_IMAGES . 'icons/');
    if (!defined('DIR_WS_CATALOG_IMAGES')) define('DIR_WS_CATALOG_IMAGES', DIR_WS_CATALOG . 'images/');
    if (!defined('DIR_WS_CATALOG_ORIGINAL_IMAGES')) define('DIR_WS_CATALOG_ORIGINAL_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/original_images/');
    if (!defined('DIR_WS_CATALOG_THUMBNAIL_IMAGES')) define('DIR_WS_CATALOG_THUMBNAIL_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/thumbnail_images/');
    if (!defined('DIR_WS_CATALOG_INFO_IMAGES')) define('DIR_WS_CATALOG_INFO_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/info_images/');
    if (!defined('DIR_WS_CATALOG_POPUP_IMAGES')) define('DIR_WS_CATALOG_POPUP_IMAGES', DIR_WS_CATALOG_IMAGES .'product_images/popup_images/');


    require('admin/includes/classes/image_manipulator_GD2_advanced.php');

    // copied function from general.php
    function clear_string($value) {
        $string = str_replace("'", '', $value);
        $string = str_replace(')', '', $string);
        $string = str_replace('(', '', $string);
        $array = explode(',', $string);
        return $array;
    }


    // initialise arrays
    $original_images = array();
    $processed_images = array();


    // original images
    $d = dir(DIR_FS_CATALOG_ORIGINAL_IMAGES);

    while (false !== ($entry = $d->read())) {
       if ($entry != "noimage.gif") $original_images[]=$entry;
    }
    $d->close();

    // product info images
    $d = dir(DIR_FS_CATALOG_INFO_IMAGES);

    while (false !== ($entry = $d->read())) {
       if ($entry != "noimage.gif") $processed_images[]=$entry;
    }
    $d->close();

    // compare arrays
    $products_image_name = array_diff($original_images, $processed_images);

    // if no difference, quit with statement complete
    if (empty($products_image_name)) {
            die ("Imageprocessing abgeschlossen.");
    } else {
    // process one picture
            $products_image_name = array_shift($products_image_name);
            include('admin/includes/product_info_images.php');
            include('admin/includes/product_popup_images.php');
            include('admin/includes/product_thumbnail_images.php');
            echo "Bild $products_image_name wurde verarbeitet";
    }

    ?>
     

    Bei mir laufen die Scripte zum Importieren einzelner Artikel seit Monaten. Beide Scripte sind mit wenig Aufwand dahingehend umzuarbeiten, dass sie nur eine bestimmte Anzahl von Artikeln in einem Rutsch machen, um timeouts zu vermeiden. Drei Zeilen JQuery und zwei Schleifen im PHP sollten reichen.

    Alternativ die script execution time setzen mit
    set_time_limit(int $seconds)
    und den Import auf einem Lokalen System machen, danach das ganze ins Web kopieren.

    Zitro

    • Neu im Forum
    • Beiträge: 9
    Re: Bilder einfacher zu ordnen?
    Antwort #4 am: 16. Dezember 2015, 09:56:46
    Vielen Dank euch für die schnelle Hilfe. Hat auf jedenfall funktioniert. Ist zwar jetzt eine Fehlermeldung beim hochladen der CSV Datei da,aber diese werde ich wohl auch irgendwie beheben können. Müßte ein Serverproblem sein,aber schauen wir mal^^

    Zitro

    • Neu im Forum
    • Beiträge: 9
    Re: Bilder einfacher zu ordnen?
    Antwort #5 am: 16. Dezember 2015, 15:21:09
    Hab es hin bekommen. Fehlermeldung ist weg.
    Eine Frage noch an euch. Wenn ich in eine Kategorie rein gehe werden mir keine Bilder angezeigt, allerdings zeigt er mir Bilder an wenn ich direkt auf einen Artikel klicke. Muß ich da erst noch was umstellen das er mir auch in der Übersicht die Bilder anzeigt? Finde irgendwie im Adminbereich nichts was ich umstellen kann.

    MFG

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Bilder einfacher zu ordnen?
    Antwort #6 am: 16. Dezember 2015, 15:32:21
    Das Imageprocessing hast du laufen lassen?

    images/product_images/original_images
    Enthält die Bilder, die Du hochlädst, wenn Du in der Artikelverwaltung im Backend bist. (da müssen auch die Bilder hin wenn man extern per FTP die Bilder hochlädt)

    Dann wird das Imageprocessing gestartet:
    Im Backend auf
    Module -> Module -> Imageprocessing-New -V2.01- Produktbilder

    Dann rechts auf Start, nochmal Start ..... warten.

    Jetzt werden die Bilder erzeugt die in den Ordnern liegen, die dann auch von der Webseite genutzt werden, also:
    images/product_images/popup_images
    images/product_images/info_images
    images/product_images/thumbnail_images

    Diese Bilder werden nach den Kriterien erzeugt, die im Backend unter:
    Konfiguration -> Bild Optionen
    eingestellt wurden.

    Zitro

    • Neu im Forum
    • Beiträge: 9
    Re: Bilder einfacher zu ordnen?
    Antwort #7 am: 16. Dezember 2015, 20:42:52
    Perfekt,vielen Dank für die Hilfe.
    9 Antworten
    4932 Aufrufe
    12. Dezember 2011, 14:07:33 von Da Sandro
    6 Antworten
    3110 Aufrufe
    15. November 2014, 11:11:45 von Glera77
    8 Antworten
    6639 Aufrufe
    07. März 2010, 18:13:39 von xtc4pii
    8 Antworten
    10709 Aufrufe
    30. März 2011, 01:07:06 von SupaRoyal
               
    anything