/** * Cache method to populate autocomplete options * * @param plgFabrik_Element $elementModel element model * @param string $search serch string * * @since 3.0.7 * * @return string json encoded search results */ public static function cacheAutoCompleteOptions($elementModel, $search) { $name = $elementModel->getFullName(false, false, false); $elementModel->encryptFieldName($name); $listModel = $elementModel->getListModel(); $db = $listModel->getDb(); $query = $db->getQuery(true); $tableName = $listModel->getTable()->db_table_name; $query->select('DISTINCT(' . $name . ') AS value, ' . $name . ' AS text')->from($tableName); $query->where($name . ' LIKE ' . $db->quote(addslashes('%' . $search . '%'))); $query = $listModel->_buildQueryJoin($query); $query = $listModel->_buildQueryWhere(false, $query); $query = $listModel->pluginQuery($query); $db->setQuery($query); $tmp = $db->loadObjectList(); foreach ($tmp as &$t) { $elementModel->toLabel($t->text); } return json_encode($tmp); }