Back to top

Autore Topic: Carrello virtuemart; index.php e template assegnati  (Letto 20003 volte)

Offline elenix

  • Appassionato
  • ***
  • Post: 234
  • Sesso: Femmina
    • Mostra profilo
Carrello virtuemart; index.php e template assegnati
« il: 30 Apr 2009, 14:49:59 »
Ciao a tutti, ho un problema:
per motivi grafici uso due template, uno per la home page ed uno per il resto della navigazione.
Durante la navigazione nel carrello di virtuemart, però, virtuemart punta per due volte alla index.php. In questi due momenti mi si carica il template assegnato alla home page e non quello assegnato al resto della navigazione.
Come posso evitare questo spiacevole inconveniente?


esempio: clicco su cassa

/index.php?page=checkout.index&option=com_virtuemart&Itemid=16&redirected=1&Itemid=16

clicco su 'successivo' (metodo dispedizione)

/index.php

clicco su successivo (metodo di pagamento)

index.php?page=checkout.index&payment_method_id=4&ship_to_info_id=498518bbeb5595f40c905d0d291236be&shipping_rate_id=standard_shipping%257CPoste%2BItaliane%257CPacco%2BOrdinario%257C8.00%257C3&checkout_stage=4&option=com_virtuemart&Itemid=16
« Ultima modifica: 30 Apr 2009, 14:53:25 da elenix »

Offline danyjack

  • Nuovo arrivato
  • *
  • Post: 34
  • Sesso: Maschio
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #1 il: 25 Mag 2009, 13:38:15 »
Ciao, ho anch'io lo stesso problema...e non so come risolvere. Anche cercando in giro...nulla...Tu nel frattempo hai trovato una soluzione?

Offline Stoned

  • Nuovo arrivato
  • *
  • Post: 14
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #2 il: 26 Mag 2009, 12:13:30 »
Anch'io ho riscontrato lo stesso problema: assegnato un particolare tema allo shop e dando un altro tema al resto del sito, in alcuni "passaggi" di virtuemart si fa riferimento al file index.php (a cui è associato un altro template) e tutto salta.
Un esempio pratico (e rapido da vedere) di questo problema si ha quando nel carrello si aggiorna un prodotto (o si elimina).
Prendiamo, appunto, il carrello (ma l'esempio vale, con le opportune modifiche, anche per gli altri casi, checkpoint compreso)
Dove sta il problema ?
Analizzando il codice html generato da virtuemart si nota come (naturalmente) il carrello sia un form. L'action di questa form viene generata dinamicamente dal sito, ed è proprio in questa fase che si ha il problema: il link a cui mandare il form (che poi sarà quello dove si viene rediretti) viene generato partendo dal file index.php del sito...se questo ha un template assegnato diverso, succede il casino  ;)
Come risolvere il problema ?
Prendiamo il file relativo al carrello, ovvero il file
/administrator/components/com_virtuemart/html/basket.php
Con il nostro fidato editor andiamo a cercare la stringa

Codice: [Seleziona]
$action_url

La troveremo più o meno alla riga 133, inserita nella riga di codice che genera, appunto, l'indirizzo dell'action

Codice: [Seleziona]
$action_url = $mm_action_url.basename($_SERVER['PHP_SELF']);
La variabile _SERVER['PHP_SELF'] altro non contiene che l'indirizzo della pagina che ha generato la pagina corrente ed in questo caso, come in tutti quelli che riguardano joomla, restituirà "index.php" nudo e crudo...se all'index semplice (ovvero all'home page) è assegnato un altro template, avremo il nostro problema.
A questo punto si può o aggiungere il resto dei parametri che normalmente vengono passati all'indirizzo che viene generato oppure (cosa che a me è sembrata più pulita) usare la variabile
$_SERVER['REQUEST_URI']
Che restituisce l'indirizzo completo della pagina che è stata generata, comprensivo di parametri (o di url friendly).
La nuova riga diventa dunque

Codice: [Seleziona]
$action_url = $mm_action_url.basename($_SERVER['REQUEST_URI']);
che a me, personalmente, funziona perfettamente  ;)
Per il checkout stesso identico discorso (trovate dove viene generata l'action e sostituite)
Spero di esservi stato d'aiuto.

Offline elenix

  • Appassionato
  • ***
  • Post: 234
  • Sesso: Femmina
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #3 il: 26 Mag 2009, 12:33:37 »
Oggi provo e poi ti dico :)
Grazie :)

Offline danyjack

  • Nuovo arrivato
  • *
  • Post: 34
  • Sesso: Maschio
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #4 il: 26 Mag 2009, 15:55:45 »
Appena riesco provo, per il momento mille grazie! ;)

Offline KioSirio

  • Esploratore
  • **
  • Post: 150
  • Sesso: Maschio
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #5 il: 11 Nov 2009, 20:53:16 »
Ciao.
Anche io ho lo stesso problema sul mio VM 1.1.4!
Chi ha provato la soluzione sopra proposta che esiti ha avuto?
Dove ha modificato?
Ciao.
KioSirio

Offline mrkintaro

  • Esploratore
  • **
  • Post: 68
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #6 il: 28 Nov 2009, 12:29:14 »
Il fatto è che funziona solo con AJAX attivo. se lo disattivo torna tutto come prima.
Sapete aiutarmi?

Offline ivaniiritano

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #7 il: 27 Gen 2010, 13:03:40 »
Anch'io ho riscontrato lo stesso problema: assegnato un particolare tema allo shop e dando un altro tema al resto del sito, in alcuni "passaggi" di virtuemart si fa riferimento al file index.php (a cui è associato un altro template) e tutto salta.
Un esempio pratico (e rapido da vedere) di questo problema si ha quando nel carrello si aggiorna un prodotto (o si elimina).
Prendiamo, appunto, il carrello (ma l'esempio vale, con le opportune modifiche, anche per gli altri casi, checkpoint compreso)
Dove sta il problema ?
Analizzando il codice html generato da virtuemart si nota come (naturalmente) il carrello sia un form. L'action di questa form viene generata dinamicamente dal sito, ed è proprio in questa fase che si ha il problema: il link a cui mandare il form (che poi sarà quello dove si viene rediretti) viene generato partendo dal file index.php del sito...se questo ha un template assegnato diverso, succede il casino  ;)
Come risolvere il problema ?
Prendiamo il file relativo al carrello, ovvero il file
/administrator/components/com_virtuemart/html/basket.php
Con il nostro fidato editor andiamo a cercare la stringa

Codice: [Seleziona]
$action_url

La troveremo più o meno alla riga 133, inserita nella riga di codice che genera, appunto, l'indirizzo dell'action

Codice: [Seleziona]
$action_url = $mm_action_url.basename($_SERVER['PHP_SELF']);
La variabile _SERVER['PHP_SELF'] altro non contiene che l'indirizzo della pagina che ha generato la pagina corrente ed in questo caso, come in tutti quelli che riguardano joomla, restituirà "index.php" nudo e crudo...se all'index semplice (ovvero all'home page) è assegnato un altro template, avremo il nostro problema.
A questo punto si può o aggiungere il resto dei parametri che normalmente vengono passati all'indirizzo che viene generato oppure (cosa che a me è sembrata più pulita) usare la variabile
$_SERVER['REQUEST_URI']
Che restituisce l'indirizzo completo della pagina che è stata generata, comprensivo di parametri (o di url friendly).
La nuova riga diventa dunque

Codice: [Seleziona]
$action_url = $mm_action_url.basename($_SERVER['REQUEST_URI']);
che a me, personalmente, funziona perfettamente  ;)
Per il checkout stesso identico discorso (trovate dove viene generata l'action e sostituite)
Spero di esservi stato d'aiuto.

Io ho un problema simile:
Ho assegnato dei menù solomente alla home del sito ma si visualizzano anche quando cancello/aggiorno quantità elementi dal carrello, dopo aver aggiunto un prodotto nel carrello e anche nella fase di checkout.

Come posso risolvere?? ho provato come hai spiegato ma non funziona il redirect rimanda sempre alla home del sito e quindi mi visualizza quel menù che nn vorrei.

grazie

Offline MB82

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #8 il: 27 Mar 2010, 10:37:19 »
Ho seguito le indicazioni di Stoned, ho modificato i file:

/administrator/components/com_virtuemart/html/basket.php
/administrator/components/com_virtuemart/html/checkout.index.php

Ora sia il carrello che il checkout funzionano...
MA mi rimane un problema!
OVVERO: quando l'acquirente modifica il proprio account e clicca su "salva", oppure inserisce un nuovo indirizzo di spedizione diverso da quello di fatturazione e lo salva... vengo reindirizzato sempre a index.php , con conseguente perdita del template assegnato!
Specifico che nell'ecommerce ho impostato "nessuna registrazione" per poter effettuare acquisti.

Qualcuno sa dirmi per favore dove devo mettere le mani?!

Offline mmleoni

  • Global Moderator
  • Instancabile
  • ********
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #9 il: 28 Mar 2010, 21:39:06 »
ciao stoned,
penso che sia un piccolo bug nel render dell'application, in effetti la pagina viene individuata correttamente, se no apparirebbe la home page; option e Itemid vengono passati, anche se joomla sembra usarli scorrettamente per scegliere il template.

ho scritto un piccolo plugin che se individua un post a virtuemart forza joomla a inizializzare il template.

nel mio caso funziona: il vantaggio è che non obbliga a modificare i file del core di virtuemart e quindi non dà problemi in caso di aggiornamento, dovrebbe risolvere anche il problema di MB82.

fatemi sapere.

ciao,
marco


[allegato vecchio più di un anno eliminato automaticamente]
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline maxdrome

  • Nuovo arrivato
  • *
  • Post: 5
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #10 il: 01 Mag 2010, 12:10:21 »
Ragazzi , leggendo il post pensavo di aver risolto il problema ... ma mentre in locale la modifica funziona perfettamente in remoto quando clicco aggiungi prodotto mi carica il template base (e mi indirizza a indeh.php) poi continuando in cassa tutto torna al template impostato per l'e-commerce , ho provato anche il plug in di mmleoni ma addirittura mi mantiene il template della home per tutto anche per e-commerce ...uso Joomla 1.5 e VM 1.4 ....
Che posso fare d'altro ?

Offline elgabs

  • Nuovo arrivato
  • *
  • Post: 4
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #11 il: 31 Lug 2010, 10:53:31 »
Ciao a tutti,
intanto grazie mille per aver postato delle soluzioni e dei plugin.

Credo di aver fatto tutti i passaggi che avete suggerito, ma nulla di fatto. Anche a me carica di base per il carrello il template assegnato solo alla home page.

Avete sperimentato altre cose, nel frattempo?

--- POSSIBILE SOLUZIONE ALTERNATIVA?? ------
Nel giro di smanettamenti vari mi è venuta in mente una cosa: ma se si cambiassero tutti gli url con sh404sef o simili, e poi si inserisse nel pannello di configurazione dello shop, alla voce:

"ulteriori Impostazioni Base" > HOMEPAGE> il nuovo indirizzo dello shop (risultante dall'applicazione di sh404)?

è una cosa che ancora non ho tentato, non vorrei impelagarmi in mille altri problemi connessi ai sef..
qualcuno ha provato anche questa strada oppure sto dicendo corbellerie?

Grazie per ogni suggerimento

Offline elgabs

  • Nuovo arrivato
  • *
  • Post: 4
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #12 il: 02 Ago 2010, 12:27:20 »
Risolto!!! (ai moderatori, non so come si faccia ad assegnare [RISOLTO] al thread..)

Ragazzi, se può interessarvi ieri ho trovato un'utilissima discussione sul forum inglese di virtuemart ed ecco che cosa bisogna fare per risolvere il problema di redirect alla index.php.

Questo, intanto è il link al thread dove hanno risolto il problema (l'autore della soluzione si chiama Pollar)

http://forum.virtuemart.net/index.php?topic=34989.msg170542#msg170542

In pratica bisogna:

- aprire il file libraries/joomla/application/application.php
- trovare le stringhe
Codice: [Seleziona]
// get the full request URI
$uri = clone(JURI::getInstance());

e aggiungere subito dopo
Codice: [Seleziona]
// VM uri fix
if (!$uri->getVar('Itemid') && isset($_REQUEST['Itemid']) || !$uri->getVar('option') && isset($_REQUEST['option'])) {
if (!$uri->getVar('Itemid') && isset($_REQUEST['Itemid'])) {
$uri->_query = ($uri->_query ? '&' : '').'Itemid='.(int)$_REQUEST['Itemid'];
}
if (!$uri->getVar('option') && isset($_REQUEST['option'])) {
$uri->_query = ($uri->_query ? '&' : '').'option='.$_REQUEST['option'];
}
parse_str($uri->_query, $uri->_vars);
}
// end VM uri fix

Fatto ciò a me ha funzionato benissimo! Ho controllato con altri componenti installati (non ne ho moltissimi, ma qualcuno riportava conflitti con Acajoom; io ho acajoom ma non sembra dare problemi di nessun tipo, almeno per ora..)

Buon divertimento!

Offline korben

  • Nuovo arrivato
  • *
  • Post: 27
  • Sesso: Maschio
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #13 il: 02 Set 2011, 10:27:50 »
Ciao a tutti cercavo la soluzione al problema segnalato ed ho trovato questo topic.

Ho seguito la soluzione di elgabs e adesso cliccando sul tasto aggiungi sembra funzionare, non funziona sul carrello:
provando infatti da li a modificare le quantità o eliminando l'articolo ritorna sempre alla home del sito.

Avete qualche idea?

Saluti a tutti
« Ultima modifica: 02 Set 2011, 10:29:25 da korben »

Offline simsar78

  • Esploratore
  • **
  • Post: 84
  • Sesso: Maschio
    • Mostra profilo
Re:Carrello virtuemart; index.php e template assegnati
« Risposta #14 il: 20 Gen 2012, 09:58:06 »
Nessuno sa nulla a rigurado ???

 



Web Design Bolzano Kreatif