Example #1
0
 /**
  * @param string $query
  * @param int $offset
  * @param int $perPage
  * @param array $config
  * @return Pimcore_Google_Cse
  */
 public function search($query, $offset = 0, $perPage = 10, $config = array())
 {
     $list = new self();
     $list->setConfig($config);
     $list->setOffset($offset);
     $list->setPerPage($perPage);
     $list->setQuery($query);
     return $list;
 }
Example #2
0
File: Cse.php Project: sfie/pimcore
 /**
  * @param $query
  * @param int $offset
  * @param int $perPage
  * @param array $config
  * @param null $facet
  * @return Cse
  */
 public static function search($query, $offset = 0, $perPage = 10, array $config = array(), $facet = null)
 {
     $list = new self();
     $list->setConfig($config);
     $list->setOffset($offset);
     $list->setPerPage($perPage);
     $list->setQuery($query);
     if (!empty($facet)) {
         $list->setQuery($list->getQuery() . " more:" . $facet);
     }
     return $list;
 }
Example #3
0
 public static function getParams()
 {
     $app = self::getApp();
     $limit = (int) $app->request->get('limit');
     $maxLimit = $app->appConfig['app']['maxLimitListing'];
     if ($limit <= 0) {
         $limit = $maxLimit;
     } elseif ($limit > $maxLimit) {
         BadRequest400::throwException("Value of parameter 'limit' > " . $app->appConfig['app']['maxLimitListing']);
     }
     $offset = (int) $app->request->get('offset');
     if ($offset < 0) {
         BadRequest400::throwException("'offset' should be positive or 0");
     }
     $self = new self();
     $self->setOffset($offset)->setLimit($limit)->setFilter(self::parseJSONParams('filter'))->setOrder(self::parseJSONParams('order'))->setQuery($app->request->get('q'));
     if ($app->request->get('r')) {
         $self->setQuery($app->request->get('r'));
     }
     return $self;
 }
Example #4
0
 /**
  * Objective-C style constructor
  *
  * @param string $queryString
  */
 public static function initWithString($queryString)
 {
     $parts = array('prefix' => array(), 'base' => array(), 'ask' => array(), 'select_clause' => array(), 'from' => array(), 'from_named' => array(), 'where' => array(), 'order' => array(), 'limit' => array(), 'offset' => array());
     $var = '[?$]{1}[\\w\\d]+';
     $expr = '(\\w*\\(.*\\))';
     // /(BASE.*?\s)?(PREFIX.*?\s)*(ASK|((COUNT(\s)*(\(.*?\))))|(SELECT(\s)+)(DISTINCT(\s)+)?(COUNT(\s)+(\(.*?\)(\s)))?(\?\w+\s+|\*)*)/si
     $tokens = array('prefix' => '/((PREFIX\\s+[^:\\s]+:\\s+<[^\\s]*>\\s*)+)/si', 'base' => '/BASE\\s+<(.+?)>/i', 'ask' => '/(ASK)/si', 'select_clause' => '/((SELECT\\s+)(DISTINCT\\s+)?)(\\*|((COUNT\\s*\\((\\?\\w*|\\*)\\)\\s+(as\\s+(\\?\\w+\\s+))?)|(\\?\\w+\\s+))*)/si', 'from' => '/FROM\\s+<(.+?)>/i', 'from_named' => '/FROM\\s+NAMED\\s+<(.+?)>/i', 'where' => '/(WHERE\\s+)?\\{.*\\}/si', 'order' => '/ORDER\\s+BY((\\s+' . $var . '|\\s+' . $expr . '|\\s+(ASC|DESC)\\s*' . $expr . ')+)/i', 'limit' => '/LIMIT\\s+(\\d+)/i', 'offset' => '/OFFSET\\s+(\\d+)/i');
     foreach ($tokens as $key => $pattern) {
         preg_match_all($pattern, $queryString, $parts[$key]);
     }
     //echo $queryString;
     //var_dump($parts);
     $queryObject = new self();
     if (isset($parts['prefix'][0][0]) || isset($parts['base'][0][0])) {
         $prologue = '';
         if (isset($parts['base'][1][0])) {
             $prologue .= 'BASE <' . $parts['base'][1][0] . '>' . PHP_EOL;
         }
         if (isset($parts['prefix'][0][0])) {
             $prologue .= $parts['prefix'][0][0];
         }
         $queryObject->setProloguePart($prologue);
         // whole match
     }
     if (isset($parts['ask'][0][0])) {
         $queryObject->setAsk(true);
     }
     if (isset($parts['select_clause'][0][0])) {
         $queryObject->setSelectClause($parts['select_clause'][0][0]);
     }
     if (isset($parts['from'][1][0])) {
         $queryObject->setFrom($parts['from'][1]);
     }
     if (isset($parts['from_named'][1][0])) {
         $queryObject->setFromNamed($parts['from_named'][1]);
     }
     if (isset($parts['where'][0][0])) {
         $queryObject->setWherePart($parts['where'][0][0]);
     }
     if (isset($parts['order'][1][0])) {
         $queryObject->setOrderClause(trim($parts['order'][1][0]));
     }
     if (isset($parts['limit'][1][0])) {
         $queryObject->setLimit($parts['limit'][1][0]);
     }
     if (isset($parts['offset'][1][0])) {
         $queryObject->setOffset($parts['offset'][1][0]);
     }
     return $queryObject;
 }