Пример #1
0
 function chatRoom($options = array(), $chatters = array())
 {
     $IPBHTML = "";
     if (IPSLib::locationHasHooks('skin_ipchat', $this->_funcHooks['chatRoom'])) {
         $count_fc473221c0d8519b3b35e078488c45d5 = is_array($this->functionData['chatRoom']) ? count($this->functionData['chatRoom']) : 0;
         $this->functionData['chatRoom'][$count_fc473221c0d8519b3b35e078488c45d5]['options'] = $options;
         $this->functionData['chatRoom'][$count_fc473221c0d8519b3b35e078488c45d5]['chatters'] = $chatters;
     }
     $IPBHTML .= "" . $this->registry->getClass('output')->addJSModule("chat", "0") . "\n" . $this->registry->getClass('output')->addToDocumentHead('importcss', "{$this->settings['css_base_url']}style_css/{$this->registry->output->skin['_csscacheid']}/ipb_editor.css") . "\n<script type='text/javascript'>\n\t// Basic variables\n\tvar roomId\t\t= {$options['roomId']};\n\tvar userId\t\t= {$options['userId']};\n\tvar userName\t= '" . ($this->memberData['member_id'] ? "{$this->memberData['members_display_name']}" : "{$this->memberData['members_display_name']}_{$options['userId']}") . "';\n\tvar accessKey\t= '{$options['accessKey']}';\n\tvar serverHost\t= '{$options['serverHost']}';\n\tvar serverPath\t= '{$options['serverPath']}';\n\tvar ourUrl\t\t= '{$options['ourUrl']}';\n\tUSE_RTE\t\t\t= 0;\n\tvar isMobile\t= 0;\n\t// Chat settings\t\n\tipb.chat.condenseTime\t\t= parseInt({$this->settings['ipchat_limit_time']});\n\tipb.chat.maxMessages\t\t= parseInt({$this->settings['ipchat_max_messages']});\n\tipb.chat.moderator\t\t\t= parseInt({$options['moderator']});\n\tipb.chat.private\t\t\t= parseInt({$options['private']});\n\tipb.chat.hideEnterExit\t\t= parseInt({$this->settings['ipchat_hide_usermessage']});\n\tipb.chat.noBuffer\t\t\t= parseInt('{$this->settings['ipchat_no_buffer']}');\n\tipb.chat.inactiveKick\t\t= parseInt('{$this->settings['ipchat_inactive_minutes']}');\n\tipb.chat.user24hour \t\t= parseInt('{$this->settings['ipchat_24hour']}');\n\t\n\t// Set up templates\n\tipb.chat.templates['msg-1']\t\t\t\t= new Template( \"<li class='post chat-message #{ownclass}'>#{photo} <label>#{username}</label> <div>#{message}</div></li>\" );\n\tipb.chat.templates['msg-1-compound']\t= new Template( \"<li class='post chat-message #{ownclass}'><div class='hider'>&nbsp;</div><div>#{message}</div></li>\" );\n\tipb.chat.templates['msg-2']\t\t\t\t= new Template( \"<li class='post chat-notice'>#{photo} <label>#{username}</label> <div>#{action}</div></li>\" );\n\tipb.chat.templates['msg-3']\t\t\t\t= new Template( \"<li class='post chat-me'>#{photo} <label>#{username}</label> <div>**#{message}**</div></li>\" );\n\tipb.chat.templates['msg-4']\t\t\t\t= new Template( \"<li class='post chat-system'>{$this->lang->words['sys_message_pre']} #{message}</li>\" );\n\tipb.chat.templates['msg-5']\t\t\t\t= new Template( \"<li class='post chat-moderator'><label class='fluid'>#{username}</label> <div>{$this->lang->words['_kicked']} #{extra}</div></li>\" );\n\tipb.chat.templates['msg-K']\t\t\t\t= new Template( \"<li class='post chat-moderator'><div>{$this->lang->words['youve_been_kicked']}</div></li>\" );\n\tipb.chat.templates['send_private']\t\t= new Template( \"<div id='priv_#{id}_wrap'><h3 class='bar'>{$this->lang->words['sendprivatechat']}</h3><div class='chat-private-message'><textarea name='message_content' id='priv_chat_text_#{id}' cols='25' rows='2'></textarea> <input type='submit' value='{$this->lang->words['sendprivatebutton']}' class='input_submit add_folder' id='#{id}_submit' onclick='return ipb.chat.sendPrivateChat( #{id} );' /></div></div>\" );\n\tipb.chat.templates['new-tab']\t\t\t= new Template( \"<a href='#tab-#{id}' rel='#{id}'>#{name}&nbsp;&nbsp;&nbsp;<img src='{$this->settings['img_url']}/cross.png' alt='x' class='right' id='close-chat-tab-#{id}' /></a>\" );\n\tipb.chat.templates['count-title']\t\t= new Template( \"" . str_replace('%s', '#{count}', $this->lang->words['chattab_count']) . "\" );\n\t\n\t// Set some language vars\n\tipb.lang['time_am']\t\t\t\t= \"{$this->lang->words['time_am']}\";\n\tipb.lang['time_pm']\t\t\t\t= \"{$this->lang->words['time_pm']}\";\n\tipb.lang['entered_room']\t\t= \" {$this->lang->words['entered_room']}\";\n\tipb.lang['left_room']\t\t\t= \" {$this->lang->words['left_room']}\";\n\tipb.lang['chat_kick_user']\t\t= \"{$this->lang->words['chat_kick_user']}\";\n\tipb.lang['chat_ban_user']\t\t= \"{$this->lang->words['chat_ban_user']}\";\n\tipb.lang['chat_priv_user']\t\t= \"{$this->lang->words['chat_priv_user']}\";\n\tipb.lang['cant_kick_self']\t\t= \"{$this->lang->words['cant_kick_self']}\";\n\tipb.lang['youve_been_kicked']\t= \"{$this->lang->words['youve_been_kicked']}\";\n\tipb.lang['block_priv_user']\t\t= \"{$this->lang->words['block_priv_user']}\";\n\tipb.lang['unblock_priv_user']\t= \"{$this->lang->words['unblock_priv_user']}\";\n\tipb.lang['cant_block_user']\t\t= \"{$this->lang->words['cant_block_user']}\";\n\tipb.lang['noprivate_withignored'] = \"{$this->lang->words['noprivate_withignored']}\";\n\tipb.lang['ban_user_confirm']\t= \"{$this->lang->words['banconfirmpopup']}\";\n\t\n\t// Emoticons\n\tipb.chat.emoticons\t\t\t= \$H({ " . IPSLib::fetchEmoticonsAsJson($this->registry->output->skin['set_emo_dir'], true) . " });\n\tipb.vars['emoticon_url']\t= \"{$this->settings['emoticons_url']}\";\n\tipb.vars['img_url']\t\t\t= '{$this->settings['img_url']}';\n\t\n\t// Sound\n\tipb.chat.soundEnabled\t\t= " . (IPSCookie::get('chat_sounds') == 'off' ? "0" : "1") . ";\n\tipb.chat.soundOnImg\t\t\t= \"{$this->settings['img_url']}/bell.png\";\n\tipb.chat.soundOffImg\t\t= \"{$this->settings['img_url']}/bell_off.png\";\n\t\n\t// Chatters name formatting\n\t" . $this->__f__776f6e2cf0409238d7f8b06df58633b5($options, $chatters) . "\t// Ignore private chats from..\n\t" . $this->__f__5cb7dc707613b708061e35c39c0315de($options, $chatters) . "\t" . ((isset($this->memberData['_ignoredUsers']) and count($this->memberData['_ignoredUsers'])) ? "\n\t\t" . $this->__f__912a9882eb2468aa711103e006f1db77($options, $chatters) . "\t" : "") . "\n\t\n\t// Badwords\n\t" . ((is_array($this->caches['badwords']) and count($this->caches['badwords'])) ? "\n\t\t" . $this->__f__a322b0264fb42d72e2ed89b6f99a822a($options, $chatters) . "\t" : "") . "\n\t\n\t// Groups\n\t" . $this->__f__2a73ab0bb6c4c786423dde2785d55fd9($options, $chatters) . "</script>\n<script type='text/javascript' src='{$this->settings['public_dir']}js/ips.editor.js'></script>\n" . (!$this->request['_popup'] ? "\n\t<h1 class='ipsType_pagetitle'>" . IPSLib::getAppTitle('ipchat') . "</h1>\n\t<br /><br />\n" : "") . "\n<div class='ipsBox ipsLayout ipsLayout_withright ipsPostForm clearfix'>\n\t<div class='ipsBox_container ipsLayout_right ipsPostForm_sidebar'>\n\t\t<div id='chat-room-list' style='display:none'>\n\t\t\t<h3 class='bar'>{$this->lang->words['chats']}</h3>\n\t\t\t<div class='ipsPad ipsSideMenu'>\n\t\t\t\t<ul id='chat-tab-holder'>\n\t\t\t\t\t<li class='active' id='tab-chatroom'><a href='#tab-chatroom' rel='chatroom'>{$this->lang->words['chat_tab_home']}</a></li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\t\n\t\t<h3 class='bar'><span id='online-chat-count'>" . (($_count = count($chatters)) ? "{$_count}" : "0") . "</span> {$this->lang->words['whos_chatting_ttl']}</h3>\n\t\t<div class='ipsPad' id='chatters-online-wrap'>\n\t\t\t<ul id='chatters-online'>\n\t\t\t\t" . $this->__f__85f7a2a7de7bd273e202a92898fb0067($options, $chatters) . "\t\t\t</ul>\n\t\t</div>\n\t\t<div class='ipsPad right'>\n\t\t\t<ul class='ipsList_inline'>\n\t\t\t\t<li>\n\t\t\t\t\t<a class='ipsButton_secondary' href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=ipschat&amp;section=chat&amp;do=leave&amp;room={$options['roomId']}&amp;user={$options['userId']}&amp;access_key={$options['accessKey']}&amp;secure_key={$this->member->form_hash}" . ($this->request['_popup'] ? "&amp;popup=1" : "") . "", "publicWithApp", ''), "", "") . "' title='{$this->lang->words['leave_room']}' id='leave_room'><img src='{$this->settings['img_url']}/cross.png' alt='{$this->lang->words['leave_room']}' /> {$this->lang->words['leave_room']}</a>\n\t\t\t\t</li>\n\t\t\t\t<li>\n\t\t\t\t\t<a class='ipsButton_secondary' href='#' title='{$this->lang->words['toggle_sound']}' id='sound_toggle'>&nbsp;<img id='sound_toggle_img' src='{$this->settings['img_url']}/" . (IPSCookie::get('chat_sounds') == 'off' ? "bell_off.png" : "bell.png") . "' alt='{$this->lang->words['toggle_sound']}' />&nbsp;</a>\n\t\t\t\t</li>\n\t\t\t\t" . (!$this->request['_popup'] ? "\n\t\t\t\t\t<li>\n\t\t\t\t\t\t<a class='ipsButton_secondary' href='#' title='{$this->lang->words['chat_new_window']}' id='chat_new_window'><img src='{$this->settings['img_url']}/chat/window_open.png' alt='{$this->lang->words['chat_new_window']}' /></a>\n\t\t\t\t\t</li>\n\t\t\t\t" : "") . "\n\t\t\t</ul>\n\t\t</div>\n\t</div>\n\t<div class='ipsBox_container ipsLayout_content'>\n\t\t<div id='scrollbar_container'>\n\t\t\t<div id='messages-display'><span id='initial_message'>{$this->lang->words['please_wait_chats']}</span></div>\n\t\t</div>\n\t\t<form id='chat-form' action='#' method='post'>\n\t\t\t<input type='hidden' name='1_wysiwyg_used' id='1_wysiwyg_used' value='0' />\n\t\t\t<input type='hidden' name='editor_ids[]' value='1' />\n\t\t\t<div class='ips_editor' id='editor_message'>\n\t\t\t\t<div id='message_controls' class='controls'>\n\t\t\t\t\t<ul id='message_toolbar_2' class='toolbar' style='display: none'>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span id='message_cmd_bold' class='rte_control rte_button' title='{$this->lang->words['js_tt_bold']}'><img src='{$this->settings['img_url']}/rte_icons/bold.png' alt='{$this->lang->words['js_tt_bold']}' /></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span id='message_cmd_italic' class='rte_control rte_button' title='{$this->lang->words['js_tt_italic']}'><img src='{$this->settings['img_url']}/rte_icons/italic.png' alt='{$this->lang->words['js_tt_italic']}' /></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span id='message_cmd_underline' class='rte_control rte_button' title='{$this->lang->words['js_tt_underline']}'><img src='{$this->settings['img_url']}/rte_icons/underline.png' alt='{$this->lang->words['js_tt_underline']}' /></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span id='emoticons_custom_menu' class='ipbmenu rte_control rte_button' title='{$this->lang->words['js_tt_emoticons']}'><img src='{$this->settings['img_url']}/rte_icons/emoticons.png' alt='{$this->lang->words['js_tt_emoticons']}' /></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<span id='message_cmd_link' class='rte_control rte_palette' title='{$this->lang->words['js_tt_link']}'><img src='{$this->settings['img_url']}/rte_icons/link.png' alt='{$this->lang->words['js_tt_link']}' /></span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</div>\n\t\t\t\t<div id='message_wrap' class='editor'>\n\t\t\t\t\t<textarea name=\"message\" class=\"input_rte\" id=\"message_textarea\" rows=\"3\" cols=\"50\" tabindex=\"0\" maxlength=\"450\"></textarea>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<input type='submit' id='chat-submit' class='input_submit' value='{$this->lang->words['chat_post_button']}' />\n\t\t</form>\n\t</div>\n</div>\n<div id='mod-menu-container'>\n\t" . $this->__f__b9925e475553743bdec6c74675fb1a60($options, $chatters) . "</div>\n<div id='emoticons_custom_menu_menucontent'></div>\n<script type='text/javascript'>\n\tif( \$( 'message_toolbar_2' ) ){ \$( 'message_toolbar_2' ).show(); }\n\tipb.editor_values.get('templates')['link'] = new Template(\"<label for='#{id}_url'>{$this->lang->words['js_template_url']}</label><input type='text' class='input_text' id='#{id}_url' value='http://' tabindex='10' /><label for='#{id}_urltext'>{$this->lang->words['js_template_link']}</label><input type='text' class='input_text _select' id='#{id}_urltext' value='{$this->lang->words['js_template_default']}' tabindex='11' /><input type='submit' value='{$this->lang->words['js_template_insert_link']}' tabindex='12' />\");\n\tipb.editor_values.get('templates')['emoticons_showall'] = new Template(\"<input class='input_submit emoticons' type='button' id='#{id}_all_emoticons' value='{$this->lang->words['show_all_emoticons']}' />\");\n\tipb.editor_values.get('templates')['emoticon_wrapper'] = new Template(\"<h4><span>{$this->lang->words['emoticons_template_title']}</span></h4><div id='#{id}_emoticon_holder' class='emoticon_holder'></div>\");\n\tipb.editor_values.set( 'show_emoticon_link', false );\n\tipb.editor_values.set( 'emoticons', ipb.chat.emoticons );\n\tipb.editor_values.set( 'bbcodes', \$H(" . IPSLib::fetchBbcodeAsJson() . ") );\n\tipb.editors[ 'message' ] = new ipb.editor( 'message', 0 );\n\t/* Load emoticons on the fly ... */\n\tvar _emoticonsLoaded\t= false;\n\t\$('emoticons_custom_menu').observe( 'click', function( e ){ \n\t\tif( !_emoticonsLoaded )\n\t\t{\n\t\t\tnew Ajax.Request( \n\t\t\t\t\t\t\t\tipb.vars['base_url'] + \"&app=ipchat&module=ajax&section=getemoticons&md5check=\" + ipb.vars['secure_hash'], \n\t\t\t\t\t\t\t\t{ \n\t\t\t\t\t\t\t\t\tmethod: 'get',\n\t\t\t\t\t\t\t\t\tonSuccess: function(t)\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\$('emoticons_custom_menu_menucontent').update( t.responseText );\n\t\t\t\t\t\t\t\t\t\t_emoticonsLoaded\t= true;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t}\n\t});\n\tfunction addEmoImage(elem){\n\t\tvar code = elem.up('tr').down('a').innerHTML;\n\t\tvar title = elem.up('tr').down('img').readAttribute('title');\n\t\tipb.editors[ 'message' ].insert_emoticon('', title, code,'');\n\t}\n</script>\n\t\t\t\n<!--Iframes used for cross-domain \"AJAX\"-->\n<div id='iframeContainer'>\n<div id='storage_container_chatroom' class='storage-container'><ul id='storage_chatroom'></ul></div>\n</div>";
     return $IPBHTML;
 }
Пример #2
0
 function chatRoom($options = array(), $chatters = array())
 {
     $IPBHTML = "";
     if (IPSLib::locationHasHooks('skin_ipchat', $this->_funcHooks['chatRoom'])) {
         $count_47c727f3c1cf8b3aa32a608be34dce68 = is_array($this->functionData['chatRoom']) ? count($this->functionData['chatRoom']) : 0;
         $this->functionData['chatRoom'][$count_47c727f3c1cf8b3aa32a608be34dce68]['options'] = $options;
         $this->functionData['chatRoom'][$count_47c727f3c1cf8b3aa32a608be34dce68]['chatters'] = $chatters;
     }
     $IPBHTML .= "<script type='text/javascript'>\n//<![CDATA[\n\tjsDebug\t\t\t= " . intval($this->settings['_jsDebug']) . "; /* Must come before JS includes */\n\tUSE_RTE\t\t\t= 1;\n\tDISABLE_AJAX\t= parseInt({$this->settings['disable_text_ajax']}); /* Disables ajax requests where text is sent to the DB; helpful for charset issues */\n\tinACP\t\t\t= false;\n\tvar isRTL\t\t= false;\n\tvar rtlIe\t\t= '';\n\tvar rtlFull\t\t= '';\n//]]>\n</script>\n<script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/scriptaculous/scriptaculous-cache.js'></script>\n<script type='text/javascript' src='{$this->settings['js_base_url']}js/ipb.js'></script>\n<script type='text/javascript' src='{$this->settings['js_base_url']}js/ips.chat.js'></script>\n<script type='text/javascript'>\n\tipb.vars['base_url'] \t\t\t= '" . ($this->registry->output->isHTTPS ? "" . str_replace('http://', 'https://', "{$this->settings['js_base']}") . "" : "{$this->settings['js_base']}") . "';\n\tipb.vars['board_url']\t\t\t= '{$this->settings['board_url']}';\n\tipb.vars['img_url'] \t\t\t= \"{$this->settings['img_url']}\";\n\tipb.vars['member_id']\t\t\t= parseInt( {$this->memberData['member_id']} );\n\tipb.vars['is_supmod']\t\t\t= parseInt( " . intval($this->memberData['g_is_supmod']) . " );\n\tipb.vars['is_admin']\t\t\t= parseInt( {$this->memberData['g_access_cp']} );\n\tipb.vars['secure_hash'] \t\t= '{$this->member->form_hash}';\n\tipb.vars['session_id']\t\t\t= '{$this->member->session_id}';\n\tipb.vars['is_touch']\t\t\t= " . ($this->registry->output->isLargeTouchDevice() ? "'large';" : "" . ($this->registry->output->isSmallTouchDevice() ? "'small';" : "false;") . "") . "\n\tipb.vars['member_group']\t\t= " . json_encode(array('g_mem_info' => $this->memberData['g_mem_info'])) . "\n\tipb.vars['cookie_id'] \t\t\t= '{$this->settings['cookie_id']}';\n\tipb.vars['cookie_domain'] \t\t= '{$this->settings['cookie_domain']}';\n\tipb.vars['cookie_path']\t\t\t= '{$this->settings['cookie_path']}';\n\tipb.vars['charset']\t\t\t\t= \"{$this->settings['gb_char_set']}\";\n\tipb.vars['seo_enabled']\t\t\t= " . intval($this->settings['use_friendly_urls']) . ";\n\t" . ($this->settings['use_friendly_urls'] ? "\n\tipb.vars['seo_params']\t\t\t= " . json_encode($this->registry->getClass('output')->seoTemplates['__data__']) . ";\n\t" : "") . "\n\tLoader.boot();\n\t\t\n\t// Basic variables\n\tvar roomId\t\t= {$options['roomId']};\n\tvar userId\t\t= {$options['userId']};\n\tvar userName\t= '" . ($this->memberData['member_id'] ? "{$this->memberData['members_display_name']}" : "{$this->memberData['members_display_name']}_{$options['userId']}") . "';\n\tvar accessKey\t= '{$options['accessKey']}';\n\tvar serverHost\t= '{$options['serverHost']}';\n\tvar serverPath\t= '{$options['serverPath']}';\n\tvar ourUrl\t\t= '{$options['ourUrl']}';\n\tvar isMobile\t= 1;\n\t// Chat settings\t\n\tipb.chat.condenseTime\t\t= parseInt({$this->settings['ipchat_limit_time']});\n\tipb.chat.maxMessages\t\t= 50; // Force to 50 on mobile as we do not have a scrollable div... parseInt({$this->settings['ipchat_max_messages']});\n\tipb.chat.moderator\t\t\t= parseInt({$options['moderator']});\n\tipb.chat.private\t\t\t= parseInt({$options['private']});\n\tipb.chat.hideEnterExit\t\t= parseInt({$this->settings['ipchat_hide_usermessage']});\n\tipb.chat.noBuffer\t\t\t= parseInt('{$this->settings['ipchat_no_buffer']}');\n\tipb.chat.inactiveKick\t\t= parseInt('{$this->settings['ipchat_inactive_minutes']}');\n\tipb.chat.user24hour \t\t= parseInt('{$this->settings['ipchat_24hour']}');\n\t\n\t// Set up templates\n\tipb.chat.templates['msg-1']\t\t\t\t= new Template( \"<li class='post chat-message #{ownclass}'>#{photo} <label>#{username}</label> <div>#{message}</div></li>\" );\n\tipb.chat.templates['msg-1-compound']\t= new Template( \"<li class='post chat-message #{ownclass}'><div class='hider'>&nbsp;</div><div>#{message}</div></li>\" );\n\tipb.chat.templates['msg-2']\t\t\t\t= new Template( \"<li class='post chat-notice'>#{photo} <label>#{username}</label> <div>#{action}</div></li>\" );\n\tipb.chat.templates['msg-3']\t\t\t\t= new Template( \"<li class='post chat-me'>#{photo} <label>#{username}</label> <div>**#{message}**</div></li>\" );\n\tipb.chat.templates['msg-4']\t\t\t\t= new Template( \"<li class='post chat-system'>{$this->lang->words['sys_message_pre']} #{message}</li>\" );\n\tipb.chat.templates['msg-5']\t\t\t\t= new Template( \"<li class='post chat-moderator'><label class='fluid'>#{username}</label> <div>{$this->lang->words['_kicked']} #{extra}</div></li>\" );\n\tipb.chat.templates['msg-K']\t\t\t\t= new Template( \"<li class='post chat-moderator'><div>{$this->lang->words['youve_been_kicked']}</div></li>\" );\n\tipb.chat.templates['send_private']\t\t= new Template( \"<div id='priv_#{id}_wrap'><h3 class='bar'>{$this->lang->words['sendprivatechat']}</h3><div class='chat-private-message'><textarea name='message_content' id='priv_chat_text_#{id}' cols='15' rows='2'></textarea> <input type='submit' value='{$this->lang->words['sendprivatebutton']}' id='#{id}_submit' onclick='return ipb.chat.sendPrivateChat( #{id} );' /></div></div>\" );\n\tipb.chat.templates['new-tab']\t\t\t= new Template( \"<a href='#tab-#{id}' rel='#{id}'>#{name}&nbsp;&nbsp;&nbsp;<img src='{$this->settings['img_url']}/chat/cross.png' alt='x' class='right' id='close-chat-tab-#{id}' /></a>\" );\n\tipb.chat.templates['count-title']\t\t= new Template( \"" . str_replace('%s', '#{count}', $this->lang->words['chattab_count']) . "\" );\n\t\n\t// Set some language vars\n\tipb.lang['time_am']\t\t\t\t= \"{$this->lang->words['time_am']}\";\n\tipb.lang['time_pm']\t\t\t\t= \"{$this->lang->words['time_pm']}\";\n\tipb.lang['entered_room']\t\t= \" {$this->lang->words['entered_room']}\";\n\tipb.lang['left_room']\t\t\t= \" {$this->lang->words['left_room']}\";\n\tipb.lang['chat_kick_user']\t\t= \"{$this->lang->words['mobile_kick']}\";\n\tipb.lang['chat_ban_user']\t\t= \"{$this->lang->words['mobile_ban']}\";\n\tipb.lang['chat_priv_user']\t\t= \"{$this->lang->words['mobile_start_private']}\";\n\tipb.lang['cant_kick_self']\t\t= \"{$this->lang->words['cant_kick_self']}\";\n\tipb.lang['youve_been_kicked']\t= \"{$this->lang->words['youve_been_kicked']}\";\n\tipb.lang['block_priv_user']\t\t= \"{$this->lang->words['mobile_ignore_private']}\";\n\tipb.lang['unblock_priv_user']\t= \"{$this->lang->words['mobile_unignore_private']}\";\n\tipb.lang['cant_block_user']\t\t= \"{$this->lang->words['cant_block_user']}\";\n\tipb.lang['noprivate_withignored'] = \"{$this->lang->words['noprivate_withignored']}\";\n\tipb.lang['ban_user_confirm']\t= \"{$this->lang->words['banconfirmpopup']}\";\n\tipb.lang['leave_room']\t\t\t= \"{$this->lang->words['leave_room']}\";\n\tipb.chat.emoticons\t\t\t= \$H({ " . IPSLib::fetchEmoticonsAsJson($this->registry->output->skin['set_emo_dir'], true) . " });\n\tipb.vars['emoticon_url']\t= \"{$this->settings['emoticons_url']}\";\n\tipb.vars['img_url']\t\t\t= '{$this->settings['img_url']}';\n\t\n\t// Sound\n\tipb.chat.soundEnabled\t\t= 0;\n\tipb.chat.soundOnImg\t\t\t= \"{$this->settings['img_url']}/bell.png\";\n\tipb.chat.soundOffImg\t\t= \"{$this->settings['img_url']}/bell_off.png\";\n\t\n\t// Chatters name formatting\n\t" . $this->__f__6a2148f8aea32d563dba4cfc2ea26117($options, $chatters) . "\t// Ignore private chats from..\n\t" . $this->__f__c7d9b312d0083505b0381de125b07ff9($options, $chatters) . "\t" . ((isset($this->memberData['_ignoredUsers']) and count($this->memberData['_ignoredUsers'])) ? "\n\t\t" . $this->__f__51c00e34f1dc2fc9c9540e657061101e($options, $chatters) . "\t" : "") . "\n\t\n\t// Badwords\n\t" . ((is_array($this->caches['badwords']) and count($this->caches['badwords'])) ? "\n\t\t" . $this->__f__7fe88bdf9bcba4c09df360ec9b8c97e8($options, $chatters) . "\t" : "") . "\n\t\n\t// Groups\n\t" . $this->__f__bf96e7c865a7e947703577df5c0006b5($options, $chatters) . "\t\n\tdocument.observe(\"dom:loaded\", function() {\n\t\t\$('chatters-online-toggle').observe( 'click', function(e) {\n\t\t\tEvent.stop(e);\n\t\t\t\n\t\t\t\$('chatters-online').toggle();\n\t\t\t\n\t\t\tif( ( navigator.userAgent.match(/iPhone OS 2/i) ) || ( navigator.userAgent.match(/iPhone OS 3/i) ) || ( navigator.userAgent.match(/iPhone OS 4/i) ) )\n\t\t\t{\n\t\t\t\t\$('chat-form').setStyle( { top: (window.pageYOffset + window.innerHeight - 34) + 'px' } );\n\t\t\t}\n\t\t\t\n\t\t\treturn false;\n\t\t});\n\t});\n</script>\n<h2>" . IPSLib::getAppTitle('ipchat') . "</h2>\n<div class='clearfix'>\n\t<div>\n\t\t<div id='chat-room-list' style='display:none' class='master_list'>\n\t\t\t<h3 class='title'>{$this->lang->words['chats']}</h3>\n\t\t\t<div id='chat-tab-wrapper'>\n\t\t\t\t<ul id='chat-tab-holder'>\n\t\t\t\t\t<li class='active' id='tab-chatroom'><a href='#tab-chatroom' rel='chatroom'>{$this->lang->words['chat_tab_home']}</a></li>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</div>\t\n\t</div>\n\t<div class='ipsBox_container ipsLayout_content'>\n\t\t<div id='scrollbar_container'>\n\t\t\t<div id='messages-display'><span id='initial_message'>{$this->lang->words['please_wait_chats']}</span></div>\n\t\t</div>\n\t\t<form id='chat-form' action='#' method='post'>\n\t\t\t<div id='editor_message'>\n\t\t\t\t<div id='message_wrap' class='editor'>\n\t\t\t\t\t<textarea name=\"message\" id=\"message_textarea\" rows=\"1\" cols=\"50\" tabindex=\"0\" maxlength=\"450\"></textarea>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<input type='submit' id='chat-submit' class='input_submit' value='{$this->lang->words['chat_post_button']}' />\n\t\t</form>\n\t</div>\n\t<div class='master_list' id='chatters-online-wrap'>\n\t\t<h3 class='title' id='chatters-online-toggle'><span id='online-chat-count'>" . (($_count = count($chatters)) ? "{$_count}" : "0") . "</span> {$this->lang->words['whos_chatting_ttl']}</h3>\n\t\t<ul id='chatters-online' style='display: none;'>\n\t\t\t" . $this->__f__03348d49387c54d06860e9bca2537c8d($options, $chatters) . "\t\t</ul>\n\t</div>\n</div>\n\t\t\t\n<!--Iframes used for cross-domain \"AJAX\"-->\n<div id='iframeContainer'>\n<div id='storage_container_chatroom' class='storage-container'><ul id='storage_chatroom'></ul></div>\n</div>";
     return $IPBHTML;
 }
 function showConversation($topic, $replies, $members, $jump = "")
 {
     $IPBHTML = "";
     $IPBHTML .= "<div id='conversation'>\n\t\n<div class='topic_controls'>\n\t{$topic['_pages']}\n\t<ul class='topic_buttons'>\n\t\t" . (1 == 1 ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=form", 'publicWithApp', ''), "", "") . "' title='Go to compose screen'>" . $this->registry->getClass('output')->getReplacement("compose_icon") . " Compose New</a></li>\n\t\t" : "") . "" . ($topic['_canReply'] ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=replyForm&amp;topicID={$topic['mt_id']}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("reply_icon") . " Add Reply</a></li>\n\t\t" : "\n\t\t\t<li class='disabled'><span>You cannot reply</span></li>\n\t\t") . "\n\t\t<!-- SKINNOTE: Can probably do with some kind of 'are you sure' dialogue here.. -->\n\t\t<li><a onclick='ipb.messenger.deletePM(this)' id='pm_delete_t_{$topic['mt_id']}' href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=view&amp;do=deleteConversation&amp;topicID={$topic['mt_id']}&amp;authKey={$this->member->form_hash}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("delete_msg_icon") . " Delete</a></li>\n\t</ul>\n</div>\n<br />\n<h2>{$topic['mt_title']}</h2>\n<ul class='topic_options'></ul>" . $this->__f__1ecf86a8538860412fe57ff8f7d8bfb8($topic, $replies, $members, $jump) . "<div class='topic_controls'>\n\t{$topic['_pages']}\n\t<ul class='topic_buttons'>\n\t\t" . (1 == 1 ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=form", 'publicWithApp', ''), "", "") . "' title='Go to compose screen'>" . $this->registry->getClass('output')->getReplacement("compose_icon") . " Compose New</a></li>\n\t\t" : "") . "" . ($topic['_canReply'] ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=replyForm&amp;topicID={$topic['mt_id']}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("reply_icon") . " Add Reply</a></li>\n\t\t" : "\n\t\t\t<li class='disabled'><span>You cannot reply</span></li>\n\t\t") . "\n\t\t<!-- SKINNOTE: Can probably do with some kind of 'are you sure' dialogue here.. -->\n\t\t<li><a onclick='ipb.messenger.deletePM(this)' id='pm_delete_b_{$topic['mt_id']}' href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=view&amp;do=deleteConversation&amp;topicID={$topic['mt_id']}&amp;authKey={$this->member->form_hash}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("delete_msg_icon") . " Delete</a></li>\n\t</ul>\n</div>\n<br />\n" . ($topic['_canReply'] ? "" . $this->registry->getClass('output')->addJSModule("editor", "0") . "\n\t<script type='text/javascript'>\n\t\t//<![CDATA[\n\t\t" . $this->registry->getClass('output')->getTemplate('editors')->editorJS() . "\n\t\t//]]>\n\t</script>\n\t\n\t<br />\n\t<div id='fast_reply' style='display: {$displayData['fast_reply']}'>\n\t\t<h3>Fast Reply</h3>\n\t\t<ul class='topic_options'></ul>\n\t\t<div class='general_box alt'>\n\t\t\t<form action='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members&amp;module=messaging&amp;section=send&amp;do=sendReply&amp;topicID={$topic['mt_id']}", 'public', ''), "", "") . "' method='post'>\n\t\t\t\t" . $this->registry->getClass('output')->getTemplate('editors')->editorShell('fast-reply', 'msgContent', '', 1) . "\n\t\t\t\t<fieldset class='submit'>\n\t\t\t\t\t<input type=\"hidden\" name=\"authKey\" value=\"{$this->member->form_hash}\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"fast_reply_used\" value=\"1\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"enableemo\" value=\"yes\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"enablesig\" value=\"yes\" />\n\t\t\t\t\t<input type='submit' name=\"submit\" class='input_submit' value='Post' />&nbsp;&nbsp;<input type='submit' name=\"previewReply\" class='input_submit alt' value='Use Full Editor' />\n\t\t\t\t</fieldset>\n\t\t\t</form>\n\t\t</div>\n\t</div>\n\t<script type=\"text/javascript\">\n\t//<![CDATA[\n\t\tif( \$('fast-reply_textarea') ){\n\t\t\t\$('fast-reply_textarea').setStyle('height: 70px');\n\t\t}\n\t\t\n\t\tipb.editor_values.set( 'emoticons', \$H({ " . IPSLib::fetchEmoticonsAsJson() . " }) );\n\t\tipb.vars['emoticon_url'] = \"{$this->settings['emoticons_url']}\";\n\t\t//ipb.editors[ '{$editor_id}' ] = new ipb.editor( '{$editor_id}', parseInt({$rte_mode}), parseInt({$rte_mode}) == 1 ? 0 : 1, 'Hello this is an initial value' );\n\t\tipb.editors[ 'fast-reply' ] = new ipb.editor( 'fast-reply', USE_RTE );\n\t\tin_use = 0;\n\t\t" . ($rte_mode != 1 ? "\n\t\t\tobj = ipb.editors['fast-reply'].editor_document;\n\t\t" : "\n\t\t\tobj = \$( ipb.editors['fast-reply'].items['text_obj'] );\n\t\t") . "\n\t\tEvent.observe( obj, 'click', function(){\n\t\t\tif( in_use != 1 ){\n\t\t\t\t\$( ipb.editors['fast-reply'] ).resize_to( 250 );\n\t\t\t\tin_use = 1;\n\t\t\t}\n\t\t}, true);\n\t//]]>\n\t</script>" : "") . "\n</div>\n" . $this->registry->getClass('output')->getTemplate('global')->include_highlighter() . "";
     return $IPBHTML;
 }
 function viewReport($options = array(), $reports = array(), $comments = array())
 {
     $IPBHTML = "";
     $IPBHTML .= "" . $this->registry->getClass('output')->addJSModule("reports", "0") . "\n<script type='text/javascript'>\n\t// Editor JS: Only needs to be done once per page\n\t" . $this->registry->getClass('output')->getTemplate('editors')->editorJS() . "\n</script>\n<div class='message'>{$options['class']}\n\t{$this->lang->words['report_about_intro']} " . ($options['class'] == 'messages' ? "{$this->lang->words['report_about_pm']} {$options['title']}.\n\t\t" . (in_array($this->memberData['member_group_id'], explode(',', $this->registry->getClass('reportLibrary')->plugins['messages']->_extra['plugi_messages_add'])) ? "\n\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=reports&amp;section=reports&amp;do=showMessage&amp;topicID={$options['topicID']}", 'public', ''), "", "") . "'>{$this->lang->words['report_join_pm']}</a>\n\t\t" : "") . "" : "\n\t\t<a href=\"{$options['url']}\" title=\"{$this->lang->words['report_view_reported']}\">{$options['title']}</a>\n\t") . "\n</div>\n<br />\n<div class='topic_controls'>\n\t<ul class='topic_buttons'>\n\t\t" . ($this->memberData['g_access_cp'] ? "<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=reports&amp;section=reports&amp;do=process&amp;report_ids[{$options['rid']}]={$options['rid']}&amp;newstatus=d&amp;k={$this->member->form_hash}", 'public', ''), "", "") . "' title='{$this->lang->words['delete_report']}'><img src='{$this->settings['img_url']}/delete.png' alt='{$this->lang->words['icon']}' id='delete_report' /> {$this->lang->words['delete_report']}</a></li>" : "") . "\n\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=reports&amp;section=reports&amp;do=process&amp;report_ids[{$options['rid']}]={$options['rid']}&amp;newstatus=2&amp;k={$this->member->form_hash}", 'public', ''), "", "") . "' title='{$this->lang->words['change_current_status']}' class='ipbmenu' id='change_status'>{$options['status_icon']} {$this->lang->words['current_status']} <strong>{$options['status_text']}</strong></a></li>\n\t</ul>\n</div>\n" . (is_array($options['statuses']) && count($options['statuses']) ? "\n\t<ul class='ipbmenu_content' id='change_status_menucontent'>\n\t\t" . $this->__f__ac251e769ada4781d829ec7806dc3381($options, $reports, $comments) . "\t</ul>\n" : "") . "\n<br />\n<h2 class='maintitle'>{$this->lang->words['reports_h2']}</h2>\n<div class='generic_bar'></div>\n" . ((is_array($reports) and count($reports)) ? "\n\t" . $this->__f__3df86f01baeea518c61c14a96d4ceab2($options, $reports, $comments) . "" : "") . "\n<br /><hr /><br />\n\n<h2 class='maintitle'>{$this->lang->words['comments_h2']}</h2>\n<div class='generic_bar'></div>\n" . ((is_array($comments) and count($comments)) ? "\n\t" . $this->__f__ee83adbdc57df8047ecea305fa12f7dc($options, $reports, $comments) . "" : "\n\t<p class='no_messages'>\n\t\t{$this->lang->words['no_comments_on_report']}\n\t</p>\n") . "\n<!-- SKINNOTE: Need to use included editor here -->\n" . $this->registry->getClass('output')->addJSModule("editor", "0") . "\n<br />\n<div id='fast_reply' style='display: {$displayData['fast_reply']}'>\n\t<h3 class='maintitle'>{$this->lang->words['add_comment_title']}</h3>\n\t<div class='generic_bar'></div>\n\t<div class='general_box alt'>\n\t\t<form method=\"post\" action=\"{$this->settings['base_url']}\" name=\"report_comment_submit\" id='report_comment_submit'>\n\t\t\t<input type=\"hidden\" id=\"report_rid\" name=\"rid\" value=\"{$options['rid']}\" />\n\t\t\t<input type=\"hidden\" name=\"app\" value=\"core\" />\n\t\t\t<input type=\"hidden\" name=\"module\" value=\"reports\" />\n\t\t\t<input type=\"hidden\" name=\"do\" value=\"save_comment\" />\n\t\t\t<input type='hidden' name='{$editor_id}_wysiwyg_used' value='0' />\n\t\t\t" . $this->registry->getClass('output')->getTemplate('editors')->editorShell('report_comment', 'comment') . " \n\t\t\t<fieldset class='submit'>\n\t\t\t\t<input type='submit' class='input_submit' value='{$this->lang->words['post_button']}' accesskey='s' />\n\t\t\t</fieldset>\n\t\t</form>\n\t</div>\n</div>\n" . (!$this->settings['disable_lightbox'] ? "\n" . $this->registry->getClass('output')->getTemplate('global')->include_lightbox() . "\n" : "") . "\n" . $this->registry->getClass('output')->getTemplate('global')->include_highlighter(1) . "\n<script type=\"text/javascript\">\n//<![CDATA[\n\tif( \$('report_comment_textarea') ){\n\t\t\$('report_comment_textarea').setStyle('height: 70px');\n\t}\n\t\n\tipb.editor_values.set( 'emoticons', \$H({ " . IPSLib::fetchEmoticonsAsJson() . " }) );\n\tipb.editors[ 'report_comment' ] = new ipb.editor( 'report_comment', USE_RTE );\n\tin_use = 0;\n\t" . ($rte_mode != 1 ? "\n\t\tobj = ipb.editors['report_comment'].editor_document;\n\t" : "\n\t\tobj = \$( ipb.editors['report_comment'].items['text_obj'] );\n\t") . "\n\tEvent.observe( obj, 'click', function(){\n\t\tif( in_use != 1 ){\n\t\t\t\$( ipb.editors['report_comment'] ).resize_to( 250 );\n\t\t\tin_use = 1;\n\t\t}\n\t}, true);\n//]]>\n</script>\n</if>";
     return $IPBHTML;
 }
 function topicViewTemplate($forum, $topic, $post_data, $displayData)
 {
     $IPBHTML = "";
     $IPBHTML .= "" . ($forum['forum_allow_rating'] ? "\n" . $this->registry->getClass('output')->addJSModule("rating", "0") . "\n" : "") . "\n" . $this->registry->getClass('output')->addJSModule("topic", "0") . "\n" . $this->registry->getClass('output')->addJSModule("editor", "0") . "\n<script type=\"text/javascript\">\n//<![CDATA[\n\tipb.topic.inSection = 'topicview';\n\tipb.topic.topic_id  = {$topic['tid']};\n\tipb.topic.forum_id  = {$forum['id']};\n\tipb.topic.start_id  = " . intval($this->request['st']) . ";\n\t// Editor JS: Only needs to be done once per page\n\t" . $this->registry->getClass('output')->getTemplate('editors')->editorJS() . "\n\t//Search Setup\n\tipb.vars['search_type']\t\t\t= 'forum';\n\tipb.vars['search_type_id']\t\t= {$forum['id']};\n\tipb.vars['search_type_2']\t\t= 'topic';\n\tipb.vars['search_type_id_2']\t= {$topic['tid']};\n//]]>\n</script>\n" . (!$this->settings['disable_lightbox'] ? "\n" . $this->registry->getClass('output')->getTemplate('global')->include_lightbox() . "\n" : "") . "\n" . ($forum['show_rules'] == 2 ? "\n<div class='message unspecific'>\n<h3>{$forum['rules_title']}</h3>\n{$forum['rules_text']}\n</div>\n" : "") . "\n" . ($forum['show_rules'] == 1 ? "\n<div class='message unspecific'>\n\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=forums&amp;section=rules&amp;f={$forum['id']}", 'public', ''), "", "") . "' title='{$this->lang->words['show_forum_rules']}'><strong>{$forum['rules_title']}</strong></a>\n</div>\n" : "") . "\n" . ($displayData['threaded_mode_enabled'] == 0 ? "<div class='topic_controls'>\n\t\t{$topic['SHOW_PAGES']}\n\t\t<ul class='topic_buttons'>\n\t\t\t" . ($forum['_user_can_post'] ? "\n\t\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=post&amp;section=post&amp;do=new_post&amp;f={$forum['id']}", 'publicWithApp', ''), "", "") . "' title='{$this->lang->words['start_new_topic']}' accesskey='n'>" . $this->registry->getClass('output')->getReplacement("topic_icon") . " {$this->lang->words['start_new_topic']}</a></li>\n\t\t\t" : "\n\t\t\t\t<li class='disabled'><span>{$this->lang->words['top_cannot_start']}</span></li>\n\t\t\t") . "\n\t\t\t" . ($displayData['reply_button']['image'] == 'locked' ? "<li class='closed'>\n\t\t\t\t\t" . ($displayData['reply_button']['url'] ? "\n\t\t\t\t\t\t<a href='{$displayData['reply_button']['url']}' accesskey='r'>" . $this->registry->getClass('output')->getReplacement("lock_icon") . " {$this->lang->words['top_locked_reply']}</a>\n\t\t\t\t\t" : "\n\t\t\t\t\t\t<span>" . $this->registry->getClass('output')->getReplacement("lock_icon") . " {$this->lang->words['top_locked']}</span>\n\t\t\t\t\t") . "\n\t\t\t\t</li>" : "" . ($displayData['reply_button']['image'] ? "" . ($displayData['reply_button']['url'] ? "\n\t\t\t\t\t\t<li><a href='{$displayData['reply_button']['url']}' title='{$this->lang->words['topic_add_reply']}' accesskey='r'>" . $this->registry->getClass('output')->getReplacement("{$displayData['reply_button']['image']}_icon") . " {$this->lang->words['topic_add_reply']}</a></li>\n\t\t\t\t\t" : "\n\t\t\t\t\t\t<li class='disabled'><span>{$this->lang->words['top_cannot_reply']}</span></li>\n\t\t\t\t\t") . "" : "") . "") . "\n\t\t\t" . ($this->memberData['member_id'] ? "<li>\n\t\t\t\t\t" . (($this->settings['cpu_watch_update'] and $topic['trackingTopic']) ? "\n\t\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=usercp&amp;tab=forums&amp;area=updateWatchTopics&amp;do=saveIt&amp;authKey={$this->member->form_hash}&amp;topicIDs[{$topic['tid']}]=1&amp;trackchoice=unsubscribe&amp;topicReturn={$topic['tid']}", 'public', ''), "", "") . "' title='{$this->lang->words['topic_stop_watching']}'>" . $this->registry->getClass('output')->getReplacement("watch_topic_off") . "&nbsp;&nbsp;{$this->lang->words['topic_stop_watching']}</a>\n\t\t\t\t\t" : "\n\t\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=usercp&amp;tab=forums&amp;area=watch&amp;watch=topic&amp;do=list&amp;tid={$topic['tid']}", 'public', ''), "", "") . "' title='{$this->lang->words['tt_title']}'>" . $this->registry->getClass('output')->getReplacement("watch_topic_on") . "&nbsp;&nbsp;{$this->lang->words['tt_title']}</a>\n\t\t\t\t\t") . "\n\t\t\t\t</li>" : "") . "\n\t\t</ul>\t\n\t</div>" : "") . "\n<div class='topic hfeed'>\n\t<h2 class='maintitle'>\n\t\t<span class='main_topic_title'>\n\t\t\t{$topic['title']}\n\t\t\t" . ($topic['description'] ? "\n\t\t\t\t<span class='desc main_topic_desc'>{$topic['description']}</span>\n\t\t\t" : "") . "\n\t\t</span>\n\t\t<!-- SKINNOTE: Need to fill in proper URL for topic rating -->\n\t\t" . ($forum['forum_allow_rating'] ? "<span class='rating'>{$this->lang->words['js_rate_me']}\n\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=extras&amp;section=rating&amp;t={$topic['tid']}&amp;rating=1", 'public', ''), "", "") . "' id='topic_rate_1' title='{$this->lang->words['top_js_1star']}'>" . ($topic['_rate_int'] >= 1 ? "" . $this->registry->getClass('output')->getReplacement("rate_on") . "" : "" . $this->registry->getClass('output')->getReplacement("rate_off") . "") . "</a><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=extras&amp;section=rating&amp;t={$topic['tid']}&amp;rating=2", 'public', ''), "", "") . "' id='topic_rate_2' title='{$this->lang->words['top_js_2star']}'>" . ($topic['_rate_int'] >= 2 ? "" . $this->registry->getClass('output')->getReplacement("rate_on") . "" : "" . $this->registry->getClass('output')->getReplacement("rate_off") . "") . "</a><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=extras&amp;section=rating&amp;t={$topic['tid']}&amp;rating=3", 'public', ''), "", "") . "' id='topic_rate_3' title='{$this->lang->words['top_js_3star']}'>" . ($topic['_rate_int'] >= 3 ? "" . $this->registry->getClass('output')->getReplacement("rate_on") . "" : "" . $this->registry->getClass('output')->getReplacement("rate_off") . "") . "</a><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=extras&amp;section=rating&amp;t={$topic['tid']}&amp;rating=4", 'public', ''), "", "") . "' id='topic_rate_4' title='{$this->lang->words['top_js_4star']}'>" . ($topic['_rate_int'] >= 4 ? "" . $this->registry->getClass('output')->getReplacement("rate_on") . "" : "" . $this->registry->getClass('output')->getReplacement("rate_off") . "") . "</a><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=extras&amp;section=rating&amp;t={$topic['tid']}&amp;rating=5", 'public', ''), "", "") . "' id='topic_rate_5' title='{$this->lang->words['top_js_5star']}'>" . ($topic['_rate_int'] >= 5 ? "" . $this->registry->getClass('output')->getReplacement("rate_on") . "" : "" . $this->registry->getClass('output')->getReplacement("rate_off") . "") . "</a>\n\t\t\t\t<span id='rating_text'>\n\t\t\t\t\t" . ($topic['topic_rating_hits'] > 0 ? "<span id='rating_hits'>{$topic['topic_rating_hits']}</span> {$this->lang->words['poll_s_votes']}" : "") . "\n\t\t\t\t\t" . ($topic['_rating_value'] != -1 ? " ({$this->lang->words['topic_poll_your_vote']} <span id='your_rate'>{$topic['_rating_value']}</span>)" : "") . "\n\t\t\t\t</span>\n\t\t\t\t<script type='text/javascript'>\n\t\t\t\t//<![CDATA[\n\t\t\t\t\trating = new ipb.rating( 'topic_rate_', { \n\t\t\t\t\t\t\t\t\t\turl: '" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&module=ajax&section=topics&do=rateTopic&t={$topic['tid']}", 'public', ''), "", "") . "&md5check=' + ipb.vars['secure_hash'],\n\t\t\t\t\t\t\t\t\t\tcur_rating: {$topic['_rate_int']},\n\t\t\t\t\t\t\t\t\t\trated: " . ($topic['_rating_value'] != -1 ? "1" : "0") . ",\n\t\t\t\t\t\t\t\t\t\tallow_rate: {$topic['_allow_rate']},\n\t\t\t\t\t\t\t\t\t\tmulti_rate: 1,\n\t\t\t\t\t\t\t\t\t\tshow_rate_text: true\n\t\t\t\t\t\t\t\t\t  } );\n\t\t\t\t//]]>\n\t\t\t\t</script>\n\t\t\t</span>" : "") . "\n\t</h2>\n\t\n\t{$displayData['poll_data']}\n\t\n\t" . ($displayData['mod_links'] ? "" . (($this->memberData['is_mod'] or $this->memberData['member_id'] == $topic['starter_id']) ? "\n\t\t\t<form id=\"modform\" method=\"post\" action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("", 'public', ''), "", "") . "\">\n\t\t\t\t<fieldset>\n\t \t\t\t\t<input type=\"hidden\" name=\"app\" value=\"forums\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"module\" value=\"moderate\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"section\" value=\"moderate\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"do\" value=\"postchoice\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"f\" value=\"{$topic['forum_id']}\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"t\" value=\"{$topic['tid']}\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"auth_key\" value=\"{$this->member->form_hash}\" />\n\t\t \t\t\t<input type=\"hidden\" name=\"st\" value=\"{$this->request['st']}\" />\n\t\t \t\t\t<input type=\"hidden\" value=\"{$this->request['selectedpids']}\" name=\"selectedpidsJS\" id='selectedpidsJS' />\n\t\t\t\t</fieldset>\n\t\t" : "") . "" : "") . "\n\t\n" . ((is_array($post_data) and count($post_data)) ? "\n<!-- skinnote: Posts by ignored users are not hidden, check _ignored -->\n\t" . $this->__f__a182def8a1ce04a4ca3c04da57afcdc2($forum, $topic, $post_data, $displayData) . "" : "") . "\n<!-- MOD LINKS -->\n" . ($displayData['mod_links'] ? "" . (($this->memberData['is_mod'] or $this->memberData['member_id'] == $topic['starter_id']) ? "<div id='topic_mod' class='moderation_bar rounded with_action clear'>\n\t\t\t" . ($this->memberData['is_mod'] ? "<label for='tact' class='hide'>{$this->lang->words['post_moderation']}</label>\n\t\t \t\t<select name=\"tact\" id='tact' class='input_select'>\n\t\t\t\t\t<option value=\"\">{$this->lang->words['post_moderation']}</option>\n\t \t\t\t\t<option value=\"merge\">{$this->lang->words['cpt_merge']}</option>\n\t \t\t\t\t<option value=\"move\">{$this->lang->words['cpt_move']}</option>\n\t \t\t\t\t<option value=\"delete\">{$this->lang->words['cpt_delete']}</option>\n\t \t\t\t\t<option value=\"split\">{$this->lang->words['cpt_split']}</option>\n\t \t\t\t\t<option value=\"approve\">{$this->lang->words['cpt_approve']}</option>\n\t \t\t\t\t<option value=\"unapprove\">{$this->lang->words['cpt_unapprove']}</option>\n\t \t\t\t</select>&nbsp;\n\t \t\t\t<input type=\"submit\" id='mod_submit' name=\"gobutton\" value=\"{$this->lang->words['f_go']}" . ($this->request['selectedpidcount'] ? " ({$this->request['selectedpidcount']})" : "") . "\" class=\"input_submit alt\" />" : "") . "\n\t\t\t</div>\n\t\t</form>\n\t\t<script type='text/javascript'>\n\t\t\t\$('modform').observe('submit', ipb.topic.submitPostModeration );\n\t\t</script>\n\t\n\t\t<div id='topic_mod_2' class='moderation_bar rounded'>\n\t\t\t" . ((is_array($displayData['multi_mod']) and count($displayData['multi_mod'])) ? "\n\t\t\t\t<form action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=moderate&amp;section=multimod&amp;t={$topic['tid']}", 'public', ''), "", "") . "\" method=\"post\" id='multimod' class='left'>\n\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t<input type=\"hidden\" name=\"check\" value=\"1\" />\n\t\t\t\t\t\t<select name=\"mm_id\" class=\"input_select\">\n\t\t\t\t\t\t\t<option value=\"-1\">{$this->lang->words['mm_title']}</option>\n\t\t\t\t\t\t\t" . $this->__f__ace4ac01245a56cabbbd7059ad762465($forum, $topic, $post_data, $displayData) . "\t\t\t\t\t\t</select>&nbsp;\n\t\t\t\t\t\t<input type=\"submit\" value=\"{$this->lang->words['mm_submit']}\" class=\"input_submit alt\" />\n\t\t\t\t\t</fieldset>\n\t\t\t\t</form>\n\t\t\t" : "") . "\n\t\t\t<form method=\"post\" id=\"modform2\" action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("", 'public', ''), "", "") . "\">\n\t\t\t\t<fieldset>\n\t\t\t\t\t<input type=\"hidden\" name=\"t\" value=\"{$topic['tid']}\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"f\" value=\"{$topic['forum_id']}\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"st\" value=\"{$this->request['st']}\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"auth_key\" value=\"{$this->member->form_hash}\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"app\" value=\"forums\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"module\" value=\"moderate\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"section\" value=\"moderate\" />\n\t\t\t\t\t<label for='topic_moderation' class='hide'>{$this->lang->words['topic_moderation']}</label>\n\t\t\t\t\t<select name=\"do\" class=\"input_select\" id='topic_moderation'>\n\t\t\t\t\t\t<option value=\"-1\">{$this->lang->words['topic_moderation']}</option>\n\t\t\t\t\t\t" . $this->__f__4f9c3de4210c152b6cad29b36106f8b1($forum, $topic, $post_data, $displayData) . "\t\t\t\t\t</select>&nbsp;\n\t\t\t\t\t<input type=\"submit\" value=\"{$this->lang->words['jmp_go']}\" class=\"input_submit alt\" />\n\t\t\t\t</fieldset>\n\t\t\t</form>\n\t\t\t\n\t\t\t<script type='text/javascript'>\n\t\t\t\t\$('modform2').observe('submit', ipb.topic.submitTopicModeration );\n\t\t\t</script>\n\t\t</div>" : "") . "" : "") . "\n<!-- REPUTATION FILTERS -->\n" . ($this->settings['reputation_enabled'] && $this->settings['reputation_show_content'] && $this->memberData['member_id'] != 0 && is_array($this->caches['reputation_levels']) ? "<div id='reputation_filter' class='filter_bar rounded'>\n\t\t<span id='show_filters' class='clickable' style='display: none'>{$this->lang->words['rep_f_currently']} " . ($this->memberData['_members_cache']['rep_filter'] && $this->memberData['_members_cache']['rep_filter'] === '*' ? "{$this->lang->words['rep_f_viewing_all']} " : "{$this->lang->words['rep_f_hiding']} {$this->memberData['_members_cache']['rep_filter']} {$this->lang->words['rep_f_points']}.") . " {$this->lang->words['rep_f_threshold']}</span>\n\t\t<form id='filter_form' method=\"post\" action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("", 'public', ''), "", "") . "\">\n\t\t\t<fieldset>\n\t \t\t\t<input type=\"hidden\" name=\"app\" value=\"forums\" />\n\t\t \t\t<input type=\"hidden\" name=\"module\" value=\"forums\" />\n\t\t \t\t<input type=\"hidden\" name=\"section\" value=\"topics\" />\n\t\t \t\t<input type=\"hidden\" name=\"rep_filter\" value=\"update\" />\n\t\t \t\t<input type=\"hidden\" name=\"f\" value=\"{$topic['forum_id']}\" />\n\t\t \t\t<input type=\"hidden\" name=\"t\" value=\"{$topic['tid']}\" />\n\t\t \t\t<input type=\"hidden\" name=\"auth_key\" value=\"{$this->member->form_hash}\" />\n\t\t \t\t<input type=\"hidden\" name=\"st\" value=\"{$this->request['st']}\" />\n\t\t \t\t<label for='rep_filter_select'>{$this->lang->words['rep_f_hide']}</label>\n\t\t \t\t<select name='rep_filter_set' id='rep_filter_select'>\n\t\t \t\t\t<option value='*' " . ((isset($this->memberData['_members_cache']['rep_filter']) and $this->memberData['_members_cache']['rep_filter'] == '*') ? " selected='selected'" : "") . ">{$this->lang->words['rep_f_all_posts']}</option>\n\t\t\t\t" . (is_array($this->caches['reputation_levels']) ? "\n\t\t\t\t\t" . $this->__f__b41809fec188903bc8e50e4ea9ca298d($forum, $topic, $post_data, $displayData) . "\t\t\t\t" : "") . "\n\t\t\t\t</select>\n\t \t\t\n\t\t\t\t<input type=\"submit\" name=\"gobutton\" value=\"{$this->lang->words['rep_f_update']}\" class=\"input_submit alt\" />\n\t\t\t</fieldset>\n\t\t</form>\n\t</div>\n\t<script type='text/javascript'>\n\t\t\$('show_filters').show();\n\t</script>" : "") . "\n<div class='moderation_bar rounded' id='topic_search_jump'>\n\t<form method='post' action='{$this->settings['base_url']}app=core&amp;module=search&amp;do=quick_search&amp;search_filter_app[forums]=1' id='context_search' class='left'>\n\t\t<fieldset>\n\t\t\t<input type='hidden' name='type_2' value='topic' />\n\t\t\t<input type='hidden' name='type_id_2' value='{$topic['tid']}' />\n\t\t\t<label for='topic_search'>{$this->lang->words['search_topic']}</label>\n\t\t\t<input type='text' id='topic_search' name='search_term' class='input_text' size='20' tabindex='8' />\n \t\t\t<input type='submit' class='input_submit alt' value='{$this->lang->words['search_topic_go']}' />\n\t\t</fieldset>\n\t</form>\n\t" . ($forum['FORUM_JUMP'] ? "\n\t\t{$forum['FORUM_JUMP']}\n\t" : "") . "\n</div>\n<!-- THREADED MODE -->\n" . ($displayData['threaded_mode_enabled'] == 1 ? "<br />\n\t<div class='topic_controls'>\n\t\t{$topic['threaded_pages']}\t\n\t\t<ul class='topic_buttons'>\n\t\t\t" . ($forum['_user_can_post'] ? "\n\t\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=post&amp;section=post&amp;do=new_post&amp;f={$forum['id']}", 'publicWithApp', ''), "", "") . "' title='{$this->lang->words['start_new_topic']}'>" . $this->registry->getClass('output')->getReplacement("topic_icon") . " {$this->lang->words['start_new_topic']}</a></li>\n\t\t\t" : "\n\t\t\t\t<li class='disabled'><span>{$this->lang->words['top_cannot_start']}</span></li>\n\t\t\t") . "\n\t\t\t" . ($displayData['reply_button']['image'] == 'locked' ? "<li class='closed'>\n\t\t\t\t\t" . ($displayData['reply_button']['url'] ? "\n\t\t\t\t\t\t<a href='{$displayData['reply_button']['url']}'>" . $this->registry->getClass('output')->getReplacement("lock_icon") . " {$this->lang->words['top_locked_reply']}</a>\n\t\t\t\t\t" : "\n\t\t\t\t\t\t<span>" . $this->registry->getClass('output')->getReplacement("lock_icon") . " {$this->lang->words['top_locked']}</span>\n\t\t\t\t\t") . "\n\t\t\t\t</li>" : "" . ($displayData['reply_button']['image'] ? "" . ($displayData['reply_button']['url'] ? "\n\t\t\t\t\t\t<li><a href='{$displayData['reply_button']['url']}' title='{$this->lang->words['add_a_reply']}'>" . $this->registry->getClass('output')->getReplacement("reply_icon") . " {$this->lang->words['topic_add_reply']}</a></li>\n\t\t\t\t\t" : "\n\t\t\t\t\t\t<li class='disabled'><span>{$this->lang->words['top_cannot_reply']}</span></li>\n\t\t\t\t\t") . "" : "") . "") . "\n\t\t</ul>\n\t</div>\n\t<h2 class='maintitle'>{$this->lang->words['threads']}</h2>\n\t<div class='generic_bar'></div>\n\t<div class='threaded_view general_box'>\n\t{$topic['_threaded_posts']}\n\t</div>\n\t<br class='clear' />{$topic['threaded_pages']}" : "") . "\n<ul class='topic_jump right clear'>\n\t<li class='previous'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("showtopic={$topic['tid']}&amp;view=old", 'public', ''), "{$topic['title_seo']}", "showtopic") . "'>&larr; {$this->lang->words['previous_topic']}</a></li>\n\t<li><strong><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("showforum={$forum['id']}", 'public', ''), "{$forum['name_seo']}", "showforum") . "' title='{$this->lang->words['return_to']} {$forum['name']}'>{$forum['name']}</a></strong></li>\n\t<li class='next'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("showtopic={$topic['tid']}&amp;view=new", 'public', ''), "{$topic['title_seo']}", "showtopic") . "'>{$this->lang->words['next_topic']} &rarr;</a></li>\n</ul>\n" . ($this->memberData['member_id'] ? "\n<h3 class='topic_share left'>{$this->lang->words['topic_share']}</h3>\n<ul class='topic_share left'>\n\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=extras&amp;section=forward&amp;f={$forum['id']}&amp;t={$topic['tid']}", 'public', ''), "", "") . "' title='{$this->lang->words['topic_email_title']}'>{$this->lang->words['topic_email']}</a></li>\n\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=forums&amp;section=printtopic&amp;client=printer&amp;f={$forum['id']}&amp;t={$topic['tid']}", 'public', ''), "", "") . "' title='{$this->lang->words['topic_print_title']}'>{$this->lang->words['topic_print']}</a></li>\n\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=forums&amp;section=printtopic&amp;client=choose&amp;f={$forum['id']}&amp;t={$topic['tid']}", 'public', ''), "", "") . "' title='{$this->lang->words['topic_download_title']}'>{$this->lang->words['topic_download']}</a></li>\n</ul>\n" : "") . "\n<!-- BOTTOM BUTTONS -->\n<div class='topic_controls clear'>\n\t{$topic['SHOW_PAGES']}\n\t\n\t<ul class='topic_buttons'>\n\t\t" . ($forum['_user_can_post'] ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=post&amp;section=post&amp;do=new_post&amp;f={$forum['id']}", 'publicWithApp', ''), "", "") . "' title='{$this->lang->words['start_new_topic']}'>" . $this->registry->getClass('output')->getReplacement("topic_icon") . " {$this->lang->words['start_new_topic']}</a></li>\n\t\t" : "\n\t\t\t<li class='disabled'><span>{$this->lang->words['top_cannot_start']}</span></li>\n\t\t") . "\n\t\t" . ($displayData['reply_button']['image'] == 'locked' ? "<li class='closed'>\n\t\t\t\t" . ($displayData['reply_button']['url'] ? "\n\t\t\t\t\t<a href='{$displayData['reply_button']['url']}' accesskey='r'>" . $this->registry->getClass('output')->getReplacement("lock_icon") . " {$this->lang->words['top_locked_reply']}</a>\n\t\t\t\t" : "\n\t\t\t\t\t<span>" . $this->registry->getClass('output')->getReplacement("lock_icon") . " {$this->lang->words['top_locked']}</span>\n\t\t\t\t") . "\n\t\t\t</li>" : "" . ($displayData['reply_button']['image'] ? "" . ($displayData['reply_button']['url'] ? "\n\t\t\t\t\t<li><a href='{$displayData['reply_button']['url']}' title='{$this->lang->words['add_a_reply']}' accesskey='r'>" . $this->registry->getClass('output')->getReplacement("reply_icon") . " {$this->lang->words['topic_add_reply']}</a></li>\n\t\t\t\t" : "\n\t\t\t\t\t<li class='disabled'><span>{$this->lang->words['top_cannot_reply']}</span></li>\n\t\t\t\t") . "" : "") . "") . "\n\t</ul>\n</div>\n<hr />\n<script type='text/javascript'>\n\tipb.editor_values.set( 'emoticons', \$H({ " . IPSLib::fetchEmoticonsAsJson() . " }) );\n\tipb.vars['emoticon_url'] = \"{$this->settings['emoticons_url']}\";\n</script>\n" . ($displayData['fast_reply'] != 'unavailable' && $displayData['reply_button']['url'] ? "<br />\n<div id='fast_reply' style='display: {$displayData['fast_reply']}'>\n\t<h3 class='maintitle'>{$this->lang->words['qr_title']}</h3>\n\t<div class='generic_bar'></div>\n\t<div class='general_box alt'>\n\t\t<form action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("", 'public', ''), "", "") . "\" method=\"post\">\n\t\t\t<fieldset>\n\t\t\t\t<input type=\"hidden\" name=\"app\" value=\"forums\" />\n\t\t\t\t<input type=\"hidden\" name=\"module\" value=\"post\" />\n\t\t\t\t<input type=\"hidden\" name=\"section\" value=\"post\" />\n\t\t\t\t<input type=\"hidden\" name=\"do\" value=\"reply_post_do\" />\n\t\t\t\t<input type=\"hidden\" name=\"f\" value=\"{$forum['id']}\" />\n\t\t\t\t<input type=\"hidden\" name=\"t\" value=\"{$topic['tid']}\" />\n\t\t\t\t<input type=\"hidden\" name=\"st\" value=\"{$this->request['st']}\" />\n\t\t\t\t<input type=\"hidden\" name=\"auth_key\" value=\"{$this->member->form_hash}\" />\n\t\t\t\t<input type=\"hidden\" name=\"fast_reply_used\" value=\"1\" />\n\t\t\t\t<input type=\"hidden\" name=\"enableemo\" value=\"yes\" />\n\t\t\t\t<input type=\"hidden\" name=\"enablesig\" value=\"yes\" />\n\t\t\t\t" . ($this->memberData['auto_track'] ? "\n\t\t\t\t\t<input type=\"hidden\" name=\"enabletrack\" value=\"1\" />\n\t\t\t\t" : "") . "" . ((is_array($topic['_fastReplyStatusMessage']) and count($topic['_fastReplyStatusMessage']) and strlen($topic['_fastReplyStatusMessage'][0])) ? "\n\t\t\t\t\t<div class='message'>" . implode('<br />', $topic['_fastReplyStatusMessage']) . "</div>\n\t\t\t\t" : "") . "" . $this->registry->getClass('output')->getTemplate('editors')->editorShell('fast-reply', 'Post', '', 1) . "\n\t\t\t</fieldset>\n\t\t\t<fieldset class='submit'>\n\t\t\t\t<input type='submit' name=\"submit\" class='input_submit' value='{$this->lang->words['qr_post']}' tabindex='0' accesskey='s' id='submit_post' />&nbsp;&nbsp;<input type='submit' name=\"preview\" class='input_submit alt' value='{$this->lang->words['qr_more_opts']}' tabindex='0' id='full_compose' />\n\t\t\t</fieldset>\n\t\t</form>\n\t</div>\n</div>\n<script type=\"text/javascript\">\n//<![CDATA[\n\tif( \$('fast-reply_textarea') ){\n\t\t\$('fast-reply_textarea').addClassName('unloaded_editor').setStyle('height: 70px');\n\t\t\$('fast-reply_textarea').value = \"{$this->lang->words['editor_unloaded_atm']}\";\n\t}\n\t\n\tif( \$('fast-reply_toolbar_1') ){\n\t\t\$('fast-reply_toolbar_1').hide();\n\t}\n\tif( \$('fast-reply_toolbar_2') ){\n\t\t\$('fast-reply_toolbar_2').hide();\n\t}\n\t\n\tvar removeTip = function(e){\n\t\tif( \$('fast-reply_textarea').hasClassName('unloaded_editor') ){\n\t\t\t\$('fast-reply_textarea').value='';\n\t\t}\n\t};\n\t\n\t\$('full_compose').observe( 'click', removeTip );\n\t\$('submit_post').observe( 'click', removeTip );\n\t\n\tin_use = 0;\n\t\n\t\$('fast-reply_textarea').observe( 'focus', function(e){\n\t\tif( !in_use )\n\t\t{\n\t\t\tif( \$('fast-reply_toolbar_1') ){\n\t\t\t\t\$('fast-reply_toolbar_1').show();\n\t\t\t}\n\t\t\tif( \$('fast-reply_toolbar_2') ){\n\t\t\t\t\$('fast-reply_toolbar_2').show();\n\t\t\t}\n\t\t\t\n\t\t\t\$('fast-reply_textarea').removeClassName('unloaded_editor').value = '';\n\t\t\t\n\t\t\tipb.editors[ 'fast-reply' ] = new ipb.editor( 'fast-reply', USE_RTE );\n\t\t\t\$( ipb.editors['fast-reply'] ).resize_to( 250 );\n\t\t\t\n\t\t\ttry {\n\t\t\t\tipb.editors[ 'fast-reply' ].editor_window.focus();\n\t\t\t} catch(err) { }\n\t\t\tin_use = 1;\n\t\t}\n\t});\n//]]>\n</script>" : "") . "\n<!-- ACTIVE USERS -->\n" . ((is_array($displayData['active_users']) and count($displayData['active_users'])) ? "<div id='topic_stats' class='statistics general_box clear clearfix'>\n\t\t<div id='topic_active_users' class='active_users'>\n\t\t\t<h2>\n\t\t\t\t" . sprintf($this->lang->words['active_users_title'], $displayData['active_users']['members'] + $displayData['active_users']['guests'] + $displayData['active_users']['anon']) . "<br />\n\t\t\t\t<span class='desc'>" . sprintf($this->lang->words['active_users_detail'], $displayData['active_users']['members'], $displayData['active_users']['guests'], $displayData['active_users']['anon']) . "</span>\n\t\t\t</h2>\n\t\t\t<ol>\n\t\t\t\t" . ((is_array($displayData['active_users']['names']) and count($displayData['active_users']['names'])) ? "\n\t\t\t\t\t" . $this->__f__2fb52215723edde3f3872551b590524a($forum, $topic, $post_data, $displayData) . "\t\t\t\t" : "") . "\n\t\t\t</ol>\n\t\t</div>\n\t</div>" : "") . "\n\n<!-- Close topic -->\n</div>\n\n" . ($this->request['gopid'] ? "\n<script type='text/javascript'>\n\tvar gopid = \"{$this->request['gopid']}\".replace(/&amp;/g, '');\n\tipb.topic.scrollToPost( parseInt( gopid ) );\n</script>\n" : "") . "\n" . $this->registry->getClass('output')->getTemplate('global')->include_highlighter(1) . "";
     return $IPBHTML;
 }
 /**
  * Show the editor
  *
  * @access	public
  * @param	string		Raw text with bbcode
  * @param	string		Form field name
  * @return	string		Editor HTML
  */
 public function showEditor($text, $form_field = 'post_content')
 {
     //-----------------------------------------
     // INIT
     //-----------------------------------------
     $smilies = IPSLib::fetchEmoticonsAsJson($this->emo_dir);
     $total = 0;
     $count = 0;
     $smilie_id = 0;
     //-----------------------------------------
     // Load skin and language
     //-----------------------------------------
     //if ( IN_ACP )
     //{
     //-----------------------------------------
     // Sort out editor id
     //-----------------------------------------
     $this->editor_id = 'ed-' . $this->acp_editor_id;
     $this->acp_editor_id++;
     //}
     //-----------------------------------------
     // Emoticons
     //-----------------------------------------
     $this->settings['_remove_emoticons'] = $this->remove_emoticons;
     //-----------------------------------------
     // Pre parse...
     //-----------------------------------------
     $text = $this->class_editor->processBeforeForm($text);
     //-----------------------------------------
     // Weird script tag stuff...
     //-----------------------------------------
     if ($this->method == 'rte') {
         $text = preg_replace("#(<|&lt;|&amp;lt;|&\\#60;)script#si", "&amp;lt;script", $text);
     }
     //-----------------------------------------
     // Comment
     //-----------------------------------------
     if (IN_ACP) {
         $return_html = $this->registry->getClass('output')->global_template->ips_editor($form_field, $text, $this->settings['img_url'] . '/folder_editor_images/', $this->rte_on, $this->editor_id, $smilies);
         $return_html = preg_replace("#([^/\\.])js/#is", "\\1" . $this->settings['board_url'] . "/public/js/", $return_html);
         $return_html = str_replace("<#IMG_DIR#>", $this->settings['board_url'] . "/public/style_images/{$this->image_dir}", $return_html);
     } else {
         $return_html = $this->registry->getClass('output')->getTemplate('editors')->ips_editor($form_field, $text, $this->settings['img_url'] . '/folder_editor_images/', $this->rte_on, $this->editor_id, $smilies);
     }
     return $return_html;
 }
 function showConversation($topic, $replies, $members, $jump = "")
 {
     $IPBHTML = "";
     $IPBHTML .= "" . (!$this->settings['disable_lightbox'] ? "\n" . $this->registry->getClass('output')->getTemplate('global')->include_lightbox() . "\n" : "") . "\n" . $this->registry->getClass('output')->getTemplate('global')->include_highlighter(1) . "\n<div id='conversation'>\n\t\n<div class='topic_controls'>\n\t{$topic['_pages']}\n\t<ul class='topic_buttons'>\n\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=form", 'publicWithApp', ''), "", "") . "' title='{$this->lang->words['go_to_compose']}'>" . $this->registry->getClass('output')->getReplacement("compose_icon") . " {$this->lang->words['compose_new']}</a></li>\n\t\t" . ($topic['_canReply'] ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=replyForm&amp;topicID={$topic['mt_id']}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("reply_icon") . " {$this->lang->words['add_reply']}</a></li>\n\t\t" : "\n\t\t\t<li class='disabled'><span>{$this->lang->words['you_cannot_reply']}</span></li>\n\t\t") . "\n\t\t<!-- SKINNOTE: Can probably do with some kind of 'are you sure' dialogue here.. -->\n\t\t<li><a id='pm_delete_t_{$topic['mt_id']}' href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=view&amp;do=deleteConversation&amp;topicID={$topic['mt_id']}&amp;authKey={$this->member->form_hash}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("delete_msg_icon") . " {$this->lang->words['option__delete']}</a></li>\n\t</ul>\n\t<script type='text/javascript'>\n\t\t\$('pm_delete_t_{$topic['mt_id']}').observe('click', ipb.messenger.deletePM.bindAsEventListener( this, {$topic['mt_id']} ) );\n\t</script>\n</div>\n<br />\n<h2 class='maintitle'>{$topic['mt_title']}</h2>\n<div class='generic_bar'></div>" . $this->__f__5e13298e1f710899ccd3805157e206fb($topic, $replies, $members, $jump) . "<br />\n<div class='topic_controls clear'>\n\t{$topic['_pages']}\n\t<ul class='topic_buttons'>\n\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=form", 'publicWithApp', ''), "", "") . "' title='{$this->lang->words['go_to_compose']}'>" . $this->registry->getClass('output')->getReplacement("compose_icon") . " {$this->lang->words['compose_new']}</a></li>\n\t\t" . ($topic['_canReply'] ? "\n\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=send&amp;do=replyForm&amp;topicID={$topic['mt_id']}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("reply_icon") . " {$this->lang->words['add_reply']}</a></li>\n\t\t" : "\n\t\t\t<li class='disabled'><span>{$this->lang->words['you_cannot_reply']}</span></li>\n\t\t") . "\n\t\t<!-- SKINNOTE: Can probably do with some kind of 'are you sure' dialogue here.. -->\n\t\t<li><a id='pm_delete_b_{$topic['mt_id']}' href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("module=messaging&amp;section=view&amp;do=deleteConversation&amp;topicID={$topic['mt_id']}&amp;authKey={$this->member->form_hash}", 'publicWithApp', ''), "", "") . "'>" . $this->registry->getClass('output')->getReplacement("delete_msg_icon") . " {$this->lang->words['pc_delete']}</a></li>\n\t</ul>\n\t<script type='text/javascript'>\n\t\t\$('pm_delete_b_{$topic['mt_id']}').observe('click', ipb.messenger.deletePM.bindAsEventListener( this, {$topic['mt_id']} ) );\n\t</script>\n</div>\n<br />\n" . ($topic['_canReply'] ? "" . $this->registry->getClass('output')->addJSModule("editor", "0") . "\n\t<script type='text/javascript'>\n\t\t//<![CDATA[\n\t\t" . $this->registry->getClass('output')->getTemplate('editors')->editorJS() . "\n\t\t//]]>\n\t</script>\n\t\n\t<br />\n\t<div id='fast_reply' style='display: {$displayData['fast_reply']}'>\n\t\t<h3 class='maintitle'>{$this->lang->words['pc_fast_reply']}</h3>\n\t\t<div class='generic_bar'></div>\n\t\t<div class='general_box alt'>\n\t\t\t<form action='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members&amp;module=messaging&amp;section=send&amp;do=sendReply&amp;topicID={$topic['mt_id']}", 'public', ''), "", "") . "' method='post'>\n\t\t\t\t" . $this->registry->getClass('output')->getTemplate('editors')->editorShell('fast-reply', 'msgContent', '', 1) . "\n\t\t\t\t<fieldset class='submit'>\n\t\t\t\t\t<input type=\"hidden\" name=\"authKey\" value=\"{$this->member->form_hash}\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"fast_reply_used\" value=\"1\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"enableemo\" value=\"yes\" />\n\t\t\t\t\t<input type=\"hidden\" name=\"enablesig\" value=\"yes\" />\n\t\t\t\t\t<input type='submit' name=\"submit\" class='input_submit' value='{$this->lang->words['pc_post_button']}' accesskey='s' />&nbsp;&nbsp;<input type='submit' name=\"previewReply\" class='input_submit alt' value='{$this->lang->words['pc_use_full_reply']}' />\n\t\t\t\t</fieldset>\n\t\t\t</form>\n\t\t</div>\n\t</div>\n\t<script type=\"text/javascript\">\n\t//<![CDATA[\n\t\tif( \$('fast-reply_textarea') ){\n\t\t\t\$('fast-reply_textarea').setStyle('height: 70px');\n\t\t}\n\t\t\n\t\tipb.editor_values.set( 'emoticons', \$H({ " . IPSLib::fetchEmoticonsAsJson() . " }) );\n\t\tipb.vars['emoticon_url'] = \"{$this->settings['emoticons_url']}\";\n\t\tipb.editors[ 'fast-reply' ] = new ipb.editor( 'fast-reply', USE_RTE );\n\t\tin_use = 0;\n\t\t" . ($rte_mode != 1 ? "\n\t\t\tobj = ipb.editors['fast-reply'].editor_document;\n\t\t" : "\n\t\t\tobj = \$( ipb.editors['fast-reply'].items['text_obj'] );\n\t\t") . "\n\t\tEvent.observe( obj, 'click', function(){\n\t\t\tif( in_use != 1 ){\n\t\t\t\t\$( ipb.editors['fast-reply'] ).resize_to( 250 );\n\t\t\t\tin_use = 1;\n\t\t\t}\n\t\t}, true);\n\t//]]>\n\t</script>" : "") . "\n</div>\n" . $this->registry->getClass('output')->getTemplate('global')->include_highlighter() . "";
     return $IPBHTML;
 }