Joomla.it Forum
Non solo Joomla... => Sviluppo => : pino8314 18 Jul 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
-
non mi sembra un override.
M.
-
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 (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
-
scusa ma se hai fatto dei files con nome diverso a cosa vai in override?
M.
-
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
-
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...
-
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
-
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.
-
ho capito quello che intendi, ma non c'è modo di fare l'override dei models?
-
ma cosa succede di diverso nei tre login?
M.
-
sostanzialmente svolgono tutti lo stesso lavoro, le due view, però, hanno immagini e un contenuto descrittivo differente in base all'area di competenza
-
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.
-
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
-
...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.
-
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?
-
http://docs.joomla.org/JError/1.6
nella view dovresti riuscire a stampare gli errori
M.