Back to top

Autore Topic: [RISOLTO] Evidenziazione voce di menù  (Letto 1555 volte)

Offline bezier

  • Esploratore
  • **
  • Post: 112
  • Sesso: Maschio
    • Mostra profilo
[RISOLTO] Evidenziazione voce di menù
« il: 21 Mar 2009, 16:56:43 »
Ciao ragazzi, mi succede una cosa strana. www.bezierapplicativi.it, cliccate sulla voce di menù a sinistra "Vendite al Dettaglio". Vi appare una lista di 2 prodotti (sono 2 prodotti virtuemart). Ora cliccate in uno qualsiasi di questi prodotti e si apre la scheda tecnica. Date però uno sguaedo alle voci di menù e noterete che è selezionata la voce "Negozi Computer e Accessori". Non riesco a capire come correggere, pur pensando di aver individuato il problema. Infatti, quando clicco su uno dei 2 prodotti, se osservate tutto l'indirizzo del link, si può notare che viene richiamata una voce con ID=5. L'id 5 è per l'esatezza l'id della voce di menù "Computer e accessori", ma non capisco però dove devo andare per correggerla...

Ciao. Giuseppe.
« Ultima modifica: 22 Mar 2009, 13:23:39 da bezier »

Offline bezier

  • Esploratore
  • **
  • Post: 112
  • Sesso: Maschio
    • Mostra profilo
Re: Evidenziazione voce di menù
« Risposta #1 il: 22 Mar 2009, 01:06:08 »
ufff...niente...ore ed ore di ricerche ma non riesco a trovare dove può essere stata inserita tale opzione.

Giuseppe.

Offline bezier

  • Esploratore
  • **
  • Post: 112
  • Sesso: Maschio
    • Mostra profilo
Re: Evidenziazione voce di menù
« Risposta #2 il: 22 Mar 2009, 13:22:40 »
Che sudata ragazzi !!! Ho risolto, si tratta di un bug di virtuemart.

Per apportare la correzione dovete editare il file In administrator/components/com_virtuemart/classes/ps_session.php

Per far funzionare in maniera corretta il tutto bisogna quindi intervenire nella classe ps_session in particolare nella funzione getShopItemid che originalmente recita cosi' :

Codice: [Seleziona]
function getShopItemid() {

if( empty( $_REQUEST['shopItemid'] )) {

$db = new ps_DB;
$db->query( "SELECT id FROM #__menu WHERE link='index.php?option=com_virtuemart' AND published=1");
if( $db->next_record() ) {
$_REQUEST['shopItemid'] = $db->f("id");
}
else {
if( !empty( $_REQUEST['Itemid'] )) {
$_REQUEST['shopItemid'] = intval( $_REQUEST['Itemid'] );
}
else {
$_REQUEST['shopItemid'] = 1;
}
}
}

return intval($_REQUEST['shopItemid']);

}

mettendo queste linee dopo la dichiarazione della funzione :

Codice: [Seleziona]
// if there is no shopItemId i do a check if there is an ItemID

if( empty( $_REQUEST['shopItemid'] )) {
if( !empty( $_REQUEST['Itemid'] )) {
$_REQUEST['shopItemid'] = $_REQUEST['Itemid'];
}
}



in pratica in mancanza dello ShopItemId, prima va a vedere se e' stato passato un ItemId e solo se manca anche questo va a prendere come ultima spiaggia la prima voce di menu' che fa riferimento a VM.

La soluzione non è mia ma l'ho trovato girovagando quà e la per la rete.

Ciao. Giuseppe.

 



Web Design Bolzano Kreatif