getAnnouncementCacheKey() public method

public getAnnouncementCacheKey ( integer $CategoryID ) : string
$CategoryID integer Category ID,
return string $Key CacheKey name to be used for cache.
コード例 #1
0
 /**
  * Allows user to announce or unannounce a discussion.
  *
  * If the discussion isn't announced, this announces it.
  * If it is already announced, this unannounces it.
  * Announced discussions stay at the top of the discussions
  * list regardless of how long ago the last comment was.
  *
  * @since 2.0.0
  * @access public
  *
  * @param int $DiscussionID Unique discussion ID.
  * @param string $TransientKey Single-use hash to prove intent.
  */
 public function announce($DiscussionID = '', $Target = '')
 {
     $Discussion = $this->DiscussionModel->getID($DiscussionID);
     if (!$Discussion) {
         throw notFoundException('Discussion');
     }
     $this->permission('Vanilla.Discussions.Announce', true, 'Category', $Discussion->PermissionCategoryID);
     if ($this->Form->authenticatedPostBack()) {
         // Save the property.
         $CacheKeys = array($this->DiscussionModel->getAnnouncementCacheKey(), $this->DiscussionModel->getAnnouncementCacheKey(val('CategoryID', $Discussion)));
         $this->DiscussionModel->SQL->cache($CacheKeys);
         $this->DiscussionModel->SetProperty($DiscussionID, 'Announce', (int) $this->Form->getFormValue('Announce', 0));
         if ($Target) {
             $this->RedirectUrl = url($Target);
         }
     } else {
         if (!$Discussion->Announce) {
             $Discussion->Announce = 2;
         }
         $this->Form->setData($Discussion);
     }
     $Discussion = (array) $Discussion;
     $Category = CategoryModel::categories($Discussion['CategoryID']);
     $this->setData('Discussion', $Discussion);
     $this->setData('Category', $Category);
     $this->title(t('Announce'));
     $this->render();
 }