root/trunk/lib/model/AnswerPeer.php

Revision 88, 2.7 kB (checked in by fabien, 2 years ago)

updated to symfony 1.0 beta 1

  • Property svn:mime-type set to text/x-php
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
Line 
1 <?php
2
3   // include base peer class
4   require_once 'lib/model/om/BaseAnswerPeer.php';
5  
6   // include object class
7   include_once 'lib/model/Answer.php';
8
9
10 /**
11  * Skeleton subclass for performing query and update operations on the 'ask_answer' table.
12  *
13  *
14  *
15  * You should add additional methods to this class to meet the
16  * application requirements.  This class will only be generated as
17  * long as it does not already exist in the output directory.
18  *
19  * @package model
20  */   
21 class AnswerPeer extends BaseAnswerPeer
22 {
23   public static function getPager($question_id, $page)
24   {
25     $pager = new sfPropelPager('Answer', sfConfig::get('app_pager_answers_max'));
26     $c = new Criteria();
27     $c->add(self::QUESTION_ID, $question_id);
28     $c->addDescendingOrderByColumn(self::RELEVANCY_UP);
29     $c->addDescendingOrderByColumn(self::CREATED_AT);
30     $c = self::addPermanentTagToCriteria($c);
31     $pager->setCriteria($c);
32     $pager->setPage($page);
33     $pager->init();
34
35     return $pager;
36   }
37
38   public static function getRecentPager($page)
39   {
40     $pager = new sfPropelPager('Answer', sfConfig::get('app_pager_homepage_max'));
41     $c = new Criteria();
42     $c->addDescendingOrderByColumn(self::CREATED_AT);
43     $c = self::addPermanentTagToCriteria($c);
44     $pager->setCriteria($c);
45     $pager->setPage($page);
46     $pager->setPeerMethod('doSelectJoinUser');
47     $pager->init();
48
49     return $pager;
50   }
51
52   public static function getRecent($max = 10)
53   {
54     $c = new Criteria();
55     $c->addDescendingOrderByColumn(self::CREATED_AT);
56     $c = self::addPermanentTagToCriteria($c);
57     $c->setLimit($max);
58
59     return self::doSelectJoinUser($c);
60   }
61
62   public static function getReportedSpamPager($page)
63   {
64     $pager = new sfPropelPager('Answer', sfConfig::get('app_pager_homepage_max'));
65     $c = new Criteria();
66     $c->add(self::REPORTS, 0, Criteria::GREATER_THAN);
67     $c->setLimit(20);
68     $c->addDescendingOrderByColumn(self::REPORTS);
69     $c->addAscendingOrderByColumn(self::CREATED_AT);
70     $c = self::addPermanentTagToCriteria($c);
71     $pager->setCriteria($c);
72     $pager->setPage($page);
73     $pager->setPeerMethod('doSelectJoinUser');
74     $pager->init();
75
76     return $pager;
77   }
78
79   public static function getReportCount()
80   {
81     $c = new Criteria();
82     $c->add(self::REPORTS, 0, Criteria::GREATER_THAN);
83     $c = self::addPermanentTagToCriteria($c);
84
85     return self::doCount($c);
86   }
87
88   private static function addPermanentTagToCriteria($criteria)
89   {
90     if (sfConfig::get('app_permanent_tag'))
91     {
92       $criteria->addJoin(self::QUESTION_ID, QuestionTagPeer::QUESTION_ID, Criteria::LEFT_JOIN);
93       $criteria->add(QuestionTagPeer::NORMALIZED_TAG, sfConfig::get('app_permanent_tag'));
94       $criteria->setDistinct();
95     }
96
97     return $criteria;
98   }
99 }
100
101 ?>
Note: See TracBrowser for help on using the browser.