/** * Shows the user their menu options * * This shows the average Joe User their menu options. This is the user block on the left side * * @param string $help Help file to show * @param string $title Title of Menu * @param string $position Side being shown on 'left', 'right'. Though blank works not likely. * @see function COM_adminMenu * */ function COM_userMenu($help = '', $title = '', $position = '') { global $_TABLES, $_CONF, $LANG01, $LANG04, $_BLOCK_TEMPLATE; $retval = ''; if (!COM_isAnonUser()) { $usermenu = COM_newTemplate($_CONF['path_layout']); if (isset($_BLOCK_TEMPLATE['useroption'])) { $templates = explode(',', $_BLOCK_TEMPLATE['useroption']); $usermenu->set_file(array('option' => $templates[0], 'current' => $templates[1])); } else { $usermenu->set_file(array('option' => 'useroption.thtml', 'current' => 'useroption_off.thtml')); } $usermenu->set_var('block_name', str_replace('_', '-', 'user_block')); if (empty($title)) { $title = DB_getItem($_TABLES['blocks'], 'title', "name='user_block'"); } // what's our current URL? $thisUrl = COM_getCurrentURL(); $retval .= COM_startBlock($title, $help, COM_getBlockTemplate('user_block', 'header', $position)); // This function will show the user options for all installed plugins // (if any) $plugin_options = PLG_getUserOptions(); $nrows = count($plugin_options); for ($i = 0; $i < $nrows; $i++) { $plg = current($plugin_options); $usermenu->set_var('option_label', $plg->adminlabel); if (!empty($plg->numsubmissions)) { $usermenu->set_var('option_count', '(' . $plg->numsubmissions . ')'); } else { $usermenu->set_var('option_count', ''); } $usermenu->set_var('option_url', $plg->adminurl); if ($thisUrl == $plg->adminurl) { $retval .= $usermenu->parse('item', 'current'); } else { $retval .= $usermenu->parse('item', 'option'); } next($plugin_options); } $url = $_CONF['site_url'] . '/usersettings.php'; $usermenu->set_var('option_label', $LANG01[48]); $usermenu->set_var('option_count', ''); $usermenu->set_var('option_url', $url); if ($thisUrl == $url) { $retval .= $usermenu->parse('item', 'current'); } else { $retval .= $usermenu->parse('item', 'option'); } $url = $_CONF['site_url'] . '/users.php?mode=logout'; $usermenu->set_var('option_label', $LANG01[19]); $usermenu->set_var('option_count', ''); $usermenu->set_var('option_url', $url); $retval .= $usermenu->finish($usermenu->parse('item', 'option')); $retval .= COM_endBlock(COM_getBlockTemplate('user_block', 'footer', $position)); } else { $retval .= COM_startBlock($LANG01[47], $help, COM_getBlockTemplate('user_block', 'header', $position)); $login = COM_newTemplate($_CONF['path_layout']); $login->set_file('form', 'loginform.thtml'); $login->set_var('lang_username', $LANG01[21]); $login->set_var('lang_password', $LANG01[57]); $login->set_var('lang_forgetpassword', $LANG01[119]); $login->set_var('lang_login', $LANG01[58]); if ($_CONF['disable_new_user_registration']) { $login->set_var('lang_signup', ''); } else { $login->set_var('lang_signup', $LANG01[59]); } // 3rd party remote authentification. if ($_CONF['user_login_method']['3rdparty'] && !$_CONF['usersubmission']) { $modules = SEC_collectRemoteAuthenticationModules(); if (count($modules) == 0) { $user_templates->set_var('services', ''); } else { if (!$_CONF['user_login_method']['standard'] && count($modules) == 1) { $select = '<input type="hidden" name="service" value="' . $modules[0] . '"' . XHTML . '>' . $modules[0]; } else { // Build select $select = '<select name="service" id="service">'; if ($_CONF['user_login_method']['standard']) { $select .= '<option value="">' . $_CONF['site_name'] . '</option>'; } foreach ($modules as $service) { $select .= '<option value="' . $service . '">' . $service . '</option>'; } $select .= '</select>'; } $login->set_file('services', 'blockservices.thtml'); $login->set_var('lang_service', $LANG04[121]); $login->set_var('select_service', $select); $login->parse('output', 'services'); $login->set_var('services', $login->finish($login->get_var('output'))); } } else { $login->set_var('services', ''); } // OpenID remote authentification. if ($_CONF['user_login_method']['openid'] && $_CONF['usersubmission'] == 0 && !$_CONF['disable_new_user_registration']) { $login->set_file('openid_login', 'loginform_openid.thtml'); $login->set_var('lang_openid_login', $LANG01[128]); $login->set_var('input_field_size', 18); $login->set_var('app_url', $_CONF['site_url'] . '/users.php'); $login->parse('output', 'openid_login'); $login->set_var('openid_login', $login->finish($login->get_var('output'))); } else { $login->set_var('openid_login', ''); } // OAuth remote authentification. if ($_CONF['user_login_method']['oauth'] && $_CONF['usersubmission'] == 0 && !$_CONF['disable_new_user_registration']) { $modules = SEC_collectRemoteOAuthModules(); if (count($modules) == 0) { $login->set_var('oauth_login', ''); } else { $html_oauth = ''; foreach ($modules as $service) { $login->set_file('oauth_login', 'loginform_oauth.thtml'); $login->set_var('oauth_service', $service); // for sign in image $login->set_var('oauth_sign_in_image', $_CONF['site_url'] . '/images/login-with-' . $service . '.png'); $login->set_var('oauth_sign_in_image_style', ''); $login->parse('output', 'oauth_login'); $html_oauth .= $login->finish($login->get_var('output')); } $login->set_var('oauth_login', $html_oauth); } } else { $login->set_var('oauth_login', ''); } PLG_templateSetVars('loginblock', $login); $retval .= $login->finish($login->parse('output', 'form')); $retval .= COM_endBlock(COM_getBlockTemplate('user_block', 'footer', $position)); } return $retval; }
function getUserMenu() { global $_SP_CONF, $_USER, $_TABLES, $LANG01, $LANG_MB01, $LANG_LOGO, $LANG_AM, $LANG29, $_CONF, $_DB_dbms, $_GROUPS; $item_array = array(); if (!COM_isAnonUser()) { $plugin_options = PLG_getAdminOptions(); $num_plugins = count($plugin_options); if (SEC_isModerator() or SEC_hasRights('story.edit,block.edit,topic.edit,user.edit,plugin.edit,user.mail,syndication.edit', 'OR') or $num_plugins > 0) { $url = $_CONF['site_admin_url'] . '/index.php'; $label = $LANG29[34]; $item_array[] = array('label' => $label, 'url' => $url); } // what's our current URL? $elementUrl = COM_getCurrentURL(); $plugin_options = PLG_getUserOptions(); $nrows = count($plugin_options); for ($i = 0; $i < $nrows; $i++) { $plg = current($plugin_options); $label = $plg->adminlabel; if (!empty($plg->numsubmissions)) { $label .= ' (' . $plg->numsubmissions . ')'; } $url = $plg->adminurl; $item_array[] = array('label' => $label, 'url' => $url); next($plugin_options); } $url = $_CONF['site_url'] . '/usersettings.php?mode=edit'; $label = $LANG01[48]; $item_array[] = array('label' => $label, 'url' => $url); $url = $_CONF['site_url'] . '/users.php?mode=logout'; $label = $LANG01[19]; $item_array[] = array('label' => $label, 'url' => $url); } else { $url = $_CONF['site_url'] . '/users.php?mode=login'; $label = $LANG01[58]; $item_array[] = array('label' => $label, 'url' => $url); } return $item_array; }