Пример #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;
 }
Пример #3
0
 /**
  * Class entry point
  *
  * @param	object		Registry reference
  * @return	@e void		[Outputs to screen/redirects]
  */
 public function doExecute(ipsRegistry $registry)
 {
     /* Set up */
     $inapp = is_string($this->request['inapp']) ? trim($this->request['inapp']) : "";
     if (!$inapp) {
         $this->registry->output->showError('invalid_app', 1040007, null, null, 500);
     }
     /* Load navigation stuff */
     $classToLoad = IPSLib::loadLibrary(IPS_ROOT_PATH . 'sources/classes/navigation/build.php', 'classes_navigation_build');
     $navigation = new $classToLoad($inapp);
     /* Return */
     $html = $this->registry->output->getTemplate('global_other')->quickNavigationWrapper($navigation->loadApplicationTabs(), $navigation->loadNavigationData(), $inapp);
     $this->registry->getClass('output')->setTitle($this->lang->words['navigation_title'] . ' - ' . IPSLib::getAppTitle($inapp));
     $this->registry->getClass('output')->addContent($html);
     $this->registry->getClass('output')->sendOutput();
 }
 function __f__f3ef81aefc61e1ddbb3a00ce02d56217($html, $documentHeadItems, $css, $jsModules, $metaTags, $header_items = array(), $items = array(), $footer_items = array(), $stats = array())
 {
     $_ips___x_retval = '';
     foreach ($header_items['applications'] as $data) {
         $this->templateVars['appActive'] = "";
         $this->__default__templateVars['appActive'] = "";
         if ($data['app_active']) {
             $this->templateVars['appActive'] = "active";
         } else {
             $this->templateVars['appActive'] = $this->__default__templateVars['appActive'];
         }
         $_ips___x_retval .= "\n\t\t\t\t\t\t\t\t" . ($data['app_show'] ? "\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li id='nav_app_{$data['app_dir']}' class=\"left " . $this->templateVars["appActive"] . "\"><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app={$data['app_dir']}", 'public', ''), "false", "") . "' title='{$this->lang->words['go_to_prefix']}" . IPSLib::getAppTitle($data['app_dir']) . "'>" . IPSLib::getAppTitle($data['app_dir']) . "</a></li>\n\t\t\t\t\t\t\t\t" : "") . "\n\t\t\t\t\t\t\t\n";
     }
     $_ips___x_retval .= '';
     return $_ips___x_retval;
 }
Пример #5
0
 function globalTemplate($html, $documentHeadItems, $css, $jsModules, $metaTags, array $header_items, $items = array(), $footer_items = array(), $stats = array())
 {
     $IPBHTML = "";
     if (IPSLib::locationHasHooks('skin_global', $this->_funcHooks['globalTemplate'])) {
         $count_7faa034675d780584160b16b4682b835 = is_array($this->functionData['globalTemplate']) ? count($this->functionData['globalTemplate']) : 0;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['html'] = $html;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['documentHeadItems'] = $documentHeadItems;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['css'] = $css;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['jsModules'] = $jsModules;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['metaTags'] = $metaTags;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['header_items'] = $header_items;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['items'] = $items;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['footer_items'] = $footer_items;
         $this->functionData['globalTemplate'][$count_7faa034675d780584160b16b4682b835]['stats'] = $stats;
     }
     $IPBHTML .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\r\n\t<html xml:lang=\"en\" lang=\"en\" xmlns=\"http://www.w3.org/1999/xhtml\"" . (IPSLib::fbc_enabled() === TRUE || $this->settings['fbc_appid'] ? " xmlns:fb=\"http://www.facebook.com/2008/fbml\"" : "") . ">\r\n\t<head>\r\n\t\t<meta http-equiv=\"content-type\" content=\"text/html; charset={$this->settings['gb_char_set']}\" />\r\n\t\t<title>{$header_items['title']}" . ($header_items['page'] ? " {$this->lang->words['page_title_page']} {$header_items['page']}" : "") . "</title>\r\n\t\t<!--<meta http-equiv=\"X-UA-Compatible\" content=\"IE=7\" />-->\r\n\t\t<link rel=\"shortcut icon\" href='" . ($this->registry->output->isHTTPS ? "{$this->settings['board_url_https']}" : "{$this->settings['board_url']}") . "/favicon.ico' />\r\n\t\t<meta property=\"og:title\" content=\"{$this->registry->output->encodeMetaTagContent(str_replace(' - ' . $this->settings['board_name'], '', $header_items['title']))}\"/>\r\n\t\t<meta property=\"og:site_name\" content=\"{$this->registry->output->encodeMetaTagContent($this->settings['board_name'])}\"/>\r\n\t\t<meta property=\"og:image\" content=\"{$this->settings['meta_imagesrc']}\"/>\r\n\t\t<meta property=\"og:type\" content=\"article\" />\r\n\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeMeta') ? $this->registry->getClass('output')->getTemplate('global')->includeMeta($metaTags) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeVars') ? $this->registry->getClass('output')->getTemplate('global')->includeVars() : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeJS') ? $this->registry->getClass('output')->getTemplate('global')->includeJS($jsModules) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeCSS') ? $this->registry->getClass('output')->getTemplate('global')->includeCSS($css) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeFeeds') ? $this->registry->getClass('output')->getTemplate('global')->includeFeeds($documentHeadItems) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeRTL') ? $this->registry->getClass('output')->getTemplate('global')->includeRTL() : '') . "\r\n\t\t\r\n\t\t<!--<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">-->\r\n\t\t<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\r\n\t\t<meta name=\"viewport\" content=\"initial-scale=1, maximum-scale=1, user-scalable=no\">\r\n\t</head>\r\n\t<body id='ipboard_body'>\r\n\t\t<div id='ipbwrapper'>\r\n\t\t\t" . (count($items['navigation']) > 1 && !$this->settings['_mobile_nav_home'] ? "" . (($this->nav_count = count($items['navigation'])) ? "" : "") . "" . (($this->nav_back = isset($this->settings['_mobile_back_nav']) ? $this->settings['_mobile_back_nav'] : 2) ? "" : "") . "\r\n\t\t\t\t<div id='secondary_navigation'>\r\n\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$items['navigation'][$this->nav_count - $this->nav_back][1]}", "{$items['navigation'][$this->nav_count - $this->nav_back][4]}", ''), "{$items['navigation'][$this->nav_count - $this->nav_back][2]}", "{$items['navigation'][$this->nav_count - $this->nav_back][3]}") . "'>{$this->lang->words['_larr']} &nbsp;{$items['navigation'][$this->nav_count - $this->nav_back][0]}</a>\r\n\t\t\t\t</div>" : "" . ((count($items['navigation']) == 1 || $this->settings['_mobile_nav_home']) && !$this->settings['_mobile_hide_nav'] ? "\r\n\t\t\t\t\t<div id='secondary_navigation'>\r\n\t\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("act=idx", "public", ''), "false", "") . "' class='back'>{$this->lang->words['_larr']} {$this->lang->words['home']}</a>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t" : "") . "") . "\r\n\t\t\t" . (method_exists($this->registry->output->getTemplate($this->registry->getCurrentApplication() . '_global'), 'overwriteHeader') ? "\r\n\t\t\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('' . $this->registry->getCurrentApplication() . '_global'), 'overwriteHeader') ? $this->registry->getClass('output')->getTemplate('' . $this->registry->getCurrentApplication() . '_global')->overwriteHeader() : '') . "\r\n\t\t\t" : "\r\n\t\t\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'defaultHeader') ? $this->registry->getClass('output')->getTemplate('global')->defaultHeader() : '') . "\r\n\t\t\t") . "\r\n\t\t\t<div id=\"options-button\">&raquo;</div>\r\n\t\t\t<div id='user_navigation' class='clearfix'>\r\n\t\t\t\t<ul class='clearfix' id='user_bar'>\r\n\t\t\t\t\t" . (!$this->memberData['member_id'] ? "\r\n\t\t\t\t\t\t<a class='button secondary' href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=global&amp;section=login", "public", ''), "", "") . "' title='{$this->lang->words['sign_in']}'>{$this->lang->words['sign_in']}</a>&nbsp;&nbsp;&nbsp;\r\n\t\t\t\t\t\t<a class='button secondary' href=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=global&amp;section=register", "public", ''), "", "") . "\" title='{$this->lang->words['register']}'>{$this->lang->words['register']}</a>\r\n\t\t\t\t\t" : "\r\n\t\t\t\t\t\t<a class='button secondary' style='width:auto' href=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=global&amp;section=login&amp;do=logout&amp;k={$this->member->form_hash}", "public", ''), "", "") . "\">{$this->lang->words['log_out']} {$this->memberData['members_display_name']}</a>\r\n\t\t\t\t\t") . "\r\n\t\t\t\t</ul>\r\n\t\t\t\t<ul class='clearfix launcher'>\r\n\t\t\t\t\t" . (($this->memberData['member_id'] and $this->memberData['g_use_pm'] and $this->memberData['members_disable_pm'] == 0) ? "<li id='nav_messages'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members&amp;module=messaging", "public", ''), "", "") . "' title='{$this->lang->words['your_messenger']}'><span class='icon'></span>" . ($this->memberData['msg_count_new'] ? "<span class='ipsHasNotifications'>{$this->memberData['msg_count_new']}</span>" : "") . "{$this->lang->words['your_messenger']}</a></li>" : "") . "\r\n\t\t\t\t\t" . ($this->memberData['member_id'] ? "<li id='nav_notifications'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=usercp&amp;tab=core&amp;area=notificationlog&amp;clear=true", "public", ''), "", "") . "'><span class='icon'></span>" . ($this->memberData['notification_cnt'] ? "<span class='ipsHasNotifications'>{$this->memberData['notification_cnt']}</span>" : "") . "{$this->lang->words['notifications_at_the_top']}</a></li>" : "") . "\r\n\t\t\t\t\t" . ($header_items['applications']['members']['app_show'] ? "\r\n\t\t\t\t\t\t<li id='nav_members'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$header_items['applications']['members']['app_link']}", "{$header_items['applications']['members']['app_base']}", ''), "{$header_items['applications']['members']['app_seotitle']}", "{$header_items['applications']['members']['app_template']}") . "' title='" . sprintf($this->lang->words['go_to_prefix'], IPSLib::getAppTitle('members')) . "'><span class='icon'></span>" . IPSLib::getAppTitle('members') . "</a></li>\r\n\t\t\t\t\t" : "") . "\r\n\t\t\t\t\t" . ($header_items['applications']['forums']['app_show'] ? "\r\n\t\t\t\t\t\t<li id='nav_forums'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$header_items['applications']['forums']['app_link']}", "{$header_items['applications']['forums']['app_base']}", ''), "{$header_items['applications']['forums']['app_seotitle']}", "{$header_items['applications']['forums']['app_template']}") . "' title='" . sprintf($this->lang->words['go_to_prefix'], IPSLib::getAppTitle('forums')) . "'><span class='icon'></span>" . IPSLib::getAppTitle('forums') . "</a></li>\r\n\t\t\t\t\t" : "") . "\r\n\t\t\t\t\t" . ($header_items['applications']['blog']['app_show'] ? "\r\n\t\t\t\t\t\t<li id='nav_blog'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$header_items['applications']['blog']['app_link']}", "{$header_items['applications']['blog']['app_base']}", ''), "{$header_items['applications']['blog']['app_seotitle']}", "{$header_items['applications']['blog']['app_template']}") . "' title='" . sprintf($this->lang->words['go_to_prefix'], IPSLib::getAppTitle('blog')) . "'><span class='icon'></span>" . IPSLib::getAppTitle('blog') . "</a></li>\r\n\t\t\t\t\t" : "") . "\r\n\t\t\t\t\t" . ($header_items['applications']['gallery']['app_show'] ? "\r\n\t\t\t\t\t\t<li id='nav_gallery'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$header_items['applications']['gallery']['app_link']}", "{$header_items['applications']['gallery']['app_base']}", ''), "{$header_items['applications']['gallery']['app_seotitle']}", "{$header_items['applications']['gallery']['app_template']}") . "' title='" . sprintf($this->lang->words['go_to_prefix'], IPSLib::getAppTitle('gallery')) . "'><span class='icon'></span>" . IPSLib::getAppTitle('gallery') . "</a></li>\r\n\t\t\t\t\t" : "") . "\r\n\t\t\t\t\t" . ($header_items['applications']['nexus']['app_show'] ? "\r\n\t\t\t\t\t\t<li id='nav_nexus_store'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=nexus&amp;module=payments&amp;section=store", "public", ''), "store", "") . "'><span class='icon'></span>{$this->lang->words['mobile_nexus_store']}</a></li>\r\n\t\t\t\t\t\t<li id='nav_nexus_ca'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=nexus&amp;module=clients", "public", ''), "", "") . "'><span class='icon'></span>{$this->lang->words['mobile_nexus_clients']}</a></li>\r\n\t\t\t\t\t" : "") . "\r\n\t\t\t\t\t<li id='nav_vnc'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=search&amp;do=viewNewContent&amp;search_app=" . (($this->registry->getCurrentApplication() != 'core' and IPSLib::appIsSearchable($this->registry->getCurrentApplication())) ? "{$this->registry->getCurrentApplication()}" : "forums") . "", "public", ''), "", "") . "' accesskey='2'><span class='icon'></span>{$this->lang->words['mobile_view_new_posts']}</a></li>\r\n\t\t\t\t\t<li id='nav_statuses'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members&amp;module=profile&amp;section=status&amp;type=all", "public", ''), "true", "members_status_all") . "'><span class='icon'></span>{$this->lang->words['mob_status_updates']}</a></li>\r\n\t\t\t\t\t<li id='nav_search'><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=search", "public", ''), "", "") . "' accesskey='2'><span class='icon'></span>{$this->lang->words['sj_search']}</a></li>\r\n\t\t\t\t\t<li id='nav_markread'><a href=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=forums&amp;module=forums&amp;section=markasread&amp;marktype=all&amp;k={$this->member->form_hash}", "public", ''), "", "") . "\" title='{$this->lang->words['mark_all_as_read']}'><span class='icon'></span>{$this->lang->words['mobile_mark_board_as_read']}</a></li>\r\n\t\t\t\t</ul>\r\n\t\t\t</div>\r\n\t\t\t<script type=\"text/javascript\">\r\n\t\t\t\t/* Prevent flash of header */\r\n\t\t\t\tdocument.getElementById('user_navigation').style.display = 'none';\r\n\t\t\t</script>\r\n\t\t\t\r\n\t\t\t<div id='content' class='clear'>\r\n\t\t\t\t" . ($html ? "{$html}" : "") . "\r\n\t\t\t</div>\r\n\t\t\t<div id='footer' class='clear'>\r\n\t\t\t\t" . ($this->memberData['userAgentType'] != 'mobileAppLegacy' || $this->registry->output->isLargeTouchDevice() ? "\r\n\t\t\t\t\t<a id='full_version' href='#'>{$this->lang->words['full_version']}</a>\r\n\t\t\t\t" : "") . "\r\n\t\t\t\t" . (count($footer_items['lang_chooser']['options']) > 1 ? "\r\n\t\t\t\t\t<a href='#' id='show_langs'>{$footer_items['lang_chooser']['default']}</a>\r\n\t\t\t\t\t<div id='show_langs_box' style='display: none'>\r\n\t\t\t\t\t\t<form action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$this->settings['query_string_formatted']}", "public", ''), "", "") . "\" method=\"post\">\r\n\t\t\t\t\t\t\t<fieldset>\r\n\t\t\t\t\t\t\t\t<input type='hidden' name='k' value='{$this->member->form_hash}' />\r\n\t\t\t\t\t\t\t\t<input type='hidden' name='setlanguage' value='1' />\r\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"langurlbits\" value=\"&amp;cal_id={$this->request['cal_id']}\" />\r\n\t\t\t\t\t\t\t\t<label for='newLang' class='hide'>{$this->lang->words['language_prefix']}</label>\r\n\t\t\t\t\t\t\t\t<select name=\"langid\" id='newLang'>\r\n\t\t\t\t\t\t\t\t\t" . $this->__f__067cf3cbf4d56bffdcc0b9a010502a99($html, $documentHeadItems, $css, $jsModules, $metaTags, $header_items, $items, $footer_items, $stats) . "\t\t\t\t\t\t\t\t</select>\r\n\t\t\t\t\t\t\t\t<input type='submit' class='input_submit alt' value='{$this->lang->words['jmp_go']}' id='newLangSubmit' />\r\n\t\t\t\t\t\t\t</fieldset>\r\n\t\t\t\t\t\t</form>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t" : "") . "\r\n\t\t\t</div>\r\n\t\t\t<div id='task'>{$stats['task']}</div>\r\n\t\t</div>\r\n\t\t<div id='shade' style='display:none'></div>\r\n\t\t<!-- pre-load -->\r\n\t\t<div style='display:none'><img src='{style_images_url}/wait.gif' /></div>\r\n\t\t\r\n\t\t" . (($this->settings['viglink_enabled'] and (!$this->settings['viglink_groups'] or IPSMember::isInGroup($this->memberData, explode(',', $this->settings['viglink_groups'])))) ? "<script type=\"text/javascript\">\r\n\t\t\t  var vglnk = { api_url: '//api.viglink.com/api',\r\n\t\t\t                key: '{$this->settings['viglink_api_key']}'" . ($this->settings['viglink_subid'] ? ",\r\n\t\t\t                sub_id: '{$this->settings['sub_id']}'\r\n\t\t\t                " : "") . "\r\n\t\t\t              };\r\n\t\t\t\r\n\t\t\t  (function(d, t) {\r\n\t\t\t    var s = d.createElement(t); s.type = 'text/javascript'; s.async = true;\r\n\t\t\t    s.src = ('https:' == document.location.protocol ? vglnk.api_url :\r\n\t\t\t             '//cdn.viglink.com/api') + '/vglnk.js';\r\n\t\t\t    var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r);\r\n\t\t\t  }(document, 'script'));\r\n\t\t\t</script>" : "") . "\r\n\t\t\r\n\t</body>\r\n</html>";
     return $IPBHTML;
 }
Пример #6
0
 /**
  * Retuns the html for displaying the forum category filter on the advanced search page
  *
  * @return	string	Filter HTML
  */
 public function getHtml()
 {
     /* Make sure class_forums is setup */
     if (ipsRegistry::isClassLoaded('class_forums') !== TRUE) {
         $classToLoad = IPSLib::loadLibrary(IPSLib::getAppDir('forums') . "/sources/classes/forums/class_forums.php", 'class_forums', 'forums');
         ipsRegistry::setClass('class_forums', new $classToLoad(ipsRegistry::instance()));
     }
     ipsRegistry::getClass('class_forums')->strip_invisible = 1;
     ipsRegistry::getClass('class_forums')->forumsInit();
     /* Got any archived content? */
     $canSearchArchives = false;
     if ($this->settings['archive_on']) {
         $canSearchArchives = true;
         if (($this->settings['search_method'] == 'traditional' || $this->settings['search_method'] == 'sql') && $this->settings['archive_remote_sql_database']) {
             $canSearchArchives = false;
         }
     }
     $topic = NULL;
     if ($this->request['cType'] == 'topic') {
         $this->request['cId'] = intval($this->request['cId']);
         $topic = ipsRegistry::DB()->buildAndFetch(array('select' => '*', 'from' => 'topics', 'where' => "tid={$this->request['cId']}"));
     }
     return array('title' => IPSLib::getAppTitle('forums'), 'html' => ipsRegistry::getClass('output')->getTemplate('search')->forumAdvancedSearchFilters(ipsRegistry::getClass('class_forums')->buildForumJump(0, 1, 0, (isset($this->request['cId']) and $this->request['cType'] == 'forum') ? array($this->request['cId']) : array()), $canSearchArchives, $topic));
 }
Пример #7
0
 /**
  * Returns boxes for the search form
  *
  * @param	boolean		Grab all apps or just the current one
  * @return	array
  */
 public function getHtml($allApps = TRUE)
 {
     /* INIT */
     $filtersHtml = '';
     /* Loop through apps */
     foreach (ipsRegistry::$applications as $app) {
         /* Not all? */
         if (!$allApps and $app['app_directory'] != $this->_app) {
             continue;
         }
         if (IPSLib::appIsSearchable($app['app_directory'])) {
             /* got custom filter? */
             if (is_file(IPSLib::getAppDir($app['app_directory']) . '/extensions/search/form.php')) {
                 $classToLoad = IPSLib::loadLibrary(IPSLib::getAppDir($app['app_directory']) . '/extensions/search/form.php', 'search_form_' . $app['app_directory'], $app['app_directory']);
                 if (class_exists($classToLoad) and method_exists($classToLoad, 'getHtml')) {
                     $_obj = new $classToLoad();
                     $filtersHtml[$app['app_directory']] = $_obj->getHtml();
                 } else {
                     $filtersHtml[$app['app_directory']] = array('title' => IPSLib::getAppTitle($app['app_directory']), 'html' => '');
                 }
             } else {
                 $filtersHtml[$app['app_directory']] = array('title' => IPSLib::getAppTitle($app['app_directory']), 'html' => '');
             }
             $filtersHtml[$app['app_directory']]['sortDropIn'] = $this->fetchSortIn($app['app_directory']);
             $filtersHtml[$app['app_directory']]['sortDropDown'] = $this->fetchSortDropDown($app['app_directory']);
         }
     }
     return $filtersHtml;
 }
Пример #8
0
 function __f__e31017b74a41d4b4cb2b4384d3fd5612($results, $pagination, $total, $member, $limited = 0, $wasLimited = false, $beginTime = 0, $sortIn = null, $sortDropDown = array())
 {
     $_ips___x_retval = '';
     $__iteratorCount = 0;
     foreach ($this->registry->getApplications() as $app) {
         $__iteratorCount++;
         $_ips___x_retval .= "\n\t\t\t\t\t\t" . ((IPSLib::appIsSearchable($app['app_directory'], 'usercontent') and !in_array($app['app_directory'], array('core', 'forums', 'members'))) ? "<li " . ($this->request['search_app'] == $app['app_directory'] ? "class='active'" : "") . "><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=search&amp;do=user_activity&amp;search_app={$app['app_directory']}&amp;mid={$this->request['mid']}&amp;userMode={$this->request['userMode']}&amp;sid={$this->request['_sid']}", "public", ''), "", "") . "'>" . IPSLib::getAppTitle($app['app_directory']) . "</a></li>" : "") . "\n\t\t\t\t\t\n";
     }
     $_ips___x_retval .= '';
     unset($__iteratorCount);
     return $_ips___x_retval;
 }
Пример #9
0
 function __f__c8ca620f84d6ee0ffd036e677a836616()
 {
     $_ips___x_retval = '';
     $__iteratorCount = 0;
     foreach ($this->registry->getApplications() as $app => $data) {
         $__iteratorCount++;
         $_ips___x_retval .= "\t\t\t\t\n\t\t\t\t\t\t" . ((IPSLib::appIsSearchable($app, 'search') and !in_array($app, array('forums', 'members', 'core'))) ? "<li class='app'>\n\t\t\t\t\t\t\t\t<label for='s_{$app}' title='" . IPSLib::getAppTitle($app) . "'>\n\t\t\t\t\t\t\t\t\t" . (($this->request['app'] == 'core' and $this->request['module'] == 'search') ? "<input type='radio' name='search_app' class='input_radio' id='s_{$app}' value=\"{$app}\" " . (((isset($this->request['search_app']) and $this->request['search_app'] == $app) || (!IPSLib::appIsSearchable($this->registry->getCurrentApplication(), 'search') and $app == 'core') || $this->registry->getCurrentApplication() == $app && (!isset($this->request['search_app']) or !$this->request['search_app'])) && !$this->request['showtopic'] && !$this->request['showforum'] && (!method_exists($this->registry->output->getTemplate($this->request['search_app'] . '_global'), 'contextSearch') or ipsRegistry::$appSearch) ? "checked=\"checked\"" : "") . " />" : "<input type='radio' name='search_app' class='input_radio' id='s_{$app}' value=\"{$app}\" " . (((isset($this->request['search_app']) and $this->request['search_app'] == $app) || (!IPSLib::appIsSearchable($this->registry->getCurrentApplication(), 'search') and $app == 'core') || $this->registry->getCurrentApplication() == $app && (!isset($this->request['search_app']) or !$this->request['search_app'])) && !$this->request['showtopic'] && !$this->request['showforum'] && (!method_exists($this->registry->output->getTemplate($this->registry->getCurrentApplication() . '_global'), 'contextSearch') or ipsRegistry::$appSearch) ? "checked=\"checked\"" : "") . " />") . "" . IPSLib::getAppTitle($app) . "\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</li>" : "") . "\n\t\t\t\t\t\n";
     }
     $_ips___x_retval .= '';
     unset($__iteratorCount);
     return $_ips___x_retval;
 }
 function globalTemplateMinimal($html, $documentHeadItems, $css, $jsModules, $metaTags, array $header_items, $items = array(), $footer_items = array(), $stats = array())
 {
     $IPBHTML = "";
     if (IPSLib::locationHasHooks('skin_global_other', $this->_funcHooks['globalTemplateMinimal'])) {
         $count_25be4b93e45d45a0afcf5f204d65ae86 = is_array($this->functionData['globalTemplateMinimal']) ? count($this->functionData['globalTemplateMinimal']) : 0;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['html'] = $html;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['documentHeadItems'] = $documentHeadItems;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['css'] = $css;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['jsModules'] = $jsModules;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['metaTags'] = $metaTags;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['header_items'] = $header_items;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['items'] = $items;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['footer_items'] = $footer_items;
         $this->functionData['globalTemplateMinimal'][$count_25be4b93e45d45a0afcf5f204d65ae86]['stats'] = $stats;
     }
     $IPBHTML .= "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">\n\t<html xml:lang=\"ru\" lang=\"ru\" xmlns=\"http://www.w3.org/1999/xhtml\"" . (IPSLib::fbc_enabled() === TRUE ? " xmlns:fb=\"http://www.facebook.com/2008/fbml\"" : "") . ">\n\t<head>\n\t\t<meta http-equiv=\"content-type\" content=\"text/html; charset={$this->settings['gb_char_set']}\" />\n\t\t<title>{$header_items['title']}" . ($header_items['page'] ? " {$this->lang->words['page_title_page']} {$header_items['page']}" : "") . "</title>\n\t\t<link rel=\"shortcut icon\" href='" . ($this->registry->output->isHTTPS ? "{$this->settings['board_url_https']}" : "{$this->settings['board_url']}") . "/favicon.ico' />\n\t\t\n\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeJS') ? $this->registry->getClass('output')->getTemplate('global')->includeJS($jsModules) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeCSS') ? $this->registry->getClass('output')->getTemplate('global')->includeCSS($css) : '') . "\n\t\t<!--<meta http-equiv=\"X-UA-Compatible\" content=\"IE=7\" />-->\n\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeMeta') ? $this->registry->getClass('output')->getTemplate('global')->includeMeta($metaTags) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeFeeds') ? $this->registry->getClass('output')->getTemplate('global')->includeFeeds($documentHeadItems) : '') . "" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'includeRTL') ? $this->registry->getClass('output')->getTemplate('global')->includeRTL() : '') . "\n\t\t\n\t\t<!--<meta name=\"apple-mobile-web-app-capable\" content=\"yes\">-->\n\t\t<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n\t\t<meta name=\"viewport\" content=\"initial-scale=1, maximum-scale=1, user-scalable = no;\">\n\t</head>\n\t<body id='ipboard_body'>\n\t\t<div id='ipbwrapper'>\n\t\t\t" . (count($items['navigation']) > 1 && !$this->settings['_mobile_nav_home'] ? "" . (($this->nav_count = count($items['navigation'])) ? "" : "") . "" . (($this->nav_back = isset($this->settings['_mobile_back_nav']) ? $this->settings['_mobile_back_nav'] : 2) ? "" : "") . "\n\t\t\t\t<div id='secondary_navigation'>\n\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$items['navigation'][$this->nav_count - $this->nav_back][1]}", "public", ''), "{$items['navigation'][$this->nav_count - $this->nav_back][2]}", "{$items['navigation'][$this->nav_count - $this->nav_back][3]}") . "'>{$this->lang->words['_larr']} &nbsp;{$items['navigation'][$this->nav_count - $this->nav_back][0]}</a>\n\t\t\t\t</div>" : "" . ((count($items['navigation']) == 1 || $this->settings['_mobile_nav_home']) && !$this->settings['_mobile_hide_nav'] ? "\n\t\t\t\t\t<div id='secondary_navigation'>\n\t\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("act=idx", "public", ''), "false", "") . "' class='back'>{$this->lang->words['_larr']} {$this->lang->words['home']}</a>\n\t\t\t\t\t</div>\n\t\t\t\t" : "") . "") . "\n\t\t\t" . (method_exists($this->registry->output->getTemplate($this->registry->getCurrentApplication() . '_global'), 'overwriteHeader') ? "\n\t\t\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('' . $this->registry->getCurrentApplication() . '_global'), 'overwriteHeader') ? $this->registry->getClass('output')->getTemplate('' . $this->registry->getCurrentApplication() . '_global')->overwriteHeader() : '') . "\n\t\t\t" : "\n\t\t\t\t" . (method_exists($this->registry->getClass('output')->getTemplate('global'), 'defaultHeader') ? $this->registry->getClass('output')->getTemplate('global')->defaultHeader() : '') . "\n\t\t\t") . "\n\t\t\t<div id=\"options-button\">&raquo;</div>\t\n\t\t\t<div id='user_navigation'>\n\t\t\t\t" . (!$this->memberData['member_id'] ? "\n\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=global&amp;section=login", "public", ''), "", "") . "' title='{$this->lang->words['sign_in']}'>{$this->lang->words['sign_in']}</a>\n\t\t\t\t\t<a href=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=global&amp;section=register", "public", ''), "", "") . "\" title='{$this->lang->words['register']}'>{$this->lang->words['register']}</a>\n\t\t\t\t" : "<a href=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=global&amp;section=login&amp;do=logout&amp;k={$this->member->form_hash}", "public", ''), "", "") . "\">{$this->lang->words['log_out']} ({$this->memberData['members_display_name']})</a>\n\t\t\t\t\t" . (($this->memberData['g_use_pm'] and $this->memberData['members_disable_pm'] == 0) ? "\n\t\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members&amp;module=messaging", "public", ''), "", "") . "' title='{$this->lang->words['your_messenger']}'>{$this->lang->words['your_messenger']}</a>\n\t\t\t\t\t" : "") . "") . "\n\t\t\t\t" . (!ipsRegistry::$applications['members']['app_hide_tab'] && !count(ipsRegistry::$applications['members']['app_tab_groups']) && !IPSMember::isInGroup($this->memberData, ipsRegistry::$applications['members']['app_tab_groups']) ? "<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members", "public", ''), "false", "") . "' title='{$this->lang->words['go_to_memberlist']}'>{$this->lang->words['tb_mlist']}</a>" : "") . "\n\t\t\t\t" . (ipsRegistry::$applications['blog']['app_enabled'] ? "\n\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=blog", "public", ''), "false", "") . "' title='{$this->lang->words['go_to_prefix']}" . IPSLib::getAppTitle('blog') . "'>" . IPSLib::getAppTitle('blog') . "</a>\n\t\t\t\t" : "") . "\n\t\t\t\t" . (ipsRegistry::$applications['gallery']['app_enabled'] ? "\n\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=gallery", "public", ''), "false", "") . "' title='{$this->lang->words['go_to_prefix']}" . IPSLib::getAppTitle('gallery') . "'>" . IPSLib::getAppTitle('gallery') . "</a>\n\t\t\t\t" : "") . "\n\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=search&amp;do=viewNewContent&amp;search_app=" . (($this->registry->getCurrentApplication() != 'core' and IPSLib::appIsSearchable($this->registry->getCurrentApplication())) ? "{$this->registry->getCurrentApplication()}" : "forums") . "", "public", ''), "", "") . "' accesskey='2'>{$this->lang->words['view_new_posts']}</a>\n\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=members&amp;module=profile&amp;section=status&amp;type=all", "public", ''), "true", "members_status_all") . "'>{$this->lang->words['mob_status_updates']}</a>\n\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=search", "public", ''), "", "") . "' accesskey='2'>{$this->lang->words['sj_search']}</a>\n\t\t\t</div>\n\t\t\t<script type=\"text/javascript\">\n\t\t\t\t/* Prevent flash of header */\n\t\t\t\tdocument.getElementById('user_navigation').style.display = 'none';\n\t\t\t</script>\n\t\t\t\n\t\t\t<div id='content' class='clear'>\n\t\t\t\t" . ($html ? "{$html}" : "") . "\n\t\t\t</div>\n\t\t\t\n\t\t\t<div id='footer' class='clear'>\n\t\t\t\t" . ($this->memberData['userAgentType'] != 'mobileAppLegacy' || $this->registry->output->isLargeTouchDevice() ? "\n\t\t\t\t\t<a id='full_version' href='#'>{$this->lang->words['full_version']}</a>\n\t\t\t\t" : "") . "\n\t\t\t\t" . (count($footer_items['lang_chooser']['options']) ? "\n\t\t\t\t\t<a href='#' id='show_langs'>{$footer_items['lang_chooser']['default']}</a>\n\t\t\t\t\t<div id='show_langs_box' style='display: none'>\n\t\t\t\t\t\t<form action=\"" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$this->settings['query_string_formatted']}", "public", ''), "", "") . "\" method=\"post\">\n\t\t\t\t\t\t\t<fieldset>\n\t\t\t\t\t\t\t\t<input type='hidden' name='k' value='{$this->member->form_hash}' />\n\t\t\t\t\t\t\t\t<input type='hidden' name='setlanguage' value='1' />\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"langurlbits\" value=\"cal_id={$this->request['cal_id']}\" />\n\t\t\t\t\t\t\t\t<label for='newLang' class='hide'>{$this->lang->words['language_prefix']}</label>\n\t\t\t\t\t\t\t\t<select name=\"langid\" id='newLang'>\n\t\t\t\t\t\t\t\t\t" . $this->__f__42eeecc43bfed00ea413c2df51bfa966($html, $documentHeadItems, $css, $jsModules, $metaTags, $header_items, $items, $footer_items, $stats) . "\t\t\t\t\t\t\t\t</select>\n\t\t\t\t\t\t\t\t<input type='submit' class='input_submit alt' value='{$this->lang->words['jmp_go']}' id='newLangSubmit' />\n\t\t\t\t\t\t\t</fieldset>\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</div>\n\t\t\t\t" : "") . "\n\t\t\t\t" . (($this->memberData['userAgentKey'] == 'iphone' || $this->memberData['userAgentKey'] == 'ipodtouch' and !$this->member->isMobileApp) ? "\n\t\t\t\t\t<div><a href=\"http://www.invisionpower.com/download/goiphone.php\">{$this->lang->words['freeiphoneapp']}</a></div>\n\t\t\t\t" : "") . "\n\t\t\t</div>\n\t\t\t<div id='task'>{$stats['task']}</div>\n\t\t</div>\n\t\t<div id='shade' style='display:none'></div>\n\t\t<!-- pre-load -->\n\t\t<div style='display:none'><img src='{style_images_url}/wait.gif' /></div>\n\t</body>\n</html>";
     return $IPBHTML;
 }
Пример #11
0
 function __f__b94c8debdbc2f39ece6942ca98b016b6($config, $emailData)
 {
     $_ips___x_retval = '';
     $__iteratorCount = 0;
     foreach ($this->_config as $key => $_config) {
         $__iteratorCount++;
         $_ips___x_retval .= "\n\t\t\t" . (!isset($_config['_done']) && $_config['_done'] != 1 ? "" . ($this->_lastApp != $_config['app'] ? "<tr class='row2'>\n\t\t\t\t\t\t<td colspan='{$this->_colCount}'>\n\t\t\t\t\t\t\t<h3>" . ($_config['app'] == 'core' ? "{$this->lang->words['notifytitle_other']}" : "" . IPSLib::getAppTitle($_config['app']) . "") . "</h3>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t\t" . (($this->_lastApp = $_config['app']) ? "" : "") . "" : "") . "\n\t\t\t\t<tr>\n\t\t\t\t\t<td class='notify_title desc'>{$this->lang->words['notify__' . $_config['key']]}</h3></td>\n\t\t\t\t\t<td class='short'>\n\t\t\t\t\t\t<span class='notify_icon inline' title='{$this->lang->words['notify_type_inline']}'>&nbsp;</span>\n\t\t\t\t\t\t" . (isset($_config['options']['inline']) ? "<input type='checkbox' class='input_check' id='inline_{$key}' name=\"config_{$key}[]\" value=\"inline\"" . ((is_array($_config['defaults']) and in_array('inline', $_config['defaults'])) ? " checked=\"checked\"" : "") . " " . ($_config['disabled'] ? " disabled=\"disabled\"" : "") . " />" : "\n\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />\n\t\t\t\t\t\t") . "\n\t\t\t\t\t</td>\n\t\t\t\t\t<td class='short'>\n\t\t\t\t\t\t<span class='notify_icon email' title='{$this->lang->words['notify_type_email']}'>&nbsp;</span>\n\t\t\t\t\t\t" . (isset($_config['options']['email']) ? "<input type='checkbox' class='input_check' id='email_{$key}' name=\"config_{$key}[]\" value=\"email\"" . ((is_array($_config['defaults']) and in_array('email', $_config['defaults'])) ? " checked=\"checked\"" : "") . " " . ($_config['disabled'] ? " disabled=\"disabled\"" : "") . " />" : "\n\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />\n\t\t\t\t\t\t") . "\n\t\t\t\t\t</td>\n\t\t\t\t\t" . (IPSMember::canReceiveMobileNotifications() ? "<td class='short'>\n\t\t\t\t\t\t<span class='notify_icon mobile' title='{$this->lang->words['notify_type_mobile']}'>&nbsp;</span>\n\t\t\t\t\t\t" . (isset($_config['options']['mobile']) ? "<input type='checkbox' class='input_check' id='mobile_{$key}' name=\"config_{$key}[]\" value=\"mobile\"" . ((is_array($this->_config[$key]['defaults']) and in_array('mobile', $this->_config[$key]['defaults'])) ? " checked=\"checked\"" : "") . " " . ($this->_config[$key]['disabled'] ? " disabled=\"disabled\"" : "") . " />" : "\n\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />\n\t\t\t\t\t\t") . "\n\t\t\t\t\t</td>" : "") . "\n\t\t\t\t</tr>" : "") . "\n\t\t\n";
     }
     $_ips___x_retval .= '';
     unset($__iteratorCount);
     return $_ips___x_retval;
 }
Пример #12
0
 /**
  * Class entry point
  *
  * @param	object		Registry reference
  * @return	@e void		[Outputs to screen/redirects]
  */
 public function doExecute(ipsRegistry $registry)
 {
     /* Load language */
     $this->registry->class_localization->loadLanguageFile(array('public_search'), 'core');
     $this->registry->class_localization->loadLanguageFile(array('public_forums', 'public_topic'), 'forums');
     /* Reset engine type */
     $this->settings['search_method'] = $this->settings['search_method'] == 'traditional' ? 'sql' : $this->settings['search_method'];
     /* Force SQL for view new content? */
     if (!empty($this->settings['force_sql_vnc']) && $this->request['do'] == 'viewNewContent') {
         $this->settings['search_method'] = 'sql';
     }
     $this->request['search_app_filters'] = $this->_cleanInputFilters($this->request['search_app_filters']);
     /* Special consideration for contextual search */
     if (isset($this->request['search_app']) and is_string($this->request['search_app']) and strstr($this->request['search_app'], ':')) {
         list($app, $type, $id) = explode(':', $this->request['search_app']);
         $this->request['search_app'] = $app;
         $this->request['cType'] = $type;
         $this->request['cId'] = $id;
     } else {
         /* Force forums as default search */
         $this->request['search_in'] = ($this->request['search_in'] and IPSLib::appIsSearchable($this->request['search_in'], 'search')) ? $this->request['search_in'] : 'forums';
         $this->request['search_app'] = $this->request['search_app'] ? $this->request['search_app'] : $this->request['search_in'];
     }
     /* Check Access */
     $this->_canSearch();
     /* Start session - needs to be called before the controller is initiated */
     $this->_startSession();
     /* Load the controller */
     $classToLoad = IPSLib::loadLibrary(IPS_ROOT_PATH . 'sources/classes/search/controller.php', 'IPSSearch');
     /* Sanitzie */
     if (!is_string($this->request['search_app'])) {
         $this->request['search_app'] = 'forums';
     }
     try {
         $this->searchController = new $classToLoad($registry, $this->settings['search_method'], $this->request['search_app']);
     } catch (Exception $error) {
         $msg = $error->getMessage();
         /* Start session */
         $this->_endSession();
         switch ($msg) {
             case 'NO_SUCH_ENGINE':
             case 'NO_SUCH_APP':
             case 'NO_SUCH_APP_ENGINE':
                 $this->registry->output->showError(sprintf($this->lang->words['no_search_app'], ipsRegistry::$applications[$this->request['search_app']]['app_title']), 10145.1);
                 break;
         }
     }
     /* Log type */
     IPSDebug::addMessage("Search type: " . $this->settings['search_method']);
     /* Set up some defaults */
     IPSSearchRegistry::set('opt.noPostPreview', false);
     IPSSearchRegistry::set('in.start', intval($this->request['st']));
     IPSSearchRegistry::set('opt.search_per_page', intval($this->settings['search_per_page']) ? intval($this->settings['search_per_page']) : 25);
     $this->settings['search_ucontent_days'] = $this->settings['search_ucontent_days'] ? $this->settings['search_ucontent_days'] : 365;
     /* Contextuals */
     if (isset($this->request['cType'])) {
         IPSSearchRegistry::set('contextual.type', $this->request['cType']);
         IPSSearchRegistry::set('contextual.id', $this->request['cId']);
     }
     /* What to do */
     switch ($this->request['do']) {
         case 'user_activity':
             $this->viewUserContent();
             break;
         case 'new_posts':
         case 'viewNewContent':
         case 'active':
             $this->viewNewContent();
             break;
         case 'search':
         case 'quick_search':
             $this->searchResults();
             break;
         case 'followed':
             $this->viewFollowedContent();
             break;
         case 'manageFollowed':
             $this->updateFollowedContent();
             break;
         default:
         case 'search_form':
             $this->searchAdvancedForm();
             break;
     }
     /* Start session */
     $this->_endSession();
     /* If we have any HTML to print, do so... */
     if ($this->request['do'] == 'search' && !empty($this->request['search_tags'])) {
         $this->registry->output->setTitle(IPSText::urldecode_furlSafe($this->request['search_tags']) . ' - ' . $this->lang->words['st_tags'] . ' - ' . IPSLib::getAppTitle($this->request['search_app']) . ' - ' . ipsRegistry::$settings['board_name']);
         /* Add canonical tag */
         $extra = $this->request['st'] ? '&amp;st=' . $this->request['st'] : '';
         $this->registry->output->addCanonicalTag('app=core&amp;module=search&amp;do=search&amp;search_tags=' . IPSText::urlencode_furlSafe($this->request['search_tags']) . '&amp;search_app=' . $this->request['search_app'] . $extra, $this->request['search_tags'], 'tags');
     } else {
         $this->registry->output->setTitle($this->title . ' - ' . ipsRegistry::$settings['board_name']);
     }
     $this->registry->output->addContent($this->output);
     $this->registry->output->sendOutput();
 }
Пример #13
0
 /**
  * Show a screen requiring users to agree to terms before continuing
  *
  * @return	@e void
  */
 protected function agreeToTerms()
 {
     IPSText::getTextClass('bbcode')->parse_bbcode = 1;
     IPSText::getTextClass('bbcode')->parse_html = 0;
     IPSText::getTextClass('bbcode')->parse_nl2br = 0;
     IPSText::getTextClass('bbcode')->parse_emoticons = 1;
     IPSText::getTextClass('bbcode')->parsing_section = 'global';
     $this->settings['ipschat_rules'] = IPSText::getTextClass('bbcode')->preDbParse($this->settings['ipschat_rules']);
     $this->settings['ipschat_rules'] = IPSText::getTextClass('bbcode')->preDisplayParse($this->settings['ipschat_rules']);
     $this->registry->output->addNavigation(IPSLib::getAppTitle('ipchat'), '');
     $this->registry->output->setTitle(IPSLib::getAppTitle('ipchat') . ' - ' . $this->settings['board_name']);
     if ($this->request['_popup']) {
         $this->registry->output->popUpWindow($this->registry->getClass('output')->getTemplate('ipchat')->chatRules($this->settings['ipschat_rules']));
     } else {
         $this->registry->output->addContent($this->registry->getClass('output')->getTemplate('ipchat')->chatRules($this->settings['ipschat_rules']));
         $this->registry->output->sendOutput();
     }
 }
Пример #14
0
 /**
  * Return the tab title
  *
  * @return	@e string
  */
 public function getTabName()
 {
     return IPSLib::getAppTitle('forums');
 }
Пример #15
0
 /**
  * Class entry point
  *
  * @param	object		Registry reference
  * @return	@e void		[Outputs to screen]
  */
 public function doExecute(ipsRegistry $registry)
 {
     //-----------------------------------------
     // Get supported applications
     //-----------------------------------------
     $supportedApps = array();
     foreach (IPSLib::getEnabledApplications() as $app) {
         $file = IPSLib::getAppDir($app['app_directory']) . '/extensions/reputation.php';
         if (is_file($file)) {
             require_once $file;
             /*maybeLibHook*/
             if (class_exists('reputation_' . $app['app_directory'])) {
                 $supportedApps[$app['app_directory']] = $app;
             }
         }
     }
     //-----------------------------------------
     // Get results
     //-----------------------------------------
     /* What is it we're getting? */
     $app = (is_string($this->request['app_tab']) && !empty($this->request['app_tab']) and isset($supportedApps[$this->request['app_tab']])) ? $this->request['app_tab'] : 'forums';
     /* Load our extension class */
     $classToLoad = IPSLib::loadLibrary(IPSLib::getAppDir($app) . '/extensions/reputation.php', 'reputation_' . $app, $app);
     $reputationClass = new $classToLoad();
     /* Get our query */
     $_query = $reputationClass->fetch('most');
     $PRE = trim(ipsRegistry::dbFunctions()->getPrefix());
     /* Got something? */
     if ($_query['inner']) {
         /* Build inner join */
         $this->DB->build($_query['inner']);
         $inner = $this->DB->fetchSqlString();
         $this->DB->flushQuery();
         $this->DB->allow_sub_select = 1;
         $this->DB->query('SELECT * FROM ' . $PRE . "reputation_totals WHERE rt_app_type=MD5( CONCAT( '" . $app . "', ';', '" . $_query['type'] . "' ) ) AND rt_type_id IN (" . $inner . ") AND rt_total > 0 GROUP BY rt_key ORDER BY rt_total DESC LIMIT 0," . self::NUMBER_TO_SHOW);
         $this->DB->execute();
         $typeIds = array();
         $results = array();
         $index = array();
         while ($row = $this->DB->fetch()) {
             $typeIds[$row['rt_total'] . '.' . $row['rt_type_id']] = $row['rt_type_id'];
             $index[$row['rt_type_id']] = $row['rt_total'] . '.' . $row['rt_type_id'];
         }
         if (count($typeIds)) {
             $this->DB->build(array('select' => 'r.*', 'from' => array('reputation_index' => 'r'), 'where' => "r.app='" . $app . "' AND r.type='" . $_query['type'] . "' AND r.type_id IN (" . implode(',', array_values($typeIds)) . ")", 'group' => 'r.app, r.type, r.type_id', 'add_join' => $_query['joins']));
             $e = $this->DB->execute();
             while ($row = $this->DB->fetch($e)) {
                 $results[$index[$row['type_id']]] = $reputationClass->process($row);
             }
             krsort($results);
         }
     }
     //-----------------------------------------
     // Output
     //-----------------------------------------
     /* Process Results */
     $processedResults = count($results) ? $reputationClass->display($results) : '';
     $this->lang->loadLanguageFile(array('public_profile'), 'members');
     /* Setup page */
     $langBit = ipsRegistry::$settings['reputation_point_types'] == 'like' ? 'most_rep_likes' : 'most_rep_rep';
     $this->registry->output->setTitle($this->lang->words[$langBit] . ' - ' . IPSLib::getAppTitle($app));
     $this->registry->output->addNavigation($this->lang->words[$langBit], NULL);
     /* Display processed results */
     $this->registry->output->addContent($this->registry->getClass('output')->getTemplate('profile')->reputationPage($langBit, $app, $supportedApps, $processedResults));
     $this->registry->output->sendOutput();
 }
Пример #16
0
 function __f__86eda080e0824e83ff75d3d07428ab4e($member, $currentApp = '', $type = '', $supportedApps = array(), $processedResults = '', $pagination = '')
 {
     $_ips___x_retval = '';
     $__iteratorCount = 0;
     foreach ($supportedApps as $_app) {
         $__iteratorCount++;
         $_ips___x_retval .= "\n\t\t\t\t\t<li " . ($_app['app_directory'] == $currentApp ? "class='active'" : "") . ">\n\t\t\t\t\t\t<a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("showuser={$member['member_id']}&amp;tab=reputation&amp;app_tab={$_app['app_directory']}&amp;type={$type}", "public", ''), "{$member['members_seo_name']}", "showuser") . "'>\n\t\t\t\t\t\t\t" . IPSLib::getAppTitle($_app['app_directory']) . "\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</li>\n\t\t\t\t\n";
     }
     $_ips___x_retval .= '';
     unset($__iteratorCount);
     return $_ips___x_retval;
 }
Пример #17
0
    /**
     * Member editing screen
     *
     * @param	array 		Member data
     * @param	array 		Content
     * @param	string		Menu
     * @param	array 		Notification data
     * @return	string		HTML
     */
    public function member_view($member, $content, $menu, $notifications)
    {
        // Let's get to work..... :/
        $_m_groups = array();
        $_m_groups_others = array();
        $member['_cache'] = @unserialize($member['members_cache']);
        foreach (ipsRegistry::cache()->getCache('group_cache') as $id => $data) {
            // If we are viewing our own profile, don't show non admin groups as a primary group option to prevent the user from
            // accidentally removing their own ACP access.  Groups without ACP access can still be selected as secondary groups.
            if ($member['member_id'] == $this->memberData['member_id']) {
                //-----------------------------------------
                // If we can't access cp via primary group
                //-----------------------------------------
                if (!$this->caches['group_cache'][$member['member_group_id']]['g_access_cp']) {
                    //-----------------------------------------
                    // Can this group access cp?
                    //-----------------------------------------
                    if (!$data['g_access_cp']) {
                        $_m_groups[] = array($data['g_id'], $data['g_title']);
                        $_m_groups_others[] = array($data['g_id'], $data['g_title']);
                    } else {
                        $_m_groups_others[] = array($data['g_id'], $data['g_title']);
                    }
                } else {
                    if (!$data['g_access_cp']) {
                        $_m_groups_others[] = array($data['g_id'], $data['g_title']);
                    } else {
                        $_m_groups[] = array($data['g_id'], $data['g_title']);
                        $_m_groups_others[] = array($data['g_id'], $data['g_title']);
                    }
                }
            } else {
                $_m_groups[] = array($data['g_id'], $data['g_title']);
                $_m_groups_others[] = array($data['g_id'], $data['g_title']);
            }
        }
        $years = array(array(0, '----'));
        $months = array(array(0, '--------'));
        $days = array(array(0, '--'));
        foreach (range(1, 31) as $_day) {
            $days[] = array($_day, $_day);
        }
        foreach (array_reverse(range(date('Y') - 100, date('Y'))) as $_year) {
            $years[] = array($_year, $_year);
        }
        foreach (range(1, 12) as $_month) {
            $months[] = array($_month, $this->lang->words['M_' . $_month]);
        }
        $time_zones = array();
        foreach ($this->lang->words as $k => $v) {
            if (strpos($k, 'time_') === 0) {
                if (preg_match("/[\\-0-9]/", substr($k, 5))) {
                    $offset = floatval(substr($k, 5));
                    $time_zones[] = array($offset, $v);
                }
            }
        }
        $languages = array();
        foreach (ipsRegistry::cache()->getCache('lang_data') as $language) {
            $languages[] = array($language['lang_id'], $language['lang_title']);
        }
        $pm_options = array(0 => array(0, $this->lang->words['mem_edit_pm_no']), 1 => array(1, $this->lang->words['mem_edit_pm_yes']), 2 => array(2, $this->lang->words['mem_edit_pm_yes_really']));
        $_skin_list = $this->registry->output->generateSkinDropdown();
        array_unshift($_skin_list, array(0, $this->lang->words['sm_skinnone']));
        $skinList = ipsRegistry::getClass('output')->formDropdown("skin", $_skin_list, $member['skin']);
        $sigHtmlChecked = $member['bw_html_sig'] ? 'checked="checked"' : '';
        $form_member_group_id = ipsRegistry::getClass('output')->formDropdown("member_group_id", $_m_groups, $member['member_group_id']);
        $form_mgroup_others = ipsRegistry::getClass('output')->formMultiDropdown("mgroup_others[]", $_m_groups_others, explode(",", $member['mgroup_others']), 8, 'mgroup_others');
        $form_title = ipsRegistry::getClass('output')->formInput("title", $member['title']);
        $form_warn = ipsRegistry::getClass('output')->formInput("warn_level", $member['warn_level']);
        $_form_year = ipsRegistry::getClass('output')->formDropdown("bday_year", $years, $member['bday_year']);
        $_form_month = ipsRegistry::getClass('output')->formDropdown("bday_month", $months, $member['bday_month']);
        $_form_day = ipsRegistry::getClass('output')->formDropdown("bday_day", $days, $member['bday_day']);
        $form_time_offset = ipsRegistry::getClass('output')->formDropdown("time_offset", $time_zones, $member['time_offset'] ? floatval($member['time_offset']) : 0);
        $form_auto_dst = ipsRegistry::getClass('output')->formCheckbox("dstCheck", $member['members_auto_dst'], 1, "dst", "onclick='toggle_dst()'");
        $form_dst_now = ipsRegistry::getClass('output')->formCheckbox("dstOption", $member['dst_in_use'], 1, "dstManual");
        $form_language = ipsRegistry::getClass('output')->formDropdown("language", $languages, $member['language']);
        $form_allow_admin_mails = ipsRegistry::getClass('output')->formYesNo("allow_admin_mails", $member['allow_admin_mails']);
        $form_members_disable_pm = ipsRegistry::getClass('output')->formDropdown("members_disable_pm", $pm_options, $member['members_disable_pm']);
        $form_view_sig = ipsRegistry::getClass('output')->formYesNo("view_sigs", $member['view_sigs']);
        $form_reputation_points = ipsRegistry::getClass('output')->formInput('pp_reputation_points', $member['pp_reputation_points']);
        $bw_no_status_update = ipsRegistry::getClass('output')->formYesNo("bw_no_status_update", $member['bw_no_status_update']);
        $bw_disable_customization = ipsRegistry::getClass('output')->formYesNo("bw_disable_customization", $member['bw_disable_customization']);
        $form_uploader = ipsRegistry::getClass('output')->formDropdown("member_uploader", array(array('flash', $this->lang->words['mem__flashuploader']), array('default', $this->lang->words['mem__defuploader'])), $member['member_uploader']);
        $form_popup = ipsRegistry::getClass('output')->formYesNo("show_notification_popup", $member['_cache']['show_notification_popup']);
        $form_autotrack = ipsRegistry::getClass('output')->formYesNo("auto_track", $member['auto_track'] ? 1 : 0);
        $form_autotrackmthd = ipsRegistry::getClass('output')->formDropdown("auto_track_method", array(array('none', $this->lang->words['mem__auto_none']), array('immediate', $this->lang->words['mem__auto_immediate']), array('offline', $this->lang->words['mem__auto_delayed']), array('daily', $this->lang->words['mem__auto_daily']), array('weekly', $this->lang->words['mem__auto_weekly'])), $member['auto_track']);
        $secure_key = ipsRegistry::getClass('adminFunctions')->getSecurityKey();
        $ban_member_text = $member['member_banned'] ? $this->lang->words['sm_unban'] : $this->lang->words['sm_ban'];
        $spam_member_text = $member['bw_is_spammer'] ? $this->lang->words['sm_unspam'] : $this->lang->words['sm_spam'];
        $bw_disable_tagging = ipsRegistry::getClass('output')->formYesNo("bw_disable_tagging", $member['bw_disable_tagging']);
        $bw_disable_prefixes = ipsRegistry::getClass('output')->formYesNo("bw_disable_prefixes", $member['bw_disable_prefixes']);
        //-----------------------------------------
        // Comments and friends..
        //-----------------------------------------
        $pp_visitors = ipsRegistry::getClass('output')->formYesNo("pp_setting_count_visitors", $member['pp_setting_count_visitors']);
        $pp_enable_comments = ipsRegistry::getClass('output')->formYesNo("pp_setting_count_comments", $member['pp_setting_count_comments']);
        $pp_enable_friends = ipsRegistry::getClass('output')->formYesNo("pp_setting_count_friends", $member['pp_setting_count_friends']);
        $_commentsApprove = array(array('0', $this->lang->words['sm_comments_app_none']), array('1', $this->lang->words['sm_comments_app_on']));
        $_friendsApprove = array(array('0', $this->lang->words['sm_friends_app_none']), array('1', $this->lang->words['sm_friends_app_on']));
        $pp_comments_approve = ipsRegistry::getClass('output')->formDropdown("pp_setting_moderate_comments", $_commentsApprove, $member['pp_setting_moderate_comments']);
        $pp_friends_approve = ipsRegistry::getClass('output')->formDropdown("pp_setting_moderate_friends", $_friendsApprove, $member['pp_setting_moderate_friends']);
        $suspend_date = '';
        if ($member['temp_ban']) {
            $s_ban = IPSMember::processBanEntry($member['temp_ban']);
            $suspend_date = "<div class='warning'>" . $this->lang->words['member_supsended_til'] . ' ' . ipsRegistry::getClass('class_localization')->getDate($s_ban['date_end'], 'LONG', 1) . "</div>";
        }
        $IPBHTML = "";
        $IPBHTML .= <<<HTML
<script type="text/javascript" src="{$this->settings['js_main_url']}acp.members.js"></script>

<div class='section_title'>
\t<h2>{$this->lang->words['editing_member']} {$member['members_display_name']}</h2>
\t<ul class='context_menu'>
HTML;
        if (IPSLib::appIsInstalled('nexus')) {
            $IPBHTML .= <<<HTML
\t\t<li>
\t\t\t<a href="{$this->settings['base_url']}app=nexus&amp;module=customers&amp;section=view&amp;member_id={$member['member_id']}">
\t\t\t\t<img src='{$this->settings['skin_acp_url']}/images/icon_components/nexus.png' alt='{$this->lang->words['view_customer_data']}' />
\t\t\t\t{$this->lang->words['form_viewcustomer']}
\t\t\t</a>
\t\t</li>
HTML;
        }
        if ($this->registry->getClass('class_permissions')->checkPermission('member_login', 'members', 'members')) {
            if (IPSMember::isInactive($member)) {
                $IPBHTML .= <<<HTML
\t\t<li class='disabled'>
\t\t\t<a href="#" onclick='alert("{$this->lang->words['member_login_ban_or_spam']}")'>
\t\t\t\t<img src='{$this->settings['skin_acp_url']}/images/icons/key.png' alt='{$this->lang->words['member_login']}' />
\t\t\t\t{$this->lang->words['member_login']}
\t\t\t</a>
\t\t</li>
HTML;
            } else {
                $IPBHTML .= <<<HTML
\t\t<li>
\t\t\t<a href="{$this->settings['base_url']}app=members&amp;module=members&amp;section=members&amp;do=member_login&amp;member_id={$member['member_id']}" target="_blank">
\t\t\t\t<img src='{$this->settings['skin_acp_url']}/images/icons/key.png' alt='{$this->lang->words['member_login']}' />
\t\t\t\t{$this->lang->words['member_login']}
\t\t\t</a>
\t\t</li>
HTML;
            }
        }
        if ($member['member_id'] != $this->memberData['member_id']) {
            $IPBHTML .= <<<HTML
\t\t<li>
\t\t\t<a href='#' id='MF__ban2' title='{$this->lang->words['title_ban']}'>
\t\t\t\t<img src='{$this->settings['skin_acp_url']}/images/icons/user_warn.png' alt='{$this->lang->words['title_ban']}' />
\t\t\t\t{$ban_member_text}
\t\t\t</a>
\t\t\t
\t\t\t<script type='text/javascript'>
\t\t\t\t\$('MF__ban2').observe('click', acp.members.banManager.bindAsEventListener( this, "app=members&amp;module=ajax&amp;section=editform&amp;do=show&amp;name=inline_ban_member&amp;member_id={$member['member_id']}" ) );
\t\t\t</script>
\t\t</li>
HTML;
        }
        $IPBHTML .= <<<HTML
\t\t<li>
\t\t\t<a href='#' class='ipbmenu' id='member_tasks' title='{$this->lang->words['title_tasks']}'><img src='{$this->settings['skin_acp_url']}/images/icons/cog.png' /> {$this->lang->words['mem_tasks']} <img src='{$this->settings['skin_acp_url']}/images/useropts_arrow.png' /></a>
\t\t</li>
\t\t<li class='closed'>
\t\t\t<a href="#" title='{$this->lang->words['title_delete']}' onclick="return acp.confirmDelete( '{$this->settings['base_url']}app=members&amp;module=members&amp;section=members&amp;do=member_delete&amp;member_id={$member['member_id']}')">
\t\t\t\t<img src='{$this->settings['skin_acp_url']}/images/icons/delete.png' alt='{$this->lang->words['title_delete']}' />
\t\t\t\t{$this->lang->words['form_deletemember']}
\t\t\t</a>
\t\t</li>
\t</ul>
</div>

<ul class='ipbmenu_content' id='member_tasks_menucontent' style='display: none'>
\t<li>
\t\t<img src='{$this->settings['skin_acp_url']}/images/icons/flag_red.png' alt='{$spam_member_text}' /> <a style='text-decoration: none' href='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=toggleSpam&amp;member_id={$member['member_id']}&amp;secure_key={$secure_key}' title='{$this->lang->words['title_spam']}'>{$spam_member_text}</a>
\t</li>
HTML;
        if ($member['member_group_id'] == $this->settings['auth_group']) {
            $IPBHTML .= <<<HTML
\t\t<li>
\t\t\t<img src='{$this->settings['skin_acp_url']}/images/icons/tick.png' alt='{$this->lang->words['title_validate']}' /> <a style='text-decoration: none' href="{$this->settings['base_url']}app=members&amp;module=members&amp;section=tools&amp;do=do_validating&amp;mid_{$member['member_id']}=1&amp;type=approve&amp;_return={$member['member_id']}" title='{$this->lang->words['title_validate']}'>{$this->lang->words['button_validate']}</a>
\t\t</li>
HTML;
        }
        if (is_array($menu) and count($menu)) {
            foreach ($menu as $app => $link) {
                if (is_array($link) and count($link)) {
                    foreach ($link as $alink) {
                        $img = $alink['img'] ? $alink['img'] : $this->settings['skin_acp_url'] . '/images/icons/user.png';
                        if (stristr($alink['url'], '</a>') && stristr($alink['url'], '<a ')) {
                            $IPBHTML .= <<<HTML
\t\t\t\t\t\t<li><img src='{$img}' alt='-' /> {$alink['url']}</li>
HTML;
                        } else {
                            $thisLink = $alink['js'] ? 'href="#" onclick="' . $alink['url'] . '"' : "href='{$this->settings['_base_url']}app={$app}&amp;{$alink['url']}&amp;member_id={$member['member_id']}'";
                            $IPBHTML .= <<<HTML
\t\t\t\t\t\t<li><img src='{$img}' alt='-' /> <a {$thisLink} style='text-decoration: none' >{$alink['title']}</a></li>
HTML;
                        }
                    }
                }
            }
        }
        $IPBHTML .= <<<HTML
</ul>
{$suspend_date}
<br style='clear: both' />
HTML;
        $_public = PUBLIC_DIRECTORY;
        $IPBHTML .= <<<HTML
<div class='acp-box'>
<form style='display:block' action='{$this->settings['base_url']}&amp;{$this->form_code}&amp;do=member_edit&amp;member_id={$member['member_id']}&amp;secure_key={$secure_key}' method='post'>

<h3>{$this->lang->words['editing_member']}</h3>
<div id='tabstrip_members' class='ipsTabBar with_left with_right'>
\t<span class='tab_left'>&laquo;</span>
\t<span class='tab_right'>&raquo;</span>
\t<ul>
\t\t<li id='tab_MEMBERS_1'>{$this->lang->words['mem_tab_basics']}</li>
\t\t<li id='tab_MEMBERS_2'>{$this->lang->words['mem_tab_profile']}</li>
\t\t<li id='tab_MEMBERS_3'>{$this->lang->words['mem_tab_notifications']}</li>
HTML;
        // Got blocks from other apps?
        $IPBHTML .= implode("\n", $content['tabs']);
        if ($this->settings['auth_allow_dnames']) {
            $display_name = <<<HTML
\t\t\t<tr>
\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_display_name']}</strong></td>
\t\t\t\t<td class='field_field'>
\t\t\t\t\t<span class='member_detail' id='MF__member_display_name'>{$member['members_display_name']}</span>
\t\t\t\t\t<a class='change_icon' id='MF__member_display_name_popup' href='' style='cursor:pointer' title='{$this->lang->words['title_display_name']}'>{$this->lang->words['mem_change_button']}</a>
\t\t\t\t\t
\t\t\t\t\t<script type='text/javascript'>
\t\t\t\t\t\t\$('MF__member_display_name_popup').observe('click', acp.members.editField.bindAsEventListener( this, 'MF__member_display_name', "{$this->lang->words['sm_display']}", "app=members&amp;module=ajax&amp;section=editform&amp;do=show&amp;name=inline_form_display_name&amp;member_id={$member['member_id']}" ) );
\t\t\t\t\t</script>
\t\t\t\t</td>
\t\t\t</tr>
HTML;
        } else {
            $display_name = '';
        }
        /* Facebook doesn't pass a size, so in IPB we get around that by passing * as a width. This confuses the form here, so.. */
        $_pp_box_width = ($member['pp_main_width'] == '*' or $member['pp_main_width'] < 100) ? '100' : $member['pp_main_width'];
        $_pp_max_width = $member['pp_main_width'] == '*' ? ';max-width:100px' : '';
        $IPBHTML .= <<<HTML
</ul>
 </div>
<div id='tabstrip_members_content' class='ipsTabBar_content'>
\t<div id='tab_MEMBERS_1_content' class='row1'>
\t\t<div style='float: left; width: 70%'>
\t\t\t<table class='ipsTable double_pad'>
\t\t\t\t{$display_name}
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_login_name']}</strong></td>
\t\t\t\t\t<td class='field_field'>
\t\t\t\t\t\t<span class='member_detail' id='MF__name'>{$member['name']}</span>
\t\t\t\t\t\t<a href='' class='change_icon' style='cursor:pointer' id='MF__name_popup' title='{$this->lang->words['title_login_name']}'>{$this->lang->words['mem_change_button']}</a>
\t\t\t\t\t\t<script type='text/javascript'>
\t\t\t\t\t\t\t\$('MF__name_popup').observe('click', acp.members.editField.bindAsEventListener( this, 'MF__name', "{$this->lang->words['sm_loginname']}", "app=members&amp;module=ajax&amp;section=editform&amp;do=show&amp;name=inline_form_name&amp;member_id={$member['member_id']}" ) );
\t\t\t\t\t\t</script>
\t\t\t\t\t</td>
\t\t\t\t</tr>
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_password']}</strong></td>
\t\t\t\t\t<td class='field_field'>
\t\t\t\t\t\t
\t\t\t\t\t\t<span class='member_detail' id='MF__password'>************</span> 
\t\t\t\t\t\t<a href='' class='change_icon' style='cursor:pointer' id='MF__password_popup' title='{$this->lang->words['title_password']}'>{$this->lang->words['mem_change_button']}</a>
\t\t\t\t\t\t<script type='text/javascript'>
\t\t\t\t\t\t\t\$('MF__password_popup').observe('click', acp.members.editField.bindAsEventListener( this, 'MF__password', "{$this->lang->words['sm_password']}", "app=members&amp;module=ajax&amp;section=editform&amp;do=show&amp;name=inline_password&amp;member_id={$member['member_id']}" ) );
\t\t\t\t\t\t</script>
\t\t\t\t\t</td>
\t\t\t\t</tr>
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_email']}</strong></td>
\t\t\t\t\t<td class='field_field'>
\t\t\t\t\t\t<span class='member_detail' id='MF__email'>{$member['email']}</span> 
\t\t\t\t\t\t<a href='' class='change_icon' style='cursor:pointer' id='MF__email_popup' title='{$this->lang->words['title_email']}'>{$this->lang->words['mem_change_button']}</a>
\t\t\t\t\t\t<script type='text/javascript'>
\t\t\t\t\t\t\t\$('MF__email_popup').observe('click', acp.members.editField.bindAsEventListener( this, 'MF__email', "{$this->lang->words['sm_email']}", "app=members&amp;module=ajax&amp;section=editform&amp;do=show&amp;name=inline_email&amp;member_id={$member['member_id']}" ) );
\t\t\t\t\t\t</script>
\t\t\t\t\t</td>
\t\t\t\t</tr>
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_form_title']}</strong></td>
\t\t\t\t\t<td class='field_field'>
\t\t\t\t\t\t<span id='MF__title'>{$form_title}</span>
\t\t\t\t\t</td>
\t\t\t\t</tr>
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_p_group']}</strong></td>
\t\t\t\t\t<td class='field_field'>
\t\t\t\t\t\t<span id='MF__member_group_id'>{$form_member_group_id}</span>
\t\t\t\t\t</td>
\t\t\t\t</tr>
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_s_group']}</strong></td>
\t\t\t\t\t<td class='field_field'>
\t\t\t\t\t\t<span id='MF__mgroup_others'>{$form_mgroup_others}</span>
\t\t\t\t\t</td>
\t\t\t\t</tr>
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['mem_warn_level']}</strong></td>
\t\t\t\t\t<td class='field_field'>\t\t
\t\t\t\t\t\t<span id='MF__warn_level'>{$form_warn}</span>&nbsp;&nbsp;<a href='#' onclick="return acp.openWindow('{$this->settings['board_url']}/index.php?app=members&amp;module=profile&amp;section=warnings&amp;member={$member['member_id']}','980','600'); return false;" title='{$this->lang->words['sm_viewnotes']}'><img src='{$this->settings['skin_acp_url']}/images/icons/view.png' alt='{$this->lang->words['sm_viewnotes']}' /></a>
\t\t\t\t\t</td>
\t\t\t\t </tr>
\t\t\t</table>
\t\t</div>
\t\t<div class='acp-sidebar'>
\t\t\t<div style='width:{$_pp_box_width}px; max-width: 125px;' id='MF__pp_photo_container'>
\t\t\t\t<img id='MF__pp_photo' src="{$member['pp_main_photo']}" style='{$_pp_max_width};max-width:125px' />
\t\t\t\t<br />
\t\t\t\t<ul class='photo_options'>
HTML;
        if ($member['_has_photo']) {
            $IPBHTML .= <<<HTML
\t\t\t\t<li><a style='float:none;width:auto;text-align:center;cursor:pointer' id='MF__removephoto' title='{$this->lang->words['mem_remove_photo']}'><img src='{$this->settings['skin_acp_url']}/images/picture_delete.png' alt='{$this->lang->words['mem_remove_photo']}' /></a></li>
\t\t\t\t<li><a style='float:none;width:auto;text-align:center;cursor:pointer' id='MF__newphoto' title='{$this->lang->words['sm_uploadnew']}'><img src='{$this->settings['skin_acp_url']}/images/picture_add.png' alt='{$this->lang->words['sm_uploadnew']}' /></a></li>
HTML;
        } else {
            $IPBHTML .= <<<HTML
\t\t\t\t<li><a style='float:none;width:auto;text-align:center;cursor:pointer' id='MF__newphoto' title='{$this->lang->words['sm_uploadnew']}'><img src='{$this->settings['skin_acp_url']}/images/picture_add.png' alt='{$this->lang->words['sm_uploadnew']}' /></a></li>
HTML;
        }
        $IPBHTML .= <<<HTML
\t\t\t\t</ul>
\t\t\t\t<script type='text/javascript'>
\t\t\t\t\t\$('MF__newphoto').observe('click', acp.members.newPhoto.bindAsEventListener( this, "app=members&amp;module=ajax&amp;section=editform&amp;do=show&amp;name=inline_form_new_photo&amp;member_id={$member['member_id']}" ) );
\t\t\t\t</script>
\t\t\t</div>
\t\t\t
\t\t\t<div class='sidebar_box'>
\t\t\t\t<ul>
\t\t\t\t\t<li><strong>{$this->lang->words['mem_joined']}:</strong> <span>{$member['_joined']}</span></li>
\t\t\t\t\t<li><strong>{$this->lang->words['mem_ip_address_f']}:</strong> <span><a href='{$this->settings['base_url']}&amp;module=members&amp;section=tools&amp;do=learn_ip&amp;ip={$member['ip_address']}' title='{$this->lang->words['mem_ip_title']}'>{$member['ip_address']}</a></span></li>
\t\t\t\t</ul>
\t\t\t</div>
\t\t</div>
\t\t<div style='clear: both;'></div>
\t</div>
HTML;
        $IPBHTML .= <<<HTML
\t<!-- PROFILE PANE-->
\t<div id='tab_MEMBERS_2_content'>
\t<table class='ipsTable double_pad'>
\t\t<tr>
\t\t\t<th colspan='2'>{$this->lang->words['sm_settings']}</th>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_timeoffset']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__time_offset'>{$form_time_offset}</span>
\t\t\t\t<div class='ipsPad_top_slimmer'>{$form_auto_dst} <label for='dst'>{$this->lang->words['sm_dst_auto']}</label></div>
\t\t\t\t<div class='ipsPad_top_slimmer' id='dst-manual'>{$form_dst_now} <label for='dstManual'>{$this->lang->words['sm_dst_now']}</label></div>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_langchoice']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__language'>{$form_language}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_skinchoice']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__skin'>
\t\t\t\t\t{$skinList}
\t\t\t\t</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_uploaderchoice']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__uploader'>
\t\t\t\t\t{$form_uploader}
\t\t\t\t</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_viewsig']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__view_sig'>{$form_view_sig}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['bw_disable_customization']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span>{$bw_disable_customization}</span>
\t\t\t\t<div class='ipsPad_top_slimmer'><input type="checkbox" name="removeCustomization" value="1" /> {$this->lang->words['remove_custom_stuff']}
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<th colspan='2'>{$this->lang->words['mf_t_tagging']}<!--You're it--></th>
\t\t</tr>
\t \t<tr>
\t \t\t<td class='field_title'><strong class='title'>{$this->lang->words['bw_disable_tagging']}</strong></td>
\t \t\t<td class='field_field'>
\t \t\t\t{$bw_disable_tagging}<br />
\t\t\t\t<span class='desctext'>{$this->lang->words['bw_disable_tagging_desc']}</span>
\t \t\t</td>
\t \t</tr>
\t \t<tr>
\t \t\t<td class='field_title'>
\t \t\t\t<strong class='title'>{$this->lang->words['bw_disable_prefixes']}</strong></td>
\t \t\t</td>
\t \t\t<td class='field_field'>
\t \t\t\t{$bw_disable_prefixes}<br />
\t\t\t\t<span class='desctext'>{$this->lang->words['bw_disable_prefixesm_desc']}</span>
\t \t\t</td>
\t \t</tr>
\t\t<tr>
\t\t\t<th colspan='2'>{$this->lang->words['sm_profile']}</th>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_bday']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__birthday'>{$_form_month} {$_form_day} {$_form_year}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['frm_no_status']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__frm_no_status'>{$bw_no_status_update}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_reputation']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__pp_reputation_points'>
\t\t\t\t\t{$form_reputation_points} 
\t\t\t\t</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_latest_visitors']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__visitors'>{$pp_visitors}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_enable_comments']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__profile_comments'>{$pp_enable_comments}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_approve_comments']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__comments_approve'>{$pp_comments_approve}</span>
\t\t\t</td>
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_friends_profile']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__profile_friends'>{$pp_enable_friends}</span>
\t\t\t</td>\t\t\t\t\t\t
\t\t</tr>
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_approve_friends']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='MF__friends_approve'>{$pp_friends_approve}</span>
\t\t\t</td>\t\t\t\t\t\t
\t\t</tr>
\t</table>
HTML;
        if (is_array($member['custom_fields']) and count($member['custom_fields'])) {
            $IPBHTML .= <<<HTML
\t<table class='ipsTable double_pad'>
\t\t<tr>
\t\t\t<th colspan='2'>{$this->lang->words['sm_custom']}</th>
\t\t</tr>
HTML;
            foreach ($member['custom_fields'] as $_id => $_data) {
                $IPBHTML .= <<<HTML
\t\t<tr>
\t\t\t<td class='field_title'><strong class='title'>{$_data['name']}</strong></td>
\t\t\t<td class='field_field'>
\t\t\t\t<span id='custom_fields_{$_id}'>{$_data['data']}</span>
\t\t\t</td>
\t\t</tr>
HTML;
            }
            $IPBHTML .= <<<HTML
\t</table>
HTML;
        }
        $IPBHTML .= <<<HTML
\t<!-- / CUSTOM FIELDS PANE -->
\t
\t<!-- SIGNATURE-->
\t<table class='ipsTable double_pad'>
\t\t<tr>
\t\t\t<th colspan='2'>{$this->lang->words['sm_sigtab']}</th>
\t\t</tr>
\t\t<tr>
\t\t\t<td>
\t\t\t\t<div class='tablerow1 has_editor'>
\t\t\t\t\t<div class='editor'>
\t\t\t\t\t\t{$member['signature_editor']}
\t\t\t\t\t\t<br />
\t\t\t\t\t\t<input type="checkbox" name="bw_html_sig" class="input_check" value="1" id='bw_html_sig' {$sigHtmlChecked} /> {$this->lang->words['sig_is_html']}
\t\t\t\t\t\t<script type="text/javascript">
\t\t\t\t\t\t\tipb.textEditor.bindHtmlCheckbox( \$('bw_html_sig') );
\t\t\t\t\t\t</script>
\t\t\t\t\t</div>
\t\t\t\t</div>
\t\t\t</td>
\t\t</tr>
\t</table>
\t<!-- / SIGNATURE-->
\t\t
\t<!-- ABOUT ME-->
\t<table class='ipsTable double_pad'>
\t\t<tr>
\t\t\t<th>{$this->lang->words['sm_abouttab']}</th>
\t\t</tr>
\t\t<tr>
\t\t\t<td>
\t\t\t\t<div class='tablerow1 has_editor'>
\t\t\t\t\t<div class='editor'>
\t\t\t\t\t\t{$member['aboutme_editor']}
\t\t\t\t\t</div>
\t\t\t\t</div>
\t\t\t</td>
\t\t</tr>
\t</table>
\t<!-- / ABOUT ME-->
\t
\t</div>
\t<div id='tab_MEMBERS_3_content'>
\t\t<table class='ipsTable double_pad'>
\t\t\t<tr>
\t\t\t\t<th colspan='2'>{$this->lang->words['memt_privacysettings']}</th>
\t\t\t</tr>
\t\t\t<tr>
\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_allowadmin']}</strong></td>
\t\t\t\t<td class='field_field'>
\t\t\t\t\t<span id='MF__allow_admin_mails'>{$form_allow_admin_mails}</span>
\t\t\t\t</td>
\t\t\t</tr>
\t\t\t<tr>
\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['sm_disablepm']}</strong></td>
\t\t\t\t<td class='field_field'>
\t\t\t\t\t<span id='MF__members_disable_pm'>{$form_members_disable_pm}</span>
\t\t\t\t</td>
\t\t\t</tr>
\t\t\t<tr>
\t\t\t\t<th colspan='2'>{$this->lang->words['memt_boardprefs']}</th>
\t\t\t</tr>
\t\t\t<tr>
\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['show_notification_popup']}</strong></td>
\t\t\t\t<td class='field_field'>
\t\t\t\t\t<span id='MF__xxx'>{$form_popup}</span>
\t\t\t\t</td>
\t\t\t</tr>
\t\t\t<tr>
\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['auto_track']}</strong></td>
\t\t\t\t<td class='field_field'>
\t\t\t\t\t<span id='MF__xxx'>{$form_autotrack}</span>
\t\t\t\t</td>
\t\t\t</tr>
\t\t\t<tr>
\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['auto_track_type']}</strong></td>
\t\t\t\t<td class='field_field'>
\t\t\t\t\t<span id='MF__xxx'>{$form_autotrackmthd}</span>
\t\t\t\t</td>
\t\t\t</tr>
\t\t</table>
HTML;
        $notifyGroups = array('topics_posts' => array('new_topic', 'new_reply', 'post_quoted'), 'status_updates' => array('reply_your_status', 'reply_any_status', 'friend_status_update'), 'profiles_friends' => array('profile_comment', 'profile_comment_pending', 'friend_request', 'friend_request_pending', 'friend_request_approve'), 'private_msgs' => array('new_private_message', 'reply_private_message', 'invite_private_message'));
        $IPBHTML .= <<<HTML
\t<table class='ipsTable double_pad'>
\t\t<tr>
\t\t\t<th width='20%'>&nbsp;</th>
\t\t\t<th width='20%' style='text-align: center'>{$this->lang->words['notify_type_email']}</th>
\t\t\t<th width='20%' style='text-align: center'>{$this->lang->words['notify_type_inline']}</th>
\t\t\t<th width='20%' style='text-align: center'>{$this->lang->words['notify_type_mobile']}</th>
\t\t</tr>
HTML;
        foreach ($notifyGroups as $groupKey => $group) {
            $IPBHTML .= <<<HTML
\t\t\t<th colspan='4'>
\t\t\t\t{$this->lang->words['notifytitle_' . $groupKey]}
\t\t\t</th>
HTML;
            foreach ($group as $key) {
                if ($notifications[$key]) {
                    $IPBHTML .= <<<HTML
\t\t\t\t\t<tr>
\t\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['notify__' . $key]}</strong></td>
\t\t\t\t\t\t<td align='center'>
HTML;
                    if (isset($notifications[$key]['options']['email'])) {
                        $_disabled = $notifications[$key]['disabled'] ? " disabled='disabled'" : '';
                        $_selected = (is_array($notifications[$key]['defaults']) and in_array('email', $notifications[$key]['defaults'])) ? " checked='checked'" : '';
                        $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' id='email_{$key}' name="config_{$key}[]" value="email"{$_selected}{$_disabled} />
HTML;
                    } else {
                        $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />
HTML;
                    }
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td align='center'>
HTML;
                    if (isset($notifications[$key]['options']['inline'])) {
                        $_disabled = $notifications[$key]['disabled'] ? " disabled='disabled'" : '';
                        $_selected = (is_array($notifications[$key]['defaults']) and in_array('inline', $notifications[$key]['defaults'])) ? " checked='checked'" : '';
                        $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' id='inline_{$key}' name="config_{$key}[]" value="inline"{$_selected}{$_disabled} />
HTML;
                    } else {
                        $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />
HTML;
                    }
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t</td>
\t\t\t\t\t\t<td align='center'>
HTML;
                    if (isset($notifications[$key]['options']['mobile'])) {
                        $_disabled = $notifications[$key]['disabled'] ? " disabled='disabled'" : '';
                        $_selected = (is_array($notifications[$key]['defaults']) and in_array('mobile', $notifications[$key]['defaults'])) ? " checked='checked'" : '';
                        $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' id='mobile_{$key}' name="config_{$key}[]" value="mobile"{$_selected}{$_disabled} />
HTML;
                    } else {
                        $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />
HTML;
                    }
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t</td>
\t\t\t\t\t</tr>
HTML;
                    $notifications[$key]['_done'] = 1;
                }
            }
        }
        $_lastApp = '';
        foreach ($notifications as $key => $_config) {
            if (!isset($_config['_done']) && $_config['_done'] != 1) {
                if ($_lastApp != $_config['app']) {
                    $_title = $_config['app'] == 'core' ? $this->lang->words['notifytitle_other'] : IPSLib::getAppTitle($_config['app']);
                    $_lastApp = $_config['app'];
                    $IPBHTML .= <<<HTML
\t\t\t<th colspan='4'>
\t\t\t\t{$_title}
\t\t\t</th>
HTML;
                }
                $IPBHTML .= <<<HTML
\t\t\t\t<tr>
\t\t\t\t\t<td class='field_title'><strong class='title'>{$this->lang->words['notify__' . $_config['key']]}</strong></td>
\t\t\t\t\t<td align='center'>
HTML;
                if (isset($_config['options']['email'])) {
                    $_disabled = $_config['disabled'] ? " disabled='disabled'" : '';
                    $_selected = (is_array($_config['defaults']) and in_array('email', $_config['defaults'])) ? " checked='checked'" : '';
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' id='email_{$key}' name="config_{$key}[]" value="email"{$_selected}{$_disabled} />
HTML;
                } else {
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />
HTML;
                }
                $IPBHTML .= <<<HTML
\t\t\t\t\t</td>
\t\t\t\t\t<td align='center'>
HTML;
                if (isset($_config['options']['inline'])) {
                    $_disabled = $_config['disabled'] ? " disabled='disabled'" : '';
                    $_selected = (is_array($_config['defaults']) and in_array('inline', $_config['defaults'])) ? " checked='checked'" : '';
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t<input type='checkbox' class='input_check' id='inline_{$key}' name="config_{$key}[]" value="inline"{$_selected}{$_disabled} />
HTML;
                } else {
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />
HTML;
                }
                $IPBHTML .= <<<HTML
\t\t\t\t\t</td>
\t\t\t\t\t<td align='center'>
HTML;
                if (isset($_config['options']['mobile'])) {
                    $_disabled = $_config['disabled'] ? " disabled='disabled'" : '';
                    $_selected = (is_array($_config['defaults']) and in_array('mobile', $_config['defaults'])) ? " checked='checked'" : '';
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t<input type='checkbox' class='input_check' id='mobile_{$key}' name="config_{$key}[]" value="mobile"{$_selected}{$_disabled} />
HTML;
                } else {
                    $IPBHTML .= <<<HTML
\t\t\t\t\t\t\t<input type='checkbox' class='input_check' name='' disabled='disabled' />
HTML;
                }
                $IPBHTML .= <<<HTML
\t\t\t\t\t</td>
\t\t\t\t</tr>
HTML;
            }
        }
        $IPBHTML .= <<<HTML
\t</table>
</div>
HTML;
        // Got blocks from other apps?
        $IPBHTML .= implode("\n", $content['area']);
        $IPBHTML .= <<<HTML
</div>
\t<div class='acp-actionbar'>
\t\t<input class='button primary' type='submit' value='{$this->lang->words['sm_savebutton']}' />
\t</div>
</div>

<script type='text/javascript'>
\tjQ("#tabstrip_members").ipsTabBar({tabWrap: "#tabstrip_members_content"});
</script>

</form>
</div>

<script type='text/javascript'>\t
\tif( \$('MF__removephoto') )
\t{
\t\t\$('MF__removephoto').observe( 'click', acp.members.removePhoto.bindAsEventListener( this, '{$member['member_id']}' ) );
\t}
</script>

<script type="text/javascript">
function toggle_dst()
{
\tif ( \$( 'dst' ) )
\t{
\t\tif ( \$( 'dst' ).checked ){
\t\t\t\$( 'dst-manual' ).hide();
\t\t} else {
\t\t\t\$( 'dst-manual' ).show();
\t\t}
\t}
}
toggle_dst();
</script>
HTML;
        return $IPBHTML;
    }
Пример #18
0
 /**
  * Main class entry point
  *
  * @param	object		ipsRegistry reference
  * @return	@e void		[Outputs to screen]
  */
 public function doExecute(ipsRegistry $registry)
 {
     //-----------------------------------------
     // INIT
     //-----------------------------------------
     $_thisNav = array();
     //-----------------------------------------
     // Load language
     //-----------------------------------------
     $this->registry->getClass('class_localization')->loadLanguageFile(array('public_usercp'));
     //-----------------------------------------
     // Logged in?
     //-----------------------------------------
     if (!$this->memberData['member_id']) {
         $this->registry->getClass('output')->silentRedirect($this->settings['base_url'] . '&app=core&module=global&section=login&do=form');
         exit;
     }
     //-----------------------------------------
     // Make sure they're clean
     //-----------------------------------------
     $this->request['tab'] = IPSText::alphanumericalClean($this->request['tab']);
     $this->request['area'] = IPSText::alphanumericalClean($this->request['area']);
     //-----------------------------------------
     // Set up some basics...
     //-----------------------------------------
     $_TAB = $this->request['tab'] ? $this->request['tab'] : 'core';
     $_AREA = $this->request['area'] ? $this->request['area'] : 'settings';
     $_DO = $this->request['do'] ? $this->request['do'] : 'show';
     $_FUNC = $_DO == 'show' ? 'showForm' : ($_DO == 'save' ? 'saveForm' : $_DO);
     $tabs = array();
     $errors = array();
     //-----------------------------------------
     // Got a plug in?
     //-----------------------------------------
     IPSLib::loadInterface('interface_usercp.php');
     $EXT_DIR = IPSLib::getAppDir($_TAB) . '/extensions';
     if (!is_file($EXT_DIR . '/usercpForms.php')) {
         $this->registry->getClass('output')->showError('usercp_bad_tab', 10147);
         exit;
     }
     //-----------------------------------------
     // Cycle through applications and load
     // usercpForm extensions
     //-----------------------------------------
     foreach (IPSLib::getEnabledApplications() as $app_dir => $app_data) {
         $ext_dir = IPSLib::getAppDir($app_dir) . '/extensions';
         // Make sure the extension exists
         if (!is_file($ext_dir . '/usercpForms.php')) {
             continue;
         }
         $__class = IPSLib::loadLibrary($ext_dir . '/usercpForms.php', 'usercpForms_' . $app_dir, $app_dir);
         if (!class_exists($__class)) {
             continue;
         }
         $_usercp_module = new $__class();
         /* Block based on version to prevent old files showing up/causing an error */
         if (!$_usercp_module->version or $_usercp_module->version < 32) {
             continue;
         }
         $_usercp_module->makeRegistryShortcuts($this->registry);
         if (is_callable(array($_usercp_module, 'init'))) {
             $_usercp_module->init();
             /* Set default area? */
             if ($_TAB == $app_dir and !isset($_REQUEST['area'])) {
                 if (isset($_usercp_module->defaultAreaCode)) {
                     $this->request['area'] = $_AREA = $_usercp_module->defaultAreaCode;
                 }
             }
         }
         if (is_callable(array($_usercp_module, 'getLinks'))) {
             $tabs[$app_dir]['_menu'] = $_usercp_module->getLinks();
             /* Got any links? */
             if (!is_array($tabs[$app_dir]['_menu']) || !count($tabs[$app_dir]['_menu'])) {
                 unset($tabs[$app_dir]);
                 continue;
             }
             /* Get title */
             $tabs[$app_dir]['_name'] = $_usercp_module->tab_name ? $_usercp_module->tab_name : IPSLib::getAppTitle($app_dir);
             /* Add in 'last' element */
             $tabs[$app_dir]['_menu'][count($tabs[$app_dir]['_menu']) - 1]['last'] = 1;
             /* This nav? */
             if (!count($_thisNav) and $app_dir == $_TAB) {
                 foreach ($tabs[$app_dir]['_menu'] as $_navData) {
                     if ($_navData['url'] == 'area=' . $_AREA) {
                         $_thisNav = array('app=core&amp;module=usercp&amp;tab=' . $_TAB . '&amp;area=' . $_AREA, $_navData['title']);
                     }
                 }
             }
         }
     }
     //-----------------------------------------
     // Set up basic navigation
     //-----------------------------------------
     $this->_nav[] = array($this->lang->words['t_title'], '&amp;app=core&amp;module=usercp');
     $this->_nav[] = array($this->lang->words['tab__' . $_TAB] ? $this->lang->words['tab__' . $_TAB] : IPSLib::getAppTitle($_TAB), '&amp;app=core&amp;module=usercp&amp;tab=' . $_TAB);
     if (isset($_thisNav[0])) {
         $this->_nav[] = array($_thisNav[1], $_thisNav[0]);
     }
     //-----------------------------------------
     // Begin initilization routine for extension
     //-----------------------------------------
     $classToLoad = IPSLib::loadLibrary($EXT_DIR . '/usercpForms.php', 'usercpForms_' . $_TAB, $_TAB);
     $usercp_module = new $classToLoad();
     $usercp_module->makeRegistryShortcuts($this->registry);
     $usercp_module->init();
     if ($_DO == 'saveForm' || $_DO == 'showForm' and !is_callable(array($usercp_module, $_FUNC))) {
         $this->registry->getClass('output')->showError('usercp_bad_tab', 10148, true);
         exit;
     }
     //-----------------------------------------
     // Run it...
     //-----------------------------------------
     if ($_FUNC == 'showForm') {
         //-----------------------------------------
         // Facebook email
         //-----------------------------------------
         $html = $usercp_module->showForm($_AREA);
     } else {
         if ($_FUNC == 'saveForm') {
             //-----------------------------------------
             // Check secure key...
             //-----------------------------------------
             if ($this->request['secure_hash'] != $this->member->form_hash) {
                 $html = $usercp_module->showForm($_AREA);
                 $errors[] = $this->lang->words['securehash_not_secure'];
             } else {
                 $errors = $usercp_module->saveForm($_AREA);
                 $do = $usercp_module->do_url ? $usercp_module->do_url : 'show';
                 if (is_array($errors) and count($errors)) {
                     $html = $usercp_module->showForm($_AREA, $errors);
                 } else {
                     if ($usercp_module->ok_message) {
                         $this->registry->getClass('output')->redirectScreen($usercp_module->ok_message, $this->settings['base_url'] . 'app=' . IPS_APP_COMPONENT . '&module=usercp&tab=' . $_TAB . '&area=' . $_AREA . '&do=' . $do . '&saved=1', 1);
                     } else {
                         $this->registry->getClass('output')->silentRedirect($this->settings['base_url_with_app'] . 'module=usercp&tab=' . $_TAB . '&area=' . $_AREA . '&do=' . $do . '&saved=1' . '&_r=' . time());
                     }
                 }
             }
         } else {
             if (!is_callable(array($usercp_module, 'runCustomEvent'))) {
                 $html = $usercp_module->showForm($_AREA);
                 $errors[] = $this->lang->words['called_invalid_function'];
             } else {
                 $html = $usercp_module->runCustomEvent($_AREA);
             }
         }
     }
     //-----------------------------------------
     // If you've run a custom event, may need to
     // reset the "area" to highlight the menu correctly
     //-----------------------------------------
     if (is_callable(array($usercp_module, 'resetArea'))) {
         $_AREA = $usercp_module->resetArea($_AREA);
     }
     //-----------------------------------------
     // Wrap form and show
     //-----------------------------------------
     $template = $this->registry->getClass('output')->getTemplate('ucp')->userCPTemplate($_TAB, $html, $tabs, $_AREA, $errors, $usercp_module->hide_form_and_save_button, $usercp_module->uploadFormMax);
     //-----------------------------------------
     // Pass to CP output hander
     //-----------------------------------------
     $this->registry->getClass('output')->setTitle($this->_pageTitle ? "{$this->lang->words['pagetitle_bit']} : " . $this->_pageTitle . ' - ' . $this->settings['board_name'] : "{$this->lang->words['pagetitle_bit']} - " . $this->settings['board_name']);
     $this->registry->getClass('output')->addContent($template);
     if (is_array($this->_nav) and count($this->_nav)) {
         foreach ($this->_nav as $_nav) {
             $this->registry->getClass('output')->addNavigation($_nav[0], $_nav[1]);
         }
     }
     if (is_array($usercp_module->_nav) and count($usercp_module->_nav)) {
         foreach ($usercp_module->_nav as $_nav) {
             $this->registry->getClass('output')->addNavigation($_nav[0], $_nav[1]);
         }
     }
     $this->registry->getClass('output')->sendOutput();
 }
Пример #19
0
 /**
  * Work out page title
  */
 protected function makeLinkText($qs)
 {
     $matches = array();
     if ($qs == '') {
         return 'Board index';
     } elseif (preg_match('/showtopic\\=([0-9]+)/', $qs, $matches)) {
         return 'Topic: ' . $this->getContentTitle('title', 'topics', 'tid = ' . intval($matches[1]));
     } elseif (preg_match('/showforum\\=([0-9]+)/', $qs, $matches)) {
         return 'Forum: ' . $this->getContentTitle('name', 'forums', 'id = ' . intval($matches[1]));
     } elseif (preg_match('/showuser\\=([0-9]+)/', $qs, $matches)) {
         return 'User: '******'members_display_name', 'members', 'member_id = ' . intval($matches[1]));
     } elseif (preg_match('/entry\\=([0-9]+)/', $qs, $matches)) {
         return 'Blog Entry: ' . $this->getContentTitle('entry_name', 'blog_entries', 'entry_id = ' . intval($matches[1]));
     } elseif (preg_match('/blogid\\=([0-9]+)/', $qs, $matches)) {
         return 'Blog: ' . $this->getContentTitle('blog_name', 'blog_blogs', 'blog_id = ' . intval($matches[1]));
     } elseif (preg_match('/showfile\\=([0-9]+)/', $qs, $matches)) {
         return 'Download: ' . $this->getContentTitle('file_name', 'downloads_files', 'file_id = ' . intval($matches[1]));
     } elseif (preg_match('/app=downloads(.*)showcat\\=([0-9]+)/', $qs, $matches)) {
         return 'Download: ' . $this->getContentTitle('cname', 'downloads_categories', 'cid = ' . intval($matches[2]));
     } elseif (preg_match('/app=sitemap(.*)sitemap\\=(.*)$/', $qs, $matches)) {
         return 'Sitemap: ' . IPSText::parseCleanValue($matches[2]);
     } elseif (preg_match('/app=seo(.*)sitemap\\=(.*)$/', $qs, $matches)) {
         return 'Sitemap: ' . IPSText::parseCleanValue($matches[2]);
     } elseif (preg_match('/app=ipseo(.*)sitemap\\=(.*)$/', $qs, $matches)) {
         return 'Sitemap: ' . IPSText::parseCleanValue($matches[2]);
     } else {
         foreach (ipsRegistry::$applications as $appDir => $appData) {
             if (preg_match("/app\\={$appDir}/", $qs)) {
                 return IPSLib::getAppTitle($appDir, true) ? IPSLib::getAppTitle($appDir, true) : IPSLib::getAppTitle($appDir);
             }
         }
     }
     return 'Unknown';
 }
 /**
  * Main class entry point
  *
  * @access	public
  * @param	object		ipsRegistry reference
  * @return	void		[Outputs to screen]
  */
 public function doExecute(ipsRegistry $registry)
 {
     //-----------------------------------------
     // INIT
     //-----------------------------------------
     $_thisNav = array();
     //-----------------------------------------
     // Load language
     //-----------------------------------------
     $this->registry->getClass('class_localization')->loadLanguageFile(array('public_usercp'));
     //-----------------------------------------
     // Logged in?
     //-----------------------------------------
     if (!$this->memberData['member_id']) {
         $this->registry->getClass('output')->silentRedirect($this->settings['base_url'] . '&app=core&module=global&section=login&do=form');
         exit;
     }
     //-----------------------------------------
     // Make sure they're clean
     //-----------------------------------------
     $this->request['tab'] = IPSText::alphanumericalClean($this->request['tab']);
     $this->request['area'] = IPSText::alphanumericalClean($this->request['area']);
     //-----------------------------------------
     // Set up some basics...
     //-----------------------------------------
     $_TAB = $this->request['tab'] ? $this->request['tab'] : 'core';
     $_AREA = $this->request['area'] ? $this->request['area'] : 'settings';
     $_DO = $this->request['do'] ? $this->request['do'] : 'show';
     $_FUNC = $_DO == 'show' ? 'showForm' : ($_DO == 'save' ? 'saveForm' : $_DO);
     $tabs = array();
     $errors = array();
     //-----------------------------------------
     // Got a plug in?
     //-----------------------------------------
     require_once IPS_ROOT_PATH . 'sources/interfaces/interface_usercp.php';
     $_FILE = IPSLib::getAppDir($_TAB) . '/extensions/usercpForms.php';
     $_CLASS = 'usercpForms_' . $_TAB;
     if (!file_exists($_FILE)) {
         $this->registry->getClass('output')->showError('usercp_bad_tab', 10147);
         exit;
     }
     //-----------------------------------------
     // Grab tabs
     //-----------------------------------------
     foreach (ipsRegistry::$applications as $app_dir => $app_data) {
         if (IPSLib::appIsInstalled($app_dir)) {
             $__file = IPSLib::getAppDir($app_dir) . '/extensions/usercpForms.php';
             $__class = 'usercpForms_' . $app_dir;
             if (file_exists($__file)) {
                 require_once $__file;
                 $_usercp_module = new $__class();
                 $_usercp_module->makeRegistryShortcuts($this->registry);
                 if (is_callable(array($_usercp_module, 'init'))) {
                     $_usercp_module->init();
                     /* Set default area? */
                     if ($_TAB == $app_dir and !isset($_REQUEST['area'])) {
                         if (isset($_usercp_module->defaultAreaCode)) {
                             $this->request['area'] = $_AREA = $_usercp_module->defaultAreaCode;
                         }
                     }
                 }
                 if (is_callable(array($_usercp_module, 'getLinks'))) {
                     $tabs[$app_dir]['_name'] = $_usercp_module->tab_name ? $_usercp_module->tab_name : IPSLib::getAppTitle($app_dir);
                     $tabs[$app_dir]['_menu'] = $_usercp_module->getLinks();
                     if (!$tabs[$app_dir]['_menu']) {
                         unset($tabs[$app_dir]);
                     }
                     /* Add in 'last' element */
                     $tabs[$app_dir]['_menu'][count($tabs[$app_dir]['_menu']) - 1]['last'] = 1;
                     /* This nav? */
                     if (!count($_thisNav) and $app_dir == $_TAB) {
                         foreach ($tabs[$app_dir]['_menu'] as $_navData) {
                             if ($_navData['url'] == 'area=' . $_AREA) {
                                 $_thisNav = array('app=core&amp;module=usercp&amp;tab=' . $_TAB . '&amp;area=' . $_AREA, $_navData['title']);
                             }
                         }
                     }
                 }
             }
         }
     }
     //-----------------------------------------
     // Set up basic navigation
     //-----------------------------------------
     $this->_nav[] = array($this->lang->words['t_title'], '&amp;app=core&amp;module=usercp');
     if (isset($_thisNav[0])) {
         $this->_nav[] = array($_thisNav[1], $_thisNav[0]);
     }
     //-----------------------------------------
     // Load it...
     //-----------------------------------------
     require_once $_FILE;
     $usercp_module = new $_CLASS();
     $usercp_module->makeRegistryShortcuts($this->registry);
     $usercp_module->init();
     if ($_DO == 'saveForm' || $_DO == 'showForm' and !is_callable(array($usercp_module, $_FUNC))) {
         $this->registry->getClass('output')->showError('usercp_bad_tab', 10148, true);
         exit;
     }
     //-----------------------------------------
     // Run it...
     //-----------------------------------------
     if ($_FUNC == 'showForm') {
         //-----------------------------------------
         // Facebook email
         //-----------------------------------------
         //@facebook concession
         if (IPSLib::fbc_enabled() === TRUE) {
             if (!$this->memberData['fb_emailallow'] and strstr($this->memberData['email'], '@proxymail.facebook.com')) {
                 require_once IPS_ROOT_PATH . 'sources/classes/facebook/connect.php';
                 $fb = new facebook_connect($this->registry);
                 try {
                     $fb->testConnectSession();
                     $result = $fb->users_hasAppPermission('email');
                     IPSMember::save($this->memberData['member_id'], array('core' => array('fb_emailallow' => intval($result))));
                 } catch (Exception $error) {
                 }
             }
         }
         $html = $usercp_module->showForm($_AREA);
     } else {
         if ($_FUNC == 'saveForm') {
             //-----------------------------------------
             // Check secure key...
             //-----------------------------------------
             if ($this->request['secure_hash'] != $this->member->form_hash) {
                 $html = $usercp_module->showForm($_AREA);
                 $errors[] = $this->lang->words['securehash_not_secure'];
             } else {
                 $errors = $usercp_module->saveForm($_AREA);
                 $do = $usercp_module->do_url ? $usercp_module->do_url : 'show';
                 if (is_array($errors) and count($errors)) {
                     $html = $usercp_module->showForm($_AREA, $errors);
                 } else {
                     if ($usercp_module->ok_message) {
                         $this->registry->getClass('output')->redirectScreen($usercp_module->ok_message, $this->settings['base_url'] . 'app=' . IPS_APP_COMPONENT . '&module=usercp&tab=' . $_TAB . '&area=' . $_AREA . '&do=' . $do . '&saved=1', 1);
                     } else {
                         $this->registry->getClass('output')->silentRedirect($this->settings['base_url_with_app'] . 'module=usercp&tab=' . $_TAB . '&area=' . $_AREA . '&do=' . $do . '&saved=1' . '&_r=' . time());
                     }
                 }
             }
         } else {
             if (!is_callable(array($usercp_module, 'runCustomEvent'))) {
                 $html = $usercp_module->showForm($_AREA);
                 $errors[] = $this->lang->words['called_invalid_function'];
             } else {
                 $html = $usercp_module->runCustomEvent($_AREA);
             }
         }
     }
     //-----------------------------------------
     // If you've run a custom event, may need to
     // reset the "area" to highlight the menu correctly
     //-----------------------------------------
     if (is_callable(array($usercp_module, 'resetArea'))) {
         $_AREA = $usercp_module->resetArea($_AREA);
     }
     //-----------------------------------------
     // Wrap form and show
     //-----------------------------------------
     $template = $this->registry->getClass('output')->getTemplate('ucp')->userCPTemplate($_TAB, $html, $tabs, $_AREA, $errors, $usercp_module->hide_form_and_save_button, $usercp_module->uploadFormMax);
     //-----------------------------------------
     // Pass to CP output hander
     //-----------------------------------------
     $this->registry->getClass('output')->setTitle($this->_pageTitle ? $this->settings['board_name'] . " {$this->lang->words['pagetitle_bit']} : " . $this->_pageTitle : $this->settings['board_name'] . " {$this->lang->words['pagetitle_bit']}");
     $this->registry->getClass('output')->addContent($template);
     if (is_array($this->_nav) and count($this->_nav)) {
         foreach ($this->_nav as $_nav) {
             $this->registry->getClass('output')->addNavigation($_nav[0], $_nav[1]);
         }
     }
     if (is_array($usercp_module->_nav) and count($usercp_module->_nav)) {
         foreach ($usercp_module->_nav as $_nav) {
             $this->registry->getClass('output')->addNavigation($_nav[0], $_nav[1]);
         }
     }
     $this->registry->getClass('output')->sendOutput();
 }
Пример #21
0
 function searchResultsWrapper($results, $sortDropDown, $sortIn, $pagination, $total, $showing, $search_term, $url_string, $current_key, $removed_search_terms = array(), $limited = 0, $wasLimited = false, $search_tags)
 {
     $IPBHTML = "";
     if (IPSLib::locationHasHooks('skin_search', $this->_funcHooks['searchResultsWrapper'])) {
         $count_7b018359a3195e8a366642bc7a0440b2 = is_array($this->functionData['searchResultsWrapper']) ? count($this->functionData['searchResultsWrapper']) : 0;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['results'] = $results;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['sortDropDown'] = $sortDropDown;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['sortIn'] = $sortIn;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['pagination'] = $pagination;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['total'] = $total;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['showing'] = $showing;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['search_term'] = $search_term;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['url_string'] = $url_string;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['current_key'] = $current_key;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['removed_search_terms'] = $removed_search_terms;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['limited'] = $limited;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['wasLimited'] = $wasLimited;
         $this->functionData['searchResultsWrapper'][$count_7b018359a3195e8a366642bc7a0440b2]['search_tags'] = $search_tags;
     }
     $i = 0;
     if (IPSLib::appIsSearchable('forums', 'search')) {
         $i++;
     }
     if (IPSLib::appIsSearchable('members', 'search')) {
         $i++;
     }
     if (IPSLib::appIsInstalled('blog') && IPSLib::appIsSearchable('blog', 'search')) {
         $i++;
     }
     if (IPSLib::appIsInstalled('gallery') && IPSLib::appIsSearchable('gallery', 'search')) {
         $i++;
     }
     switch ($i) {
         case 3:
             $classname = 'three_';
             break;
         case 4:
             $classname = 'four_';
             break;
         case 2:
             $classname = 'two_';
             break;
         default:
             $classname = 'one_';
             break;
     }
     $IPBHTML .= "<div class='master_list'>\n\t<h2>" . (($total > 0 and $search_term != '') ? "{$total} " : "") . "{$this->lang->words['search_results']}</h2>\n\t\n\t<div class='ipsFilterBar {$classname}filters clearfix' id='vnc_filters'>\n\t\t<ul>\n\t\t\t" . (!$search_tags && IPSLib::appIsSearchable('forums', 'search') || $search_tags && IPSLib::appIsSearchable('forums', 'tags') ? "<li " . ($this->request['search_app'] == 'forums' ? "class='selected'" : "") . "><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$url_string}&amp;search_app=forums", "public", ''), "", "") . "'>" . IPSLib::getAppTitle('forums') . "</a></li>" : "") . "" . (!$search_tags && IPSLib::appIsSearchable('members', 'search') || $search_tags && IPSLib::appIsSearchable('members', 'tags') ? "<li " . ($this->request['search_app'] == 'members' ? "class='selected'" : "") . "><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$url_string}&amp;search_app=members", "public", ''), "", "") . "'>" . IPSLib::getAppTitle('members') . "</a></li>" : "") . "" . (IPSLib::appIsInstalled('blog') && IPSLib::appIsSearchable('blog', 'search') ? "<li " . ($this->request['search_app'] == 'blog' ? "class='selected'" : "") . "><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$url_string}&amp;search_app=blog", "public", ''), "", "") . "'>" . IPSLib::getAppTitle('blog') . "</a></li>" : "") . "" . (IPSLib::appIsInstalled('gallery') && IPSLib::appIsSearchable('gallery', 'search') ? "<li " . ($this->request['search_app'] == 'gallery' ? "class='selected'" : "") . "><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("{$url_string}&amp;search_app=gallery", "public", ''), "", "") . "'>" . IPSLib::getAppTitle('gallery') . "</a></li>" : "") . "\n\t\t</ul>\n\t</div>\n\t" . (($total > 0 and $search_term != '') ? "\n\t\t<!--<div class='message'>\n\t\t\t{$this->lang->words['your_search']} <em><strong>{$search_term}</strong></em> {$this->lang->words['your_search_returned']} \n\t\t</div>-->\n\t" : "") . "\n\t" . ($pagination ? "\n\t\t<div class='controls'>\n\t\t\t<div class='buttons'>\n\t\t\t\t{$pagination}\n\t\t\t</div>\n\t\t</div>\n\t" : "") . "\n\t\n\t" . ($total ? "\n\t\t{$results}\n\t" : "<div class='row no_messages'>{$this->lang->words['no_results_found']}" . ($search_term ? " {$this->lang->words['no_results_found_for']} '{$search_term}'" : "") . ".</div>") . "\n\t\n\t" . ($pagination ? "\n\t\t<div class='controls'>\n\t\t\t<div class='buttons'>\n\t\t\t\t{$pagination}\n\t\t\t</div>\n\t\t</div>\n\t" : "") . "\n</div>";
     return $IPBHTML;
 }
 function __f__5a7ebe6bc5183db0c5626ed395e2e65d($results, $pagination, $total, $member, $asForum)
 {
     $_ips___x_retval = '';
     foreach ($this->registry->getApplications() as $app) {
         $_ips___x_retval .= "\n\t\t" . (IPSSearchIndex::appIsSearchable($app['app_directory']) && !in_array($app['app_directory'], array('core', 'members')) ? "" . ($this->request['search_app'] == $app['app_directory'] ? "\n\t\t\t\t<li class='active'><strong>" . IPSLib::getAppTitle($app['app_directory']) . "</strong></li>\n\t\t\t" : "\t\t\t\t\n\t\t\t\t<li><a href='" . $this->registry->getClass('output')->formatUrl($this->registry->getClass('output')->buildUrl("app=core&amp;module=search&amp;do=user_posts&amp;mid={$this->request['mid']}&amp;search_filter_app[{$app['app_directory']}]=1&amp;view_by_title={$this->request['view_by_title']}", 'public', ''), "", "") . "'>" . IPSLib::getAppTitle($app['app_directory']) . "</a></li>\n\t\t\t") . "" : "") . "\n\t\n";
     }
     $_ips___x_retval .= '';
     return $_ips___x_retval;
 }