News:

You may pay someone to create your store, or you visit our seminar and become a professional yourself with the silver certification

Main Menu

mod_virtuemart_product - Layout (Product Name / Image / Price)

Started by Leviathan, December 30, 2014, 16:38:40 PM

Previous topic - Next topic

Leviathan

Hi Guys,

J3.3.6 with VM 3.0.2

I need some help with the PHP for mod_virtuemart_product, im using it as a single column with 5 products, currently the layout is "Image / Product Name / Price". I need to change this to "Product Name / Image / Price"

I think the file to edit is "/modules/mod_virtuemart_product/tmpl/default.php"

The current unedited code in the default.php file:
<?php // no direct access
defined ('_JEXEC') or die('Restricted access');
// add javascript for price and cart, need even for quantity buttons, so we need it almost anywhere
vmJsApi::jPrice();


$col 1;
$pwidth ' width' floor (100 $products_per_row);
if (
$products_per_row 1) {
$float "floatleft";
} else {
$float "center";
}
?>

<div class="vmgroup<?php echo $params->get ('moduleclass_sfx'?>">

<?php if ($headerText) { ?>
<div class="vmheader"><?php echo $headerText ?></div>
<?php
}
if ($display_style == "div") {
?>

<div class="vmproduct<?php echo $params->get ('moduleclass_sfx'); ?> productdetails">
<?php foreach ($products as $product) { ?>
<div class="<?php echo $pwidth ?> <?php echo $float ?>">
<div class="spacer">
<?php
if (!empty($product->images[0])) {
$image $product->images[0]->displayMediaThumb ('class="featuredProductImage" border="0"'FALSE);
} else {
$image '';
}
echo JHTML::('link'JRoute::('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' $product->virtuemart_product_id '&virtuemart_category_id=' $product->virtuemart_category_id), $image, array('title' => $product->product_name));
echo '<div class="clear"></div>';
$url JRoute::('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' $product->virtuemart_product_id '&virtuemart_category_id=' .
$product->virtuemart_category_id); ?>

<a href="<?php echo $url ?>"><?php echo $product->product_name ?></a>        <?php    echo '<div class="clear"></div>';

if ($show_price) {
//  echo $currency->priceDisplay($product->prices['salesPrice']);
if (!empty($product->prices['salesPrice'])) {
echo $currency->createPriceDiv ('salesPrice'''$product->pricesFALSEFALSE1.0TRUE);
}
//  if ($product->prices['salesPriceWithDiscount']>0) echo $currency->priceDisplay($product->prices['salesPriceWithDiscount']);
if (!empty($product->prices['salesPriceWithDiscount'])) {
echo $currency->createPriceDiv ('salesPriceWithDiscount'''$product->pricesFALSEFALSE1.0TRUE);
}
}
if ($show_addtocart) {
echo mod_virtuemart_product::addtocart ($product);
}
?>

</div>
</div>
<?php
if ($col == $products_per_row && $products_per_row && $col $totalProd) {
echo " </div><div style='clear:both;'>";
$col 1;
} else {
$col++;
}
?>

</div>
<br style='clear:both;'/>

<?php
} else {
$last count ($products) - 1;
?>


<ul class="vmproduct<?php echo $params->get ('moduleclass_sfx'); ?> productdetails">
<?php foreach ($products as $product) : ?>
<li class="<?php echo $pwidth ?> <?php echo $float ?>">
<?php
if (!empty($product->images[0])) {
$image $product->images[0]->displayMediaThumb ('class="featuredProductImage" border="0"'FALSE);
} else {
$image '';
}
echo JHTML::('link'JRoute::('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' $product->virtuemart_product_id '&virtuemart_category_id=' $product->virtuemart_category_id), $image, array('title' => $product->product_name));
echo '<div class="clear"></div>';
$url JRoute::('index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' $product->virtuemart_product_id '&virtuemart_category_id=' .
$product->virtuemart_category_id); ?>

<a href="<?php echo $url ?>"><?php echo $product->product_name ?></a>        <?php    echo '<div class="clear"></div>';
// $product->prices is not set when show_prices in config is unchecked
if ($show_price and  isset($product->prices)) {
echo '<div class="product-price">'.$currency->createPriceDiv ('salesPrice'''$product->pricesFALSEFALSE1.0TRUE);
if ($product->prices['salesPriceWithDiscount'] > 0) {
echo $currency->createPriceDiv ('salesPriceWithDiscount'''$product->pricesFALSEFALSE1.0TRUE);
}
echo '</div>';
}
if ($show_addtocart) {
echo mod_virtuemart_product::addtocart ($product);
}
?>

</li>
<?php
if ($col == $products_per_row && $products_per_row && $last) {
echo '
</ul><div class="clear"></div>
<ul  class="vmproduct' 
$params->get ('moduleclass_sfx') . ' productdetails">';
$col 1;
} else {
$col++;
}
$last--;
endforeach; ?>

</ul>
<div class="clear"></div>

<?php
}
if ($footerText) : ?>

<div class="vmfooter<?php echo $params->get ('moduleclass_sfx'?>">
<?php echo $footerText ?>
</div>
<?php endif; ?>
</div>


Would any PHP wizard be able to assist with modifying the code to get the required layout?

liquid.ideas

Hey Leviathan,

Try moving
<a href="<?php echo $url ?>"><?php echo $product->product_name ?></a>   

to be the first thing in the li element

Leviathan

Thank you liquid.ideas worked perfectly. I'm using Div as the display style, but same code moved to the begning of the Div sorted out the layout.