我一直在寻找这个像现在到处都是;)
我想在弹出窗口中添加产品图像,但我不知道如何实现这一点!我已经搜索了几个小时和几个小时,然后试图自己编码这个,但它不会工作。
所以现在我在寻求帮助…如果有人对此有什么想法,请告诉我。我想网上有更多的人希望看到一个"添加到购物车"的弹出框,上面给出一些更多的信息。
sincerely Thomas
我最近在一个网站上定制了添加购物车的弹出框。你需要编辑的文件是components/com_virtuemart/controllers/cart.php(如果我没记错的话,这个函数叫做addJS)。
你可以在这里找到VirtueMart的API文档:http://docs.virtuemart.net/api-vm2/但是我写了我自己的插件来获取VM数据。然后,您就可以使用标准PHP,而不必去了解VM API。
如果你决定这样做,你可以从你的插件中调用自定义类,输出像这样的图像:
$cart_image = plgMyCoolPlugin::_getImage($this->product->virtuemart_product_id);
echo '<img src='.$cart_image.'/>';
记住,如果你不把它设置为系统插件,你需要导入你的插件类型:
JPluginHelper::importPlugin( 'mynewplugintype' );
下面是我在插件中使用的函数:
function _getImage($id)
{
$db =& JFactory::getDBO();
$sql = " SELECT
b.`file_url`
FROM
".$db->nameQuote('#__virtuemart_product_medias')." AS a
INNER JOIN
".$db->nameQuote('#__virtuemart_medias')." AS b ON a.`virtuemart_media_id` = b.`virtuemart_media_id`
WHERE
a.".$db->nameQuote('virtuemart_product_id')." = ".$id."
AND
b.".$db->nameQuote('file_mimetype')." = 'image/jpeg'
AND
b.".$db->nameQuote('file_type')." = 'product'
AND
b.".$db->nameQuote('file_is_forSale')." = '0'";
$query = $db->setQuery($sql);
$row = $db->loadResultArray();
if($db->getErrorNum()) {
JError::raiseError( 500, $db->stderr());
}
if(empty($row)) $row[] = JURI::base().'images/defaultimage.jpg';
return $row;
}
希望这对你有帮助