本文整理汇总了PHP中DiscussionModel::SetUserBookmarkCount方法的典型用法代码示例。如果您正苦于以下问题:PHP DiscussionModel::SetUserBookmarkCount方法的具体用法?PHP DiscussionModel::SetUserBookmarkCount怎么用?PHP DiscussionModel::SetUserBookmarkCount使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DiscussionModel
的用法示例。
在下文中一共展示了DiscussionModel::SetUserBookmarkCount方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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');
}
示例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();
}
示例3: 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 = NULL)
{
// Make sure we are posting back.
if (!$this->Request->IsPostBack()) {
throw PermissionException('Javascript');
}
$Session = Gdn::Session();
if (!$Session->UserID) {
throw PermissionException('SignedIn');
}
// Check the form to see if the data was posted.
$Form = new Gdn_Form();
$DiscussionID = $Form->GetFormValue('DiscussionID', $DiscussionID);
$Bookmark = $Form->GetFormValue('Bookmark', NULL);
$UserID = $Form->GetFormValue('UserID', $Session->UserID);
// Check the permission on the user.
if ($UserID != $Session->UserID) {
$this->Permission('Garden.Moderation.Manage');
}
$Discussion = $this->DiscussionModel->GetID($DiscussionID);
if (!$Discussion) {
throw NotFoundException('Discussion');
}
$Bookmark = $this->DiscussionModel->Bookmark($DiscussionID, $UserID, $Bookmark);
// Set the new value for api calls and json targets.
$this->SetData(array('UserID' => $UserID, 'DiscussionID' => $DiscussionID, 'Bookmarked' => (bool) $Bookmark));
SetValue('Bookmarked', $Discussion, (int) $Bookmark);
// Update the user's bookmark count
$CountBookmarks = $this->DiscussionModel->SetUserBookmarkCount($UserID);
$this->JsonTarget('.User-CountBookmarks', (string) $CountBookmarks);
// Short circuit if this is an api call.
if ($this->DeliveryType() === DELIVERY_TYPE_DATA) {
$this->Render('Blank', 'Utility', 'Dashboard');
return;
}
// 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 ($Bookmark) {
// 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');
}