public function test_toolbar_parsing() { global $CFG; require_once "{$CFG->dirroot}/lib/editorlib.php"; require_once "{$CFG->dirroot}/lib/editor/tinymce/lib.php"; $result = tinymce_texteditor::parse_toolbar_setting("bold,italic\npreview"); $this->assertSame(array('bold,italic', 'preview'), $result); $result = tinymce_texteditor::parse_toolbar_setting("| bold,|italic*blink\rpreview\n\n| \n paste STYLE | "); $this->assertSame(array('bold,|,italic,blink', 'preview', 'paste,style'), $result); $result = tinymce_texteditor::parse_toolbar_setting("| \n\n| \n \r"); $this->assertSame(array(), $result); $result = tinymce_texteditor::parse_toolbar_setting("one\ntwo\n\nthree\nfour\nfive\nsix\nseven\neight\nnine\nten"); $this->assertSame(array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'), $result); }
/** * Builds the XHTML to display the control. * * @param string $data Unused * @param string $query * @return string */ public function output_html($data, $query = '') { global $CFG, $OUTPUT, $PAGE; require_once "{$CFG->libdir}/editorlib.php"; require_once "{$CFG->libdir}/pluginlib.php"; require_once __DIR__ . '/lib.php'; $tinymce = new tinymce_texteditor(); $pluginmanager = plugin_manager::instance(); // display strings $strbuttons = get_string('availablebuttons', 'editor_tinymce'); $strdisable = get_string('disable'); $strenable = get_string('enable'); $strname = get_string('name'); $strsettings = get_string('settings'); $struninstall = get_string('uninstallplugin', 'admin'); $strversion = get_string('version'); $subplugins = get_plugin_list('tinymce'); $return = $OUTPUT->heading(get_string('subplugintype_tinymce_plural', 'editor_tinymce'), 3, 'main', true); $return .= $OUTPUT->box_start('generalbox tinymcesubplugins'); $table = new html_table(); $table->head = array($strname, $strbuttons, $strversion, $strenable, $strsettings, $struninstall); $table->align = array('left', 'left', 'center', 'center', 'center', 'center'); $table->data = array(); $table->width = '100%'; // Iterate through subplugins. foreach ($subplugins as $name => $dir) { $namestr = get_string('pluginname', 'tinymce_' . $name); $version = get_config('tinymce_' . $name, 'version'); if ($version === false) { $version = ''; } $plugin = $tinymce->get_plugin($name); $plugininfo = $pluginmanager->get_plugin_info('tinymce_' . $name); // Add hide/show link. if (!$version) { $hideshow = ''; $displayname = html_writer::tag('span', $name, array('class' => 'error')); } else { if ($plugininfo->is_enabled()) { $url = new moodle_url('/lib/editor/tinymce/subplugins.php', array('sesskey' => sesskey(), 'return' => 'settings', 'disable' => $name)); $hideshow = html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/hide'), 'class' => 'icon', 'alt' => $strdisable)); $hideshow = html_writer::link($url, $hideshow); $displayname = html_writer::tag('span', $namestr); } else { $url = new moodle_url('/lib/editor/tinymce/subplugins.php', array('sesskey' => sesskey(), 'return' => 'settings', 'enable' => $name)); $hideshow = html_writer::empty_tag('img', array('src' => $OUTPUT->pix_url('i/show'), 'class' => 'icon', 'alt' => $strenable)); $hideshow = html_writer::link($url, $hideshow); $displayname = html_writer::tag('span', $namestr, array('class' => 'dimmed_text')); } } if ($PAGE->theme->resolve_image_location('icon', 'tinymce_' . $name)) { $icon = $OUTPUT->pix_icon('icon', '', 'tinymce_' . $name, array('class' => 'smallicon pluginicon')); } else { $icon = $OUTPUT->pix_icon('spacer', '', 'moodle', array('class' => 'smallicon pluginicon noicon')); } $displayname = $icon . ' ' . $displayname; // Add available buttons. $buttons = implode(', ', $plugin->get_buttons()); $buttons = html_writer::tag('span', $buttons, array('class' => 'tinymcebuttons')); // Add settings link. if (!$version) { $settings = ''; } else { if ($url = $plugininfo->get_settings_url()) { $settings = html_writer::link($url, $strsettings); } else { $settings = ''; } } // Add uninstall info. if ($version) { $url = new moodle_url($plugininfo->get_uninstall_url(), array('return' => 'settings')); $uninstall = html_writer::link($url, $struninstall); } else { $uninstall = ''; } // Add a row to the table. $table->data[] = array($displayname, $buttons, $version, $hideshow, $settings, $uninstall); } $return .= html_writer::table($table); $return .= html_writer::tag('p', get_string('tablenosave', 'admin')); $return .= $OUTPUT->box_end(); return highlight($query, $return); }