' . __('Settings') . ''; return $links; } //populate list of languages available in code editor function alkanecode_tiny_mce_before_init($settings) { //define empty array for languages $languagearray=array(); //get selected languages $alkanecode_languages = get_option('alkanecode_options')["alkanecode_language"]; //add a blank entry at the top - used for inline code with no language $lang=array( 'text' => '', 'value' => '', ); array_push($languagearray,$lang); if (empty($alkanecode_languages)) { $global_languages = $this->global_languages; //no languages have been configured so we'll use all foreach($global_languages as $language) { $lang=array( 'text' => $language[0], 'value' => $language[1], ); array_push($languagearray,$lang); } } else { //iterate through selected languages, displaying only those chosen foreach($alkanecode_languages as $value => $text) { $lang=array( 'text' => $text, 'value' => $value, ); array_push($languagearray,$lang); } } $settings['alkanecode_languages'] = json_encode( $languagearray ); return $settings; } //add plugin to TinyMCE function alkanecode_add_tinymce_plugin($plugin_array) { $plugin_array['alkanecode'] = plugin_dir_url(__FILE__) . 'js/alkanecode.js'; return $plugin_array; } //add plugin to TinyMCE Toolbar function alkanecode_add_tinymce_toolbar_button($buttons) { array_push($buttons, 'alkanecode'); return $buttons; } //add classes to body, so that all code instances get line numbers and syntax highlight using 'markup' language as default function alkanecode_body_class( $bodyclasses ) { //add line-numbers and a default language to body class $bodyclasses = array_merge( $bodyclasses, array( 'line-numbers' ) ); //default language $bodyclasses = array_merge( $bodyclasses, array( 'language-markup' ) ); return $bodyclasses; } /*****start admin pages***/ //enqueue js and css required for plugin admin pages function alkanecode_admin_enqueue_scripts ($hook) { //only load on the alkane admin page if($hook != 'settings_page_alkanecode_settings_page') { return; } wp_enqueue_script( 'alkanecode_admin_js', plugin_dir_url( __FILE__ ) . 'js/alkanecode-admin.js', array('jquery'),null,true ); wp_enqueue_style( 'alkanecode_admin_css', plugin_dir_url( __FILE__ ) . 'css/alkanecode-admin.css'); } //initialise and configure plugin admin page function alkanecode_admin_init(){ register_setting( 'alkanecode_optiongroupname', 'alkanecode_options'); add_settings_section('alkanecode_main', 'Main Settings', array($this,'alkanecode_sectiondescription'), 'alkanecode_settings_page'); add_settings_field('alkanecode_theme_setting', 'Theme', array($this,'alkanecode_setting_theme'), 'alkanecode_settings_page', 'alkanecode_main'); add_settings_field('alkanecode_language_setting', 'Language(s)', array($this,'alkanecode_setting_language'), 'alkanecode_settings_page', 'alkanecode_main'); } //render intro paragraph for admin page function alkanecode_sectiondescription() { //echo '
'; } //render theme section in admin page function alkanecode_setting_theme() { //$csc = new alkanecodeClass(); $global_themes = $this->global_themes; $options = get_option('alkanecode_options')["alkanecode_theme"]; echo '