Beispiel #1
0
 public function testChildCountEager()
 {
     $s = new Kwf_Model_Select();
     $s->whereId(1);
     $s->expr('parent_child_count');
     $this->_modelChild->getRow($s)->parent_child_count;
 }
Beispiel #2
0
 public function testWithExpr()
 {
     $s = new Kwf_Model_Select();
     $s->whereEquals('id', 1);
     $s->expr('foo');
     $row = $this->_modelChild->getRow($s);
     $this->assertEquals($row->foo, 777);
 }
Beispiel #3
0
 public function testParentExpression()
 {
     $s = new Kwf_Model_Select();
     $s->whereEquals('id', 2);
     $s->expr('parent_bar');
     $row = $this->_model->getRow($s);
     $this->assertEquals(5, $row->parent_bar);
 }
Beispiel #4
0
 public function testChildCountExpression()
 {
     $s = new Kwf_Model_Select();
     $s->expr('child_count');
     $s->whereId(1);
     $row = $this->_modelFoo->getRow($s);
     $this->assertEquals(2, $row->child_count);
 }
Beispiel #5
0
 public function testSiblingEager()
 {
     $s = new Kwf_Model_Select();
     $s->whereId(1);
     $s->expr('sibling_value');
     $row = $this->_modelChild->getRow($s);
     $this->assertEquals(105, $row->sibling_value);
 }
Beispiel #6
0
 public function testChildSumWithExpressionOrder()
 {
     $select = new Kwf_Model_Select();
     $s = new Kwf_Model_Select();
     $s->order('foo_value_sum', 'DESC');
     $s->expr('foo_value_sum');
     $row = $this->_modelBar->getRow($s);
     $sum = $row->foo_value_sum;
     $this->assertEquals(6, $sum);
 }
 public function getFulltextContent()
 {
     $ret = array();
     $model = Kwf_Model_Abstract::getInstance('Kwc_Tags_ComponentToTag');
     $select = new Kwf_Model_Select();
     $select->whereEquals('component_id', $this->getData()->dbId);
     $select->expr('tag_name');
     $tags = array();
     foreach ($model->getRows($select) as $tag) {
         $tags[] = $tag->tag_name;
     }
     //TODO: better separator that also understands solr?
     $ret['keywords'] = implode(' ', $tags);
     return $ret;
 }
 public function buildSelect(Request $request, array $options = array())
 {
     $select = new \Kwf_Model_Select();
     if ($request->get('limit')) {
         $select->limit($request->get('limit'), $request->get('start'));
     } else {
         $select->limit(25, $request->get('start'));
     }
     $queryValue = trim($request->get('query'));
     if ($queryValue) {
         $queryColumns = null;
         if (isset($options['queryColumns'])) {
             $queryColumns = $options['queryColumns'];
         }
         $exprs = array();
         if (!$queryColumns) {
             throw new \Kwf_Exception("queryColumns are required to be set");
         }
         if (isset($options['querySplit']) && $options['querySplit']) {
             $queryValue = explode(' ', $queryValue);
         } else {
             $queryValue = array($queryValue);
         }
         foreach ($queryValue as $q) {
             $e = array();
             foreach ($queryColumns as $c) {
                 $e[] = new \Kwf_Model_Select_Expr_Like($c, '%' . $q . '%');
             }
             if (count($e) > 1) {
                 $exprs[] = new \Kwf_Model_Select_Expr_Or($e);
             } else {
                 $exprs[] = $e[0];
             }
         }
         if (count($exprs) > 1) {
             $select->where(new \Kwf_Model_Select_Expr_And($exprs));
         } else {
             $select->where($exprs[0]);
         }
     }
     $restColumns = $this->model->getSerializationColumns(array('rest_read', 'rest'));
     $exprColumns = $this->model->getExprColumns();
     foreach (array_intersect(array_keys($restColumns), $exprColumns) as $i) {
         $select->expr($i);
     }
     return $select;
 }