Changeset 82566 in spip-zone


Ignore:
Timestamp:
May 18, 2014, 6:56:19 PM (5 years ago)
Author:
marcimat@…
Message:

Tabulations homogènes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/indexer/trunk/lib/Sphinx/SphinxQLQuery.php

    r82558 r82566  
    77 */
    88class SphinxQLQuery{
    9     private $select  = [];
    10     private $from    = [];
    11     private $where   = [];
    12     private $groupby = [];
    13     private $orderby = [];
    14     private $limit   = '';
    15     private $facet   = [];
     9        private $select  = [];
     10        private $from    = [];
     11        private $where   = [];
     12        private $groupby = [];
     13        private $orderby = [];
     14        private $limit   = '';
     15        private $facet   = [];
    1616
    1717        public function __construct($query_description=array()) {
     
    2121        }
    2222
    23     public function select($select) {
    24         $this->select[] = $select;
    25         return $this;
    26     }
    27 
    28     public function from($from) {
    29         $this->from[] = $from;
    30         return $this;
    31     }
    32 
    33 
    34     public function where($where) {
    35         $this->where[] = $where;
    36         return $this;
    37     }
    38 
    39     public function orderby($orderby) {
    40         $this->orderby[] = $orderby;
    41         return $this;
    42     }
    43 
    44     public function groupby($groupby) {
    45         $this->groupby[] = $groupby;
    46         return $this;
    47     }
    48 
    49     public function limit($limit) {
    50         $this->limit = $limit;
    51         return $this;
    52     }
    53 
    54     public function facet($facet) {
    55         $this->facet[] = $facet;
    56         return $this;
    57     }
    58 
    59     function quote($value, $type='') {
     23        public function select($select) {
     24                $this->select[] = $select;
     25                return $this;
     26        }
     27
     28        public function from($from) {
     29                $this->from[] = $from;
     30                return $this;
     31        }
     32
     33
     34        public function where($where) {
     35                $this->where[] = $where;
     36                return $this;
     37        }
     38
     39        public function orderby($orderby) {
     40                $this->orderby[] = $orderby;
     41                return $this;
     42        }
     43
     44        public function groupby($groupby) {
     45                $this->groupby[] = $groupby;
     46                return $this;
     47        }
     48
     49        public function limit($limit) {
     50                $this->limit = $limit;
     51                return $this;
     52        }
     53
     54        public function facet($facet) {
     55                $this->facet[] = $facet;
     56                return $this;
     57        }
     58
     59        function quote($value, $type='') {
    6060                return
    6161                        (is_numeric($value)) ? strval($value) :
     
    7171                }
    7272        }
    73        
     73
    7474        public function array2query($query_description){
    7575                if (is_array($query_description)){
     
    9494                                }
    9595                        }
    96                        
     96
    9797                        // Fulltext search string (optional)
    9898                        if (isset($query_description['fulltext']) and is_string($query_description['fulltext'])){
     
    114114                                $this->generate_snippet($field, $snippet_words, $limit);
    115115                        }
    116                        
     116
    117117                        // All filters
    118118                        $as_count = 0;
     
    247247        }
    248248
    249     public function get() {
    250         $query = [];
    251         $this->removeEmpty();
    252         if ($this->select)   $query[] = 'SELECT '   . implode(', ', $this->select);
    253         if ($this->from)     $query[] = 'FROM '     . implode(', ', $this->from);
    254         if ($this->where)    $query[] = 'WHERE ('   . implode(') AND (', $this->where) . ')';
    255         if ($this->groupby)  $query[] = 'GROUP BY ' . implode(', ', $this->groupby);
    256         if ($this->orderby)  $query[] = 'ORDER BY ' . implode(', ', $this->orderby);
    257         if ($this->limit)    $query[] = 'LIMIT '    . $this->limit;
    258         if ($this->facet)    $query[] = 'FACET '    . implode(' FACET ', $this->facet);
    259         return implode(' ', $query);
    260     }
    261 
    262     private function removeEmpty() {
    263         foreach (['select', 'from', 'where', 'groupby', 'orderby', 'facet'] as $key) {
    264             $this->$key = array_filter($this->$key);
    265             #$this->$key = array_filter($this->key, 'strlen'); // leaves 0
    266         }
    267     }
    268 
    269     public function __tostring() {
    270         return $this->get();
    271     }
     249        public function get() {
     250                $query = [];
     251                $this->removeEmpty();
     252                if ($this->select)   $query[] = 'SELECT '   . implode(', ', $this->select);
     253                if ($this->from)     $query[] = 'FROM '     . implode(', ', $this->from);
     254                if ($this->where)    $query[] = 'WHERE ('   . implode(') AND (', $this->where) . ')';
     255                if ($this->groupby)  $query[] = 'GROUP BY ' . implode(', ', $this->groupby);
     256                if ($this->orderby)  $query[] = 'ORDER BY ' . implode(', ', $this->orderby);
     257                if ($this->limit)    $query[] = 'LIMIT '    . $this->limit;
     258                if ($this->facet)    $query[] = 'FACET '    . implode(' FACET ', $this->facet);
     259                return implode(' ', $query);
     260        }
     261
     262        private function removeEmpty() {
     263                foreach (['select', 'from', 'where', 'groupby', 'orderby', 'facet'] as $key) {
     264                        $this->$key = array_filter($this->$key);
     265                        #$this->$key = array_filter($this->key, 'strlen'); // leaves 0
     266                }
     267        }
     268
     269        public function __tostring() {
     270                return $this->get();
     271        }
    272272}
    273273
Note: See TracChangeset for help on using the changeset viewer.