Jak wyświetlić flagę anonimowym użytkownikom?

8

Korzystam z modułu Flaga , ale mam problem z wyświetleniem flagi anonimowym użytkownikom.

Mam 2 flagi o nazwie „make feature” i „add to Favorites”. Chcę również wyświetlić tę flagę anonimowym użytkownikom. Obecnie jest on wyświetlany tylko zalogowanym użytkownikom (użytkownik uwierzytelniony).

Chcę, aby te flagi były wyświetlane wszystkim użytkownikom (zalogowanym lub nie). Ale gdy anonimowy użytkownik kliknie flagę, taki użytkownik powinien zostać przekierowany na stronę logowania. Po zalogowaniu użytkownik powinien mieć możliwość ustawienia flagi.

czy to możliwe?

Pranav Gandhi
źródło
Co jest flagą w twoim kontekście? Pozycja menu?
BetaRide
@BetaRide: Myślę, że OP mówi o flagach według modułu Flag
AjitS,
tak, używam modułu flagi.
Pranav Gandhi

Odpowiedzi:

10

Możesz to zrobić w swoim „node.tpl.php” przez coś takiego jak poniżej, jeśli użytkownik jest zalogowany w normalny sposób i jeśli nie jest zalogowany przekieruj użytkownika na stronę logowania z destinationparametrem

global $user;
if(!$user->uid) {
    // $flag: bookmark or make_feature, $action: flag, $content_id: $nid.....
    $flag_link = flag_flag_link($flag, $action, $content_id);
    $flag_url = $flag_link['href'];
    if(isset($flag_link['query']['token'])) {
        $flag_url .= '?'.$flag_link['query']['token'];
    }
    print l(t('bookmark'), 'user/login' , array('query'=> array('destination' => $flag_url)));
} else {
    print render($content['links']['flag']);
}
Mohammad Ali Akbari
źródło
Dzięki działa.
Pranav Gandhi
4

Aby wyświetlić flagę anonimowym użytkownikom , zapoznaj się z tym, co napisano w dokumentacji społeczności modułu Flag , tj .:

Oznaczanie dla anonimowych użytkowników (nawet przy włączonym buforowaniu stron). Wymaga interfejsu API sesji .

Coś podobnego z README.txt :

Opcjonalna instalacja

1) Możliwość anonimowego oznaczania treści przez anonimowych użytkowników zapewnia moduł API sesji, dostępny pod adresem http://drupal.org/project/session_api .

Należy również pamiętać, że API sesji nie jest wspomniane jako zależność w module Flag .

Pierre.Vriens
źródło