From 3002cee260672a780dad604f88888c2928192629 Mon Sep 17 00:00:00 2001 From: Cameron Date: Thu, 31 Jan 2013 19:11:41 -0800 Subject: [PATCH] typeahead support for $frm->text(); --- e107_handlers/form_handler.php | 20 ++++++++++++++++++-- user.php | 22 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/e107_handlers/form_handler.php b/e107_handlers/form_handler.php index 36a79c5a5..c0251be50 100644 --- a/e107_handlers/form_handler.php +++ b/e107_handlers/form_handler.php @@ -205,7 +205,17 @@ class e_form $options['class'] = 'tbox input-text'; } } - + + if(vartrue($options['typeahead'])) + { + $options['data-provide'] ="typeahead"; + if(vartrue($options['typeahead']) == 'users') + { + $options['data-source'] = e_BASE."user.php"; + } + + } + $options = $this->format_options('text', $name, $options); //never allow id in format name-value for text fields return "get_attributes($options, $name)." />"; @@ -1363,6 +1373,12 @@ class e_form if($optval) $ret .= " $optval"; break; } + + if(substr($option,0,5) =='data-') + { + $ret .= " ".$option." = '{$optval}'"; + } + } return $ret; @@ -1417,7 +1433,7 @@ class e_form foreach (array_keys($user_options) as $key) { - if(!isset($def_options[$key])) unset($user_options[$key]);//remove it? + if(!isset($def_options[$key]) && substr($key,0,5)!='data-') unset($user_options[$key]); // data-xxxx exempt //remove it? } $user_options['name'] = $name; //required for some of the automated tasks diff --git a/user.php b/user.php index 3f92de0ce..d6ad42897 100644 --- a/user.php +++ b/user.php @@ -21,6 +21,28 @@ include_lan(e_LANGUAGEDIR.e_LANGUAGE.'/lan_'.e_PAGE); global $user; $user['user_id'] = USERID; +if(e_AJAX_REQUEST) +{ + if(vartrue($_GET['q'])) + { + $q = filter_var($_GET['q'], FILTER_SANITIZE_STRING); + if($sql->select("user", "user_name", "user_name LIKE '". $q."%' ORDER BY user_name LIMIT 15")) + { + while($row = $sql->db_Fetch()) + { + $data[] = $row['user_name']; + } + + if(count($data)) + { + echo json_encode($data); + } + } + } + exit; +} + + // require_once(e_CORE."shortcodes/batch/user_shortcodes.php"); require_once(e_HANDLER."form_handler.php");