Birel34 Posted May 17, 2016 Share Posted May 17, 2016 Hallo Zusammen Entweder sehe ich es nicht oder es geht nicht... Ein Kunde der sich angemeldet und auch eine Bestellung getätigt hat, hat unter "Kunden - Adressen" im Feld "Adresse" folgendes eingetragen "7 Pütenweg" anstatt "Pütenweg 7". Nun wollte ich das anpassen. Beim Speicher verlangt er noch eine Telefonnummer. Leider finde ich unter "Kunden - Kunden" und unter "Kunden - Adresse" niergends die Möglichkeit die Telefonnummer einzugeben. Dieses Feld fehlt bei mir. In den Einstellungen unter "Voreistellungen - Kunden" habe ich das Feld "Telefonnumer ist ein Pflichtfeld" auf JA gestellt. Wo kann man dann die Telefonnumer eingeben? Besten Dank für die Antwort. Freundliche Grüsse Rolando Link to comment Share on other sites More sharing options...
eleazar Posted May 17, 2016 Share Posted May 17, 2016 Unglaublich! Das war mir noch gar nicht aufgefallen. Da hat wohl tatsächlich jemand beim PrestaTeam aus Versehen die Telefonnummer-Felder aus dem Admin gelöscht. Ich habe mal ein kurzes Override für den Controller geschrieben, um den Fehler zu beheben. Spiel den Inhalt der Zip-Datei mal als Übergangslösung in das Verzeichnis /overrides/controller/admin ein: AdminAddressesController.zip Anschließend entweder STRF+F5 im Back Office drücken oder den Cache anderweitig löschen. EDIT: Merkwürdig! Seltsamerweise sind die Felder jetzt auch ohne Override wieder da. Nur ein Cache-Fehler? Link to comment Share on other sites More sharing options...
Birel34 Posted May 17, 2016 Author Share Posted May 17, 2016 (edited) Hallo und besten Dank für die Hilfe Leider bringt das File nichts... Habes ins Verzeichnis override/controllers/admin hochgeladen, bin dann auf Erweiterete Einstellungen / Leistung gegangen mit der Einstellung im SMAYRT / Templates nach Datei-Änderungen neu kompilieren und habe oben auf Chache löschen geklick. Unter Kunden / Adressen wähle ich eine Adresse an und klicke auf Bearbeiten und es öffnet sich die Adresse des Kunden ohn Telefonnummerfeld. Auch wenn ich auf Neue Adresse hinzufügen klicke, sehe keine Felder für die Telefonnummer. Wenn ich nun im Bereich Kunden/Adressen ganz nach unten scrole, gibt es da noch eine Linie mit "+Legen Sie zusätzliche Pflichtfelder für diesen Bereich fest". Nun klicke ich drauf und es öffnet sich ein Pulldown Menu mit diversen Eintragen unterandermen phone und phone_mobile. Wenn ich nun in diese beiden Feldern den Hacken setze, sieht man die Felder in der Adressdatei des Kunden. Nun kann man aber nur noch speichern, wenn man eine Nummer eingibt. Es muss doch auch eine möglichkeit geben dass das freiwillig geht! Oder was meisnt Du? :huh: PS: Soll ich das File löschen? Edited May 17, 2016 by Birel34 (see edit history) Link to comment Share on other sites More sharing options...
eleazar Posted May 17, 2016 Share Posted May 17, 2016 Damit wir hier nicht aneinander vorbei reden ... Welche PrestaShop-Version setzt du ein? Gibt es Fremdmodule, z.B. auch im Cache-Bereich? Ist dieses Verhalten im Back Office neu oder war es von Anfang an so? Link to comment Share on other sites More sharing options...
Birel34 Posted May 17, 2016 Author Share Posted May 17, 2016 (edited) Hallo Ja... sorry... hätte ich noch angeben können... vergessen... Ich verwende Version PS 1.6.1.5. Fremdmodule, Silbersaiten - Aufschläge und Rabatte auf Zahlungsarten / Silbersaiten - Zahlung bei Abholung / Delete orders / Module Bestell-Nr. ändern. Ob es früher so schon wahr, kann ich mich nicht erinnern, mir ist es erst jetzt aufgefallen. Habe noch einen Testanmeldung über den Shop gemacht ganz normal und habe eine Telefonnummer angegeben, in der Adfministartion sieht man davon nichts. Ach ja noch, musste Dein File löschen, weil mit dem File konnte keine Anmeldung stattfinden, beim speichern weisse Seite... fertig abbrechen. Auch in den anderen Shops gleiche Version, sieht man die Telefonnummern nicht. Mein Shop: LifeStyle-Shop.ch Weitere Shop: Yvis-Shop.ch Besten Dank. PS: Danke für die Beschreibung in einem anderen Beitrag für die Anpassung der Rechnung und des Lieferschein, speziell oben Rechts mit "INVOICE" und "DELIVERY" diese beiden Wörter waren nur in English... Edited May 17, 2016 by Birel34 (see edit history) Link to comment Share on other sites More sharing options...
Whiley Posted May 17, 2016 Share Posted May 17, 2016 Hoi Rolando, prüfe mal unter BO-->Lokalisierung-->Länder ob für alle aktivierten Länder (jeweils auf bearbeiten gehen) in der Adressanzeige (Linker Kasten) die Tel.Nummern enthalten sind; wenn nicht hinzufügen , speichern u. Cache Löschen. Das Problem ist, dass, wenn in einem der Länder die Tel. Nummer vorhanden ist, der Kunde immer die Tel-Felder zur Verfügung hat, auch wenn für sein Land die Felder ausgeblendet sind, als Admin siehst du die Felder dann allerdings nicht. Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted May 18, 2016 Author Share Posted May 18, 2016 Hallo Whiley Besten Dank für Deine Antwort. Habe es nun versucht. Wenn ich im Adressfeld, siehe Bild, die Telefon und Mobil hinzufüge, erscheinen dann die Telefonnummern im Adressfeld des Lieferscheins und der Rechnung. Zugleich sehe ich dann die Telefonnummerfelder unter Kunden-Adressen. Wenn ich diese nicht aktiviert habe, ist das Adressfeld richtig auf dem Lieferschein und der Rechnung, mit dem Nachteil, dass ich die Felder dann unter Kunden-Adressen nicht sehe. Hier stimmt doch was nicht? LI-1551261-1.pdf Oder was meist Du dazu? Danke für die Antwort. Gruss Rolando Link to comment Share on other sites More sharing options...
Birel34 Posted May 21, 2016 Author Share Posted May 21, 2016 Hallo Zusammen... Keiner eine Idee an was es liegen kann??? :( Gruss Link to comment Share on other sites More sharing options...
eleazar Posted May 23, 2016 Share Posted May 23, 2016 Ah, jetzt verstehe ich erstmal, was du meinst! Ich tippe mal auf eins deiner Kaufmodule. Welches der Fremdmodule dafür verantwortlich ist, kannst du entweder dadurch herausfinden, ob im Modul-Verzeichnis ein Unterordnet pdf ist, oder du deaktivierst mal systematisch solche Fremdmodule, um den Übeltäter zu finden. Link to comment Share on other sites More sharing options...
Whiley Posted May 23, 2016 Share Posted May 23, 2016 Ah, jetzt verstehe ich erstmal, was du meinst! Ich tippe mal auf eins deiner Kaufmodule. Welches der Fremdmodule dafür verantwortlich ist, kannst du entweder dadurch herausfinden, ob im Modul-Verzeichnis ein Unterordnet pdf ist, oder du deaktivierst mal systematisch solche Fremdmodule, um den Übeltäter zu finden. Imo ist das kein Fehler durch ein Fremdmodul, sondern das ganz normale Verhalten von Prestashop. Der AdminAdress-Controller prüft welche länderspezifischen Einstellungen gemacht wurden und zeigt im BO nur die Felder an, die für das entsprechende Land festgelegt sind, was ja auch eigentlich garnicht so ganz unsinnig ist. Legst du länderspezifisch fest, daß eine Tel.Nr. im Adressfeld erscheinen soll (z.B. für Paketdienst) dann ist das Feld Tel.Nr. auch im BO vorhanden und editierbar. Braucht man die Tel.Nr. nicht, kann man sie seitens des Shopbetreibers auch nicht bearbeiten, das ist dann allein Sache des Kunden. Will man alle Felder zum editieren zur Verfügung haben muß halt die Datei: /controllers/admin/AdminAddressesController.php entsprechend abgeändert werden. (mit etwas php-Kenntnissen sicher kein Problem, die Funktionen sind dort nahetzu selbsterklärend) Eventuell könnte man auch darüber nachdenken die Tel.Nr. Anzeige im BO einzuschalten u. dann die Rechnung u. Lieferscheinausdrucke abzuändern und die Tel.Nr. dort auszublenden. (imo aufwändiger) Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted May 23, 2016 Author Share Posted May 23, 2016 Hallo Whiley Herzlichen Dank für Deine Erklärung. Ja Deine Überlegungen sind ja nachvollziehbar. Ich finde… dass im Adressfeld, Anschrift an den Kunden, die Telefonnummer nicht erscheinen soll. Hingehen im BO ja. Sollte man was Rückfragen müssen, hat man die Telefonnummer. Editierbar muss sie nichts ein, der Kunde kann entscheiden. Das Feld Telefon-Nummer und auch Mobile müssen auch nicht Pflichtfelder sein. Habe mich mal in der Datei: controllers/admin/AdminAddressesController.php Und habe diesen Abschnitt gefunden, der auf Telefonnummern weisst. ); } elseif ($addr_field_item == 'phone') { $temp_fields[] = array( 'type' => 'text', 'label' => $this->l('Home phone'), 'name' => 'phone', 'required' => in_array('phone', $required_fields) || Configuration::get('PS_ONE_PHONE_AT_LEAST'), 'col' => '4', 'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : '' ); } elseif ($addr_field_item == 'phone_mobile') { $temp_fields[] = array( 'type' => 'text', 'label' => $this->l('Mobile phone'), 'name' => 'phone_mobile', 'required' => in_array('phone_mobile', $required_fields) || Configuration::get('PS_ONE_PHONE_AT_LEAST'), 'col' => '4', 'hint' => Configuration::get('PS_ONE_PHONE_AT_LEAST') ? sprintf($this->l('You must register at least one phone number.')) : '' ); Nun stellt sich bei mi8r die Frage, was muss ich denn da anpassen? Kannst Du mir einen Typ geben? Herzlichen Dank. Rolando Link to comment Share on other sites More sharing options...
Birel34 Posted August 19, 2016 Author Share Posted August 19, 2016 Kann mir da nun einer weiterhelfen? Würde mich freuen. Danke. Link to comment Share on other sites More sharing options...
rictools Posted August 21, 2016 Share Posted August 21, 2016 Kann mir da nun einer weiterhelfen? Vielleicht formulierst du deine Frage(n) einmal so, daß man versteht, was du nun überhaupt willst. So hast du im ersten Post geschrieben, du habest eingestellt, daß eine Telefonnummer angegeben werden muß, scheinst das aber nicht so zu wollen ... Link to comment Share on other sites More sharing options...
Birel34 Posted August 21, 2016 Author Share Posted August 21, 2016 Hallo Hier nochmals meine Formulierung detailliert: Damit ich die Telefonnummer der Kunden unter "BO->Kunden->Adressen" sehen kann, siehe Bild: muss ich im "BO->Lokalisierung->Läder" folgende Zeilen hinzufügen, siehe Bild: wenn ich nun das so gemacht habe passiert folgendes, im Lieferschein und der Rechnung wird dann auch die Telefonnummer aufgelistet, sieh Bild: Wie sieht den das aus, erkennt jemand hier einen Telefonnummer oder sind es sogar zwei!!!Das geht so nicht. Mein Ziel: Telefonnummern im "BO->Kunden->Adressen" JA / Auf Rechnung und Lieferschein im Adressfeld NEIN So nun hoffe ich, dass auch Du mich verstanden hast. Link to comment Share on other sites More sharing options...
rictools Posted August 21, 2016 Share Posted August 21, 2016 Mein Ziel: Telefonnummern im "BO->Kunden->Adressen" JA / Auf Rechnung und Lieferschein im Adressfeld NEIN Ja, das ist schlecht gelöst, vor allem gar nicht so einfach zu ändern, da die Adressen komplett mit Telefonnummer Inhalt einer Variable sind. Link to comment Share on other sites More sharing options...
Whiley Posted August 22, 2016 Share Posted August 22, 2016 Ja, das ist schlecht gelöst, vor allem gar nicht so einfach zu ändern, da die Adressen komplett mit Telefonnummer Inhalt einer Variable sind. Naja, halt in beiden, also Lieferschein und Rechnung, Telefon herausnehmen! Z.B. für die Rechnung: In der Datei /classes/pdf/HTMLTemplateInvoice.php die Zeile suchen: $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); Darunter dann die Zeile eingeben, die die Tel.Nr. herausnimmt: $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' '); Caches nicht vergessen zu löschen Grüsse Whiley 1 Link to comment Share on other sites More sharing options...
rictools Posted August 22, 2016 Share Posted August 22, 2016 Naja, halt in beiden, also Lieferschein und Rechnung, Telefon herausnehmen! Erstaunlich einfach, man muß halt nur wissen wie (und das wissen die meisten hier eben nicht, meine PHP-Kenntnisse beschränken sich auch so ziemlich auf das, was es so auch in JavaScript gibt) ... Link to comment Share on other sites More sharing options...
Birel34 Posted August 22, 2016 Author Share Posted August 22, 2016 Hallo Whiley Danke für Deinen Vorschlag, ich werde es mal versuchen... Und beim Lieferschein, gilt das das gleiche und wo? Link to comment Share on other sites More sharing options...
Birel34 Posted August 22, 2016 Author Share Posted August 22, 2016 Hallo Whiley Habe es versucht, leider ohne Erfolg, bei mir bleibt die Telefonnummer immer noch drauf in der Rechnung und dem Lieferschein. Link to comment Share on other sites More sharing options...
Whiley Posted August 22, 2016 Share Posted August 22, 2016 Hallo Whiley Habe es versucht, leider ohne Erfolg, bei mir bleibt die Telefonnummer immer noch drauf in der Rechnung und dem Lieferschein. ich habe die Änderung für die Rechnungsadresse gerade mal im Demo-Shop gemacht https://www.prestashop.com/forums/topic/464197-prestashop-1616-demoshop/ Das Ergebnis sieht so aus: Imo funktionierts. Evtl mal prüfen ob du die class schon durch andere Änderungen überschreibst (entweder im override oder du hast im Template Ordner die Dateine - mit Vorrang - nochmal) Um zu prüfen ob du überhaupt an der richtigen Datei arbeitest, kanst du die php-Datei kurz umbenennen u. eine Rechnung im BO generieren, du müsstest in dem Fall eine ziemlich weisse Seite bekommen) Und auf jeden Fall immer alle Caches löschen!!! Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted August 22, 2016 Author Share Posted August 22, 2016 Hallo Whiley Ja... habe es gesehen... im Demo Shop geht es... Ich habe die Datei umbenennt und anstelle der Rechnung kann Fehlermeldung 505. Datei zurück benennt und geht. Nun habe ich die Zeile eingefügt und es sieht so aus: $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' '); $delivery_address = null; Habe extra noch eine Zeil davor und danach mitgenommen damit Du siehst das ich richtig bin. Die Rechnung sieht immer noch gleich aus, mit Telefonnummer: PS: Chach immer gelöscht nach jeder Änderung. Link to comment Share on other sites More sharing options...
Whiley Posted August 23, 2016 Share Posted August 23, 2016 PS: Chach immer gelöscht nach jeder Änderung. Lösche mal die Datei /cache/class_index.php und in den beiden Ordnern /cache/smarty/cache /cache/smarty/compile alles bis auf die Datei index.php und natürlich den Browser-Cache Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted August 23, 2016 Author Share Posted August 23, 2016 Hallo Whiley Habe alles so gemacht wie Du es Beschrieben hast, Telefonnummer ist immer noch da... Link to comment Share on other sites More sharing options...
rictools Posted August 24, 2016 Share Posted August 24, 2016 Hallo Whiley Habe alles so gemacht wie Du es Beschrieben hast, Telefonnummer ist immer noch da... Setze doch mal vor oder nach die beiden br-Tags (innerhalb der ') "Test1" und "Test2" (ohne ") und schau, ob und was davon angezeigt wird. Link to comment Share on other sites More sharing options...
Birel34 Posted August 24, 2016 Author Share Posted August 24, 2016 Hallo und gute Tag Habe den Versuch gemacht ohne Erfolg. Habe in der classes/pdf/HTMLTemplateInvoice.php die beiden Wörter eingesetzt und zwar so: $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', 'Test1'); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', 'Test2'); und die Rechnung sieht so aus Link to comment Share on other sites More sharing options...
eleazar Posted August 24, 2016 Share Posted August 24, 2016 TelNr-03.PNG Wie sieht den das aus, erkennt jemand hier einen Telefonnummer oder sind es sogar zwei!!! Das geht so nicht. So etwas passiert halt, wenn man nicht weiß, was man tut! Denn du selbst hast einen Querstrich zwischen die beiden Variablen gemacht und beide Telefonnummern in eine Zeile geschrieben. Das ist nämlich nicht üblich. Auf diese Weise hast du ein bis dato unbekanntes Feld kreiert. Einfacher wäre es, den Standard beizubehalten (für jede Variable eine Zeile in der Adressdefinition des Landes) und die Zeilen $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' '); wie folgt zu erweitern: $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' '); $formatted_delivery_address = str_replace($delivery_address->phone, '', $formatted_delivery_address ); $formatted_delivery_address = str_replace($delivery_address->phone_mobile, '', $formatted_delivery_address ); Analog kann man auch für die Rechnung ($invoice_...) verfahren. Link to comment Share on other sites More sharing options...
Birel34 Posted August 24, 2016 Author Share Posted August 24, 2016 Hallo eleazar Besten Dank für Deinen Vorschlag.Hier meine Original-Datei: $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' '); $formatted_invoice_address = ''; Ich habe diese mit Deinem Vorschlag angepasst und sieht nun so aus: $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, array(), '<br />', ' '); $formatted_delivery_address = str_replace($delivery_address->phone, '', $formatted_delivery_address ); $formatted_delivery_address = str_replace($delivery_address->phone_mobile, '', $formatted_delivery_address ); $formatted_invoice_address = ''; Das Resultat, der Lieferschein: Das wo die Telefonnummer stand, steht jetzt einen null "0". Habe das Ganze auch bei der Datei "HTMLTemplateInvoice.php" versucht. Hier das Original $invoice_address = new Address((int)$this->order->id_address_invoice); $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' '); Angepasst: $invoice_address = new Address((int)$this->order->id_address_invoice); $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, array('avoid' => array(1 => 'phone')), '<br />', ' '); $formatted_invoice_address = str_replace($invoice_address->phone, '', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address ); Resultat: Hier bleibt alles beim Alten. Nun weiss ich nicht, ob ich was falsch gemacht habe. Danke. Link to comment Share on other sites More sharing options...
eleazar Posted August 24, 2016 Share Posted August 24, 2016 Siehst du, und das ist jetzt der Zeitpunkt, wo du dir sagen solltest: Ich kann nicht in einem User-Forum endlos Threads mit Code-Schnipseln füllen, die ich leider selbst nicht verstehe - sondern ich muss jetzt einen Experten beauftragen, der dies für mich erledigt. Das wurde dir ja mehr oder weniger schon hier nahegelegt: https://www.prestashop.com/forums/topic/550454-lieferschein-mit-liefer-und-rechnungsadresse%E2%80%A6/?do=findComment&comment=2390076 Hier bietet sich das Unterforum Jobsuche an. Link to comment Share on other sites More sharing options...
Birel34 Posted August 24, 2016 Author Share Posted August 24, 2016 ok... trotzdem herzlichen Dank... Nun muss ich aber die Grundsatzfrage stellen, auch wenn es eine Open Source Lösung ist, ist es ein geniales Tool, leider noch mit einigen Fehlern drin, die von Haus aus nicht sein sollten. Wo kann man die den Melden? Ich kenne zur Zeit nur dieses Forum. Link to comment Share on other sites More sharing options...
rictools Posted August 24, 2016 Share Posted August 24, 2016 Habe den Versuch gemacht ohne Erfolg. Habe in der classes/pdf/HTMLTemplateInvoice.php die beiden Wörter eingesetzt und zwar so: Du mußt dich schon genau an die Anleitung halten, wenn ich schreibe vor oder nach die beiden br-Tags (innerhalb der ') meine ich ganz bestimmt nicht, daß du die Teststrings woanders hin in ganz andere ' platzieren sollst ... Nun, bei der Lieferanschrift bist du ja schon weiter, wo die Null jetzt herkommt, ist mir jetzt auch nicht so ganz klar, ich würde mal versuchen, bei $formatted_delivery_address = str_replace($delivery_address->phone, 'Leerzeichen', $formatted_delivery_address ); $formatted_delivery_address = str_replace($delivery_address->phone_mobile, 'Leerzeichen', $formatted_delivery_address ); dort, wo ich "Leerzeichen" ergänzt habe, statt diesem Text ein Leerzeichen einzusetzen. Bei der Rechnungsadresse fällt mir auf, daß die 4. Zeile wohl zuviel ist. Was die Fehler und sonstigen To-Dos von Prestashop angeht, selbst mehrere tausend Euro teure Software ist nicht fehlerfrei oder erfüllt alle Wünsche. Im allgemeinen kannst du davon ausgehen, daß erfahrenere User sich damit bereits beschäftigt haben, die Programmierer von Prestashop sind zur Zeit aber vor allem mit der Arbeit an der kommenden Version 1.7 ausgelastet. Link to comment Share on other sites More sharing options...
Birel34 Posted August 25, 2016 Author Share Posted August 25, 2016 (edited) Hallo rictools Herzlichen Dank für Deinen Vermutung... die "0" / null ist weg... Es lag nur am Leerschlag / Leerzeichen. Hab es auch in der "HTMLTemplateInvoice.php" angepasst und die Zeile rausgenommen... aber alles beim Alten, die Tel-Nummer ist immer noch ersichtlich. Hier noch, wie jetzt er Abschnitt aussieht: public function getContent() { $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true); $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true); $invoice_address = new Address((int)$this->order->id_address_invoice); $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = str_replace($invoice_address->phone, ' ', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->phone_mobile, ' ', $formatted_invoice_address ); $delivery_address = null; $formatted_delivery_address = ''; if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) { $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); } Vielleicht siehst Du auch hier noch was...Nochmals Herzlichen Dank...Hast eine gute Flasche Wein zu gute... Edited August 25, 2016 by Birel34 (see edit history) Link to comment Share on other sites More sharing options...
Whiley Posted August 25, 2016 Share Posted August 25, 2016 Hallo Rolando, Im obigen Code fällt auf, dass du die Änderungen bei "$formatted_delivery_address" noch nicht gemacht hast, aber das ist ja nicht dein Hauptproblem. Ich sehe zwei Möglichkeiten. Entweder du beschäftigst dich mit Debug-Techniken und verfolgst die Adress-Variable bis zur eigentlichen Ausgabe der Rechnung. Da du vermutlich keine Debug-Werkzeuge installiert hast gibst du die Variableninhalte auf den Monitor aus und stoppst danach unmittelbar das Skript. Du müstest also in der Datei HTMLTemplateInvoice.php anfangen mit soetwas wie var_dump ($formatted_invoice_address); exit; nach den geänderten Zeilen einfügen und dich dann weiter durchhangeln. Oder - da die Änderungen im Demo-Shop mit den Originaldateien ja astrein funktioniert - dürfte es das speditivste sein, wenn du alle am Rechnungsausgabevorgang beteiligten Dateien in den Originalzustand zurückversetzt und ganz neu anfängst. Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted August 25, 2016 Author Share Posted August 25, 2016 Hallo Whiley Passt fast perfekt... Habe, wie Du geschrieben hast, diesen Code noch angefügt nach den zwei zusätzlichen Zeilen und das sieht jetzt so aus: public function getContent() { $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true); $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true); $invoice_address = new Address((int)$this->order->id_address_invoice); $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = str_replace($invoice_address->phone, ' ', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->phone_mobile, ' ', $formatted_invoice_address ); var_dump ($formatted_invoice_address); exit; $delivery_address = null; $formatted_delivery_address = ''; if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) { $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); $formatted_delivery_address = str_replace($delivery_address->phone, ' ', $formatted_delivery_address ); $formatted_delivery_address = str_replace($delivery_address->phone_mobile, ' ', $formatted_delivery_address ); var_dump ($formatted_invoice_address); exit; } und das Ergebnis folgendermassen: Telefonnummern sind weg... Nun schreibt es aber das Land hin... also im Beispiel oben "Schweiz" Beim Lieferschein steht hingegen das Kurzel des Landes vor der PLZ. Ist das noch eine grosse Sache um es anzupassen? Herzliche Grüsse Rolando Link to comment Share on other sites More sharing options...
rictools Posted August 25, 2016 Share Posted August 25, 2016 Langsam wird's unübersichtlich. Ist das der komplette Code? Da scheint mir nämlich eine } zu fehlen. Das kann alles durcheinanderbringen ... Link to comment Share on other sites More sharing options...
Whiley Posted August 26, 2016 Share Posted August 26, 2016 und das Ergebnis folgendermassen: Telefonnummern sind weg... Nun schreibt es aber das Land hin... also im Beispiel oben "Schweiz" Beim Lieferschein steht hingegen das Kurzel des Landes vor der PLZ. Versteh ich nicht, mit dem exit-Befehl müsste das Skript eigentlich stoppen???? Also der richtige Code in der HTMLTemplateInvoice.php müsste so aussehen: public function getContent() { $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true); $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true); $invoice_address = new Address((int)$this->order->id_address_invoice); $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = str_replace($invoice_address->phone, '', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->country, '', $formatted_invoice_address ); $delivery_address = null; $formatted_delivery_address = ''; if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) { $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); $formatted_delivery_address = str_replace($invoice_address->phone, '', $formatted_delivery_address ); $formatted_delivery_address = str_replace($invoice_address->phone_mobile, '', $formatted_delivery_address ); $formatted_delivery_address = str_replace($invoice_address->country, '', $formatted_delivery_address ); } Grüsse Whiley Link to comment Share on other sites More sharing options...
rictools Posted August 26, 2016 Share Posted August 26, 2016 Mir scheint da immer noch eine schließende geschweifte Klammer zu fehlen (ich vermute, daß deshalb die ganze Funktion nicht ausgeführt wurde). Link to comment Share on other sites More sharing options...
Birel34 Posted August 26, 2016 Author Share Posted August 26, 2016 Hallo Whiley Herzlichen Dank für den Code. Habe den Eingebaut und folgendes Resultat kommt dabei heraus: Kunde mit Telefonnummer: Kunde ohne Telefonnummer: Im Code einen geschweifte Klammer die auf geht, aber ich finde nicht wo zu, in Zeile 15, ganz am Schluss. Braucht es die oder beeinflusst die was. public function getContent() { $invoiceAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_INVOICE_ADDR_RULES'), true); $deliveryAddressPatternRules = Tools::jsonDecode(Configuration::get('PS_INVCE_DELIVERY_ADDR_RULES'), true); $invoice_address = new Address((int)$this->order->id_address_invoice); $country = new Country((int)$invoice_address->id_country); $formatted_invoice_address = AddressFormat::generateAddress($invoice_address, $invoiceAddressPatternRules, '<br />', ' '); $formatted_invoice_address = str_replace($invoice_address->phone, '', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->country, '', $formatted_invoice_address ); $delivery_address = null; $formatted_delivery_address = ''; if (isset($this->order->id_address_delivery) && $this->order->id_address_delivery) { $delivery_address = new Address((int)$this->order->id_address_delivery); $formatted_delivery_address = AddressFormat::generateAddress($delivery_address, $deliveryAddressPatternRules, '<br />', ' '); $formatted_delivery_address = str_replace($invoice_address->phone, '', $formatted_invoice_address ); $formatted_delivery_address = str_replace($invoice_address->phone_mobile, '', $formatted_invoice_address ); $formatted_invoice_address = str_replace($invoice_address->country, '', $formatted_invoice_address ); } Wenn ich die lösche, geht nichts mehr, beim generieren der Rechnung kommt ein "error 505" Meldung. Herzliche Grüsse Rolando Link to comment Share on other sites More sharing options...
Whiley Posted August 26, 2016 Share Posted August 26, 2016 Die gescheiften Klammern sind so alle ok! Rictools meint die erste geschweifte Klammer, aber die wird ja sowieso am Ende der Funktion (also viel weiter unten) korrekt geschlossen. Hier abgebildet ist ja nur der kleinere erste Teil der Funktion mit den Änderungen. Aber ich sehe gerade, es hat sich noch ein kleiner Fehler in den Code eingeschlichen, ich habe ihn in meinem post #35 korrigiert, bitte kopiere ihn nochmal neu in deine Datei. Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted August 26, 2016 Author Share Posted August 26, 2016 Hallo Whiley Haben den Versuch durchgeführt und musste feststellen, dass erneut die Telefonnummern ersichtlich sind anstelle vom Land ausgeschrieben, wie im Beitrag #37 Bild 1. Herzliche Grüsse Rolando Link to comment Share on other sites More sharing options...
Whiley Posted August 26, 2016 Share Posted August 26, 2016 Hallo Whiley Haben den Versuch durchgeführt und musste feststellen, dass erneut die Telefonnummern ersichtlich sind anstelle vom Land ausgeschrieben, wie im Beitrag #37 Bild 1. Herzliche Grüsse Rolando In #37 Bild 1 sehe ich keine Tel. Nr Link to comment Share on other sites More sharing options...
Birel34 Posted August 26, 2016 Author Share Posted August 26, 2016 Hallo Whiley Sorry... habe mich versehen... wohl die Brille nicht auf der Nase gehabt. Also in #37 Bild 1 steht "Schweiz", das Land ausgeschrieben und jetzt anstelle vom Land die Telefonnummer. Bitte nochmals um Entschuldigung. Herzliche Grüsse Rolando Link to comment Share on other sites More sharing options...
Whiley Posted August 26, 2016 Share Posted August 26, 2016 Ich habe den aktuellen Code im DemoShop eingebaut: https://www.prestashop.com/forums/topic/464197-prestashop-1616-demoshop/ Ergebnis: Grüsse Whiley Link to comment Share on other sites More sharing options...
Birel34 Posted August 26, 2016 Author Share Posted August 26, 2016 Hallo Whiley Ja... es geht im DemoShop... perfekt... Habe nun die Originaldatei "HTMLTemplateInvoice.php" nochmals aufgerufen und den Code aus #35 reinkopiert, hochgeladen. Nun habe ich sicherheitshalber den Chach nochmals gelöscht, einen neuen Kunden Angelegt und einen Bestellung durchgeführt. Ergebnis: Lieferschein: Rechnung: Im Lieferschein wird in der Bereich Rechnungsadresse auch die Telefonnummer angezeigt und auf der Rechnung bei beiden Orten... Hier muss demzufolge, muss ich annehmen, was anderes dazwischen funken... das es ja im DemoShop geht. Am ehesten eine zusätzliches Modul. Ich werde mal die Module, die mit dem Zahlungsprozess zu tun haben, einzel deaktivieren und dann mal schauen was sich verändert. Oder was meinst Du? Herzliche Grüsse Rolando Link to comment Share on other sites More sharing options...
rictools Posted August 27, 2016 Share Posted August 27, 2016 Ich habe den Verdacht, daß der geänderte Code nicht oder nur teilweise ausgeführt wird, entweder weil sich ein Syntaxfehler darin befindet oder weil gar nicht dieser Codeteil für die Formatierung zuständig ist (oft gibt es die gleichen Dateien / Anweisungen ja einmal im Haupt- und einmal im Themebereich, deshalb hatte ich die Teststrings vorgeschlagen, die du dann aber an eine falsche Stelle gesetzt hattest, so sieht man, ob der Code an der Stelle sich überhaupt auswirkt, eine professionellere Alternative war die von Whiley vorgeschlagene Testausgabe eines Variableninhaltes mit anschließendem Stopp, was ja gar nicht funktioniert hatte). 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