/** * {@inheritdoc} * * @param integer|string|object $fetchType * @return integer|string|array */ public function execute($fetchType = null) { if (!$fetchType) { $fetchType = $this->fetchType; } switch ($fetchType) { case !is_int($fetchType): return Db::fetchObjects($this->getSQL(), $this->params, $fetchType); case \PDO::FETCH_CLASS: return Db::fetchObjects($this->getSQL(), $this->params); case \PDO::FETCH_ASSOC: default: return Db::fetchAll($this->getSQL(), $this->params); } }
/** * Process * * @param array $settings * @return \Bluz\Grid\Data */ public function process(array $settings = []) { // process filters $where = []; if (!empty($settings['filters'])) { foreach ($settings['filters'] as $column => $filters) { foreach ($filters as $filter => $value) { if ($filter == Grid\Grid::FILTER_LIKE) { $value = '%' . $value . '%'; } $where[] = $column . ' ' . $this->filters[$filter] . ' ' . Proxy\Db::quote($value); } } } // process orders $orders = []; if (!empty($settings['orders'])) { // Obtain a list of columns foreach ($settings['orders'] as $column => $order) { $column = Proxy\Db::quoteIdentifier($column); $orders[] = $column . ' ' . $order; } } // process pages $limit = ' LIMIT ' . ($settings['page'] - 1) * $settings['limit'] . ', ' . $settings['limit']; // prepare query $connect = Proxy\Config::getData('db', 'connect'); if (strtolower($connect['type']) == 'mysql') { // MySQL $dataSql = preg_replace('/SELECT\\s(.*?)\\sFROM/is', 'SELECT SQL_CALC_FOUND_ROWS $1 FROM', $this->source, 1); $countSql = 'SELECT FOUND_ROWS()'; } else { // other $dataSql = $this->source; $countSql = preg_replace('/SELECT\\s(.*?)\\sFROM/is', 'SELECT COUNT(*) FROM', $this->source, 1); if (sizeof($where)) { $countSql .= ' WHERE ' . join(' AND ', $where); } } if (sizeof($where)) { $dataSql .= ' WHERE ' . join(' AND ', $where); } if (sizeof($orders)) { $dataSql .= ' ORDER BY ' . join(', ', $orders); } $dataSql .= $limit; // run queries $data = Proxy\Db::fetchAll($dataSql); $total = Proxy\Db::fetchOne($countSql); $gridData = new Grid\Data($data); $gridData->setTotal($total); return $gridData; }
<?php /** * Grid of users * * @author Anton Shevchuk * @created 02.08.12 18:39 * @return closure */ namespace Application; use Application\Users; use Bluz\Controller\Controller; use Bluz\Proxy\Db; use Bluz\Proxy\Layout; /** * @privilege Management * @return \closure */ return function () { /** * @var Controller $this */ Layout::setTemplate('dashboard.phtml'); Layout::breadCrumbs([Layout::ahref('Dashboard', ['dashboard', 'index']), __('Users')]); $grid = new Users\Grid(); $grid->setModule($this->module); $grid->setController($this->controller); $this->assign('roles', Db::fetchAll('SELECT * FROM acl_roles')); $this->assign('grid', $grid); };
public static function getUnusedMedia() { $select = "select m.* from media m where id NOT IN (SELECT mediaId FROM dishes_media)"; return Db::fetchAll($select); }
<?php /** * Grid of users * * @author Anton Shevchuk * @created 02.08.12 18:39 * @return closure */ namespace Application; use Application\Users; use Bluz\Proxy\Db; use Bluz\Proxy\Layout; return function () use($view, $module, $controller) { /** * @var Bootstrap $this * @var \Bluz\View\View $view */ Layout::setTemplate('dashboard.phtml'); Layout::breadCrumbs([$view->ahref('Dashboard', ['dashboard', 'index']), __('Users')]); $grid = new Users\Grid(); $grid->setModule($module); $grid->setController($controller); $view->roles = Db::fetchAll('SELECT * FROM acl_roles'); $view->grid = $grid; };