protected function _getSelect($row) { $ret = new Kwf_Model_Select(); foreach ($this->_groupBy as $k => $field) { if (is_array($field)) { $values = $field; $field = $k; $valueFound = false; foreach ($values as $value) { if ($row->{$field} == $value) { $valueFound = true; $ret->whereEquals($field, $value); break; } } if (!$valueFound) { $ret->whereNotEquals($field, $values); } } else { if (is_null($row->{$field})) { $ret->whereNull($field); } else { $ret->whereEquals($field, $row->{$field}); } } } return $ret; }
public function testProcessInputFileUploadedNothingExisting() { $file = tempnam('/tmp', 'uploadtest'); file_put_contents($file, 'foo'); $input = array('File' => array('error' => 0, 'tmp_name' => $file, 'type' => 'plain/text', 'name' => 'test.txt')); $data = $this->_field->processInput($this->_row, $input); $s = new Kwf_Model_Select(); $s->whereNotEquals('id', array($this->_uploadId1, $this->_uploadId2)); $r = $this->_uploadsModel->getRow($s); $this->assertEquals($data, array('File' => $r->id)); }
public function filter($row) { if (is_null($this->_sourceField)) { $value = $row->__toString(); } else { $f = $this->_sourceField; $value = $row->{$f}; } $value = Kwf_Filter::filterStatic($value, 'Ascii'); if ($row instanceof Kwf_Model_Row_Interface) { $select = new Kwf_Model_Select(); foreach ($this->_groupBy as $f) { $select->whereEquals($f, $row->{$f}); } $pk = $row->getModel()->getPrimaryKey(); if ($row->{$pk}) { $select->whereNotEquals($pk, $row->{$pk}); } $x = 0; $unique = $value; while (!$this->_isUnique($unique, $select, $row->getModel())) { $unique = $value . '_' . ++$x; } } else { $where = array(); foreach ($this->_groupBy as $f) { if (is_null($row->{$f})) { $where["ISNULL({$f})"] = ''; } else { $where["{$f} = ?"] = $row->{$f}; } } foreach ($row->getPrimaryKey() as $k => $i) { if (!is_null($i)) { $where["{$k} != ?"] = $i; } } $x = 0; $unique = $value; $where["{$this->_field} = ?"] = $unique; while ($row->getTable()->fetchAll($where)->count() > 0) { $unique = $value . '_' . ++$x; $where["{$this->_field} = ?"] = $unique; } } return $unique; }
public function filter($row) { if (is_null($this->_sourceField)) { $value = $row->__toString(); } else { $f = $this->_sourceField; $value = $row->{$f}; } $value = Kwf_Filter::filterStatic($value, 'Ascii'); $select = new Kwf_Model_Select(); foreach ($this->_groupBy as $f) { $select->whereEquals($f, $row->{$f}); } $pk = $row->getModel()->getPrimaryKey(); if ($row->{$pk}) { $select->whereNotEquals($pk, $row->{$pk}); } $x = 0; $unique = $value; while (!$this->_isUnique($unique, $select, $row->getModel())) { $unique = $value . '_' . ++$x; } return $unique; }
private function _convertSelectForSibling($select, $m) { $s = new Kwf_Model_Select(); if ($p = $select->getPart(Kwf_Model_Select::WHERE_EQUALS)) { foreach ($p as $f => $v) { if (!in_array($f, $this->_getOwnColumns()) && $m->hasColumn($f)) { $s->whereEquals($f, $v); } } } if ($p = $select->getPart(Kwf_Model_Select::WHERE_NOT_EQUALS)) { foreach ($p as $f => $v) { if (!in_array($f, $this->_getOwnColumns()) && $m->hasColumn($f)) { $s->whereNotEquals($f, $v); } } } if ($p = $select->getPart(Kwf_Model_Select::WHERE_NULL)) { foreach ($p as $f) { if (!in_array($f, $this->_getOwnColumns()) && $m->hasColumn($f)) { $s->whereNull($f); } } } if ($p = $select->getPart(Kwf_Model_Select::WHERE_EXPRESSION)) { foreach ($p as $expr) { $e = $this->_convertExprForSibling($expr, $m); if ($e) { $s->where($e); } } } return $s; }
public function jsonMakeHomeAction() { $id = $this->_getParam('id'); $row = Kwf_Model_Abstract::getInstance('Kwc_Root_Category_GeneratorModel')->getRow($id); if (!$row) { throw new Kwf_Exception("didn't find row to set home"); } if (!$this->_hasPermissions($row, 'makeHome')) { throw new Kwf_Exception("Making home this row is not allowed."); } $root = Kwf_Component_Data_Root::getInstance(); $component = $root->getComponentById($id, array('ignoreVisible' => true)); if (!$component->generator->getGeneratorFlag('hasHome')) { throw new Kwf_Exception("Generator doesn't have hasHome flag set"); } if (get_class($component) != 'Kwf_Component_Data') { //da die data klasse auf Kwf_Component_Data_Home angepasst geändert muss kann das nicht //gleichzeitig FirstChildPage oder LinkIntern sein. Daher verbieten. $name = Kwf_Trl::getInstance()->trlStaticExecute(Kwc_Abstract::getSetting($component->componentClass, 'componentName')); throw new Kwf_Exception_Client(trlKwf("You can't set {0} as Home", $name)); } while ($component) { if (Kwc_Abstract::getFlag($component->componentClass, 'hasHome')) { $homeComponent = $component; $component = null; } else { $component = $component->parent; } } if ($row) { $s = new Kwf_Model_Select(); $s->whereEquals('is_home', true); $s->whereNotEquals('id', $id); $oldRows = Kwf_Model_Abstract::getInstance('Kwc_Root_Category_GeneratorModel')->getRows($s); $oldId = $id; $oldVisible = false; foreach ($oldRows as $oldRow) { $component = $root->getComponentById($oldRow->id, array('ignoreVisible' => true)); while ($component) { if (Kwc_Abstract::getFlag($component->componentClass, 'hasHome')) { if ($component === $homeComponent) { $oldId = $oldRow->id; $oldVisible = $oldRow->visible; if (!$this->_hasPermissions($oldRow, 'makeHome')) { throw new Kwf_Exception("Making home this row is not allowed."); } $oldRow->is_home = 0; $oldRow->save(); } $component = null; } else { $component = $component->parent; } } } $row->is_home = 1; $row->save(); $this->view->home = $id; $this->view->oldhome = $oldId; $this->view->oldhomeVisible = $oldVisible; } else { $this->view->error = 'Page not found'; } }
public function testCreatesImageComponentx() { $uploadsModel = Kwf_Model_Abstract::getInstance('Kwc_Basic_Text_Image_UploadsModel'); $upload1 = $uploadsModel->getRows()->current(); $c = $this->_root->getComponentById(1008)->getComponent(); $row = $c->getRow(); $html = '<p><img src="http://www.vivid-planet.com/assets/web/images/structure/logo.png" /></p>'; $html = $row->tidy($html); $this->assertRegExp("#^<p>\n <img src=\"/kwf/kwctest/Kwc_Basic_Text_Root/media/Kwc_Basic_Text_Image_TestComponent/1008-i1/dh-100-[0-9a-z]+/[0-9a-z]+/[0-9]+/logo.png\" width=\"100\" height=\"100\" />\n</p>\$#ms", $html); $cc = array_values($c->getData()->getChildComponents()); $this->assertEquals(1, count($cc)); $this->assertEquals('1008-i1', current($cc)->componentId); $m = Kwc_Basic_Text_Component::createChildModel($c->getData()->componentClass); $rows = $m->getRows($m->select()->whereEquals('component_id', '1008')); $this->assertEquals(1, count($rows)); $row = $rows->current(); $this->assertEquals('image', $row->component); $this->assertEquals('1', $row->nr); $s = new Kwf_Model_Select(); $s->whereNotEquals('id', $upload1->id); $upload2 = $uploadsModel->getRows($s)->current(); $this->assertEquals('image/png', $upload2->mime_type); $this->assertEquals('png', $upload2->extension); $this->assertEquals('logo', $upload2->filename); $this->assertEquals(file_get_contents($upload2->getFileSource()), file_get_contents('http://www.vivid-planet.com/assets/web/images/structure/logo.png')); $m = Kwf_Model_Abstract::getInstance('Kwc_Basic_Text_Image_TestModel'); $rows = $m->getRows($m->select()->whereEquals('component_id', '1008-i1')); $this->assertEquals(1, count($rows)); $row = $rows->current(); $this->assertEquals($upload2->id, $row->kwf_upload_id); }
public function testCountSelectWhereNotEquals() { $s = new Kwf_Model_Select(); $s->whereNotEquals('foo', 'aa'); $this->assertEquals(5, $this->_m->countRows($s)); }