Artikel Kategorie zuordnen

Hallo.

Erst mal, ich bin hier ziemlich neu und beschäftige mich erst seit ein paar Tagen und Nächten mit den OXID-eShop. :slight_smile:

Grundsätzlich funkioniert alles, und ich möchte an dieser Stelle mal ein großes Lob der Community aussprechen.
Alle bisherigen “Probleme” habe ich mit Hilfe dieses Forums lösen können.
Alle? Fast!
Bist auf das aktuelle, dass ich keine Artikel einer Kategorie und auch nicht umgekehrt zuordnen kann.

Ich habe alle anderen Artikel zu diesem Thema gelesen, aber leider bisher ohne Erfolg.

Ich habe einen Testartikel angelegt (mit Varianten, funktioniert sehr gut), und eine Testkategorie mti einer Unterkategorie.

Es ist nun egal ob ich versuche den Artikel der Haupt- oder der Unterkategorie zuzuordnen, oder ob ich in die jeweilige Kategorie gehe, und versuche dort den Artikel zuzuordnen.

Immer bleibt das sich dann öffnende Fenster leer.

Ich arbeite mit FireFox (Version 3.5.7) oder mit verschiedenen Versionen des IE. Auch habe ich Google Chrome gestestet, alles immer mit dem gleichen Resultat.

Ich habe irgendwo gelesen, dass diese Funktion per Aiax funktionieren soll. Gibt es einen anderen Weg? (SQL?) Wenn ja, kann mir den bitte jemand so beschreiben, dass ich als Newbie eine Chance habe?

DANKE!!!

Kannst du mal einen Screenshot von der Seiten machen, wo man die Artikel zuordnet?
Ich würde mal darau tippen, das die Dateien für den Admin-Bereich nicht ganz in Ordnung sind.

[QUOTE=ChristophH;22474]Kannst du mal einen Screenshot von der Seiten machen, wo man die Artikel zuordnet?
Ich würde mal darau tippen, das die Dateien für den Admin-Bereich nicht ganz in Ordnung sind.[/QUOTE]
Ja, sehr gerne. ich hoffe, Du kannst die Grafik sehen!

Ja, da ist definitv etwas kaputt oder nicht komplett hochgeladen worden. Bitte lad nochmal alle Dateien für den Admin-Bereich neu hoch. Also den Ordner “Admin”.
Anschließend einmal aus dem Admin-Bereich abmelden. Den Inhalt des “tmp” Ordner löschen und dann nochmal versuchen. Dann sollte es hoffentlich klappen.

Erst mal viele Dank, leider hat das aber nichts geholfen.
Ich habe den /tmp Ordner gelöscht, und die Daten aus dem /admin Ordner neu übertragen.
Kann es sein, dass es da noch ein anderes Problem gibt?

Danke

Waren bei der Installation alle Systemvoraussetzungen des Servers erfüllt?

Im Forum hier gab es glaube ich mal ein ähnliches Problem. Benutz mal die Suche.

Das Problem hatten wir bei einem Kunden auch einmal…

Letzten Endes stellte es sich heraus, dass das die Folge eines Problems eines eingebauten Moduls war, das sich [B]nur[/B] an dieser Stelle mit dieser Fehlfunktion manifestierte!

Obwohl das Modul auch nicht ansatzweise irgend etwas mit dieser Funktion zu tun hatte…

Und woran das lag, weiß ich bist heute nicht.

Deaktiviere mal die eingebauten Module (eins nach dem anderen), um zu sehen, ob das irgendwann wieder funktioniert…

Hallo, zusammen,

nun mal abwechslungsweise auf Deutsch :slight_smile:

Auch wenn das Problem nicht mehr aktuell sein mag - mich hat es mehrere Stunden aufgehalten und für alle, die dieses Problem in der Zukunft mal haben sollten - hier ist die Lösung:

Wichtige Festellung 1: Diese “wunderbaren” (ich find sie sauhässlich und unausgegoren) drag-n-drop-Listen sind so ziemlich das einzige in Oxid (hier ist 4.2 am laufen), was AJAX verwendet.

Wichtige Festellung 2: Es gibt Module, die in der modules/functions.php ggf. Kernfunktionen der Oxid-API aufrufen (ob sie nun dürfen oder nicht).

Wichtige Festellung 3: Für Session-Steuerung, DB-Zugriff etc. muss die via AJAX aufgerufene PHP-Datei (oxajax.php) ziemlich viel neu includieren, damit die Oxid-API im Call zur Verfügung steht.

Was war also bei mir das Problem? Ich habe Module, welche in modules/functions.php auf die Oxid-API zugreifen. In der oxajax.php wird (wie auch in der index.php) der include von modules/functions.php sehr früh ausgeführt, sodass die Oxid-APIs nicht zur Verfügung stehen:


   oxajax.php, Zeile 593ff
    // Generic utility method file.
    $sBasePath = getShopBasePath();
    include_once $sBasePath . 'modules/functions.php';
    include_once $sBasePath . 'core/oxfunctions.php';
    include_once $sBasePath . 'core/adodblite/adodb.inc.php';
    include_once $sBasePath . 'core/oxconfig.php';
    include_once $sBasePath . 'core/oxsupercfg.php';
    include_once $sBasePath . "core/oxutils.php";

Was passiert? Der Scriptaufruf schlägt fehl, da das Modul Funktionen aufruft, die zu diesem Zeitpunkt noch garnicht bekannt sind. Deshalb bleiben die Listen leer. Schaut mal mit Firebug in den AJAX-Response rein, da kommt dann die PHP-Fehlermeldung.

Was ist die Lösung? Tja, der Code muss halt geändert werden. Ich habe mich eh schon damit abgefunden, den Oxid-Code zu Taggen und meine eigenen Patches bereitzuhalten. So sieht es bei mir aus:


   oxajax.php, Zeile 593ff
    // Generic utility method file.
    $sBasePath = getShopBasePath();
//[--]   include_once $sBasePath . 'modules/functions.php';
    include_once $sBasePath . 'core/oxfunctions.php';
    include_once $sBasePath . 'core/adodblite/adodb.inc.php';
    include_once $sBasePath . 'core/oxconfig.php';
    include_once $sBasePath . 'core/oxsupercfg.php';
    include_once $sBasePath . "core/oxutils.php";
    include_once $sBasePath . 'modules/functions.php'; // [++]

Und tada, es klappt wieder alles.

Viel Spaß noch,
Pascal

Wow… ich bin begeistert…
Kann man daraus ein Modul machen? Letztlich sollte das im Core landen, oder?

Gruß

Kann man sicher nicht, da die Klasse geladen wird, bevor das Modul-Overwriting funktioniert.

Sollte aber auf jeden Fall im Core geändert werden…