/** * 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'; } } }