Wie zeige ich anonymen Benutzern eine Flagge an?

8

Ich verwende das Flag- Modul, habe jedoch ein Problem beim Anzeigen eines Flags für anonyme Benutzer.

Ich habe 2 Flags mit den Namen "Funktion erstellen" und "Zu Favoriten hinzufügen". Ich möchte dieses Flag auch anonymen Benutzern anzeigen. Derzeit wird es nur den angemeldeten Benutzern (authentifizierter Benutzer) angezeigt.

Ich möchte, dass diese Flags allen Benutzern angezeigt werden (ob angemeldet oder nicht). Wenn jedoch ein anonymer Benutzer auf das Flag klickt, sollte dieser Benutzer zur Anmeldeseite umgeleitet werden. Nach dem Login sollte der Benutzer in der Lage sein, das Flag zu setzen.

Ist das möglich?

Pranav Gandhi
quelle
Was ist eine Flagge in Ihrem Kontext? Ein Menüeintrag?
BetaRide
@BetaRide: Ich denke, OP spricht über Flags von Flag- Modul
AjitS
Ja, ich benutze Flag-Modul.
Pranav Gandhi

Antworten:

10

Sie können dies in Ihrer 'node.tpl.php' wie folgt tun, wenn der Benutzer wie gewohnt im Anzeigeflag angemeldet ist und wenn er nicht angemeldet ist, leiten Sie den Benutzer zur Protokollierungsseite mit destinationParameter um

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
quelle
Danke, dass es funktioniert.
Pranav Gandhi
4

Informationen zum Anzeigen einer Flagge für anonyme Benutzer finden Sie in der Community-Dokumentation des Flag- Moduls.

Markieren für anonyme Benutzer (auch bei aktiviertem Seiten-Caching). Benötigt Sitzungs-API .

Ähnliches aus der README.txt :

Optionale Installation

1) Die Möglichkeit für anonyme Benutzer, Inhalte zu kennzeichnen, wird durch das Sitzungs-API-Modul bereitgestellt, das unter http://drupal.org/project/session_api verfügbar ist .

Beachten Sie auch, dass die Sitzungs-API auch im Flag-Modul nicht als Abhängigkeit erwähnt wird .

Pierre.Vriens
quelle