protected function _formatSelect($parentData, $select)
 {
     $ret = parent::_formatSelect($parentData, $select);
     if (!$ret) {
         return $ret;
     }
     $dateColumn = Kwc_Abstract::getSetting($this->_class, 'dateColumn');
     $ret->group($this->_getSelectGroup($dateColumn));
     $ret->order($dateColumn, 'DESC');
     if (!$parentData) {
         //hier können wir nicht so wie unten den detail generator verwenden da wir
         //die parent->componentClass nicht wissen
         //wenn also kein $parentData übergeben stimmt der rückgabewert uU nicht
         if ($this->_getModel()->hasColumn('component_id')) {
             $page = $select->getPart(Kwf_Component_Select::WHERE_CHILD_OF);
             if (!$page) {
                 return null;
             }
             $ret->where(new Kwf_Model_Select_Expr_Like('component_id', $page->dbId . '-%'));
         }
     } else {
         //den detail generator vom "haupt" directory holen und das select formatieren lassen
         //der kann korrekt where component_id einfügen oder andere wheres
         $c = $parentData->parent;
         if (is_instance_of($c->componentClass, 'Kwc_Directories_YearMonth_Component')) {
             $c = $c->parent;
         }
         $g = Kwf_Component_Generator_Abstract::getInstance($c->componentClass, 'detail');
         $ret->merge($g->_formatSelect($c, array()));
     }
     return $ret;
 }
 protected function _formatSelect($parentData, $select)
 {
     $select = parent::_formatSelect($parentData, $select);
     if (!$select) {
         return null;
     }
     return $select;
 }
 protected function _formatSelect($parentData, $select)
 {
     $ret = parent::_formatSelect($parentData, $select);
     if (!$ret) {
         return $ret;
     }
     $ret->order('start_date', 'ASC');
     return $ret;
 }
 protected function _formatSelect($parentData, $select)
 {
     $select = parent::_formatSelect($parentData, $select);
     if (!$select) {
         return $select;
     }
     $select->whereEquals('SearchIndex', 'Books');
     return $select;
 }
 protected function _formatSelect($parentData, $select)
 {
     $ret = parent::_formatSelect($parentData, $select);
     if (!$ret) {
         return $ret;
     }
     if (!$select || !$select->getPart(Kwf_Component_Select::IGNORE_VISIBLE)) {
         $ret->where('publish_date <= CURDATE()');
     }
     $ret->order('publish_date', 'DESC');
     return $ret;
 }
 protected function _formatSelect($parentData, $select)
 {
     $ret = parent::_formatSelect($parentData, $select);
     if (!$ret) {
         return $ret;
     }
     $ignoreVisible = $select && $select->getPart(Kwf_Component_Select::IGNORE_VISIBLE);
     if (!$ignoreVisible) {
         $ignoreVisible = Kwf_Component_Data_Root::getShowInvisible();
         $ret->where('date <= CURDATE()');
     }
     $ret->whereEquals('deleted', 0);
     return $ret;
 }
 protected function _getParentDataByRow($row, $select)
 {
     if ($this->_getModel()->hasColumn('component_id')) {
         return parent::_getParentDataByRow($row, $select);
     }
     $constraints = array();
     if ($select->hasPart(Kwf_Component_Select::WHERE_SUBROOT)) {
         $constraints['subroot'] = $select->getPart(Kwf_Component_Select::WHERE_SUBROOT);
     }
     if ($select->hasPart(Kwf_Component_Select::IGNORE_VISIBLE)) {
         $constraints['ignoreVisible'] = $select->getPart(Kwf_Component_Select::IGNORE_VISIBLE);
     }
     return Kwf_Component_Data_Root::getInstance()->getComponentsByClass('Kwc_Shop_Products_Directory_Component', $constraints);
 }
 protected function _formatSelect($parentData, $select)
 {
     $ret = parent::_formatSelect($parentData, $select);
     if (!$ret) {
         return $ret;
     }
     if (!$select || !$select->getPart(Kwf_Component_Select::IGNORE_VISIBLE)) {
         $ret->where('publish_date <= CURDATE()');
         if (Kwc_Abstract::getSetting($this->_class, 'enableExpireDate')) {
             $ret->where('expiry_date >= CURDATE() OR ISNULL(expiry_date)');
         }
     }
     $ret->order('publish_date', 'DESC');
     return $ret;
 }