diff --git a/cms/includes/ajaxprocess.inc.php b/cms/includes/ajaxprocess.inc.php index 98020c8..9eaf3b8 100644 --- a/cms/includes/ajaxprocess.inc.php +++ b/cms/includes/ajaxprocess.inc.php @@ -40,6 +40,41 @@ if(isset($_SESSION[$settings['session_prefix'].'user_id'])) if(isset($cache) && $cache->autoClear) $cache->clear(); } break; + case 'get': + if(isset($_REQUEST['page'])) + { + $table = Database::$db_settings['pages_table']; + $list = 'page'; + } + elseif(isset($_REQUEST['category'])) + { + $table = Database::$db_settings['pages_table']; + $list = 'category'; + } + elseif(isset($_REQUEST['sections'])) + { + $table = Database::$db_settings['menu_table']; + $list = 'section'; + } + $term = addCslashes($_REQUEST['term'],'\%_'); + + if(isset($list) && isset($table)) + { + $dbr = Database::$content->query('SELECT distinct '.$list.' FROM '.$table.' WHERE '.$list.' LIKE "%' .$term.'%"'); + $i=0; + while($row=$dbr->fetch()){ + if (!$row[$list]=="") $res[] = array("id"=>$i, "label"=>$row[$list], "value"=>$row[$list]); + $i++; + } + + $res_list = json_encode($res); + echo $res_list; + + + if(isset($cache) && $cache->autoClear) $cache->clear(); + } + + break; } } } diff --git a/cms/templates/admin/main.tpl b/cms/templates/admin/main.tpl index 7d8085f..43c293c 100644 --- a/cms/templates/admin/main.tpl +++ b/cms/templates/admin/main.tpl @@ -8,6 +8,7 @@ + diff --git a/static/js/admin_backend.js b/static/js/admin_backend.js index d46eb1d..52ee72b 100644 --- a/static/js/admin_backend.js +++ b/static/js/admin_backend.js @@ -55,5 +55,57 @@ $('.modal').on('show.bs.modal', function (e) { $insertField = $(e.relatedTarget).data('insert'); }); +//Ajax autocompleate +function split( val ) { + return val.split( /,\s*/ ); +} +function extractLast( term ) { + return split( term ).pop(); +} + + jQuery( 'input[name="page"],input[name="category"],input[name="link"]' ).autocomplete({ + source: function( request, response ) { + var $list = this.element.attr("name"); + if($list=='link') $list="page"; + jQuery.getJSON( "./index.php?mode=ajaxprocess&action=get&"+$list+"=1", { + term: request.term + }, response ); + } + }); + + jQuery( 'input[name="sections"]' ).autocomplete({ + source: function( request, response ) { + var $list = this.element.attr("name"); + jQuery.getJSON( "./index.php?mode=ajaxprocess&action=get&"+$list+"=1", { + term: extractLast( request.term ) + }, response ); + }, + search: function() { + // custom minLength + var term = extractLast( this.value ); + if ( term.length < 2 ) { + return false; + } + //console.log(term); + }, + focus: function() { + // prevent value inserted on focus + return false; + }, + select: function( event, ui ) { + var terms = split( this.value ); + // remove the current input + terms.pop(); + // add the selected item + terms.push( ui.item.value ); + // add placeholder to get the comma-and-space at the end + terms.push( "" ); + this.value = terms.join( ", " ); + return false; + }, + create: function(){ + + } + }); });