From 6ec2c348bcc73737f4083b4d0a95787d39156453 Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Wed, 24 Apr 2013 19:05:27 +0200
Subject: [PATCH] Version 1.4: Make status for download configurable; also set
 to shipped after download

---
 Makefile                                      |   3 +-
 downloads_for_sale.php                        |  50 +++++++++++------
 downloads_for_sale.xml                        |   6 +-
 elements/index.html                           |   0
 elements/vmorderstates.php                    |  53 ++++++++++++++++++
 .../de-DE.plg_vmcustom_downloads_for_sale.ini |   5 ++
 .../en-GB.plg_vmcustom_downloads_for_sale.ini |   5 ++
 .../plg_vmcustom_downloads_for_sale_v1.4.zip  | Bin 0 -> 24719 bytes
 8 files changed, 104 insertions(+), 18 deletions(-)
 create mode 100644 elements/index.html
 create mode 100644 elements/vmorderstates.php
 create mode 100644 releases/plg_vmcustom_downloads_for_sale_v1.4.zip

diff --git a/Makefile b/Makefile
index be10e51..e56e84c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,11 +1,12 @@
 BASE=downloads_for_sale
 PLUGINTYPE=vmcustom
-VERSION=1.3.1
+VERSION=1.4
 
 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html
 
 TRANSLATIONS=$(call wildcard,language/*/*.plg_$(PLUGINTYPE)_$(BASE).*ini) 
 INDEXFILES=$(BASE)/index.html language/index.html $(call wildcard,language/*/index.html)
+ELEMENTS=$(call wildcard,elements/*.php) elements/index.html
 TMPLFILES=$(call wildcard,$(BASE)/tmpl/*.php) $(BASE)/index.html $(BASE)/tmpl/index.html
 ASSETS=$(call wildcard,$(BASE)/assets/*.png) $(call wildcard,$(BASE)/assets/*.css) $(BASE)/assets/index.html
 ZIPFILE=plg_$(PLUGINTYPE)_$(BASE)_v$(VERSION).zip
diff --git a/downloads_for_sale.php b/downloads_for_sale.php
index 592f526..362ab00 100644
--- a/downloads_for_sale.php
+++ b/downloads_for_sale.php
@@ -27,7 +27,6 @@ if (JVM_VERSION === 2) {
 }
 
 class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
-	var $status_allowed = array ('S', 'C');
 
 	function __construct(& $subject, $config) {
 		parent::__construct($subject, $config);
@@ -38,6 +37,8 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 			'invoice_link_type'=>array('text', 'char'),
 			'product_link_type'=>array('image','char'),
 			'download_type'=>array('free_download','char'),
+			'paid_status'=>array(array('S', 'C'), 'array'),
+			'downloaded_status'=>array('S', 'char'),
 		);
 		$this->setConfigParameterable('custom_params',$varsToPush);
 		$this->onStoreInstallPluginTable($this->_psType);
@@ -94,10 +95,10 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 		}
 		$orderitems = array();
 		foreach ($orders as $order) {
-			if ($order && in_array($order['details']['BT']->order_status, $this->status_allowed)) {
+			if ($order && in_array($order['details']['BT']->order_status, $field->paid_status)) {
 				foreach ($order['items'] as $i) {
 					if ($i->virtuemart_product_id == $prodid) {
-						if (in_array($i->order_status, $this->status_allowed)) {
+						if (in_array($i->order_status, $field->paid_status)) {
 							$orderitems[] = $i;
 						} elseif ($show_warnings) {
 							JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_STATUS_NOT_AUTHORIZED'), 'error');
@@ -121,7 +122,7 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 			return ($userId>0);
 		}
 		// In all other cases, check that the orderitem has the correct state
-		if ($orderitem && in_array($orderitem->order_status, $this->status_allowed)) {
+		if ($orderitem && in_array($orderitem->order_status, $field->paid_status)) {
 			return true;
 		}
 		return false;
@@ -153,16 +154,18 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 			}
 			header("Content-Type: " . $media->file_mimetype);
 			header("Content-Disposition: attachment; filename=\"".JFile::getName($media->file_url)."\"");
-			if (!@readfile($media->file_url)) {
+			if (@readfile($media->file_url)) {
+				return true;
+			} else { 
 				header_remove("Content-Type");
 				header_remove("Content-Disposition");
 				JFactory::getApplication()->enqueueMessage(JText::sprintf('VMCUSTOM_DLSALE_ERROR_NO_FILE_SET', $media_id, $media->file_url), 'error');
 				return false;
 			}
-			JExit();
 		} else {
 			$output = JText::_('VMCUSTOM_DLSALE_NO_FILE_FOUND');
 		}
+		return false;
 	}
 
 
@@ -192,6 +195,20 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 		}
 
 	}
+	
+	function updateOrderStatus ($field, $orderitem) {
+		if (!$orderitem) return;
+		$orderModel = VmModel::getModel('orders');
+		
+		# Update the whole order:
+		$order = $this->orderDataFromItem ($orderitem->virtuemart_order_item_id);
+		$orderdata['order_status'] = $field->downloaded_status;
+		$orderdata['customer_notified'] = 0;
+		$orderdata['comments'] = '';
+		if ($order->order_status != $orderdata['order_status']) {
+			$orderModel->updateStatusForOneOrder($order->virtuemart_order_id, $orderdata, /*triggers=*/false);
+		}
+	}
 
 	function plgVmOnSelfCallFE($type,$name,&$render) {
 		if ($name != $this->_name || $type != 'vmcustom') return false;
@@ -206,11 +223,15 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 			$orderitem = empty($orderitems)?null:$orderitems[0];
 			if ($field) {
 				if ($this->checkDownloadable ($field, $orderitem, true)) {
-					// TODO: Update download counter in the mysql table
-					$this->updateDownloadCounterSQL ($field, $orderitem);
 					$handled = true;
-					$this->downloadFile ($field->media_id, $render);
-					return true;
+					if ($this->downloadFile ($field->media_id, $render)) {
+						// Successful download, so set order status to shipped, then exit to prevent the normal joomla page formatting (we sent a potentially binary file already!)
+						$this->updateDownloadCounterSQL ($field, $orderitem);
+						$this->updateOrderStatus ($field, $orderitem);
+						JExit();
+					} else {
+						return true;
+					}
 				} else {
 // 					JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_NOT_AUTHORIZED_UNKNOWN'), 'error');
 				}
@@ -259,10 +280,6 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 			
 			$orderdownloads = array();
 			foreach ($orders as $order) {
-				if (!in_array($order['details']['BT']->order_status, $this->status_allowed)) {
-					// Order status does not allow a download in any case, so skip this order
-					continue;
-				}
 				$orderinfo = $order;
 				$orderinfo['download_products']=array();
 				foreach ($order['items'] as $i) {
@@ -270,7 +287,8 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 					$productinfo->downloads = array();
 					$customs = (array)$customModel->getproductCustomslist ($i->virtuemart_product_id);
 					foreach ($customs as $field) {
-						if (($field->custom_element == $this->_name) && ($this->checkDownloadable ($field, $i, false))) {
+						// Order needs to be downloadable and the individiaul field, too:
+						if (($field->custom_element == $this->_name) && in_array($order['details']['BT']->order_status, $field->paid_status) && ($this->checkDownloadable ($field, $i, false))) {
 							$productinfo->downloads[] = $this->createDownloadLink ($field, 'order', $field->invoice_link_type, $i);
 						}
 					}
@@ -362,7 +380,7 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 					foreach ($orderModel->getOrdersList($cuid, true) as $ol) {
 						$o = $orderModel->getOrder($ol->virtuemart_order_id);
 						foreach ($o['items'] as $i) {
-							if ($i->virtuemart_product_id == $field->virtuemart_product_id && in_array($i->order_status, $this->status_allowed)) {
+							if ($i->virtuemart_product_id == $field->virtuemart_product_id && in_array($i->order_status, $field->paid_status)) {
 								$order = $o['details']['BT'];
 							}
 						}
diff --git a/downloads_for_sale.xml b/downloads_for_sale.xml
index 6e0ff45..3ad3cce 100644
--- a/downloads_for_sale.xml
+++ b/downloads_for_sale.xml
@@ -6,7 +6,7 @@
     <authorUrl>http://www.open-tools.net/</authorUrl>
     <copyright>Copyright (C) 2013 Reinhold Kainhofer. All rights reserved.</copyright>
     <license>http://www.gnu.org/licenses/gpl.html GNU/GPL v3+</license>
-    <version>1.3.1</version>
+    <version>1.4</version>
     <description>VMCUSTOM_DLSALE_DESC</description>
     <files>
         <filename plugin="downloads_for_sale">downloads_for_sale.php</filename>
@@ -14,6 +14,7 @@
         <folder>downloads_for_sale</folder>
         <folder>language</folder>
         <filename>index.html</filename>
+	<folder>elements</folder>
     </files>
     <languages folder="language">
         <language tag="en-GB">en-GB/en-GB.plg_vmcustom_downloads_for_sale.ini</language>
@@ -22,6 +23,7 @@
         <language tag="de-DE">de-DE/de-DE.plg_vmcustom_downloads_for_sale.sys.ini</language>
     </languages>
     <scriptfile>downloads_for_sale.script.php</scriptfile>
+    <params addpath="/plugins/vmcustom/downloads_for_sale/elements" />
     <params addpath="/administrator/components/com_virtuemart/elements">
         <param type="vmjpluginwarning" />
         <param name="invoice_link_type" type="list" default="link" label="VMCUSTOM_DLSALE_INVOICE_LINK" description="VMCUSTOM_DLSALE_INVOICE_LINK_DESC" >
@@ -39,5 +41,7 @@
             <option value="registered_download">VMCUSTOM_DLSALE_TYPE_REGISTERED</option>
             <option value="paid_download">VMCUSTOM_DLSALE_TYPE_PAID</option>
         </param>
+        <param name="paid_status" type="vmorderstates" scope="com_virtuemart" default="C" label="VMCUSTOM_DLSALE_STATUS_PAID" description="VMCUSTOM_DLSALE_STATUS_PAID_EXPLAIN" />
+        <param name="downloaded_status" type="vmorderstate" scope="com_virtuemart" default="S" label="VMCUSTOM_DLSALE_STATUS_DOWNLOADED" description="VMCUSTOM_DLSALE_STATUS_DOWNLOADED_EXPLAIN" />
     </params>
 </install>
diff --git a/elements/index.html b/elements/index.html
new file mode 100644
index 0000000..e69de29
diff --git a/elements/vmorderstates.php b/elements/vmorderstates.php
new file mode 100644
index 0000000..c55b18f
--- /dev/null
+++ b/elements/vmorderstates.php
@@ -0,0 +1,53 @@
+<?php
+defined ('_JEXEC') or die();
+/**
+ *
+ * @package    VirtueMart
+ * @subpackage Plugins  - Elements
+ * @author Valérie Isaksen
+ * @link http://www.virtuemart.net
+ * @copyright Copyright (c) 2004 - 2011 VirtueMart Team. All rights reserved.
+ * @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:$
+ */
+/*
+ * This class is used by VirtueMart Payment or Shipment Plugins
+ * which uses JParameter
+ * So It should be an extension of JElement
+ * Those plugins cannot be configured througth the Plugin Manager anyway.
+ */
+
+class JElementVmOrderStates extends JElement {
+
+	/**
+	 * Element name
+	 *
+	 * @access    protected
+	 * @var        string
+	 */
+	var $_name = 'OrderStates';
+
+	function fetchElement ($name, $value, &$node, $control_name) {
+
+		$db = JFactory::getDBO ();
+
+		$query = 'SELECT `order_status_code` AS value, `order_status_name` AS text
+                 FROM `#__virtuemart_orderstates`
+                 WHERE `virtuemart_vendor_id` = 1
+                 ORDER BY `ordering` ASC ';
+
+		$db->setQuery ($query);
+		$fields = $db->loadObjectList ();
+		$class = 'class="inputbox" multiple="multiple" size="6" ';
+		foreach ($fields as $field) {
+			$field->text= JText::_ ($field->text);
+		}
+
+		return JHTML::_ ('select.genericlist', $fields, $control_name . '[' . $name . '][]', $class, 'value', 'text', $value, $control_name . $name);
+	}
+
+}
diff --git a/language/de-DE/de-DE.plg_vmcustom_downloads_for_sale.ini b/language/de-DE/de-DE.plg_vmcustom_downloads_for_sale.ini
index baf0cfb..e01397c 100644
--- a/language/de-DE/de-DE.plg_vmcustom_downloads_for_sale.ini
+++ b/language/de-DE/de-DE.plg_vmcustom_downloads_for_sale.ini
@@ -21,6 +21,11 @@ VMCUSTOM_DLSALE_TYPE_FREE="Kostenloser Download"
 VMCUSTOM_DLSALE_TYPE_REGISTERED="Download nur nach Registrierung"
 VMCUSTOM_DLSALE_TYPE_PAID="Bezahlter Download"
 
+VMCUSTOM_DLSALE_STATUS_PAID="Status um bezahlte Download verfügbar zu machen"
+VMCUSTOM_DLSALE_STATUS_PAID_EXPLAIN="Wählen sie die Liste der Statuswerte aus, wann bezahlte Downloads zur Verfügung gestellt werden."
+VMCUSTOM_DLSALE_STATUS_DOWNLOADED="Status nach Download"
+VMCUSTOM_DLSALE_STATUS_DOWNLOADED_EXPLAIN="Nach einem bezahlten Download wird der Status der Bestellung auf diesen Wert gesetzt."
+
 VMCUSTOM_DLSALE_NO_FILES="Keine Mediendatein für den Download oder Verkauf gefunden."
 VMCUSTOM_DLSALE_DOWNLOAD_FILE="Datei zum Download"
 VMCUSTOM_DLSALE_ERROR_NOT_AUTHORIZED="Nicht zum Download authorisiert. Bitte loggen Sie sich als entsprechender Benutzer ein."
diff --git a/language/en-GB/en-GB.plg_vmcustom_downloads_for_sale.ini b/language/en-GB/en-GB.plg_vmcustom_downloads_for_sale.ini
index b4019df..0e9210a 100644
--- a/language/en-GB/en-GB.plg_vmcustom_downloads_for_sale.ini
+++ b/language/en-GB/en-GB.plg_vmcustom_downloads_for_sale.ini
@@ -21,6 +21,11 @@ VMCUSTOM_DLSALE_TYPE_FREE="Free download"
 VMCUSTOM_DLSALE_TYPE_REGISTERED="Download after registration"
 VMCUSTOM_DLSALE_TYPE_PAID="Paid download"
 
+VMCUSTOM_DLSALE_STATUS_PAID="Status to enable paid download"
+VMCUSTOM_DLSALE_STATUS_PAID_EXPLAIN="Select the statuses for paid downloads that allow the buyer to download the file."
+VMCUSTOM_DLSALE_STATUS_DOWNLOADED="Status after download"
+VMCUSTOM_DLSALE_STATUS_DOWNLOADED_EXPLAIN="After a file was downloaded through this plugin, the order status will be set to this value, indication a download was initiated by the user."
+
 VMCUSTOM_DLSALE_NO_FILES="No media files found for download or sale."
 VMCUSTOM_DLSALE_DOWNLOAD_FILE="Download file"
 VMCUSTOM_DLSALE_ERROR_NOT_AUTHORIZED="Not authorized to download. Please log in."
diff --git a/releases/plg_vmcustom_downloads_for_sale_v1.4.zip b/releases/plg_vmcustom_downloads_for_sale_v1.4.zip
new file mode 100644
index 0000000000000000000000000000000000000000..ea44736fe22bf1a71bb51c9152fce3a8cc75933d
GIT binary patch
literal 24719
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

literal 0
HcmV?d00001

-- 
GitLab