From 127a9de49715efc5b292d6aab05949e4180bdf33 Mon Sep 17 00:00:00 2001
From: Reinhold Kainhofer <reinhold@kainhofer.com>
Date: Sun, 3 Jan 2016 19:30:03 +0100
Subject: [PATCH] V1.8.1: Add check_access URL param to the download links to
 check for download access; Automatic updates through the Joomla updater

---
 Makefile                                      |   2 +-
 downloads_for_sale.php                        | 224 +++++++++++++++++-
 downloads_for_sale.xml                        |  17 +-
 fields/vmupdatecredentialscheck.php           | 161 +++++++++++++
 .../de-DE.plg_vmcustom_downloads_for_sale.ini |  15 ++
 .../en-GB.plg_vmcustom_downloads_for_sale.ini |  15 ++
 ...plg_vmcustom_downloads_for_sale_v1.8.1.zip | Bin 0 -> 46045 bytes
 7 files changed, 420 insertions(+), 14 deletions(-)
 create mode 100644 fields/vmupdatecredentialscheck.php
 create mode 100644 releases/plg_vmcustom_downloads_for_sale_v1.8.1.zip

diff --git a/Makefile b/Makefile
index 6bf7f44..6fe9424 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,6 @@
 BASE=downloads_for_sale
 PLUGINTYPE=vmcustom
-VERSION=1.8
+VERSION=1.8.1
 
 PLUGINFILES=$(BASE).php $(BASE).script.php $(BASE).xml index.html
 
diff --git a/downloads_for_sale.php b/downloads_for_sale.php
index c5313cd..cf68f01 100644
--- a/downloads_for_sale.php
+++ b/downloads_for_sale.php
@@ -252,6 +252,7 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 		$handled = false;
 		$field_id = vRequest::getInt('customfield_id',0);
 		$customModel = VmModel::getModel('customfields');
+			
 		if ($field_id) {
 
 			if (!defined('VM_VERSION') or VM_VERSION < 3) {
@@ -259,10 +260,19 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 			} else {
 				$field = $customModel->getCustomEmbeddedProductCustomField($field_id);
 			}
+			
 			if ($field) {
 				$orderitems = $this->getCustomfieldOrderitems ($field, JFactory::getUser()->get('id'), true);
 				$orderitem = empty($orderitems)?null:$orderitems[0];
-				if ($this->checkDownloadable ($field, $orderitem, true)) {
+				$downloadable = $this->checkDownloadable ($field, $orderitem, true);
+				if (vRequest::getInt('check_access', 0)==1) {
+					if ($downloadable) {
+						header("HTTP/1.1 200 ".JText::_('VMCUSTOM_DLSALE_ACCESS_CHECK_SUCCESS'));
+					} else {
+						header("HTTP/1.1 403 ".JText::_('VMCUSTOM_DLSALE_ACCESS_CHECK_ERROR'));
+					}
+					JExit();
+				} elseif ($downloadable) {
 					$handled = 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!)
@@ -276,6 +286,10 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 					JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_NOT_AUTHORIZED_UNKNOWN'), 'error');
 				}
 			} else {
+				if (vRequest::getInt('check_access', 0)==1) {
+					header("HTTP/1.1 403 ".JText::_('VMCUSTOM_DLSALE_ACCESS_CHECK_ERROR'));
+					JExit();
+				}
 				JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_LOAD_FAILURE'), 'error');
 			}
 		}
@@ -355,17 +369,6 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 		}
 	}
 
-	/**
-	 * plgVmOnSelfCallBE ... Called to execute some plugin action in the backend (e.g. set/reset dl counter, show statistics etc.)
-	 */
-/*	function plgVmOnSelfCallBE($type, $name, &$output) {
-		if ($name != $this->_name || $type != 'vmcustom') return false;
-		vmDebug('plgVmOnSelfCallBE');
-		
-		$db = JFactory::getDBO();
-		$nullDate = $db->getNullDate();
-	}*/
-
 
 	/**
 	 * @see Form displayed in the product edit page in the BE, configure the download file
@@ -667,6 +670,203 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
 		return $SQLfields;
 	}
 
+    /**
+     * plgVmOnSelfCallBE ... Called to execute some plugin action in the backend (e.g. set/reset dl counter, show statistics etc.)
+     */
+    function plgVmOnSelfCallBE($type, $name, &$output) {
+        if ($name != $this->_name || $type != $this->_type) return false;
+        vmDebug('plgVmOnSelfCallBE');
+        $user = JFactory::getUser();
+        $authorized = ($user->authorise('core.admin','com_virtuemart') or
+                       $user->authorise('core.manage','com_virtuemart'));
+        $json = array();
+        $json['authorized'] = $authorized;
+        if (!$authorized) return FALSE;
+
+        $action = vRequest::getCmd('action');
+        $json['action'] = $action;
+        $json['success'] = 0; // default: unsuccessfull
+        switch ($action) {
+			case "check_update_access":
+				$order_number = vRequest::getString('order_number');
+				$order_pass = vRequest::getString('order_pass');
+				$json = $this->checkUpdateAccess($order_number, $order_pass, $json);
+				break;
+        }
+        
+        // Also return all messages (in HTML format!):
+        // Since we are in a JSON document, we have to temporarily switch the type 
+        // to HTML to make sure the html renderer is actually used
+        $document = JFactory::getDocument ();
+        $previoustype = $document->getType();
+        $document->setType('html');
+        $msgrenderer = $document->loadRenderer('message');
+        $json['messages'] = $msgrenderer->render('Message');
+        $document->setType($previoustype);
+
+        // WORKAROUND for broken (i.e. duplicate) content-disposition headers in Joomla 2.x:
+        // We request everything in raw and here send the headers for JSON and return
+        // the raw output in json format
+        $document =JFactory::getDocument();
+        $document->setMimeEncoding('application/json');
+        JResponse::setHeader('Content-Disposition','attachment;filename="opentools_update_access.json"');
+        $output = json_encode($json);
+    }
+    
+    protected function checkUpdateAccess($order_number, $order_pass, $json = array()) {
+		// First, extract the update server URL from the manifest, then load 
+		// the update XML from the update server, extract the download URL, 
+		// append the order number and password and check whether access is 
+		// possible.
+		$json['success'] = FALSE;
+		$xml = simplexml_load_file($this->_xmlFile);
+		if (!$xml || !isset($xml->updateservers)) {
+			JFactory::getApplication()->enqueueMessage(JText::sprintf('OPENTOOLS_XMLMANIFEST_ERROR', $this->_xmlFile), 'error');
+			return $json;
+		}
+		$updateservers = $xml->updateservers;
+		foreach ($updateservers->children() as $server) {
+			if ($server->getName()!='server') {
+				JFactory::getApplication()->enqueueMessage(JText::sprintf('OPENTOOLS_XMLMANIFEST_ERROR', $this->_xmlFile), 'error');
+				continue;
+			}
+			$updateurl = html_entity_decode((string)$server);
+			$updatescript = simplexml_load_file($updateurl);
+			if (!$updatescript) {
+				JFactory::getApplication()->enqueueMessage(JText::sprintf('OPENTOOLS_UPDATESCRIPT_ERROR', $updateurl), 'error');
+				continue;
+			}
+			$urls = $updatescript->xpath('/updates/update/downloads/downloadurl');
+			while (list( , $node) = each($urls)) {
+				$downloadurl = (string)($node);
+				if ($order_number) {
+					$downloadurl .= (parse_url($downloadurl, PHP_URL_QUERY) ? '&' : '?') . 'order_number=' . urlencode($order_number);
+				}
+				if ($order_pass) {
+					$downloadurl .= (parse_url($downloadurl, PHP_URL_QUERY) ? '&' : '?') . 'order_pass=' . urlencode($order_pass);
+				}
+				$downloadurl .= (parse_url($downloadurl, PHP_URL_QUERY) ? '&' : '?') . 'check_access=1';
+
+				$headers = get_headers($downloadurl);
+				list($version, $status_code, $msg) = explode(' ',$headers[0], 3);
+				
+				// Check the HTTP Status code
+				switch($status_code) {
+					case 200:
+						$json['success'] = TRUE;
+						JFactory::getApplication()->enqueueMessage($msg, 'message');
+						$this->setupUpdateCredentials($order_number, $order_pass);
+						break;
+					default:
+						JFactory::getApplication()->enqueueMessage($msg, 'error');
+						// Clear the credentials...
+						$this->setupUpdateCredentials("", "");
+						break;
+				}
+				$this->setAndSaveParams(array(
+					'update_credentials_checked'=>$json['success'],
+					'order_number' => $order_number,
+					'order_pass' => $order_pass,
+				));
+			}
+		}
+		return $json;
+    }
+
+    protected function setAndSaveParams($params) {
+		$db = JFactory::getDbo();
+		$query = $db->getQuery(true)
+			->select('extension_id')
+			->from('#__extensions')
+			->where('folder = '.$db->quote($this->_type))
+			->where('element = '.$db->quote($this->_name))
+			->where('type =' . $db->quote('plugin'))
+			->order('ordering');
+
+		$plugin = $db->setQuery($query)->loadObject();
+		if (!$plugin)
+			return;
+		$pluginId=$plugin->extension_id;
+		
+		foreach ($params as $param=>$parvalue) {
+			$this->params->set($param, $parvalue);
+		}
+		
+		$extensions = JTable::getInstance('extension');
+		$extensions->load($pluginId);
+		$extensions->bind(array('params' => $this->params->toString()));
+		
+		// check and store 
+		if (!$extensions->check()) {
+			$this->setError($extensions->getError());
+			return false;
+		}
+		if (!$extensions->store()) {
+			$this->setError($extensions->getError());
+			return false;
+		}
+    }
+
+
+	protected function setupUpdateCredentials($ordernumber, $orderpass) {
+		$db = JFactory::getDbo();
+		$query = $db->getQuery(true)
+			->select('extension_id AS id')
+			->from('#__extensions')
+			->where('folder = '.$db->quote($this->_type))
+			->where('element = '.$db->quote($this->_name))
+			->where('type =' . $db->quote('plugin'))
+			->order('ordering');
+
+		$plugin = $db->setQuery($query)->loadObject();
+		if (empty($plugin))
+			return;
+
+		$ordernumber = preg_replace("/[^-A-Za-z0-9_]/", '', $ordernumber);
+		$orderpass = preg_replace("/[^-A-Za-z0-9_]/", '', $orderpass);
+		
+		$extra_query = array();
+		if ($ordernumber!='') {
+			$extra_query[] = 'order_number='.preg_replace("/[^-A-Za-z0-9_]/", '', $ordernumber);
+		}
+		if ($orderpass!='') {
+			$extra_query[] = 'order_pass='.preg_replace("/[^-A-Za-z0-9_]/", '', $orderpass);
+		}
+		$extra_query = implode('&amp;', $extra_query);
+		
+		// The following code is based on Nicholas K. Dionysopoulos' Joomla Pull request:
+		//     https://github.com/joomla/joomla-cms/pull/2508
+		
+		// Load the update site record, if it exists
+		$db = JFactory::getDbo();
+		$query = $db->getQuery(true)
+			->select('update_site_id AS id')
+			->from($db->qn('#__update_sites_extensions'))
+			->where($db->qn('extension_id').' = '.$db->q($plugin->id));
+		$db->setQuery($query);
+		$updateSites = $db->loadObjectList();
+
+		foreach ($updateSites as $updateSite) {
+			// Update the update site record
+			$query = $db->getQuery(true)
+				->update($db->qn('#__update_sites'))
+				->set('extra_query = '.$db->q($extra_query))
+				->set('last_check_timestamp = 0')
+				->where($db->qn('update_site_id').' = '.$db->q($updateSite->id));
+			$db->setQuery($query);
+			$db->execute();
+
+			// Delete any existing updates (essentially flushes the updates cache for this update site)
+			$query = $db->getQuery(true)
+				->delete($db->qn('#__updates'))
+				->where($db->qn('update_site_id').' = '.$db->q($updateSite->id));
+			$db->setQuery($query);
+			$db->execute();
+		}
+		
+	}
+
+
 }
 
 // No closing tag
\ No newline at end of file
diff --git a/downloads_for_sale.xml b/downloads_for_sale.xml
index 35418b1..467f0cb 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.8</version>
+    <version>1.8.1</version>
     <description>VMCUSTOM_DLSALE_DESC</description>
     <files>
         <filename plugin="downloads_for_sale">downloads_for_sale.php</filename>
@@ -72,4 +72,19 @@
         <param name="paid_status" type="vmorderstates" scope="com_virtuemart" default="C, S" multiple="multiple" label="VMCUSTOM_DLSALE_STATUS_PAID" description="VMCUSTOM_DLSALE_STATUS_PAID_EXPLAIN" />
         <param name="downloaded_status" type="vmdlorderstate" scope="com_virtuemart" default="" label="VMCUSTOM_DLSALE_STATUS_DOWNLOADED" description="VMCUSTOM_DLSALE_STATUS_DOWNLOADED_EXPLAIN" />
     </params>
+	
+    <config>
+        <fields name="params">
+            <fieldset name="update_credentials" label="OPENTOOLS_FIELDSET_CREDENTIALS" addfieldpath="/plugins/vmcustom/downloads_for_sale/fields">
+                <field name="credentials_desc" type="spacer" label="OPENTOOLS_CREDENTIALS_DESC" />
+                <field name="order_number" type="text" default="" label="OPENTOOLS_ORDERNUMBER" description="OPENTOOLS_ORDERNUMBER_DESC"/>
+                <field name="order_pass" type="text" default="" label="OPENTOOLS_ORDERPASS" description="OPENTOOLS_ORDERPASS_DESC"/>
+				<field name="update_credentials_checked" type="vmUpdateCredentialsCheck" label="" ajaxurl="index.php?option=com_virtuemart&amp;view=plugin&amp;type=vmcustom&amp;name=downloads_for_sale&amp;format=raw" />
+            </fieldset>
+		</fields>
+    </config>
+	<updateservers>
+		<server type="extension" name="VM Downloads for Sale Updates"><![CDATA[http://open-tools.net/UpdateServer/index.php?package=Joomla&amp;extension=DownloadsForSale&amp;file=extension.xml]]></server>
+	</updateservers>
+
 </extension>
diff --git a/fields/vmupdatecredentialscheck.php b/fields/vmupdatecredentialscheck.php
new file mode 100644
index 0000000..d08397b
--- /dev/null
+++ b/fields/vmupdatecredentialscheck.php
@@ -0,0 +1,161 @@
+<?php
+defined('_JEXEC') or die();
+/**
+ *
+ * @package    VirtueMart
+ * @subpackage Plugins  - Fields
+ * @author Reinhold Kainhofer, Open Tools
+ * @link http://www.open-tools.net
+ * @copyright Copyright (c) 2016 Reinhold Kainhofer. All rights reserved.
+ * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.txt
+ * 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.
+ */
+ 
+defined('DS') or define('DS', DIRECTORY_SEPARATOR);
+if (!class_exists( 'VmConfig' )) 
+    require(JPATH_ROOT.DS.'administrator'.DS.'components'.DS.'com_virtuemart'.DS.'helpers'.DS.'config.php');
+VmConfig::loadConfig();
+
+class JFormFieldVmUpdateCredentialsCheck extends JFormField {
+    var $_name = 'vmUpdateCredentialsCheck';
+    
+	// VM2 on J2 works, VM3 on J3 works out of the box, but
+	// VM3 on J2 does NOT work by simply calling vmJsApi::jQuery, because
+	// the JS is never added to the page header, so we have to add this manually
+	public function loadjQuery() {
+		vmJsApi::jQuery();
+		// TODO: jquery::ui available only in J3:
+		if (version_compare(JVERSION, '3.0', 'lt')) {
+		} else {
+			JHtml::_('jquery.ui', array('core', 'sortable'));
+		}
+		// If we are on Joomla 2.5 and VM 3, manually add the script declarations 
+		// cached in vmJsApi to the document header:
+		if (version_compare(JVERSION, '3.0', 'lt') && defined('VM_VERSION') && VM_VERSION>=3) {
+			$document = JFactory::getDocument();
+			$scripts = vmJsApi::getJScripts();
+			foreach ($scripts as $name => $jsToAdd) {
+				if($jsToAdd['written']) continue;
+				$file = $jsToAdd['script'] ? $jsToAdd['script'] : $name;
+				
+				if(strpos($file,'/')!==0){
+					$file = vmJsApi::setPath($file,false,'');
+				} else if(strpos($file,'//')!==0){
+					$file = JURI::root(true).$file;
+				}
+
+				$ver = '';
+				if(!empty($jsToAdd['ver'])) $ver = '?vmver='.$jsToAdd['ver'];
+				$document->addScript( $file .$ver,"text/javascript",$jsToAdd['defer'],$jsToAdd['async'] );
+				vmJsApi::removeJScript($name);
+			}
+		}
+	}
+    
+    protected function getJavaScript() {
+		return "
+var credentials_ajaxurl = \"".$this->element["ajaxurl"]."\";
+var credentials_updateMessages = function(messages, area) {
+    jQuery( \"#system-message-container #system-message .\"+area+\"-message\").remove();
+    var newmessages = jQuery( messages ).find(\"div.alert, .message\").addClass(area+\"-message\");
+    if (!jQuery( \"#system-message-container #system-message\").length && newmessages.length) {
+        if (jQuery(newmessages).first().prop(\"tagName\")==\"dt\") { // Joomla 2.x:
+            jQuery( \"#system-message-container\" ).append( \"<dl id=\'system-message\'></div>\" );
+        } else {
+            jQuery( \"#system-message-container\" ).append( \"<div id=\'system-message\'></div>\" );
+        }
+    }
+    newmessages.appendTo( \"#system-message-container #system-message\");
+};
+
+var checkUpdateCredentialsError = function() {
+	alert (\"".JText::_('OPENTOOLS_CHECK_CREDENTIALS_ERROR')."\"); 
+}
+
+var checkUpdateCredentials = function () {
+	var ordernumber = jQuery('#jform_params_order_number').val();
+	var orderpass = jQuery('#jform_params_order_pass').val();
+	
+    var ajaxargs = {
+        type: \"POST\",
+		dataType: \"text\",
+        url: credentials_ajaxurl,
+        data: { 
+			action: \"check_update_access\",
+			order_number: ordernumber, 
+			order_pass: orderpass
+		},
+		
+		success: function ( json ) {
+			try {
+				json = jQuery.parseJSON(json);
+				credentials_updateMessages(json['messages'], 'ordernumber');
+			} catch (e) {
+				checkUpdateCredentialsError();
+				return;
+			}
+			var success=0;
+			if (json.success>0) {
+				success=1;
+			}
+			jQuery('#update_credentials_hidden_checked').val(success);
+			jQuery('.credentials_checked')
+				.removeClass('credentials_checked_0')
+				.removeClass('credentials_checked_1')
+				.addClass('credentials_checked_'+success);
+		},
+		error: function() { checkUpdateCredentialsError(); },
+		complete: function() {  },
+	};
+	jQuery.ajax(ajaxargs);
+};
+jQuery(document).ready (function () {
+	jQuery('#jform_params_order_number').focusout(checkUpdateCredentials);
+	jQuery('#jform_params_order_pass').focusout(checkUpdateCredentials);
+});
+
+";
+    }
+    
+    protected function getCSS() {
+		return "
+div.credentials_checked {
+	padding: 10px 5px;
+    float: left;
+    clear: left;
+    display: block;
+    width: 100%;
+}
+div.credentials_checked_0 {
+	background-color: #FFD0D0;
+}
+div.credentials_checked_1 {
+	background-color: #D0FFD0;
+}
+a#credentials_check {
+}
+
+";
+    }
+	protected function getInput() {
+		// Tell the user that automatic updates are not available in Joomla 2.5:
+		if (version_compare(JVERSION, '3.0', 'lt')) {
+			JFactory::getApplication()->enqueueMessage(JText::_('OPENTOOLS_COMMERCIAL_UPDATES_J25'), 'warning');
+		}
+
+		$this->loadjQuery();
+		
+		$doc = JFactory::getDocument();
+		$doc->addScriptDeclaration($this->getJavaScript());
+		$doc->addStyleDeclaration($this->getCSS());
+		
+		if ($this->value!=1) {
+			$this->value=0;
+		}
+// 		if ($this->value==1) {
+		return "<input type='hidden' id=\"update_credentials_hidden_checked\" name='".$this->name."' value='".$this->value."' /><div class='credentials_checked credentials_checked_".$this->value."'><a href=\"#\" class=\"btn btn-info credentials_check\" id=\"credentials_check\" onclick=\"checkUpdateCredentials()\" >".JText::_('OPENTOOLS_CHECK_CREDENTIALS')."</a></div>";
+	}
+}
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 8f4416b..993819b 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
@@ -52,3 +52,18 @@ VMCUSTOM_DLSALE_MIMETYPE="MIME-Typ"
 VMCUSTOM_DLSALE_FILESIZE="Dateigröße"
 VMCUSTOM_DLSALE_FILESIZE_BYTES="Bytes"
 
+
+VMCUSTOM_DLSALE_ACCESS_CHECK_SUCCESS="Download-Zugang möglich."
+VMCUSTOM_DLSALE_ACCESS_CHECK_ERROR="Download nicht möglich. Bitte überprüfen Sie Ihre Zugangsdaten."
+
+OPENTOOLS_FIELDSET_CREDENTIALS="Automatische Aktualisierung"
+OPENTOOLS_CREDENTIALS_DESC="Bitte geben Sie hier die Bestellungsnummer und -passwort ein, die Sie in der Bestellbestätigung (per Mail) von <a href="https://www.open-tools.net/">open-tools.net</a> erhalten haben. Wird keine gültige Kombination eingegeben, ist die Funktionalität der Erweiterung in keiner Weise eingeschränkt, jedoch stehen keine automatischen Aktualisierungen zur Verfügung."
+OPENTOOLS_ORDERNUMBER="Bestellungsnummer:"
+OPENTOOLS_ORDERNUMBER_DESC="Bitte geben Sie hier die Bestellungsnummer Ihres Kaufs der Erweiterung auf open-tools.net an. Wenn keine gültige Kombination aus Bestellungsnummer und -passwort angegeben wird, funktioniert die Erweiterung dennoch, jedoch sind keine automatischen Aktualisierungen möglich."
+OPENTOOLS_ORDERPASS="Bestellungspassword:"
+OPENTOOLS_ORDERPASS_DESC="Bitte geben Sie hier das Bestellungspasswort Ihres Kaufs der Erweiterung auf open-tools.net an. Wenn keine gültige Kombination aus Bestellungsnummer und -passwort angegeben wird, funktioniert die Erweiterung dennoch, jedoch sind keine automatischen Aktualisierungen möglich."
+OPENTOOLS_CHECK_CREDENTIALS="Zugangsdaten überprüfen und speichern"
+OPENTOOLS_CHECK_CREDENTIALS_ERROR="Konnte Zugangsdaten nicht überprüfen. Bitte stellen Sie sicher, dass die Erweiterung in Joomla freigegeben ist!"
+OPENTOOLS_XMLMANIFEST_ERROR="Konnte die XML-Manifest-Datei der Erweiterung nicht laden (%s)"
+OPENTOOLS_UPDATESCRIPT_ERROR="Konnte die Aktualisierungsinformationen nicht laden (%s)"
+OPENTOOLS_COMMERCIAL_UPDATES_J25="Automatische Aktualisierungen von kommerziellen Erweiterungen sind in Joomla 2.5 leider nicht möglich (erste ab Joomla 3.x). Bitte informieren Sie sich auf der Homepage des Entwicklers über mögliche Aktualisierungen und installieren Sie diese manuell."
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 960ae15..1faf68e 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
@@ -53,3 +53,18 @@ VMCUSTOM_DLSALE_MIMETYPE="MIME-Type"
 VMCUSTOM_DLSALE_FILESIZE="File size"
 VMCUSTOM_DLSALE_FILESIZE_BYTES="Bytes"
 
+
+VMCUSTOM_DLSALE_ACCESS_CHECK_SUCCESS="Access granted."
+VMCUSTOM_DLSALE_ACCESS_CHECK_ERROR="Download not possible. Please check your access credentials."
+
+OPENTOOLS_FIELDSET_CREDENTIALS="Update credentials"
+OPENTOOLS_CREDENTIALS_DESC="Please enter your order number and the order password, which can be found in the order confirmation mail you received after your purchase at <a href="https://www.open-tools.net/">open-tools.net</a>. If you do not enter a valid combination, the plugin will continue to work, but automatic updates will only be provided with a valid order number and password."
+OPENTOOLS_ORDERNUMBER="Order number:"
+OPENTOOLS_ORDERNUMBER_DESC="Please enter the order number of your purchase at open-tools.net to get access to automatic updates. If no valid order number and password is entered, the plugin will still work, but automatic updates will not be available."
+OPENTOOLS_ORDERPASS="Order password:"
+OPENTOOLS_ORDERPASS_DESC="Please enter the order password of your purchase at open-tools.net to get access to automatic updates. If no valid order number and password is entered, the plugin will still work, but automatic updates will not be available."
+OPENTOOLS_CHECK_CREDENTIALS="Check and save update credentials"
+OPENTOOLS_CHECK_CREDENTIALS_ERROR="Unable to check the download credentials. Please make sure that the plugin is enabled in your Joomla installation!"
+OPENTOOLS_XMLMANIFEST_ERROR="Unable to load the plugin manifest file (%s)"
+OPENTOOLS_UPDATESCRIPT_ERROR="Unable to load the update information from the update server (%s)"
+OPENTOOLS_COMMERCIAL_UPDATES_J25="Automatic updates of commercial Joomla extensions are not available in Joomla 2.5 (only in Joomla 3.x). Please check the software developer's homepage and manually install updates."
diff --git a/releases/plg_vmcustom_downloads_for_sale_v1.8.1.zip b/releases/plg_vmcustom_downloads_for_sale_v1.8.1.zip
new file mode 100644
index 0000000000000000000000000000000000000000..5a2d2d3dd04a31217b339e9754560ac168ed055b
GIT binary patch
literal 46045
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
bjYDGOVOG$oy$rGpvJ3~g85r1BfI<iWb5p87

literal 0
HcmV?d00001

-- 
GitLab