1: <?php if(!defined('APPLICATION')) exit();
2:
3: 4: 5: 6: 7: 8: 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: