1 neutraler Bilderordner mit 4 Unterordenern für alle Stores

  • Ich versuche seit geraumer Zeit einen neutralen Bilderordner in den Multistore zu integrieren!


    Er liegt unter

    Zitat

    und hier sind alle Bilder aufgeteilt nach den vier bekannten Ordnern enthalten.


    Rufe ich im einzelnen store die Artikel auf, dann erscheint nur kein Image, ändere ich die Pfade in der path.php (Hauptordner, configuration, etc.) schreibt er mir als Bildpfad immer

    Zitat

    und dann den in paths angegebenen Pfad, so geht das aber leider nicht, denn im Pfad müssen die /store/1/ verschwinden. Wie geht das bitte.




    Hintergrund ist für uns, dass wir gerne in mehreren Stores die Bilder verwenden wollen, es nur einen Admin gibt und der soll es so einfach wie möglich haben. Also per csv die Bildnamen hochladen, Bilder einfach in die 4 neutralen ordner und los gehts.




    Noch etwas weiteres, wo schalte ich die Funktion ab, dass beim löschen eines Artikels auch das Bild mitgelöscht wird. Das ist sehr ärgerlich.


    Das geht bestimmt, da bin ich sicher, habs bei XTC schon mal geschafft, aber in welcher der vielen Daien ist der Befehl.




    Danke für eine schnelle Antort im Voraus.




    Gruß




    Erich

    Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • Der neutrale Ordner kann ja ohne Probleme verwendet werden, es wird lediglich über den KFM Filemanager nicht angezeigt, diese kann über die Konfiguration mittels der Datei

    Zitat

    external/kfm/configuration.php

    angepasst werden.

    PHP
    1. $kfm_userfiles_address = rtrim(DIR_FS_ACTUAL_STORE_FILES, $dirsep);
    2. $kfm_userfiles_output = implode('/', array_slice(explode('/', DIR_WS_CATALOG) , 0, -2)) . '/' . DIR_WS_ACTUAL_STORE_FILES;

    müssten die benötigten Einstellungen sein.


    Das Löschen der Produkte wird über die

    Zitat

    admin/core/classes/class.categories.php

    ab ca. Zeile: 436 mit der Methode

    PHP
    1. remove_product

    bewerkstelligt.

  • Danke dafür, nur leider fehtl mir nun die Fantasie, was ich hier ändern muss. (external/kfm/configuration.php )


    Wenn ich den Befehl

    PHP
    1. $kfm_userfiles_address = rtrim(DIR_FS_ACTUAL_STORE_FILES, $dirsep); $kfm_userfiles_output = implode('/', array_slice(explode('/', DIR_WS_CATALOG) , 0, -2)) . '/' . DIR_WS_ACTUAL_STORE_FILES;


    ändere, z.B. das DIR_WS_ACTUAL_STORE_FILES entferne und dafür den Bilderordnerpfad angebe, dann geht doch das Template nicht auf den richtigen Pfad, oder?


    Mein Pfad ist domain.de/01bilder, der Pfad des einzelnen stores ist store_files/1/, /2/ usw und dort zieht er sich jeweils die Logos, Banner, etc.


    Es geht nur um die Bilder für die Produkte.

    Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • Nein, dies wäre nur für den Filemanager, damit die Bilder ausgesucht und verlinkt werdne können im Admin. Wenn Du

    Zitat

    store_files/n/

    generell Fix haben willst muss man wo anders ansetzen.

  • Das habe ich verstanden, allerdings enthält die Original (external/kfm/configuration.php ) bereits diese Zeile. Was muss ich nun konkret ändern, um eben Bilder in domain.de/01bilder/ uploaden zu können und damit die jeweiligen stores diese Bilder auch finden.


    Ich komme noch nicht ganz klar, da die Zeilen bereits enthalten sind.

    Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • PHP
    1. $kfm_userfiles_address = rtrim(DIR_FS_ACTUAL_STORE_FILES, $dirsep);


    Das ist der absolute Pfad auf dem Datei System, wenn wir also bei Deinem Beispiel bleiben
    müsstest Du es in das hier ändern:

    PHP
    1. $kfm_userfiles_address = DIR_FS_CATALOG . '01bilder';


    PHP
    1. $kfm_userfiles_output = implode('/', array_slice(explode('/', DIR_WS_CATALOG) , 0, -2)) . '/' . DIR_WS_ACTUAL_STORE_FILES;


    Ist der relative Pfad de rim Browser verwendet wird , nach Deinem Beispil müsste es also

    PHP
    1. $kfm_userfiles_output = implode('/', array_slice(explode('/', DIR_WS_CATALOG) , 0, -2)) . '/01bilder/' ;

    lauten, wenn ich mich nicht irre. :whistling:

  • Leider hat es bisher mit den gegebenen Tipps nicht funktioniert, daher nun das Ganze nochmals alles detailliert, damit es klarer wird, wo das Problem liegt.Derzeit nutzen wir 3 Stores in einer Mall


    Der absolute Pfad ist:

    Zitat

    /var/www/web1/html/000_shop/01multishop/


    Hier ist der Multistore installiert und funktioniert super!


    Durch Aufruf der

    Zitat

    domain.de/

    erscheint sofort der jeweilige store, da alle Domains/Sub-Domains hierher umgeleitet sind.


    Artikel laden wir per csv Datei in den store, auch den Namen der Bilder xxx.jpg, insgesamt haben wir 6.700 Bilder in jedem der vier Ordner mit den jeweiligen Bildmaßen hochgeladen. Diese Bilder haben wir aber nicht im jeweiligen store separiert, sondern einen eigenen neuen neutralen Ordner angelegt: neutraler Ordner =

    Zitat

    http://domain.de/01bilder

    , oder absoluter Pfad:

    Zitat

    /var/www/web1/html/000_shop/01multishop/01bilder/.

    Ruft man im Browser ein Bild auf, Bspl.:

    Zitat

    sieht man in jedem store im Browser dieses einzelne Bild, das bedeutet die Bilder wären unter diesem Pfad unter jeder Domain aufrufbar.


    Nun zum Problem:


    Wo müssen wir eingreifen, dass die stores auf diesen neutralen Ordner zugreifen, um die jeweiligen Bilder anzeigen zu können.


    Wo müssen wir eingreifen, dass die Bilder in den jeweiligen stores in den Produktlisten, Kategorien, Popup, etc. auch wirklich angezeigt werden? Derzeit ist nur no_image.jpg sichtbar, da der Bildpfad nicht stimmt. Jexdes Bild hat immer den Bildpfad:

    Zitat

    . Egal was wir versuchen, das /store_files/n/ bekommen wir bisher nicht weg, auch nicht mit den bereits gegebenen Hinweisen.


    Wo müssen wir eingreifen, dass wir im Admin Bereich ebenfalls eine Anlage von Artikeln machen können und dort ebenfalls den Bildupload inkl. dem Imageprozessing in diesen neutralen Ordnern landet und nicht im einzelnen store Ordner.


    Wie verhindern wir, dass wenn wir in einem einzelnen store ein Produkt löschen wollen, nicht zugleich auch das Bild aus diesem neutralen Ordner gelöscht wird.



    Es wäre sehr hilfreich den gesamten zu verändernden Code zu erhalten.

    Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • Mal ne Frage, was ist eigentlich das Problem das Ihr habt? Wem gehören die Artikel im Shop, sprich wer ist der Eigentümer?


    Die Bilder werden aus dem Verzeichnis gezogen, dem auch der Besitzer ist, das o.g. gilt wie bereits geschrieben nur für den Filemanager mehr auch nicht. Wenn aber alle Eigentümer der Artikel ein einziger Shop ist, ist doch bereits alles Zentral, nämlich in dem Verzeichnis des jeweiligen Shops, wenns also der Hauptshop ist beim Hauptshop.

  • Nun, das Problem ist doch ordentlich beschrieben und ich versteh nun deine Frage nicht. Mehrer stores, mehrere Eigentümer, ein gemeinsamer Bilderorder, aber die Software greift immer auf den dem shop zugeörigen Bilderordner zu. Das ist doch nicht gut, denn oft teilen sich unterschiedliche Betreiber einen Administrator und der soll doch nicht mehrfach die Bilder anlehen, oder, das bläht den store doch nur auf.




    Gibt es eine Lösung, oder nicht? Das ist meine Frage und mein Problem:




    Aber durch Rumfummeln habe ich nunj die Funktion gefunden, die ausgeschaltet werden kann, damit man nicht beim produktlöschen auch die Bilder mit löscht. Das hätte ich eigentlich erwartet hier sauber als Lösungsweg zu erfahren:




    Das habe ich selbst finden können:


    So schaltet man die Funktion ab, dass bei Produktlöschung auch zugleich die Bilder mit gelöscht werden.


    admin/core/functions/general.php


    Hier folgende Zeilen auskommentieren: ca. Zeile 556

    PHP
    1. //deletes all product image files by filename /*function xtc_del_image_file($image, $owner) {if (file_exists(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_POPUP_IMAGES . $image)) {@unlink(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_POPUP_IMAGES . $image); } if (file_exists(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_ORG_IMAGES . $image)) {@unlink(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_ORG_IMAGES . $image); } if (file_exists(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_THUMBNAIL_IMAGES . $image)) {@unlink(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_THUMBNAIL_IMAGES . $image); } if (file_exists(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_INFO_IMAGES . $image)) {@unlink(DIR_FS_STORE_FILES . $owner . DIR_WS_PRODUCT_INFO_IMAGES . $image); } }*/

    Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • Du versthest das System nicht deshalb Frage ich, wenn Ihr Doch sage, es ist Zentral wenn die Produkte vom gleichen Eigentümer sind, dann ist auch keine Änderung von Nöten. Da sich die Änderungen an mehreren Stellen anzustellen sind, suche ich nach der Lösung die Du suchst und nicht umgekehrt.


    Nochmal, wenn Eigentümer der Produkte immer der gleiche ist, ist das Verzeichnis Zentral bei nur einem Shopverzeichnis. Z.B. Eigentümer ist Hauptshop, dann unter

    Zitat

    store_files/1/images/product_images/

    es ist vollkommen irrelevant in welchem Shop der Artikel angezeigt wird, es ist nur der Eigentümer wichtig. Wenn es unbedingt eine Zentralestelle sein soll, sind allein für den Frontend mindestens in der

    Zitat

    core/classes/class.product.php

    Änderungen durchzuführen. Überprüfungen ob das Bild existiert, müsste im jeweiligen Modul durchgeführt werden. Vom Admin mal abgesehn für das Hochladen bei manueller Anlage. Ergo gibt es kein Code, da

    • mir nicht bekannt ist, wer Du bist
    • welchen Shop Du verwendest
    • ob Du überhaupt Supportanspruch hättest (Mitteilung der Bestellnummer vom Shop per PM bitte)
    • der Umfang der Änderungen den normalen Rahmen und auch den Supportinhalt sprengen würden
    • Du es von mir forderst


    Die Löschung der Artikelbilder wurde Dir bereits in Beitrag #2 genannt.

  • Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • So dann hätten wir ja schon mal einige Punkte geklärt.


    Wenn Du genannte Lösungen nicht umsetzen kannst, dann fragt man einfach nochmal nach. Du wolltest nur wissen, wo es durchgeführt wird und ich habs Dir genannt. Wenn Du die Löschfunktion vollständig eliminierst, wirst Du später ggf. wieder Probleme bekommen. Ich gebe Dir also schon die sinnvollen Lösungen.


    Kommen wir also zu Deinem Zentralen Ordner Problem zurück. Es ist für Dich eigentlich ganz simpel, die Eigentümer auf einen Store setzen und somit sind alle Bilder zentral an einem Ort, ggf. kann man nach Möglichkein einen Symlink setzen und die Dateien wo anders platzieren. Systemtechnisch ist das der Beste weg mit dem geringsten Aufwand, da alles irgendwo dadrauf abzielt.


    Wenn Du hier einen Beispiel an Externen Bilderpaden haben willst, der nur einen Bruchteil der Änderungen mit sich bringen würde, wenn mans komplett über das Admininterface weiterhin administrieren will: Externe Bilder

  • Vielen Dank, der letzte Hinweis hat es vollbracht!



    Auch wenn ich mich ein wenig dumm angestellt habe, kam am Ende doch der gewünschte Erfolg.


    Nun klappt alles, es war tatsächlich die Produkt Ownerschaft, diese habe ich in Hauptstore store_id 1 umgeändert und bei den product images die store id 1 hinterlegt.



    Das war es schon, zwei kurze mysql befehle für die datenbank und alles war in ordnung.


    SQL
    1. update products set products_owner="1" where products_owner="2";
    2. update products_images set store_id="1" where store_id="2";

    :D :D :D

    Nette Grüße
    Erich
    Ich bin begeistert von diesem Produkt!

  • Ich hoffe Du hast jetzt verstanden, wieso ich bohre. Ziel ist immer mit dem geringsten Aufwand, das zu erreichen, was benötigt wird.