Back to top

Autore Topic: Riscrittura router.php, URL SEF con parti indesiderate [RISOLTO]  (Letto 4448 volte)

Offline osys.it

  • Nuovo arrivato
  • *
  • Post: 36
  • Sesso: Maschio
    • Mostra profilo
Salve a tutti,
sono alle prese con il file router.php di com_properties per fare in modo che gli URL siano SEF, ho letto questa pagina fantastica, e sto ri-scrivendo propertiesBuildRoute() e propertiesParseRoute().

Gli URL SEF iniziano con una lettera ed una cifra, ecco alcuni esempi dei 4 tipi di URL che avrò :
  • /c2/ville.html sarà la vista 'properties' che visualizza gli immobili di categoria 2
  • /p3/appartamento/palazzina-rosa.html vista 'property' per la categoria 3 (appartamenti), appartamento 'Palazzina rosa'
  • /l0/last-minute.html vista 'properties' per gli immobili in offerta
  • /s0/in-vendita.html vista 'properties' per gli immobili in vendita

Questo è quello che vorrei ottenere, e più o meno ci siamo, la coppia lettera-cifra servirà in ParseRoute() per ricostruire l'URL non-SEF originale (non molto friendly però al momento è la soluzione più intelligente che m'è venuta in mente per non perdere informazioni per strada).

PROBLEMA : Nonostante faccia l'unset() di tutti i campi in $query man mano li utilizzi, all'inizio degli URL SEF compaiono dei campi in più che non ho inserito io, ad esempio gli URL della vista 'property' saranno tipo così  /component/properties/p3/appartamento/privilegio.html, cioè all'inizio c'è /component/properties/ nonostante non l'abbia specificato io nel file router.php! Qualcosa di simile avviene per le pagine "last-minute" e "in-vendita" che vengono precedute da quello che sembrerebbe essere l'alias nel menu. Infine per quanto riguarda le pagine con la lista di immobili di una categoria la parte lettera-cifra non compare affatto ed ho URL del tipo /appartamenti.html, dove la parte prima di '.html' penso sia l'alias del menu anche in questo caso.
« Ultima modifica: 04 Mar 2010, 12:46:47 da osys.it »
CI VEDIAMO A PALERMO PER LO JOOMLA MEETING:)!
OSys - Dove le idee incontrano la tecnologia!
http://www.osys.it  -  info@osys.it

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #1 il: 04 Mar 2010, 10:07:00 »
ciao sys.it,

/component/properties/ è aggiunto automaticamente e deve esserci, altrimenti joomla non potrebbe sapere qual'è il componente in uso e come instradare la richiesta. allo stesso modo debbono esserci altre voci necessarie a joomla, tipo l'alias di menú che serve ad individuare l'itemid ed a gestire, ad esempio, la voce selezionata del menú.

se vuoi l'url come piace a te devi scriverti un plugin di tipo system che lo renda poi comprensibile a joomla e/o agire su .htaccess. consiglio: lascialo così che va bene!

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

Offline osys.it

  • Nuovo arrivato
  • *
  • Post: 36
  • Sesso: Maschio
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #2 il: 04 Mar 2010, 10:47:32 »
Ciao mmleoni, innanzitutto ti ringrazio tantissimo per la risposta.

/component/properties/ è aggiunto automaticamente e deve esserci, altrimenti joomla non potrebbe sapere qual'è il componente in uso e come instradare la richiesta. allo stesso modo debbono esserci altre voci necessarie a joomla, tipo l'alias di menú che serve ad individuare l'itemid ed a gestire, ad esempio, la voce selezionata del menú.
Capisco, non c'avevo pensato al fatto che Joomla senza quello non sapeva quale router.php richiamare.

se vuoi l'url come piace a te devi scriverti un plugin di tipo system che lo renda poi comprensibile a joomla e/o agire su .htaccess. consiglio: lascialo così che va bene!
Quindi la soluzione migliore sarebbe scrivere un plugin di tipo system, c'è della documentazione che mi consiglieresti?

Invece la soluzione più veloce potrebbe essere aggiungere regole ad .htaccess ed utilizzare mod_rewrite, però in questo modo i link nelle pagine rimarrebbero quelli "non perfetti" e apache maschererebbe la cosa nella barra degli indirizzi, o sbaglio?

DOMANDA: Una volta installato JoomFish come cambierebbe la situazione di questi URL? diverrebbe qualcosa del tipo $BASEURL/en/$URLSEFATTUALE in maniera trasparente?

Grazie ancora!!
« Ultima modifica: 04 Mar 2010, 10:49:12 da osys.it »
CI VEDIAMO A PALERMO PER LO JOOMLA MEETING:)!
OSys - Dove le idee incontrano la tecnologia!
http://www.osys.it  -  info@osys.it

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #3 il: 04 Mar 2010, 11:01:06 »
la soluzione migliore sarebbe lasciare così come è  ;D ;D ;D
... ma tanto so che non mi ascolterai.
trovi tutto sui plugin sul wiki internazionale di joomla, non so se c'è anche nella versione italiana.

io personalmente cercherei di agirei solo su .htaccess (non ho capito il tuo ragionamento in proposito) definendo un pattern che possa essere facilmente riconosciuto in una rewritecond e processato con una rewriterule.

per joomfish non vedo problemi, lascia il country code e tutto funzionerà.

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

Offline osys.it

  • Nuovo arrivato
  • *
  • Post: 36
  • Sesso: Maschio
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #4 il: 04 Mar 2010, 11:16:39 »
la soluzione migliore sarebbe lasciare così come è  ;D ;D ;D
... ma tanto so che non mi ascolterai.
:P
trovi tutto sui plugin sul wiki internazionale di joomla, non so se c'è anche nella versione italiana.
Stavo dando un occhiatina a questo in effetti.

io personalmente cercherei di agirei solo su .htaccess (non ho capito il tuo ragionamento in proposito) definendo un pattern che possa essere facilmente riconosciuto in una rewritecond e processato con una rewriterule.
Quello che intendevo è che se modifico il file .htaccess gli URL sulla barra degli indirizzi saranno OK e andando ad indirizzi tipo /residence/poggio-pozzetti.html apache farà in modo che il visitatore finisca sulla pagina giusta, MA (correggimi se sbaglio) nella lista delle proprietà gli URL (quelli nell'attributo href dei tag a) saranno comunque quelli quasi-SEF, vabbè meglio di niente di certo.

per joomfish non vedo problemi, lascia il country code e tutto funzionerà.
Come pensavo, ottimo (anche se sicuramente per la legge di Murphy qualche intoppo salterà fuori :D)
« Ultima modifica: 04 Mar 2010, 11:18:33 da osys.it »
CI VEDIAMO A PALERMO PER LO JOOMLA MEETING:)!
OSys - Dove le idee incontrano la tecnologia!
http://www.osys.it  -  info@osys.it

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #5 il: 04 Mar 2010, 11:57:27 »
no!
 ovviamente dovrai modificare la funzione di scrittura degli url, altrimenti a che ti serve modificare .htaccess che così già funziona?

pertanto il componente scriverà il link come
/it/residence/3/poggio-pozzetti.html

(lascia il country code e l'id, è meglio) e la rewriterule lo farà ridiventare
/it/component/properties/p3/poggio-pozzetti.html

prima di passarlo alle rewrite rules di joomla.

poi il formato per il componente lo decidi tu riscrivendo il router, l'importante è che l'.htaccess inserisca le info necessarie a joomla.

ciao,
marco




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

Offline osys.it

  • Nuovo arrivato
  • *
  • Post: 36
  • Sesso: Maschio
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #6 il: 04 Mar 2010, 12:21:59 »
no!
 ovviamente dovrai modificare la funzione di scrittura degli url, altrimenti a che ti serve modificare .htaccess che così già funziona?

pertanto il componente scriverà il link come
/it/residence/3/poggio-pozzetti.html

(lascia il country code e l'id, è meglio) e la rewriterule lo farà ridiventare
/it/component/properties/p3/poggio-pozzetti.html

prima di passarlo alle rewrite rules di joomla.

poi il formato per il componente lo decidi tu riscrivendo il router, l'importante è che l'.htaccess inserisca le info necessarie a joomla.
Non ho capito bene che intendi, comunque per il momento non sto toccando .htaccess, magari più in là vedrò di documentarmi e scrivere un System Plugin. Come dicevi tu gli URL così non sono male già quindi per il momento possono andare, più in là dopo l'installazione di JoomFish vedrò cosa succede e quando la situazione sarà più stabile vedrò il da farsi.

Grazie ancora ;)
CI VEDIAMO A PALERMO PER LO JOOMLA MEETING:)!
OSys - Dove le idee incontrano la tecnologia!
http://www.osys.it  -  info@osys.it

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #7 il: 04 Mar 2010, 12:27:39 »
per favore, ricordati il [RISOLTO] nel post di apertura del topic

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

Offline osys.it

  • Nuovo arrivato
  • *
  • Post: 36
  • Sesso: Maschio
    • Mostra profilo
Re:Riscrittura router.php, URL SEF con parti indesiderate
« Risposta #8 il: 04 Mar 2010, 12:46:10 »
per favore, ricordati il [RISOLTO] nel post di apertura del topic
Più che risolto diciamo che so come potrei risolvere, comunque OK, e grazie delle delucidazioni Marco.
CI VEDIAMO A PALERMO PER LO JOOMLA MEETING:)!
OSys - Dove le idee incontrano la tecnologia!
http://www.osys.it  -  info@osys.it

 



Web Design Bolzano Kreatif