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); }
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; } }
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]]); } }