Skip to content
Snippets Groups Projects
Commit 048f92f1 authored by Reinhold Kainhofer's avatar Reinhold Kainhofer
Browse files

Version 1.0:a Initial release, added a "My Downloads" page to list all...

Version 1.0:a Initial release, added a "My Downloads"  page to list all available downloads for a user
parent 825cc4f5
No related branches found
No related tags found
No related merge requests found
...@@ -11,4 +11,8 @@ div.downloads-for-sale tr, div.downloads-for-sale td { ...@@ -11,4 +11,8 @@ div.downloads-for-sale tr, div.downloads-for-sale td {
.vm-customfield-mod .downloads-for-sale img, .vm-customfield-cart .downloads-for-sale img { .vm-customfield-mod .downloads-for-sale img, .vm-customfield-cart .downloads-for-sale img {
width: inherit; width: inherit;
} }
\ No newline at end of file
.downloads-for-sale-page p, .downloads-for-sale-page table {
margin-left: 50px;
}
...@@ -119,19 +119,79 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { ...@@ -119,19 +119,79 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin {
function plgVmOnSelfCallFE($type,$name,&$render) { function plgVmOnSelfCallFE($type,$name,&$render) {
if ($name != $this->_name || $type != 'vmcustom') return false; if ($name != $this->_name || $type != 'vmcustom') return false;
$handled = false;
$field_id = JRequest::getInt('customfield_id',0); $field_id = JRequest::getInt('customfield_id',0);
if (!$field_id) { if ($field_id) {
JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_CUSTOMFIELDID'), 'error'); $field = $this->loadCustomfieldData ($field_id);
return false; if ($field) {
} if ($this->checkDownloadable ($field, $render)) {
$field = $this->loadCustomfieldData ($field_id); $handled = true;
if (!$field) { $this->downloadFile ($field->media_id, $render);
JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_LOAD_FAILURE'), 'error'); return true;
return false; } else {
JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_NOT_AUTHORIZED_UNKNOWN'), 'error');
}
} else {
JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_LOAD_FAILURE'), 'error');
}
} }
if (!$handled) {
if ($this->checkDownloadable ($field, $render)) { // If we have an order number and password, display all downloads of that order, even if the user is not logged in:
$this->downloadFile ($field->media_id, $render); $field_id = JRequest::getInt('customfield_id',0);
$order_number = JRequest::getString('order_number', null);
$order_pass = JRequest::getString('order_pass', null);
$orders = array();
if ($order_number || $order_pass) {
$orderModel = VmModel::getModel('orders');
$order_id = $orderModel->getOrderIdByOrderPass ($order_number, $order_pass);
if ($order_id) {
$orders[] = $orderModel->getOrder($order_id);
}
if (empty($orders)) {
JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_WRONG_PASSWD'), 'error');
}
} else {
$_currentUser = JFactory::getUser();
$cuid = $_currentUser->get('id');
if ($cuid>0) {
$orderModel = VmModel::getModel('orders');
$os = $orderModel->getOrdersList($cuid, true);
foreach ($os as $o) {
$orders[] = $orderModel->getOrder($o->virtuemart_order_id);
}
}
}
$customModel = VmModel::getModel('customfields');
$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) {
$productinfo=$i;
$productinfo->downloads = array();
$customs = (array)$customModel->getproductCustomslist ($i->virtuemart_product_id);
foreach ($customs as $field) {
if ($field->custom_element == $this->_name) {
$productinfo->downloads[] = $this->createDownloadLink ($field, 'order', $field->invoice_link_type, $i);
}
}
if (!empty($productinfo->downloads)) {
$orderinfo['download_products'][] = $productinfo;
}
}
if (!empty($orderinfo['download_products'])) {
$orderdownloads[] = $orderinfo;
}
}
print $this->renderByLayout('downloads', array($orderdownloads));
return true;
} }
} }
......
<?php
/**
*
* @author Reinhold Kainhofer
* @package VirtueMart
* @subpackage custom
* @copyright Copyright (C) 2013 RK - All rights reserved.
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
*
**/
defined('_JEXEC') or die();
if(JFile::exists(JPATH_SITE.DS.'plugins'.DS.'vmcustom'.DS.'downloads_for_sale'.DS.'assets'.DS.'downloads_for_sale.css')) {
$doc =& JFactory::getDocument();
$doc->addStyleSheet(JURI::root().'plugins/vmcustom/downloads_for_sale/assets/downloads_for_sale.css');
}
?>
<div class="downloads-for-sale-page">
<h1><?php echo JText::_('VMCUSTOM_DLSALE_DLPAGE_TITLE') ?></h1>
<p>
<form action="<?php echo JRoute::_( 'index.php', 1); ?>" method="post" >
<div class="width30 floatleft" id="com-form-order-number">
<label for="order_number"><?php echo JText::_('COM_VIRTUEMART_ORDER_NUMBER') ?></label><br />
<input type="text" id="order_number" name="order_number" class="inputbox" size="18" alt="order_number" />
</div>
<div class="width30 floatleft" id="com-form-order-pass">
<label for="order_pass"><?php echo JText::_('COM_VIRTUEMART_ORDER_PASS') ?></label><br />
<input type="text" id="order_pass" name="order_pass" class="inputbox" size="18" alt="order_pass" value="p_"/>
</div>
<div class="width30 floatleft" id="com-form-order-submit">
<input type="submit" name="Submitbuton" class="button" value="<?php echo JText::_('VMCUSTOM_DLSALE_DLPAGE_BUTTON_VIEW') ?>" />
</div>
<div class="clr"></div>
<input type="hidden" name="option" value="com_virtuemart" />
<input type="hidden" name="view" value="plugin" />
<input type="hidden" name="name" value="downloads_for_sale" />
<input type="hidden" name="return" value="" />
</form>
</p>
<?php if (empty($viewData[0])) { ?>
<h2><?php echo JText::_('VMCUSTOM_DLSALE_DLPAGE_NO_DOWNLOADS'); ?></h2>
<?php } else { ?>
<h2><?php echo JText::_('VMCUSTOM_DLSALE_DLPAGE_DOWNLOADS'); ?></h2>
<?php foreach ($viewData[0] as $order) { ?>
<?php foreach ($order['download_products'] as $product) { ?>
<h3><?php echo JText::sprintf('VMCUSTOM_DLSALE_DLPAGE_ORDERPRODUCT', $order['details']['BT']->order_number, $product->order_item_name, $product->order_item_sku ) ?></h3>
<p><?php echo join("<br/>", $product->downloads); ?> </p>
<?php
}
}
}
?>
</div>
...@@ -30,8 +30,16 @@ VMCUSTOM_DLSALE_ERROR_NO_FILE_SET="Media file is not available." ...@@ -30,8 +30,16 @@ VMCUSTOM_DLSALE_ERROR_NO_FILE_SET="Media file is not available."
VMCUSTOM_DLSALE_ERROR_ORDER_NOT_FOUND="Unable to find order data in database." VMCUSTOM_DLSALE_ERROR_ORDER_NOT_FOUND="Unable to find order data in database."
VMCUSTOM_DLSALE_ERROR_WRONG_PASSWD="Invalid combination of order number and password." VMCUSTOM_DLSALE_ERROR_WRONG_PASSWD="Invalid combination of order number and password."
VMCUSTOM_DLSALE_ERROR_STATUS_NOT_AUTHORIZED="Order status does not allow download." VMCUSTOM_DLSALE_ERROR_STATUS_NOT_AUTHORIZED="Order status does not allow download."
VMCUSTOM_DLSALE_ERROR_NOT_AUTHORIZED_UNKNOWN="Not authorized to download."
VMCUSTOM_DLSALE_DLPAGE_TITLE="Downloads for Sale"
VMCUSTOM_DLSALE_DLPAGE_BUTTON_VIEW="See Downloads"
VMCUSTOM_DLSALE_DLPAGE_NO_DOWNLOADS="No Downloads Available"
VMCUSTOM_DLSALE_DLPAGE_DOWNLOADS="Available Downloads"
VMCUSTOM_DLSALE_DLPAGE_ORDERPRODUCT="Order number %s: %s (%s)"
VMCUSTOM_DLSALE_FILENAME="Filename" VMCUSTOM_DLSALE_FILENAME="Filename"
VMCUSTOM_DLSALE_MIMETYPE="MIME-Type" VMCUSTOM_DLSALE_MIMETYPE="MIME-Type"
VMCUSTOM_DLSALE_FILESIZE="File size" VMCUSTOM_DLSALE_FILESIZE="File size"
VMCUSTOM_DLSALE_FILESIZE_BYTES="Bytes" VMCUSTOM_DLSALE_FILESIZE_BYTES="Bytes"
images/downloads_for_sale_-_downloadaread_loggedin.png

107 KiB

images/downloads_for_sale_-_downloadaread_loggedout.png

71.4 KiB

images/downloads_for_sale_-_downloadaread_menuitem.png

58.8 KiB

No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment