diff --git a/plugins/ordernumber_shoppergroups/Makefile b/plugins/ordernumber_shoppergroups/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..1cbda5d07cab4f7d10102dd408b771fb81e1993b --- /dev/null +++ b/plugins/ordernumber_shoppergroups/Makefile @@ -0,0 +1,20 @@ +BASE=ordernumber_shoppergroups +PLUGINTYPE=vmshopper +ZIPBASE=opentools_vmshopper +VERSION=1.0 + +PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html + +TRANSLATIONS=$(call wildcard,language/en*/*.plg_$(PLUGINTYPE)_$(BASE).*ini) +INDEXFILES=language/index.html $(call wildcard,language/**/index.html) +FIELDS=$(call wildcard,fields/*) +ZIPFILE=plg_$(ZIPBASE)_$(BASE)_v$(VERSION).zip + +all: zip + +zip: $(PLUGINFILES) $(TRANSLATIONS) $(ADVANCEDFILES) $(INDEXFILES) + @echo "Packing all files into distribution file $(ZIPFILE):" + @zip -r $(ZIPFILE) $(PLUGINFILES) $(TRANSLATIONS) $(INDEXFILES) $(FIELDS) + +clean: + rm -f $(ZIPFILE) diff --git a/plugins/ordernumber_shoppergroups/fields/index.html b/plugins/ordernumber_shoppergroups/fields/index.html new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/plugins/ordernumber_shoppergroups/fields/vmshoppergroup.php b/plugins/ordernumber_shoppergroups/fields/vmshoppergroup.php new file mode 100644 index 0000000000000000000000000000000000000000..c374ddffe10895d1bba68d5f9fd24d31cef2cbab --- /dev/null +++ b/plugins/ordernumber_shoppergroups/fields/vmshoppergroup.php @@ -0,0 +1,55 @@ +<?php +defined('_JEXEC') or die(); +/** + * + * @package VirtueMart + * @subpackage Plugins - Elements + * @author Valérie Isaksen + * @link http://www.virtuemart.net + * @copyright ${PHING.VM.COPYRIGHT} + * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php + * VirtueMart is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * @version $Id$ + */ +JFormHelper::loadFieldClass('list'); +jimport('joomla.form.formfield'); +if (!class_exists( 'VmConfig' )) + require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php'); +VmConfig::loadConfig(); + +class JFormFieldVmShopperGroup extends JFormFieldList { + + /** + * The form field type. + * + * @var string + * @since 11.1 + */ + var $type = 'vmShopperGroup'; + + protected function getOptions() { + VmConfig::loadJLang('com_virtuemart_orders', TRUE); + + $options = array(); + $db = JFactory::getDBO(); + + $query = 'SELECT `virtuemart_shoppergroup_id` AS value, `shopper_group_name` AS text + FROM `#__virtuemart_shoppergroups` + WHERE `virtuemart_vendor_id` = 1 + ORDER BY `ordering` ASC, `virtuemart_shoppergroup_id` ASC '; + + $db->setQuery($query); + $values = $db->loadObjectList(); + $options[] = JHtml::_('select.option', -1, vmText::_('(No shopper group set)')); + $options[] = JHtml::_('select.option', 0, vmText::_('(Any group / set default)')); + foreach ($values as $value) { + $options[] = JHtml::_('select.option', $value->value, vmText::_($value->text)); + } + + return $options; + } + +} \ No newline at end of file diff --git a/plugins/ordernumber_shoppergroups/index.html b/plugins/ordernumber_shoppergroups/index.html new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/plugins/ordernumber_shoppergroups/language/en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.ini b/plugins/ordernumber_shoppergroups/language/en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.ini new file mode 100644 index 0000000000000000000000000000000000000000..65fe85dd2d1379045766ddebdc1a97864600fdfc --- /dev/null +++ b/plugins/ordernumber_shoppergroups/language/en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.ini @@ -0,0 +1,19 @@ +; VM Ordernumber plugin: Provide variables derived from the shopper groups +; Copyright (C) 2014 Reinhold Kainhofer, Open Tools. 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 +VMORDERNUMBER_ORDERNUMBER_SHOPPERGROUPS="VM Ordernumbers - Shoppergroup-derived variables" +VMORDERNUMBER_ORDERNUMBER_SHOPPERGROUPS_DESC="This plugin provides variables for the Ordernumber plugin that are derived from the shopper's shopper group." + +PLG_ORDERNUMBER_SHOPPERGROUPS_FIELDSET="Configuration" + +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP1HEADER="<b>Shopper group 1</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP2HEADER="<b>Shopper group 2</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP3HEADER="<b>Shopper group 3</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP4HEADER="<b>Shopper group 4</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP5HEADER="<b>Shopper group 5</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP6HEADER="<b>Shopper group 6</b>" + +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP="Shopper Group" +PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE="Format Variable Name" +PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE="Value of the Variable" diff --git a/plugins/ordernumber_shoppergroups/language/en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.sys.ini b/plugins/ordernumber_shoppergroups/language/en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.sys.ini new file mode 100644 index 0000000000000000000000000000000000000000..65fe85dd2d1379045766ddebdc1a97864600fdfc --- /dev/null +++ b/plugins/ordernumber_shoppergroups/language/en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.sys.ini @@ -0,0 +1,19 @@ +; VM Ordernumber plugin: Provide variables derived from the shopper groups +; Copyright (C) 2014 Reinhold Kainhofer, Open Tools. 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 +VMORDERNUMBER_ORDERNUMBER_SHOPPERGROUPS="VM Ordernumbers - Shoppergroup-derived variables" +VMORDERNUMBER_ORDERNUMBER_SHOPPERGROUPS_DESC="This plugin provides variables for the Ordernumber plugin that are derived from the shopper's shopper group." + +PLG_ORDERNUMBER_SHOPPERGROUPS_FIELDSET="Configuration" + +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP1HEADER="<b>Shopper group 1</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP2HEADER="<b>Shopper group 2</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP3HEADER="<b>Shopper group 3</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP4HEADER="<b>Shopper group 4</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP5HEADER="<b>Shopper group 5</b>" +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP6HEADER="<b>Shopper group 6</b>" + +PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP="Shopper Group" +PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE="Format Variable Name" +PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE="Value of the Variable" diff --git a/plugins/ordernumber_shoppergroups/language/en-GB/index.html b/plugins/ordernumber_shoppergroups/language/en-GB/index.html new file mode 100644 index 0000000000000000000000000000000000000000..2efb97f319a35f6bd80f1751134ed71ec11888eb --- /dev/null +++ b/plugins/ordernumber_shoppergroups/language/en-GB/index.html @@ -0,0 +1 @@ +<!DOCTYPE html><title></title> diff --git a/plugins/ordernumber_shoppergroups/language/index.html b/plugins/ordernumber_shoppergroups/language/index.html new file mode 100644 index 0000000000000000000000000000000000000000..2efb97f319a35f6bd80f1751134ed71ec11888eb --- /dev/null +++ b/plugins/ordernumber_shoppergroups/language/index.html @@ -0,0 +1 @@ +<!DOCTYPE html><title></title> diff --git a/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.php b/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.php new file mode 100644 index 0000000000000000000000000000000000000000..a15ac939caa00a2c2004ec00d52b16d25407bb8e --- /dev/null +++ b/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.php @@ -0,0 +1,70 @@ +<?php + +defined ('_JEXEC') or die('Restricted access'); + +/** + * Plugin providing Custom variables for the VM Ordernumber plugin + * + * @subpackage Plugins - vm ordernumber + * @copyright Copyright (C) 2014 Reinhold Kainhofer, office@open-tools.net + * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php + * VirtueMart is free software. This version may have been modified pursuant + * to the GNU General Public License, and as distributed it includes or + * is derivative of works licensed under the GNU General Public License or + * other free or open source software licenses. + * See administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details. + * + * http://open-tools.net/ + * + */ +if (!class_exists('vmShopperPlugin')) + require(JPATH_VM_PLUGINS . DS . 'vmshopperplugin.php'); + +/** Extension plugin for the Odernumber plugin for VirtueMart + */ +class plgVmShopperOrderNumber_ShopperGroups extends VmShopperPlugin { + public function plgVmOnUpdateOrderBEShopper($_orderID) {} + + /** Trigger to add variables to be used in the number formats + * You can add new variables to the $cartvals array or modify existing ones. They will be directly + * available in all formats. This trigger will be called whenever the ordernumber plugin creates a + * number. All built-in variables are already set in the $reps variable, so you can even override + * the built-in variables by changing $reps accordingly. + * $nrtype is 0 for ordernumber, 1 for invoice number, 2 for customer number and 3 for order password + * $details contains the order details + */ + function onVmOrdernumberGetVariables(&$reps, $fmt, $nrtype, $details) { +// JFactory::getApplication()->enqueueMessage("<pre>Order Details: ".print_r($details,1)."</pre>", 'error'); +// JFactory::getApplication()->enqueueMessage("<pre>Plugin params: ".print_r($this->params,1)."</pre>", 'error'); + + $groups = array(); + $uid = isset($details->virtuemart_user_id)?$details->virtuemart_user_id:0; + if ($uid>0) { + $userModel = VmModel::getModel('user'); + $xrefTable = $userModel->getTable('vmuser_shoppergroups'); + $groups = $xrefTable->load($uid); + } + + foreach (range(1,6) as $i) { + $grp = $this->params->get('group'.(int)$i, 0); + $var = $this->params->get('variable'.(int)$i, null); + if (is_null($var)) continue; + $var = '['.strtolower($var).']'; + $val = $this->params->get('value'.(int)$i, null); + + $match = (($grp==0) || // Set default value + ($grp<0 && empty($groups)) || // NO group set, user does not have any groups + ($grp>0 && !empty($groups) && in_array($grp, $groups))); // Have a user with group -> check groups + if ($match) { + if (is_null($val)) + unset($reps[$var]); + else + $reps[$var] = $val; + } +// JFactory::getApplication()->enqueueMessage("<pre>group $i: grp=$grp, var=$var; val=$val, match=$match</pre>", 'error'); + } +// JFactory::getApplication()->enqueueMessage("<pre>Replacements: ".print_r($reps,1).", groups: ".print_r($groups,1)."</pre>", 'error'); + } +} + +// No closing tag diff --git a/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.script.php b/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.script.php new file mode 100644 index 0000000000000000000000000000000000000000..4cbd8b5793f0545f197da9f8218769b3e1a3ae2d --- /dev/null +++ b/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.script.php @@ -0,0 +1,88 @@ +<?php +defined('_JEXEC') or die('Restricted access'); + +/** + * Installation script for the plugin + * + * @copyright Copyright (C) 2014 Reinhold Kainhofer, office@open-tools.net + * @license GPL v3+, http://www.gnu.org/copyleft/gpl.html + */ + +// Adjust the class name. It has to be of the form: +// plgVmShopperOrderNumber_ShopperGroupsInstallerScript +class plgVmShopperOrderNumber_ShopperGroupsInstallerScript +{ + /** + * Constructor + * + * @param JAdapterInstance $adapter The object responsible for running this script + */ +// public function __constructor(JAdapterInstance $adapter); + + /** + * Called before any type of action + * + * @param string $route Which action is happening (install|uninstall|discover_install) + * @param JAdapterInstance $adapter The object responsible for running this script + * + * @return boolean True on success + */ +// public function preflight($route, JAdapterInstance $adapter); + + /** + * Called after any type of action + * + * @param string $route Which action is happening (install|uninstall|discover_install) + * @param JAdapterInstance $adapter The object responsible for running this script + * + * @return boolean True on success + */ +// public function postflight($route, JAdapterInstance $adapter); + + /** + * Called on installation + * + * @param JAdapterInstance $adapter The object responsible for running this script + * + * @return boolean True on success + */ + public function install(JAdapterInstance $adapter) + { + // enabling plugin upon installation + $db = JFactory::getDBO(); + $db->setQuery('update #__extensions set enabled = 1 where type = "plugin" and element = "ordernumber_shoppergroups" and folder = "vmshopper"'); + $db->query(); + + return True; + } + + /** + * Called on update + * + * @param JAdapterInstance $adapter The object responsible for running this script + * + * @return boolean True on success + */ +// public function update(JAdapterInstance $adapter) +// { +// jimport( 'joomla.filesystem.file' ); +// $file = JPATH_ROOT . DS . "administrator" . DS . "language" . DS . "en-GB" . DS . "en-GB.plg_vmshipmentrules_ordernumber_shoppergroups.sys.ini"; +// if (JFile::exists($file)) JFile::delete($file); +// $file = JPATH_ROOT . DS . "administrator" . DS . "language" . DS . "de-DE" . DS . "de-DE.plg_vmshipmentrules_ordernumber_shoppergroups.sys.ini"; +// if (JFile::exists($file)) JFile::delete($file); +// return true; +// } + + /** + * Called on uninstallation + * + * @param JAdapterInstance $adapter The object responsible for running this script + */ +// public function uninstall(JAdapterInstance $adapter) +// { +// // Remove plugin table +// $db =& JFactory::getDBO(); +// $db->setQuery('DROP TABLE IF EXISTS `#__virtuemart_vmshipmentrulesles_ordernumber_shoppergroups`;'); +// $db->query(); +// } +} diff --git a/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.xml b/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.xml new file mode 100644 index 0000000000000000000000000000000000000000..4646417d959cbb14fa978e0efd78d118516fe1fd --- /dev/null +++ b/plugins/ordernumber_shoppergroups/ordernumber_shoppergroups.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<extension version="2.5" type="plugin" group="vmshopper" method="upgrade"> + <name>VMORDERNUMBER_ORDERNUMBER_SHOPPERGROUPS</name> + <creationDate>2014-12-10</creationDate> + <author>Reinhold Kainhofer, Open Tools</author> + <authorUrl>http://www.open-tools.net</authorUrl> + <copyright>Copyright (C) 2014, Reinhold Kainhofer</copyright> + <license>GPL v3+</license> + <version>1.0</version> + <description>VMORDERNUMBER_ORDERNUMBER_SHOPPERGROUPS_DESC</description> + <files> + <filename plugin="ordernumber_shoppergroups">ordernumber_shoppergroups.php</filename> + <folder>language</folder> + <folder>fields</folder> + </files> + <languages folder="language"> + <language tag="en-GB">en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.ini</language> + <language tag="en-GB">en-GB/en-GB.plg_vmshopper_ordernumber_shoppergroups.sys.ini</language> + </languages> + <scriptfile>ordernumber_shoppergroups.script.php</scriptfile> + + <config> + <fields name="params" addfieldpath="/plugins/vmshopper/ordernumber_shoppergroups/fields"> + <fieldset name="config" label="PLG_ORDERNUMBER_SHOPPERGROUPS_FIELDSET"> + <field name="group1spacer" type="spacer" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP1HEADER" /> + <field name="group1" type="vmshoppergroup" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP" /> + <field name="variable1" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE" /> + <field name="value1" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE" /> + + <field name="group2spacer" type="spacer" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP2HEADER" /> + <field name="group2" type="vmshoppergroup" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP" /> + <field name="variable2" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE" /> + <field name="value2" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE" /> + + <field name="group3spacer" type="spacer" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP3HEADER" /> + <field name="group3" type="vmshoppergroup" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP" /> + <field name="variable3" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE" /> + <field name="value3" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE" /> + + <field name="group4spacer" type="spacer" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP4HEADER" /> + <field name="group4" type="vmshoppergroup" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP" /> + <field name="variable4" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE" /> + <field name="value4" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE" /> + + <field name="group5spacer" type="spacer" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP5HEADER" /> + <field name="group5" type="vmshoppergroup" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP" /> + <field name="variable5" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE" /> + <field name="value5" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE" /> + + <field name="group6spacer" type="spacer" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP6HEADER" /> + <field name="group6" type="vmshoppergroup" label="PLG_ORDERNUMBER_SHOPPERGROUPS_GROUP" /> + <field name="variable6" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VARIABLE" /> + <field name="value6" type="text" label="PLG_ORDERNUMBER_SHOPPERGROUPS_VALUE" /> + + </fieldset> + </fields> + </config> + +</extension>