public function addCategoryFilterToMerchantCategoryList(Pap_Affiliates_Promo_SelectBuilderCompoundFilter $compound) { $selectBuilder = $compound->getSelectBuilder(); $filters = $compound->getFilters(); $categoryFilter = $filters->getFilter("categoryid"); if (count($categoryFilter) > 0) { if ($categoryFilter[0]->getValue()=="FILTER_SELECT_ALL") { $selectBuilder->from->addLeftJoin(Pap_Db_Table_BannersInCategory::getName(), 'bic', 'b.'.Pap_Db_Table_Banners::ID.'=bic.'.Pap_Db_Table_BannersInCategory::BANNERID); $selectBuilder->where->add('bic.'.Pap_Db_Table_BannersInCategory::CATEGORYID,'!=',null); $selectBuilder->groupBy->add('b.'.Pap_Db_Table_Banners::ID); } else { $selectBuilder->from->addLeftJoin(Pap_Db_Table_BannersInCategory::getName(), 'bic', 'b.'.Pap_Db_Table_Banners::ID.'=bic.'.Pap_Db_Table_BannersInCategory::BANNERID. ' AND bic.'.Pap_Db_Table_BannersInCategory::CATEGORYID.' IN ('.$categoryFilter[0]->getValue().')'); $selectBuilder->where->add('bic.'.Pap_Db_Table_BannersInCategory::CATEGORYID,'in',preg_split('/,/',$categoryFilter[0]->getValue())); $selectBuilder->groupBy->add('b.'.Pap_Db_Table_Banners::ID); } } }
protected function buildFrom(){ $this->_selectBuilder->from->add(Gpf_Db_Table_HierarchicalDataNodes::getName(), 'p'); $this->_selectBuilder->from->add(Gpf_Db_Table_HierarchicalDataNodes::getName(), 'ni'); $this->_selectBuilder->from->addLeftJoin(Pap_Db_Table_BannersInCategory::getName(), 'c', 'c.'.Pap_Db_Table_BannersInCategory::CATEGORYID.' = ni.'.Gpf_Db_Table_HierarchicalDataNodes::CODE); }
/** * @service banner write * @return Gpf_Rpc_Serializable */ public function saveCategories(Gpf_Rpc_Params $params) { $action = new Gpf_Rpc_Action($params); $bannerId = $action->getParam('bannerid'); $fields = $action->getParam('fields'); for ($i=1; $i<count($fields); $i++) { $field = $fields[$i]; $catgoryId = $field[0]; $selected = $field[2]; if ($selected == Gpf::YES) { $bannerInCateogry = new Pap_Db_BannerInCategory(); $bannerInCateogry->setBannerId($bannerId); $bannerInCateogry->setCategoryId($catgoryId); $bannerInCateogry->insert(); } else if ($selected == Gpf::NO) { $delete = new Gpf_SqlBuilder_DeleteBuilder(); $delete->from->add(Pap_Db_Table_BannersInCategory::getName()); $delete->where->add(Pap_Db_Table_BannersInCategory::BANNERID, '=', $bannerId); $delete->where->add(Pap_Db_Table_BannersInCategory::CATEGORYID, '=', $catgoryId); $delete->execute(); } } $action->setInfoMessage('Cateogries saved'); return $action; }
/** * @return Pap_Db_Table_CampaignsCategories */ public static function getInstance() { if(self::$instance === null) { self::$instance = new self; } return self::$instance; }
function init() { $this->setTable(Pap_Db_Table_BannersInCategory::getInstance()); parent::init(); }