コード例 #1
0
ファイル: ElggList.php プロジェクト: hypejunction/api-lists
 /**
  * Construct a new query
  * @param array $query An array of search type and query option pairs
  * @return ElggList
  */
 public function setSearchQuery($query = array())
 {
     if (!is_array($query)) {
         return $this;
     }
     foreach ($query as $type => $options) {
         try {
             $listQuery = new ElggListQuery($type, $options);
             $this->options = $listQuery->sqlGetOptions($this->options);
         } catch (Exception $e) {
             elgg_log($e->getMessage(), 'ERROR');
         }
     }
     return $this;
 }
コード例 #2
0
 /**
  * Join coordinates metadata
  * @param string $msvlat	Join name for latitude metadata value
  * @param string $msvlong	Join name for longitude metadata value
  * @param string $mdlat		Join name for latitude metadata row
  * @param string $mdlong	Join name for longitude metadata row
  * @return ElggMap
  */
 private function sqlJoinCoordinates($msvlat = 'msvlat', $msvlong = 'msvlong', $mdlat = 'mdlat', $mdlong = 'mdlong')
 {
     $dbprefix = elgg_get_config('dbprefix');
     $map = ElggListQuery::getMetaMap(array('geo:lat', 'geo:long'));
     $msvlat = sanitize_string($msvlat);
     $msvlong = sanitize_string($msvlong);
     $mdlat = sanitize_string($mdlat);
     $mdlong = sanitize_string($mdlong);
     $this->options['joins'][$mdlat] = "JOIN {$dbprefix}metadata {$mdlat} on e.guid = {$mdlat}.entity_guid AND {$mdlat}.name_id = {$map['geo:lat']}";
     $this->options['joins'][$msvlat] = "JOIN {$dbprefix}metastrings {$msvlat} on {$mdlat}.value_id = {$msvlat}.id";
     $this->options['joins'][$mdlong] = "JOIN {$dbprefix}metadata {$mdlong} on e.guid = {$mdlong}.entity_guid AND {$mdlong}.name_id = {$map['geo:long']}";
     $this->options['joins'][$msvlong] = "JOIN {$dbprefix}metastrings {$msvlong} ON {$mdlong}.value_id = {$msvlong}.id";
     return $this;
 }