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})([0-9]{2})$#', $id, $m)) {
             return null;
         }
         $dateColumn = Kwc_Abstract::getSetting($this->_class, 'dateColumn');
         $select->where("YEAR({$dateColumn}) = ?", $m[1]);
         $select->where("MONTH({$dateColumn}) = ?", $m[2]);
         $select->unsetPart(Kwf_Model_Select::WHERE_ID);
     }
     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);
         $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;
 }
示例#3
0
 public function getTemplateVars()
 {
     $ret = parent::getTemplateVars();
     $ret['title'] = $this->getData()->row->title;
     $ret['publish_date'] = $this->getData()->row->publish_date;
     $ret['author'] = $this->getData()->row->author_firstname . ' ' . $this->getData()->row->author_lastname;
     if ($this->_getPlaceholder('nextLink')) {
         $s = new Kwf_Component_Select();
         $s->whereGenerator('detail');
         $s->order('publish_date', 'ASC');
         $s->where(new Kwf_Model_Select_Expr_Higher('publish_date', new Kwf_Date($this->getData()->row->publish_date)));
         $ret['nextPost'] = $this->getData()->parent->getChildComponent($s);
     }
     if ($this->_getPlaceholder('previousLink')) {
         $s = new Kwf_Component_Select();
         $s->whereGenerator('detail');
         $s->order('publish_date', 'DESC');
         $s->where(new Kwf_Model_Select_Expr_Lower('publish_date', new Kwf_Date($this->getData()->row->publish_date)));
         $ret['previousPost'] = $this->getData()->parent->getChildComponent($s);
     }
     return $ret;
 }