Allora mi serviva sapere il numero di categorie, per fare ciò ho usato parte del codice del default.php
presente nella cartella
components\com_virtuemart\views\categories\tmpl
ovviamente si copia tale file nella cartella del template per fare l'override, ed ecco il nuovo default come diventa:
<?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 5120 2011-12-18 18:29:26Z electrocity $
*/
// 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);
?>
<div class="category_description">
<?php echo $this->category->category_description ; ?>
<>
<?php // Start the Output
if(!empty($this->category->children)){
foreach ( $this->category->children as $category ) {
// Show the horizontal seperator
if ($iCol == 1 && $iCategory > $categories_per_row) { ?>
<?php }
// this is an indicator wether a row needs to be opened or not
if ($iCol == 1) { ?>
<div class="row">
<?php }
?>
<>
<?php
$iCategory ++;
// Do we need to close the current row now?
if ($iCol == $categories_per_row) { ?>
<div class="clear"><>
<>
<?php
$iCol = 1;
} else {
$iCol ++;
}
}
}
// Do we need a final closing row tag?
if ($iCol != 1) { ?>
<>
<?php } ?>
<?php
/* Show child categories */
if ( VmConfig::get('showCategory',1) ) {
if ($this->category->haschildren) {
$iCol2 = $iCol;
// Category and Columns Counter
$iCol = 1;
$iCategory = 1;
// Calculating Categories Per Row
$categories_per_row = VmConfig::get ( 'categories_per_row', 4 );
$category_cellwidth = ' width'.floor ( 100 / $iCol2 );
// 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 == 1 && $iCategory > $categories_per_row) { ?>
<div class="horizontal-separator"><>
<?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);
//} ?>
[/url]
</h2>
<>
<>
<?php
$iCategory ++;
// Do we need to close the current row now?
if ($iCol == $categories_per_row) { ?>
<div class="clear"><>
<>
<?php
$iCol = 1;
} else {
$iCol ++;
}
}
}
// Do we need a final closing row tag?
if ($iCol != 1) { ?>
<div class="clear"><>
<>
<?php } ?>
<>
<?php }
}
// Show child categories
if (!empty($this->products)) {
if (!empty($this->keyword)) {
?>
<h3><?php echo $this->keyword; ?></h3>
<?php
}
?>
<?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";
?>
<div class="browse-view">
<h1><?php echo $this->category->category_name; ?></h1>
<?php // Start the Output
foreach ( $this->products as $product ) {
// Show the horizontal seperator
if ($iBrowseCol == 1 && $iBrowseProduct > $BrowseProducts_per_row) { ?>
<div class="horizontal-separator"><>
<?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="nadpis" style="text-align:center;">
<h2><?php echo JHTML::link($product->link, $product->product_name); ?></h2>
<div class="obrazek">
<?php /** @todo make image popup */
echo JHTML::link($product->link,$product->images[0]->displayMediaThumb('class="browseProductImage" border="0" title="'.$product->product_name.'" ',false,'class="modal"'));
?>
<>
<!-- The "Average Customer Rating" Part -->
<>
<div class="popis">
<?php // Product Short Description
if(!empty($product->product_s_desc)) { ?>
<p class="product_s_desc" style="text-align:center;">
<?php echo shopFunctionsF::limitStringByWord($product->product_s_desc, 40, '...') ?>
</p>
<?php } ?>
<div class="product-price marginbottom12" id="productPrice <?php echo $product->virtuemart_product_id ?>" style="text-align:center;">
<?php
if ($this->show_prices == '1') {
if( $product->product_unit && VmConfig::get('vm_price_show_packaging_pricelabel')) {
echo "<strong>". JText::_('COM_VIRTUEMART_CART_PRICE_PER_UNIT').' ('.$product->product_unit."):</strong>";
}
//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_VARIAN T',$product->prices);
}
echo $this->currency->createPriceDiv('variantModification','COM_VIRTUEMART_PRODUCT_VARIANT_MOD',$product->prices);
echo $this->currency->createPriceDiv('basePriceWithTax','COM_VIRTUEMART_PRODUCT_BASEPRICE_WITHTA X',$product->prices);
echo $this->currency->createPriceDiv('discountedPriceWithoutTax','COM_VIRTUEMART_PRODUCT_DISCOUNTED_PRICE',$product->prices);
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_WITHO UT_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);
} ?>
<>
<p style="text-align:center;">
<?php // Product Details Button
echo JHTML::link($product->link, JText::_('COM_VIRTUEMART_PRODUCT_DETAILS'), array('title' => $product->product_name,'class' => 'product-details'));
?>
</p>
<div class="clear"><>
<> <>
<>
<?php
$iBrowseProduct ++;
// Do we need to close the current row now?
if ($iBrowseCol == $BrowseProducts_per_row) { ?>
<div class="clear"><>
<>
<?php
$iBrowseCol = 1;
} else {
$iBrowseCol ++;
}
}
// Do we need a final closing row tag?
if ($iBrowseCol != 1) { ?>
<div class="clear"><>
<>
<?php
}
?>
<div id="bottom-pagination"><?php echo $this->vmPagination->getPagesLinks(); ?><div style="text-align:center"><?php echo $this->vmPagination->getPagesCounter(); ?><><>
<>
<?php } ?>
Lo so non sono stato chiaro però funziona, ovviamente si può semplificare la parte di codice che mi da $iCol2.