/** * Datatable ordering * * @return null */ public function doOrdering() { if ($this->isOrderable()) { for ($i = 0, $c = count($this->input['order']); $i < $c; $i++) { $order_col = (int) $this->input['order'][$i]['column']; $order_dir = $this->input['order'][$i]['dir']; if (!$this->isColumnOrderable($this->input['columns'][$order_col])) { continue; } $column = $this->getOrderColumnName($order_col); $this->query->orderBy($column, $order_dir); } } }
/** * Sort data * @param Sorting $sorting * @return static */ public function sort(Sorting $sorting) { if (is_callable($sorting->getSortCallback())) { call_user_func($sorting->getSortCallback(), $this->data_source, $sorting->getSort()); return $this; } $sort = $sorting->getSort(); if (!empty($sort)) { foreach ($sort as $column => $order) { $this->data_source = $this->data_source->orderBy($column, $order); } } else { /** * Has the statement already a order by clause? */ $order = $this->data_source->getQueryBuilder()->getClause('order'); if (ArraysHelper::testEmpty($order)) { $this->data_source = $this->data_source->orderBy($this->primary_key); } } return $this; }
public function getChatSessionsLog(MysqlPager $pager = null, $myUserId = null, $cacheMinutes = 0) { $sessions = array(); $qb = new QueryBuilder(); $qb->select(new Field("*", "chat_sess_log"))->from(Tbl::get('TBL_CHAT_SESSIONS_LOG'), "chat_sess_log"); if ($myUserId !== null) { $orClause = new Orx(); $orClause->add($qb->expr()->equal(new Field("user1_id", "chat_sess_log"), $myUserId)); $orClause->add($qb->expr()->equal(new Field("user2_id", "chat_sess_log"), $myUserId)); $qb->andWhere($orClause); } $qb->orderBy(new Field("datetime", "chat_sess_log"), MySqlDatabase::ORDER_DESC); $sqlQuery = $qb->getSQL(); if ($pager !== null) { $this->query = $pager->executePagedSQL($sqlQuery, $cacheMinutes); } else { $this->query->exec($sqlQuery, $cacheMinutes); } if ($this->query->countRecords()) { while (($sesLogRow = $this->query->fetchRecord()) != null) { $chatSession = new ChatSessionLog(); $chatSession->user1 = ChatUser::getObject($sesLogRow['user1_id']); $chatSession->user2 = ChatUser::getObject($sesLogRow['user2_id']); $chatSession->id = $sesLogRow['id']; $chatSession->closedDate = $sesLogRow['datetime']; array_push($sessions, $chatSession); } } return $sessions; }
/** * Merge this QueryBuilder's ORDER BY into the given QueryBuilder. * * @param QueryBuilder $QueryBuilder to merge into * @return QueryBuilder */ public function mergeOrderByInto(QueryBuilder $QueryBuilder) { foreach ($this->orderBy as $currentOrderBy) { $QueryBuilder->orderBy($currentOrderBy['column'], $currentOrderBy['order']); } return $QueryBuilder; }
/** * Search in alyun opensearch * @param string $keyword * @param array $indexArr * @param array $postTypeArr * @param integer $cntPerpage * @param integer $pageNumber * @return array|mixed */ public function search($vars, $keywors, $kwtype, $searchtype) { $options = $this->options; $search_obj = new \CloudsearchSearch($this->client); $search_obj->addIndex($options->getAppName()); $search_obj->setFormat("json"); $queryBuilder = new \QueryBuilder($search_obj); $queryBuilder->channelType($_REQUEST["channeltype"]); $queryBuilder->hits($vars["limitstart"], $vars["row"]); $queryBuilder->orderBy($_REQUEST["orderby"]); $queryBuilder->starttime($_REQUEST["starttime"]); $queryBuilder->typeId($_REQUEST["typeid"]); $queryBuilder->setSearch($searchtype, $kwtype, $keywors); //execute search $json = $search_obj->search(); //convert result return json_decode($json, true); }