public function orderConfirmed(Kwc_Shop_Cart_Order $order) { if (!$order->voucher_code) { return; } $c = Kwf_Component_Data_Root::getInstance()->getComponentByDbId($order->checkout_component_id); foreach ($c->getComponent()->getSumRows($order) as $sumRow) { if (isset($sumRow['type']) && $sumRow['type'] == 'voucher') { $s = new Kwf_Model_Select(); $s->whereEquals('code', $order->voucher_code); $row = Kwf_Model_Abstract::getInstance('Kwc_Shop_Cart_Plugins_Voucher_Vouchers')->getRow($s); $remainingAmount = $row->amount - $row->used_amount + $sumRow['amount']; $h = $row->createChildRow('history'); $h->amount = -$sumRow['amount']; $h->order_id = $order->id; $h->date = $order->date; $h->comment = trlKwf('Order') . ' ' . $order->order_number; $h->save(); //verbrauchten betrag auch noch bei der order speichern $order->voucher_amount = (double) $h->amount; $order->voucher_remaining_amount = (double) $remainingAmount; $order->save(); break; } } }
public function testChildCountEager() { $s = new Kwf_Model_Select(); $s->whereId(1); $s->expr('parent_child_count'); $this->_modelChild->getRow($s)->parent_child_count; }
protected function _getLanguageRow($parentData) { $s = new Kwf_Model_Select(); $s->whereEquals('domain', $parentData->id); $s->whereEquals('master', 1); return $this->_getModel()->getRow($s); }
public function testIgnoreDeleted() { $model = Kwf_Model_Abstract::getInstance('Kwf_Model_Union_DeletedFlag_TestModel'); $s = new Kwf_Model_Select(); $s->ignoreDeleted(); $this->assertEquals($model->countRows($s), 3); }
/** * returns a list of all visible favourite componentIds */ public static function getFavouriteComponentIds($favouritesModel) { $ret = array(); $userId = Kwf_Registry::get('userModel')->getAuthedUserId(); if ($userId) { $cacheIdUser = '******' . $userId; $ret = Kwf_Cache_Simple::fetch($cacheIdUser, $success); if (!$success) { // get all favourites related to user $select = new Kwf_Model_Select(); $select->whereEquals('user_id', $userId); $favouritesModel = Kwf_Model_Abstract::getInstance($favouritesModel); $favourites = $favouritesModel->getRows($select); $componentIds = array(); foreach ($favourites as $favourite) { $component = Kwf_Component_Data_Root::getInstance()->getComponentById($favourite->component_id); // check if component is visible and existent if ($component) { // if component is visible create list of users related to component $componentIds[] = $component->componentId; } } // cache relation of visible components to user Kwf_Cache_Simple::add($cacheIdUser, $componentIds); $ret = $componentIds; } } return $ret; }
public function testParentOrder() { $s = new Kwf_Model_Select(); $s->order('if_field', 'DESC'); $row = $this->_modelChild->getRow($s); $this->assertEquals(207, $row->if_field); }
public function updatePages($cmp) { $s = new Kwf_Model_Select(); $s->whereEquals('component_id', $cmp->dbId); $rows = $this->getRows($s); $rowsByTargetPageId = array(); foreach ($rows as $r) { $rowsByTargetPageId[$r->target_page_id] = $r; } $childPagesComponentSelect = array('ignoreVisible' => true); $pos = 0; foreach ($cmp->getPage()->getChildPages($childPagesComponentSelect) as $childPage) { if (is_numeric($childPage->dbId)) { $id = $childPage->dbId; } else { $id = substr(md5($childPage->dbId), 0, 5); } $pos++; if (isset($rowsByTargetPageId[$childPage->dbId])) { $row = $rowsByTargetPageId[$childPage->dbId]; unset($rowsByTargetPageId[$childPage->dbId]); } else { $row = $this->createRow(); $row->target_page_id = $childPage->dbId; $row->visible = false; } $row->child_id = $id; $row->pos = $pos; $row->component_id = $cmp->dbId; $row->save(); } foreach ($rowsByTargetPageId as $row) { $row->delete(); } }
private function _getNetworks($currentPage) { $networks = array(); foreach (Kwf_Model_Abstract::getInstance('Kwc_Advanced_SocialBookmarks_AvaliableModel')->getRows() as $n) { $networks[$n->id] = $n->toArray(); } $s = new Kwf_Model_Select(); $s->order('pos'); $ret = array(); foreach ($this->getRow()->getChildRows('Networks', $s) as $net) { if (isset($networks[$net->network_id])) { $icon = '/Kwc/Advanced/SocialBookmarks/Icons/' . $this->_getSetting('iconSet') . '/'; if (file_exists(KWF_PATH . $icon . $net->network_id . '.jpg')) { $icon .= $net->network_id . '.jpg'; } else { if (file_exists(KWF_PATH . $icon . $net->network_id . '.png')) { $icon .= $net->network_id . '.png'; } else { $icon = false; } } if ($icon) { $icon = '/assets/kwf' . $icon; } $url = str_replace('{0}', $currentPage->getAbsoluteUrl(), $networks[$net->network_id]['url']); $ret[] = array('id' => $net->network_id, 'name' => $networks[$net->network_id]['name'], 'url' => $url, 'icon' => $icon); } } return $ret; }
public function processInput(array $postData) { parent::processInput($postData); $this->_accessByMailRow = false; if (isset($postData['key'])) { $s = new Kwf_Model_Select(); $s->whereEquals('key', $postData['key']); $s->where(new Kwf_Model_Select_Expr_Higher('date', new Kwf_Date(time() - 24 * 60 * 60))); $this->_accessByMailRow = Kwf_Model_Abstract::getInstance('Kwf_Component_Plugin_AccessByMail_Model')->getRow($s); if (!$this->_accessByMailRow) { $this->_errors[] = array('message' => trlKwf("Invalid or expired Link. Please request a new one.")); } else { $session = new Kwf_Session_Namespace('kwc_' . $this->getData()->parent->componentId); $session->login = true; $session->key = $postData['key']; } } else { $session = new Kwf_Session_Namespace('kwc_' . $this->getData()->parent->componentId); if ($session->login) { $s = new Kwf_Model_Select(); $s->whereEquals('key', $session->key); $this->_accessByMailRow = Kwf_Model_Abstract::getInstance('Kwf_Component_Plugin_AccessByMail_Model')->getRow($s); } } }
public function testExprCompareHigherInSelect() { $select = new Kwf_Model_Select(); $select->whereEquals('expr_foo_bar_higher', true); $count = $this->_modelChild->countRows($select); $this->assertEquals(2, $count); }
public function update() { parent::update(); $select = new Kwf_Model_Select(); $select->where(new Kwf_Model_Select_Expr_Or(array(new Kwf_Model_Select_Expr_Equals('dimension', 'customcrop'), new Kwf_Model_Select_Expr_Equals('dimension', 'custombestfit')))); $select->order('dimension', 'asc'); $rows = Kwf_Model_Abstract::getInstance('Kwc_Abstract_Image_Model')->getRows($select); foreach ($rows as $row) { if ($row->dimension == 'customcrop') { $row->dimension = 'custom'; $row->crop_x = null; $row->crop_y = null; $row->crop_width = null; $row->crop_heigth = null; } else { if ($row->dimension == 'custombestfit') { $row->dimension = 'custom'; if ($row->imageExists()) { $targetSize = array('width' => $row->width, 'height' => $row->height, 'cover' => false); $outputSize = Kwf_Media_Image::calculateScaleDimensions($row->getParentRow('Image')->getFileSource(), $targetSize); $row->width = $outputSize['width']; $row->height = $outputSize['height']; $row->crop_x = $outputSize['crop']['x']; $row->crop_y = $outputSize['crop']['y']; $row->crop_width = $outputSize['crop']['width']; $row->crop_height = $outputSize['crop']['height']; } } } $row->save(); } }
protected function _getSelect(ParamFetcher $paramFetcher, Request $request) { $select = new \Kwf_Model_Select(); $select->limit($paramFetcher->get('limit'), $paramFetcher->get('start')); $queryValue = trim($request->get('query')); if ($queryValue) { $exprs = array(); if (!$this->_queryColumns) { throw new \Kwf_Exception("_queryColumns are required to be set"); } if ($this->_querySplit) { $queryValue = explode(' ', $queryValue); } else { $queryValue = array($queryValue); } foreach ($queryValue as $q) { $e = array(); foreach ($this->_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]); } } return $select; }
public function getRow($select) { if (!is_object($select)) { $select = new Kwf_Model_Select($select); } $id = null; if ($select->getPart(Kwf_Model_Select::WHERE_EQUALS)) { foreach ($select->getPart(Kwf_Model_Select::WHERE_EQUALS) as $k => $i) { if ($k == 'id') { $id = $i; } } } $componentId = $this->_getComponentId($select); if ($id && !$componentId) { //only id passed, in detail form controller $c = Kwf_Component_Data_Root::getInstance()->getComponentByDbId($id, array('ignoreVisible' => true)); $select->whereEquals('component_id', $c->parent->chained->dbId); $select->whereEquals('id', $c->id); $componentId = $c->parent->dbId; } else { if ($componentId && $id) { $c = Kwf_Component_Data_Root::getInstance()->getComponentByDbId($componentId, array('ignoreVisible' => true)); $select->whereEquals('component_id', $c->chained->dbId); $select->whereEquals('id', $id); } else { throw new Kwf_Exception("invalid select"); } } $proxyRow = $this->_proxyModel->getRow($select); return $this->getRowByProxiedRow($proxyRow, $componentId); }
public function getUserToLoginByParams($redirectBackUrl, array $params) { $userData = $this->_getUserDataByParams($redirectBackUrl, $params); $s = new Kwf_Model_Select(); $s->whereEquals('facebook_user_id', $userData->id); return $this->_model->getRow($s); }
public function setUp() { parent::setUp(); $select = new Kwf_Model_Select(); $select->whereEquals('active', 1); $this->_model = new Kwf_Model_Union(array('models' => array('a' => 'Kwf_Model_Union_MergeSelect_Model1', 'b' => array('model' => 'Kwf_Model_Union_MergeSelect_Model2', 'select' => $select)), 'columnMapping' => 'Kwf_Model_Union_MergeSelect_TestMapping')); }
protected function _getRecipient() { $rs = $this->_getMailComponent()->getRecipientSources(); $recipientId = $this->_getParam('recipientId'); if (!$recipientId) { $component = Kwf_Component_Data_Root::getInstance()->getComponentById($this->_getParam('componentId'), array('ignoreVisible' => true)); $source = reset($rs); $model = Kwf_Model_Abstract::getInstance($source['model']); $select = $model->select(); if ($model->hasColumn('newsletter_component_id')) { $select->whereEquals('newsletter_component_id', $component->parent->componentId); } if (isset($source['select'])) { $select->merge($source['select']); } $row = $model->getRow($select); if (!$row) { throw new Kwf_Exception_Client(trlKwf('Preview cannot be shown because it needs at least one recipient of this newsletter')); } $recipientId = $row->id; } $select = new Kwf_Model_Select(); $select->whereEquals('id', $recipientId); $subscribeModelKey = $this->_getParam('subscribeModelKey'); if (!$subscribeModelKey) { $subscribeModelKey = current(array_keys($rs)); } $model = $rs[$subscribeModelKey]['model']; $row = Kwf_Model_Abstract::getInstance($model)->getRow($select); return $row; }
public function jsonParseFilesAction() { $pattern = array('start' => array('** Exception **', '** Thrown **', '** Message **', '** ExceptionDetail **', '** REQUEST_URI **', '** HTTP_REFERER **', '** User **', '** Time **', '** _USERAGENT **', '** _GET **', '** _POST **', '** _SERVER **', '** _FILES **', '** _SESSION **'), 'end' => array('-- Exception --', '-- Thrown --', '-- Message --', '-- ExceptionDetail --', '-- REQUEST_URI --', '-- HTTP_REFERER --', '-- User --', '-- Time --', '-- _USERAGENT --', '-- _GET --', '-- _POST --', '-- _SERVER --', '-- _FILES --', '-- _SESSION --')); $files = glob('log/*/*/*'); if (empty($files)) { throw new Kwf_Exception_Client(trlKwf('No log files found.')); } $data = array(); foreach ($files as $filename) { $logMessage = array(); $fileInfo = pathinfo($filename); $folders = explode('/', $fileInfo['dirname']); $file = file_get_contents($filename); for ($i = 0; $i < count($pattern['start']); $i++) { preg_match_all('/(' . preg_quote($pattern['start'][$i]) . ')(.+?)(' . preg_quote($pattern['end'][$i]) . ')/si', $file, $matches); if (empty($matches[1])) { continue; } $logMessage[trim(str_replace('**', '', $matches[1][0]))] = trim($matches[2][0]); } $select = new Kwf_Model_Select(); $select->whereEquals('filename', $fileInfo['filename']); if ($this->_getModel()->countRows($select) > 0) { continue; } $data[] = array('type' => $folders[1], 'exception' => isset($logMessage['Exception']) ? $logMessage['Exception'] : '', 'thrown' => isset($logMessage['Thrown']) ? $logMessage['Thrown'] : '', 'message' => isset($logMessage['Message']) ? $logMessage['Message'] : '', 'exception_detail' => isset($logMessage['ExceptionDetail']) ? $logMessage['ExceptionDetail'] : '', 'request_uri' => isset($logMessage['REQUEST_URI']) ? $logMessage['REQUEST_URI'] : '', 'http_referer' => isset($logMessage['HTTP_REFERER']) ? $logMessage['HTTP_REFERER'] : '', 'user' => isset($logMessage['User']) ? $logMessage['User'] : '', 'useragent' => isset($logMessage['_USERAGENT']) ? $logMessage['_USERAGENT'] : '', 'get' => isset($logMessage['_GET']) ? $logMessage['_GET'] : '', 'post' => isset($logMessage['_POST']) ? $logMessage['_POST'] : '', 'server' => isset($logMessage['_SERVER']) ? $logMessage['_SERVER'] : '', 'files' => isset($logMessage['_FILES']) ? $logMessage['_FILES'] : '', 'session' => isset($logMessage['_SESSION']) ? $logMessage['_SESSION'] : '', 'filename' => $fileInfo['filename'], 'date' => $folders[2] . ' ' . $logMessage['Time']); } $this->_getModel()->import(Kwf_Model_Abstract::FORMAT_ARRAY, $data); $this->view->message = trlKwf('All files successfully parsed'); }
public function __get($name) { if ($name == 'name' || $name == 'col_span' || $name == 'total_columns' || $name == 'columns') { if (!isset($this->_rows)) { $select = new Kwf_Model_Select(); $select->whereEquals('component_id', $this->component_id); $select->order('pos'); $this->_rows = $this->getModel()->getRows($select); } $columnTypes = Kwc_Abstract::getSetting($this->getModel()->getComponentClass(), 'columns'); $typeName = array_keys($columnTypes); $typeName = array_shift($typeName); if ($parentRow = $this->getParentRow('Component')) { $typeName = $parentRow->type; } $type = $columnTypes[$typeName]; if ($name == 'columns') { return array_sum($type['colSpans']); } if ($name == 'total_columns') { return count($type['colSpans']); } unset($columnTypes); $i = 0; $countInvisible = 0; foreach ($this->_rows as $row) { if (!$row->visible) { $countInvisible++; $i++; if ($this == $row) { if ($name == 'name') { return trlKwf('Invisible'); } else { if ($name == 'col_span') { return max($type['colSpans']); } } } else { continue; } } $number = $i - $countInvisible; while ($number >= count($type['colSpans'])) { $number -= count($type['colSpans']); } if ($this == $row) { if ($name == 'name') { return trlKwf('Column {0}, width {1}%', array($number + 1, floor($type['colSpans'][$number] / array_sum($type['colSpans']) * 100))); } else { if ($name == 'col_span') { return $type['colSpans'][$number]; } } } $i++; } } return parent::__get($name); }
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); }
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); }
public function getSelect() { $select = parent::getSelect(); $s = new Kwf_Model_Select(); $s->whereEquals('category_id', $this->getData()->parent->id); $select->where(new Kwf_Model_Select_Expr_Child_Contains('Categories', $s)); return $select; }
public function getAuthedUser() { //return first user $select = new Kwf_Model_Select(); $select->where(new Kwf_Model_Select_Expr_Equal('id', $this->_authedUserId)); $row = $this->getRow($select); return $row; }
public function testOrder() { $s = new Kwf_Model_Select(); $s->whereEquals('id', 1); $s->order('foo'); $row = $this->_modelChild->getRow($s); $this->assertEquals($row->foo, 777); }
protected function _getSelect() { $ret = parent::_getSelect(); if ($this->_getParam('valuesqry') == 'true') { $ret = new Kwf_Model_Select(); $ret->whereEquals('id', explode('|', $this->_getParam('query'))); } return $ret; }
public function load($row) { if ($this->getFieldname() == 'author_id') { $select = new Kwf_Model_Select(); $select->whereEquals('id', $this->_getChainedRow($row)->author_id); return Kwf_Model_Abstract::getInstance('Kwc_Articles_Directory_AuthorsModel')->getRow($select)->name; } parent::load($row); }
public function testUpdateRowsIgnoreDeleted() { $model = $this->_m; $model->getRow(1)->delete(); $s = new Kwf_Model_Select(array('ignoreDeleted' => true)); $s->where(new Kwf_Model_Select_Expr_Or(array(new Kwf_Model_Select_Expr_Equals('id', 1), new Kwf_Model_Select_Expr_Equals('id', 2)))); $model->updateRows(array('foo' => 'newBar'), $s); $this->assertEquals('newBar', $model->getRow(2)->foo); }
public function testChildSumWithExpressionOrderLazy() { $select = new Kwf_Model_Select(); $s = new Kwf_Model_Select(); $s->order('foo_value_sum', 'DESC'); $row = $this->_modelBar->getRow($s); $sum = $row->foo_value_sum; $this->assertEquals(6, $sum); }
public function getSelect() { $class = $this->getData()->parent->parent->componentClass; $childReference = Kwc_Abstract::hasSetting($class, 'childReferenceName') ? Kwc_Abstract::getSetting($class, 'childReferenceName') : 'Categories'; $select = parent::getSelect(); $s = new Kwf_Model_Select(); $s->whereEquals('category_id', $this->getData()->parent->id); $select->where(new Kwf_Model_Select_Expr_Child_Contains($childReference, $s)); return $select; }
public function testChildReference() { $select = new Kwf_Model_Select(); $select->where(new Kwf_Model_Select_Expr_Parent('Parent', new Kwf_Model_Select_Expr_Equal('foo', 5))); $rows = $this->_modelChild->getRows($select); $this->assertEquals(count($rows), 3); foreach ($rows as $row) { $this->assertEquals($row->getParentRow('Parent')->foo, 5); } }
public function testChildContains2() { $model = Kwf_Model_Abstract::getInstance('Kwf_Model_Union_Dependent_Parent'); $childSelect = new Kwf_Model_Select(); $childSelect->whereEquals('foo', 'xx'); $select = new Kwf_Model_Select(); $select->where(new Kwf_Model_Select_Expr_Child_Contains('TestModel', $childSelect)); $this->assertEquals(2, count($model->getRows($select))); $this->assertEquals(2, $model->countRows($select)); }