Example #1
0
 /**
  * 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);
 }