*/ /** * Klasa stNokautBackendActions * * @package stNokautPlugin * @subpackage actions */ class stNokautBackendActions extends autostNokautBackendActions { /** * Przeciążenie aktualizacji config'a */ protected function updateConfigFromRequest() { $config = $this->getRequestParameter('config'); $this->config->set('use_product_code', isset($config['use_product_code']) ? $config['use_product_code'] : null); $this->config->set('ads_tracker', $config['ads_tracker']); foreach (stNokaut::getAvailabilities() as $availability) { $this->config->set('availability_'.$availability->getId(), $config['availability_'.$availability->getId()]); } if (is_dir(sfConfig::get('sf_plugins_dir')."/appAdsTrackerPlugin")) { if ($config['ads_tracker']==1) { appAdsTracker::checkCompare("nokaut",1); } else { appAdsTracker::checkCompare("nokaut",0); } } } public function executeProductEnable() { $ids = $this->getRequestParameter('nokaut[selected]', array()); foreach ($ids as $id) { $c = new Criteria(); $c->add(NokautPeer::PRODUCT_ID, $id); $Nokaut = NokautPeer::doSelectOne($c); if (null === $Nokaut) { $Nokaut = new Nokaut(); $Nokaut->setProductId($id); } $Nokaut->setActive(true); $Nokaut->save(); } return $this->redirect('stNokautBackend/list?page=' . $this->getRequestParameter('page', 1)); } public function executeProductDisable() { $ids = $this->getRequestParameter('nokaut[selected]', array()); /** * @var Nokaut $Nokaut */ foreach (NokautPeer::retrieveByPKs(array_values($ids)) as $Nokaut) { $Nokaut->delete(); } return $this->redirect('stNokautBackend/list?page=' . $this->getRequestParameter('page', 1)); } protected function addFiltersCriteria($c) { if (isset($this->filters['code_is_empty'])) { $criterion = $c->getNewCriterion(ProductPeer::CODE, ''); $criterion->addOr($c->getNewCriterion(ProductPeer::CODE, null, Criteria::ISNULL)); $c->add($criterion); } else if (isset($this->filters['code']) && $this->filters['code'] !== '') { if (method_exists($this, 'filterCriteriaByProductCode')) { $filter_anyway = !$this->filterCriteriaByProductCode($c, $this->filters['code']); } else { $filter_anyway = true; } if ($filter_anyway) { $c->add(ProductPeer::CODE, '%' . $this->filters['code'] . '%', Criteria::LIKE); } } if (isset($this->filters['product_is_empty'])) { $criterion = $c->getNewCriterion(ProductPeer::OPT_NAME, ''); $criterion->addOr($c->getNewCriterion(ProductPeer::OPT_NAME, null, Criteria::ISNULL)); $c->add($criterion); } else if (isset($this->filters['product']) && $this->filters['product'] !== '') { if (method_exists($this, 'filterCriteriaByProductOptName')) { $filter_anyway = !$this->filterCriteriaByProductOptName($c, $this->filters['product']); } else { $filter_anyway = true; } if ($filter_anyway) { $c->add(ProductPeer::OPT_NAME, '%' . $this->filters['product'] . '%', Criteria::LIKE); } } if (isset($this->filters['active_is_empty'])) { $criterion = $c->getNewCriterion(NokautPeer::ACTIVE, ''); $criterion->addOr($c->getNewCriterion(NokautPeer::ACTIVE, null, Criteria::ISNULL)); $c->add($criterion); } else if (isset($this->filters['active']) && $this->filters['active'] !== '') { if ($this->filters['active'] == null || $this->filters['active'] == 0) { $criterion = $c->getNewCriterion(NokautPeer::ACTIVE, ''); $criterion->addOr($c->getNewCriterion(NokautPeer::ACTIVE, null, Criteria::ISNULL)); $c->add($criterion); } if ($this->filters['active'] == 1) { $c->add(NokautPeer::ACTIVE, $this->filters['active']); } } if ($this->filters) { $c->add(NokautPeer::PRODUCT_ID, 0, Criteria::NOT_EQUAL); } $this->getDispatcher()->notify(new sfEvent($this, 'autoStNokautBackendActions.addFiltersCriteria', array('criteria' => $c))); } public function executeAddAll() { NokautPeer::doDeleteAll(); $con = Propel::getConnection(); $con->executeQuery(sprintf( "INSERT INTO %s(%s, %s) (SELECT %s, 1 FROM %s)", NokautPeer::TABLE_NAME, NokautPeer::PRODUCT_ID, NokautPeer::ACTIVE, ProductPeer::ID, ProductPeer::TABLE_NAME )); return $this->redirect('stNokautBackend/list?page=' . $this->getRequestParameter('page', 1)); } public function executeDeleteAll() { NokautPeer::doDeleteAll(); return $this->redirect('stNokautBackend/list?page=' . $this->getRequestParameter('page', 1)); } protected function getNokautOrCreate($id = 'id') { $nokaut = NokautPeer::retrieveByProduct($this->related_object); if (null === $nokaut) { if ($this->hasRequestParameter('id')) { return $this->redirect('@stNokautPlugin?action=create&product_id=' . $this->related_object->getId().'&view=default'); } else { $nokaut = new Nokaut(); $nokaut->setProduct($this->related_object); } } return $nokaut; } public function executeGenerateCustom() { parent::executeGenerateCustom(); $i18n = $this->getContext()->getI18n(); $this->getBreadcrumbsBuilder()->getDefaultBreadcrumbs()->add($i18n->__('Generowanie pliku')); } }