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ąć?

Lucrozade
źródło

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');
Letharion
źródło
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.

Mt.
źródło
2

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

Dee
źródło