Frage

Ich mag einen zeigen abonnieren / abbestellen Link auf einer Forum Themenliste Seite, zusammen mit jedem der Themen in der Liste. Ich habe alle Informationen für den Link in dem $ Thema Variable in mytheme_preprocess_forum_topic_list subscribe ():

foreach ($variables['topics'] as $id => $topic) {

Unter der Annahme, dass ich notifications_get_link () zu bekommen den Abmelde-Link aufgerufen werden soll, wie kann ich den Abonnement-ID (SID) für jedes bestehendes Abonnement für das Thema Knoten erhalten?

Ich glaube, ich sollte notifications_user_get_subscriptions () aufrufen, aber die Dokumentation ist ein bisschen dünn. Ein Beispiel wäre toll.

War es hilfreich?

Lösung

Meine Lösung findet genau ein Abonnement für den aktuellen Knoten, falls vorhanden und besteht entweder ein susbcribe oder Abmelde-Link, der auf die Vorlage zur Verfügung gestellt wird:

// find subscription
$subs = notifications_user_get_subscriptions(
        $user->uid,
        'node',
        $topic->nid, 
        $topic,     
        FALSE);

// compose link
$destination = "?destination=forum/idea-exchange";
if ($subs) {
   foreach ($subs as $key => $sub) {
      $link = notifications_get_link('unsubscribe', array(
              'sid' => $sub->sid, 
              'confirm' => FALSE));
      $variables['topics'][$id]->subscribe_link = 
         '<a class="unsubscribe" href="/'.$link['href'].
               $destination.'">'.t('Stop tracking this topic').'</a>';
      break;
   }
}
else {
  $link = notifications_get_link(
        'subscribe', 
        array('uid' => $user->uid, 
              'type' => 'thread', 
              'fields' => array('nid' => $topic->nid), 
              'confirm' => FALSE));
  $variables['topics'][$id]->subscribe_link = 
      '<a class="subscribe" href="/'.
       $link['href'].$destination.'">'.t('Track this topic').'</a>';
}

Ich landete dafür ein CCK berechnetes Feld mit, so dass ich es in einer Ansicht enthalten. Siehe diese für mehr Kontext.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top