Does anyone have any advice on what module to you when laying out the manufacturer page? I would like to display my manufacturer page like the screenshot attached. I know it is possible but I would like to know if anyone know of an extension or maybe have done this for their site. Any help would be appreciated.
[attachment cleanup by admin]
It is just displaying the information available in the manufacturers view ( index.php?option=com_virtuemart&view=manufacturer ) in a different way - i.e. templating
You need to over ride the components/com_virtuemart/views/manufacturer/tmpl/default.php
sort the results alphabetically - break them into 1st letter groups and display
This isn't a module - and you need some codimng skills
the designers A-Z will be a module - probably bespoke unless you can find one
Thanks GJC, I was able to add the letter to the manufacturers page but I am having issues with the alignments. Any thoughts from anyone who would like to try. I believe that once the sorting is corrected then it should look presentable.
Location: /components/com_virtuemart/views/manufacturer/tmpl/default.php
<?php
/**
*
* Description
*
* @package VirtueMart
* @subpackage Manufacturer
* @author Kohl Patrick, Eugen Stranz
* @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 2701 2011-02-11 15:16:49Z impleri $
*/
// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die('Restricted access');
// Category and Columns Counter
$iColumn = 1;
$iManufacturer = 1;
$firstLetter = -1;
// Calculating Categories Per Row
$manufacturerPerRow = 4;
if ($manufacturerPerRow != 1) {
$manufacturerCellWidth = ' width'.floor ( 100 / $manufacturerPerRow );
} else {
$manufacturerCellWidth = '';
}
// Separator
$verticalSeparator = " vertical-separator";
$horizontalSeparator = '<div class="horizontal-separator"></div>';
// Lets output the categories, if there are some
if (!empty($this->manufacturers)) { ?>
<div class="manufacturer-view-default">
<?php // Start the Output
foreach ( $this->manufacturers as $manufacturer ) {
// Show the horizontal seperator
if ($iColumn == 1 && $iManufacturer > $manufacturerPerRow) {
echo $horizontalSeparator;
}
// this is an indicator wether a row needs to be opened or not
if ($iColumn == 1) { ?>
<div class="row">
<?php }
// Show the vertical seperator
if ($iManufacturer == $manufacturerPerRow or $iManufacturer % $manufacturerPerRow == 0) {
$showVerticalSeparator = ' ';
} else {
$showVerticalSeparator = $verticalSeparator;
}
// Manufacturer Elements
$manufacturerURL = JRoute::_('index.php?option=com_virtuemart&view=category&virtuemart_manufacturer_id=' . $manufacturer->virtuemart_manufacturer_id, FALSE);
$manufacturerIncludedProductsURL = JRoute::_( 'index.php?option=com_virtuemart&view=category&virtuemart_manufacturer_id=' . $manufacturer->virtuemart_manufacturer_id, FALSE);
$manufacturerImage = $manufacturer->images[0]->displayMediaThumb("",false);
//echo "<strong>$firstLetter</strong> <br />"; $firstLetter = $manufacturer->mf_name[0];
if ($manufacturer->mf_name[0] !== $firstLetter)
{
echo "<strong>$firstLetter</strong> <br />"; $firstLetter = $manufacturer->mf_name[0];
}
// Show Category ?>
<div class="manufacturer floatleft<?php echo $manufacturerCellWidth . $showVerticalSeparator ?>">
<div class="spacer">
<h2>
<a title="<?php echo $manufacturer->mf_name; ?>" href="<?php echo $manufacturerURL; ?>"><?php echo $manufacturer->mf_name; ?></a>
</h2>
<a title="<?php echo $manufacturer->mf_name; ?>" href="<?php echo $manufacturerURL; ?>"><?php echo $manufacturerImage;?></a>
</div>
</div>
<?php
$iManufacturer ++;
// Do we need to close the current row now?
if ($iColumn == $manufacturerPerRow) {
echo '<div class="clear"></div></div>';
$iColumn = 1;
} else {
$iColumn ++;
}
}
// Do we need a final closing row tag?
if ($iColumn != 1) { ?>
<div class="clear"></div>
</div>
<?php } ?>
</div>
<?php
}
?>
Forgot to add, Here is a reference that was used: http://stackoverflow.com/questions/4187498/php-order-in-alphabetical-order
Can anyone provide help on this?
Can anyone provide help on this?
See http://forum.virtuemart.net/index.php?topic=116620.0