From 8f5c6c4329faedd38a50dd55f0b15574d186e1eb Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Thu, 16 Oct 2014 20:28:46 +0200
Subject: [PATCH] V1.4: Update to latest VM2.9.9 API

---
 Makefile                                      |   2 +-
 acymailing_subscribe_buyer.php                |  41 ++++++++----------
 acymailing_subscribe_buyer.xml                |   4 +-
 ...custom_acymailing_subscribe_buyer_v1.4.zip | Bin 0 -> 11756 bytes
 4 files changed, 22 insertions(+), 25 deletions(-)
 create mode 100644 releases/plg_vmcustom_acymailing_subscribe_buyer_v1.4.zip

diff --git a/Makefile b/Makefile
index 824740a..86f96ac 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 BASE=acymailing_subscribe_buyer
 PLUGINTYPE=vmcustom
-VERSION=1.3
+VERSION=1.4
 
 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html
 
diff --git a/acymailing_subscribe_buyer.php b/acymailing_subscribe_buyer.php
index 5711a0d..f87cf12 100644
--- a/acymailing_subscribe_buyer.php
+++ b/acymailing_subscribe_buyer.php
@@ -16,7 +16,7 @@ defined('_JEXEC') or 	die( 'Direct Access to ' . basename( __FILE__ ) . ' is not
  */
 if (!class_exists('vmCustomPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmcustomplugin.php');
 if(!include_once(rtrim(JPATH_ADMINISTRATOR,DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR.'components'.DIRECTORY_SEPARATOR.'com_acymailing'.DIRECTORY_SEPARATOR.'helpers'.DIRECTORY_SEPARATOR.'helper.php')){
-	// For some reason, J3.3 does not load the language file otherwice
+	// For some reason, J3.3 does not load the language file otherwise
 	$language = JFactory::getLanguage();
 	$language->load('plg_vmcustom_acymailing_subscribe_buyer');
 	JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_ACYBUYER_ACYMAILING_NEEDED'), 'error');
@@ -34,7 +34,11 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 			'allow_subscribe_default'=>array(0, 'int'),
 			'lists'=>array(array(), 'array'),
 		);
-		$this->setConfigParameterable((VM_VERSION<3)?'custom_params':'customfield_params',$varsToPush);
+		if(!defined('VM_VERSION') or VM_VERSION < 3){
+			$this->setConfigParameterable ('custom_params', $varsToPush);
+		} else {
+			$this->setConfigParameterable ('customfield_params', $varsToPush);
+		}
 	}
 	function plgVmOnSelfCallFE($type,$name,&$render) {
 		if ($name != $this->_name || $type != 'vmcustom') return false;
@@ -103,9 +107,13 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 	 */
 	function plgVmOnProductEdit($field, $product_id, &$row,&$retValue) {
 		if ($field->custom_element != $this->_name) return '';
-		$this->parseCustomParams($field);
+		if(!defined('VM_VERSION') or VM_VERSION < 3){
+			$this->parseCustomParams ($field); // Not needed in VM3!
+			$paramName = 'custom_param';
+		} else {
+			$paramName = 'customfield_params';
+		}
 
-// 		JFactory::getApplication()->enqueueMessage("plgVmCustomAcyMailing_subscribe_Buyer::plgVmOnProductEdit: field=<pre>".print_r($field, 1)."</pre>", 'error');
 		$html = '';
 		$html .='<fieldset>
 			<legend>'. JText::_('VMCUSTOM_ACYBUYER') .'</legend>
@@ -123,14 +131,14 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 		
 		$lists = $this->getAcyMailinglists();
 		if ($lists) {
-			$html .= VmHTML::row ('select','VMCUSTOM_ACYBUYER_LIST', ((VM_VERSION<3)?'custom_param':'customfield_params').'['.$row.'][lists][]', $lists, $field->lists, ' multiple', 'listid', 'name', '');
+			$html .= VmHTML::row ('select','VMCUSTOM_ACYBUYER_LIST', $paramName.'['.$row.'][lists][]', $lists, $field->lists, ' multiple', 'listid', 'name', '');
 			
-			$html .= VmHTML::row('select', 'VMCUSTOM_ACYBUYER_AUTO_SUBSCRIBE', ((VM_VERSION<3)?'custom_param':'customfield_params').'['.$row.'][subscribe_buyers]', 
+			$html .= VmHTML::row('select', 'VMCUSTOM_ACYBUYER_AUTO_SUBSCRIBE', $paramName.'['.$row.'][subscribe_buyers]', 
 				array_merge(
 					array(array('id'=>'-1', 'name'=>JText::sprintf('VMCUSTOM_ACYBUYER_AUTO_DEFAULT', JText::_($autosubscribe_modes[$field->subscribe_buyers_default]['name'])))),
 					$autosubscribe_modes),
 				$field->subscribe_buyers,'','id', 'name', false);
-			$html .= VmHTML::row('select', 'VMCUSTOM_ACYBUYER_ALLOW_SUBSCRIBE', ((VM_VERSION<3)?'custom_param':'customfield_params').'['.$row.'][allow_subscribe]', 
+			$html .= VmHTML::row('select', 'VMCUSTOM_ACYBUYER_ALLOW_SUBSCRIBE', $paramName.'['.$row.'][allow_subscribe]', 
 				array_merge(
 					array(array('id'=>'-1', 'name'=>JText::sprintf('VMCUSTOM_ACYBUYER_ALLOW_DEFAULT', JText::_($subscribe_modes[$field->allow_subscribe_default]['name'])))),
 					$subscribe_modes),
@@ -162,7 +170,6 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 	
 	function displayProduct($field) {
 		$html = '';
-		$this->parseCustomParams($field);
 		$user = JFactory::getUser();
 		$uid = $user->get('id');
 		$allow = ($field->allow_subscribe>=0)?($field->allow_subscribe):($field->allow_subscribe_default);
@@ -201,19 +208,14 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 	/**
 	 * plgVmOnDisplayProductVariantFE ... Called for product variant custom fields to display on the product details page
 	 */
+	// Legacy triggers for VM2:
 	function plgVmOnDisplayProductVariantFE($field,&$row,&$group) {
-		// default return if it's not this plugin
-		if ($field->custom_element != $this->_name) return '';
-		$group->display .= $this->displayProduct($field);
-		return true;
+		return plgVmOnDisplayProductFE($field, $row, $group);
 	}
-
-	/**
-	 * plgVmOnDisplayProductFE ... Called for NON-product variant custom fields to display on the product details page
-	 */
 	function plgVmOnDisplayProductFE( $product, &$idx,&$field){
 		// default return if it's not this plugin
 		if ($field->custom_element != $this->_name) return '';
+		$this->parseCustomParams($field); // <- not needed in VM3 any more, so do it here
 		$field->display .= $this->displayProduct($field);
 		return true;
 	}
@@ -227,11 +229,6 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 	}
 
 
-	/**
-	 * We must reimplement this triggers for joomla 1.7
-	 * vmplugin triggers note by Max Milbers
-	 */
-	// TODO: Really required or deprecated?
 	public function plgVmOnStoreInstallPluginTable($psType, $name) {
 		return $this->onStoreInstallPluginTable($psType, $name);
 	}
@@ -274,13 +271,11 @@ class plgVmCustomAcyMailing_subscribe_Buyer extends vmCustomPlugin {
 		}
 		$customModel = VmModel::getModel('customfields');
 		foreach ($order['items'] as $item) {
-// 			JFactory::getApplication()->enqueueMessage("plgVmConfirmedOrder, checking item: <pre>".print_r($item,1)."</pre>", 'error');
 			if (VM_VERSION<3) {
 				$customs = $customModel->getproductCustomslist ($item->virtuemart_product_id);
 			} else {
 				$customs = $customModel->getCustomEmbeddedProductCustomFields (array($item->virtuemart_product_id));
 			}
-// 			JFactory::getApplication()->enqueueMessage("plgVmConfirmedOrder, CUSTOMS: <pre>".print_r($customs,1)."</pre>", 'error');
 			foreach ($customs as $field) {
 				if ($field->custom_element != $this->_name) continue;
 				$subscribe = ($field->subscribe_buyers>=0)?($field->subscribe_buyers):($field->subscribe_buyers_default);
diff --git a/acymailing_subscribe_buyer.xml b/acymailing_subscribe_buyer.xml
index 5312e3b..bee6d66 100644
--- a/acymailing_subscribe_buyer.xml
+++ b/acymailing_subscribe_buyer.xml
@@ -6,7 +6,7 @@
     <authorUrl>http://www.open-tools.net/</authorUrl>
     <copyright>Copyright (C) 2013-2014 Reinhold Kainhofer. All rights reserved.</copyright>
     <license>http://www.gnu.org/licenses/gpl.html GNU/GPL v3+</license>
-    <version>1.3.0</version>
+    <version>1.4</version>
     <description>VMCUSTOM_ACYBUYER_DESC</description>
     <files>
         <filename plugin="acymailing_subscribe_buyer">acymailing_subscribe_buyer.php</filename>
@@ -24,6 +24,7 @@
     <scriptfile>acymailing_subscribe_buyer.script.php</scriptfile>
     <vmconfig>
         <fields name="params">
+          <fieldset>
             <field name="subscribe_buyers_default" type="radio" scope="com_virtuemart" default="1" label="VMCUSTOM_ACYBUYER_AUTO_SUBSCRIBE" description="VMCUSTOM_ACYBUYER_AUTO_SUBSCRIBE_DESC" >
                 <option value="0">COM_VIRTUEMART_NO</option>
                 <option value="1">COM_VIRTUEMART_YES</option>
@@ -33,6 +34,7 @@
                 <option value="1">VMCUSTOM_ACYBUYER_ALLOW_REGISTERED</option>
                 <option value="2">VMCUSTOM_ACYBUYER_ALLOW_ANONYMOUS</option>
             </field>
+          </fieldset>
         </fields>
     </vmconfig>
     
diff --git a/releases/plg_vmcustom_acymailing_subscribe_buyer_v1.4.zip b/releases/plg_vmcustom_acymailing_subscribe_buyer_v1.4.zip
new file mode 100644
index 0000000000000000000000000000000000000000..d40e0f9c73fd74321d2ef13f03b2397b94a656c2
GIT binary patch
literal 11756
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

literal 0
HcmV?d00001

-- 
GitLab