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; }
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; }
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; }
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; }