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;
         }
     }
 }
Beispiel #2
0
 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);
 }
Beispiel #4
0
 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;
 }
Beispiel #6
0
 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);
         }
     }
 }
Beispiel #10
0
 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;
 }
Beispiel #13
0
 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);
 }
Beispiel #15
0
 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');
 }
Beispiel #18
0
 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);
 }
Beispiel #19
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 #20
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);
 }
 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;
 }
Beispiel #23
0
 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;
 }
Beispiel #25
0
 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);
 }
Beispiel #26
0
 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);
 }
Beispiel #27
0
 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;
 }
Beispiel #29
0
 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);
     }
 }
Beispiel #30
0
 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));
 }