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)); } }
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++; } } }
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; } } }