示例#1
0
文件: date.php 项目: glauberm/cinevi
 /**
  * Cache method to populate auto-complete options
  *
  * @param   plgFabrik_Element $elementModel Element model
  * @param   string            $search       Search string
  * @param   array             $opts         Options, 'label' => field to use for label (db join)
  *
  * @since   3.0.7
  *
  * @return string  json encoded search results
  */
 public static function cacheAutoCompleteOptions($elementModel, $search, $opts = array())
 {
     $listModel = $elementModel->getListModel();
     $table = $listModel->getTable();
     $db = $listModel->getDb();
     $name = $elementModel->getFullName(false, false);
     $query = $db->getQuery(true);
     $params = $elementModel->getParams();
     $format = $params->get('date_table_format');
     $elementModel->strftimeTFormatToMySQL($format);
     $search = $db->quote('%' . addslashes($search) . '%');
     $query->select('DISTINCT(' . $name . ') AS value, ' . $name . ' AS text')->from($table->db_table_name)->where($name . ' LIKE ' . $search . ' OR DATE_FORMAT(' . $name . ', "' . $format . '" ) LIKE ' . $search);
     $db->setQuery($query);
     $tmp = $db->loadObjectList();
     $ddData = array();
     foreach ($tmp as &$t) {
         $elementModel->toLabel($t->text);
         if (!array_key_exists($t->text, $ddData)) {
             $ddData[$t->text] = $t;
         }
     }
     $ddData = array_values($ddData);
     echo json_encode($ddData);
 }
示例#2
0
 /**
  * Cache method to populate autocomplete options
  *
  * @param   plgFabrik_Element  $elementModel  element model
  * @param   string             $search        search string
  * @param   array              $opts          options, 'label' => field to use for label (db join)
  *
  * @since   3.0.7
  *
  * @return string  json encoded search results
  */
 public static function cacheAutoCompleteOptions($elementModel, $search, $opts = array())
 {
     $params = $elementModel->getParams();
     $c = $elementModel->getLabelOrConcatVal();
     if (!strstr($c, 'CONCAT')) {
         $c = FabrikString::safeColName($c);
     }
     $filterMethod = $elementModel->getFilterBuildMethod();
     if ($filterMethod == 1) {
         $join = $elementModel->getJoin()->table_join;
         $opts = array();
         if (!strstr($c, 'CONCAT')) {
             $opts['label'] = strstr($c, '.') ? $c : $join . '.' . $c;
         } else {
             $opts['label'] = $c;
         }
         return parent::cacheAutoCompleteOptions($elementModel, $search, $opts);
     }
     // $$$ hugh - added 'autocomplete_how', currently just "starts_with" or "contains"
     // default to "contains" for backward compat.
     $elementModel->autocomplete_where = $elementModel->_autocompleteWhere($params->get('dbjoin_autocomplete_how', 'contains'), $c, $search);
     $opts = array('mode' => 'filter');
     $tmp = $elementModel->_getOptions(array(), 0, true, $opts);
     return json_encode($tmp);
 }