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: Bugreport: Kategoriebild geht verloren

    PregLiz

    • Frisch an Board
    • Beiträge: 92
    Bugreport: Kategoriebild geht verloren
    am: 18. Juni 2014, 16:50:16
    Hallo,

    wenn man ein Kategoriebild hochlädt dessen Namen gleich einem bereits existierendem Kategoriebild ist, geht das alte Bild verloren.

    Beispiel:
    Kategorie Id: 8
    Kategoriebild: 8.gif

    Jetz läd man für die Kategorie mit der ID 10 ein Bild mit dem Namen 8.gif hoch.
    Kategorie mit ID 8 verliert das Bild weil es vom Server gelöscht wird.

    Nachgestellt im Demoshop mit der aktuellen Version (stabile Releaseversion).

    Viele Grüße
    Daniel



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

    Bonsai

    • Viel Schreiber
    • Beiträge: 4.127
    • Geschlecht:
    Re: Bugreport: Kategoriebild geht verloren
    Antwort #1 am: 18. Juni 2014, 16:54:02
    Meines Erachtens ein Bedienungsfehler und kein Bug.

    Wenn Du auf Deiner Festplatte eine 8.jpg liegen hast und legst da eine andere 8.jpg hin, ist die erste Datei weg.

    Was aber wünschenswert wäre: Ein Popup, das sagt "Datei existiert bereits. Überschreiben?"

    PregLiz

    • Frisch an Board
    • Beiträge: 92
    Re: Bugreport: Kategoriebild geht verloren
    Antwort #2 am: 18. Juni 2014, 17:02:36
    Hmm ne sorry, das seh ich nicht so. Glaube auch ehrlich gesagt nicht, dass das so gewollt ist.
    Es geht ja darum ein neues Kategoriebild einzufügen, das auch noch umbenannt wird.

    Die finale Datei heißt (bleiben wir im Beispiel) 10.gif.

    PregLiz

    • Frisch an Board
    • Beiträge: 92
    Re: Bugreport: Kategoriebild geht verloren
    Antwort #3 am: 18. Juni 2014, 18:09:28
    So also ich habe das ganze jetzt folgender Maßen gelöst.
    Vielleicht hilfreich für diejenigen die das Ganze auch als Bug sehen.

    Ordner "upload" anlegen in "shop/images/categories"

    Datei admin/includes/classes/categories.php ca. Zeile 206:

    Code: PHP  [Auswählen]
                    if ($categories_image = & xtc_try_upload('categories_image', DIR_FS_CATALOG_IMAGES.'categories/')) {
                            $cname_arr = explode('.', $categories_image->filename);
                            $cnsuffix = array_pop($cname_arr);
                            $categories_image_name = $categories_id.'.'.$cnsuffix;
                            @ unlink(DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image_name);
                            rename(DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image->filename, DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image_name);
                            xtc_db_query("UPDATE ".TABLE_CATEGORIES."
                                                                                     SET categories_image = '"
    .xtc_db_input($categories_image_name)."'
                                                                                   WHERE categories_id = '"
    .(int) $categories_id."'");
                    }
     

    Ersetzen durch
    Code: PHP  [Auswählen]
    if ($categories_image = & xtc_try_upload('categories_image', DIR_FS_CATALOG_IMAGES.'categories/upload')) {
                            $cname_arr = explode('.', $categories_image->filename);
                            $cnsuffix = array_pop($cname_arr);
                            $categories_image_name = $categories_id.'.'.$cnsuffix;
                            @ unlink(DIR_FS_CATALOG_IMAGES.'categories/'.$categories_data['categories_previous_image']);
                            //rename(DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image->filename, DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image_name);
                            copy(DIR_FS_CATALOG_IMAGES.'categories/upload/'.$categories_image->filename, DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image_name);
                            @ unlink(DIR_FS_CATALOG_IMAGES.'categories/upload/'.$categories_image->filename);
                            chmod(DIR_FS_CATALOG_IMAGES.'categories/'.$categories_image_name,0664);
                            xtc_db_query("UPDATE ".TABLE_CATEGORIES."
                                                                                     SET categories_image = '"
    .xtc_db_input($categories_image_name)."'
                                                                                   WHERE categories_id = '"
    .(int) $categories_id."'");
                    }
     

    Erklärung:
    Die hochzuladende Datei wird im Ordner upload zwischengelagert. Somit kann sie keine aktuellen Dateien überschreiben.
    Von dem Ordner Upload wird sie dann in den richtigen Ordner verschoben und umbenannt.

    Viele Grüße
    Daniel
    3 Antworten
    4510 Aufrufe
    06. November 2011, 11:28:42 von Script-Composer
    9 Antworten
    3431 Aufrufe
    27. April 2016, 15:57:30 von webald
    10 Antworten
    5490 Aufrufe
    20. Februar 2017, 09:50:48 von cplasa
    13 Antworten
    5369 Aufrufe
    23. April 2018, 20:36:25 von hpzeller
               
    anything