Esempio n. 1
0
 /**
  * {@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);
     }
 }
Esempio n. 2
0
 /**
  * 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;
 }
Esempio n. 3
0
<?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);
};
Esempio n. 4
0
 public static function getUnusedMedia()
 {
     $select = "select m.* from media m where id NOT IN (SELECT mediaId FROM dishes_media)";
     return Db::fetchAll($select);
 }
Esempio n. 5
0
<?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;
};