Back to top

Autore Topic: modificare la url di una voce di menu  (Letto 5154 volte)

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
modificare la url di una voce di menu
« il: 18 Lug 2012, 09:18:49 »
Salve a tutti,
sto realizzando due nuove View di login, in ooverride, per il componente com_user. La view classica per il login è appunto "login", io ho aggiunto LoginArea1, LoginArea2 e tutto funziona regolarmente.
Il problema ora sta nel riuscire a modificare l'url che di default joomla da ad una voce di menu di tipo login. Quando creo una nuova voce di menu, joomla applica di default la seguente url index.php?option=com_user&view=login.


Come faccio a far puntare le nuove voci di menu alle rispettive view?

Voce menu = Area 1
url = index.php?option=com_user&view=LoginArea1

Voce menu = Area 2
 url = index.php?option=com_user&view=LoginArea2

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #1 il: 18 Lug 2012, 09:52:46 »
non mi sembra un override.

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #2 il: 18 Lug 2012, 10:06:10 »
si che lo è, ciò che ho fatto io è stato semplicemente creare le view del componente dentro la cartella html del template.

miotemplate/html/com_users/LoginArea1
miotemplate/html/com_users/LoginArea2

A questo punto, specificando manualmente nell'url del sito, http://www.miosito.it/index.php?option=com_user&view=LoginArea1, viene caricato la view che ho realizzato. le view originali non le ho nemmeno toccate.
Fatto ciò vorrei poter caricare le mie view dalle voci di menu che creo

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #3 il: 18 Lug 2012, 10:55:29 »
scusa ma se hai fatto dei files con nome diverso a cosa vai in override?

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #4 il: 18 Lug 2012, 12:15:34 »
ok ma il punto non è quello, il punto è che vorrei poter attribuire una view differente alla url che joomla attribuisce alla voce di menu che creo.
Se io creo una voce di tipo Login, viene applicata la url index.php?option=com_user&view=login con la view classica ma io voglio poter caricare il componente con la mia view. come posso fare? devo intervenire manualmente sul db o ci sono altre soluzioni?

grazie

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #5 il: 18 Lug 2012, 12:43:49 »
no no il punto è proprio quello...
se tu usi un override la risorsa viene "sostituita" ma il controllo di questa sarà sempre il pulsante originale... se non sostituisci nulla non sei nel caso dell'override, stai "implementando" le view.
Facendolo nel componente avresti il link nella creazione del menù non mi viene in mente come fare altrimenti...

ma l'hai fatto tu o hai seguito qualche esempio?

M.
ps: ...nn saprei nemmeno come fa a funzionare correttamente...
« Ultima modifica: 18 Lug 2012, 13:10:27 da mau_develop »

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #6 il: 18 Lug 2012, 13:20:58 »
le view le ho realizzate io sulla base della view Login del com_users.
Se è come dici tu, e quindi, se alla base non esistono le view che io metto in override, allora joomla non dovrebbe nemmeno caricarle quando le specifico nell'url.
Da quello che capisco, se creo delle view per il componente com_users (nel caso specifico) direttamente in override, senza che queste siano presente all'interno delle view del componente stesso, non dovrebbe funzionare nulla e invece joomla le carica senza alcun problema le view da me realizzate.
Tutto funziona ma non capisco proprio come fare a specificare nell'url le view che voglio io.

Secondo tue indicazioni ho messo le view da me realizzate all'interno del compomponente stesso. A questo punto la situazione è questa:

components/com_users/views/login -> che è la view di default
components/com_users/views/LoginArea1 -> view da me realizzata
components/com_users/views/LoginArea2-> view da me realizzata

override
templates/miosito/html/com_users/views/login
templates/miosito/html/com_users/views/LoginArea1
templates/miosito/html/com_users/views/LoginArea2

adesso come faccio a fare in modo, quando creo una voce di menu per il login, che la url contenga una view di mia scelta e non view=login?


ps.
il campo url è read only quindi non posso intervenire manualmente sulla modifica del link, ma potrei adottare una soluzione sporca, quella di modificare il valore con firebug ma non mi sembra una soluzione definitiva
« Ultima modifica: 18 Lug 2012, 13:22:38 da pino8314 »

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #7 il: 18 Lug 2012, 14:13:55 »
se funziona dovresti riuscire a fare un menu e modificare il link.
Così come hai fatto stai usando il "V" dell'MVC ...manca qualcosa.
M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #8 il: 18 Lug 2012, 14:58:31 »
ho capito quello che intendi, ma non c'è modo di fare l'override dei models?

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #9 il: 18 Lug 2012, 15:41:31 »
ma cosa succede di diverso nei tre login?

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #10 il: 18 Lug 2012, 15:48:05 »
sostanzialmente svolgono tutti lo stesso lavoro, le due view, però, hanno immagini e un contenuto descrittivo differente in base all'area di competenza

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #11 il: 18 Lug 2012, 20:56:50 »
allora ti conviene fare un override e cercare di dinamicizzare quello con delle condizioni.
L'url del menù dovrebbe essere modificabile e puoi appendere un &n=1, &n=2, &n=..n e poi recuperando la var fai uno switch

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #12 il: 19 Lug 2012, 08:12:51 »
si avevo anche pensato a questa soluzione, il problema è proprio che l'url della voce di menu non è modificabile da quello che sembra. il campo in cui si trova è read only, di conseguenza non posso scriverci dentro.
O forse non conosco qualche opzione che permetta di abilitarlo, non so come intervenire sull'url, hai qualche idea?

inoltre volevo ringraziarti tanto per la tua pazienza e il tuo aiuto, sei molto gentile

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #13 il: 19 Lug 2012, 13:43:44 »
...il problema è che viene fuori qualcosa di sporchissimo...

il componente che usi è comunque sempre lo stesso, nessuno in realtà mi eviterebbe di usare un form piuttosto di un'altro..
il login lo puoi anche modificare facendo l'override del modulo di login ma alla fine non cambia molto.

no, ..nn mi viene in mente nulla...

M.

Offline pino8314

  • Nuovo arrivato
  • *
  • Post: 40
    • Mostra profilo
Re:modificare la url di una voce di menu
« Risposta #14 il: 19 Lug 2012, 15:22:59 »
posso anche realizzare due componenti sulla base di com_user (es. com_userArea1, com_userArea2), il problema è che joomla punta cmq al com_user quando si tenta di accedere ad un contenuto registered. e questo è un problema... quello che mi resta da fare è di agire in maniera sporca sull'url...

ma a proposito, volevo chiederti anche una cosa veloce. Esiste un modo per interagire con i messaggi di errore senza dover utilizzare obbligatoriamente il tag message di joomla?
ad esempio invece di mostrare gli errori in un solo punto specifico della pagina, vorrei poter mostrare gli errori all'interno della view di un componente.
Esiste un JMessage che mi permetta di recuperare i messaggi di errori ritornati da una richiesta http?

mau_develop

  • Visitatore
Re:modificare la url di una voce di menu
« Risposta #15 il: 19 Lug 2012, 17:41:28 »
http://docs.joomla.org/JError/1.6

nella view dovresti riuscire a stampare gli errori

M.

 



Web Design Bolzano Kreatif