Пример #1
0
 public function __construct($quiet = false)
 {
     if ($quiet) {
         $this->quiet_mode = true;
     }
     $this->pdo = WXActiveRecord::getDefaultPDO();
     if (!$this->check_schema()) {
         $this->create_schema();
     }
 }
Пример #2
0
 public function get_results($limit = false)
 {
     $setups = array();
     foreach (self::$search_array as $search) {
         if (is_array($search['field'])) {
             try {
                 WXActiveRecord::getDefaultPDO()->query("ALTER TABLE " . $search['table'] . " ADD FULLTEXT " . $search['field'] . " (" . implode(",", $search['field']) . ");");
             } catch (Exception $e) {
             }
         } else {
             try {
                 WXActiveRecord::getDefaultPDO()->query("ALTER TABLE " . $search['table'] . " ADD FULLTEXT " . $search['field'] . " (" . $search['field'] . ");");
             } catch (Exception $e) {
             }
         }
         if (is_array($search['field'])) {
             $query = "SELECT *, MATCH(";
             $query .= implode(",", $search['field']);
             $query .= ") AGAINST('" . $this->search_phrase . "') AS score FROM " . $search['table'];
             $query .= " WHERE MATCH(" . implode(",", $search['field']) . ") AGAINST('" . $this->search_phrase . "')";
             if ($search['order'] != "") {
                 $query .= "ORDER BY " . $search['order'];
             }
         } else {
             $query = "SELECT *, MATCH(" . $search['field'] . ") AGAINST('" . $this->search_phrase . "') AS score FROM " . $search['table'];
             $query .= " WHERE MATCH(" . $search['field'] . ") AGAINST('" . $this->search_phrase . "')";
             if ($search['order'] != "") {
                 $query .= "ORDER BY " . $search['order'];
             }
             if ($limit) {
                 $query .= " LIMIT {$limit}";
             }
         }
         $model = WXInflections::camelize($search['table'], true);
         $table = new $model();
         if (is_array($results[$search['key']])) {
             $results[$search['key']] = array_merge($results[$search['key']], $table->find_by_sql($query));
         } else {
             $results[$search['key']] = $table->find_by_sql($query);
         }
     }
     return $results;
 }