From 67f937ca44b0c1a21371b14f7a042e2a3652d82e Mon Sep 17 00:00:00 2001 From: Reinhold Kainhofer <reinhold@kainhofer.com> Date: Fri, 1 Feb 2013 22:20:59 +0100 Subject: [PATCH] Version 0.9: Everything seems to be working, needs some more testing... --- downloads_for_sale.php | 146 ++++++---------------- downloads_for_sale/download_medium.png | Bin 0 -> 4573 bytes downloads_for_sale/download_small.png | Bin 0 -> 1535 bytes downloads_for_sale/tmpl/order_image.php | 6 +- downloads_for_sale/tmpl/order_text.php | 6 +- downloads_for_sale/tmpl/product_image.php | 9 +- downloads_for_sale/tmpl/product_text.php | 7 +- en-GB.plg_vmcustom_downloads_for_sale.ini | 2 +- 8 files changed, 51 insertions(+), 125 deletions(-) create mode 100644 downloads_for_sale/download_medium.png create mode 100644 downloads_for_sale/download_small.png diff --git a/downloads_for_sale.php b/downloads_for_sale.php index 0fd1b15..ddbdbec 100644 --- a/downloads_for_sale.php +++ b/downloads_for_sale.php @@ -21,6 +21,7 @@ if (!class_exists('vmCustomPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmcustompl if(!class_exists('VmTable'))require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'vmtable.php'); class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { + var $status_allowed = array ('S', 'C'); function __construct(& $subject, $config) { parent::__construct($subject, $config); @@ -44,10 +45,6 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { return $db->loadObject(); } - function hasBoughtItem ($uid, $customitem) { - - } - function checkDownloadable ($field, &$output) { $userId = (int) JFactory::getUser()->get('id'); if ($field->download_type == 'free_download') { @@ -58,18 +55,28 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { } return ($userId>0); } elseif ($field->download_type == 'paid_download') { -// if ($this->hasBoughtItem ($userId, $field-> - // TODO: check whether the logged-in user has bought the product or the correct ordernumber/password is given - $order_number = JRequest::getString('order_number', null);//JRequest::getString('username', null, 'GET', JREQUEST_ALLOWRAW); - + $order_number = JRequest::getString('order_number', null); $order_pass = JRequest::getString('order_pass', null); $orderModel = VmModel::getModel('orders'); $order_id = $orderModel->getOrderIdByOrderPass ($order_number, $order_pass); - if (!order_id) { + if ($order_id) { + $order = $orderModel->getOrder($order_id); + if ($order && in_array($order['details']['BT']->order_status, $this->status_allowed)) { + foreach ($order['items'] as $i) { + if ($i->virtuemart_product_id == $field->virtuemart_product_id) { + if (in_array($i->order_status, $this->status_allowed)) { + return $i->virtuemart_order_item_id; + } else { + JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_STATUS_NOT_AUTHORIZED'), 'error'); + } + } + } + } else { + JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_STATUS_NOT_AUTHORIZED'), 'error'); + } + } else { JFactory::getApplication()->enqueueMessage(JText::_('VMCUSTOM_DLSALE_ERROR_WRONG_PASSWD'), 'error'); - return false; } - return $order_id; } return false; } @@ -125,63 +132,13 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { return false; } -// print("<pre>checkDownloadable</pre>"); if ($this->checkDownloadable ($field, $render)) { -// print("<pre>checkDownloadable SUCCESS</pre>"); $this->downloadFile ($field->media_id, $render); -// } else { -// print("<pre>checkDownloadable FAILURE</pre>"); - - } - } -/* - $dlkey = JRequest::getString('dlkey', 0); - $dloid = JRequest::getInt('oid', 0); - if ( !$order =$this->getOrderData( $dlkey, $dloid ) ) { - vmInfo(JText::_('VMCUSTOM_SPIRAL_DOWNLOAD_NO_FILE_FOUND')); - return ; - } - $order_status = $order['order_status']; - $params = $this->getMediaParams($custom_id, $order['virtuemart_product_id']); - $status = $params->orderstatus; - if(empty($status)) - { - $paramStatus = array("C","S"); - } - else - { - $paramStatus = (array)$params->orderstatus; } - //if(empty($paramStatus)) - //vmDebug('plgVmOnSelfCallFE - params',$params); - - if (in_array($order_status,$paramStatus)) { - - $orderdata = new stdClass(); - $orderdata->virtuemart_order_id = $order['virtuemart_order_id']; - $orderdata->virtuemart_order_item_id = $dloid; - $orderdata->created_on = $order['created_on']; - //update downloads table - if ($this->checkDownloadTable($orderdata,$custom_id,$params)) - { - $orderModel = VmModel::getModel('orders'); - $orderdata->order_status = 'S'; - $orderModel->updateSingleItem($dloid,$orderdata); - return $this->startDownload($params->media_id, $output); - } - else - { - vmInfo(JText::_('VMCUSTOM_SPIRAL_DOWNLOAD_EXPIRED')); - } - - } else vmInfo(JText::_('VMCUSTOM_SPIRAL_DOWNLOAD_PAYMENT_NOT_CONFIRMED')); - - return; } -*/ /** - * plgVmOnSelfCallBE ... Called to execute some plugin action in the backend (e.g. set/reset dl counter etc. + * 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; @@ -216,7 +173,9 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { $link_types = array('none' => 'VMCUSTOM_DLSALE_LINK_NONE', 'text'=>'VMCUSTOM_DLSALE_LINK_TEXT', 'image'=>'VMCUSTOM_DLSALE_LINK_IMAGE'); $html .= VmHTML::row('select', 'VMCUSTOM_DLSALE_DOWNLOAD_FILE', 'custom_param['.$row.'][media_id]', $download_files, $field->media_id,'','virtuemart_media_id', 'file_title', false); - $html .= VmHTML::row ('select','VMCUSTOM_DLSALE_INVOICE_LINK', 'custom_param['.$row.'][invoice_link_type]',$link_types,$field->invoice_link_type, '', '', '', false); + if ($field->is_cart_attribute) { + $html .= VmHTML::row ('select','VMCUSTOM_DLSALE_INVOICE_LINK', 'custom_param['.$row.'][invoice_link_type]',$link_types,$field->invoice_link_type, '', '', '', false); + } $html .= VmHTML::row ('select','VMCUSTOM_DLSALE_PRODUCT_LINK', 'custom_param['.$row.'][product_link_type]',$link_types,$field->product_link_type, '', '', '', false); $html .= VmHTML::row('select', 'VMCUSTOM_DLSALE_TYPE', 'custom_param['.$row.'][download_type]', array('free_download'=>'VMCUSTOM_DLSALE_TYPE_FREE', 'registered_download'=>'VMCUSTOM_DLSALE_TYPE_REGISTERED', 'paid_download'=>'VMCUSTOM_DLSALE_TYPE_PAID'), @@ -233,21 +192,19 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { $url = JURI::root().'index.php?option=com_virtuemart&view=plugin&name=downloads_for_sale&customfield_id='.(int)$field->virtuemart_customfield_id; $_currentUser = JFactory::getUser(); $cuid = $_currentUser->get('id'); + $this->parseCustomParams($field); switch ($field->download_type) { case 'free_download': break; - case 'registered_download': break; + case 'registered_download': if ($cuid<=0) return false; break; case 'paid_download': if ($orderitem) { $order = $this->orderDataFromItem ($orderitem->virtuemart_order_item_id); } elseif ($cuid>0) { - $orderModel = VmModel::getModel('orders'); - $orderList = $orderModel->getOrdersList($cuid, true); - - foreach ($orderList as $ol) { + 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) { + if ($i->virtuemart_product_id == $field->virtuemart_product_id && in_array($i->order_status, $this->status_allowed)) { $order = $o['details']['BT']; } } @@ -256,12 +213,11 @@ class plgVmCustomDownloads_for_Sale extends vmCustomPlugin { if (empty($order)) { return false; } -print("<pre>order= ".print_r($order,true)."</pre>"); $url .= '&order_number='.urlencode($order->order_number).'&order_pass='.urlencode($order->order_pass); break; } $media = $this->getDownloadFile ($field->media_id); - return $this->renderByLayout($view.'_'.$type, array($field, $media, $url)); + return $this->renderByLayout($view.'_'.$type, array($url, $field, $media)); } /** @@ -288,15 +244,20 @@ print("<pre>order= ".print_r($order,true)."</pre>"); /** * plgVmOnDisplayProductFE ... Called for NON-product variant custom fields to display on the product details page */ - function plgVmOnDisplayProductFE( $product, &$idx,&$group){ + function plgVmOnDisplayProductFE( $product, &$idx,&$field){ // default return if it's not this plugin if ($field->custom_element != $this->_name) return ''; -$group->display .= "<h1>plgVmOnDisplayProductFE</h1>"; - $this->getCustomParams($field); + $this->parseCustomParams($field); $type = $field->product_link_type; if ($type != 'none') { - $group->display .= $this->createDownloadLink($field, "product", $type); - return true; + // The $field for non-cart-variant fields does NOT have the product_id set! + $field->virtuemart_product_id = $product->virtuemart_product_id; + $ret = $this->createDownloadLink($field, "product", $type); + if (!empty($ret)) { + $field->display .= $ret; + return true; + } else + return false; } else { return false; } @@ -324,43 +285,17 @@ $group->display .= "<h1>plgVmOnDisplayProductFE</h1>"; */ function plgVmDisplayInOrderFE($item, $row, &$html) { if (empty($item->productCustom->custom_element) or $item->productCustom->custom_element != $this->_name) return ''; + $this->parseCustomParams($item->productCustom); -// print("<pre>plgVmDisplayInOrderFE, item=".print_r($item,true)."</pre>"); $type = $item->productCustom->product_link_type; if ($type != 'none') { - $html .= $this->createDownloadLink($item->productCustom, "product", $type, $item); + $html .= $this->createDownloadLink($item->productCustom, "order", $type, $item); return true; } else { return false; } } - -/* - $_currentUser = JFactory::getUser(); - $cuid = $_currentUser->get('id'); - - $orderModel = VmModel::getModel('orders'); - $orderList = $orderModel->getOrdersList($cuid, true); - - foreach ($orderList as $o) { - $order = $orderModel->getOrder($o->virtuemart_order_id); - - foreach ($order['items'] as $i) { - if ($i->virtuemart_product_id == $field->virtuemart_product_id) { - $downloadInfo = $this->getDownloadInfo($order['details']['BT']->virtuemart_order_id, $i->virtuemart_order_item_id, $field->value, $order['details']['BT']->created_on, $field ); - if(!$downloadInfo->downloadsExpired) { - $url = JURI::root().'index.php?option=com_virtuemart&view=plugin&name=downloads_for_sale&custom_id='.$field->value . '&dlkey='.base64_encode($order['details']['BT']-> ).'&oid='.$i->virtuemart_order_item_id ; - $html .= JHTML::link ( $url, JTEXT::_('VMCUSTOM_DLSALE_LINK') , array ('title' => $media->title, 'class' => 'dlink' ) ); - } else { - $html .= '<p><strong>'.JText::_('VMCUSTOM_DLSALE_EXPIRED_INFO').'</strong></p>'; - } - } - - } - } -*/ - /** * We must reimplement this triggers for joomla 1.7 * vmplugin triggers note by Max Milbers @@ -391,8 +326,7 @@ $group->display .= "<h1>plgVmOnDisplayProductFE</h1>"; } function getTableSQLFields() { -/* - $SQLfields = array( +/* $SQLfields = array( 'id' => 'int(1) UNSIGNED NOT NULL AUTO_INCREMENT', 'virtuemart_customfield_id' => 'int(11) UNSIGNED NOT NULL DEFAULT 0', 'downloaded' => 'int(11) UNSIGNED NOT NULL DEFAULT 0', diff --git a/downloads_for_sale/download_medium.png b/downloads_for_sale/download_medium.png new file mode 100644 index 0000000000000000000000000000000000000000..7204fe9511a6ee4f72692288dcdbf2ff4483d1c0 GIT binary patch literal 4573 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 literal 0 HcmV?d00001 diff --git a/downloads_for_sale/download_small.png b/downloads_for_sale/download_small.png new file mode 100644 index 0000000000000000000000000000000000000000..102b11bb4ce22b1119bf9a6e22b3271bb5ae8388 GIT binary patch literal 1535 zcmeAS@N?(olHy`uVBq!ia0y~yU=RRd4mJh`2Kmqb6B!s7Sc;uILpV4%IBGajIv5xj zI14-?iy0WWg+Q3`(%rg03=9l1C9V-A!TD(=<%vb942~)JNvR5MnMJAP`9;~q3eLgC zGp@NYGcYiSg48(|r6!hS=I1GdWag$a80j0D>l;`o%vlw|z`!C1QV`+mW0jnrtCt8e zN3SBcfWgMTq98FjJGDe1DK$Ma&sIr6K|x6&GsRXZ+|<{=x4=0yBh#a*C^fjsFC@7t zJJ~Wt$=;63royTsw;(sQBvGLvHz%*ys=`(YY^GISu@y*IUr7P1q$Jx`3F7Do-v9;Y z{GwC^6Fo!SWCLRp1rswpBXc85b2A-<;KULIuf#kBBXb2K0|RpfBO@zALn{+Q1t?Im z<5EyiuqjGOvkG!?gW6e?l4h%vQBqQ1rLSLJUanVete0Puu5V~*X{m2uq;F)TTa=Qf zTU?n}l31aeSF8*%1ZIv)YH@N=W&t?3K;|YU<(HP&Dk*_1g4(J8wWuPo0B%uUF*NX! z^K<np5)1SV^$hgkCW8#GNGz}dM?`*6NPd2f9mM-6ab^S3iJ}N$s|{R#s!L)?s-2O6 zfrYMtk*=Y6h=Gxnv6+>LX%v!vh$1xYzWFJcX_ZLYjdhJoLJTdf3=FJHjG)?)6hXDy z=z{_RDPX{%4)PP4xB`feC%{sY;o((KT9gBhmXu`u)ST4Z)Vz{neM3D%)G$j)wo1z{ z%1tb>%gjwoPt`BTOSjQS2;y}g#MMDAZgyNY`rt$dN`Nq@!=sWW45-6sVm91RT3TW% z8<fJpz-aC1;uvDlyL7U(-(d%Vw*McK&mLy-YM<4{rd-IRHR}h*g=Y%uY8j#|nl1+v zGAb)dNo8?_a2g3zD>`qySE_S6NM-$&TQe{IxqmJry>q5vN@VjD2AN!eiJWYjrPEBi zZ>YRHHFup0!w%c@C-tYk<v#c{&+2m(qx}8@i$cEbdvQ97nMHFc!?9cS(+})n(mDC$ z#kFM&N(>5jPiJI(yc)Ur>(TPigMOc{&1OGzyTX;1K~T}7Q{OMk<KI%h`t4%(Z3WW= zukR{t(EI!);^?&bTHCfR|8qRuNdF@Dg$ak1k7cb(y2kkUYpd1#jlv5QZ|~bw|LGY| z4$B3B1-f|*TJ~8h%_Gjtd1Wb)8d>&sm!8e}W&tKAj*5BgX>C(BZ9Qx-X9m|Kl|)U| zu0;-!)1K*gn|k&=KCmr!^H%xeh8Hiq|HI$EbwR>ru_Ip?7#J8lUHx3vIVCg!053Mh AfdBvi literal 0 HcmV?d00001 diff --git a/downloads_for_sale/tmpl/order_image.php b/downloads_for_sale/tmpl/order_image.php index 3568bd9..caa3e6e 100644 --- a/downloads_for_sale/tmpl/order_image.php +++ b/downloads_for_sale/tmpl/order_image.php @@ -9,7 +9,5 @@ * **/ - defined('_JEXEC') or die(); - -?> -<h1>IMAGE LINK</h1> +defined('_JEXEC') or die(); +?><a href="<?php echo $viewData[0]; ?>"><img height="16" src="<?php echo JURI::root().'plugins/vmcustom/downloads_for_sale/downloads_for_sale/download_medium.png'; ?>" alt="Download"> <?php echo $viewData[2]->file_title; ?></a> diff --git a/downloads_for_sale/tmpl/order_text.php b/downloads_for_sale/tmpl/order_text.php index adb0260..3259a38 100644 --- a/downloads_for_sale/tmpl/order_text.php +++ b/downloads_for_sale/tmpl/order_text.php @@ -1,6 +1,5 @@ <?php /** - * * @author Reinhold Kainhofer * @package VirtueMart * @subpackage custom @@ -9,7 +8,6 @@ * **/ - defined('_JEXEC') or die(); +defined('_JEXEC') or die(); -?> -<h1>TEXT LINK</h1> +?>Download: <a href="<?php echo $viewData[0]; ?>"><?php echo $viewData[2]->file_title; ?></a> diff --git a/downloads_for_sale/tmpl/product_image.php b/downloads_for_sale/tmpl/product_image.php index aba5d2b..1de1c16 100644 --- a/downloads_for_sale/tmpl/product_image.php +++ b/downloads_for_sale/tmpl/product_image.php @@ -9,9 +9,8 @@ * **/ - defined('_JEXEC') or die(); - +defined('_JEXEC') or die(); ?> -<h1>IMAGE LINK</h1><pre> -<?php // print_r($viewData) ?></pre> -<a href="<?php echo $viewData[2]; ?>">Download</a> +<div class="download-for-sale-image"> +<a href="<?php echo $viewData[0]; ?>"><img style="vertical-align:middle; display: inline;" src="<?php echo JURI::root().'plugins/vmcustom/downloads_for_sale/downloads_for_sale/download_medium.png'; ?>" alt="<?php echo $viewData[2]->file_title; ?>"></a></div> +<br clear="all"/> diff --git a/downloads_for_sale/tmpl/product_text.php b/downloads_for_sale/tmpl/product_text.php index afca31f..0f2ec55 100644 --- a/downloads_for_sale/tmpl/product_text.php +++ b/downloads_for_sale/tmpl/product_text.php @@ -9,9 +9,6 @@ * **/ - defined('_JEXEC') or die(); - +defined('_JEXEC') or die(); ?> -<h1>TEXT LINK</h1> -<?php print_r($viewData) ?></pre> -<a href="<?php echo $viewData[2]; ?>">Download</a> +<p><img style="vertical-align:middle; display: inline;" src="<?php echo JURI::root().'plugins/vmcustom/downloads_for_sale/downloads_for_sale/download_small.png'; ?>" alt=""/> <a href="<?php echo $viewData[0]; ?>"><?php echo $viewData[2]->file_title; ?></a></p> diff --git a/en-GB.plg_vmcustom_downloads_for_sale.ini b/en-GB.plg_vmcustom_downloads_for_sale.ini index 7d6c6d9..01a7e00 100644 --- a/en-GB.plg_vmcustom_downloads_for_sale.ini +++ b/en-GB.plg_vmcustom_downloads_for_sale.ini @@ -30,4 +30,4 @@ VMCUSTOM_DLSALE_ERROR_LOAD_FAILURE="Unable to load custom field data." 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_WRONG_PASSWD="Invalid combination of order number and password." - +VMCUSTOM_DLSALE_ERROR_STATUS_NOT_AUTHORIZED="Order status does not allow download." -- GitLab