Bilder aktualisieren

jk_hoschi

Aktives Mitglied
11. Dezember 2008
109
0
München
Hallo,

ich habe bemerkt das es bei dem Deaktivieren von einer gesamten Kategorie
für den Webshop einerseits eine leere Kategorien im Shop angelegt wird und
zwar die nächstgelegene obere Kategorie.
Damit müllt man den Shop mit deaktivierten leeren Kategorien zu.
Den dafür verantwortlichen Teil habe ich im Connector gefunden und auskommentiert.
Es handelt sich um die Datei "Kategorie.php" ab dem Teil
PHP:
//existiert oberkat?
            $categories_id_oberkat = getFremdKategorie($Kategorie->kOberKategorie);
            if (!$categories_id_oberkat) //is oberkat schon da?
            {
            //    eS_execute_query("insert into categories (categories_status, date_added, categories_template, listing_template, products_sorting, products_sorting2) values (0,now(),\"$einstellungen->cat_category_template\",\"$einstellungen->cat_listing_template\",\"$einstellungen->cat_sorting\",\"$einstellungen->cat_sorting2\")");
//                //hole id
//                $query = eS_execute_query("select LAST_INSERT_ID()");
//                $categories_id_oberkat_arr = mysql_fetch_row($query);
//                eS_execute_query("insert into categories_description (categories_id, language_id) values (".$categories_id_oberkat_arr[0].",$einstellungen->languages_id)");
//                $Kategorie->parent_id = $categories_id_oberkat_arr[0];
//                setMappingKategorie($Kategorie->kOberKategorie, $Kategorie->parent_id);
//                
//                //erstelle leere description für alle anderen Sprachen
//                $sonstigeSprachen = getSonstigeSprachen($einstellungen->languages_id);
//                if (is_array($sonstigeSprachen))
//                {
//                    foreach ($sonstigeSprachen as $sonstigeSprache)
//                    {
//                        eS_execute_query("insert into categories_description (categories_id, language_id) values (".$categories_id_oberkat_arr[0].",$sonstigeSprache)");
//                    }
//                }
            }
in diesem Bereich wird eine leere kategorie angelegt und auf inaktiv gesetzt.
Den Sinn verstehe ich nicht ganz.
Durch das Auskommentieren habe ich unser Problem gelöst.
Aber es hat sich ein neues Problem ergeben.
Es kommt bei uns immer wieder vor das ganze Kategorien samt Unterkategorien Webshop inaktiv geschaltet werden und zu gegebener Zeit wieder aktiviert werden.
Das funktioniert auch aber beim erneuten hochladen werden dann die Bilder nicht mehr mit hochgeladen.
Nach langen suchen im connector bin ich dann in der Wawidatenbank auf die suche gegangen und fündig geworden.
Alle Kategorien und Artikel werden auch für den Webshopabgleich markiert
aber wenn ich in der Tabelle ArtikelBild das dMod Datum verändere werden die Bilder erst neu hochgeladen.
In der alten Version war das nicht so.
Da konnten wir durch deaktivieren und wieder aktivieren die Bilder wieder
abgleichen.
Desweiteren ist mir aufgefallen das es im Connector eine Datei Namens ArtikelPict.php einen großen auskommentierten Teil gibt der das löschen von Bildern veranlasst.
Die dafür gebrauchte classe ist aber nicht da.
Wollte jetzt nicht weiter suchen, weil Zeit fehlt aber die Bilder werden dann nur aus der Datenbank genommen aber nicht vom Webserver gelöscht.
Bei uns besteht kein Platzmangel aber bei anderen mit Webhosting-Paketen könnte das zu einem Problem werden.
Wird der Connector eigentlich weiter Entwickelt?

m.f.g.
jk_hoschi
 

Thomas Lisson

Administrator
Mitarbeiter
24. März 2006
15.574
300
Köln
AW: Bilder aktualisieren

Hi,

das, was Du da auskommentiert hast ist wichtig, damit die Kategoriestruktur gebaut werden kann.

Bzgl. Bildern hab ich das Problem nicht verstanden.
Anders gesagt: Was funktioniert nicht bei dem Originalconnector bei Bildern?
 

jk_hoschi

Aktives Mitglied
11. Dezember 2008
109
0
München
AW: Bilder aktualisieren

Hallo,
danke für die schnelle Antwort.
Bezüglich der Kategoriestruktur,
warum soll eine inaktive leere Kategorie im Shop angelegt werden wenn die laut Übertragung zwar eine oberkategorie hat diese aber nicht vorhanden ist.
Wenn ich nicht die root Kategorie sondern eine Unterkategorie für den Shop freigeben möchte, wird dann die besagte inaktive Kategorie angelegt die kann der User nicht sehen kann und somit nicht die eigentlich Kategorie die freigegeben ist.
Die Struktur wird doch richtig übertragen.
Ist im Shop genau so wie ich sie Webshopaktiv gemacht habe.

Problem Bilder:
Das Problem ist der Abgleich !
Wenn von uns Kategorien aus dem Shop genommen werden muss aus welchen Gründen auch immer,
und diese z.B. einen Monat später wieder hochgeladen werden,
sind die Artikel im Shop aber ohne Bilder.
Die Bilder werden erst wieder hochgeladen wenn ich in der Wawi-Datenbank
in der besagten Tabelle das cMod-Feld geändert habe.
Dieses wird auch geändert wenn ich den Artikel in der Wawi aufrufe und zu der Reiterkarte Bilder gehe und dort nochmals auf InetBild 1 klicke obwohl dieses schon vergeben ist.
Desweiteren habe ich noch im Connector die Vergabe des Bildnamens auf die kArtikelnummer gesetzt damit nicht immer eine neue id vergeben wird und damit wenn wir Kategorien wieder Shopaktiv schalten ein neues Bild gespeichert wird obwohl dieses schon vorhanden ist.
Damit kommen wir zu dem letzten Problem bei den Bildern:
Wenn Artikel entgültig gelöscht werden und per Webshopabgleich aus dem Shop entfernt werden, bleiben die Bilder auf dem Webserver.
Bei Änderungen im Artikelsortiment kann dann im laufe der Zeit sich einiges an Bildern auf dem Server ansammeln die nicht mehr benötigt werden.
Bei einem grösserem Artikelstamm kann man da auch nicht mehr nach Änderungsdatum sondieren usw.
Nur mal so als Grössenangabe was sich bei uns im Hauptshop an Bildern befindet = ca. 3GB im product_images Ordner.
Das wird dann von Woche zu Woche mehr.
Die Bildgrössen liegen da pro Bild zwischen 9-16 KB.
Das finde ich schon ein grösseres Problem, da wenn auch der Shop geleert wird und alles neu übtertragen wird sollten auch die Ordner mit den Bildern geleert werden von Hand.
Das dauerte bei diesen Datenmengen schon ein wenig lange.

m.f.g.
jk_hoschi
 

jk_hoschi

Aktives Mitglied
11. Dezember 2008
109
0
München
AW: Bilder aktualisieren

Hallo,
das Problem des löschens der Bilder auf dem Webserver beim Webshopabgleich habe ich im Connector gelöst.

es handelt sich um die Datei /dbs/Artikel.php
PHP:
    /* geloeschte Artikel aus DB loeschen inkl. Bilder*/
    if (intval($_POST["action"]) == 3 && intval($_POST['KeyArtikel']))
    {
    
        $products_id = getFremdArtikel(intval($_POST['KeyArtikel']));
        
        if ($products_id>0 )
        
            {
    //eingefuegt um erst die Bilder zu loeschen            
            $bildnameloeschen=$products_id."0.jpg";
            $bildnameloeschen_=$products_id."1.jpg";
            if (file_exists(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen)){
                
            unlink(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen);
            unlink(DIR_FS_CATALOG_THUMBNAIL_IMAGES.$bildnameloeschen);
            unlink(DIR_FS_CATALOG_INFO_IMAGES.$bildnameloeschen);
            unlink(DIR_FS_CATALOG_POPUP_IMAGES.$bildnameloeschen);
            }
            
            if (file_exists(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen_)){
                
                    unlink(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen_);
                    unlink(DIR_FS_CATALOG_THUMBNAIL_IMAGES.$bildnameloeschen_);
                    unlink(DIR_FS_CATALOG_INFO_IMAGES.$bildnameloeschen_);
                    unlink(DIR_FS_CATALOG_POPUP_IMAGES.$bildnameloeschen_);    
                    
                    }
    //wenn Bilder geloescht ,koennen die Daten aus den Tabellen entfernt werden                    
            eS_execute_query("delete from products where products_id=".$products_id);
            eS_execute_query("delete from products_attributes where products_id=".$products_id);
            eS_execute_query("delete from products_description where products_id=".$products_id);
            eS_execute_query("delete from products_images where products_id=".$products_id);
            eS_execute_query("delete from products_to_categories where products_id=".$products_id);
            eS_execute_query("delete from products_xsell where products_id=".$products_id);
            eS_execute_query("delete from eazysales_martikel where products_id=".$products_id);
        }
        $return = 0;
    }
/*Daten entfernen ende */
Da habe ich die Löschfunktion erweitert auf die Bilder in den jeweiligen Verzeichnissen.
Funktioniert momentan bis Inet.Bild 2.
Kann man aber erweitern wenn man mehr Bilder pro Artikel nutzt.

Das Problem mit dem Webshopabgleich besteht aber immer noch.
Nur da ist es möglich mittels kurzen eingreifen in die Wawi-Datenbank die Bilder wieder rauf zu laden.
Laut der Logdateien die man im Connector aktivieren kann, konnte ich sehen das die Bilder erst garnicht übertragen werden.
Ich dachte da erst an eine Überprüfung über den Connector auf das Bild-Datum aber sie werden ja von der Wawi nicht gesendet.
Könnte man da nicht etwas machen ???

m.f.g.
jk_hoschi
 

jk_hoschi

Aktives Mitglied
11. Dezember 2008
109
0
München
AW: Bilder aktualisieren

Hallo,
das Problem des löschens der Bilder auf dem Webserver beim Webshopabgleich habe ich im Connector gelöst.

es handelt sich um die Datei /dbs/Artikel.php
PHP:
    /* geloeschte Artikel aus DB loeschen inkl. Bilder*/
    if (intval($_POST["action"]) == 3 && intval($_POST['KeyArtikel']))
    {
    
        $products_id = getFremdArtikel(intval($_POST['KeyArtikel']));
        
        if ($products_id>0 )
        
            {
    //eingefuegt um erst die Bilder zu loeschen            
            $bildnameloeschen=$products_id."_0.jpg";
            $bildnameloeschen_=$products_id."_1.jpg";
            if (file_exists(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen)){
                
            unlink(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen);
            unlink(DIR_FS_CATALOG_THUMBNAIL_IMAGES.$bildnameloeschen);
            unlink(DIR_FS_CATALOG_INFO_IMAGES.$bildnameloeschen);
            unlink(DIR_FS_CATALOG_POPUP_IMAGES.$bildnameloeschen);
            }
            
            if (file_exists(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen_)){
                
                    unlink(DIR_FS_CATALOG_ORIGINAL_IMAGES.$bildnameloeschen_);
                    unlink(DIR_FS_CATALOG_THUMBNAIL_IMAGES.$bildnameloeschen_);
                    unlink(DIR_FS_CATALOG_INFO_IMAGES.$bildnameloeschen_);
                    unlink(DIR_FS_CATALOG_POPUP_IMAGES.$bildnameloeschen_);    
                    
                    }
    //wenn Bilder geloescht ,koennen die Daten aus den Tabellen entfernt werden                    
            eS_execute_query("delete from products where products_id=".$products_id);
            eS_execute_query("delete from products_attributes where products_id=".$products_id);
            eS_execute_query("delete from products_description where products_id=".$products_id);
            eS_execute_query("delete from products_images where products_id=".$products_id);
            eS_execute_query("delete from products_to_categories where products_id=".$products_id);
            eS_execute_query("delete from products_xsell where products_id=".$products_id);
            eS_execute_query("delete from eazysales_martikel where products_id=".$products_id);
        }
        $return = 0;
    }
/*Daten entfernen ende */
Da habe ich die Löschfunktion erweitert auf die Bilder in den jeweiligen Verzeichnissen.
Funktioniert momentan bis Inet.Bild 2.
Kann man aber erweitern wenn man mehr Bilder pro Artikel nutzt.

Das Problem mit dem Webshopabgleich besteht aber immer noch.
Nur da ist es möglich mittels kurzen eingreifen in die Wawi-Datenbank die Bilder wieder rauf zu laden.
Laut der Logdateien die man im Connector aktivieren kann, konnte ich sehen das die Bilder erst garnicht übertragen werden.
Ich dachte da erst an eine Überprüfung über den Connector auf das Bild-Datum aber sie werden ja von der Wawi nicht gesendet.
Könnte man da nicht etwas machen ???

m.f.g.
jk_hoschi

Hallo,
kleine Änderung im Script:
$bildnameloeschen=$products_id."_0.jpg";
$bildnameloeschen_=$products_id."_1.jpg";

Das "_" hinzu gefügt weil dieses in der setArtikelBild.php beim Hochladen s vergeben wird.

m.f.g.
jk_hoschi
 

Envi

Aktives Mitglied
18. Juli 2009
1
0
AW: Bilder aktualisieren

Hi,

Habe den gleichen Fehler,

wo bitte befindet sich die Datei /dbs/Artikel.php ? (Ordner, Pfad)

Danke
 

Ähnliche Themen