Back to top

Autore Topic: VirtueMart 2.6 Problemi visualizzazione subcategorie  (Letto 3501 volte)

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Da titolo pongo il seguente problema che in Virtuemart 1 non accadeva e cioè se di default, voglio visualizzare 4 categorie per riga, perchè se ci sono due categorie si visualizzano a destra e non centrate come il vecchio Virtuemart 1. Ho provato a modificare il file di default nella cartella category ma niente.


Un'illuminazione vi prego
« Ultima modifica: 27 Mag 2014, 16:08:08 da yourdream »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #1 il: 16 Mag 2014, 07:19:01 »
scusa ma mi sono perso un attimo nella sintassi  ???

tu hai impostato quattro categorie per riga e le vorresti centrate anziché allineate a destra? mi sa che dipenda più dal css che dal template html, ma la soluzione dipende da quale template stai usando...

ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #2 il: 16 Mag 2014, 14:26:50 »
Effettivamente dalla rilettura del mio post non si capisce gran chè :)


La cosa è più semplice di quello che ho scritto.


Ricapitoliamo, è vero se ho 4 sub categorie la visualizzazione è perfetta, ma se ho 2 categorie mi si presentano allineate a sinistra. Ecco le vorrei allineate al centro, ma sia da template che da file php delle categorie non ci sono riuscito.


Ora chiedo se qualcuno ha risolto, ho si è presentato tale problema, perchè in Virtuemart 1 si allineavano al centro automaticamente.


Grazie
« Ultima modifica: 18 Mag 2014, 12:11:18 da yourdream »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #3 il: 16 Mag 2014, 15:02:35 »
uhm... ma non è quello che ho detto io?


tu però non mi hai detto però che template usi; assumo che tu stia usando quello di default  e personalmente ti consiglio di trovare un bel template alternativo. quello di default di vm2 è abbastanza incasinato quanto a css ed html generato.


se, come ho capito, è solo un problema di css ti consiglio di postare il link al sito e chiedere assistenza nella sezione templates.


ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #4 il: 16 Mag 2014, 17:04:50 »
Può essere che diciamo la stessa cosa, ma non credo sia un problema di template, perchè in questo esempio di template free


http://www.linelabox.com/linelabox/index.php?option=com_virtuemart&view=category&virtuemart_category_id=2&Itemid=470


si può vedere quale il mio problema, le due sottocategorie sono allineate a sinistra e questo perchè di default si è messo 3 categorie per riga.


Non so perchè se ci sono solo due categorie per riga e di default sono tre, rimane vuoto la terza colonna senza la possibilità di centrare le due categorie.


« Ultima modifica: 18 Mag 2014, 12:12:31 da yourdream »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #5 il: 16 Mag 2014, 17:24:01 »
sono allineate a sinistra perché vi è una fila di float: left; se la classe span4 è definita come sopra, di certo non si mette al centro. metti un float: none; a questa classe ed un text-align: center; al contenitore.
ti consiglieri inoltre di mettere una sufficiente path css e non solo il nome della classe.


ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #6 il: 16 Mag 2014, 17:43:27 »
Si ottima osservazione, ovviamente se posto sul forum è perchè le ho provate tutte, sto cercando di modificare il file nella cartella category chiamato default.php, dove salta fuori una regola matematica per calcolare la divisione della riga.


Ecco di cosa sto parlando la riga di codice è questa


$category_cellwidth = ' width'.floor ( 100 / $categories_per_row );


ora al posto di $categories_per_row  mi piacerebbe avere le categorie presenti in modo che se sono due la divisione sarà per due e non per 4 messo di default.


Ovviamente ho provato a modificare il template operando con float: none e mettendo i margin: 0 auto, ma niente.

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #7 il: 17 Mag 2014, 01:43:49 »
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:


Codice: [Seleziona]
<?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 == && $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');
      
$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 == && $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 == && $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_desc40'...'?>
                  </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->linkJText::_('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.
« Ultima modifica: 18 Mag 2014, 12:13:20 da yourdream »

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:[RISOLTO]VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #8 il: 17 Mag 2014, 09:49:20 »
due cose:
1.
perché mi hai mandato su quel link se il template non era quello che usavi?  >:(

2.
non mi pare che il codice funzioni, anzi mi pare che  ciò che hai scritto non abbia molto senso.
a che cosa serve il primo foreach? ad incasinare l'html?
e se hai più di 4 categorie che succede?

meglio era se ti concentravi sul css, come suggerito.
ciao
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #9 il: 17 Mag 2014, 15:51:59 »
Ok hai ragione, il template che uso è ja T3 Framework 2 su Joomla 2.5 e Virtuemart 2.6a.


Il link era solo per farti capire.



Riguardo al file di default di Virtuemart della cartella category, funziona solo per la prima riga con un numero di sottocategorie inferiore a 4.


Purtroppo non riesco a trovare un modo semplice di avere il numero di categorie.


Molto porbabilmente dovrei inserire un if all'inizio che mi fa questa distinzione, se il numero di categorie è inferiore a 4 procedi con il numero di categorie presenti altrimenti continua con il numero di categorie per riga di default.

Si credo sia più corretto. Rivedrò il file.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #10 il: 18 Mag 2014, 10:07:24 »

ok: leggiti bene questo
http://forum.joomla.it/index.php/topic,228159.0.html
dopo di che cerca un bel template con tutti gli effetti e gli allineamenti che ti piacciono e compratelo! se non hai alcuna competenza di programmazione non devi assolutamente modificare ad minchiam il codice di un programma e-commerce  >:(


comunque:

Riguardo al file di default di Virtuemart della cartella category, funziona solo per la prima riga con un numero di sottocategorie inferiore a 4.
e questo lo avevo capito: per ciò ti dicevo che non funzionava...
Purtroppo non riesco a trovare un modo semplice di avere il numero di categorie.
Codice: [Seleziona]
$catsNum=count($this->category->children);
Molto porbabilmente dovrei inserire un if all'inizio che mi fa questa distinzione, se il numero di categorie è inferiore a 4 procedi con il numero di categorie presenti altrimenti continua con il numero di categorie per riga di default.

devi inserire un contatore che ti dia il numero della categoria attuale. sottrai questo numero dal numero  totale delle categorie e se il risultato e minore del numero di categorie per linea hai trovato il suffisso per la classe.
ribadisco tuttavia il concetto che ciò che vuoi va ottenuto tramite css.

ciao,
marco
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline yourdream

  • Appassionato
  • ***
  • Post: 225
    • Mostra profilo
Re:VirtueMart 2.6 Problemi visualizzazione subcategorie
« Risposta #11 il: 18 Mag 2014, 12:23:27 »
Letto l'articolo, davvero interessante, mi stai suggerendo qualcosa riguardo le mie capacità :)


Comunque detto ciò ecco il codice che ho inserito nel default che funziona senza fare danni:



Codice: [Seleziona]
// Calculating Categories Per Row
      $catsNum=count($this->category->children);
      $categories_per_row = VmConfig::get ( 'categories_per_row', 4 );
      if ( $catsNum<$categories_per_row )
      $category_cellwidth = ' width'.floor ( 100 / $catsNum );
      else
      $category_cellwidth = ' width'.floor ( 100 / $categories_per_row );

Grazie mille per la dritta Marco.


Spero adesso sia un pochino più chiaro, comunque proverò anche via CSS.

 



Web Design Bolzano Kreatif