Gabytzu Gaby Posted September 23, 2015 Report Posted September 23, 2015 Ieri seara forumu nu avea nimica , acum dimineata cand intru imi apare pagina albaAm cautat rezolvati dar nu am reusit din cate am inteles este de la initdata.phpAcp: http://city-mega.ro/forum/admin/
Dog Posted September 23, 2015 Report Posted September 23, 2015 am incercat sa intru pe acces site si este functional dar cred ca doar in admin nu poti intra daca nu ai rezolvat iti zic in felul urmator spui ca ieri seara nu a avut nimic iar acum nu iti merge pai ieri seara cu siguranta ai lucrat in el si ai adaugat ceva un hooks care forumul nu il accepta dezinstaleaza complect ultimul Hooks instalat si iti va functiona.Atentie! sa iti amintesti bine care a fost ultimul Hooks instalat si il dezinstalezi complect retine trebuie scos afara complect ca au mai fost probleme de genul asta dar respectivi spuneau lam scos afara de tot dar tot mai era ceva din el nedezinstalat. 1
Gabytzu Gaby Posted September 23, 2015 Author Report Posted September 23, 2015 Am zis clar ca nu ma pot loga acp pentru ca e alba pagina
Dog Posted September 23, 2015 Report Posted September 23, 2015 OK deci amintesteti ce ai instalat ultima data si scoatele afara din ftp nu din admin cp ca nu poti intra iar pana faci asta da si un tichet celor de la care ai gazduit domeniul si spunele despre acceasta problema dar spunele si unde si ce ai facut ultima data de nu iti mai merge
Gabytzu Gaby Posted September 23, 2015 Author Report Posted September 23, 2015 (edited) Pe forum apare database errorhttp://city-mega.ro/forum/ Edited September 23, 2015 by Gabytzu Gaby
Moderators gadeas Posted September 23, 2015 Moderators Report Posted September 23, 2015 Vorbeste cu firma hosting, prin magie nu apar probleme ( doar daca mai sinteti 10 persoane cu acces la acp ). PHP Developer - Not available for freelancing right now Daca ai de gand sa postezi la categoria IPB, nu uita sa citesti regulamentul: Link regulament
Dog Posted September 27, 2015 Report Posted September 27, 2015 da vorbeste cu cei la firma de hosting deoarece pagina acceasta nici macar pe google nu am gasito si, sar-putea sa fie ichis siteul, sau intra direct in ftp si scoate exact ce ai bagat ultima data cand siteul iti functiona, sigur ai bagat o aplicatie si nu iti mai merge nimic
+Kenzzo Posted September 30, 2015 Report Posted September 30, 2015 Intra in:FTP -> admin -> skin_cp -> cp_skin_global.php [/code] si schimba tot fisieru: [code]cp_skin.global.php [/code]cu acesta:[spoiler]<?php /**  * <pre>  * Invision Power Services  * IP.Board v3.4.6  * Admin CP global skin templates  * Last Updated: $Date: 2013-05-20 18:47:20 -0400 (Mon, 20 May 2013) $  * </pre>  *  * @author       $Author: bfarber $  * @copyright   (c) 2001 - 2009 Invision Power Services, Inc.  * @license      http://www.invisionpower.com/company/standards.php#license  * @package      IP.Board  * @link      http://www.invisionpower.com  * @version      $Rev: 12262 $  * @since      3.0.0  *  */  class cp_skin_global extends output { /**  * Prevent our main destructor being called by this class  *  * @access   public  * @return   @e void  */ public function __destruct() { } /**  * Redirector page  *  * @param   string   $url   URL to send to  * @param   string   $text   Text to display  * @return   @e string  */ public function temporaryRedirect( $url, $text, $time=2 ) { $time = floatval( $time ) * 1000; $IPBHTML = ""; //--starthtml--// $url   = str_replace( '&', '&', $url ); $IPBHTML .= <<<EOF <div class='information-box'>{$text}</div> <script type='text/javascript'> jQ(document).ready(function() {    setTimeout( "window.location = '{$url}';", {$time} ); }); </script> EOF; //--endhtml--// return $IPBHTML; } /**  * manageBookmarks  *  * @param   array   Bookmarks  * @return   @e string  */ public function manageBookmarks( $bookmarks ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <h3>{$this->lang->words['bookmarks_title']}</h3> <div class='ipsPad fixed_inner'> <div class='right desctext'>{$this->lang->words['bookmarks_make_home']}</div> <br /> <ul id='sortable'> EOF; foreach( $bookmarks as $id => $data ) {    $url = IPSText::truncate( $data['bookmark_url'], 42 );    $sel = ( $data['bookmark_home'] ) ? ' checked="checked" ' : '';    $pos = intval( $data['bookmark_pos'] );       $IPBHTML .= <<<EOF    <li data-rowid='{$id}' id='bookmark_{$id}'>       <span class="draghandle"></span>       <div class='right'>          <input type='checkbox' data-cboxid='{$id}' name='bookmarkHome[{$id}]' value='{$id}' {$sel}>          <img src="{$this->settings['skin_acp_url']}/images/aff_cross.png" data-deleteid="{$id}" class='clickable' />       </div>       <input type='text' class='input_text' size='60' data-inputname="{$id}" name='bookmarkName[{$id}]' value='{$data['bookmark_title']}' />       <span class='desctext'><a href="{$this->settings['_base_url']}&{$data['bookmark_url']}" target="_blank">{$url}</a></span>    </li> EOF; } $IPBHTML .= <<<EOF </ul> <div class='ipsPad'><input type='button' id='saveBookmarksManage' class='realbutton right' value='{$this->lang->words['bookmarks_save']}' /></div> </div> <script type="text/javascript"> (function($){    $("#sortable").sortable(); }(jQuery)); </script> EOF; //--endhtml--// return $IPBHTML; } //=========================================================================== // <ips:ips_editor:desc::trigger:> //=========================================================================== function editor($formField='post', $content='', $options=array(), $autoSaveData=array() ) { $IPBHTML = ""; //--starthtml--// $options['type'] = ( $options['type'] ) ? $options['type'] : "''"; $options['minimize']      = intval( $options['minimize'] ); $options['smilies']       = IPSText::jsonEncodeForTemplate( is_array($options['smilies']) ? $options['smilies'] : array() ); $options['noSmilies']     = intval( $options['noSmilies'] ); $bbcode = IPSLib::fetchBbcodeAsJson(); $defaultSkin = $this->registry->output->_fetchSkinByDefault(); if ( ! $this->_editorJsLoaded ) {    $this->_editorJsLoaded = true;       if ( defined("CK_LOAD_SOURCE") AND CK_LOAD_SOURCE )    {       $IPBHTML .= <<<EOF       <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/ckeditor/ckeditor_source.js"></script> EOF;    }    else    {       $IPBHTML .= <<<EOF       <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/ckeditor/ckeditor.js"></script> EOF;    }       $CmdVAsPlainText = ( $this->memberData['bw_paste_plain'] ) ? 'true' : 'false';       $IPBHTML .= <<<EOF <script type="text/javascript" src='{$this->settings['cache_dir']}lang_cache/{$this->lang->lang_id}/ipb.lang.js' charset='{$this->settings['gb_char_set']}'></script> <script type="text/javascript" src="{$this->settings['js_base_url']}js/ips.textEditor.js"></script> <script type="text/javascript" src="{$this->settings['js_base_url']}js/ips.textEditor.bbcode.js"></script> <script type="text/javascript">    /* Dynamic items */    CKEDITOR.config.IPS_BBCODE         = {$bbcode};    CKEDITOR.config.IPS_BBCODE_IMG_URL = "{$this->settings['js_base_url']}style_extra/bbcode_icons";    CKEDITOR.config.IPS_BBCODE_BUTTONS = [];       /* Has to go before config load */    var IPS_smiley_path         = "{$this->settings['emoticons_url']}/";    var IPS_smiles            = {$options['smilies']};    var IPS_remove_plugins     = [];    var IPS_extra_plugins      = [];    /* Load our configuration */    CKEDITOR.config.customConfig = '{$this->settings['js_base_url']}js/3rd_party/ckeditor/ips_config.js';       /* Override with prefs */    CKEDITOR.config.CmdVAsPlainText = {$CmdVAsPlainText}; </script> <style type="text/css"> @import url("{$this->settings['css_base_url']}style_css/css_{$defaultSkin}/ipb_ckeditor.css"); </style> EOF; } $options['noSmilies'] = intval($options['noSmilies']); $options['isRte']    = intval($options['isRte']); $options['isHtml']    = intval($options['isHtml']); $options['autoSaveKey'] = $options['autoSaveKey'] ? $options['autoSaveKey'] : ''; $jsonEncoded = IPSText::jsonEncodeForTemplate( $autoSaveData ); $IPBHTML .= <<<EOF <input type='hidden' name='noSmilies' id='noSmilies_{$options['editorName']}' value='{$options['noSmilies']}' /> <textarea id="{$options['editorName']}" name="{$formField}" class='ips_EditorTextArea'>{$content}</textarea> <a id="ips_switchEditor" style="display:none" href="javascript:void()">Switch to Rich Text Editor</a> <span id='editor_html_message_{$options['editorName']}'> </span> <script type="text/javascript">    ipb.textEditor.initialize('{$options['editorName']}', { type: '{$options['type']}',                                              minimize: {$options['minimize']},                                              bypassCKEditor: {$options['bypassCKEditor']},                                              isRte: {$options['isRte']},                                              isHtml: {$options['isHtml']},                                              noSmilies: {$options['noSmilies']},                                              ips_AutoSaveKey: '{$options['autoSaveKey']}',                                               ips_AutoSaveData: {$jsonEncoded} } ); </script> EOF; //--endhtml--// return $IPBHTML; } /**  * Editor template for ACP  *  * @access   public  * @param   string       From field name  * @param   string      Initial content for the editor  * @param   string      Path to the images  * @param   integer      Whether RTE is enabled (1) or not (0)  * @param   string      Editor id  * @param   string      Emoticon data  * @return   string      HTML  */ public function ips_editor($form_field="",$initial_content="",$images_path="",$rte_mode=0,$editor_id='ed-0',$smilies='') { $IPBHTML = ""; //--starthtml--// $this->settings['extraJsModules']   .= ",editor"; $bbcodes                      = IPSLib::fetchBbcodeAsJson(); $show_sidebar                  = IPSCookie::get('emoticon_sidebar'); $show_sidebar_class             = $show_sidebar && $this->settings['_remove_emoticons'] == 0 ? 'with_sidebar' : ''; $show_sidebar_style               = $show_sidebar && $this->settings['_remove_emoticons'] == 0 ? '' : "style='display:none'"; $show_sidebar_link               = $show_sidebar && $this->settings['_remove_emoticons'] == 0 ? 'true' : 'false'; $IPBHTML .= <<<EOF    <!--top-->    <input type='hidden' name='{$editor_id}_wysiwyg_used' id='{$editor_id}_wysiwyg_used' value='0' />    <input type='hidden' name='editor_ids[]' value='{$editor_id}' />    <div class='ips_editor {$show_sidebar_class}' id='editor_{$editor_id}'> EOF;    if( $this->settings['_remove_emoticons'] == 0 )    {       $IPBHTML .= <<<EOF       <div class='sidebar row1 altrow' id='{$editor_id}_sidebar' {$show_sidebar_style}>          <h4><img src='{$this->settings['img_url']}/close_popup.png' alt='{$this->lang->words['icon']}' id='{$editor_id}_close_sidebar' /><span>{$this->lang->words['emoticons_template_title']}</span></h4>          <div id='{$editor_id}_emoticon_holder' class='emoticon_holder'></div>          <div class='show_all_emoticons' id='{$editor_id}_showall_bar'>             <input type='button' value='{$this->lang->words['show_all_emotes']}' id='{$editor_id}_showall_emoticons' class='input_submit emoticons' />          </div>       </div> EOF;    }       $IPBHTML .= <<<EOF       <div id='{$editor_id}_controls' class='controls'>          <ul id='{$editor_id}_toolbar_1' class='toolbar' style='display: none'>             <li class='left'>                <span id='{$editor_id}_cmd_removeformat' class='rte_control rte_button' title='{$this->lang->words['js_tt_noformat']}'><img src='{$this->settings['img_url']}/rte_icons/remove_formatting.png' alt='{$this->lang->words['js_tt_noformat']}' /></span>             </li>             <li class='left'>                <span id='{$editor_id}_cmd_togglesource' class='rte_control rte_button' title='{$this->lang->words['js_tt_htmlsource']}'><img src='{$this->settings['img_url']}/rte_icons/toggle_source.png' alt='{$this->lang->words['js_tt_htmlsource']}' /></span>             </li>             <li class='left'>                <span id='{$editor_id}_cmd_otherstyles' class='rte_control rte_menu rte_special' title='{$this->lang->words['box_other_desc']}' style='display: none'>{$this->lang->words['box_other']}</span>             </li>             <li class='left'>                <span id='{$editor_id}_cmd_fontname' class='rte_control rte_menu rte_font' title='{$this->lang->words['box_font_desc']}'>{$this->lang->words['box_font']}</span>             </li>             <li class='left'>                <span id='{$editor_id}_cmd_fontsize' class='rte_control rte_menu rte_fontsize' title='{$this->lang->words['box_size_desc']}'>{$this->lang->words['box_size']}</span>             </li>             <li class='left'>                <span id='{$editor_id}_cmd_forecolor' class='rte_control rte_palette' title='{$this->lang->words['js_tt_font_col']}'><img src='{$this->settings['img_url']}/rte_icons/font_color.png' alt='{$this->lang->words['js_tt_font_col']}' /></span>             </li>             <!--<li class='left'>                <span id='{$editor_id}_cmd_backcolor' class='rte_control rte_palette' title='{$this->lang->words['js_tt_back_col']}'><img src='{$this->settings['img_url']}/rte_icons/background_color.png' alt='{$this->lang->words['js_tt_back_col']}' /></span>             </li>-->             <li class='right'>                <span id='{$editor_id}_cmd_spellcheck' class='rte_control rte_button' title='{$this->lang->words['js_tt_spellcheck']}'><img src='{$this->settings['img_url']}/rte_icons/spellcheck.png' alt='{$this->lang->words['js_tt_spellcheck']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_r_small' class='rte_control rte_button' title='{$this->lang->words['js_tt_resizesmall']}'><img src='{$this->settings['img_url']}/rte_icons/resize_small.png' alt='{$this->lang->words['js_tt_resizesmall']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_r_big' class='rte_control rte_button' title='{$this->lang->words['js_tt_resizebig']}'><img src='{$this->settings['img_url']}/rte_icons/resize_big.png' alt='{$this->lang->words['js_tt_resizebig']}' /></span>             </li>             <li class='right sep'>                <span id='{$editor_id}_cmd_help' class='rte_control rte_button' title='{$this->lang->words['js_tt_help']}'><a href='{$this->settings['board_url']}/index.php?app=forums&module=extras&section=legends&do=bbcode' title='{$this->lang->words['js_tt_help']}'><img src='{$this->settings['img_url']}/rte_icons/help.png' alt='{$this->lang->words['js_tt_help']}' /></a></span>             </li>                     <li class='right sep'>                <span id='{$editor_id}_cmd_undo' class='rte_control rte_button' title='{$this->lang->words['js_tt_undo']}'><img src='{$this->settings['img_url']}/rte_icons/undo.png' alt='{$this->lang->words['js_tt_undo']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_redo' class='rte_control rte_button' title='{$this->lang->words['js_tt_redo']}'><img src='{$this->settings['img_url']}/rte_icons/redo.png' alt='{$this->lang->words['js_tt_redo']}' /></span>             </li>          </ul>          <ul id='{$editor_id}_toolbar_2' class='toolbar' style='display: none'>             <li>                <span id='{$editor_id}_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>             </li>             <li>                <span id='{$editor_id}_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>             </li>             <li>                <span id='{$editor_id}_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>             </li>             <li class='sep'>                <span id='{$editor_id}_cmd_strikethrough' class='rte_control rte_button' title='{$this->lang->words['js_tt_strike']}'><img src='{$this->settings['img_url']}/rte_icons/strike.png' alt='{$this->lang->words['js_tt_strike']}' /></span>             </li>             <li>                <span id='{$editor_id}_cmd_subscript' class='rte_control rte_button' title='{$this->lang->words['js_tt_sub']}'><img src='{$this->settings['img_url']}/rte_icons/subscript.png' alt='{$this->lang->words['js_tt_sub']}' /></span>             </li>             <li class='sep'>                <span id='{$editor_id}_cmd_superscript' class='rte_control rte_button' title='{$this->lang->words['js_tt_sup']}'><img src='{$this->settings['img_url']}/rte_icons/superscript.png' alt='{$this->lang->words['js_tt_sup']}' /></span>             </li>             <li>                <span id='{$editor_id}_cmd_insertunorderedlist' class='rte_control rte_button' title='{$this->lang->words['js_tt_list']}'><img src='{$this->settings['img_url']}/rte_icons/unordered_list.png' alt='{$this->lang->words['js_tt_list']}' /></span>             </li>             <li class='sep'>                <span id='{$editor_id}_cmd_insertorderedlist' class='rte_control rte_button' title='{$this->lang->words['js_tt_list']}'><img src='{$this->settings['img_url']}/rte_icons/ordered_list.png' alt='{$this->lang->words['js_tt_list']}' /></span>             </li> EOF;          if( $this->settings['_remove_emoticons'] == 0 )          { $IPBHTML .= <<<EOF             <li>                <span id='{$editor_id}_cmd_emoticons' class='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>             </li> EOF;          } $IPBHTML .= <<<EOF             <li>                <span id='{$editor_id}_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>             </li>             <li>                <span id='{$editor_id}_cmd_image' class='rte_control rte_palette' title='{$this->lang->words['js_tt_image']}'><img src='{$this->settings['img_url']}/rte_icons/picture.png' alt='{$this->lang->words['js_tt_image']}' /></span>             </li>             <li>                <span id='{$editor_id}_cmd_email' class='rte_control rte_palette' title='{$this->lang->words['js_tt_email']}'><img src='{$this->settings['img_url']}/rte_icons/email.png' alt='{$this->lang->words['js_tt_email']}' /></span>             </li>             <li>                <span id='{$editor_id}_cmd_ipb_quote' class='rte_control rte_button' title='{$this->lang->words['js_tt_quote']}'><img src='{$this->settings['img_url']}/rte_icons/quote.png' alt='{$this->lang->words['js_tt_quote']}' /></span>             </li>             <li>                <span id='{$editor_id}_cmd_ipb_code' class='rte_control rte_button' title='{$this->lang->words['js_tt_code']}'><img src='{$this->settings['img_url']}/rte_icons/code.png' alt='{$this->lang->words['js_tt_code']}' /></span>             </li>             <li>                <span id='{$editor_id}_cmd_media' class='rte_control rte_palette' title='{$this->lang->words['js_tt_media']}'><img src='{$this->settings['img_url']}/rte_icons/media.png' alt='{$this->lang->words['js_tt_media']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_justifyright' class='rte_control rte_button' title='{$this->lang->words['js_tt_right']}'><img src='{$this->settings['img_url']}/rte_icons/align_right.png' alt='{$this->lang->words['js_tt_right']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_justifycenter' class='rte_control rte_button' title='{$this->lang->words['js_tt_center']}'><img src='{$this->settings['img_url']}/rte_icons/align_center.png' alt='{$this->lang->words['js_tt_center']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_justifyleft' class='rte_control rte_button' title='{$this->lang->words['js_tt_left']}'><img src='{$this->settings['img_url']}/rte_icons/align_left.png' alt='{$this->lang->words['js_tt_left']}' /></span>             </li>             <li class='right sep'>                <span id='{$editor_id}_cmd_indent' class='rte_control rte_button' title='{$this->lang->words['js_tt_indent']}'><img src='{$this->settings['img_url']}/rte_icons/indent.png' alt='{$this->lang->words['js_tt_indent']}' /></span>             </li>             <li class='right'>                <span id='{$editor_id}_cmd_outdent' class='rte_control rte_button' title='{$this->lang->words['js_tt_outdent']}'><img src='{$this->settings['img_url']}/rte_icons/outdent.png' alt='{$this->lang->words['js_tt_outdent']}' /></span>             </li>          </ul>       </div>       <div id='{$editor_id}_wrap' class='editor'>          <textarea name="{$form_field}" class="input_rte" id="{$editor_id}_textarea" rows="10" cols="60" tabindex="0">{$initial_content}</textarea>       </div>    </div>    <!-- Toolpanes -->    <script type="text/javascript">    //<![CDATA[    $('{$editor_id}_toolbar_1').show();    $('{$editor_id}_toolbar_2').show();    // Rikki: Had to remove <form>... </form> because Opera would see </form> and not pass the topic icons / hidden fields properly. Tried "</" + "form>" but when it is parsed, it had the same affect    ipb.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' class='input_submit' value='{$this->lang->words['js_template_insert_link']}' tabindex='12' />");    ipb.editor_values.get('templates')['image'] = new Template("<label for='#{id}_img'>{$this->lang->words['js_template_imageurl']}</label><input type='text' class='input_text' id='#{id}_img' value='http://' tabindex='10' /><input type='submit' class='input_submit' value='{$this->lang->words['js_template_insert_img']}' tabindex='11' />");    ipb.editor_values.get('templates')['email'] = new Template("<label for='#{id}_email'>{$this->lang->words['js_template_email_url']}</label><input type='text' class='input_text' id='#{id}_email' tabindex='10' /><label for='#{id}_emailtext'>{$this->lang->words['js_template_link']}</label><input type='text' class='input_text _select' id='#{id}_emailtext' value='{$this->lang->words['js_template_email_me']}' tabindex='11' /><input type='submit' class='input_submit' value='{$this->lang->words['js_template_insert_email']}' tabindex='12' />");    ipb.editor_values.get('templates')['media'] = new Template("<label for='#{id}_media'>{$this->lang->words['js_template_media_url']}</label><input type='text' class='input_text' id='#{id}_media' value='http://' tabindex='10' /><input type='submit' class='input_submit' value='{$this->lang->words['js_template_insert_media']}' tabindex='11' />");    ipb.editor_values.get('templates')['generic'] = new Template("<div class='rte_title'>#{title}</div><strong>{$this->lang->words['js_template_example']}</strong><pre>#{example}</pre><label for='#{id}_option' class='optional'>#{option_text}</label><input type='text' class='input_text optional' id='#{id}_option' tabindex='10' /><label for='#{id}_text' class='tagcontent'>#{value_text}</label><input type='text' class='input_text _select tagcontent' id='#{id}_text' tabindex='11' /><input type='submit' class='input_submit' value='{$this->lang->words['js_template_add']}' tabindex='12' />");    ipb.editor_values.get('templates')['toolbar'] = new Template("<ul id='#{id}_toolbar_#{toolbarid}' class='toolbar' style='display: none'>#{content}</ul>");    ipb.editor_values.get('templates')['button'] = new Template("<li><span id='#{id}_cmd_custom_#{cmd}' class='rte_control rte_button specialitem' title='#{title}'><img src='{$this->settings['img_url']}/rte_icons/#{img}' alt='{$this->lang->words['icon']}' /></span></li>");    ipb.editor_values.get('templates')['menu_item'] = new Template("<li id='#{id}_cmd_custom_#{cmd}' class='specialitem clickable'>#{title}</li>");    ipb.editor_values.get('templates')['togglesource'] = new Template("<fieldset id='#{id}_ts_controls' class='submit' style='text-align: left'><input type='button' class='input_submit' value='{$this->lang->words['js_template_update']}' id='#{id}_ts_update' /> <a href='#' id='#{id}_ts_cancel' class='cancel'>{$this->lang->words['js_template_cancel_source']}</a></fieldset>");    ipb.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']}' />");    ipb.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>");    // Add smilies into the mix    ipb.editor_values.set( 'show_emoticon_link', true );    ipb.editor_values.set( 'emoticons', \$H({ $smilies }) );    ipb.editor_values.set( 'bbcodes', \$H( $bbcodes ) );    ipb.vars['emoticon_url'] = "{$this->settings['emoticons_url']}";    Event.observe(window, 'load', function(e){       ipb.editors[ '{$editor_id}' ] = new ipb.editor( '{$editor_id}', USE_RTE );    });    //]]>    </script> EOF; //--endhtml--// return $IPBHTML; } /**  * Page wrapper for popup windows  *  * @access   public  * @param   string      Document character set  * @param   array       CSS Files  * @return   string      HTML  */ public function global_main_popup_wrapper($IPS_DOC_CHAR_SET=IPS_DOC_CHAR_SET, $cssFiles=array() ) { $IPBHTML = ""; //--starthtml--// $_path      = IPS_PUBLIC_SCRIPT; $boardurl = ($this->registry->output->isHTTPS) ? $this->settings['board_url_https'] : $this->settings['board_url']; $IPBHTML .= <<<EOF <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head>    <meta http-equiv="content-type" content="text/html; charset={$IPS_DOC_CHAR_SET}" />    <meta http-equiv="Pragma" content="no-cache" />    <meta http-equiv="Cache-Control" content="no-cache" />    <meta http-equiv="Expires" content="Fri, 01 January 1999 01:00:00 GMT" />    <link rel="shortcut icon" href='{$boardurl}/favicon.ico' />    <title><%TITLE%></title>    <script type='text/javascript'>       jsDebug = 1;       USE_RTE = 1;       inACP  = true;       isRTL   = false;    </script> EOF; /** CSS ----------------------------------------- */ /*if ( $this->settings['use_minify'] ) {    $_basics = CP_DIRECTORY . '/skin_cp/acp.css,' . CP_DIRECTORY . '/skin_cp/acp_editor.css';    $_others = '';    if ( is_array( $cssFiles['import'] ) AND count( $cssFiles['import'] ) )    {       foreach( $cssFiles['import'] as $data )       {          $_others .= ',' . preg_replace( "#^(.*)/(" . CP_DIRECTORY . "/.*)$#", "$2", $data['content'] );       }    }    $IPBHTML .= "\n\t<link rel=\"stylesheet\" type=\"text/css\" media='screen' href=\"{$this->settings['public_dir']}min/index.php?f={$_basics}{$_others}\">\n"; } else {*/      $IPBHTML .= <<<HTML    <style type='text/css' media='all'>       @import url( "{$this->settings['skin_acp_url']}/acp.css" );       @import url( "{$this->settings['skin_acp_url']}/acp_editor.css" );    </style> HTML;    if( is_array($cssFiles['import']) AND count($cssFiles['import']) )    {       foreach( $cssFiles['import'] as $data )       {          $IPBHTML .= <<<EOF          <link rel="stylesheet" type="text/css" {$data['attributes']} href="{$data['content']}" /> EOF;       }    } //} $IPBHTML .= <<<HTML    <!--[if IE]>       <style type='text/css' media='all'>          @import url( "{$this->settings['skin_acp_url']}/acp_ie_tweaks.css" );       </style>    <![endif]--> HTML; if( IN_DEV ) {    $IPBHTML .= <<<HTML       <style type='text/css' media='all'>          .ipsActionBar > ul > li.inDev {             display: inline;          }       </style> HTML; } if( is_array($cssFiles['inline']) AND count($cssFiles['inline']) ) {    $IPBHTML .= <<<EOF       <style type='text/css' media="all"> EOF;    foreach( $cssFiles['inline'] as $data )    {       $IPBHTML .= $data['content'];    }    $IPBHTML .= <<<EOF       </style> EOF; } /** JS ----------------------------------------- */ /*if ( $this->settings['use_minify'] ) {    $_others = ',' . CP_DIRECTORY . '/js/acp.js,' . CP_DIRECTORY . '/js/acp.' . implode('.js,' . CP_DIRECTORY . '/js/acp.', array( 'menu', 'tabs' ) ) . '.js';    $IPBHTML .= <<<HTML    <script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?g=js&ipbv={$this->registry->output->antiCacheHash}'></script> HTML;    $IPBHTML .= "\n\t<script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&f=" . PUBLIC_DIRECTORY . "/js/ipb.js" . $_others;    if ( $this->settings['extraJsModules'] )    {       $_modules      = explode( ',', $this->settings['extraJsModules'] );       $_loadModules   = '';       $_seenModules   = array();       foreach( $_modules as $_jsModule )       {          if( !$_jsModule )          {             continue;          }          if( in_array( $_jsModule, $_seenModules ) )          {             continue;          }          $_seenModules[] = $_jsModule;          $_loadModules   .= "," . PUBLIC_DIRECTORY . "/js/ips." . $_jsModule . ".js";       }       $IPBHTML .= $_loadModules . "'></script>\n";    }    else    {       $IPBHTML .= "'></script>\n";    } } else {*/    $IPBHTML .= <<<HTML       <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/prototype.js?ipbv={$this->registry->output->antiCacheHash}"></script>       <script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/scriptaculous/scriptaculous-cache.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type="text/javascript" src='{$this->settings['js_base_url']}js/ipb.js?ipbv={$this->registry->output->antiCacheHash}&load={$this->settings['extraJsModules']}'></script>       <script type='text/javascript' src='{$this->settings['js_main_url']}acp.menu.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type='text/javascript' src='{$this->settings['js_main_url']}acp.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type="text/javascript" src='{$this->settings['js_main_url']}acp.tabs.js?ipbv={$this->registry->output->antiCacheHash}'></script> HTML; //} $mem_info = json_encode( array( 'g_mem_info' => $this->memberData['g_mem_info'] ) ); $IPBHTML .= <<<EOF    <script type='text/javascript'>    //<![CDATA[       ipb.vars['st']   = "{$this->request['st']}";       ipb.vars['base_url']   = "{$this->settings['_base_url']}";       ipb.vars['front_url']   = "{$this->settings['board_url']}/index.php?";       ipb.vars['app_url']      = "{$this->settings['base_url']}";       ipb.vars['image_url']    = "{$this->settings['skin_app_url']}/images/";       ipb.vars['md5_hash']   = "{$this->member->form_hash}";       ipb.vars['is_touch']   = false;       ipb.vars['member_group'] = {$mem_info};       /* ---- cookies ----- */       ipb.vars['cookie_id']          = '{$this->settings['cookie_id']}';       ipb.vars['cookie_domain']       = '{$this->settings['cookie_domain']}';       ipb.vars['cookie_path']         = '{$this->settings['cookie_path']}';       ipb.templates['close_popup']   = "<img src='{$this->settings['img_url']}/close_popup.png' alt='x' />";       ipb.templates['page_jump']      = new Template("<div id='#{id}_wrap' class='ipbmenu_content'><h3 class='bar'>{$this->lang->words['gl_pagejump']}</h3><input type='text' class='input_text' id='#{id}_input' size='8' /> <input type='submit' value='Go' class='input_submit add_folder' id='#{id}_submit' /></div>");       ipb.templates['ajax_loading']    = "<div id='ajax_loading'>{$this->lang->words['gl_loading']}</div>";    //]]>    </script>    <!--<script type='text/javascript' src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>-->    <script type='text/javascript'>       Loader.boot();       acp = new IPBACP;    </script>    <script type="text/javascript" src="{$this->settings['cache_dir']}lang_cache/{$this->lang->lang_id}/acp.lang.js?ipbv={$this->registry->output->antiCacheHash}" charset="{$IPS_DOC_CHAR_SET}"></script> </head> <body<%BODYEXTRA%> id='ipboard_body' class='popupwindow'> <div id='loading-layer' style='display:none'>    <div id='loading-layer-shadow'>      <div id='loading-layer-inner' >         <img src='{$this->settings['skin_acp_url']}/images/loading_anim.gif' style='vertical-align:middle' />         <span style='font-weight:bold' id='loading-layer-text'>{$this->lang->words['ajax_please_wait']}</span>      </div>    </div> </div> <div id='main_content'>    <div id='content_wrap'>       <%CONTENT%>    </div> </div> </body> </html> EOF; //--endhtml--// return $IPBHTML; } /**  * Primary page wrapper - used for all full pages  *  * @access   public  * @param   string       Document character set  * @param   array       CSS Files  * @param   string      Global submenu HTML (@see global_menu_sub_navigation)  * @param   array       Order of tabs  * @return   string      HTML  */ public function global_main_wrapper($IPS_DOC_CHAR_SET=IPS_DOC_CHAR_SET, $cssFiles=array(), $gbl_sub_menu='', $mainTabData, $otherTabData, $bookMarks=array() ) { $IPBHTML = ""; //--starthtml--// //$_encoded = base64_encode( $this->settings['query_string_safe'] ); $_url   = str_replace( '&'  , '&', $this->settings['query_string_safe'] ); $_url   = preg_replace( '#&{1,}#', ';', $_url ); $_url   = preg_replace( '#={1,}#', ':', $_url ); $_url   = ltrim( $_url, ';' ); $_path   = IPS_PUBLIC_SCRIPT; $year   = date('Y'); /* Open Tab */ $__tabs   = ( is_array( $this->member->acp_tab_data ) and count( $this->member->acp_tab_data ) )       ? "'" . implode( "','", array_keys( $this->member->acp_tab_data ) ) . "'"       : ''; $_apptitle   = ipsRegistry::$applications[ ipsRegistry::$current_application ]['app_title']; $defaultFakeApp      = ''; $defaultFakeModule   = ''; $curApp            = array(); switch( ipsRegistry::$current_application ) {    case 'forums':       $curApp['forums'] = 'active';       break;    case 'core':       $curApp['core']   = 'active';       break;    case 'members':       $curApp['members'] = 'active';       break;    default:       $curApp['other'] = 'active';       break; } $fakeApps   = $this->registry->output->fetchFakeApps(); foreach( $fakeApps as $fa => $data ) {    foreach( $data as $appData )    {       if ( ! $defaultFakeApp )       {          $defaultFakeApp   = $appData['app'];          $defaultFakeModule = $appData['module'];       }             if ( $appData['app'] == ipsRegistry::$current_application && $appData['module'] == ipsRegistry::$current_module )       {          $curApp = array();          $curApp[ $fa ] = 'active';          break 2;       }    } } /* if( !$this->settings['ipb_reg_number'] ) {                                $this->lang->words['license_missing_info']             = sprintf( $this->lang->words['license_missing_info'], $this->settings['base_url'] . 'app=core&module=tools§ion=licensekey' );                                $extra_class = 'force_license';                                $license_html = <<<HTML                                                                <div id='license_notice_force'>                                                                                                <h4>{$this->lang->words['license_missing_header']}</h4>                                                                                                <p>{$this->lang->words['license_missing_info']}</p>                                                                </div> HTML; } else {                                $licenseData   = $this->cache->getCache( 'licenseData' );                                if( ( !$licenseData OR !$licenseData['key']['_expires'] OR $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW and $licenseData['key']['_expires'] != -1 ) AND !IPSCookie::get( 'ignore-license-notice' ) )                                {                                                                $extra_class = 'expired_license';                                                                $license_html = <<<HTML                                                                                                <div id='license_notice_expired'>                                                                                                                                <div class='right'><a id='license-close' href='#'>Close</a></div>                                                                                                                                <h4>{$this->lang->words['license_expired_header']}</h4>                                                                                                                                <p>{$this->lang->words['license_expired_info']}</p>                                                                                                </div> HTML;                                } } */ {    $licenseData   = $this->cache->getCache( 'licenseData' );       if( ( !$licenseData OR !$licenseData['key']['_expires'] OR $licenseData['key']['_expires'] < IPS_UNIX_TIME_NOW and $licenseData['key']['_expires'] != -1 ) AND !IPSCookie::get( 'ignore-license-notice' ) )    {       if ( $licenseData['_cached_date'] < $licenseData['key']['_expires'] )       {          $this->cache->rebuildCache( 'licenseData' );       }       else       {            $extra_class = 'expired_license';          $license_html = <<<HTML             <div id='license_notice_expired'>                <div class='right'><a id='license-close' href='#'>Close</a></div>                <h4>{$this->lang->words['license_expired_header']}</h4>                <p>{$this->lang->words['license_expired_info']}</p>             </div> HTML;       }    } } $boardurl = ($this->registry->output->isHTTPS) ? $this->settings['board_url_https'] : $this->settings['board_url']; $IPBHTML .= <<<HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head>    <meta http-equiv="content-type" content="text/html; charset={$IPS_DOC_CHAR_SET}" />    <meta http-equiv="Pragma" content="no-cache" />    <meta http-equiv="Cache-Control" content="no-cache" />    <meta http-equiv="Expires" content="Fri, 01 January 1999 01:00:00 GMT" />    <link rel="shortcut icon" href='{$boardurl}/favicon.ico' />    <title><%TITLE%></title>    <script type='text/javascript'>       jsDebug = 1;       USE_RTE = 1;       inACP  = true;       isRTL   = false;    </script> HTML; /** CSS ----------------------------------------- */ /*if ( $this->settings['use_minify'] ) {    $_basics = CP_DIRECTORY . '/skin_cp/acp.css,' . CP_DIRECTORY . '/skin_cp/acp_editor.css';    $_others = '';       if ( is_array( $cssFiles['import'] ) AND count( $cssFiles['import'] ) )    {       foreach( $cssFiles['import'] as $data )       {          $_others .= ',' . preg_replace( "#^(.*)/(" . CP_DIRECTORY . "/.*)$#", "$2", $data['content'] );       }    }       $IPBHTML .= "\n\t<link rel=\"stylesheet\" type=\"text/css\" media='screen' href=\"{$this->settings['public_dir']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&f={$_basics}{$_others}\">\n"; } else {*/    $IPBHTML .= <<<HTML    <style type='text/css' media='all'>       @import url( "{$this->settings['skin_acp_url']}/acp.css?ipbv={$this->registry->output->antiCacheHash}" );       @import url( "{$this->settings['skin_acp_url']}/acp_editor.css?ipbv={$this->registry->output->antiCacheHash}" );    </style> HTML;    if( is_array($cssFiles['import']) AND count($cssFiles['import']) )    {       foreach( $cssFiles['import'] as $data )       {          $IPBHTML .= <<<EOF          <link rel="stylesheet" type="text/css" {$data['attributes']} href="{$data['content']}?ipbv={$this->registry->output->antiCacheHash}" /> EOF;       }    } //} $IPBHTML .= <<<HTML    <!--[if IE]>       <style type='text/css' media='all'>          @import url( "{$this->settings['skin_acp_url']}/acp_ie_tweaks.css" );       </style>    <![endif]--> HTML; if( IN_DEV ) {    $IPBHTML .= <<<HTML       <style type='text/css' media='all'>          .ipsActionBar > ul > li.inDev {             display: inline;          }       </style> HTML; } if( is_array($cssFiles['inline']) AND count($cssFiles['inline']) ) {    $IPBHTML .= <<<EOF       <style type='text/css' media="all"> EOF;    foreach( $cssFiles['inline'] as $data )    {       $IPBHTML .= $data['content'];    }    $IPBHTML .= <<<EOF       </style> EOF; } /** JS ----------------------------------------- */ /*if ( $this->settings['use_minify'] ) {    $_others = ',' . CP_DIRECTORY . '/js/acp.js,' . CP_DIRECTORY . '/js/acp.' . implode('.js,' . CP_DIRECTORY . '/js/acp.', array( 'menu', 'tabs' ) ) . '.js';       if ( $this->settings['remote_load_js'] )    {       $IPBHTML .= <<<HTML       <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/prototype/1.7/prototype.js'></script>       <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8/scriptaculous.js?load=effects,dragdrop,builder'></script> HTML;    }    else    {          $IPBHTML .= <<<HTML       <script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?g=js&ipbv={$this->registry->output->antiCacheHash}'></script> HTML;    }    $IPBHTML .= "\n\t<script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&f=" . PUBLIC_DIRECTORY . "/js/ipb.js" . $_others;       if ( $this->settings['extraJsModules'] )    {       $_modules      = explode( ',', $this->settings['extraJsModules'] );       $_loadModules   = '';       $_seenModules   = array();             foreach( $_modules as $_jsModule )       {          if( !$_jsModule )          {             continue;          }                   if( in_array( $_jsModule, $_seenModules ) )          {             continue;          }                   $_seenModules[] = $_jsModule;                   $_loadModules   .= "," . PUBLIC_DIRECTORY . "/js/ips." . $_jsModule . ".js";       }             $IPBHTML .= $_loadModules . "'></script>\n";    }    else    {       $IPBHTML .= "'></script>\n";    } } else {*/    $IPBHTML .= <<<HTML       <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/prototype.js?ipbv={$this->registry->output->antiCacheHash}"></script>       <script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/scriptaculous/scriptaculous-cache.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type="text/javascript" src='{$this->settings['js_base_url']}js/ipb.js?ipbv={$this->registry->output->antiCacheHash}&load={$this->settings['extraJsModules']}'></script>       <script type='text/javascript' src='{$this->settings['js_main_url']}acp.menu.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type='text/javascript' src='{$this->settings['js_main_url']}acp.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type="text/javascript" src='{$this->settings['js_main_url']}acp.tabs.js?ipbv={$this->registry->output->antiCacheHash}'></script> HTML; //} /* SIDEBAR */ if( $this->settings['hide_sidebar'] || IPSCookie::get("acp_sidebar") == 'closed' ) {    if( $this->settings['hide_sidebar'] )    {       //$sidebar['toggle_class'] = "style='display: none'";    }    $sidebar['content_class'] = "close_menu";    $sidebar['menu_style'] = "style='display: none'"; } else {    $sidebar['content_class'] = "open_menu";    $sidebar['menu_style'] = ""; } $mem_info = json_encode( array( 'g_mem_info' => $this->memberData['g_mem_info'] ) ); $base_url = str_replace( '&', '&', $this->settings['_base_url'] ); $IPBHTML .= <<<HTML    <script type='text/javascript' src='{$this->settings['cache_dir']}lang_cache/{$this->lang->lang_id}/ipb.lang.js?ipbv={$this->registry->output->antiCacheHash}'></script>    <script type="text/javascript" src="{$this->settings['cache_dir']}lang_cache/{$this->lang->lang_id}/acp.lang.js?ipbv={$this->registry->output->antiCacheHash}" charset="{$IPS_DOC_CHAR_SET}"></script>    <script type='text/javascript' src='{$this->settings['js_main_url']}3rd_party/jquery.min.js?ipbv={$this->registry->output->antiCacheHash}'></script>    <script type='text/javascript' src='{$this->settings['js_main_url']}3rd_party/jquery-ui.min.js?ipbv={$this->registry->output->antiCacheHash}'></script>    <script type='text/javascript'>       var jQ = jQuery.noConflict();    </script>    <script type='text/javascript' src='{$this->settings['js_main_url']}acp.jquery.js?ipbv={$this->registry->output->antiCacheHash}'></script>    <script type='text/javascript'>    //<![CDATA[       ipb.vars['st']   = "{$this->request['st']}";       ipb.vars['base_url']   = "{$base_url}";       ipb.vars['front_url']   = "{$this->settings['board_url']}/index.php?";       ipb.vars['app_url']      = "{$this->settings['base_url']}";       ipb.vars['upload_url']   = "{$this->settings['upload_url']}";       ipb.vars['image_url']    = "{$this->settings['skin_app_url']}images/";       ipb.vars['image_acp_url']    = "{$this->settings['skin_acp_url']}/images/";       ipb.vars['md5_hash']   = "{$this->member->form_hash}";       ipb.vars['is_touch']   = false;       ipb.vars['member_group'] = {$mem_info};       ipb.vars['member_id']   = parseInt("{$this->memberData['member_id']}");             /* ---- cookies ----- */       ipb.vars['cookie_id']          = '{$this->settings['cookie_id']}';       ipb.vars['cookie_domain']       = '{$this->settings['cookie_domain']}';       ipb.vars['cookie_path']         = '{$this->settings['cookie_path']}';       ipb.templates['close_popup']   = "<img src='{$this->settings['img_url']}/close_popup.png' alt='x' />";       ipb.templates['page_jump']      = new Template("<div id='#{id}_wrap' class='ipbmenu_content'><h3 class='bar'>{$this->lang->words['gl_pagejump']}</h3><input type='text' class='input_text' id='#{id}_input' size='8' /> <input type='submit' value='Go' class='realbutton' id='#{id}_submit' /></div>");       ipb.templates['ajax_loading']    = "<div id='ajax_loading'>{$this->lang->words['gl_loading']}</div>";       ipb.templates['global_notify']    = new Template("<div class='popupWrapper'><div class='popupInner'><div class='ipsPad'>#{message} #{close}</div></div></div>");       ipb.templates['global_notify_close']   = "<span id='ipsGlobalNotification_close' class='realbutton'>{$this->lang->words['gbl_ok']}</span>";       ipb.templates['acp_bookmark_add']      = new Template("<h3>{$this->lang->words['bookmarks_add_title']}</h3><div class='ipsPad' id='bmcontent'>{$this->lang->words['bookmarks_add_field_title']} <input type='text' class='input_text' style='width:99%' name='bookmarkTitle' value='#{title}' /><br /><input type='checkbox' name='homePage' value='1' /> <span class='desctext'>{$this->lang->words['bookmarks_add_field_home']}</span><br /><br /><div style='text-align:center'><input type='button' class='realbutton' value='{$this->lang->words['bookmarks_save']}' /></div></div>" );    //]]>    </script>    <script type='text/javascript'>       Loader.boot();       acp = new IPBACP;    </script> </head> <body id='ipboard_body' data-bookmarkurl="{$bookMarks['url']}" data-bookmarkable="{$bookMarks['can']}" data-bookmarked="{$bookMarks['has']}" class='{$extra_class} clearfix'> <!-- Inline Form Box --> <div id='modal' style='display: none'></div> {$license_html} <div id='inlineFormWrap' style='display: none;'>    <div id='inlineFormInnerWrap'>       <div id='inlineFormInnerClose' onclick="Effect.Fade( 'inlineFormWrap', { duration: .5 } );"></div>       <div id='inlineFormInnerTitle'></div>       <div id='inlineErrorBox'>          <img src='{$this->settings['skin_acp_url']}/images/stopLarge.png' />          <strong>{$this->lang->words['gl_error']}</strong>          <div id='inlineErrorText'></div>       </div>       <div id='inlineFormInnerContent'></div>       <div id='inlineFormLoading'>          {$this->lang->words['gl_pleasewait']}...          <br /><br />          <img src='{$this->settings['skin_acp_url']}/images/loading_big.gif' alt='loading' id='search_loading' />       </div>    </div> </div> <!-- / Inline Form Box -->    <div id='header'>       <div id='search' class='right'>          <img src='{$this->settings['skin_acp_url']}/images/search_icon_white.png' alt='' /> <input type='text' value='{$this->lang->words['gl_livesearch']}' id='acpSearchKeyword' class='inactive' /><img src='{$this->settings['skin_acp_url']}/images/loading.gif' id='acp_loading' style='display: none' />       </div>       <a href='{$this->settings['_base_url']}' title='{$this->lang->words['home']}'>          <img src='{$this->settings['skin_acp_url']}/images/logo.png' alt='Logo' />       </a>       <div class='logged_in'>          {$this->lang->words['gl_loggedinas']} {$this->memberData['members_display_name']}          <ul id='user_links' class='ipsList_inline'>             <li>                <a href='../' target='_blank'>{$this->lang->words['gbl_view_site']}</a>             </li>             <li>                <a href='{$this->settings['_base_url']}app=core&module=mycp&section=dashboard'>{$this->lang->words['gbl_dashboard']}</a>             </li>             <li>                <a href='{$this->settings['_base_url']}&module=login&do=login-out'>{$this->lang->words['gbl_log_out']}</a>             </li>          </ul>       </div>    </div>    <div id='live_search_results' style='display: none'>       <div id='ls_sections'>          <ul> HTML;          if ( $this->registry->getClass('class_permissions')->checkPermission( 'settings_manage', 'core', 'settings' ) )          {             $IPBHTML .= <<<HTML             <li id='ls_settings'>{$this->lang->words['livesearch_settings']}<span class='count'></span></li> HTML;          }          if ( $this->registry->getClass('class_permissions')->checkPermission( 'member_edit', 'members', 'members' ) )          {             $IPBHTML .= <<<HTML             <li id='ls_members'>{$this->lang->words['livesearch_members']}<span class='count'></span></li> HTML;          }          if ( $this->registry->getClass('class_permissions')->checkPermission( 'groups_edit', 'members', 'groups' ) )          {             $IPBHTML .= <<<HTML             <li id='ls_groups'>{$this->lang->words['livesearch_groups']}<span class='count'></span></li> HTML;          }          if ( $this->registry->getClass('class_permissions')->checkPermission( 'forums_edit', 'forums', 'forums' ) )          {             $IPBHTML .= <<<HTML             <li id='ls_forums'>{$this->lang->words['livesearch_forums']}<span class='count'></span></li> HTML;          }             $IPBHTML .= <<<HTML             <li id='ls_location'>{$this->lang->words['livesearch_pages']}<span class='count'></span></li> HTML;             if( IPSLib::appIsInstalled('nexus') and $this->registry->getClass('class_permissions')->checkForAppAccess('nexus') )             {                $IPBHTML .= "<li id='ls_nexus'>{$this->lang->words['livesearch_nexus']}<span class='count'></span></li>";             }             $IPBHTML .= <<<HTML             <li id='ls_marketplace' title='{$this->lang->words['search_marketplace_more']}'>{$this->lang->words['search_ipsmarketplace']}</li>          </ul>       </div>       <div id='ls_results'>          <span id='ls_no_results' style='display: none'>{$this->lang->words['live_search_no_results']}</span>          <div id='ls_settings_panel'></div>          <div id='ls_members_panel'></div>          <div id='ls_groups_panel'></div>          <div id='ls_forums_panel'></div>          <div id='ls_location_panel'></div> HTML;          if( IPSLib::appIsInstalled('nexus') ){             $IPBHTML .= "<div id='ls_nexus_panel'></div>";          }          $IPBHTML .= <<<HTML          <div id='ls_marketplace_panel'>             <div class='pad'>                {$this->lang->words['ipsmarketplace_is_best']}                <br /><br />                <a href='http://community.invisionpower.com/files/' class='realbutton'>{$this->lang->words['gotomarketplace']}</a>             </div>          </div>       </div>       <img src='{$this->settings['skin_acp_url']}/images/live_search_stem.png' id='ls_stem' />    </div>    <!-- pre load -->    <img src='{$this->settings['skin_acp_url']}/images/icons/bookmark_white_20.png' style='display:none' />    <img src='{$this->settings['skin_acp_url']}/images/icons/bookmark_grey_20.png' style='display:none' />    <div id='app_bar'>       <a class='right' id='edit_tabs' href='#' title="{$this->lang->words['set_up_tabs']}">{$this->lang->words['edit_tabs']}</a>       HTML;       $IPBHTML .= $this->global_app_menu_html( $gbl_sub_menu, $mainTabData, $otherTabData );       $IPBHTML .= <<<HTML    </div>    <div id='page_body' class='{$sidebar['content_class']} clearfix'>       <a href='#' id='toggle_sidebar' title='Close the sidebar' {$sidebar['toggle_class']}>←</a>       <div id='section_navigation' {$sidebar['menu_style']}>                  <%SIDEBAR_EXTRA%>          <%MENU%>       </div>       <div id='main_content' class='clearfix'>          <%NAV%>                     <%CONTENT%>       </div>    </div>    <div id='footer' class='clear'>       <a href='http://www.invisionpower.com'>IP.Board 3</a> © {$year} IPS, Inc. | <a href='http://www.invisionpower.com/clients/' target='_blank' title='{$this->lang->words['gl_getsupport_title']}'>{$this->lang->words['gl_getsupport']}</a> | <a href='http://community.invisionpower.com/index.php?app=ccs' target='_blank' title='{$this->lang->words['gl_resources_title']}'>{$this->lang->words['gl_resources']}</a> HTML; if ( IN_DEV ) { $count = count( $this->DB->obj['cached_queries'] ); $files = count( get_included_files() ); $IPBHTML .= <<<HTML    | <a href='#' onclick="$('acpQueries').toggle(); return false;">{$count} Queries and {$files} Included Files</a>    HTML; } $acpUrl = str_replace( '&', '&', $this->settings['_base_url'] ); $IPBHTML .= <<<HTML    </div>    <script type='text/javascript'>       jQuery.extend(true, ips,       {          member:        { member_id: parseInt( $this->memberData['member_id'] ) },          acpUrl:        '{$acpUrl}',          rootUrl:       '{$this->settings['board_url']}',          publicUrl:     '{$this->settings['board_url']}/index.php?}',          publicImageUrl: "{$this->settings['skin_app_url']}images/",          acpImageUrl:   "{$this->settings['skin_acp_url']}/images/",          formToken:     '{$this->member->form_hash}',          bookmarksJSON: {$bookMarks['jsn']}       } );         </script> </body> </html> HTML; //--endhtml--// return $IPBHTML; } /**  * Global page primary template - fits in content area  *  * @access   public  * @return   string      HTML  */ public function global_frame_wrapper() { $year = date('Y'); $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <%CONTEXT_MENU%> <%MSG%> <%SECTIONCONTENT%> <div id='acpQueries' style='display:none'>    <%QUERIES%> </div> EOF; //--endhtml--// return $IPBHTML; } /**  * Generate sub navigation menu for global use (all apps)  *  * @access   public  * @param   array       Menu data  * @param   array       Application and module titles data  * @return   string      array  */ public function global_menu_sub_navigation( $menu ) { $seen = array(); $fakeApps = $this->registry->output->fetchFakeApps(); foreach( $menu['menu'] as $app => $modules ) {    $this_menu = "<ul id='menu_{$app}' style='display: none'>\r\n";    foreach( $modules as $key => $items )    {         $this_menu .= "\t<li>\r\n";       if( count( $items['items'] ) == 1 )       {          $real_app   = $items['items'][0]['app_dir'];                   if ( !ipsRegistry::getClass('class_permissions')->checkForSectionAccess( $real_app, $items['items'][0]['module'], $items['items'][0]['section'] ) )          {             continue;          }                   $_url      = ( $items['items'][0]['url'] ) ? "&{$items['items'][0]['url']}" : "";          $_title      = $menu['titles'][ $app ][ $key ] ? $menu['titles'][ $app ][ $key ]['title'] : $items['items'][0]['title'];          $this_menu .= "\t\t<a href='{$this->settings['_base_url']}app={$real_app}&module={$items['items'][0]['module']}&section={$items['items'][0]['section']}{$_url}'>{$_title}</a>\r\n";       }       else       {          $haveItems = FALSE;          $_this_menu = "";                   if( $menu['titles'][ $app ][ $key ] )          {             $_this_menu .= "\t\t<span>" . $menu['titles'][ $app ][ $key ]['title'] . "</span>\r\n";          }          else          {             $_this_menu .= "\t\t<span>" . $key . "</span>\r\n";          }                   $_this_menu .= "\t\t<ul>\r\n";          foreach( $items['items'] as $i => $info )          {             $real_app   = $info['app_dir'];                         if ( !ipsRegistry::getClass('class_permissions')->checkForSectionAccess( $real_app, $info['module'], $info['section'] ) )             {                continue;             }             if( is_array( $seen[ $app ][ $info['module'] ] ) && in_array( $info['pos'], $seen[ $app ][ $info['module'] ] ) ){                // Decided to show these because we need to retain access to the options for 3rd party apps                //continue; // don't show sub-sub items             }                         $haveItems = TRUE;             $_this_menu .= "\t\t\t<li>\r\n";             $_this_menu .= "\t\t\t\t<a href='{$this->settings['_base_url']}app={$real_app}&module={$info['module']}&section={$info['section']}&{$info['url']}'>{$info['title']}</a>\r\n";             $_this_menu .= "\t\t\t</li>\r\n";                         $seen[ $app ][ $info['module'] ][] = $info['pos'];          }          $_this_menu .= "\t\t</ul>\r\n";                   if ( $haveItems )          {             $this_menu .= $_this_menu;          }       }             $this_menu .= "\t</li>\r\n";    }         $this_menu .= "</ul>\r\n";       $return[ $app ] = $this_menu; } //print_r( $seen ); //print_r($menu);exit; //print_r($titles);exit; //--endhtml--// return $return; } /**  * Generate the application menu HTML  *  * @access   public  * @param   string      Raw menu data  * @param   array       Tab order  * @return   string      HTML  */ public function global_app_menu_html( $raw_menu, $mainTabData, $otherTabData ) { $fakeAppAccess = array(); $IPBHTML = ""; //--starthtml--// $menus = $this->global_menu_sub_navigation( $raw_menu ); $defaultFakeApp      = array(); $defaultFakeModule   = array(); $IPBHTML .= <<<HTML <ul id='app_menu' class='app_menu'>    <li>       <a href='#' id='bookmarks_button'><img src='{$this->settings['skin_acp_url']}/images/icons/bookmark_white_20.png' /></a>       <ul id='bookmarks_items' class='right' style='display:none'></ul>    </li> HTML; $count        = 0; $other_menu   = ""; $otherIsActive = false; /* Loop */ foreach( $otherTabData as $tabkey => $data ) {    $tag = '';    if ( ! $data['isEnabled'] || ! $data['permCheck'] )    {       continue;    }       if ( $data['active'] )    {       $otherIsActive = true;    }       if ( ipsRegistry::$applications[ $data['appDir'] ]['app_location'] == 'ips' || ipsRegistry::$applications[ $data['appDir'] ]['app_location'] == 'root' )    {       $tag = "<span class='ipsBadge badge_purple'>{$this->lang->words['gl_ipsapp']}</span> ";    }    $other_menu .= <<<EOF    <li id='app_{$data['appDir']}'>       <a href='{$data['url']}'>          {$tag}          {$data['title']}       </a>       {$menus[ $tabkey ]}    </li> EOF;    $count++; } //----------------------------------------- // Draw tabs based on order preference //----------------------------------------- foreach( $mainTabData as $tabkey => $data ) {    if ( $tabkey == 'other' )    {       if ( ! $count )       {          continue;       }             $data['active'] = $otherIsActive;    }       if ( ! $data['isEnabled'] || ! $data['permCheck'] )    {       continue;    }          $class = ( $data['active'] ) ? 'active' : '';       if( $tabkey == 'other' )    {    $IPBHTML .= <<<HTML       <li class='{$class}'>          <a href='{$this->settings['_base_url']}app=core&module=applications&section=applications&do=applications_overview'>{$this->lang->words['other_applications']}</a>          <ul id='menu__other' style='display: none'>             {$other_menu}          </ul>       </li>   HTML;    }    else    {    $IPBHTML .= <<<HTML    <li class='{$class}'>       <a href='{$data['url']}'>{$data['title']}</a>       {$menus[ $tabkey ]}    </li> HTML;    } } $IPBHTML .= "</ul>"; //--endhtml--// return $IPBHTML; } /**  * Show the information box on the page  *  * @access   public  * @param   string       Box title  * @param   string      Box content  * @return   string      HTML  */ public function information_box($title="", $content="") { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <div class='section_title'>    <h2>{$title}</h2> </div> <div class='section_info'>{$content}</div> EOF; //--endhtml--// return $IPBHTML; } /**  * Show a warning box  *  * @access   public  * @param   string       Title  * @param   string      Content  * @return   string      HTML  */ public function warning_box($title="", $content="") { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <div class='warning'>  <h4>{$title}</h4>  {$content} </div> EOF; //--endhtml--// return $IPBHTML; } /**  * Shows the debug query output at the bottom of the page  *  * @access   public  * @param   string       Queries to show  * @return   string      HTML  */ public function global_query_output($queries="") { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <br /><br /> <div align='center' class='clear' style='margin-left:auto;margin-right:0'> <div class='acp-box' style='text-align:left;'>  <h3>{$this->lang->words['gbl_queries']}</h3>  <div style='overflow:auto'>{$queries}</div> </div> </div> EOF; //--endhtml--// return $IPBHTML; } /**  * Shows the debug included files output at the bottom of the page  *  * @param   int         Number of files  * @param   string       Files to show  * @return   string      HTML  */ public function global_if_output($count=0,$files="") { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <br /><br /> <div align='center' style='margin-left:auto;margin-right:0'> <div class='acp-box' style='text-align:left;'>  <h3>{$count} {$this->lang->words['gbl_inc_files']}</h3>  <div style='padding: 4px;'>{$files}</div> </div> </div> EOF; //--endhtml--// return $IPBHTML; } /**  * Shows the debug memory output at the bottom of the page  *  * @access   public  * @param   string       Memory to show  * @param   string      Total memory used  * @param   string      Peak memory used  * @return   string      HTML  */ public function global_memory_output($memory="", $total=0, $peak=0 ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <br /><br /> <div align='center' style='margin-left:auto;margin-right:0'> <div class='acp-box' style='text-align:left;'>    <h3>{$this->lang->words['gbl_memory']}</h3>    <table class='ipsTable'>       {$memory}    </table>    <div class='acp-actionbar' style='text-align: left;'>       <strong>{$this->lang->words['ttlmemoryused']} {$total} ({$this->lang->words['peakmemoryused']} {$peak})</strong>    </div> </div> </div> EOF; //--endhtml--// return $IPBHTML; } /**  * Show the login form  *  * @access   public  * @param   string       Query string to remember  * @param   string      Message to show  * @param   bool      Replace the form (deprecated)  * @param   array       Additional data to add to the form  * @return   string      HTML  */ public function log_in_form( $query_string="", $message="", $replace_form=false, $additional_data=array() ) { $IPBHTML = ""; //--starthtml--// $IPS_DOC_CHAR_SET   = IPS_DOC_CHAR_SET; $publicDirectory   = PUBLIC_DIRECTORY; if ( $this->settings['logins_over_https'] ) {    $this->settings['skin_acp_url'] = str_replace( 'http://', 'https://', $this->settings['skin_acp_url'] );    $this->settings['public_dir'] = str_replace( 'http://', 'https://', $this->settings['public_dir'] );    $this->settings['js_main_url'] = str_replace( 'http://', 'https://', $this->settings['js_main_url'] );   } $IPBHTML .= <<<HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml"> <head>    <meta http-equiv="content-type" content="text/html; charset={$IPS_DOC_CHAR_SET}" />    <meta http-equiv="Pragma" content="no-cache" />    <meta http-equiv="Cache-Control" content="no-cache" />    <meta http-equiv="Expires" content="Fri, 01 January 1999 01:00:00 GMT" />    <link rel="shortcut icon" href='favicon.ico' />    <title><%TITLE%></title>    <script type='text/javascript'>       jsDebug = 1;       USE_RTE = 0;       isRTL   = false;             if ( top != self )       {          top.location.href = window.location.href;       }    </script> HTML; /** CSS ----------------------------------------- */ /*if ( $this->settings['use_minify'] ) {    $_basics   = CP_DIRECTORY . '/skin_cp/acp.css,' . CP_DIRECTORY . '/skin_cp/acp_editor.css';    $IPBHTML   .= "\n\t<link rel=\"stylesheet\" type=\"text/css\" media='screen' href=\"{$this->settings['public_dir']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&f={$_basics}\">\n"; } else {*/    $IPBHTML .= <<<HTML    <style type='text/css' media='all'>       @import url( "{$this->settings['skin_acp_url']}/acp.css?ipbv={$this->registry->output->antiCacheHash}" );       @import url( "{$this->settings['skin_acp_url']}/acp_editor.css?ipbv={$this->registry->output->antiCacheHash}" );    </style> HTML; //} $IPBHTML .= <<<HTML    <!--[if IE]>       <style type='text/css' media='all'>          @import url( "{$this->settings['skin_acp_url']}/acp_ie_tweaks.css?ipbv={$this->registry->output->antiCacheHash}" );       </style>    <![endif]--> HTML; if( IN_DEV ) {    $IPBHTML .= <<<HTML       <style type='text/css' media='all'>          .ipsActionBar > ul > li.inDev {             display: inline;          }       </style> HTML; } /** JS ----------------------------------------- */ /*if ( $this->settings['use_minify'] ) {    $_others = ',' . CP_DIRECTORY . '/js/acp.js,' . CP_DIRECTORY . '/js/acp.' . implode('.js,' . CP_DIRECTORY . '/js/acp.', array( 'menu', 'tabs' ) ) . '.js';       $IPBHTML .= <<<HTML       <script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?g=js&ipbv={$this->registry->output->antiCacheHash}'></script>    <script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&f={$publicDirectory}/js/ipb.js{$_others}'></script> HTML; } else {*/    $IPBHTML .= <<<HTML       <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/prototype.js?ipbv={$this->registry->output->antiCacheHash}"></script>       <script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/scriptaculous/scriptaculous-cache.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type="text/javascript" src='{$this->settings['js_base_url']}js/ipb.js?ipbv={$this->registry->output->antiCacheHash}&load={$this->settings['extraJsModules']}'></script>       <script type='text/javascript' src='{$this->settings['js_main_url']}acp.menu.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type='text/javascript' src='{$this->settings['js_main_url']}acp.js?ipbv={$this->registry->output->antiCacheHash}'></script>       <script type="text/javascript" src='{$this->settings['js_main_url']}acp.tabs.js?ipbv={$this->registry->output->antiCacheHash}'></script> HTML; //} $IPBHTML .= <<<HTML    <script type='text/javascript'>    //<![CDATA[       ipb.vars['st']   = "{$this->request['st']}";       ipb.vars['base_url']   = "{$this->settings['_base_url']}";       ipb.vars['front_url']   = "{$this->settings['board_url']}/index.php?";       ipb.vars['app_url']      = "{$this->settings['base_url']}";       ipb.vars['image_url']    = "{$this->settings['skin_app_url']}/images/";       ipb.vars['md5_hash']   = "{$this->member->form_hash}";       /* ---- cookies ----- */       ipb.vars['cookie_id']          = '{$this->settings['cookie_id']}';       ipb.vars['cookie_domain']       = '{$this->settings['cookie_domain']}';       ipb.vars['cookie_path']         = '{$this->settings['cookie_path']}';       ipb.templates['close_popup']   = "<img src='{$this->settings['img_url']}/close_popup.png' alt='x' />";       ipb.templates['page_jump']      = new Template("<div id='#{id}_wrap' class='ipbmenu_content'><h3 class='bar'>{$this->lang->words['gl_pagejump']}</h3><input type='text' class='input_text' id='#{id}_input' size='8' /> <input type='submit' value='Go' class='input_submit add_folder' id='#{id}_submit' /></div>");       ipb.templates['ajax_loading']    = "<div id='ajax_loading'>{$this->lang->words['gl_loading']}</div>";    //]]>    </script>    <script type='text/javascript'>       Loader.boot();       acp = new IPBACP;       Event.observe( window, 'load', function(e){          $('username').focus();       });    </script>    <script type="text/javascript" src="{$this->settings['cache_dir']}lang_cache/{$this->lang->lang_id}/acp.lang.js?ipbv={$this->registry->output->antiCacheHash}" charset="{$IPS_DOC_CHAR_SET}"></script> </head> <body id='ipboard_body' class='login_screen'> <div id='loading-layer' style='display:none'>    <div id='loading-layer-shadow'>      <div id='loading-layer-inner' >         <img src='{$this->settings['skin_acp_url']}/images/loading_anim.gif' style='vertical-align:middle' />         <span style='font-weight:bold' id='loading-layer-text'>{$this->lang->words['ajax_please_wait']}</span>      </div>    </div> </div> HTML; $extraClass = ( $message ) ? 'with_message' : ''; if( $replace_form ) {    $IPBHTML .= $additional_data[0]; } else {    $url = "{$this->settings['_base_url']}app=core&module=login&do=login-complete";    if ( $this->settings['logins_over_https'] )    {       $url = str_replace( 'http://', 'https://', $url );    }    $IPBHTML .= <<<HTML <form action='{$url}' method='post'> <input type='hidden' name='qstring' id='qstring' value='{$query_string}' /> <div id='login' class='{$extraClass}'>    <img src='{$this->settings['skin_acp_url']}/images/login_logo.png' id='login_logo' /> HTML; if ( $message ) {    $IPBHTML .= <<<HTML       <div id='login_error'>{$message}</div> HTML; } $IPBHTML .= <<<HTML    <div id='login_controls'>       <label for='username'>{$this->lang->words['gl_signinname']}</label>       <input type='text' size='20' id='username' name='username' value='' class='textinput'>             <label for='password'>{$this->lang->words['gl_password']}</label>       <input type='password' size='20' id='password' name='password' value='' class='textinput'> HTML;       if( count($additional_data) > 0 )       {          foreach( $additional_data as $form_html )          {             $IPBHTML .= $form_html;          }       }       $IPBHTML .= <<<HTML    </div>    <div id='login_submit'>       <input type='submit' class='button' value="{$this->lang->words['gl_signin']}" />    </div> </div> </form> HTML; $IPBHTML .= <<<HTML       </div>    </div>    </form>    <script type='text/javascript'>       $('username').focus();    </script> </body> </html> HTML; } //--endhtml--// return $IPBHTML; } /**  * Redirect hit for auto-redirecting pages (e.g. "recache all caches")  *  * @access   public  * @param   string       URL to send to  * @param   string      Text to show  * @param   integer      Number of seconds to wait  * @return   string      HTML  */ public function global_redirect_hit($url, $text="", $time=1) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <script type='text/javascript'>    jsDebug = 0;    USE_RTE = 0; </script> <script type="text/javascript" src="{$this->settings['js_base_url']}js/3rd_party/prototype.js?ipbv={$this->registry->output->antiCacheHash}"></script> <script type='text/javascript' src='{$this->settings['js_base_url']}js/3rd_party/scriptaculous/scriptaculous-cache.js?ipbv={$this->registry->output->antiCacheHash}'></script> <script type="text/javascript" src='{$this->settings['js_base_url']}js/ipb.js?ipbv={$this->registry->output->antiCacheHash}&load={$this->settings['extraJsModules']}'></script> <script type='text/javascript' src='{$this->settings['js_main_url']}acp.js?ipbv={$this->registry->output->antiCacheHash}'></script> <script type="text/javascript" src='{$this->settings['js_main_url']}acp.tabs.js?ipbv={$this->registry->output->antiCacheHash}'></script> <script type="text/javascript"> //<![CDATA[ ipb.vars['st']   = "{$this->request['st']}"; ipb.vars['base_url']   = "{$this->settings['_base_url']}"; ipb.vars['front_url']   = "{$this->settings['board_url']}/index.php?"; ipb.vars['app_url']   = "{$this->settings['base_url']}"; ipb.vars['image_url']   = "{$this->settings['skin_app_url']}/images/"; ipb.vars['md5_hash']   = "{$this->member->form_hash}"; /* ---- cookies ----- */ ipb.vars['cookie_id']          = '{$this->settings['cookie_id']}'; ipb.vars['cookie_domain']       = '{$this->settings['cookie_domain']}'; ipb.vars['cookie_path']         = '{$this->settings['cookie_path']}'; Loader.boot(); acp = new IPBACP; //]]> </script> <style type='text/css' media='all'>    @import url( "{$this->settings['skin_acp_url']}/acp.css?ipbv={$this->registry->output->antiCacheHash}" ); </style> <meta http-equiv='refresh' content='{$time}; url={$url}' /> <div class='information-box'>    <h4>{$this->lang->words['gbl_page_redirecting']}</h4>    {$this->lang->words['page_will_refresh']} <a href='$url'>{$this->lang->words['refresh_dont_wait']}</a> </div> <br /> <div class='redirector'>    <div class='info'>{$text}</div>   </div> EOF; //--endhtml--// return $IPBHTML; } /**  * Initialize global redirection javascript for AJAX redirecting  *  * @access   public  * @param   string       URL to redirect to  * @param   string      Text to show  * @param   string      Additional text to add  * @return   string      HTML  */ public function global_ajax_redirect_init($url='', $text='', $addtotext='') { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <div class='redirector'>    <div class='info' id='refreshbox'>{$this->lang->words['gbl_initializing']}</div>   </div> <script type='text/javascript'> //<![CDATA[ acp.ajaxRefresh( '$url', '$text', $addtotext ); //]]> </script> EOF; //--endhtml--// return $IPBHTML; } /**  * Global redirection completed page  *  * @access   public  * @param   string       Text to show  * @return   string      HTML  */ public function global_redirect_done($text='This function has now finished executing') { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <style type='text/css' media='all'>    @import url( "{$this->settings['skin_acp_url']}/acp.css?ipbv={$this->registry->output->antiCacheHash}" ); </style> <div class='redirector complete'>    <div class='info'>{$text}</div> </div> EOF; //--endhtml--// return $IPBHTML; } /**  * General redirect page with message  *  * @access   public  * @param   string       URL to send to  * @param   integer      Number of seconds to wait before redirecting  * @param   string      Text to display  * @return   string      HTML  */ public function global_redirect_halt($url) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <div class='warning'>  <h4>{$this->lang->words['redirect_halt_title']}</h4>     <p><strong>{$this->registry->output->global_error}</strong></p>    <br />    <ul>       <li style='font-weight:bold'><a href='$url'>{$this->lang->words['redirect_halt_continue']}</a></a>       <li><a href='{$this->settings['this_url']}'>{$this->lang->words['redirect_repeat_step']}</a>    </ul> </div> EOF; $this->registry->output->global_error = ''; //--endhtml--// return $IPBHTML; } /**  * Generate sub navigation menu for sidebar  *  * @access   public  * @param   array       Menu data  * @return   string      HTML  */ public function menu_sub_navigation( $menu ) { $main_html = array(); $IPBHTML  = ""; //--starthtml--// if( is_array($menu[ ipsRegistry::$current_application ]) AND count($menu[ ipsRegistry::$current_application ]) ) { foreach( $menu[ ipsRegistry::$current_application ] as $id => $data ) {    $links = "";    $_id  = preg_replace( '/^\d+?_(.*)$/', "\\1", $id );    if ( $_id != ipsRegistry::$current_module )    {       continue;    }    foreach( $data['items'] as $_id => $_data )    {       $_url  = ( $_data['url'] ) ? "&{$_data['url']}" : ""; $links .= <<<EOF       <div class='menulinkwrapBlock'>          <a href="{$this->settings['base_url']}module={$_data['module']}&section={$_data['section']}{$_url}">{$_data['title']}</a>       </div> EOF;    }       if ( $links )    { $main_html[] = <<<EOF <!-- MENU FOR {$data['title']}--> <div class='menuouterwrap'>  <div class='menucatwrapBlock'>{$data['title']}</div>  {$links} </div> <!-- / MENU FOR {$data['title']}--> EOF;    } } } if ( is_array( $main_html ) AND count( $main_html ) ) { $IPBHTML .= <<<EOF <div id='subMenuWrap'> EOF; $IPBHTML .= implode( "<br />", $main_html ); $IPBHTML .= <<<EOF </div> EOF; } //--endhtml--// return $IPBHTML; } /**  * Menu category wrapper for sidebar "categories"  *  * @access   public  * @param   array       Links to show  * @param   string      Module (cleaned)  * @param   array       Menu items to show  * @return   string      HTML  */ public function menu_cat_wrap( $links=array(), $clean_module="", $menu=array() ) { $IPBHTML = ""; $seen   = 0; $titles = 0; //--starthtml--//    foreach( $links as $app => $module )    {       $IPBHTML   .= "<ul>\n";       $_CHILD      = '';       $_MENU      = '';             foreach( $module as $data )       {          $class = '';          if ( $app == ipsRegistry::$current_application AND $clean_module == $data['module'] )          {             $class = 'active';          }          if( isset( $menu[ $app ] ) && is_array( $menu[ $app ] ) )          {             foreach( $menu[ $app ] as $id => $__data )             {                //print_r($__data);exit;                preg_match( '/^(\d+?)_(.*)$/', $id, $result );                if ( $result[2] != $data['module'] )                {                   continue;                }                /* Heres where we check whether this is a single item */                if( intval($result[1]) === 0 )                {                   $_single_item   = true;                   $_count         = 0;                                     foreach( $menu[ $app ] as $__k => $__v )                   {                      if ( preg_match( '/(\d+?)_' . $result[2] . "/", $__k ) )                      {                         $_count++;                      }                   }                   if( $_count > 1 )                   {                      $_single_item   = false;                   }                   if( $_single_item )                   {                      $_url  = ( $__data['items'][0]['url'] ) ? "&{$__data['items'][0]['url']}" : "";                                           $_MENU .= <<<EOF                         <!-- UHM MENU FOR {$data['title']}-->                         <li class='{$class}'>                            <a href='{$this->settings['_base_url']}app={$app}&module={$__data['items'][0]['module']}&section={$__data['items'][0]['section']}{$_url}'>{$__data['title']}</a>                         </li> EOF;                      continue(2);                   }                }                /* /end */                if ( count( $__data['items'] ) > 1 )                {    $_CHILD .= <<<EOF                <li>                   <a href='{$this->settings['_base_url']}app={$app}&module={$__data['items'][0]['module']}&section={$__data['items'][0]['section']}&{$__data['items'][0]['url']}'>{$__data['items'][0]['title']}</a>                   <ul> EOF;                                     $_seen            = 0;                   $seen_in_this_group   = 0;                   foreach( $__data['items'] as $_id => $_data )                   {                      $_seen++;                                           if( $seen_in_this_group == 0 )                      {                         $seen_in_this_group++;                         continue;                      }                                           $_class = '';                      $_url  = ( $_data['url'] ) ? "&{$_data['url']}" : "";                      if ( $_seen == count( $__data['items'] ) )                      {                         $_class = 'last';                      }    $_CHILD .= <<<EOF                      <li class='{$_class}'><a href="{$this->settings['_base_url']}app={$app}&module={$_data['module']}&section={$_data['section']}{$_url}">{$_data['title']}</a></li> EOF;                   }    $_CHILD .= <<<EOF                   </ul>                </li> EOF;                ####### / MORE THAN 1 CHILD ITEM   #######                }                else                {                   $_url = ( $__data['items'][0]['url'] ) ? "&{$__data['items'][0]['url']}" : "";    $_CHILD .= <<<EOF                <li>                   <a href="{$this->settings['_base_url']}app={$app}&module={$__data['items'][0]['module']}&section={$__data['items'][0]['section']}{$_url}">{$__data['items'][0]['title']}</a>                </li> EOF;                }             }                         if( $_CHILD )             {             $_MENU .= <<<EOF                   <!-- MENU FOR {$data['title']}-->                   <li class='{$class} has_sub'>                      {$data['title']}                      <ul>                         {$_CHILD}                      </ul>                   </li> EOF;             }             $_CHILD = '';          }       }       $IPBHTML .= <<<EOF       {$_MENU}       </ul> EOF;    } //--endhtml--//    return $IPBHTML; } /**  * Navigation HTML wrapper  *  * @access   public  * @param   string       Menu content  * @return   string      HTML  */ public function wrap_nav($content="") { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <ol id='breadcrumb'>    {$content} </ol> EOF; //--endhtml--// return $IPBHTML; } /**  * Global informational message to display  *  * @access   public  * @return   string      HTML  */ public function global_message() { $IPBHTML = ""; //--starthtml--// if( !$this->registry->getClass('output')->persistent_message ) { $IPBHTML .= <<<EOF <script type='text/javascript'>    document.observe("dom:loaded", function(){       ipb.global.showInlineNotification( "{$this->registry->getClass('output')->global_message}", { showClose: false } );    }); </script> EOF; } else { $IPBHTML .= <<<EOF <div class='information-box'> EOF;     $IPBHTML .= $this->registry->getClass('output')->global_message; $IPBHTML .= <<<EOF </div> <br /> EOF; } //--endhtml--// return $IPBHTML; } /**  * Global error message to display  *  * @access   public  * @return   string      HTML  */ public function global_error_message() { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <div class='warning'>    <h4>{$this->lang->words['ipb_message']}</h4>    {$this->registry->output->global_error} </div> <br /> EOF; //--endhtml--// return $IPBHTML; } /**  * Pagination wrapper  *  * @access   public  * @param   array       Work data  * @param   array       Pagination data  * @return   string      HTML  */ public function paginationTemplate( $work, $data ) { $IPBHTML = ""; //--starthtml--// if( $work['pages'] > 1 ) { $IPBHTML .= <<<EOF    <ul class='pagination'> EOF;    if( !$data['noDropdown'] )    {       $IPBHTML .= <<<EOF       <li class='pagejump pj{$data['uniqid']}'>          <img src='{$this->settings['skin_acp_url']}/images/dropdown.png' alt='+' />          <script type='text/javascript'>             ipb.global.registerPageJump( '{$data['uniqid']}', { url: "{$data['baseUrl']}", stKey: '{$data['startValueKey']}', perPage: {$data['itemsPerPage']}, totalPages: {$work['pages']} } );          </script>       </li> EOF;    } if( 1 < ($work['current_page'] - $data['dotsSkip']) ) { $IPBHTML .= <<<EOF    <li class='first'><a href='{$data['baseUrl']}&{$data['startValueKey']}=0' title='{$this->lang->words['tpl_gotofirst']}' rel='start'>{$this->lang->words['_laquo']} {$this->lang->words['tpl_isfirst']}</a></li> EOF; } if( $work['current_page'] > 1 ) {    $stkey = intval( $data['currentStartValue'] - $data['itemsPerPage'] ); $IPBHTML .= <<<EOF    <li class='prev'><a href="{$data['baseUrl']}&{$data['startValueKey']}={$stkey}" title="{$this->lang->words['tpl_prev']}" rel='prev'>{$this->lang->words['pg_prev']}</a></li> EOF; } if( count($work['_pageNumbers']) AND is_array($work['_pageNumbers']) ) {    foreach( $work['_pageNumbers'] as $_real => $_page )    {       if( $_real == $data['currentStartValue'] )       {       $IPBHTML .= <<<EOF          <li class='active'>{$_page}</li> EOF;       }       else       {       $IPBHTML .= <<<EOF          <li><a href="{$data['baseUrl']}&{$data['startValueKey']}={$_real}" title="{$_page}">{$_page}</a></li> EOF;       }    } } if( $work['current_page'] < $work['pages'] ) {    $stkey = intval( $data['currentStartValue'] + $data['itemsPerPage'] ); $IPBHTML .= <<<EOF    <li class='next'><a href="{$data['baseUrl']}&{$data['startValueKey']}={$stkey}" title="{$this->lang->words['tpl_next']}" rel='next'>{$this->lang->words['pg_next']}</a></li> EOF; } if( !empty( $work['_showEndDots'] ) ) {    $stkey = intval( ( $work['pages'] - 1 ) * $data['itemsPerPage'] ); $IPBHTML .= <<<EOF    <li class='last'><a href="{$data['baseUrl']}&{$data['startValueKey']}={$stkey}" title="{$this->lang->words['tpl_gotolast']}" rel='last'>{$this->lang->words['tpl_islast']} {$this->lang->words['_raquo']}</a></li> EOF; } $_tplpages   = sprintf( $this->lang->words['tpl_pages_acp'], $work['current_page'], $work['pages'] ); $IPBHTML .= <<<EOF       <li class='total'>({$_tplpages})</li>    </ul> EOF; } else {    $IPBHTML .= <<<EOF    <span class='pagination no_pages'>{$this->lang->words['page_1_of_1']}</span> EOF; } //--endhtml--// return $IPBHTML; } /**  * System error page  *  * @access   public  * @param   string       Error message to show  * @param   integer      Error code  * @param   string      Error title  * @param   string      Document character set  * @return   string      HTML  */ public function system_error( $msg, $code=0, $title='', $IPS_DOC_CHAR_SET=IPS_DOC_CHAR_SET ) { $title = !empty( $title ) ? $title : $this->lang->words['gbl_system_error']; if( $code ) {    $finalMessage = "[#{$code}] " . ( is_array( $msg ) ? implode( "<br />", $msg ) : $msg ); } else {    $finalMessage = is_array( $msg ) ? implode( "<br />", $msg ) : $msg; } $HTML .= <<<EOF <div class='warning'>  <h4>{$title}</h4>     <p><strong>{$finalMessage}</strong></p>    <br />    <ul>       <li><a href='javascript:history.go(-1)'>{$this->lang->words['gbl_go_back']}</a>       <li><a href='{$this->settings['_base_url']}'>{$this->lang->words['gbl_go_to_dashboard']}</a>       <li><a href='{$this->settings['base_url']}'>{$this->lang->words['gbl_go_to_module_home']}</a>    </ul> </div> EOF; return $HTML; } /**  * HTML for quick help popup boxes  *  * @access   public  * @param   string       Title  * @param   string      Help contents  * @return   string      HTML  */ public function quickHelp( $title, $body ) { $IPBHTML = ""; //--starthtml--// $IPBHTML .= <<<EOF <div class='acp-box'>  <h3>{$title}</h3>    <div style='padding: 4px; line-height: 1.5'>{$body}</div> </div> EOF; //--endhtml--// return $IPBHTML; } }[/Spoiler]Salveaza! iar apoi in ACP va aparea undeva sus un mesaj pe gri la care da-i close! succes! ..Â
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now