herrweberr Posted February 26, 2020 Share Posted February 26, 2020 (edited) Hallo zusammen, in unserem Shop müssen, basierend auf dem Land des Käufers, Hinweistexte in der PDF erscheinen. Unter PS 1.6 konnte ich in der PDF mit bspw. {if $address->id_country == 19} das Land abfragen und entsprechend einen Text-Hinweis ausgeben. Leider funktioniert dies anscheinend nicht mehr in PS 1.7 und ich finde keine Möglichkeit an die Info zu kommen. Kann hier jemand weiterhelfen, wie ich in der Rechnungs-PDF an die id_country komme? Vielen Dank und mit besten Grüßen, Tim Edited February 28, 2020 by herrweberr (see edit history) Link to comment Share on other sites More sharing options...
Wuschel Posted February 26, 2020 Share Posted February 26, 2020 Schau mal hier: https://catalogo-onlinersi.net/en/content/33-prestashop-17-global-variables Ausprobiert habe ich es nicht. Ich setze 1.7 nicht ein. Link to comment Share on other sites More sharing options...
herrweberr Posted February 27, 2020 Author Share Posted February 27, 2020 (edited) 13 hours ago, Wuschel said: Schau mal hier: https://catalogo-onlinersi.net/en/content/33-prestashop-17-global-variables Ausprobiert habe ich es nicht. Ich setze 1.7 nicht ein. Vielen Dank. Leider bin ich die schon durchgegangen und anscheinend gibt es $customer.addresses[] nicht. Ich habe es bis jetzt über $customer und $order (und andere globale Smarty Variablen) versucht, leider immer ohne Erfolg. Edited February 27, 2020 by herrweberr (see edit history) Link to comment Share on other sites More sharing options...
Wuschel Posted February 27, 2020 Share Posted February 27, 2020 Smarty ist ein Auslaufmodell bei 1.7. Wenn du weiterhin mit Smarty-Varaiblen arbeiten willst, dann ist Presta 1.7 sicher nicht zielführend. Link to comment Share on other sites More sharing options...
herrweberr Posted February 27, 2020 Author Share Posted February 27, 2020 2 minutes ago, Wuschel said: Smarty ist ein Auslaufmodell bei 1.7. Wenn du weiterhin mit Smarty-Varaiblen arbeiten willst, dann ist Presta 1.7 sicher nicht zielführend. Das ist mir tatsächlich egal. Ich benötige nur irgendeine Möglichkeit, irgendwie das Land abzufragen und entsprechend einen Text auszugeben. Smarty war bei 1.6 das Mittel, wie ich es umgesetzt habe, jetzt bei 1.7 bin ich offen für alles. Falls hier also jemand einen Hinweis hat, wie ich dafür in der Rechnungs-PDF an die country ID komme, wäre ich sehr dankbar! Link to comment Share on other sites More sharing options...
rictools Posted February 27, 2020 Share Posted February 27, 2020 In der Rechnung wird doch als Teil der Rechnungsadresse das Land ausgegeben, darauf müßtest du doch zugreifen können. Link to comment Share on other sites More sharing options...
herrweberr Posted February 28, 2020 Author Share Posted February 28, 2020 (edited) 8 hours ago, rictools said: In der Rechnung wird doch als Teil der Rechnungsadresse das Land ausgegeben, darauf müßtest du doch zugreifen können. Danke für den Hinweis. Die Adresse wird im in invoice.addresses-tab.tpl allerdings als {$invoice_address} ausgegeben. Hierbei handelt es sich aber um einen fertigen und zusammengesetzten String (Anrede, name, Adresse etc.). Ich müsste dann den String umständlich auseinandernehmen und dann Strings vergleichen. Kann man machen, ist aber noch unschöner und unflexibler als alles andere - und ist sicherlich fehleranfälliger als mit einer ID zu arbeiten. Edited February 28, 2020 by herrweberr (see edit history) Link to comment Share on other sites More sharing options...
rictools Posted February 28, 2020 Share Posted February 28, 2020 Du mußt den String nicht unbedingt auseinandernehmen, ich würde erst einmal feststellen, ob sich das Land immer am Ende befindet oder ob da noch etwas kommt wie die Telefonnummer, jedenfalls kannst du per Funktion feststellen, ob sich ein bestimmter Teilstring in dem String befindet. Ansonsten muß wahrscheinlich eine Variable für das Land als Klarname oder ID erst in einer php-Datei definiert werden, ist aber auch keine Zauberei. Link to comment Share on other sites More sharing options...
herrweberr Posted February 28, 2020 Author Share Posted February 28, 2020 14 minutes ago, rictools said: Ansonsten muß wahrscheinlich eine Variable für das Land als Klarname oder ID erst in einer php-Datei definiert werden, ist aber auch keine Zauberei. Der Weg wirkt für mich besser. Kannst du mir hier ein Beispiel geben, in welcher Datei ich die ID als Variable deklarieren muss, damit sie in den PDF-Templates verfügbar ist? Das würde mir sehr weiterhelfen und ich komme zum Ziel. Danke schonmal im Voraus! Link to comment Share on other sites More sharing options...
rictools Posted February 28, 2020 Share Posted February 28, 2020 Ich verwende 1.7 nicht. Da sollte sich aber eigentlich über Google was finden lassen. Link to comment Share on other sites More sharing options...
herrweberr Posted February 28, 2020 Author Share Posted February 28, 2020 Danke. Hat mich in die richtige Richtung geführt. Lösung: /classes/pdf/HTMLTemplateInvoice.php , Zeile 329 Dem $data Array entsprechend die gewünschte Variable zuweisen (bspw. 'invoice_country_id'): $data = array( 'order' => $this->order, 'order_invoice' => $this->order_invoice, 'order_details' => $order_details, 'carrier' => $carrier, 'cart_rules' => $cart_rules, 'delivery_address' => $formatted_delivery_address, 'invoice_address' => $formatted_invoice_address, 'addresses' => array('invoice' => $invoice_address, 'delivery' => $delivery_address), 'tax_excluded_display' => $tax_excluded_display, 'display_product_images' => $display_product_images, 'layout' => $layout, 'tax_tab' => $this->getTaxTabContent(), 'customer' => $customer, 'footer' => $footer, 'ps_price_compute_precision' => _PS_PRICE_COMPUTE_PRECISION_, 'round_type' => $round_type, 'legal_free_text' => $legal_free_text, 'invoice_country_id' => $invoice_address->id_country, ); Danach entsprechend {invoice_country_id} im Template nutzen. Danke und beste Grüße Link to comment Share on other sites More sharing options...
SliderFlash Posted February 28, 2020 Share Posted February 28, 2020 wen du prestashop aktualisierst wird es überschrieben. Link to comment Share on other sites More sharing options...
herrweberr Posted February 28, 2020 Author Share Posted February 28, 2020 Just now, SliderFlash said: wen du prestashop aktualisierst wird es überschrieben. Kann ich es "Update-Sicher" machen im Child-Theme? Link to comment Share on other sites More sharing options...
SliderFlash Posted February 28, 2020 Share Posted February 28, 2020 (edited) mit Child-Theme kannst du dein Template schützen aber nicht das grundprogramm system ist php du kannst dir die anpassungen Notizen machen und nach Aktualisierung wider ändern. Edited February 28, 2020 by SliderFlash (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