primo commit
This commit is contained in:
@ -0,0 +1 @@
|
||||
<html><body bgcolor="#FFFFFF"></body></html>
|
||||
@ -0,0 +1,140 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Phoca Gallery
|
||||
* @author Jan Pavelka - https://www.phoca.cz
|
||||
* @copyright Copyright (C) Jan Pavelka https://www.phoca.cz
|
||||
* @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 and later
|
||||
* @cms Joomla
|
||||
* @copyright Copyright (C) Open Source Matters. All rights reserved.
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
|
||||
*/
|
||||
defined( '_JEXEC' ) or die( 'Restricted access' );
|
||||
use Joomla\CMS\Component\ComponentHelper;
|
||||
use Joomla\CMS\Factory;
|
||||
|
||||
class PhocaGalleryVirtueMart
|
||||
{
|
||||
public static function getVmLink($id, &$errorMsg) {
|
||||
|
||||
if (ComponentHelper::isEnabled('com_virtuemart', true)) {
|
||||
if ((int)$id < 1) {
|
||||
return "";
|
||||
}
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
|
||||
$db =Factory::getDBO();
|
||||
|
||||
$query = 'SELECT c.virtuemart_category_id AS catid, a.virtuemart_product_id AS id, a.published AS published, a.product_in_stock AS product_in_stock'
|
||||
.' FROM #__virtuemart_product_categories AS c'
|
||||
.' LEFT JOIN #__virtuemart_products AS a ON a.virtuemart_product_id = c.virtuemart_product_id'
|
||||
.' WHERE c.virtuemart_product_id = '.(int)$id;
|
||||
|
||||
$db->setQuery($query, 0, 1);
|
||||
$product = $db->loadObject();
|
||||
|
||||
|
||||
|
||||
$catPart = '';
|
||||
if (!empty($product->catid)) {
|
||||
$catPart = '&virtuemart_category_id='.$product->catid;
|
||||
}
|
||||
|
||||
$itemId = PhocaGalleryVirtueMart::_getVmItemid();
|
||||
|
||||
$link = 'index.php?option=com_virtuemart&view=productdetails'
|
||||
.'&virtuemart_product_id='.(int)$id
|
||||
.$catPart
|
||||
.'&itemId='.(int)$itemId;
|
||||
|
||||
|
||||
// Check PUBLISHED
|
||||
if (isset($product->published) && $product->published == 0) {
|
||||
$errorMsg = 'VirtueMart Product Not Published';
|
||||
return '';//don't display cart icon for unpublished product
|
||||
}
|
||||
|
||||
// Check Stock if check stock feature is enabled
|
||||
//$component = 'com_virtuemart';
|
||||
//$paramsC = JComponentHelper::getParams($component) ;
|
||||
if (is_file( JPATH_ADMINISTRATOR . '/components/com_virtuemart/helpers/config.php')) {
|
||||
require_once( JPATH_ADMINISTRATOR . '/components/com_virtuemart/helpers/config.php' );
|
||||
|
||||
VmConfig::loadConfig();
|
||||
if (VmConfig::get('check_stock',0) == 1) {
|
||||
// Check STOCK
|
||||
if (isset($product->product_in_stock) && $product->product_in_stock == 0) {
|
||||
$errorMsg = 'VirtueMart Product Not On Stock';
|
||||
return '';//don't display cart icon for non stock products
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$errorMsg = 'VirtueMart Config Not Found';
|
||||
return false;
|
||||
}
|
||||
return $link;
|
||||
}
|
||||
|
||||
|
||||
protected static function _getVmItemid() {
|
||||
|
||||
|
||||
|
||||
$db =Factory::getDBO();
|
||||
$query = 'SELECT a.id AS id, a.link as link'
|
||||
.' FROM #__menu AS a'
|
||||
.' WHERE a.link LIKE '.$db->Quote('%index.php?option=com_virtuemart%')
|
||||
.' AND published = 1';
|
||||
|
||||
$db->setQuery($query);
|
||||
$vmLinks = $db->loadObjectList();
|
||||
|
||||
|
||||
//$vmLinks[0]->link
|
||||
$itemId = 0;
|
||||
if (!empty($vmLinks)) {
|
||||
foreach($vmLinks as $k => $v) {
|
||||
if(isset($v->link) && $v->link == 'index.php?option=com_virtuemart&view=virtuemart') {
|
||||
//Found
|
||||
$itemId = $v->id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ($itemId < 1) {
|
||||
//Not found - try to find next possible itemid
|
||||
foreach($vmLinks as $k => $v) {
|
||||
if(isset($v->link) && $v->link == 'index.php?option=com_virtuemart&view=categories') {
|
||||
//Found
|
||||
$itemId = $v->id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($itemId < 1) {
|
||||
//Still Not found - try to find next possible itemid
|
||||
foreach($vmLinks as $k => $v) {
|
||||
if(isset($v->link) && strpos($v->link, 'index.php?option=com_virtuemart&view=category') !== false) {
|
||||
//Found
|
||||
$itemId = $v->id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($itemId < 1) {
|
||||
//Still Not found - try to find next possible itemid
|
||||
foreach($vmLinks as $k => $v) {
|
||||
if(isset($v->link) && strpos($v->link, 'index.php?option=com_virtuemart&view=productdetails') !== false) {
|
||||
//Found
|
||||
$itemId = $v->id;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $itemId;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user