示例#1
0
 protected function _buildQueryWhere(KDatabaseQueryInterface $query)
 {
     $state = $this->getState();
     if ($state->extman_extension_id) {
         $query->where('tbl.extman_extension_id = :extension_id')->bind(array('extension_id' => $state->extman_extension_id));
     }
     if ($state->dependent_id) {
         $query->where('tbl.dependent_id = :dependent_id')->bind(array('dependent_id' => $state->dependent_id));
     }
 }
 protected function _buildQueryWhere(KDatabaseQueryInterface $query)
 {
     $state = $this->getState();
     if ($state->stale) {
         $query->where('(status = 1 AND NOW() > DATE_ADD(modified_on, INTERVAL 5 MINUTE))');
     }
     if (is_numeric($state->status) || !empty($state->status)) {
         $query->where('tbl.status IN :status')->bind(array('status' => (array) $state->status));
     }
     if (is_numeric($state->queue) || !empty($state->queue)) {
         $query->where('tbl.queue IN :queue')->bind(array('queue' => (array) $state->queue));
     }
 }
示例#3
0
 protected function _buildQueryWhere(KDatabaseQueryInterface $query)
 {
     $state = $this->getState();
     if ($state->container) {
         $query->where('tbl.files_container_id = :container_id')->bind(array('container_id' => $this->getContainer()->id));
     }
     if ($state->folder !== false) {
         $query->where('tbl.folder = :folder')->bind(array('folder' => ltrim($state->folder, '/')));
     }
     if ($state->paths) {
         $i = 0;
         foreach ((array) $state->paths as $path) {
             $file = ltrim(basename(' ' . strtr($path, array('/' => '/ '))));
             $folder = dirname($path);
             if ($folder === '.') {
                 $folder = '';
             }
             $query->where("(tbl.filename = :filename{$i} AND tbl.folder = :folder{$i})", 'OR')->bind(array('filename' . $i => $file, 'folder' . $i => $folder));
             $i++;
         }
     }
 }
示例#4
0
    protected function _buildQuerySearchKeyword(KDatabaseQueryInterface $query)
    {
        $state  = $this->getState();
        $search = $state->search;

        if (!empty($search)) 
        {
            switch ($state->search_by) 
            {
                case 'exact':
                    $query->where('(tbl.title LIKE :search OR tbl.description LIKE :search)')
                        ->bind(array('search' => '%'.$search.'%'));

                    break;
                case 'any':
                    $query->where('(tbl.title RLIKE :search OR tbl.description RLIKE :search)')
                        ->bind(array('search' => implode('|', explode(' ', $search))));

                    break;
                case 'all':
                    $i = 0;
                    foreach (explode(' ', $search) as $keyword) {
                        $query->where("(tbl.title LIKE :search$i OR tbl.description LIKE :search$i)")
                            ->bind(array("search$i" => '%'.$keyword.'%'));
                        $i++;
                    }

                    break;
            }
        }
    }