Exemplo n.º 1
0
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeFilter(sfWebRequest $request)
 {
     $this->params = $request->getParameterHolder()->getAll();
     unset($this->params['module'], $this->params['action'], $this->params['page']);
     $this->form = new BrowseForm();
     $this->form->bind($this->params);
     # Criteria
     $c = new Criteria();
     if ($this->form->getValue('search')) {
         $c->add(PluginPeer::TITLE, '%' . $this->form->getValue('search') . '%', Criteria::LIKE);
     }
     if ($this->form->getValue('official')) {
         $c->add(PluginPeer::OFFICIAL, 1);
     }
     if ($this->form->getValue('category')) {
         $category = TermPeer::retrieveBySlug($this->form->getValue('category'));
         if ($category) {
             $c->add(PluginPeer::CATEGORY_ID, $category->getId());
         }
     }
     if ($this->form->getValue('tag')) {
         $term = TermPeer::retrieveBySlug($this->form->getValue('tag'));
         if ($term) {
             $c->addJoin(PluginPeer::ID, TermRelationshipPeer::PLUGIN_ID);
             $c->add(TermRelationshipPeer::TERM_ID, $term->getId());
         } else {
             $c->add(1, 2);
         }
     }
     if ($this->form->getValue('sort')) {
         switch ($this->form->getValue('sort')) {
             case 'downloads_count':
                 $c->addDescendingOrderByColumn(PluginPeer::DOWNLOADS_COUNT);
                 break;
         }
     } else {
         $c->addDescendingOrderByColumn(PluginPeer::CREATED_AT);
     }
     # Pager
     $this->pager = new sfPropelPager('Plugin', sfConfig::get('app_browse_per_page'));
     $this->pager->setPage($request->getParameter('page', 1));
     $this->pager->setCriteria($c);
     $this->pager->init();
 }
Exemplo n.º 2
0
 public function addTerm($term_name, $category = false)
 {
     if (is_numeric($term_name)) {
         $term = TermPeer::retrieveByPk($term_name);
     } else {
         $slug = sfPropelActAsSluggableBehaviorUtils::stripText(ForgeToolkit::normalizeTag($term_name), '_');
         $term = TermPeer::retrieveBySlug($slug);
     }
     if (!$term) {
         $term = new Term();
         $term->setTitle(ForgeToolkit::normalizeTag($term_name));
         $term->setCategory(false);
         $term->save();
     }
     try {
         $rel = new TermRelationship();
         $rel->setTerm($term);
         $rel->setPlugin($this);
         $rel->save();
     } catch (PropelException $e) {
         // avoid duplicates
     }
 }