Back to top

Autore Topic: Community Builder - rimanere nella stessa pagina dopo login  (Letto 8378 volte)

Offline Superbuc

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Come da oggetto, sul mio sito non riesco a far rimanere l'utente, dopo il login, nella stessa pagina.
Per esempio va a vedere un documento che necessita di registrazione, per essere visto, gli viene chiesto il login e poi dopo viene rimandato in home page. Così si devo ricordare dov'era e ritornarci perdendo tempo...

Ho visto che c'è una pagina di rimando sulle impostazioni di CB, ma vale (o almeno c'è scritto) per il PRIMO login, mentre non ho trovato altro.

Mi potreste aiutare perfavore ?

Uso J 2.5 e cb 1.9

Offline matty80

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3974
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #1 il: 19 Apr 2013, 17:38:24 »
questo che ti allego è il modulo di login di community builder, quello che ti ho cerchiato lo hai utilizzato??





[allegato eliminato automaticamente dopo un anno]
Chi non ha mai posseduto un cane, non sa cosa significhi essere amato. Arthur Schopenhauer

Offline Superbuc

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #2 il: 20 Apr 2013, 18:25:12 »
No, in quella casella ho tutto vuoto. Anche quella del logout è vuota.
Se è vuota non dovrebbe muoversi dalla pagina, mi sbaglio ?


Offline matty80

  • Global Moderator
  • Instancabile
  • ********
  • Post: 3974
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #3 il: 20 Apr 2013, 18:42:15 »
in teoria è come dici tu, prova a dargli l'url alla quale vuoi reindirizzare o far rimanere in questo caso giusto per tentare un prova!
Chi non ha mai posseduto un cane, non sa cosa significhi essere amato. Arthur Schopenhauer

Offline nenno83

  • Nuovo arrivato
  • *
  • Post: 6
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #4 il: 15 Lug 2013, 11:55:38 »
Ragazzi io ho lo stesso problema, come possiamo risolvere?Se nel campo redirect dopo login inseriamo un URL quello vale per tutti i login in ogni posizione del sito, esempio mio concreto:

Ho il sito pubblico, le categorie della gallery invece sono solo per gli utenti registrati, se imposto l'URL della gallery come redirect dopo login nel modulo CB Login tutti gli utenti li rimanda alla gallery anche se loro non vogliono la gallery capito il problema?
E da qualche giorno che cerco la soluzione, e non riesco a farlo...sul forum di CB hanno scritto che basta inserire (#) nel campo redirect dopo login per tornare alla pagina precedente ma non funziona help!!!!


Offline ali7.p

  • Nuovo arrivato
  • *
  • Post: 18
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #5 il: 05 Giu 2014, 17:30:07 »
Nessuno ha trovato la soluzione?

Offline anto16

  • Appassionato
  • ***
  • Post: 495
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #6 il: 14 Apr 2017, 11:32:15 »
qualcuno ha trovato una soluzione?

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #7 il: 14 Apr 2017, 23:21:49 »
Io so che basta passare la url di ritorno via post o get... Puòi esaminare il codice del form o del controller del componente users per rendertene conto. Questo però vale per joomla, non so se cb lo condivide

Offline anto16

  • Appassionato
  • ***
  • Post: 495
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #8 il: 15 Apr 2017, 14:29:21 »
Ciao giovi,
come passare la url di ritorno via post o get?
grazie ancora
« Ultima modifica: 15 Apr 2017, 15:48:54 da anto16 »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #9 il: 18 Apr 2017, 10:59:58 »
Ricordavo male, si può passare solo via post quindi devi fare una override della view login del componente users e aggiungere il field "return" (eventualmetne con type="hidden") contenente la url di atterraggio codificata in base64. Qualcosa del genere:

Codice: [Seleziona]
<input type="hidden" name="return" value="<?php echo base64_encode('index.php?option=com_mycomponent&view=myview'); ?>"/>
Info: https://docs.joomla.org/How_do_you_redirect_users_after_a_successful_login%3F
Altre info e best practices: https://joomla.stackexchange.com/questions/16119/redirect-users-to-the-page-pointed-in-the-url-after-login

Offline anto16

  • Appassionato
  • ***
  • Post: 495
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #10 il: 18 Apr 2017, 15:33:51 »
Grazie Giovi
come fare l'ovveride della view login del componente users e aggiungere il field "return"?
Da quello che riesco a capire dai link, comunque alla fine si viene reindirizzati ad una pagina specifica oppure si resta nella stessa pagina?
Perdonami ma le cose si complicano per me :-[
Grazie ancora

« Ultima modifica: 18 Apr 2017, 15:44:26 da anto16 »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #11 il: 19 Apr 2017, 09:03:29 »
come fare l'ovveride della view login del componente users e aggiungere il field "return"?
http://www.joomla.it/articoli-della-community/788-override-del-template-come-personalizzare-le-pagine-di-joomla.html
Citazione
Da quello che riesco a capire dai link, comunque alla fine si viene reindirizzati ad una pagina specifica oppure si resta nella stessa pagina?
Si viene reindirizzati alla url che scrivi nel field return

Offline anto16

  • Appassionato
  • ***
  • Post: 495
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #12 il: 19 Apr 2017, 09:07:00 »
quindi riesco alla fine ad essere indirizzati nella stessa pagina dove viene effettuato l'accesso?
in alternativa la funzionalità di essere indirizzati ad una url specifica già esiste senza fare override
Grazie ancora giovi

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #13 il: 19 Apr 2017, 09:39:15 »
Basta che nell'override come valore di quel field ci metti:
Codice: [Seleziona]
$_SERVER['HTTP_REFERER']Considera che però non è così affidabile come può sembrare. In più se vuoi fare una cosa fatta un pò meglio devi sempre controllare prima se quel campo è null, se params->get('return-url') è valorizzato, ecc.... <-- strada facile

La cosa più sicura è che sia proprio il componente che effettua il redirect alla pagina di login a passare una url di ritorno. In questo modo nella form di login cerchi se è stata passata in get una url di ritorno. <-- strada sicura

Offline anto16

  • Appassionato
  • ***
  • Post: 495
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #14 il: 19 Apr 2017, 09:53:48 »
Grazie Giovi, certo mi piacerebbe prendere la strada piu sicura, ma le cose si complicano per realizzare quanto da te consigliato...
sai se esiste qualche videotutorial o spiegazione dei passaggi da effettuare.
Oppure , essendo l'argomento interessante penso anche per altri, qualcuno riesce a realizzare una guida?
Grazie ancora
« Ultima modifica: 19 Apr 2017, 10:12:39 da anto16 »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #15 il: 19 Apr 2017, 10:38:09 »
Non credo sia così complicato da necessitare una guida e comunque è una soluzione normalmente inattualizzabile sia per l'inefficacia dell'http-referrer che per la non ottimizzazione dei componenti che ne farebbero uso. Ad ogni modo basta che nella override della pagina di login sostituisci:

Codice: [Seleziona]
         <?php if ($this->params->get('login_redirect_url')) : ?>
                <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url'$this->form->getValue('return'))); ?>" />
         <?php else : ?>
            <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_menuitem'$this->form->getValue('return'))); ?>" />
         <?php endif; ?>

con

Codice: [Seleziona]
         <?php if ($this->params->get('login_redirect_url')) : ?>
                <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_url'$this->form->getValue('return'))); ?>" />
         <?php elseif($_SERVER['HTTP_REFERER']) : ?>
            <input type="hidden" name="return" value="<?php echo base64_encode($_SERVER['HTTP_REFERER']); ?>" />
         <?php else : ?>
            <input type="hidden" name="return" value="<?php echo base64_encode($this->params->get('login_redirect_menuitem'$this->form->getValue('return'))); ?>" />
         <?php endif; ?>

Così facendo comunque darai priorità sempre alla pagina di provenienza, se esiste

Offline anto16

  • Appassionato
  • ***
  • Post: 495
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #16 il: 19 Apr 2017, 16:23:43 »
Ciao Giovi,
ho seguito la guida e se capisco bene devo trovare il file all'interno NOME_TEMPLATE/html/NOME_ESTENSIONE/NOME_VISUALIZZAZIONE/NOME_FILE.php
nome estensione è mod_login?
nome file è default.php?

però all'interno del file non trovo il codice da te postato da sostituire.
Dove sbaglio?
Grazie ancora
« Ultima modifica: 19 Apr 2017, 16:25:24 da anto16 »

Offline giovi

  • Instancabile
  • ******
  • Post: 9835
  • Sesso: Maschio
    • Mostra profilo
Re:Community Builder - rimanere nella stessa pagina dopo login
« Risposta #17 il: 19 Apr 2017, 17:22:20 »
io lavoravo su com_users/views/login

se lavori sul modulo è molto più semplice ottenere la url della pagina attuale per il ritorno

 



Web Design Bolzano Kreatif