From 5381713da79ec33ce4c459ff94b71294bc7f4c11 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Tue, 26 Feb 2013 17:00:22 +0100 Subject: [PATCH] Version 1.8: Support for Joomla 1.5, sort out language files --- Makefile | 16 ++- .../de-DE/de-DE.plg_vmshopper_ordernumber.ini | 48 ++++++++ .../de-DE.plg_vmshopper_ordernumber.sys.ini | 103 ++++++----------- .../en-GB/en-GB.plg_vmshopper_ordernumber.ini | 50 +++++++++ .../en-GB.plg_vmshopper_ordernumber.sys.ini | 104 ++++++------------ ordernumber.php | 35 +++--- ordernumber.script.php | 10 +- ordernumber.xml | 94 +++++++++++++++- releases/plg_vmshopper_ordernumber_v1.8.zip | Bin 0 -> 14445 bytes 9 files changed, 292 insertions(+), 168 deletions(-) create mode 100644 language/de-DE/de-DE.plg_vmshopper_ordernumber.ini create mode 100644 language/en-GB/en-GB.plg_vmshopper_ordernumber.ini create mode 100644 releases/plg_vmshopper_ordernumber_v1.8.zip diff --git a/Makefile b/Makefile index 7dbeea5..46b4d5e 100644 --- a/Makefile +++ b/Makefile @@ -1,14 +1,20 @@ BASE=ordernumber PLUGINTYPE=vmshopper -VERSION=1.7.0 +VERSION=1.8 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html -# TRANSDIR=../../../administrator/language/ -# TRANSLATIONS=$(call wildcard,$(TRANSDIR)/*/*.plg_$(PLUGINTYPE)_$(BASE).sys.ini) -TRANSLATIONS=$(call wildcard,language/*/*.plg_$(PLUGINTYPE)_$(BASE).sys.ini) language/index.html $(call wildcard,language/**/index.html) + +SYSTRANSLATIONS=$(call wildcard,language/*/*.plg_$(PLUGINTYPE)_$(BASE).*sys.ini) +NONSYSTRANSLATIONS=${SYSTRANSLATIONS:%.sys.ini=%.ini} +TRANSLATIONS=$(SYSTRANSLATIONS) $(NONSYSTRANSLATIONS) $(call wildcard,language/*/index.html) language/index.html ZIPFILE=plg_$(PLUGINTYPE)_$(BASE)_v$(VERSION).zip -zip: $(PLUGINFILES) $(TRANSLATIONS) +all: zip + +$(NONSYSTRANSLATIONS): %.ini: %.sys.ini + cp $< $@ + +zip: $(PLUGINFILES) $(TRANSLATIONS) $(SYSTRANSLATIONS) $(NONSYSTRANSLATIONS) @echo "Packing all files into distribution file $(ZIPFILE):" @zip -r $(ZIPFILE) $(PLUGINFILES) @zip -r $(ZIPFILE) $(TRANSLATIONS) diff --git a/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini b/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini new file mode 100644 index 0000000..dd34f34 --- /dev/null +++ b/language/de-DE/de-DE.plg_vmshopper_ordernumber.ini @@ -0,0 +1,48 @@ +; VM2 Customize Order/Invoice numbers plugin +; Copyright (C) 2012 Reinhold Kainhofer. All rights reserved. +; License http://www.gnu.org/licenses/gpl.html GNU/GPL +; Note : All ini files need to be saved as UTF-8 - No BOM +VMSHOPPER_ORDERNUMBER="VM2 - Plugin zur Anpassung von Auftrags-, Rechnungs- und Kundennummern" +VMSHOPPER_ORDERNUMBER_DESC="Dieses Plugin erlaubt es Ihnen, das Format von Auftrags-, Rechnungs- und Kundennummern in VirtueMart 2 anzupassen.<br/><br/> <div style='font-weight: normal'> <p style='font-weight: normal'> Das Format der Auftrags-, Rechnungs- und Kundennummern ist ein einfacher Text, wobei <tt>#</tt> die laufende Nummer anzeigt und <tt>[variable]</tt> als Variable interpretiert und durch deren Wert ersetzt wird. Aktuell sind folgende Variablen möglich (Groß-/Kleinschreibung ist egal):<table border=1> <tr><td>year</td><td>Aktuelles Jahr (4 Ziffern)</td></tr> <tr><td>year2</td><td>Aktuelles Jahr (2 Ziffern)</td></tr> <tr><td>month</td><td>Aktuelles Monat (2 Ziffern); mit führenden Nullen wenn nötig</td></tr> <tr><td>day</td><td>Aktueller Tar (2 Ziffern); mit führenden Nullen wenn nötig</td></tr> <tr><td>hour</td><td>Aktuelle Stunde im 24-Stunden Format; mit führenden Nullen wenn nötig</td></tr> <tr><td>hour12</td><td>Aktuelles Stunde in 12-Stunden Format; mit führenden Nullen wenn nötig</td></tr> <tr><td>ampm</td><td>Aktuelles am-pm (für 12-Stunden Format) in Kleinschreibung</td></tr> <tr><td>minute</td><td>Aktuelle Minute; mit führenden Nullen wenn nötig</td></tr> <tr><td>second</td><td>Aktuelle Sekunde; mit führenden Nullen wenn nötig</td></tr> <tr><td>randomDigit<em>[n]</em></td><td>Zufallsfolge von n Dezimalziffern (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomHex<em>[n]</em></td><td>Zufallsfolge von n Hexadezimalziffern (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomLetter<em>[n]</em></td><td>Zufallsfolge von n Groß- und Kleinbuchstaben (Groß- und Kleinschreibung) (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomULetter<em>[n]</em></td><td>Zufallsfolge von n Großbuchstaben (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomLLetter<em>[n]</em></td><td>Zufallsfolge von n Kleinbuchstaben (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomAlphanum<em>[n]</em></td><td>Zufallsfolge von n allgemeinen alphanumerischen Zeichen (A-Z, a-z, 0-9) (n=1 wenn nicht angegeben).</td></tr> <tr><td>vendorID</td><td>(Interne) VirtueMart Verkäufer ID</td></tr> <tr><td>userID</td><td>(Interne) VirtueMart Benutzer ID</td></tr> <tr><td>IPaddress</td><td>IP-Addresse des Käufers</td></tr> <tr><th colspan=2><em>Nur für Rechnungsnummern:</em></td></tr> <tr><td>orderNumber</td><td>Auftragsnummer, für die die Rechnung erstellt wird</td></tr> <tr><td>orderID</td><td>(Interne) Auftrags-ID, für die die Rechnung erstellt wird</td></tr> <tr><td>Lastname</td><td>Nachname des Käufers (Rechnungsadresse)</td></tr> <tr><td>Firstname</td><td>Vorname des Käufers (Rechnungsadresse)</td></tr> <tr><td>Company</td><td>Unternehmen des Käufers (Rechnungsadresse)</td></tr> <tr><td>City</td><td>Ort des Käufers (Rechnungsadresse)</td></tr> <tr><td>zip</td><td>Postleitzahl des Käufers (Rechnungsadresse)</td></tr> <tr><td>orderStatus</td><td>Status der Bestellung (Kürzel: S, R, X, C, U, P)</td></tr> </table> <p>Die gesamte Dokumentation findet sich auf der Homepage des Plugins: <a href='http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html'>http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html</a></p> </div>" + +PLG_ORDERNUMBER_YES="Ja" +PLG_ORDERNUMBER_NO="Nein" + +PLG_ORDERNUMBER_COUNTER_GLOBAL="Global" +PLG_ORDERNUMBER_COUNTER_PERFORMAT="Eigener Zähler pro Formatwert" + +PLG_ORDERNUMBER_ORDERNR="<b>Auftragsgsnummern</b>" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Auftragsnummern anpassen" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Auftragsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_ORDERNR_FMT="Format der Auftragsnummern" +PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragsnummern angeben." +PLG_ORDERNUMBER_ORDERNR_COUNTER="Zähler" +PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." +PLG_ORDERNUMBER_ORDERNR_PADDING="Mindestziffern für den Zähler" +PLG_ORDERNUMBER_ORDERNR_PADDING_DESC="Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." + +PLG_ORDERNUMBER_PASSWD="<b>Auftragspasswort</b>" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE="Auftragspasswort anpassen" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Auftragspasswörter anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_PASSWD_FMT="Format der Auftragspasswörter" +PLG_ORDERNUMBER_PASSWD_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragspasswörter angeben (# wird nicht ersetzt)." + +PLG_ORDERNUMBER_INVOICENR="<b>Rechnungsnummern</b>" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Rechnungsnummern anpassen" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Rechnungsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_INVOICENR_FMT="Format der Rechnungsnummern" +PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben." +PLG_ORDERNUMBER_INVOICENR_COUNTER="Zähler" +PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." +PLG_ORDERNUMBER_INVOICENR_PADDING="Mindestziffern für den Zähler" +PLG_ORDERNUMBER_INVOICENR_PADDING_DESC="Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." + +PLG_ORDERNUMBER_CUSTOMERNR="<b>Kundennummern</b>" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Kundennummern anpassen" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Kundennummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format der Kundennummern" +PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Kundennummern angeben." +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Zähler" +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." +PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Mindestziffern für den Zähler" +PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC="Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." diff --git a/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini b/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini index 7ef7f7a..dd34f34 100644 --- a/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini +++ b/language/de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini @@ -2,80 +2,47 @@ ; Copyright (C) 2012 Reinhold Kainhofer. All rights reserved. ; License http://www.gnu.org/licenses/gpl.html GNU/GPL ; Note : All ini files need to be saved as UTF-8 - No BOM -VMSHOPPER_ORDERNUMBER = "VM2 - Plugin zur Anpassung von Auftrags-, Rechnungs- und Kundennummern" -VMSHOPPER_ORDERNUMBER_DESC = "Dieses Plugin erlaubt es Ihnen, das Format von Auftrags-, Rechnungs- und Kundennummern in VirtueMart 2 anzupassen.<br/><br/> - <div style='font-weight: normal'> - <p style='font-weight: normal'> - Das Format der Auftrags-, Rechnungs- und Kundennummern ist ein einfacher Text, wobei <tt>#</tt> die laufende Nummer anzeigt und <tt>[variable]</tt> als Variable interpretiert und durch deren Wert ersetzt wird. Aktuell sind folgende Variablen möglich (Groß-/Kleinschreibung ist egal):<table border=1> - <tr><td>year</td><td>Aktuelles Jahr (4 Ziffern)</td></tr> - <tr><td>year2</td><td>Aktuelles Jahr (2 Ziffern)</td></tr> - <tr><td>month</td><td>Aktuelles Monat (2 Ziffern); mit führenden Nullen wenn nötig</td></tr> - <tr><td>day</td><td>Aktueller Tar (2 Ziffern); mit führenden Nullen wenn nötig</td></tr> - <tr><td>hour</td><td>Aktuelle Stunde im 24-Stunden Format; mit führenden Nullen wenn nötig</td></tr> - <tr><td>hour12</td><td>Aktuelles Stunde in 12-Stunden Format; mit führenden Nullen wenn nötig</td></tr> - <tr><td>ampm</td><td>Aktuelles am-pm (für 12-Stunden Format) in Kleinschreibung</td></tr> - <tr><td>minute</td><td>Aktuelle Minute; mit führenden Nullen wenn nötig</td></tr> - <tr><td>second</td><td>Aktuelle Sekunde; mit führenden Nullen wenn nötig</td></tr> - <tr><td>randomDigit<em>[n]</em></td><td>Zufallsfolge von n Dezimalziffern (n=1 wenn nicht angegeben).</td></tr> - <tr><td>randomHex<em>[n]</em></td><td>Zufallsfolge von n Hexadezimalziffern (n=1 wenn nicht angegeben).</td></tr> - <tr><td>randomLetter<em>[n]</em></td><td>Zufallsfolge von n Groß- und Kleinbuchstaben (Groß- und Kleinschreibung) (n=1 wenn nicht angegeben).</td></tr> - <tr><td>randomULetter<em>[n]</em></td><td>Zufallsfolge von n Großbuchstaben (n=1 wenn nicht angegeben).</td></tr> - <tr><td>randomLLetter<em>[n]</em></td><td>Zufallsfolge von n Kleinbuchstaben (n=1 wenn nicht angegeben).</td></tr> - <tr><td>randomAlphanum<em>[n]</em></td><td>Zufallsfolge von n allgemeinen alphanumerischen Zeichen (A-Z, a-z, 0-9) (n=1 wenn nicht angegeben).</td></tr> - <tr><td>vendorID</td><td>(Interne) VirtueMart Verkäufer ID</td></tr> - <tr><td>userID</td><td>(Interne) VirtueMart Benutzer ID</td></tr> - <tr><td>IPaddress</td><td>IP-Addresse des Käufers</td></tr> - <tr><th colspan=2><em>Nur für Rechnungsnummern:</em></td></tr> - <tr><td>orderNumber</td><td>Auftragsnummer, für die die Rechnung erstellt wird</td></tr> - <tr><td>orderID</td><td>(Interne) Auftrags-ID, für die die Rechnung erstellt wird</td></tr> - <tr><td>Lastname</td><td>Nachname des Käufers (Rechnungsadresse)</td></tr> - <tr><td>Firstname</td><td>Vorname des Käufers (Rechnungsadresse)</td></tr> - <tr><td>Company</td><td>Unternehmen des Käufers (Rechnungsadresse)</td></tr> - <tr><td>City</td><td>Ort des Käufers (Rechnungsadresse)</td></tr> - <tr><td>zip</td><td>Postleitzahl des Käufers (Rechnungsadresse)</td></tr> - <tr><td>orderStatus</td><td>Status der Bestellung (Kürzel: S, R, X, C, U, P)</td></tr> - </table> - <p>Die gesamte Dokumentation findet sich auf der Homepage des Plugins: <a href='http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html'>http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html</a></p> - </div>" +VMSHOPPER_ORDERNUMBER="VM2 - Plugin zur Anpassung von Auftrags-, Rechnungs- und Kundennummern" +VMSHOPPER_ORDERNUMBER_DESC="Dieses Plugin erlaubt es Ihnen, das Format von Auftrags-, Rechnungs- und Kundennummern in VirtueMart 2 anzupassen.<br/><br/> <div style='font-weight: normal'> <p style='font-weight: normal'> Das Format der Auftrags-, Rechnungs- und Kundennummern ist ein einfacher Text, wobei <tt>#</tt> die laufende Nummer anzeigt und <tt>[variable]</tt> als Variable interpretiert und durch deren Wert ersetzt wird. Aktuell sind folgende Variablen möglich (Groß-/Kleinschreibung ist egal):<table border=1> <tr><td>year</td><td>Aktuelles Jahr (4 Ziffern)</td></tr> <tr><td>year2</td><td>Aktuelles Jahr (2 Ziffern)</td></tr> <tr><td>month</td><td>Aktuelles Monat (2 Ziffern); mit führenden Nullen wenn nötig</td></tr> <tr><td>day</td><td>Aktueller Tar (2 Ziffern); mit führenden Nullen wenn nötig</td></tr> <tr><td>hour</td><td>Aktuelle Stunde im 24-Stunden Format; mit führenden Nullen wenn nötig</td></tr> <tr><td>hour12</td><td>Aktuelles Stunde in 12-Stunden Format; mit führenden Nullen wenn nötig</td></tr> <tr><td>ampm</td><td>Aktuelles am-pm (für 12-Stunden Format) in Kleinschreibung</td></tr> <tr><td>minute</td><td>Aktuelle Minute; mit führenden Nullen wenn nötig</td></tr> <tr><td>second</td><td>Aktuelle Sekunde; mit führenden Nullen wenn nötig</td></tr> <tr><td>randomDigit<em>[n]</em></td><td>Zufallsfolge von n Dezimalziffern (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomHex<em>[n]</em></td><td>Zufallsfolge von n Hexadezimalziffern (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomLetter<em>[n]</em></td><td>Zufallsfolge von n Groß- und Kleinbuchstaben (Groß- und Kleinschreibung) (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomULetter<em>[n]</em></td><td>Zufallsfolge von n Großbuchstaben (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomLLetter<em>[n]</em></td><td>Zufallsfolge von n Kleinbuchstaben (n=1 wenn nicht angegeben).</td></tr> <tr><td>randomAlphanum<em>[n]</em></td><td>Zufallsfolge von n allgemeinen alphanumerischen Zeichen (A-Z, a-z, 0-9) (n=1 wenn nicht angegeben).</td></tr> <tr><td>vendorID</td><td>(Interne) VirtueMart Verkäufer ID</td></tr> <tr><td>userID</td><td>(Interne) VirtueMart Benutzer ID</td></tr> <tr><td>IPaddress</td><td>IP-Addresse des Käufers</td></tr> <tr><th colspan=2><em>Nur für Rechnungsnummern:</em></td></tr> <tr><td>orderNumber</td><td>Auftragsnummer, für die die Rechnung erstellt wird</td></tr> <tr><td>orderID</td><td>(Interne) Auftrags-ID, für die die Rechnung erstellt wird</td></tr> <tr><td>Lastname</td><td>Nachname des Käufers (Rechnungsadresse)</td></tr> <tr><td>Firstname</td><td>Vorname des Käufers (Rechnungsadresse)</td></tr> <tr><td>Company</td><td>Unternehmen des Käufers (Rechnungsadresse)</td></tr> <tr><td>City</td><td>Ort des Käufers (Rechnungsadresse)</td></tr> <tr><td>zip</td><td>Postleitzahl des Käufers (Rechnungsadresse)</td></tr> <tr><td>orderStatus</td><td>Status der Bestellung (Kürzel: S, R, X, C, U, P)</td></tr> </table> <p>Die gesamte Dokumentation findet sich auf der Homepage des Plugins: <a href='http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html'>http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html</a></p> </div>" -PLG_ORDERNUMBER_YES = "Ja" -PLG_ORDERNUMBER_NO = "Nein" +PLG_ORDERNUMBER_YES="Ja" +PLG_ORDERNUMBER_NO="Nein" PLG_ORDERNUMBER_COUNTER_GLOBAL="Global" -PLG_ORDERNUMBER_COUNTER_PERFORMAT = "Eigener Zähler pro Formatwert" +PLG_ORDERNUMBER_COUNTER_PERFORMAT="Eigener Zähler pro Formatwert" -PLG_ORDERNUMBER_ORDERNR = "<b>Auftragsgsnummern</b>" -PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE = "Auftragsnummern anpassen" -PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC = "Hier ankreuzen, wenn Sie Ihre Auftragsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_ORDERNR="<b>Auftragsgsnummern</b>" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Auftragsnummern anpassen" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Auftragsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." PLG_ORDERNUMBER_ORDERNR_FMT="Format der Auftragsnummern" PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragsnummern angeben." -PLG_ORDERNUMBER_ORDERNR_COUNTER = "Zähler" -PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC = "Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." -PLG_ORDERNUMBER_ORDERNR_PADDING = "Mindestziffern für den Zähler" -PLG_ORDERNUMBER_ORDERNR_PADDING_DESC = "Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." +PLG_ORDERNUMBER_ORDERNR_COUNTER="Zähler" +PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." +PLG_ORDERNUMBER_ORDERNR_PADDING="Mindestziffern für den Zähler" +PLG_ORDERNUMBER_ORDERNR_PADDING_DESC="Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." -PLG_ORDERNUMBER_PASSWD = "<b>Auftragspasswort</b>" -PLG_ORDERNUMBER_PASSWD_CUSTOMIZE = "Auftragspasswort anpassen" -PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC = "Hier ankreuzen, wenn Sie Ihre Auftragspasswörter anpassen möchten und nicht die Standardeinstellung benutzen möchten." -PLG_ORDERNUMBER_PASSWD_FMT = "Format der Auftragspasswörter" -PLG_ORDERNUMBER_PASSWD_FMT_DESC = "Hier können Sie Ihr eigenes Format für Auftragspasswörter angeben (# wird nicht ersetzt)." +PLG_ORDERNUMBER_PASSWD="<b>Auftragspasswort</b>" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE="Auftragspasswort anpassen" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Auftragspasswörter anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_PASSWD_FMT="Format der Auftragspasswörter" +PLG_ORDERNUMBER_PASSWD_FMT_DESC="Hier können Sie Ihr eigenes Format für Auftragspasswörter angeben (# wird nicht ersetzt)." -PLG_ORDERNUMBER_INVOICENR = "<b>Rechnungsnummern</b>" -PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE = "Rechnungsnummern anpassen" -PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC = "Hier ankreuzen, wenn Sie Ihre Rechnungsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." -PLG_ORDERNUMBER_INVOICENR_FMT = "Format der Rechnungsnummern" -PLG_ORDERNUMBER_INVOICENR_FMT_DESC = "Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben." -PLG_ORDERNUMBER_INVOICENR_COUNTER = "Zähler" -PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC = "Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." -PLG_ORDERNUMBER_INVOICENR_PADDING = "Mindestziffern für den Zähler" -PLG_ORDERNUMBER_INVOICENR_PADDING_DESC = "Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." +PLG_ORDERNUMBER_INVOICENR="<b>Rechnungsnummern</b>" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Rechnungsnummern anpassen" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Rechnungsnummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_INVOICENR_FMT="Format der Rechnungsnummern" +PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Hier können Sie Ihr eigenes Format für Rechnungsnummern angeben." +PLG_ORDERNUMBER_INVOICENR_COUNTER="Zähler" +PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." +PLG_ORDERNUMBER_INVOICENR_PADDING="Mindestziffern für den Zähler" +PLG_ORDERNUMBER_INVOICENR_PADDING_DESC="Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." -PLG_ORDERNUMBER_CUSTOMERNR = "<b>Kundennummern</b>" -PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE = "Kundennummern anpassen" -PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC = "Hier ankreuzen, wenn Sie Ihre Kundennummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." -PLG_ORDERNUMBER_CUSTOMERNR_FMT = "Format der Kundennummern" -PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC = "Hier können Sie Ihr eigenes Format für Kundennummern angeben." -PLG_ORDERNUMBER_CUSTOMERNR_COUNTER = "Zähler" -PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC = "Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." -PLG_ORDERNUMBER_CUSTOMERNR_PADDING = "Mindestziffern für den Zähler" -PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC = "Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." +PLG_ORDERNUMBER_CUSTOMERNR="<b>Kundennummern</b>" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Kundennummern anpassen" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Hier ankreuzen, wenn Sie Ihre Kundennummern anpassen möchten und nicht die Standardeinstellung benutzen möchten." +PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format der Kundennummern" +PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Hier können Sie Ihr eigenes Format für Kundennummern angeben." +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Zähler" +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Wählen Sie aus, ob der Zähler global oder pro Formatwert laufen soll. Z.B. beginnt bei einem Format '[year]-#' und einem Zähler pro Formatwert der Zähler jedes Jahr bei 1." +PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Mindestziffern für den Zähler" +PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC="Wählen Sie hier die Mindestzahl von Ziffern, die der Zähler anzeigt. Ist der Wert des Zählers kleiner, werden entsprechend viele führende Nullen vorangestellt." diff --git a/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini b/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini new file mode 100644 index 0000000..bc9ce5c --- /dev/null +++ b/language/en-GB/en-GB.plg_vmshopper_ordernumber.ini @@ -0,0 +1,50 @@ +; VM2 Customize Order/Invoice numbers plugin +; Copyright (C) 2012 Reinhold Kainhofer. All rights reserved. +; License http://www.gnu.org/licenses/gpl.html GNU/GPL +; Note : All ini files need to be saved as UTF-8 - No BOM + +VMSHOPPER_ORDERNUMBER="VM2 - Custom Order, Invoice and Customer Number plugin" +VMSHOPPER_ORDERNUMBER_DESC="This plugin is used to create custom order, invoice and customer numbers for Virtuemart 2<br/><br/> <div style='font-weight: normal'> <p style='font-weight: normal'> The format of the numbers is a free-form text string, where <tt>#</tt> indicates the running counter and <tt>[variable]</tt> is understood as a variable and replaced by its current value. Currently, the following variables are available (case-insensitive):<table border=1> <tr><td>year</td><td>Current year (4 digits)</td></tr> <tr><td>year2</td><td>Current year (2 digits)</td></tr> <tr><td>month</td><td>Current month (2 digits); leading zeros if necessary</td></tr> <tr><td>day</td><td>Current day (2 digits); leading zeros if necessary</td></tr> <tr><td>hour</td><td>Current hour in 24-hour format; leading zeros if necessary</td></tr> <tr><td>hour12</td><td>Current hour in 12-hour format; leading zeros if necessary</td></tr> <tr><td>ampm</td><td>Current am-pm (for 12-hour format) in lower-case</td></tr> <tr><td>minute</td><td>Current minute; leading zeros if necessary</td></tr> <tr><td>second</td><td>Current second; leading zeros if necessary</td></tr> <tr><td>randomDigit<em>[n]</em></td><td>Random sequences of n decimal digits (n=1 if not given).</td></tr> <tr><td>randomHex<em>[n]</em></td><td>Random sequences of n hexadecimal digits (n=1 if not given).</td></tr> <tr><td>randomLetter<em>[n]</em></td><td>Random sequences of n (upper- and lowercase) letters (n=1 if not given).</td></tr> <tr><td>randomULetter<em>[n]</em></td><td>Random sequences of n uppercase letters (n=1 if not given).</td></tr> <tr><td>randomLLetter<em>[n]</em></td><td>Random sequences of n lowercase letters (n=1 if not given).</td></tr> <tr><td>randomAlphanum<em>[n]</em></td><td>Random sequences of n general alphanumeric characters (A-Z, a-z, 0-9) (n=1 if not given).</td></tr> <tr><td>vendorID</td><td>(Internal) VirtueMart Vendor ID</td></tr> <tr><td>userID</td><td>(Internal) VirtueMart User ID</td></tr> <tr><td>IPaddress</td><td>IP-Address of the shopper's computer</td></tr> <tr><th colspan=2><em>Only for invoice Numbers:</em></td></tr> <tr><td>orderNumber</td><td>Order number, for which the invoice is created</td></tr> <tr><td>orderID</td><td>(Internal) Order ID, for which the invoice is created</td></tr> <tr><td>Lastname</td><td>Last name of the shopper (billing address)</td></tr> <tr><td>Firstname</td><td>First name of the shopper (billing address)</td></tr> <tr><td>Company</td><td>Company of the shopper (billing address)</td></tr> <tr><td>City</td><td>City of the shopper (billing address)</td></tr> <tr><td>zip</td><td>ZIP of the shopper (billing address)</td></tr> <tr><td>orderStatus</td><td>Status of the order (abbreviations: S, R, X, C, U, P)</td></tr> </table> <p>The full documentation can be found at the homepage: <a href='http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html'>http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html</a></p> </div>" + +PLG_ORDERNUMBER_YES="Yes" +PLG_ORDERNUMBER_NO="No" + +PLG_ORDERNUMBER_COUNTER_GLOBAL="Global" +PLG_ORDERNUMBER_COUNTER_PERFORMAT="Separate counter per format value" + +PLG_ORDERNUMBER_ORDERNR="<b>Order numbers</b>" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Customize order numbers" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Check here if you want customized order number formats rather than the default." +PLG_ORDERNUMBER_ORDERNR_FMT="Format of the order numbers" +PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number" +PLG_ORDERNUMBER_ORDERNR_COUNTER="Counter" +PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the order count will be within the year only." +PLG_ORDERNUMBER_ORDERNR_PADDING="Minimum digits for the counter" +PLG_ORDERNUMBER_ORDERNR_PADDING_DESC="Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" + +PLG_ORDERNUMBER_PASSWD="<b>Order password</b>" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE="Customize order password" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC="Check here if you want customized order password formats rather than the default." +PLG_ORDERNUMBER_PASSWD_FMT="Format of the order password" +PLG_ORDERNUMBER_PASSWD_FMT_DESC="Here you can customize the order password (# is NOT replaced)" + +PLG_ORDERNUMBER_INVOICENR="<b>Invoice numbers</b>" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Customize invoice numbers" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Check here if you want customized invoice number formats rather than the default." +PLG_ORDERNUMBER_INVOICENR_FMT="Format of the invoice numbers" +PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Here you can customize the invoice number" +PLG_ORDERNUMBER_INVOICENR_COUNTER="Counter" +PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the invoice count will be within the year only." +PLG_ORDERNUMBER_INVOICENR_PADDING="Minimum digits for the counter" +PLG_ORDERNUMBER_INVOICENR_PADDING_DESC="Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" + +PLG_ORDERNUMBER_CUSTOMERNR="<b>Customer numbers</b>" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Customize customer numbers" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Check here if you want customized customer number formats rather than the default." +PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format of the customer numbers" +PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Here you can customize the customer number" +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Counter" +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the customer count will be within the year only." +PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Minimum digits for the counter" +PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC="Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" + diff --git a/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini b/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini index dc80c77..bc9ce5c 100644 --- a/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini +++ b/language/en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini @@ -2,81 +2,49 @@ ; Copyright (C) 2012 Reinhold Kainhofer. All rights reserved. ; License http://www.gnu.org/licenses/gpl.html GNU/GPL ; Note : All ini files need to be saved as UTF-8 - No BOM -VMSHOPPER_ORDERNUMBER = "VM2 - Custom Order, Invoice and Customer Number plugin" -VMSHOPPER_ORDERNUMBER_DESC = "This plugin is used to create custom order, invoice and customer numbers for Virtuemart 2<br/><br/> - <div style='font-weight: normal'> - <p style='font-weight: normal'> - The format of the numbers is a free-form text string, where <tt>#</tt> indicates the running counter and <tt>[variable]</tt> is understood as a variable and replaced by its current value. Currently, the following variables are available (case-insensitive):<table border=1> - <tr><td>year</td><td>Current year (4 digits)</td></tr> - <tr><td>year2</td><td>Current year (2 digits)</td></tr> - <tr><td>month</td><td>Current month (2 digits); leading zeros if necessary</td></tr> - <tr><td>day</td><td>Current day (2 digits); leading zeros if necessary</td></tr> - <tr><td>hour</td><td>Current hour in 24-hour format; leading zeros if necessary</td></tr> - <tr><td>hour12</td><td>Current hour in 12-hour format; leading zeros if necessary</td></tr> - <tr><td>ampm</td><td>Current am-pm (for 12-hour format) in lower-case</td></tr> - <tr><td>minute</td><td>Current minute; leading zeros if necessary</td></tr> - <tr><td>second</td><td>Current second; leading zeros if necessary</td></tr> - <tr><td>randomDigit<em>[n]</em></td><td>Random sequences of n decimal digits (n=1 if not given).</td></tr> - <tr><td>randomHex<em>[n]</em></td><td>Random sequences of n hexadecimal digits (n=1 if not given).</td></tr> - <tr><td>randomLetter<em>[n]</em></td><td>Random sequences of n (upper- and lowercase) letters (n=1 if not given).</td></tr> - <tr><td>randomULetter<em>[n]</em></td><td>Random sequences of n uppercase letters (n=1 if not given).</td></tr> - <tr><td>randomLLetter<em>[n]</em></td><td>Random sequences of n lowercase letters (n=1 if not given).</td></tr> - <tr><td>randomAlphanum<em>[n]</em></td><td>Random sequences of n general alphanumeric characters (A-Z, a-z, 0-9) (n=1 if not given).</td></tr> - <tr><td>vendorID</td><td>(Internal) VirtueMart Vendor ID</td></tr> - <tr><td>userID</td><td>(Internal) VirtueMart User ID</td></tr> - <tr><td>IPaddress</td><td>IP-Address of the shopper's computer</td></tr> - <tr><th colspan=2><em>Only for invoice Numbers:</em></td></tr> - <tr><td>orderNumber</td><td>Order number, for which the invoice is created</td></tr> - <tr><td>orderID</td><td>(Internal) Order ID, for which the invoice is created</td></tr> - <tr><td>Lastname</td><td>Last name of the shopper (billing address)</td></tr> - <tr><td>Firstname</td><td>First name of the shopper (billing address)</td></tr> - <tr><td>Company</td><td>Company of the shopper (billing address)</td></tr> - <tr><td>City</td><td>City of the shopper (billing address)</td></tr> - <tr><td>zip</td><td>ZIP of the shopper (billing address)</td></tr> - <tr><td>orderStatus</td><td>Status of the order (abbreviations: S, R, X, C, U, P)</td></tr> - </table> - <p>The full documentation can be found at the homepage: <a href='http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html'>http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html</a></p> - </div>" -PLG_ORDERNUMBER_YES = "Yes" -PLG_ORDERNUMBER_NO = "No" +VMSHOPPER_ORDERNUMBER="VM2 - Custom Order, Invoice and Customer Number plugin" +VMSHOPPER_ORDERNUMBER_DESC="This plugin is used to create custom order, invoice and customer numbers for Virtuemart 2<br/><br/> <div style='font-weight: normal'> <p style='font-weight: normal'> The format of the numbers is a free-form text string, where <tt>#</tt> indicates the running counter and <tt>[variable]</tt> is understood as a variable and replaced by its current value. Currently, the following variables are available (case-insensitive):<table border=1> <tr><td>year</td><td>Current year (4 digits)</td></tr> <tr><td>year2</td><td>Current year (2 digits)</td></tr> <tr><td>month</td><td>Current month (2 digits); leading zeros if necessary</td></tr> <tr><td>day</td><td>Current day (2 digits); leading zeros if necessary</td></tr> <tr><td>hour</td><td>Current hour in 24-hour format; leading zeros if necessary</td></tr> <tr><td>hour12</td><td>Current hour in 12-hour format; leading zeros if necessary</td></tr> <tr><td>ampm</td><td>Current am-pm (for 12-hour format) in lower-case</td></tr> <tr><td>minute</td><td>Current minute; leading zeros if necessary</td></tr> <tr><td>second</td><td>Current second; leading zeros if necessary</td></tr> <tr><td>randomDigit<em>[n]</em></td><td>Random sequences of n decimal digits (n=1 if not given).</td></tr> <tr><td>randomHex<em>[n]</em></td><td>Random sequences of n hexadecimal digits (n=1 if not given).</td></tr> <tr><td>randomLetter<em>[n]</em></td><td>Random sequences of n (upper- and lowercase) letters (n=1 if not given).</td></tr> <tr><td>randomULetter<em>[n]</em></td><td>Random sequences of n uppercase letters (n=1 if not given).</td></tr> <tr><td>randomLLetter<em>[n]</em></td><td>Random sequences of n lowercase letters (n=1 if not given).</td></tr> <tr><td>randomAlphanum<em>[n]</em></td><td>Random sequences of n general alphanumeric characters (A-Z, a-z, 0-9) (n=1 if not given).</td></tr> <tr><td>vendorID</td><td>(Internal) VirtueMart Vendor ID</td></tr> <tr><td>userID</td><td>(Internal) VirtueMart User ID</td></tr> <tr><td>IPaddress</td><td>IP-Address of the shopper's computer</td></tr> <tr><th colspan=2><em>Only for invoice Numbers:</em></td></tr> <tr><td>orderNumber</td><td>Order number, for which the invoice is created</td></tr> <tr><td>orderID</td><td>(Internal) Order ID, for which the invoice is created</td></tr> <tr><td>Lastname</td><td>Last name of the shopper (billing address)</td></tr> <tr><td>Firstname</td><td>First name of the shopper (billing address)</td></tr> <tr><td>Company</td><td>Company of the shopper (billing address)</td></tr> <tr><td>City</td><td>City of the shopper (billing address)</td></tr> <tr><td>zip</td><td>ZIP of the shopper (billing address)</td></tr> <tr><td>orderStatus</td><td>Status of the order (abbreviations: S, R, X, C, U, P)</td></tr> </table> <p>The full documentation can be found at the homepage: <a href='http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html'>http://www.kainhofer.com/virtuemart-2-extensions/40-vm2-ordernumber.html</a></p> </div>" + +PLG_ORDERNUMBER_YES="Yes" +PLG_ORDERNUMBER_NO="No" PLG_ORDERNUMBER_COUNTER_GLOBAL="Global" -PLG_ORDERNUMBER_COUNTER_PERFORMAT = "Separate counter per format value" +PLG_ORDERNUMBER_COUNTER_PERFORMAT="Separate counter per format value" -PLG_ORDERNUMBER_ORDERNR = "<b>Order numbers</b>" -PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE = "Customize order numbers" -PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC = "Check here if you want customized order number formats rather than the default." +PLG_ORDERNUMBER_ORDERNR="<b>Order numbers</b>" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE="Customize order numbers" +PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC="Check here if you want customized order number formats rather than the default." PLG_ORDERNUMBER_ORDERNR_FMT="Format of the order numbers" PLG_ORDERNUMBER_ORDERNR_FMT_DESC="Here you can customize the order number" -PLG_ORDERNUMBER_ORDERNR_COUNTER = "Counter" -PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC = "Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the order count will be within the year only." -PLG_ORDERNUMBER_ORDERNR_PADDING = "Minimum digits for the counter" -PLG_ORDERNUMBER_ORDERNR_PADDING_DESC = "Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" +PLG_ORDERNUMBER_ORDERNR_COUNTER="Counter" +PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the order count will be within the year only." +PLG_ORDERNUMBER_ORDERNR_PADDING="Minimum digits for the counter" +PLG_ORDERNUMBER_ORDERNR_PADDING_DESC="Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" -PLG_ORDERNUMBER_PASSWD = "<b>Order password</b>" -PLG_ORDERNUMBER_PASSWD_CUSTOMIZE = "Customize order password" -PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC = "Check here if you want customized order password formats rather than the default." -PLG_ORDERNUMBER_PASSWD_FMT = "Format of the order password" -PLG_ORDERNUMBER_PASSWD_FMT_DESC = "Here you can customize the order password (# is NOT replaced)" +PLG_ORDERNUMBER_PASSWD="<b>Order password</b>" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE="Customize order password" +PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC="Check here if you want customized order password formats rather than the default." +PLG_ORDERNUMBER_PASSWD_FMT="Format of the order password" +PLG_ORDERNUMBER_PASSWD_FMT_DESC="Here you can customize the order password (# is NOT replaced)" -PLG_ORDERNUMBER_INVOICENR = "<b>Invoice numbers</b>" -PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE = "Customize invoice numbers" -PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC = "Check here if you want customized invoice number formats rather than the default." -PLG_ORDERNUMBER_INVOICENR_FMT = "Format of the invoice numbers" -PLG_ORDERNUMBER_INVOICENR_FMT_DESC = "Here you can customize the invoice number" -PLG_ORDERNUMBER_INVOICENR_COUNTER = "Counter" -PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC = "Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the invoice count will be within the year only." -PLG_ORDERNUMBER_INVOICENR_PADDING = "Minimum digits for the counter" -PLG_ORDERNUMBER_INVOICENR_PADDING_DESC = "Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" +PLG_ORDERNUMBER_INVOICENR="<b>Invoice numbers</b>" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE="Customize invoice numbers" +PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC="Check here if you want customized invoice number formats rather than the default." +PLG_ORDERNUMBER_INVOICENR_FMT="Format of the invoice numbers" +PLG_ORDERNUMBER_INVOICENR_FMT_DESC="Here you can customize the invoice number" +PLG_ORDERNUMBER_INVOICENR_COUNTER="Counter" +PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the invoice count will be within the year only." +PLG_ORDERNUMBER_INVOICENR_PADDING="Minimum digits for the counter" +PLG_ORDERNUMBER_INVOICENR_PADDING_DESC="Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" -PLG_ORDERNUMBER_CUSTOMERNR = "<b>Customer numbers</b>" -PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE = "Customize customer numbers" -PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC = "Check here if you want customized customer number formats rather than the default." -PLG_ORDERNUMBER_CUSTOMERNR_FMT = "Format of the customer numbers" -PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC = "Here you can customize the customer number" -PLG_ORDERNUMBER_CUSTOMERNR_COUNTER = "Counter" -PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC = "Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the customer count will be within the year only." -PLG_ORDERNUMBER_CUSTOMERNR_PADDING = "Minimum digits for the counter" -PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC = "Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" +PLG_ORDERNUMBER_CUSTOMERNR="<b>Customer numbers</b>" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE="Customize customer numbers" +PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC="Check here if you want customized customer number formats rather than the default." +PLG_ORDERNUMBER_CUSTOMERNR_FMT="Format of the customer numbers" +PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC="Here you can customize the customer number" +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER="Counter" +PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC="Choose whether you want one global counter or per-format value counters. E.g. with a format of '[year]-#' and the latter option checked, the customer count will be within the year only." +PLG_ORDERNUMBER_CUSTOMERNR_PADDING="Minimum digits for the counter" +PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC="Select the minimum number of digits that the counter shall display. The value of the counter will be left-padded with 0 to have this minimum number of digits. If the counter is already larger than this number, no padding will occur" diff --git a/ordernumber.php b/ordernumber.php index acec086..38cd01c 100644 --- a/ordernumber.php +++ b/ordernumber.php @@ -1,7 +1,6 @@ <?php /** * @package VirtueMart 2 OrderNumber plugin for Joomla! 2.5 - * @version $Id: mod_XYZ.php 599 2010-03-20 23:26:33Z you $ * @author Reinhold Kainhofer, reinhold@kainhofer.com * @copyright (C) 2012 - Reinhold Kainhofer * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html @@ -92,33 +91,20 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { "[userid]" => $details->virtuemart_user_id, "[vendorid]" => $details->virtuemart_vendor_id ); - if ($nrtype==0 or $nrtype == 1) { + if ($nrtype==0 or $nrtype == 1) { // Order nr and Invoice nr $reps["[ipaddress]"] = $details->ip_address; } - if ($nrtype==1) { - // Only for Invoice: - $reps["[ordernumber]"] = $details->order_number; - $reps["[orderid]"] = $details->virtuemart_order_id; - $reps["[lastname]"] = $details->last_name; - $reps["[firstname]"] = $details->first_name; - $reps["[company]"] = $details->company; - $reps["[city]"] = $details->city; - $reps["[zip]"] = $details->zip; - $reps["[orderstatus]"] = $details->order_status; - } - if ($nrtype==2) { - // Customer number: - $reps["[username]"] = $details->username; - $reps["[name]"] = $details->name; + if ($nrtype==1 or $nrtype==2) { // Invoice nr and Customer nr $reps["[email]"] = $details->email; - $reps["[company]"] = $details->company; $reps["[title]"] = $details->title; $reps["[firstname]"] = $details->first_name; $reps["[middlename]"] = $details->middle_name; $reps["[lastname]"] = $details->last_name; + + $reps["[company]"] = $details->company; $reps["[zip]"] = $details->zip; $reps["[city]"] = $details->city; - + $reps["[countryid]"] = $details->virtuemart_country_id; $country = $this->getCountryFromID ($details->virtuemart_country_id); $reps["[country]"] = $country->country_name; @@ -126,6 +112,17 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { $reps["[countrycode3]"] = $country->country_3_code; $reps["[stateid]"] = $details->virtuemart_state_id; + } + if ($nrtype==1) { + // Only for Invoice: + $reps["[ordernumber]"] = $details->order_number; + $reps["[orderid]"] = $details->virtuemart_order_id; + $reps["[orderstatus]"] = $details->order_status; + } + if ($nrtype==2) { + // Customer number: + $reps["[username]"] = $details->username; + $reps["[name]"] = $details->name; $reps["[user_is_vendor]"] = $details->user_is_vendor; } return str_ireplace (array_keys($reps), array_values($reps), $fmt); diff --git a/ordernumber.script.php b/ordernumber.script.php index cbbd586..964866f 100644 --- a/ordernumber.script.php +++ b/ordernumber.script.php @@ -56,11 +56,11 @@ class plgVmShopperOrdernumberInstallerScript */ public function update(JAdapterInstance $adapter) { - jimport( 'joomla.filesystem.file' ); - $file = JPATH_ROOT . DS . "administrator" . DS . "language" . DS . "en-GB" . DS . "en-GB.plg_vmshopper_ordernumber.sys.ini"; - if (JFile::exists($file)) JFile::delete($file); - $file = JPATH_ROOT . DS . "administrator" . DS . "language" . DS . "de-DE" . DS . "de-DE.plg_vmshopper_ordernumber.sys.ini"; - if (JFile::exists($file)) JFile::delete($file); +// jimport( 'joomla.filesystem.file' ); +// $file = JPATH_ROOT . DS . "administrator" . DS . "language" . DS . "en-GB" . DS . "en-GB.plg_vmshopper_ordernumber.sys.ini"; +// if (JFile::exists($file)) JFile::delete($file); +// $file = JPATH_ROOT . DS . "administrator" . DS . "language" . DS . "de-DE" . DS . "de-DE.plg_vmshopper_ordernumber.sys.ini"; +// if (JFile::exists($file)) JFile::delete($file); return true; } diff --git a/ordernumber.xml b/ordernumber.xml index 51426d6..96ddf8a 100644 --- a/ordernumber.xml +++ b/ordernumber.xml @@ -7,8 +7,8 @@ <authorUrl>http://www.kainhofer.com/</authorUrl> <copyright>Copyright (C) 2012-2013 Reinhold Kainhofer. All rights reserved.</copyright> <license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPLv3</license> - <version>1.7.0</version> - <releaseDate>2013-01-23</releaseDate> + <version>1.8.0</version> + <releaseDate>2013-02-26</releaseDate> <releaseType>Minor update</releaseType> <downloadUrl>http://www.kainhofer.com/virtuemart-2-extensions/vm2-ordernumber-plugin.html</downloadUrl> @@ -18,9 +18,16 @@ <filename plugin="ordernumber">ordernumber.php</filename> <filename>ordernumber.script.php</filename> <filename>index.html</filename> - <folder>language</folder> + <folder>language</folder> </files> <scriptfile>ordernumber.script.php</scriptfile> + <languages folder="language"> + <language tag="en-GB">en-GB/en-GB.plg_vmshopper_ordernumber.ini</language> + <language tag="en-GB">en-GB/en-GB.plg_vmshopper_ordernumber.sys.ini</language> + <language tag="de-DE">de-DE/de-DE.plg_vmshopper_ordernumber.ini</language> + <language tag="de-DE">de-DE/de-DE.plg_vmshopper_ordernumber.sys.ini</language> + </languages> + <!-- Joomla 2.5 config --> <config> <fields name="params"> <fieldset name="basic"> @@ -70,4 +77,85 @@ </fieldset> </fields> </config> + + <!-- Joomla 1.5 config --> + <params addpath="/administrator/components/com_virtuemart/elements"> + <param name="order_options" type="spacer" default="PLG_ORDERNUMBER_ORDERNR" /> + <param name="customize_order_number" type="radio" default="0" label="PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE" description="PLG_ORDERNUMBER_ORDERNR_CUSTOMIZE_DESC"> + <option value="1">PLG_ORDERNUMBER_YES</option> + <option value="0">PLG_ORDERNUMBER_NO</option> + </param> + <param name="order_number_format" type="text" default="Order-[year][month]-#" label="PLG_ORDERNUMBER_ORDERNR_FMT" description="PLG_ORDERNUMBER_ORDERNR_FMT_DESC"/> + <param name="order_number_padding" type="list" default="1" label="PLG_ORDERNUMBER_ORDERNR_PADDING" description="PLG_ORDERNUMBER_ORDERNR_PADDING_DESC" > + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </param> + <param name="order_number_global" type="radio" default="0" label="PLG_ORDERNUMBER_ORDERNR_COUNTER" description="PLG_ORDERNUMBER_ORDERNR_COUNTER_DESC"> + <option value="1">PLG_ORDERNUMBER_COUNTER_GLOBAL</option> + <option value="0">PLG_ORDERNUMBER_COUNTER_PERFORMAT</option> + </param> + + + <param name="password_options" type="spacer" default="PLG_ORDERNUMBER_PASSWD" /> + <param name="customize_order_password" type="radio" default="0" label="PLG_ORDERNUMBER_PASSWD_CUSTOMIZE" description="PLG_ORDERNUMBER_PASSWD_CUSTOMIZE_DESC"> + <option value="1">Yes</option> + <option value="0">No</option> + </param> + <param name="order_password_format" type="text" default="p_[randomHex5]" label="PLG_ORDERNUMBER_PASSWD_FMT" description="PLG_ORDERNUMBER_PASSWD_FMT_DESC"/> + + <param name="invoice_options" type="spacer" default="PLG_ORDERNUMBER_INVOICENR" /> + <param name="customize_invoice_number" type="radio" default="0" label="PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE" description="PLG_ORDERNUMBER_INVOICENR_CUSTOMIZE_DESC"> + <option value="1">PLG_ORDERNUMBER_YES</option> + <option value="0">PLG_ORDERNUMBER_NO</option> + </param> + <param name="invoice_number_format" type="text" default="[year]-#" label="PLG_ORDERNUMBER_INVOICENR_FMT" description="PLG_ORDERNUMBER_INVOICENR_FMT_DESC"/> + <param name="invoice_number_padding" type="list" default="1" label="PLG_ORDERNUMBER_INVOICENR_PADDING" description="PLG_ORDERNUMBER_INVOICENR_PADDING_DESC" > + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </param> + <param name="invoice_number_global" type="radio" default="0" label="PLG_ORDERNUMBER_INVOICENR_COUNTER" description="PLG_ORDERNUMBER_INVOICENR_COUNTER_DESC"> + <option value="1">PLG_ORDERNUMBER_COUNTER_GLOBAL</option> + <option value="0">PLG_ORDERNUMBER_COUNTER_PERFORMAT</option> + </param> + + <param name="customer_options" type="spacer" default="PLG_ORDERNUMBER_CUSTOMERNR" /> + <param name="customize_customer_number" type="radio" default="0" label="PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE" description="PLG_ORDERNUMBER_CUSTOMERNR_CUSTOMIZE_DESC"> + <option value="1">PLG_ORDERNUMBER_YES</option> + <option value="0">PLG_ORDERNUMBER_NO</option> + </param> + <param name="customer_number_format" type="text" default="#" label="PLG_ORDERNUMBER_CUSTOMERNR_FMT" description="PLG_ORDERNUMBER_CUSTOMERNR_FMT_DESC"/> + <param name="customer_number_padding" type="list" default="1" label="PLG_ORDERNUMBER_CUSTOMERNR_PADDING" description="PLG_ORDERNUMBER_CUSTOMERNR_PADDING_DESC" > + <option value="1">1</option> + <option value="2">2</option> + <option value="3">3</option> + <option value="4">4</option> + <option value="5">5</option> + <option value="6">6</option> + <option value="7">7</option> + <option value="8">8</option> + <option value="9">9</option> + <option value="10">10</option> + </param> + <param name="customer_number_global" type="radio" default="1" label="PLG_ORDERNUMBER_CUSTOMERNR_COUNTER" description="PLG_ORDERNUMBER_CUSTOMERNR_COUNTER_DESC"> + <option value="1">PLG_ORDERNUMBER_COUNTER_GLOBAL</option> + <option value="0">PLG_ORDERNUMBER_COUNTER_PERFORMAT</option> + </param> + </params> + </install> diff --git a/releases/plg_vmshopper_ordernumber_v1.8.zip b/releases/plg_vmshopper_ordernumber_v1.8.zip new file mode 100644 index 0000000000000000000000000000000000000000..10d338f3b6fcfd59f2419fc27cf2de5f3fb2a27d GIT binary patch literal 14445 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 UD;ub|;AY@v2xVblU@`&m0PqsJQUCw| literal 0 HcmV?d00001 -- GitLab