public function getChoices()
 {
     $page_filters_ids = array();
     $page = sfPlopPagePeer::retrieveByPK($this->getOption('page_id)'));
     $q = sfPlopPageQuery::create()->filterByTreeLevel($page->getLevel() + 1);
     $page_filters = $page->getBranch($q);
     foreach ($page_filters as $page_filter) {
         $page_filters_ids[] = $page_filter->getId();
     }
     $filters = sfPlopSlotConfigQuery::create()->innerJoinsfPlopSlot()->filterByPageId($page_filters_ids)->find();
     foreach ($filters as $i => $filter) {
         if (!$filter->getTemplate() != 'GoogleMapsFilter' && !$filter->getSlot()->ispublished()) {
             unset($filters[$i]);
         }
     }
     $options_for_filter = array('' => '');
     foreach ($filters as $filter_object) {
         $options_for_filter[$filter_object->getValue($this->getOption('page_culture)'))] = $filter_object->getValue($this->getOption('page_culture)'));
     }
     $this->setOption('choices', array_keys($options_for_filter));
     return parent::getChoices();
 }
示例#2
0
 /**
  * Override the doSave function to do some custom tweaks.
  * @param PropelPDO $con
  */
 protected function doSave(PropelPDO $con)
 {
     if ($this->isColumnModified(sfPlopPagePeer::TEMPLATE_ID)) {
         $tpl = sfPlopPagePeer::retrieveByPK($this->getTemplateId());
         if ($tpl && $tpl->getTemplateId()) {
             $tplTpl = sfPlopPagePeer::retrieveByPK($tpl->getTemplateId());
             if ($tplTpl && $tplTpl->hasSlotArea()) {
                 $this->setTemplateId($tpl->getId());
             }
         } elseif (!$tpl) {
             $this->setTemplateId(null);
         }
         if (!$this->isSlotable()) {
             $this->deleteOwnSlots();
         }
         $this->getPeer()->removeInstanceFromPool($this);
         $oldTemplate = $this->getPeer()->retrieveByPK($this->getId());
         if ($oldTemplate) {
             $oldTemplateId = $oldTemplate->getTemplateId();
         }
         if ($oldTemplateId != $this->getTemplateId()) {
             $this->deleteUnusedInheritedSlotConfigs($oldTemplateId);
         }
     }
     return parent::doSave($con);
 }