Jump to content

Recommended Posts

Posted

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.

  • Upvote 1
Posted

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

  • Moderators
Posted

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

Posted

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

Posted

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( '&amp;', '&', $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}>
            &nbsp; <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']}&amp;{$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']}'>&nbsp;</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&amp;module=extras&amp;section=legends&amp;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' />&nbsp;&nbsp;&nbsp; <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&amp;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}&amp;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}&amp;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( '&amp;'   , '&', $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&section=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}&amp;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&amp;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}&amp;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}&amp;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( '&amp;', '&', $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&amp;module=mycp&amp;section=dashboard'>{$this->lang->words['gbl_dashboard']}</a>
                </li>
                <li>
                    <a href='{$this->settings['_base_url']}&amp;module=login&amp;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']}>&larr;</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> &copy; {$year} IPS, Inc. &nbsp;&nbsp;|&nbsp;&nbsp; <a href='http://www.invisionpower.com/clients/' target='_blank' title='{$this->lang->words['gl_getsupport_title']}'>{$this->lang->words['gl_getsupport']}</a> &nbsp;&nbsp;|&nbsp;&nbsp; <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
    &nbsp;&nbsp;|&nbsp;&nbsp; <a href='#' onclick="$('acpQueries').toggle(); return false;">{$count} Queries and {$files} Included Files</a>
    
HTML;
}

$acpUrl = str_replace( '&amp;', '&', $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'] ) ? "&amp;{$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}&amp;module={$items['items'][0]['module']}&amp;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}&amp;module={$info['module']}&amp;section={$info['section']}&amp;{$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>&nbsp;&nbsp;";
    }

    $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&amp;module=applications&amp;section=applications&amp;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}&amp;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&amp;ipbv={$this->registry->output->antiCacheHash}'></script>
    <script type='text/javascript' src='{$this->settings['public_dir']}min/index.php?ipbv={$this->registry->output->antiCacheHash}&amp;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}&amp;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&amp;module=login&amp;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}&amp;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'] ) ? "&amp;{$_data['url']}" : "";
$links .= <<<EOF
        <div class='menulinkwrapBlock'>
            <a href="{$this->settings['base_url']}module={$_data['module']}&amp;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'] ) ? "&amp;{$__data['items'][0]['url']}" : "";
                            
                            $_MENU .=  <<<EOF
                                <!-- UHM MENU FOR {$data['title']}-->
                                <li class='{$class}'>
                                    <a href='{$this->settings['_base_url']}app={$app}&amp;module={$__data['items'][0]['module']}&amp;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}&amp;module={$__data['items'][0]['module']}&amp;section={$__data['items'][0]['section']}&amp;{$__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'] ) ? "&amp;{$_data['url']}" : "";

                            if ( $_seen == count( $__data['items'] ) )
                            {
                                $_class = 'last';
                            }

    $_CHILD .= <<<EOF
                            <li class='{$_class}'><a href="{$this->settings['_base_url']}app={$app}&amp;module={$_data['module']}&amp;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'] ) ? "&amp;{$__data['items'][0]['url']}" : "";
    $_CHILD .= <<<EOF
                    <li>
                        <a href="{$this->settings['_base_url']}app={$app}&amp;module={$__data['items'][0]['module']}&amp;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']}&amp;{$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']}&amp;{$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']}&amp;{$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']}&amp;{$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']}&amp;{$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! .. 

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.