Jak przekierować użytkowników do wcześniej określonego adresu URL po zalogowaniu?


7

Mam widok w Drupal 7, który zawiera listę plików PDF. Chcę śledzić użytkowników, którzy otwierają ten plik; więc chcę, aby jeśli nie byli zalogowani po kliknięciu, byli wysyłani na stronę logowania / rejestracji. Udało mi się to już za pomocą dwóch widoków z różnymi uprawnieniami, ale problem polega na tym, że po rejestracji przekierowuje się na stronę profilu użytkownika, w przeciwieństwie do pliku PDF.

Jak mogę to osiągnąć?

Odpowiedzi:


8

Wszystkie formularze w Drupal obsługują wewnętrzny parametr docelowy.

Po utworzeniu łącza do formularza użytkownika lub użytkownika / rejestracji możesz dodać? Destination = [url]

user/register?destination=node/1

Ponieważ wyświetlasz listę plików za pomocą widoków, musisz ponownie zapisać link do plików, aby uwzględnić parametr docelowy. Jeśli wyprowadzasz link za pomocą l () , możesz dodać dodatkowe dane adresu URL w trzecim parametrze l, np

l('Sign in to View', 'user', 'destination=node/1');

Wypróbowałem to podejście, bezskutecznie. Przepisz link, aby dołączyć plik pdf ( example.net/user?destination=http://example.net/sites/default/… ). Przechodzi do strony logowania użytkownika, ale po zalogowaniu się nie przechodzi do pliku pdf, nadal przechodzi do strony konta użytkownika ... coś mi brakuje?
— Lucrozade,

Przepraszam, dodałem teraz informacje, wskazując, że działa to tylko dla ścieżek wewnętrznych , a nie bezwzględnych, więc byłoby to przykład.net
— user?destination=sites

To zadziałało! Mam problem: <br /> 1. Użytkownik przechodzi do widoku i klika link pdf <br /> 2. Link prowadzi do widoku z formularzem logowania użytkownika na górze < br /> 3. Użytkownik loguje się <br /> 4.Pdf otwiera się <br /> 5.Jeśli użytkownik kliknie „wstecz” w przeglądarce, przejdzie do tego samego widoku (mimo że jest zalogowany teraz ) z informacją o użytkowniku u góry widoku <br /> 6. Jeśli użytkownik kliknie inny link pdf, nie otworzy linku, przejdzie do tej samej strony, a następnie tam przejdzie cyklicznie, ponieważ te linki pdf mają / user? destination <br /> <br /> Czy istnieje sposób na rozwiązanie tego problemu? Dzięki
— Lucrozade,

6

Logowanie Destination moduł jest dla wszystkich typów logowania i rejestracji. Strony projektu mówią: „Można również zatrzymać użytkowników na aktualnie odwiedzanej stronie po zalogowaniu lub wylogowaniu”.

Nie korzystałem z niego wcześniej, ale mam nadzieję, że to rozwiąże twój problem.


2

Możesz to zrobić za pomocą reguł. Użyj zdarzenia po zalogowaniu i dodaj akcję, aby przenieść użytkownika na stronę.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.