/**
* Error on missing ECL cookie
*/
function pmx_ECL_Error($what)
{
    global $modSettings;
    if (!empty($modSettings['pmx_ecl'])) {
        if (empty($modSettings['pmxportal_disabled']) && !defined('PortaMx')) {
            PortaMx(true);
        } else {
            loadLanguage('PortaMx/PortaMx');
        }
        fatal_lang_error('pmxelc_failed_' . $what, false);
    }
}
/**
* Add menu to MenuContext
* Called from hook integrate_menu_buttons
**/
function PortaMx_MenuContext(&$menudata)
{
    global $txt, $context, $modSettings, $scripturl, $boarddir;
    if (empty($modSettings['pmxportal_disabled'])) {
        // Init the Portal if not loaded
        if (!defined('PortaMx')) {
            PortaMx(true);
        }
        // add community button after 'home'
        $fnd = array_search('home', array_keys($menudata)) + 1;
        if (!empty($context['pmx']['showhome'])) {
            $menudata = array_merge(array_slice($menudata, 0, $fnd), array('community' => array('title' => $txt['forum'], 'href' => $scripturl . '?action=community', 'icon' => '<span class="generic_icons community"></span>', 'active_button' => false, 'sub_buttons' => array())), array_slice($menudata, $fnd, count($menudata) - $fnd));
            $fnd++;
        }
        // add download button if enabled and accessible
        $dlact = array(0 => '', 1 => '');
        $dlactErr = array(0 => '', 1 => '');
        $dlaccess = isset($context['pmx']['settings']['dl_access']) ? $context['pmx']['settings']['dl_access'] : '';
        if (allowPmxGroup($dlaccess) && !empty($context['pmx']['settings']['download']) && preg_match('/(p:|c:|a:|)(.*)$/i', $context['pmx']['settings']['dl_action'], $match) > 0) {
            if ($match[1] == 'a:') {
                $dlact = array(0 => 'art', 1 => $match[2]);
            } elseif ($match[1] == 'c:') {
                $dlact = array(0 => 'cat', 1 => $match[2]);
            } elseif ($match[1] == 'p:') {
                $dlact = array(0 => 'spage', 1 => $match[2]);
            } else {
                $dlact = array(0 => 'action', 1 => $match[2]);
            }
            if (!empty($_REQUEST['pmxerror']) && in_array($_REQUEST['pmxerror'], array('acs', 'fail'))) {
                $dlactErr = array(0 => 'pmxerror', 1 => $_REQUEST['pmxerror']);
            }
            $menudata = array_merge(array_slice($menudata, 0, $fnd), array('download' => array('title' => $txt['download'], 'href' => $scripturl . '?' . $dlact[0] . '=' . $dlact[1], 'icon' => '<span class="generic_icons download"></span>', 'active_button' => false, 'sub_buttons' => array())), array_slice($menudata, $fnd, count($menudata) - $fnd));
            if (isset($_REQUEST[$dlact[0]]) && $_REQUEST[$dlact[0]] == $dlact[1] || isset($_REQUEST[$dlactErr[0]]) && $_REQUEST[$dlactErr[0]] == $dlactErr[1]) {
                $context['current_action'] = 'download';
            }
        }
        // add admin submenu before 'featuresettings'
        if (!empty($context['allow_admin'])) {
            $curract = pmx_http_build_query($_GET);
            $fnd = array_search('featuresettings', array_keys($menudata['admin']['sub_buttons']));
            $menudata['admin']['sub_buttons'] = array_merge(array_slice($menudata['admin']['sub_buttons'], 0, $fnd), array('pmx_center' => array('title' => $txt['pmx_extension'], 'href' => $scripturl . '?action=admin;area=pmx_center;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin'], 'sub_buttons' => array('pmxcenter' => array('title' => $txt['pmx_admincenter'], 'href' => $scripturl . '?action=admin;area=pmx_center;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxsettings' => array('title' => $txt['pmx_settings'], 'href' => $scripturl . '?action=admin;area=pmx_settings;sa=globals;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxblocks' => array('title' => $txt['pmx_blocks'], 'href' => $scripturl . '?action=admin;area=pmx_blocks;sa=all;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxcategories' => array('title' => $txt['pmx_categories'], 'href' => $scripturl . '?action=admin;area=pmx_categories;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxarticles' => array('title' => $txt['pmx_articles'], 'href' => $scripturl . '?action=admin;area=pmx_articles;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxsefengine' => array('title' => $txt['pmx_sefengine'], 'href' => $scripturl . '?action=admin;area=pmx_sefengine;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxlanguages' => array('title' => $txt['pmx_languages'], 'href' => $scripturl . '?action=admin;area=pmx_languages;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin']), 'pmxcache' => array('title' => $txt['pmx_cache'], 'href' => $scripturl . '?action=admin;area=pmx_cache;' . $context['session_var'] . '=' . $context['session_id'], 'show' => $context['allow_admin'] && is_dir($boarddir . '/cachepmx'))))), array_slice($menudata['admin']['sub_buttons'], $fnd, count($menudata['admin']['sub_buttons']) - $fnd));
            foreach ($menudata['admin']['sub_buttons']['pmx_center']['sub_buttons'] as $button => $value) {
                if (empty($value['show'])) {
                    unset($menudata['admin']['sub_buttons']['pmx_center']['sub_buttons'][$button]);
                }
            }
        } else {
            if (allowedTo('profile_view_own') && allowPmx('pmx_admin, pmx_blocks, pmx_articles, pmx_create', true)) {
                $fnd = array_search('mlist', array_keys($menudata));
                $menudata = array_merge(array_slice($menudata, 0, $fnd), array('portamx' => array('title' => $txt['pmx_extension'], 'icon' => '<span class="generic_icons adm_center"></span>', 'href' => '', 'active_button' => false, 'sub_buttons' => array('pmxcenter' => array('title' => $txt['pmx_admincenter'], 'href' => $scripturl . '?action=portamx;area=pmx_center;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin', true)), 'pmxsettings' => array('title' => $txt['pmx_settings'], 'href' => $scripturl . '?action=portamx;area=pmx_settings;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin', true)), 'pmxblocks' => array('title' => $txt['pmx_blocks'], 'href' => $scripturl . '?action=portamx;area=pmx_blocks;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin, pmx_blocks', true)), 'pmxcategories' => array('title' => $txt['pmx_categories'], 'href' => $scripturl . '?action=portamx;area=pmx_categories;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin', true)), 'pmxarticles' => array('title' => $txt['pmx_articles'], 'href' => $scripturl . '?action=portamx;area=pmx_articles;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin, pmx_articles, pmx_create', true)), 'pmxsefengine' => array('title' => $txt['pmx_sefengine'], 'href' => $scripturl . '?action=portamx;area=pmx_sefengine;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin', true)), 'pmxcache' => array('title' => $txt['pmx_cache'], 'href' => $scripturl . '?action=portamx;area=pmx_cache;' . $context['session_var'] . '=' . $context['session_id'], 'show' => allowPmx('pmx_admin, pmx_blocks, pmx_articles, pmx_create', true) && is_dir($boarddir . '/cachepmx'))))), array_slice($menudata, $fnd, count($menudata) - $fnd));
                foreach ($menudata['portamx']['sub_buttons'] as $button => $value) {
                    if (empty($value['show'])) {
                        unset($menudata['portamx']['sub_buttons'][$button]);
                    }
                }
            }
        }
        /**
         * Highlight the active button
         **/
        // SimpleDesk stand alone mode ?
        if (!empty($context['pmx']['showhome'])) {
            if (isset($_REQUEST['board']) || isset($_REQUEST['topic'])) {
                $context['current_action'] = 'community';
            } elseif (!empty($_REQUEST['action']) && in_array($_REQUEST['action'], array('community', 'recent', 'unreadreplies', 'unread', 'who', 'collapse'))) {
                $context['current_action'] = 'community';
            }
        } elseif (!empty($context['pmx']['showhome'])) {
            if (empty($_REQUEST['action']) && empty($_REQUEST['board']) && empty($_REQUEST['topic'])) {
                $context['current_action'] = 'home';
            }
        }
        // Highlight the profile button on this..
        if (isset($_REQUEST['action']) && $_REQUEST['action'] == 'portamx' && allowPmx('pmx_admin, pmx_blocks, pmx_articles, pmx_create', true)) {
            $context['current_action'] = 'portamx';
        }
    }
}