/**
  * @see parent::getAutocompleteList()
  */
 function getAutocompleteList($keywords, $where = null, $limit = null, $ljoin = null, $order = null)
 {
     /** @var self[] $list */
     $list = $this->loadList($where, null, null, null, $ljoin);
     $real_list = array();
     $re = preg_quote($keywords);
     $re = CMbString::allowDiacriticsInRegexp($re);
     $re = str_replace("/", "\\/", $re);
     $re = "/({$re})/i";
     foreach ($list as $_ex_field) {
         if ($keywords == "%" || $keywords == "" || preg_match($re, $_ex_field->_view)) {
             $_ex_field->updateTranslation();
             $_group = $_ex_field->loadRefExGroup();
             $_ex_field->_view = "{$_group->_view} - {$_ex_field->_view}";
             $real_list[$_ex_field->_id] = $_ex_field;
         }
     }
     return $real_list;
 }
 function getAutocompleteList($keywords, $where = null, $limit = null, $ljoin = null, $order = null)
 {
     $list = $this->loadList($where, null, null, null, $ljoin);
     /** @var self[] $real_list */
     $real_list = array();
     $re = preg_quote($keywords);
     $re = CMbString::allowDiacriticsInRegexp($re);
     $re = str_replace("/", "\\/", $re);
     $re = "/({$re})/i";
     foreach ($list as $_match) {
         if ($keywords == "%" || $keywords == "" || preg_match($re, $_match->_view)) {
             $_match->loadView();
             $real_list[$_match->_id] = $_match;
         }
     }
     $views = CMbArray::pluck($real_list, "_view");
     array_multisort($views, $real_list);
     $empty = new self();
     $empty->_id = null;
     $empty->_guid = "{$this->_class}-{$this->_id}";
     // FIXME
     $empty->_view = " -- ";
     array_unshift($real_list, $empty);
     return $real_list;
 }
 * @package    Mediboard
 * @subpackage forms
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 17759 $
 */
CCanDo::checkEdit();
$ex_class_event_id = CValue::get("ex_class_event_id");
$keywords = CValue::get("_host_field_view");
$ex_class_event = new CExClassEvent();
$ex_class_event->load($ex_class_event_id);
$list = $ex_class_event->buildHostFieldsList();
$show_views = false;
// filtrage
if ($keywords) {
    $show_views = true;
    $re = preg_quote($keywords);
    $re = CMbString::allowDiacriticsInRegexp($re);
    $re = str_replace("/", "\\/", $re);
    $re = "/({$re})/i";
    foreach ($list as $_key => $element) {
        if (!preg_match($re, $element["title"])) {
            unset($list[$_key]);
        }
    }
}
$smarty = new CSmartyDP();
$smarty->assign("ex_class_event", $ex_class_event);
$smarty->assign("host_fields", $list);
$smarty->assign("show_views", $show_views);
$smarty->display("inc_autocomplete_hostfields.tpl");
 /**
  * Emphasize a text, putting <em> nodes around found tokens
  * Example:  {$text|emphasize:$tokens}
  *
  * @param string       $text   The text subject
  * @param array|string $tokens The string tokens to emphasize, space seperated if string
  * @param string       $tag    The HTML tag to use to emphasize
  *
  * @return string
  */
 function emphasize($text, $tokens, $tag = "em")
 {
     if (!is_array($tokens)) {
         $tokens = explode(" ", $tokens);
     }
     CMbArray::removeValue("", $tokens);
     if (count($tokens) == 0) {
         return $text;
     }
     foreach ($tokens as &$token) {
         $token = preg_quote($token);
         $token = CMbString::allowDiacriticsInRegexp($token);
     }
     $regexp = str_replace("/", "\\/", implode("|", $tokens));
     return preg_replace("/({$regexp})/i", "<{$tag}>\$1</{$tag}>", $text);
 }