00001 <?php 00002 00003 namespace Habari; 00004 00008 class FormControlTags extends FormControlText 00009 { 00010 public static $outpre = false; 00011 00012 public function pre_out() 00013 { 00014 $out = ''; 00015 if ( !FormControlTextMulti::$outpre ) { 00016 FormControlTextMulti::$outpre = true; 00017 $out = <<< TAGS_PRE_OUT 00018 <script type="text/javascript"> 00019 $(function(){ 00020 $('input.tags_control').each(function(){ 00021 00022 for(var z in tc_tags=$(this).val().split(/\s*,\s*/)) { 00023 tc_tags[z]=tc_tags[z].replace(/^(["'])(.*)\1$/, '$2'); 00024 } 00025 console.log(tc_tags); 00026 00027 \$this = $(this); 00028 ajax_url = $(this).data('ajax_url'); 00029 console.log(ajax_url); 00030 \$this.select2({ 00031 tags: tc_tags, 00032 placeholder: "Tags", 00033 minimumInputLength: 1, 00034 ajax: { 00035 url: ajax_url, 00036 dataType: 'json', 00037 quietMillis: 100, 00038 data: function (term, page) { 00039 return { q: term }; 00040 }, 00041 results: function (data, page) { 00042 var results = {}; 00043 for(var z in data.data) { 00044 results[parseInt(z)] = {id: parseInt(z), text: data.data[z]}; 00045 } 00046 return {results: results, more: false}; 00047 }, 00048 formatSelection: function(item) { 00049 return item.text; 00050 }, 00051 formatResult: function(item) { 00052 return item.text; 00053 } 00054 } 00055 }); 00056 00057 }); 00058 }); 00059 </script> 00060 TAGS_PRE_OUT; 00061 } 00062 return $this->controls_js($out); 00063 } 00064 } 00065 00066 ?>