当前位置: 首页>>代码示例>>PHP>>正文


PHP DiscussionModel::BookmarkDiscussion方法代码示例

本文整理汇总了PHP中DiscussionModel::BookmarkDiscussion方法的典型用法代码示例。如果您正苦于以下问题:PHP DiscussionModel::BookmarkDiscussion方法的具体用法?PHP DiscussionModel::BookmarkDiscussion怎么用?PHP DiscussionModel::BookmarkDiscussion使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DiscussionModel的用法示例。


在下文中一共展示了DiscussionModel::BookmarkDiscussion方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: Bookmark

 /**
  * Allows user to bookmark or unbookmark a discussion.
  *
  * If the discussion isn't bookmarked by the user, this bookmarks it.
  * If it is already bookmarked, this unbookmarks it.
  *
  * @since 2.0.0
  * @access public
  *
  * @param int $DiscussionID Unique discussion ID.
  */
 public function Bookmark($DiscussionID)
 {
     // Make sure we are posting back.
     if (!$this->Request->IsAuthenticatedPostBack()) {
         throw PermissionException('Javascript');
     }
     $Session = Gdn::Session();
     if ($Session->UserID == 0) {
         throw PermissionException('SignedIn');
     }
     $Discussion = $this->DiscussionModel->GetID($DiscussionID);
     if (!$Discussion) {
         throw NotFoundException('Discussion');
     }
     $State = $this->DiscussionModel->BookmarkDiscussion($DiscussionID, $Session->UserID, $Discussion);
     // Update the user's bookmark count
     $CountBookmarks = $this->DiscussionModel->SetUserBookmarkCount($Session->UserID);
     $this->JsonTarget('.User-CountBookmarks', (string) $CountBookmarks);
     // Return the appropriate bookmark.
     require_once $this->FetchViewLocation('helper_functions', 'Discussions');
     $Html = BookmarkButton($Discussion);
     //      $this->JsonTarget(".Section-DiscussionList #Discussion_$DiscussionID .Bookmark,.Section-Discussion .PageTitle .Bookmark", $Html, 'ReplaceWith');
     $this->JsonTarget("!element", $Html, 'ReplaceWith');
     // Add the bookmark to the bookmarks module.
     if ($State) {
         // Grab the individual bookmark and send it to the client.
         $Bookmarks = new BookmarkedModule($this);
         if ($CountBookmarks == 1) {
             // When there is only one bookmark we have to get the whole module.
             $Target = '#Panel';
             $Type = 'Append';
             $Bookmarks->GetData();
             $Data = $Bookmarks->ToString();
         } else {
             $Target = '#Bookmark_List';
             $Type = 'Prepend';
             $Loc = $Bookmarks->FetchViewLocation('discussion');
             ob_start();
             include $Loc;
             $Data = ob_get_clean();
         }
         $this->JsonTarget($Target, $Data, $Type);
     } else {
         // Send command to remove bookmark html.
         if ($CountBookmarks == 0) {
             $this->JsonTarget('#Bookmarks', NULL, 'Remove');
         } else {
             $this->JsonTarget('#Bookmark_' . $DiscussionID, NULL, 'Remove');
         }
     }
     $this->Render('Blank', 'Utility', 'Dashboard');
 }
开发者ID:srikarrohit,项目名称:Vanillaforums-SSO,代码行数:63,代码来源:class.discussioncontroller.php

示例2: Bookmark

 /**
  * Allows user to bookmark or unbookmark a discussion.
  *
  * If the discussion isn't bookmarked by the user, this bookmarks it.
  * If it is already bookmarked, this unbookmarks it.
  * 
  * @since 2.0.0
  * @access public
  *
  * @param int $DiscussionID Unique discussion ID.
  * @param string $TransientKey Single-use hash to prove intent.
  */
 public function Bookmark($DiscussionID = '', $TransientKey = '')
 {
     $Session = Gdn::Session();
     $State = FALSE;
     if (is_numeric($DiscussionID) && $DiscussionID > 0 && $Session->UserID > 0 && $Session->ValidateTransientKey($TransientKey)) {
         $Discussion = NULL;
     }
     $State = $this->DiscussionModel->BookmarkDiscussion($DiscussionID, $Session->UserID, $Discussion);
     // Update the user's bookmark count
     $CountBookmarks = $this->DiscussionModel->SetUserBookmarkCount($Session->UserID);
     // Redirect back where the user came from if necessary
     if ($this->_DeliveryType != DELIVERY_TYPE_BOOL) {
         $Target = GetIncomingValue('Target', 'discussions/bookmarked');
         Redirect($Target);
     }
     $this->SetJson('State', $State);
     $this->SetJson('CountBookmarks', $CountBookmarks);
     $this->SetJson('CountDiscussionBookmarks', GetValue('CountDiscussionBookmarks', $this->DiscussionModel));
     $this->SetJson('ButtonLink', T($State ? 'Unbookmark this Discussion' : 'Bookmark this Discussion'));
     $this->SetJson('AnchorTitle', T($State ? 'Unbookmark' : 'Bookmark'));
     $this->SetJson('MenuText', T('My Bookmarks'));
     $Targets = array();
     if ($State) {
         // Grab the individual bookmark and send it to the client.
         $Bookmarks = new BookmarkedModule($this);
         if ($CountBookmarks == 1) {
             // When there is only one bookmark we have to get the whole module.
             $Target = '#Panel';
             $Type = 'Append';
             $Bookmarks->GetData();
             $Data = $Bookmarks->ToString();
         } else {
             $Target = '#Bookmark_List';
             $Type = 'Prepend';
             $Loc = $Bookmarks->FetchViewLocation('discussion');
             ob_start();
             include $Loc;
             $Data = ob_get_clean();
         }
         $Targets[] = array('Target' => $Target, 'Type' => $Type, 'Data' => $Data);
     } else {
         // Send command to remove bookmark html.
         if ($CountBookmarks == 0) {
             $Targets[] = array('Target' => '#Bookmarks', 'Type' => 'Remove');
         } else {
             $Targets[] = array('Target' => '#Bookmark_' . $DiscussionID, 'Type' => 'Remove');
         }
     }
     $this->SetJson('Targets', $Targets);
     $this->Render();
 }
开发者ID:remobjects,项目名称:Garden,代码行数:63,代码来源:class.discussioncontroller.php


注:本文中的DiscussionModel::BookmarkDiscussion方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。