/** * @name Dismissible Notices * @copyright Dismissible Notices contributors * @license BSD http://opensource.org/licenses/BSD-3-Clause * * @version 0.0.1 * */ function template_notices_above() { global $context, $txt, $scripturl; echo ' <noscript> <div id="notices">'; foreach ($context['notices'] as $notice) { addInlineJavascript(' setTimeout(function() { $' . ($notice['positioning']['element'] !== 'global' && !empty($notice['positioning']['element_name']) ? '(".' . $notice['positioning']['element_name'] . '")' : '') . '.notify({ title: ' . JavaScriptEscape($notice['body']) . ', button: ' . JavaScriptEscape($txt['dismiss_notice_dismis']) . ', cancel: ' . JavaScriptEscape($txt['dismiss_notice_cancel']) . ', id: ' . JavaScriptEscape($notice['id_notice']) . ' }, { style: \'default\', className: ' . javaScriptEscape($notice['class']) . ', autoHide: ' . ($context['user']['is_guest'] ? 'true' : 'false') . ', position: ' . javaScriptEscape(dismissnotices_translate_positions($notice['positioning']['position'])) . ', clickToHide: false }); }, 500);', true); echo ' <div class="' . $notice['class'] . '"> ' . $notice['body'] . '<br /> <a href="' . $scripturl . '?action=dismissnotice;url=' . urlencode($_SERVER['REQUEST_URL']) . $txt['dismiss_notice_dismis'] . '">X</a>, </div>'; } echo ' </div> </noscript>'; }
/** * Creates the javascript code for localization of the editor (SCEditor) */ public function action_sceditor() { global $txt, $editortxt; $this->_prepareLocale('Editor'); // If we don't have any locale better avoid broken js if (empty($txt['lang_locale']) || empty($editortxt)) { die; } $this->_file_data = '(function ($) { \'use strict\'; $.sceditor.locale[' . javaScriptEscape($txt['lang_locale']) . '] = {'; foreach ($editortxt as $key => $val) { $this->_file_data .= ' ' . javaScriptEscape($key) . ': ' . javaScriptEscape($val) . ','; } $this->_file_data .= ' dateFormat: "day.month.year" } })(jQuery);'; $this->_sendFile(); }
/** * Let the administrator(s) edit the news items for the forum. * * What it does: * - It writes an entry into the moderation log. * - This function uses the edit_news administration area. * - Called by ?action=admin;area=news. * - Requires the edit_news permission. * - Can be accessed with ?action=admin;sa=editnews. */ public function action_editnews() { global $txt, $modSettings, $context, $scripturl; require_once SUBSDIR . '/Post.subs.php'; // The 'remove selected' button was pressed. if (!empty($_POST['delete_selection']) && !empty($_POST['remove'])) { checkSession(); // Store the news temporarily in this array. $temp_news = explode("\n", $modSettings['news']); // Remove the items that were selected. foreach ($temp_news as $i => $news) { if (in_array($i, $_POST['remove'])) { unset($temp_news[$i]); } } // Update the database. updateSettings(array('news' => implode("\n", $temp_news))); logAction('news'); } elseif (!empty($_POST['save_items'])) { checkSession(); foreach ($_POST['news'] as $i => $news) { if (trim($news) == '') { unset($_POST['news'][$i]); } else { $_POST['news'][$i] = Util::htmlspecialchars($_POST['news'][$i], ENT_QUOTES); preparsecode($_POST['news'][$i]); } } // Send the new news to the database. updateSettings(array('news' => implode("\n", $_POST['news']))); // Log this into the moderation log. logAction('news'); } // We're going to want this for making our list. require_once SUBSDIR . '/GenericList.class.php'; require_once SUBSDIR . '/News.subs.php'; $context['page_title'] = $txt['admin_edit_news']; // Use the standard templates for showing this. $listOptions = array('id' => 'news_lists', 'get_items' => array('function' => 'getNews'), 'columns' => array('news' => array('header' => array('value' => $txt['admin_edit_news']), 'data' => array('function' => create_function('$news', ' return \'<textarea class="" id="data_\' . $news[\'id\'] . \'" rows="3" name="news[]">\' . $news[\'unparsed\'] . \'</textarea> <br /> <div id="preview_\' . $news[\'id\'] . \'"></div>\'; '), 'class' => 'newsarea')), 'preview' => array('header' => array('value' => $txt['preview']), 'data' => array('function' => create_function('$news', ' return \'<div id="box_preview_\' . $news[\'id\'] . \'">\' . $news[\'parsed\'] . \'</div>\'; '), 'class' => 'newspreview')), 'check' => array('header' => array('value' => '<input type="checkbox" onclick="invertAll(this, this.form);" class="input_check" />', 'class' => 'centertext'), 'data' => array('function' => create_function('$news', ' if (is_numeric($news[\'id\'])) return \'<input type="checkbox" name="remove[]" value="\' . $news[\'id\'] . \'" class="input_check" />\'; else return \'\'; '), 'class' => 'centertext'))), 'form' => array('href' => $scripturl . '?action=admin;area=news;sa=editnews', 'hidden_fields' => array($context['session_var'] => $context['session_id'])), 'additional_rows' => array(array('position' => 'bottom_of_list', 'class' => 'submitbutton', 'value' => ' <input type="submit" name="save_items" value="' . $txt['save'] . '" class="right_submit" /> <input type="submit" name="delete_selection" value="' . $txt['editnews_remove_selected'] . '" onclick="return confirm(\'' . $txt['editnews_remove_confirm'] . '\');" class="right_submit" /> <span id="moreNewsItems_link" style="display: none;"> <a class="linkbutton" href="javascript:void(0);" onclick="addAnotherNews(); return false;">' . $txt['editnews_clickadd'] . '</a> </span>')), 'javascript' => ' document.getElementById(\'list_news_lists_last\').style.display = "none"; document.getElementById("moreNewsItems_link").style.display = ""; var last_preview = 0; var txt_preview = ' . javaScriptEscape($txt['preview']) . '; var txt_news_error_no_news = ' . javaScriptEscape($txt['news_error_no_news']) . '; $(document).ready(function () { $("div[id ^= \'preview_\']").each(function () { var preview_id = $(this).attr(\'id\').split(\'_\')[1]; if (last_preview < preview_id) last_preview = preview_id; make_preview_btn(preview_id); }); }); '); // Create the request list. createList($listOptions); $context['sub_template'] = 'show_list'; $context['default_list'] = 'news_lists'; }
/** * Creates a box that can be used for richedit stuff like BBC, Smileys etc. * @param array $editorOptions */ function create_control_richedit($editorOptions) { global $txt, $modSettings, $options, $smcFunc; global $context, $settings, $user_info, $sourcedir, $scripturl; // Load the Post language file... for the moment at least. loadLanguage('Post'); // Every control must have a ID! assert(isset($editorOptions['id'])); assert(isset($editorOptions['value'])); // Is this the first richedit - if so we need to ensure some template stuff is initialised. if (empty($context['controls']['richedit'])) { // Some general stuff. $settings['smileys_url'] = $modSettings['smileys_url'] . '/' . $user_info['smiley_set']; // This really has some WYSIWYG stuff. loadTemplate('GenericControls', 'jquery.sceditor'); // JS makes the editor go round loadJavascriptFile('editor.js', array('default_theme' => true), 'smf_editor'); loadJavascriptFile('jquery.sceditor.js', array('default_theme' => true)); loadJavascriptFile('jquery.sceditor.bbcode.js', array('default_theme' => true)); addInlineJavascript(' var smf_smileys_url = \'' . $settings['smileys_url'] . '\'; var bbc_quote_from = \'' . addcslashes($txt['quote_from'], "'") . '\'; var bbc_quote = \'' . addcslashes($txt['quote'], "'") . '\'; var bbc_search_on = \'' . addcslashes($txt['search_on'], "'") . '\';'); // editor language file if (!empty($txt['lang_locale']) && $txt['lang_locale'] != 'en_US') { loadJavascriptFile($scripturl . '?action=loadeditorlocale', array(), 'sceditor_language'); } $context['show_spellchecking'] = !empty($modSettings['enableSpellChecking']) && function_exists('pspell_new'); if ($context['show_spellchecking']) { loadJavascriptFile('spellcheck.js', array('default_theme' => true)); // Some hidden information is needed in order to make the spell checking work. if (!isset($_REQUEST['xml'])) { $context['insert_after_template'] .= ' <form name="spell_form" id="spell_form" method="post" accept-charset="' . $context['character_set'] . '" target="spellWindow" action="' . $scripturl . '?action=spellcheck"> <input type="hidden" name="spellstring" value="" /> </form>'; } } } // Start off the editor... $context['controls']['richedit'][$editorOptions['id']] = array('id' => $editorOptions['id'], 'value' => $editorOptions['value'], 'rich_value' => $editorOptions['value'], 'rich_active' => empty($modSettings['disable_wysiwyg']) && (!empty($options['wysiwyg_default']) || !empty($editorOptions['force_rich']) || !empty($_REQUEST[$editorOptions['id'] . '_mode'])), 'disable_smiley_box' => !empty($editorOptions['disable_smiley_box']), 'columns' => isset($editorOptions['columns']) ? $editorOptions['columns'] : 60, 'rows' => isset($editorOptions['rows']) ? $editorOptions['rows'] : 18, 'width' => isset($editorOptions['width']) ? $editorOptions['width'] : '70%', 'height' => isset($editorOptions['height']) ? $editorOptions['height'] : '250px', 'form' => isset($editorOptions['form']) ? $editorOptions['form'] : 'postmodify', 'bbc_level' => !empty($editorOptions['bbc_level']) ? $editorOptions['bbc_level'] : 'full', 'preview_type' => isset($editorOptions['preview_type']) ? (int) $editorOptions['preview_type'] : 1, 'labels' => !empty($editorOptions['labels']) ? $editorOptions['labels'] : array(), 'locale' => !empty($txt['lang_locale']) && substr($txt['lang_locale'], 0, 5) != 'en_US' ? $txt['lang_locale'] : ''); // Switch between default images and back... mostly in case you don't have an PersonalMessage template, but do have a Post template. if (isset($settings['use_default_images']) && $settings['use_default_images'] == 'defaults' && isset($settings['default_template'])) { $temp1 = $settings['theme_url']; $settings['theme_url'] = $settings['default_theme_url']; $temp2 = $settings['images_url']; $settings['images_url'] = $settings['default_images_url']; $temp3 = $settings['theme_dir']; $settings['theme_dir'] = $settings['default_theme_dir']; } if (empty($context['bbc_tags'])) { // The below array makes it dead easy to add images to this control. Add it to the array and everything else is done for you! /* array( 'image' => 'bold', 'code' => 'b', 'before' => '[b]', 'after' => '[/b]', 'description' => $txt['bold'], ), */ $context['bbc_tags'] = array(); $context['bbc_tags'][] = array(array('code' => 'bold', 'description' => $txt['bold']), array('code' => 'italic', 'description' => $txt['italic']), array('code' => 'underline', 'description' => $txt['underline']), array('code' => 'strike', 'description' => $txt['strike']), array(), array('code' => 'pre', 'description' => $txt['preformatted']), array('code' => 'left', 'description' => $txt['left_align']), array('code' => 'center', 'description' => $txt['center']), array('code' => 'right', 'description' => $txt['right_align'])); $context['bbc_tags'][] = array(array('code' => 'flash', 'description' => $txt['flash']), array('code' => 'image', 'description' => $txt['image']), array('code' => 'link', 'description' => $txt['hyperlink']), array('code' => 'email', 'description' => $txt['insert_email']), array('code' => 'ftp', 'description' => $txt['ftp']), array(), array('code' => 'glow', 'description' => $txt['glow']), array('code' => 'shadow', 'description' => $txt['shadow']), array('code' => 'move', 'description' => $txt['marquee']), array(), array('code' => 'superscript', 'description' => $txt['superscript']), array('code' => 'subscript', 'description' => $txt['subscript']), array('code' => 'tt', 'description' => $txt['teletype']), array(), array('code' => 'table', 'description' => $txt['table']), array('code' => 'code', 'description' => $txt['bbc_code']), array('code' => 'quote', 'description' => $txt['bbc_quote']), array(), array('code' => 'bulletlist', 'description' => $txt['list_unordered']), array('code' => 'orderedlist', 'description' => $txt['list_ordered']), array('code' => 'horizontalrule', 'description' => $txt['horizontal_rule'])); // Allow mods to modify BBC buttons. call_integration_hook('integrate_bbc_buttons'); // Show the toggle? if (empty($modSettings['disable_wysiwyg'])) { $context['bbc_tags'][count($context['bbc_tags']) - 1][] = array(); $context['bbc_tags'][count($context['bbc_tags']) - 1][] = array('code' => 'unformat', 'description' => $txt['unformat_text']); $context['bbc_tags'][count($context['bbc_tags']) - 1][] = array('code' => 'toggle', 'description' => $txt['toggle_view']); } // Generate a list of buttons that shouldn't be shown - this should be the fastest way to do this. $disabled_tags = array(); if (!empty($modSettings['disabledBBC'])) { $disabled_tags = explode(',', $modSettings['disabledBBC']); } if (empty($modSettings['enableEmbeddedFlash'])) { $disabled_tags[] = 'flash'; } foreach ($disabled_tags as $tag) { if ($tag == 'list') { $context['disabled_tags']['bulletlist'] = true; $context['disabled_tags']['orderedlist'] = true; } elseif ($tag == 'b') { $context['disabled_tags']['bold'] = true; } elseif ($tag == 'i') { $context['disabled_tags']['italic'] = true; } elseif ($tag == 'i') { $context['disabled_tags']['underline'] = true; } elseif ($tag == 'i') { $context['disabled_tags']['strike'] = true; } elseif ($tag == 'img') { $context['disabled_tags']['image'] = true; } elseif ($tag == 'url') { $context['disabled_tags']['link'] = true; } elseif ($tag == 'sup') { $context['disabled_tags']['superscript'] = true; } elseif ($tag == 'sub') { $context['disabled_tags']['subscript'] = true; } elseif ($tag == 'hr') { $context['disabled_tags']['horizontalrule'] = true; } $context['disabled_tags'][trim($tag)] = true; } $bbcodes_styles = ''; $context['bbcodes_handlers'] = ''; $context['bbc_toolbar'] = array(); foreach ($context['bbc_tags'] as $row => $tagRow) { if (!isset($context['bbc_toolbar'][$row])) { $context['bbc_toolbar'][$row] = array(); } $tagsRow = array(); foreach ($tagRow as $tag) { if (!empty($tag)) { if (empty($context['disabled_tags'][$tag['code']])) { $tagsRow[] = $tag['code']; if (isset($tag['image'])) { $bbcodes_styles .= ' .sceditor-button-' . $tag['code'] . ' div { background: url(\'' . $settings['default_theme_url'] . '/images/bbc/' . $tag['image'] . '.png\'); }'; } if (isset($tag['before'])) { $context['bbcodes_handlers'] = ' $.sceditor.setCommand( ' . javaScriptEscape($tag['code']) . ', function () { this.wysiwygEditorInsertHtml(' . javaScriptEscape($tag['before']) . (isset($tag['after']) ? ', ' . javaScriptEscape($tag['after']) : '') . '); }, ' . javaScriptEscape($tag['description']) . ', null, [' . javaScriptEscape($tag['before']) . (isset($tag['after']) ? ', ' . javaScriptEscape($tag['after']) : '') . '] );'; } } } else { $context['bbc_toolbar'][$row][] = implode(',', $tagsRow); $tagsRow = array(); } } if ($row == 0) { $context['bbc_toolbar'][$row][] = implode(',', $tagsRow); $tagsRow = array(); if (!isset($context['disabled_tags']['font'])) { $tagsRow[] = 'font'; } if (!isset($context['disabled_tags']['size'])) { $tagsRow[] = 'size'; } if (!isset($context['disabled_tags']['color'])) { $tagsRow[] = 'color'; } } elseif ($row == 1 && empty($modSettings['disable_wysiwyg'])) { $tmp = array(); $tagsRow[] = 'removeformat'; $tagsRow[] = 'source'; if (!empty($tmp)) { $tagsRow[] = '|' . implode(',', $tmp); } } if (!empty($tagsRow)) { $context['bbc_toolbar'][$row][] = implode(',', $tagsRow); } } if (!empty($bbcodes_styles)) { $context['html_headers'] .= ' <style type="text/css">' . $bbcodes_styles . ' </style>'; } } // Initialize smiley array... if not loaded before. if (empty($context['smileys']) && empty($editorOptions['disable_smiley_box'])) { $context['smileys'] = array('postform' => array(), 'popup' => array()); // Load smileys - don't bother to run a query if we're not using the database's ones anyhow. if (empty($modSettings['smiley_enable']) && $user_info['smiley_set'] != 'none') { $context['smileys']['postform'][] = array('smileys' => array(array('code' => ':)', 'filename' => 'smiley.gif', 'description' => $txt['icon_smiley']), array('code' => ';)', 'filename' => 'wink.gif', 'description' => $txt['icon_wink']), array('code' => ':D', 'filename' => 'cheesy.gif', 'description' => $txt['icon_cheesy']), array('code' => ';D', 'filename' => 'grin.gif', 'description' => $txt['icon_grin']), array('code' => '>:(', 'filename' => 'angry.gif', 'description' => $txt['icon_angry']), array('code' => ':(', 'filename' => 'sad.gif', 'description' => $txt['icon_sad']), array('code' => ':o', 'filename' => 'shocked.gif', 'description' => $txt['icon_shocked']), array('code' => '8)', 'filename' => 'cool.gif', 'description' => $txt['icon_cool']), array('code' => '???', 'filename' => 'huh.gif', 'description' => $txt['icon_huh']), array('code' => '::)', 'filename' => 'rolleyes.gif', 'description' => $txt['icon_rolleyes']), array('code' => ':P', 'filename' => 'tongue.gif', 'description' => $txt['icon_tongue']), array('code' => ':-[', 'filename' => 'embarrassed.gif', 'description' => $txt['icon_embarrassed']), array('code' => ':-X', 'filename' => 'lipsrsealed.gif', 'description' => $txt['icon_lips']), array('code' => ':-\\', 'filename' => 'undecided.gif', 'description' => $txt['icon_undecided']), array('code' => ':-*', 'filename' => 'kiss.gif', 'description' => $txt['icon_kiss']), array('code' => ':\'(', 'filename' => 'cry.gif', 'description' => $txt['icon_cry'], 'isLast' => true)), 'isLast' => true); } elseif ($user_info['smiley_set'] != 'none') { if (($temp = cache_get_data('posting_smileys', 480)) == null) { $request = $smcFunc['db_query']('', ' SELECT code, filename, description, smiley_row, hidden FROM {db_prefix}smileys WHERE hidden IN (0, 2) ORDER BY smiley_row, smiley_order', array()); while ($row = $smcFunc['db_fetch_assoc']($request)) { $row['filename'] = htmlspecialchars($row['filename']); $row['description'] = htmlspecialchars($row['description']); $context['smileys'][empty($row['hidden']) ? 'postform' : 'popup'][$row['smiley_row']]['smileys'][] = $row; } $smcFunc['db_free_result']($request); foreach ($context['smileys'] as $section => $smileyRows) { foreach ($smileyRows as $rowIndex => $smileys) { $context['smileys'][$section][$rowIndex]['smileys'][count($smileys['smileys']) - 1]['isLast'] = true; } if (!empty($smileyRows)) { $context['smileys'][$section][count($smileyRows) - 1]['isLast'] = true; } } cache_put_data('posting_smileys', $context['smileys'], 480); } else { $context['smileys'] = $temp; } } } // Set a flag so the sub template knows what to do... $context['show_bbc'] = !empty($modSettings['enableBBC']) && !empty($settings['show_bbc']); // Switch the URLs back... now we're back to whatever the main sub template is. (like folder in PersonalMessage.) if (isset($settings['use_default_images']) && $settings['use_default_images'] == 'defaults' && isset($settings['default_template'])) { $settings['theme_url'] = $temp1; $settings['images_url'] = $temp2; $settings['theme_dir'] = $temp3; } }
/** * Let the administrator(s) edit the news items for the forum. * It writes an entry into the moderation log. * This function uses the edit_news administration area. * Called by ?action=admin;area=news. * Requires the edit_news permission. * Can be accessed with ?action=admin;sa=editnews. * * @uses ManageNews template, edit_news sub template. */ function EditNews() { global $txt, $modSettings, $context, $sourcedir, $user_info, $scripturl; global $smcFunc; require_once $sourcedir . '/Subs-Post.php'; // The 'remove selected' button was pressed. if (!empty($_POST['delete_selection']) && !empty($_POST['remove'])) { checkSession(); // Store the news temporarily in this array. $temp_news = explode("\n", $modSettings['news']); // Remove the items that were selected. foreach ($temp_news as $i => $news) { if (in_array($i, $_POST['remove'])) { unset($temp_news[$i]); } } // Update the database. updateSettings(array('news' => implode("\n", $temp_news))); logAction('news'); } elseif (!empty($_POST['save_items'])) { checkSession(); foreach ($_POST['news'] as $i => $news) { if (trim($news) == '') { unset($_POST['news'][$i]); } else { $_POST['news'][$i] = $smcFunc['htmlspecialchars']($_POST['news'][$i], ENT_QUOTES); preparsecode($_POST['news'][$i]); } } // Send the new news to the database. updateSettings(array('news' => implode("\n", $_POST['news']))); // Log this into the moderation log. logAction('news'); } // We're going to want this for making our list. require_once $sourcedir . '/Subs-List.php'; $context['page_title'] = $txt['admin_edit_news']; // Use the standard templates for showing this. $listOptions = array('id' => 'news_lists', 'get_items' => array('function' => 'list_getNews'), 'columns' => array('news' => array('header' => array('value' => $txt['admin_edit_news']), 'data' => array('function' => create_function('$news', ' if (is_numeric($news[\'id\'])) return \'<textarea id="data_\' . $news[\'id\'] . \'" rows="3" cols="50" name="news[]" style="\' . (isBrowser(\'is_ie8\') ? \'width: 635px; max-width: 85%; min-width: 85%\' : \'width 100%;margin 0 5em\') . \';">\' . $news[\'unparsed\'] . \'</textarea> <br /> <div class="floatleft" id="preview_\' . $news[\'id\'] . \'"></div>\'; else return $news[\'unparsed\']; '), 'style' => 'width: 50%;')), 'preview' => array('header' => array('value' => $txt['preview']), 'data' => array('function' => create_function('$news', ' return \'<div id="box_preview_\' . $news[\'id\'] . \'" style="overflow: auto; width: 100%; height: 10ex;">\' . $news[\'parsed\'] . \'</div>\'; '), 'style' => 'width: 45%;')), 'check' => array('header' => array('value' => '<input type="checkbox" onclick="invertAll(this, this.form);" class="input_check" />'), 'data' => array('function' => create_function('$news', ' if (is_numeric($news[\'id\'])) return \'<input type="checkbox" name="remove[]" value="\' . $news[\'id\'] . \'" class="input_check" />\'; else return \'\'; '), 'style' => 'text-align: center'))), 'form' => array('href' => $scripturl . '?action=admin;area=news;sa=editnews', 'hidden_fields' => array($context['session_var'] => $context['session_id'])), 'additional_rows' => array(array('position' => 'bottom_of_list', 'value' => ' <span id="moreNewsItems_link" class="floatleft" style="display: none;"> <a class="button_link" href="javascript:void(0);" onclick="addNewsItem(); return false;">' . $txt['editnews_clickadd'] . '</a> </span> <input type="submit" name="save_items" value="' . $txt['save'] . '" class="button_submit" /> <input type="submit" name="delete_selection" value="' . $txt['editnews_remove_selected'] . '" onclick="return confirm(\'' . $txt['editnews_remove_confirm'] . '\');" class="button_submit" />')), 'javascript' => ' document.getElementById(\'list_news_lists_last\').style.display = "none"; document.getElementById("moreNewsItems_link").style.display = ""; var last_preview = 0; $(document).ready(function () { $("div[id ^= \'preview_\']").each(function () { var preview_id = $(this).attr(\'id\').split(\'_\')[1]; if (last_preview < preview_id) last_preview = preview_id; make_preview_btn(preview_id); }); }); function make_preview_btn (preview_id) { $("#preview_" + preview_id).addClass("button_link"); $("#preview_" + preview_id).text(\'' . $txt['preview'] . '\').click(function () { $.ajax({ type: "POST", url: "' . $scripturl . '?action=xmlhttp;sa=previews;xml", data: {item: "newspreview", news: $("#data_" + preview_id).val()}, context: document.body, success: function(request){ if ($(request).find("error").text() == \'\') $(document).find("#box_preview_" + preview_id).html($(request).text()); else $(document).find("#box_preview_" + preview_id).text(\'' . $txt['news_error_no_news'] . '\'); }, }); }); } function addNewsItem () { last_preview++; $("#list_news_lists_last").before(' . javaScriptEscape(' <tr class="windowbg') . ' + (last_preview % 2 == 0 ? \'\' : \'2\') + ' . javaScriptEscape('"> <td style="width: 50%;"> <textarea id="data_') . ' + last_preview + ' . javaScriptEscape('" rows="3" cols="65" name="news[]" style="' . (isBrowser('is_ie8') ? 'width: 635px; max-width: 85%; min-width: 85%' : 'width: 95%') . ';"></textarea> <br /> <div class="floatleft" id="preview_') . ' + last_preview + ' . javaScriptEscape('"></div> </td> <td style="width: 45%;"> <div id="box_preview_') . ' + last_preview + ' . javaScriptEscape('" style="overflow: auto; width: 100%; height: 10ex;"></div> </td> <td></td> </tr>') . '); make_preview_btn(last_preview); }'); // Create the request list. createList($listOptions); $context['sub_template'] = 'show_list'; $context['default_list'] = 'news_lists'; }