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:  * This rule awards badges if a discussion is posted in the right category
 4:  *
 5:  * @author Jan Hoos
 6:  * @since 1.0
 7:  * @package Yaga
 8:  */
 9: class DiscussionCategory implements YagaRule {
10: 
11:   public function Award($Sender, $User, $Criteria) {
12:     $Discussion = $Sender->EventArguments['Discussion'];
13:     $ID = ($Discussion->CategoryID);
14:     if($ID == $Criteria->CategoryID) {
15:       return $Discussion->InsertUserID;
16:     }
17:     else {
18:       return FALSE;
19:     }
20:   }
21: 
22:   public function Form($Form) {
23:     $String  = $Form->Label('Yaga.Rules.DiscussionCategory.Criteria.Head', 'DiscussionCategory');
24:     $String .= $Form->CategoryDropDown('CategoryID');
25:     return $String;
26:   }
27: 
28:   public function Validate($Criteria, $Form) {
29:     $Validation = new Gdn_Validation();
30:     $Validation->ApplyRules(array(
31:         array(
32:             'Name' => 'CategoryID', 'Validation' => array('Required', 'Integer')
33:         ),
34:     ));
35:     $Validation->Validate($Criteria);
36:     $Form->SetValidationResults($Validation->Results());
37:   }
38: 
39:   public function Hooks() {
40:     return array('DiscussionModel_AfterSaveDiscussion');
41:   }
42: 
43:   public function Description() {
44:     return Wrap(T('Yaga.Rules.DiscussionCategory.Desc'), 'div', array('class' => 'InfoMessage'));
45:   }
46: 
47:   public function Name() {
48:     return T('Yaga.Rules.DiscussionCategory');
49:   }
50: 
51:   public function Interacts() {
52:     return FALSE;
53:   }
54: 
55: }
56: 
Yaga API documentation generated by ApiGen 2.8.0