Joomla.it Forum
Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : guidocx84 18 Dec 2012, 09:17:30
-
Ciao a tutti,
ho un dubbio operativo da novizio per il quale ho bisogno del vostro aiuto. Joomla 2.5.
Il problema è questo: ho delle voci di menu che sono impostate a Virtuemart >> Singola categoria.
Quando in "Gestione moduli" creo un nuovo modulo "HTML personalizzato" e lo pubblico nella sidebar destra del mio template per queste voci di categoria, tale modulo risulta visibile non solo nella pagina di categoria (come vorrei) ma anche in tutti gli articoli Virtuemart (v.2.0.14) che afferiscono alla categoria di prodotti linkata da tale voce di menu!
L'unico modo che ho trovato per evitare questo è creare una voce di menu Virtuemart >> Dettagli prodotto in un menu non pubblicato. Tale voce punta al singolo prodotto e, nelle configurazioni del modulo di cui sopra, non metto la spunta su tale voce. In questo caso è visibile nella voce di categoria ma non in quella del prodotto.
Possibile che questa sia l'unica strada?? Devo creare una voce di menu per ogni prodotto che inserisco su Virtuemart? Grazie mille per il vostro aiuto!
-
Ciao, se vuoi gestire la cosa con i moduli html personalizzati si! Il modulo html personalizzato è uno strumento generico per cui è necessario un sistema che vada bene per qualunque componente (virtuemart, articoli, jtracking... :P). Se cerchi qualcosa di specifico non puoi usare il modulo html personalizzato ma qualcosa prodotta per il componente che usi.
-
Ciao giovi!
Grazie mille per la risposta e per la tua disponibilità!
Per inquadrare il problema posso dirti che sto creando uno shop di abbigliamento e mi è stato richiesto di inserire un'immagine con un total look e dei link sottostanti che rimandino ai prodotti di cui è composto questo total look. L'immagine deve essere pubblicata nella view di categoria... ma non in quella di ogni singolo prodotto. Secondo te esiste qualche modulo per virtuemart che potrei sfruttare per uno scopo simile?
Grazie tante per il tuo aiuto! ;)
-
no Guido, almeno non tra quelli gratuiti. Nella jed comunque c'è una sezione a tema, li troverai di tutto e di più per vm!
-
Ok.
Grazie mille per il tuo aiuto.
Buona serata! ;)
-
Allora... scusate l'euforia... ma ho risolto il problema con una giocata mirabolante niente male... e sono venuto qui per spiegarvela.
Ricapitoliamo l'obiettivo: pubblicare nella pagina di categoria di Virtuemart (per intenderci dove vengono sistemati su più righe i prodotti) un modulo che sia sempre diverso per ogni categoria e che NON sia visibile nella pagina di dettagli del singolo prodotto.
PROCEDURA
Per prima cosa dovete decidere dove andrà a posizionarsi il modulo che pubblicherete nella categoria. Nel mio esempio lo inserirò a destra dei prodotti.
A questo punto prendete il file /components/com_virtuemart/views/category/tmpl/default.php e fatene un backup.
Dopo averlo backuppato siamo pronti per le modifiche. Rintracciate la riga
<div class="browse-view">
e sostituitela con una riga come questa
<div class="browse-view" style="width:540px;float:left;">
Ovviamente il valore del parametro css width sceglietelo in base a quanti prodotti volete mostrare... fate un po' di prove con il firebug...
Una volta che "avete fatto posto" nella pagina per il modulo, inserite questa riga subito prima di quella che vi ho mostrato precedentemente...
<div style="float: right; width: 250px;">
<?php $category=$this->category->category_name; /*echo $category;*/?>
<?php $modules =& JModuleHelper::getModules($category);
foreach ($modules as $module) {
echo "<div>";
echo JModuleHelper::renderModule($module);
echo "<>";
} ?>
<>
Anche in questo caso il valore del width lo scegliete come volete... invece dell'inline css potete anche fare delle classi ovviamente, e inserirle nel file vmsite-ltr.css che posizionerete nella cartella css del vostro template (override).
La cosa interessante di questa soluzione è come si seleziona il modulo da inserire:
<?php $category=$this->category->category_name; /*echo $category;*/?>
<?php $modules =& JModuleHelper::getModules($category);
Create un modulo e quando ne definite la posizione dategli LO STESSO NOME DELLA CATEGORIA VIRTUEMART IN CUI VORRETE CHE APPAIA (rispettate maiuscole e minuscole altrimenti non funziona). Si discrimina quale modulo pubblicare proprio in base al nome della categoria!!!!
Vi domanderete: e se ho delle categorie che si chiamano alla stessa maniera?
Quando create il modulo, in Assegnazione Menu, selezionate soltanto la voce di menu alla quale avete collegato la vostra categoria Virtuemart (se non ce l'avete, createla in un "menu nascosto").
Finite le modifiche al file default.php, copiatelo all'interno della cartella /html/com_virtuemart/category del vostro template (se non ce l'avete, createla... serve per fare l'override e poter aggiornare virtuemart senza perdere le modifiche fatte) ;)
Se avete dubbi o domande chiedete pure... spero di essere stato utile e più chiaro possibile. ;)
Ciao a tutti!