1
0
mirror of https://github.com/e107inc/e107.git synced 2025-06-02 08:55:18 +02:00

191 lines
5.5 KiB
PHP

<?php
/*
* e107 website system
*
* Copyright (C) 2008-2013 e107 Inc (e107.org)
* Released under the terms and conditions of the
* GNU General Public License (http://www.gnu.org/licenses/gpl.txt)
*
*/
if (!defined('e107_INIT')) { exit; }
$loginPrefs = e107::getConfig('menu')->getPref('login_menu');
if(defined('FPW_ACTIVE'))
{
return; // prevent failed login attempts when fpw.php is loaded before this menu.
}
global $eMenuActive, $pref, $e107, $sql, $tp, $ns, $use_imagecode, $ADMIN_DIRECTORY, $LOGIN_MENU_MESSAGE, $LOGIN_MENU_STATITEM, $LM_STATITEM_SEPARATOR,
$login_menu_shortcodes, $LOGIN_MENU_FORM, $LOGIN_MENU_LOGGED, $LOGIN_MENU_STATS, $LOGIN_MENU_EXTERNAL_LINK; //FIXME
$ip = e107::getIPHandler()->getIP(FALSE);
//shortcodes
$login_menu_shortcodes = e107::getScBatch('login_menu',TRUE);
//Bullet
if(defined("BULLET"))
{
$bullet = "<img src='".THEME_ABS."images/".BULLET."' alt='' class='icon' />";
$bullet_src = THEME_ABS."images/".BULLET;
}
elseif(file_exists(THEME."images/bullet2.gif"))
{
$bullet = "<img src='".THEME_ABS."images/bullet2.gif' alt='bullet' class='icon' />";
$bullet_src = THEME_ABS."images/bullet2.gif";
}
else
{
$bullet = "";
$bullet_src = "";
}
//Corrup cookie - template? - TODO
if (defined('CORRUPT_COOKIE') && CORRUPT_COOKIE == TRUE)
{
$text = "<div class='core-sysmsg loginbox'>".LOGIN_MENU_L7."<br /><br />
{$bullet} <a href='".SITEURL."index.php?logout'>".LOGIN_MENU_L8."</a></div>";
$ns->tablerender(LOGIN_MENU_L9, $text, 'loginbox_error');
}
//Image code
$use_imagecode = ($pref['logcode'] && extension_loaded('gd'));
if ($use_imagecode)
{
global $sec_img;
include_once(e_HANDLER.'secure_img_handler.php');
$sec_img = new secure_image;
}
$text = '';
// START LOGGED CODE
if (USER == TRUE || ADMIN == TRUE)
{
require_once(e_PLUGIN."login_menu/login_menu_class.php");
$loginClass = new login_menu_class();
//login class ??? - TODO
if ($sql->select('online', 'online_ip', "`online_ip` = '{$ip}' AND `online_user_id` = '0' "))
{ // User now logged in - delete 'guest' record (tough if several users on same IP)
$sql->delete('online', "`online_ip` = '{$ip}' AND `online_user_id` = '0' ");
}
//get templates
if (!isset($LOGIN_MENU_LOGGED))
{
if (file_exists(THEME.'templates/login_menu/login_menu_template.php')) // Preferred v2.x location.
{
require(THEME.'templates/login_menu/login_menu_template.php');
}
elseif(file_exists(THEME.'login_menu_template.php'))
{
require(THEME.'login_menu_template.php');
}
{
require(e_PLUGIN.'login_menu/login_menu_template.php');
}
}
if(!$LOGIN_MENU_LOGGED)
{
require(e_PLUGIN.'login_menu/login_menu_template.php');
}
//prepare
$new_total = 0;
$time = USERLV;
$menu_data = array();
// ------------ News Stats -----------
if (varsettrue($loginPrefs['new_news']))
{
$nobody_regexp = "'(^|,)(".str_replace(",", "|", e_UC_NOBODY).")(,|$)'";
$menu_data['new_news'] = $sql->count("news", "(*)", "WHERE `news_datestamp` > {$time} AND news_class REGEXP '".e_CLASS_REGEXP."' AND NOT (news_class REGEXP ".$nobody_regexp.")");
$new_total += $menu_data['new_news'];
}
// ------------ Comments Stats -----------
if (varsettrue($loginPrefs['new_comments']))
{
$menu_data['new_comments'] = $sql->count('comments', '(*)', 'WHERE `comment_datestamp` > '.$time);
$new_total += $menu_data['new_comments'];
}
// ------------ Member Stats -----------
if (varsettrue($loginPrefs['new_members']))
{
$menu_data['new_users'] = $sql->count('user', '(user_join)', 'WHERE user_join > '.$time);
$new_total += $menu_data['new_users'];
}
// ------------ Enable stats / other ---------------
$menu_data['enable_stats'] = $menu_data || varsettrue($loginPrefs['external_stats']) ? true : false;
$menu_data['new_total'] = $new_total + $loginClass->get_stats_total();
$menu_data['link_bullet'] = $bullet;
$menu_data['link_bullet_src'] = $bullet_src;
// ------------ List New Link ---------------
$menu_data['listnew_link'] = '';
if ($menu_data['new_total'] && array_key_exists('list_new', $pref['plug_installed']))
{
$menu_data['listnew_link'] = e_PLUGIN.'list_new/list.php?new';
}
// ------------ Pass the data & parse ------------
cachevars('login_menu_data', $menu_data);
$text = $tp->parseTemplate($LOGIN_MENU_LOGGED, true, $login_menu_shortcodes);
//menu caption
if (file_exists(THEME.'images/login_menu.png')) {
$caption = '<img src="'.THEME_ABS.'images/login_menu.png" alt="" />'.LOGIN_MENU_L5.' '.USERNAME;
} else {
$caption = LOGIN_MENU_L5.' '.USERNAME;
}
//render
$ns->tablerender($caption, $text, 'loginbox');
// END LOGGED CODE
}
// START NOT LOGGED CODE
else
{
//get templates
if (!$LOGIN_MENU_FORM || !$LOGIN_MENU_MESSAGE) {
if (file_exists(THEME."login_menu_template.php")){
require_once(THEME."login_menu_template.php");
}else{
require_once(e_PLUGIN."login_menu/login_menu_template.php");
}
}
if(!$LOGIN_MENU_FORM || !$LOGIN_MENU_MESSAGE){
require(e_PLUGIN."login_menu/login_menu_template.php");
}
$text = '<form method="post" action="'.e_SELF.(e_QUERY ? '?'.e_QUERY : '');
if (varsettrue($pref['password_CHAP'],0))
{
$text .= '" onsubmit="hashLoginPassword(this)';
}
$text .= '">'.$tp->parseTemplate($LOGIN_MENU_FORM, true, $login_menu_shortcodes);
$text .= '</form>';
if (file_exists(THEME.'images/login_menu.png')) {
$caption = '<img src="'.THEME_ABS.'images/login_menu.png" alt="" />'.LOGIN_MENU_L5;
} else {
$caption = LOGIN_MENU_L5;
}
$ns->tablerender($caption, $text, 'login');
}
// END NOT LOGGED CODE
?>