Overview

Packages

  • None
  • Yaga

Classes

  • ActedModel
  • ActionController
  • ActionModel
  • AwardCombo
  • BadgeAwardModel
  • BadgeController
  • BadgeModel
  • BadgesController
  • BadgesModule
  • BestController
  • BestFilterModule
  • CakeDayPost
  • CommentCount
  • CommentMarathon
  • DiscussionBodyLength
  • DiscussionCategory
  • DiscussionCount
  • DiscussionPageCount
  • HasMentioned
  • HolidayVisit
  • LeaderBoardModule
  • LengthOfService
  • ManualAward
  • NecroPost
  • NewbieComment
  • PhotoExists
  • PostCount
  • PostReactions
  • QnAAnserCount
  • RankController
  • RankModel
  • ReactController
  • ReactionCount
  • ReactionModel
  • ReflexComment
  • RulesController
  • SocialConnection
  • Yaga
  • YagaController
  • YagaHooks

Interfaces

  • YagaRule
  • Overview
  • Package
  • Class
  • Tree
  • Todo
  • Download
 1: <?php if(!defined('APPLICATION')) exit();
 2: 
 3: /**
 4:  * This rule awards badges if a discussion reaches the target number of pages
 5:  *
 6:  * @author Zachary Doll
 7:  * @since 1.0
 8:  * @package Yaga
 9:  */
10: class DiscussionPageCount implements YagaRule{
11: 
12:   public function Award($Sender, $User, $Criteria) {
13:     $Discussion = $Sender->EventArguments['Discussion'];
14:     $CommentCount = $Discussion->CountComments;
15:     $PageSize = C('Vanilla.Comments.PerPage');
16:     
17:     $PageCount = floor($CommentCount / $PageSize);
18:     
19:     if($PageCount >= $Criteria->Pages) {
20:       return $Discussion->InsertUserID;
21:     }
22:     else {
23:       return FALSE;
24:     }
25:   }
26: 
27:   public function Form($Form) {
28:     $String = $Form->Label('Yaga.Rules.DiscussionPageCount.Criteria.Head', 'DiscussionPageCount');
29:     $String .= $Form->Textbox('Pages', array('class' => 'SmallInput'));
30:     return $String;
31:   }
32: 
33:   public function Validate($Criteria, $Form) {
34:     $Validation = new Gdn_Validation();
35:     $Validation->ApplyRules(array(
36:         array(
37:           'Name' => 'Pages', 'Validation' => array('Required', 'Integer')
38:         )
39:     ));
40:     $Validation->Validate($Criteria);
41:     $Form->SetValidationResults($Validation->Results());
42:   }
43: 
44:   public function Hooks() {
45:     return array('CommentModel_BeforeNotification');
46:   }
47: 
48:   public function Description() {
49:     $Description = T('Yaga.Rules.DiscussionPageCount.Desc');
50:     return Wrap($Description, 'div', array('class' => 'InfoMessage'));
51:   }
52: 
53:   public function Name() {
54:     return T('Yaga.Rules.DiscussionPageCount');
55:   }
56:   
57:   public function Interacts() {
58:     return FALSE;
59:   }
60: }
61: 
Yaga API documentation generated by ApiGen 2.8.0