public static function retrieveRecommendations($recommendable_model, $recommendable_id)
 {
     $c = new Criteria();
     $c->add(sfRecommendationPeer::RECOMMENDABLE_MODEL, $recommendable_model);
     $c->add(sfRecommendationPeer::RECOMMENDABLE_ID, $recommendable_id);
     return sfRecommendationPeer::doSelectOne($c);
 }
Beispiel #2
0
 public function executeList()
 {
     $title = "Most recent bug reports and feature suggestions";
     $tab = str_replace(' ', '', $this->getRequestParameter('tab', 'mostrecent'));
     $c = new Criteria();
     if ($tab == 'mostrecent') {
         $c->addDescendingOrderByColumn(SuggestedFeaturePeer::CREATED_AT);
     } elseif ($tab == 'mostpopular') {
         $c2 = new Criteria();
         $c2->add(sfRecommendationPeer::RECOMMENDABLE_MODEL, 'SuggestedFeature');
         $c2->addDescendingOrderByColumn(sfRecommendationPeer::SCORE);
         $recommendations = sfRecommendationPeer::doSelect($c2);
         // this loop has got to be SUPER intensive, it has to change soon
         $features = array();
         foreach ($recommendations as $recommended) {
             $features[] = SuggestedFeaturePeer::retrieveByPK($recommended->getRecommendableId());
         }
         $title = "Most popular bug reports and feature suggestions";
     } elseif ($tab == 'bugs') {
         $c->add(SuggestedFeaturePeer::TYPE, sfConfig::get('app_feature_type_bug'));
         $c->addDescendingOrderByColumn(SuggestedFeaturePeer::CREATED_AT);
         $title = 'Bug Reports';
     } elseif ($tab == 'features') {
         $c->add(SuggestedFeaturePeer::TYPE, sfConfig::get('app_feature_type_feature'));
         $c->addDescendingOrderByColumn(SuggestedFeaturePeer::CREATED_AT);
         $title = 'Feature Suggestions';
     }
     //This only works while it's not a pager, not a long term solution!
     if (!isset($features)) {
         $this->features = SuggestedFeaturePeer::doSelect($c);
     } else {
         $this->features = $features;
     }
     myToolkit::prependPageTitle($title);
 }
 /**
  * Retrieve te recommendation score attached to the object
  *
  * @param   BaseObject  $object
  * @return  integer
  */
 public function getRecommendationScore(BaseObject $object)
 {
     $c = new Criteria();
     $c->add(sfRecommendationPeer::RECOMMENDABLE_MODEL, get_class($object));
     $c->add(sfRecommendationPeer::RECOMMENDABLE_ID, $object->getPrimaryKey());
     $recommendation = sfRecommendationPeer::doSelectOne($c);
     if ($recommendation !== null) {
         return $recommendation->getScore();
     } else {
         return 0;
     }
 }
Beispiel #4
0
 public function delete($con = null)
 {
     $recommendations = sfRecommendationPeer::retrieveRecommendations('SuggestedFeature', $this->getId());
     if ($recommendations != null) {
         $recommendations->delete();
     }
     $user_recommendations = sfUserRecommendationPeer::retrieveUserRecommendations('SuggestedFeature', $this->getId());
     if ($user_recommendations != null) {
         foreach ($user_recommendations as $recommendation) {
             $recommendation->delete();
         }
     }
     parent::delete();
 }
 public function fromArray($arr, $keyType = BasePeer::TYPE_PHPNAME)
 {
     $keys = sfRecommendationPeer::getFieldNames($keyType);
     if (array_key_exists($keys[0], $arr)) {
         $this->setId($arr[$keys[0]]);
     }
     if (array_key_exists($keys[1], $arr)) {
         $this->setRecommendableModel($arr[$keys[1]]);
     }
     if (array_key_exists($keys[2], $arr)) {
         $this->setRecommendableId($arr[$keys[2]]);
     }
     if (array_key_exists($keys[3], $arr)) {
         $this->setScore($arr[$keys[3]]);
     }
 }