Ejemplo n.º 1
0
 protected function _formatSelectId(Kwf_Component_Select $select)
 {
     if ($select->hasPart(Kwf_Model_Select::WHERE_ID)) {
         $id = $select->getPart(Kwf_Model_Select::WHERE_ID);
         $select->unsetPart(Kwf_Model_Select::WHERE_ID);
         if (substr($id, 0, 2) == '-l') {
             $select->whereEquals('component', 'link');
         } else {
             if (substr($id, 0, 2) == '-d') {
                 $select->whereEquals('component', 'download');
             } else {
                 if (substr($id, 0, 2) == '-i') {
                     $select->whereEquals('component', 'image');
                 } else {
                     return null;
                 }
             }
         }
         $select->whereEquals('nr', substr($id, 2));
     }
     if ($p = $select->getPart(Kwf_Component_Select::WHERE_CHILD_OF)) {
         $select->where(new Kwf_Model_Select_Expr_Or(array(new Kwf_Model_Select_Expr_StartsWith('component_id', $p->dbId . '-'), new Kwf_Model_Select_Expr_Equal('component_id', $p->dbId))));
     }
     return $select;
 }
Ejemplo n.º 2
0
 protected function _formatSelectId(Kwf_Component_Select $select)
 {
     if ($select->hasPart(Kwf_Model_Select::WHERE_ID)) {
         $id = $select->getPart(Kwf_Model_Select::WHERE_ID);
         if (!preg_match('#^_([0-9]{4})$#', $id, $m)) {
             return null;
         }
         $dateColumn = Kwc_Abstract::getSetting($this->_class, 'dateColumn');
         $select->where("YEAR({$dateColumn}) = ?", $m[1]);
         $select->unsetPart(Kwf_Model_Select::WHERE_ID);
     }
     return $select;
 }
Ejemplo n.º 3
0
 protected function _getChainedChildComponents($parentData, Kwf_Component_Select $select)
 {
     $limitCount = $limitOffset = null;
     if ($select->hasPart(Kwf_Component_Select::LIMIT_COUNT) || $select->hasPart(Kwf_Component_Select::LIMIT_OFFSET)) {
         $limitCount = $select->getPart(Kwf_Component_Select::LIMIT_COUNT);
         $limitOffset = $select->getPart(Kwf_Component_Select::LIMIT_OFFSET);
         $select->unsetPart(Kwf_Component_Select::LIMIT_COUNT);
         $select->unsetPart(Kwf_Component_Select::LIMIT_OFFSET);
     }
     $m = $this->getModel();
     $ret = parent::_getChainedChildComponents($parentData, $select);
     if ($m && $select->getPart(Kwf_Component_Select::IGNORE_VISIBLE) !== true && $parentData) {
         //kann nur gemacht werden nur wenn parentData vorhanden
         $ids = array();
         foreach ($ret as $k => $c) {
             $ids[] = $parentData->dbId . $this->getIdSeparator() . $this->_getIdFromRow($c);
         }
         foreach ($this->_getRows($ids) as $r) {
             if ($r) {
                 $visible[$r->component_id] = $r->visible;
             }
         }
         foreach ($ret as $k => $c) {
             $id = $parentData->dbId . $this->getIdSeparator() . $this->_getIdFromRow($c);
             if (!isset($visible[$id]) || !$visible[$id]) {
                 unset($ret[$k]);
             }
         }
     }
     $ret = array_values($ret);
     if ($limitOffset) {
         $ret = array_slice($ret, $limitOffset);
     }
     if ($limitCount) {
         $ret = array_slice($ret, 0, $limitCount);
     }
     return $ret;
 }
Ejemplo n.º 4
0
 protected function _formatSelectId(Kwf_Component_Select $select)
 {
     if ($select->hasPart(Kwf_Model_Select::WHERE_ID)) {
         $id = $select->getPart(Kwf_Model_Select::WHERE_ID);
         $separator = substr($id, 0, 1);
         if (in_array($separator, array('_', '-'))) {
             $id = substr($id, 1);
             if ($separator != $this->_idSeparator || $this->_hasNumericIds && !is_numeric($id)) {
                 return null;
             }
             $select->whereEquals($this->_idColumn, $id);
             $select->unsetPart(Kwf_Model_Select::WHERE_ID);
         }
     }
     return $select;
 }