From ce6b38275997869259f7b64c8991d47dbf133d88 Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Sat, 24 Nov 2012 00:10:54 +0100 Subject: [PATCH] Version 1.4: Fix randomString (forgot to move to callback class) --- Makefile | 2 +- ordernumber.php | 20 ++++++++++---------- ordernumber.xml | 4 ++-- releases/plg_vmshopper_ordernumber_v1.4.zip | Bin 0 -> 7985 bytes 4 files changed, 13 insertions(+), 13 deletions(-) create mode 100644 releases/plg_vmshopper_ordernumber_v1.4.zip diff --git a/Makefile b/Makefile index 39da238..f7950a1 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ BASE=ordernumber PLUGINTYPE=vmshopper -VERSION=1.3 +VERSION=1.4 PLUGINFILES=$(BASE).php $(BASE).xml index.html # TRANSDIR=../../../administrator/language/ diff --git a/ordernumber.php b/ordernumber.php index c34aacc..5afad90 100644 --- a/ordernumber.php +++ b/ordernumber.php @@ -20,6 +20,16 @@ class ReplacementCallback { $this->orderDetails = $orderDetails; } + /* Return a random "string" of the given length taken from the given alphabet */ + static function randomString($alphabet, $len) { + $alen = strlen($alphabet); + $r = ""; + for ($n=0; $n<$len; $n++) { + $r .= $alphabet[mt_rand(0, $alen-1)]; + } + return $r; + } + function replace ($match) { $varname = strtolower($match[1]); switch ($varname) { @@ -93,16 +103,6 @@ class plgVmShopperOrdernumber extends vmShopperPlugin { // We don't need this function, but the parent class declares it abstract, so we need to overload function plgVmOnUpdateOrderBEShopper($_orderID) {} - /* Return a random "string" of the given length taken from the given alphabet */ - static function randomString($alphabet, $len) { - $alen = strlen($alphabet); - $r = ""; - for ($n=0; $n<$len; $n++) { - $r .= $alphabet[mt_rand(0, $alen-1)]; - } - return $r; - } - /* Replace the format variables, match[1] is the variable name, match[2] and match[3] are only used for random fields */ function replace_fields ($fmt, $orderDetails) { diff --git a/ordernumber.xml b/ordernumber.xml index c2abd48..0e1e967 100644 --- a/ordernumber.xml +++ b/ordernumber.xml @@ -7,9 +7,9 @@ <authorUrl>http://www.kainhofer.com/</authorUrl> <copyright>Copyright (C) 2012 Reinhold Kainhofer. All rights reserved.</copyright> <license>http://www.gnu.org/licenses/gpl-3.0.html GNU/GPLv3</license> - <version>1.3.0</version> + <version>1.4.0</version> <releaseDate>2012-11-13</releaseDate> - <releaseType>Major update</releaseType> + <releaseType>Minor update</releaseType> <downloadUrl>http://www.kainhofer.com/virtuemart-2-extensions/</downloadUrl> <description>VMSHOPPER_ORDERNUMBER_DESC</description> diff --git a/releases/plg_vmshopper_ordernumber_v1.4.zip b/releases/plg_vmshopper_ordernumber_v1.4.zip new file mode 100644 index 0000000000000000000000000000000000000000..ec9e2a60afdb6498a5f5c8c3477a036530c16edf GIT binary patch literal 7985 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 bFc4jR<FbsE4HR3f46F=S7#SGcWkEaueOb6U literal 0 HcmV?d00001 -- GitLab