diff --git a/htdocs/application/controllers/main.php b/htdocs/application/controllers/main.php index 9f830cc..45ca1aa 100755 --- a/htdocs/application/controllers/main.php +++ b/htdocs/application/controllers/main.php @@ -14,6 +14,7 @@ * - cron() * - about() * - _valid_lang() + * - get_cm_js() * Classes list: * - Main extends CI_Controller */ @@ -131,10 +132,25 @@ class Main extends CI_Controller function _form_prep($lang = false, $title = '', $paste = '', $reply = false) { $this->load->model('languages'); - $this->load->config('codemirror_languages'); $this->load->helper('form'); $data['languages'] = $this->languages->get_languages(); - $data['codemirror_languages'] = $this->config->item('codemirror_languages'); + + //codemirror languages + $this->load->config('codemirror_languages'); + $codemirror_languages = $this->config->item('codemirror_languages'); + $data['codemirror_languages'] = $codemirror_languages; + + //codemirror modes + $cmm = array(); + foreach ($codemirror_languages as $l) + { + + if (gettype($l) == 'array') + { + $cmm[] = $l['mode']; + } + } + $data['codemirror_modes'] = $cmm; if (!$this->input->post('submit')) { @@ -418,4 +434,20 @@ class Main extends CI_Controller $this->form_validation->set_message('_valid_lang', 'Please select your language'); return $this->languages->valid_language($lang); } + + function get_cm_js() + { + $lang = $this->uri->segment(3); + $this->load->config('codemirror_languages'); + $cml = $this->config->item('codemirror_languages'); + + if (isset($cml[$lang]) && gettype($cml[$lang]) == 'array') + { + header('Content-Type: application/x-javascript; charset=utf-8'); + foreach ($cml[$lang]['js'] as $js) + { + echo file_get_contents('./static/js/' . $js[0]); + } + } + } } diff --git a/htdocs/application/views/defaults/header.php b/htdocs/application/views/defaults/header.php index 59175e4..8594d3d 100755 --- a/htdocs/application/views/defaults/header.php +++ b/htdocs/application/views/defaults/header.php @@ -34,6 +34,11 @@ $this->carabiner->css('diff.css'); $this->carabiner->display('css'); ?> +
diff --git a/htdocs/application/views/defaults/paste_form.php b/htdocs/application/views/defaults/paste_form.php index b15cac5..b908c83 100644 --- a/htdocs/application/views/defaults/paste_form.php +++ b/htdocs/application/views/defaults/paste_form.php @@ -45,13 +45,9 @@
diff --git a/htdocs/application/views/view/view_footer.php b/htdocs/application/views/view/view_footer.php index 0cdd305..f759940 100755 --- a/htdocs/application/views/view/view_footer.php +++ b/htdocs/application/views/view/view_footer.php @@ -18,7 +18,9 @@ if(isset($codemirror_languages[$lang_set]) && gettype($codemirror_languages[$lan $codemirror_specific['js'][] = array('codemirror_exec.js'); $this->carabiner->group('codemirror', $codemirror_specific); $this->carabiner->display('codemirror'); - echo ''; + + //codemirror modes + echo ''; } ?> diff --git a/htdocs/static/js/codemirror_exec.js b/htdocs/static/js/codemirror_exec.js index fcb9a3a..6e36e3d 100644 --- a/htdocs/static/js/codemirror_exec.js +++ b/htdocs/static/js/codemirror_exec.js @@ -1,19 +1,16 @@ var CM = window.CM || {} -CM.on = false; -CM.mode = 'php'; CM.init = function() { - if (CM.on) { - CM.editor.toTextArea(); - CM.on = false; - } else { + //CM.editor.toTextArea(); + var lang = $('#lang').val(); + console.info(lang); + if (typeof CM.editor == 'undefined') { CM.editor = CodeMirror.fromTextArea(document.getElementById('code'), { mode: CM.mode, lineNumbers: true, lineWrapping: true, }); - CM.on = true; } }; @@ -21,12 +18,10 @@ $(document).ready(function() { $enable_codemirror = $('#enable_codemirror'); $enable_codemirror.click(function() { CM.init(); - //$enable_codemirror.remove(); + $enable_codemirror.remove(); return false; }); - $langselect = $('#lang'); - $langselect.change(function() { - CM.mode = $(this).val(); + $('#lang').change(function() { CM.init(); }); });