VirtueMart Forum

VirtueMart 2 + 3 + 4 => Templating & Layouts => Topic started by: 2cool on June 30, 2014, 15:21:45 PM

Title: Nice manufacturer page
Post by: 2cool on June 30, 2014, 15:21:45 PM
Hi,

Can anyone explain how to modify the manufacturer page.
I'm using custom filter to filter products by brand.
This is displayed in components\com_virtuemart\views\manufacturer\tmpl\details.php

But it would be nice to display the manufacturer information + logo on top and products after this.
I already read this http://forum.virtuemart.net/index.php?topic=106733.0 but it's a bit confusing.

Hope someone has some clear info on this.

Regards, Pascal

Title: Re: Nice manufacturer page
Post by: balai on June 30, 2014, 16:57:27 PM
Hi

Custom Filters (http://breakdesigns.net/extensions/custom-filters) is using the Virtuemart category page for displaying the results.
This file is either the : components\com_virtuemart\views\category\tmpl\default.php
or templates\YOUR_TEMPLATE\html\com_virtuemart\category\default.php

You should get the selected manufacturer.

$input=JFactory::getApplication()->input;
$manuf=$input->get('virtuemart_manufacturer_id',array(),'array');

if(count($manuf)==1){
$virtuemart_manufacturer_id=reset($manuf);
$manufacturer = $model->getManufacturer($virtuemart_manufacturer_id);
$model->addImages($manufacturer,1);
$manufacturerImage = $manufacturer->images[0]->displayMediaThumb('class="manufacturer-image"',false);

echo  $manufacturer->mf_name,$manufacturerImage;

}



I haven't test it but i think that with some tweaks it will work
Title: Re: Nice manufacturer page
Post by: 2cool on July 01, 2014, 10:41:29 AM
Hi Balai,

Added your code to the default.php but doesn't work (blank page)
After remove I have my products displayed again.

I'm not a programmer so maybe a bit more info on how and where to paste code :)

This is the default.php (templates\YOUR_TEMPLATE\html\com_virtuemart\category\default.php)
Could you explain where and how to add the codes to display manufacturer info and logo's?

Thanks,
Pascal

<?php
/**
 *
 * Show the products in a category
 *
 * @package    VirtueMart
 * @subpackage
 * @author RolandD
 * @author Max Milbers
 * @todo add pagination
 * @link http://www.virtuemart.net
 * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved.
 * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php
 * VirtueMart is free software. This version may have been modified pursuant
 * to the GNU General Public License, and as distributed it includes or
 * is derivative of works licensed under the GNU General Public License or
 * other free or open source software licenses.
 * @version $Id: default.php 6556 2012-10-17 18:15:30Z kkmediaproduction $
 */

//vmdebug('$this->category',$this->category);
vmdebug ('$this->category ' $this->category->category_name);
// Check to ensure this file is included in Joomla!
defined ('_JEXEC') or die('Restricted access');
JHTML::('behavior.modal');
/* javascript for list Slide
  Only here for the order list
  can be changed by the template maker
*/
$js "
jQuery(document).ready(function () {
jQuery('.orderlistcontainer').hover(
function() { jQuery(this).find('.orderlist').stop().show()},
function() { jQuery(this).find('.orderlist').stop().hide()}
)
});
"
;

$document JFactory::getDocument ();
$document->addScriptDeclaration ($js);

/*$edit_link = '';
if(!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR.DS.'helpers'.DS.'permissions.php');
if (Permissions::getInstance()->check("admin,storeadmin")) {
$edit_link = '<a href="'.JURI::root().'index.php?option=com_virtuemart&tmpl=component&view=category&task=edit&virtuemart_category_id='.$this->category->virtuemart_category_id.'">
'.JHTML::_('image', 'images/M_images/edit.png', JText::_('COM_VIRTUEMART_PRODUCT_FORM_EDIT_PRODUCT'), array('width' => 16, 'height' => 16, 'border' => 0)).'</a>';
}

echo $edit_link; */
if (empty($this->keyword)) {
?>

   
<div class="category_description">
<?php echo $this->category->category_description?>
</div>
<?php
}

/* Show child categories */

if (VmConfig::get ('showCategory'0) and empty($this->keyword)) {
if ($this->category->haschildren) {

// Category and Columns Counter
$iCol 1;
$iCategory 1;

// Calculating Categories Per Row
$categories_per_row VmConfig::get ('categories_per_row'3);
$category_cellwidth ' width' floor (100 $categories_per_row);

// Separator
$verticalseparator " vertical-separator";
?>


<div class="category-view">

<?php // Start the Output
if (!empty($this->category->children)) {
foreach ($this->category->children as $category) {

// Show the horizontal seperator
if ($iCol == && $iCategory $categories_per_row) {
?>

<div class="horizontal-separator"></div>
<?php
}

// this is an indicator wether a row needs to be opened or not
if ($iCol == 1) {
?>

<div class="row">
<?php
}

// Show the vertical seperator
if ($iCategory == $categories_per_row or $iCategory $categories_per_row == 0) {
$show_vertical_separator ' ';
} else {
$show_vertical_separator $verticalseparator;
}

// Category Link
$caturl JRoute::('index.php?option=com_virtuemart&view=category&virtuemart_category_id=' $category->virtuemart_category_id);

// Show Category
?>

<div class="category floatleft<?php echo $category_cellwidth $show_vertical_separator ?>">
<div class="spacer">
<h2>
<a href="<?php echo $caturl ?>" title="<?php echo $category->category_name ?>">
<?php echo $category->category_name ?>
<br/>
<?php // if ($category->ids) {
echo $category->images[0]->displayMediaThumb (""FALSE);
//} ?>

</a>
</h2>
</div>
</div>
<?php
$iCategory++;

// Do we need to close the current row now?
if ($iCol == $categories_per_row) {
?>

<div class="clear"></div>
</div>
<?php
$iCol 1;
} else {
$iCol++;
}
}
}
// Do we need a final closing row tag?
if ($iCol != 1) {
?>

<div class="clear"></div>
</div>
<?php ?>
</div>

<?php
}
}
?>

<div class="browse-view">
<?php
if (!empty($this->keyword)) {
?>

<h3><?php echo $this->keyword?></h3>
<?php
?>

<?php if ($this->search !== NULL) { ?>
<form action="<?php echo JRoute::('index.php?option=com_virtuemart&view=category&limitstart=0&virtuemart_category_id=' $this->category->virtuemart_category_id); ?>" method="get">

<!--BEGIN Search Box -->
<div class="virtuemart_search">
<?php echo $this->searchcustom ?>
<br/>
<?php echo $this->searchcustomvalues ?>
<input name="keyword" class="inputbox" type="text" size="20" value="<?php echo $this->keyword ?>"/>
<input type="submit" value="<?php echo JText::('COM_VIRTUEMART_SEARCH'?>" class="button" onclick="this.form.keyword.focus();"/>
</div>
<input type="hidden" name="search" value="true"/>
<input type="hidden" name="view" value="category"/>

</form>
<!-- End Search Box -->
<?php ?>

<?php // Show child categories
if (!empty($this->products)) {
?>

<div class="orderby-displaynumber">
<div class="width70 floatleft">
<?php echo $this->orderByList['orderby']; ?>
<?php echo $this->orderByList['manufacturer']; ?>
</div>
<div class="width30 floatright display-number"><?php echo $this->vmPagination->getResultsCounter ();?><br/><?php echo $this->vmPagination->getLimitBox (); ?></div>
<div class="vm-pagination">
<?php echo $this->vmPagination->getPagesLinks (); ?>
<span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span>
</div>

<div class="clear"></div>
</div> <!-- end of orderby-displaynumber -->

<h1><?php echo $this->category->category_name?></h1>

<?php
// Category and Columns Counter
$iBrowseCol 1;
$iBrowseProduct 1;

// Calculating Products Per Row
$BrowseProducts_per_row $this->perRow;
$Browsecellwidth ' width' floor (100 $BrowseProducts_per_row);

// Separator
$verticalseparator " vertical-separator";

$BrowseTotalProducts count($this->products);

// Start the Output
foreach ($this->products as $product) {

// Show the horizontal seperator
if ($iBrowseCol == && $iBrowseProduct $BrowseProducts_per_row) {
?>

<div class="horizontal-separator"></div>
<?php
}

// this is an indicator wether a row needs to be opened or not
if ($iBrowseCol == 1) {
?>

<div class="row">
<?php
}

// Show the vertical seperator
if ($iBrowseProduct == $BrowseProducts_per_row or $iBrowseProduct $BrowseProducts_per_row == 0) {
$show_vertical_separator ' ';
} else {
$show_vertical_separator $verticalseparator;
}

// Show Products
?>

<div class="product floatleft<?php echo $Browsecellwidth $show_vertical_separator ?>">
<div class="spacer">
<div class="width100 floatleft center">
    <a title="<?php echo $product->link ?>" rel="vm-additional-images" href="<?php echo $product->link?>">
<?php
echo $product->images[0]->displayMediaThumb('class="browseProductImage"'false);
?>

</a>

<!-- The "Average Customer Rating" Part -->
<?php if ($this->showRating) { ?>
<span class="contentpagetitle"><?php echo JText::('COM_VIRTUEMART_CUSTOMER_RATING'?>:</span>
<br/>
<?php
// $img_url = JURI::root().VmConfig::get('assets_general_path').'/reviews/'.$product->votes->rating.'.gif';
// echo JHTML::image($img_url, $product->votes->rating.' '.JText::_('COM_VIRTUEMART_REVIEW_STARS'));
// echo JText::_('COM_VIRTUEMART_TOTAL_VOTES').": ". $product->votes->allvotes;
?>

<?php ?>
<?php
if ( VmConfig::get ('display_stock'1)) { ?>

<!-- if (!VmConfig::get('use_as_catalog') and !(VmConfig::get('stockhandle','none')=='none')){?> -->
<div class="paddingtop8">
<span class="vmicon vm2-<?php echo $product->stock->stock_level ?>" title="<?php echo $product->stock->stock_tip ?>"></span>
<span class="stock-level"><?php echo JText::('COM_VIRTUEMART_STOCK_LEVEL_DISPLAY_TITLE_TIP'?></span>
</div>
<?php ?>
</div>

<div class="width100 floatright">

<h2><?php echo JHTML::link ($product->link$product->product_name); ?></h2>

<?php // Product Short Description
if (!empty($product->product_s_desc)) {
?>

<p class="product_s_desc">
<?php echo shopFunctionsF::limitStringByWord ($product->product_s_desc40'...'?>
</p>
<?php ?>

<div class="product-price marginbottom12" id="productPrice<?php echo $product->virtuemart_product_id ?>">
<?php
if ($this->show_prices == '1') {
if ($product->prices['salesPrice']<=and VmConfig::get ('askprice'1) and  !$product->images[0]->file_is_downloadable) {
echo JText::('COM_VIRTUEMART_PRODUCT_ASKPRICE');
}
//todo add config settings
if ($this->showBasePrice) {
echo $this->currency->createPriceDiv ('basePrice''COM_VIRTUEMART_PRODUCT_BASEPRICE'$product->prices);
echo $this->currency->createPriceDiv ('basePriceVariant''COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT'$product->prices);
}
echo $this->currency->createPriceDiv ('variantModification''COM_VIRTUEMART_PRODUCT_VARIANT_MOD'$product->prices);
if (round($product->prices['basePriceWithTax'],$this->currency->_priceConfig['salesPrice'][1]) != $product->prices['salesPrice']) {
echo '<span class="price-crossed" >' $this->currency->createPriceDiv ('basePriceWithTax''COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTAX'$product->prices) . "</span>";
}
if (round($product->prices['salesPriceWithDiscount'],$this->currency->_priceConfig['salesPrice'][1]) != $product->prices['salesPrice']) {
echo $this->currency->createPriceDiv ('salesPriceWithDiscount''COM_VIRTUEMART_PRODUCT_SALESPRICE_WITH_DISCOUNT'$product->prices);
}
echo $this->currency->createPriceDiv ('salesPrice''COM_VIRTUEMART_PRODUCT_SALESPRICE'$product->prices);
echo $this->currency->createPriceDiv ('priceWithoutTax''COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX'$product->prices);
echo $this->currency->createPriceDiv ('discountAmount''COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT'$product->prices);
echo $this->currency->createPriceDiv ('taxAmount''COM_VIRTUEMART_PRODUCT_TAX_AMOUNT'$product->prices);
$unitPriceDescription JText::sprintf ('COM_VIRTUEMART_PRODUCT_UNITPRICE'$product->product_unit);
echo $this->currency->createPriceDiv ('unitPrice'$unitPriceDescription$product->prices);
?>


</div>

<div class="productdetail"><p>
<?php // Product Details Button
echo JHTML::link ($product->linkJText::('COM_VIRTUEMART_PRODUCT_DETAILS'), array('title' => $product->product_name'class' => 'product-details'));
?>

</p></div>

</div>
<div class="clear"></div>
</div>
<!-- end of spacer -->
</div> <!-- end of product -->
<?php

// Do we need to close the current row now?
if ($iBrowseCol == $BrowseProducts_per_row || $iBrowseProduct == $BrowseTotalProducts) {
?>

<div class="clear"></div>
   </div> <!-- end of row -->
<?php
$iBrowseCol 1;
} else {
$iBrowseCol++;
}

$iBrowseProduct++;
// end of foreach ( $this->products as $product )
// Do we need a final closing row tag?
if ($iBrowseCol != 1) {
?>

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

<?php
}
?>


<div class="vm-pagination"><?php echo $this->vmPagination->getPagesLinks (); ?><span style="float:right"><?php echo $this->vmPagination->getPagesCounter (); ?></span></div>

<?php
} elseif ($this->search !== NULL) {
echo JText::('COM_VIRTUEMART_NO_RESULT') . ($this->keyword ' : (' $this->keyword ')' '');
}
?>

</div><!-- end browse-view -->
Title: Re: Nice manufacturer page
Post by: balai on July 01, 2014, 12:32:53 PM
Possibly this:

$input=JFactory::getApplication()->input;
$manuf=$input->get('virtuemart_manufacturer_id',array(),'array');
$model=VmModel::getModel('manuufacturer');
if(count($manuf)==1){
$virtuemart_manufacturer_id=reset($manuf);
$manufacturer = $model->getManufacturer($virtuemart_manufacturer_id);
$model->addImages($manufacturer,1);
$manufacturerImage = $manufacturer->images[0]->displayMediaThumb('class="manufacturer-image"',false);

echo  $manufacturer->mf_name,$manufacturerImage;

}
Title: Re: Nice manufacturer page
Post by: 2cool on July 01, 2014, 14:34:44 PM
Hi Balai,

Finally got it, added this the default.php (templates\YOUR_TEMPLATE\html\com_virtuemart\category\default.php)
Thanks for the support of breakdesign on this custom filters plugin.

Thanks,
Pascal


<div class="category_description">
<?php echo $this->category->category_description?>
</div>
<?php
}

/* Show manufacturers info */

$input=JFactory::getApplication()->input;
$manuf=$input->get('virtuemart_manufacturer_id',array(),'array');
$model=VmModel::getModel('manufacturer');

if(
count($manuf)==1){
$virtuemart_manufacturer_id=reset($manuf);
$manufacturer $model->getManufacturer($virtuemart_manufacturer_id);
$model->addImages($manufacturer,1);
$manufacturerImage $manufacturer->images[0]->displayMediaThumb('class="manufacturer-image"',false);

echo  
'<div class="manufacturerImage">'.$manufacturerImage.'</div>';
echo  
'<div class="mf_name">'.$manufacturer->mf_name.'</div>';
echo  
'<div class="mf_desc">'.$manufacturer->mf_desc.'</div>';
}

/* Show child categories */