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


PHP DiscussionModel::canView方法代码示例

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


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

示例1: recordAdvancedNotications

 /**
  * Record advanced notifications for users.
  *
  * @param ActivityModel $ActivityModel
  * @param array $Activity
  * @param array $Discussion
  * @param array $NotifiedUsers
  */
 public function recordAdvancedNotications($ActivityModel, $Activity, $Discussion)
 {
     if (is_numeric($Discussion)) {
         $Discussion = $this->getID($Discussion);
     }
     $CategoryID = val('CategoryID', $Discussion);
     // Figure out the category that governs this notification preference.
     $i = 0;
     $Category = CategoryModel::categories($CategoryID);
     if (!$Category) {
         return;
     }
     while ($Category['Depth'] > 2 && $i < 20) {
         if (!$Category || $Category['Archived']) {
             return;
         }
         $i++;
         $Category = CategoryModel::categories($Category['ParentCategoryID']);
     }
     // Grab all of the users that need to be notified.
     $Data = $this->SQL->whereIn('Name', array('Preferences.Email.NewComment.' . $Category['CategoryID'], 'Preferences.Popup.NewComment.' . $Category['CategoryID']))->get('UserMeta')->resultArray();
     $NotifyUsers = array();
     foreach ($Data as $Row) {
         if (!$Row['Value']) {
             continue;
         }
         $UserID = $Row['UserID'];
         // Check user can still see the discussion.
         $discussionModel = new DiscussionModel();
         if (!$discussionModel->canView($Discussion, $UserID)) {
             continue;
         }
         $Name = $Row['Name'];
         if (strpos($Name, '.Email.') !== false) {
             $NotifyUsers[$UserID]['Emailed'] = ActivityModel::SENT_PENDING;
         } elseif (strpos($Name, '.Popup.') !== false) {
             $NotifyUsers[$UserID]['Notified'] = ActivityModel::SENT_PENDING;
         }
     }
     foreach ($NotifyUsers as $UserID => $Prefs) {
         $Activity['NotifyUserID'] = $UserID;
         $Activity['Emailed'] = val('Emailed', $Prefs, false);
         $Activity['Notified'] = val('Notified', $Prefs, false);
         $ActivityModel->Queue($Activity);
     }
 }
开发者ID:vanilla,项目名称:vanilla,代码行数:54,代码来源:class.commentmodel.php


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