sakiri Posted September 25, 2013 Share Posted September 25, 2013 (edited) Hallo allseits, ich habe eine Änderung des AdminImportControllers gebastelt, die wunderbar funktioniert, wenn ich die entsprechende Funktion hart im Original AdminImportController.php FIle im Verzeichnis /controllers/admin/ umschreibe. Wenn ich's aber sauber über einen Override machen möchte (unangetastete Original-Datei, Override-Datei mit vollständiger, abgeänderter Funktion in /override/controllers/admin/ ), mit - hoffentlich - richtigem Pointer "class AdminImportController extends AdminImportControllerCore" zu Beginn des Override Files, und wohl schon zig-Male gelöschter class_index.php, dann tut sich gar nichts. War schon in 1.5.4 so und ist jetzt mit 1.5.5 das selbe in grün... Kann mir irgendwer einen Tip geben, woran es liegen kann bzw. was ich falsch mache? Danke! Edited September 29, 2013 by sakiri (see edit history) Link to comment Share on other sites More sharing options...
Lockesoft Posted September 25, 2013 Share Posted September 25, 2013 Ich könnt mir noch vorstellen, dass evtl. Funktionen aus der Deiner Funktion heraus aufgerufen werden, die sich nicht von ausserhalb nutzen lassen. PaymentModule.php war da früher so ein Kandidat, dort waren mehrere "privat" Funktionen drin. Die mussten auch mit in den Override, dann ging es. LG Klaus / Lockesoft Link to comment Share on other sites More sharing options...
sakiri Posted September 25, 2013 Author Share Posted September 25, 2013 Hmm... klingt logisch, aber irgendwie dürfte ich Gurken auf den Augen haben ... oder einen Knopf in der Leitung ... Mein Override besteht aus nur einer einzigen Funktion, und die ist als public definiert. De facto hab ich die komplette "public function __construct()" aus dem Original herauskopiert und "lediglich" um einige Felder erweitert, die ich auch übers CSV befüllt haben möchte. Die Original AdminImportController.php hat auch keine einzige private function drin. Ich hab auch schon versucht, alle public und public static Deklarationen ebenfalls ins Override zu stecken, ändert auch nichts daran, daß die Sache nicht greift. (In 1.5.4 hab ich ursprünglich sogar die kompletten knapp 3000 Zeilen der Orginal-PHP ins Override gepackt und dann erst meine Ergänzungen hineingetippt - hat nix genutzt, erst als ich die Datei ins Verzeichnis /controllers/admin/ gestellt hab, hat's funktioniert.) Darf ich die Override-php zur Inspektion per pm schicken? Link to comment Share on other sites More sharing options...
Lockesoft Posted September 26, 2013 Share Posted September 26, 2013 (edited) wenns denn sein soll. :-) Ich denke aber, dass Du mehr Chancen hast, wenn du die hier mit Codetags öffentlich einstellst. Evtl. auch mit ner kurzen Beschreibung, was erreicht werden soll. LG Klaus / Lockesoft Edited September 26, 2013 by Lockesoft (see edit history) Link to comment Share on other sites More sharing options...
sakiri Posted September 26, 2013 Author Share Posted September 26, 2013 Danke! Hat eine Weile gedauert bis ich verstanden hab, was unter "Codetags" gemeint ist (hab noch nicht ganz den Durchblick, wie dieses Forum funktioniert, was möglich ist und was nicht - sorry), aber 373 Zeilen in einen Forumspost direkt hinein zu kopieren erscheint mir ein bisserl viel. Ich hab daher die Datei in ein ZIP File gepackt und hänge sie hier als Attachment dran: Override_sakiri_AdminImportController.php.zip (Info: Das Feld max_quantity ist nicht im PS-Standard enthalten sondern eine DB-Erweiterung, die ich von diesem Forumsthread übernommen habe: http://www.prestashop.com/forums/topic/210182-modification-maximum-quantity-mod/) Wie gesagt, als Override funktionieren die Erweiterungen des CSV-Uploads nicht, direkt in die Originaldatei hineingeklatscht aber schon. Und ich würde gerne verstehen warum nicht... Link to comment Share on other sites More sharing options...
eleazar Posted September 27, 2013 Share Posted September 27, 2013 Da verhält sich PrestaShop völlig normal. Du hast nichts falsch gemacht, sondern es ist nur ein Denkfehler. Overrides machen genau das, was der Name sagt. Sie überschreiben vorhandene Objekte, indem sie den Klassen neue Eigenschaften oder Methoden hinzufügen. Hier gibt es aber nichts zu überschreiben, weil die Funktion zuvor gar nicht vorhanden war. Daher klappt es mit der Originaldatei, aber nicht als Override. Link to comment Share on other sites More sharing options...
sakiri Posted September 27, 2013 Author Share Posted September 27, 2013 ok ... erst mal danke für die Antwort & Erklärung. Das heißt aber, daß ich diese Änderung / Erweiterung der vorhandenen Funktion nicht releasesicher gestalten kann? Link to comment Share on other sites More sharing options...
eleazar Posted September 28, 2013 Share Posted September 28, 2013 Hallo sakiri, erstens muss ich mich entschuldigen. Ich hatte das Ganze nur überflogen. Du hast ja nur eine vorhandene Funktion erweitert und keine neue hinzugefügt. Daher greift meine Erklärung nicht. Es sollte eigentlich so funktionieren wie von dir geplant. Das ist aber nicht der Fall. Das heißt aber nicht, dass ein Override damit unmöglich ist. Hier greift Plan B. Kopier einfach die komplette geänderte AdminImportController.php in das Override-Verzeichnis. So funktioniert es! Gruß eleazar Link to comment Share on other sites More sharing options...
sakiri Posted September 28, 2013 Author Share Posted September 28, 2013 Danke für die Antwort und fürs genauer hinsehen! Aber: Hast Du's mit einer kompletten geänderten AdminImportController.php im Override-Verzeichnis ausprobiert und hat's bei Dir funktioniert? Bei mir tut's das nämlich auch mit Plan B nicht. Weder bei meinem ersten entsprechenden Versuch unter 1.5.4, noch jetzt (soeben vor 9 Minuten) mit 1.5.5. Berechtigung auf dem Verzeichnis ist 755, auf dem File selbst 644. Die class_index.php sowie der Inhalt von smarty/compile wurden vorher gelöscht, Pointer ist geändert auf "class AdminImportController extends AdminImportControllerCore". Die selbe Datei (mit Pointer andersrum) im Verzeichnis /controllers/admin flutscht jedoch wie sie soll. Es ist zum Haare raufen!!! Ist der Ablageort /override/controllers/admin/ für die adaptierte AdminImportController.php überhaupt richtig? Link to comment Share on other sites More sharing options...
eleazar Posted September 29, 2013 Share Posted September 29, 2013 Der Ablageort ist völlig richtig. Dummerweise habe ich es zunächst nur unter PrestaShop 1.5.3.1 ausprobiert. Da funktioniert es. Übrigens mit der erweiterten Original-Datei ohne Änderung des Pointers! Aber leider tatsächlich nicht mit 1.5.4.1 oder 1.,5.5. Am Import wird leider bei PrestaShop immer wieder gebastelt. Offenbar hat es jemand geschafft, die Overrides hier zu deaktivieren. Du solltest es also im Bugtracker melden. Link to comment Share on other sites More sharing options...
guest* Posted September 29, 2013 Share Posted September 29, 2013 (edited) Offenbar hat es jemand geschafft, die Overrides hier zu deaktivieren. Du solltest es also im Bugtracker melden. Hilf zwar nicht das Problem zu lösen, aber diese Diskussion hatten wir schon vor einiger Zeit, wo ich sagte, dass bestimmte overrides hinkünftig nicht mehr greifen werden... Edited September 29, 2013 by cd2500 (see edit history) Link to comment Share on other sites More sharing options...
eleazar Posted September 29, 2013 Share Posted September 29, 2013 Welche meinst du denn genau? Bei welchen Klassen oder Controllern klappt es denn sonst nicht mehr? Denn alle meine übrigen Overrides funktionieren. Da du offenbar mehr weißt, wäre es ja wichtig, die Usaer dieses Forums daran teilhaben zu lassen, oder? Link to comment Share on other sites More sharing options...
sakiri Posted September 29, 2013 Author Share Posted September 29, 2013 (edited) Ok, soweit so schlecht, aber wenn's nicht anders geht, dann eben mit direkt drüberklatschen. Werde den Override-Folder zur Dokumentation der Änderungen an den Originaldateien umfunktionieren... ;o) Danke jedenfalls für die Klarstellung und die vielen Antworten! Ich markiere das Thema als gelöst, auch wenn's eine höchst unbefriedigende "Lösung" ist (Und ... darf ich ganz vorsichtig darauf hinweisen, daß ich noch weitere Topics offen habe, auf die ich bislang noch gar keine Antworten habe? Da hoffe ich auch noch auf Hilfe von kundigen "alten Hasen"!) Edited September 29, 2013 by sakiri (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now