2009-09-07 11:07:59 +00:00
< ? php
2011-05-12 23:17:44 +00:00
2012-05-09 10:01:42 +00:00
/**
* Observium
*
* This file is part of Observium .
*
* @ package observium
* @ subpackage webinterface
* @ author Adam Armstrong < adama @ memetic . org >
* @ copyright ( C ) 2006 - 2012 Adam Armstrong
*
*/
2015-02-01 16:52:26 +00:00
// Set variables
$msg_box = array ();
2012-02-06 17:39:31 +00:00
include ( " ../includes/defaults.inc.php " );
include ( " ../config.php " );
2012-05-09 10:01:42 +00:00
include_once ( " ../includes/definitions.inc.php " );
2012-02-06 17:39:31 +00:00
include ( " ../includes/functions.php " );
include ( " includes/functions.inc.php " );
2014-02-25 12:51:07 +00:00
include ( 'includes/plugins.inc.php' );
Plugins :: start ();
2012-02-06 17:39:31 +00:00
2014-01-15 02:51:25 +00:00
// Check for install.inc.php
2014-02-26 02:29:31 +00:00
if ( ! file_exists ( '../config.php' ) && $_SERVER [ 'PATH_INFO' ] != '/install.php' )
{
2014-01-15 02:51:25 +00:00
// no config.php does so let's redirect to the install
header ( 'Location: /install.php' );
exit ;
}
2012-02-06 17:39:31 +00:00
$runtime_start = utime ();
2011-03-17 11:48:03 +00:00
ob_start ();
ini_set ( 'allow_url_fopen' , 0 );
ini_set ( 'display_errors' , 0 );
2007-11-23 11:37:28 +00:00
2011-09-21 09:22:45 +00:00
$_SERVER [ 'PATH_INFO' ] = ( isset ( $_SERVER [ 'PATH_INFO' ]) ? $_SERVER [ 'PATH_INFO' ] : $_SERVER [ 'ORIG_PATH_INFO' ]);
2011-09-21 09:21:30 +00:00
2011-09-17 18:58:58 +00:00
if ( strpos ( $_SERVER [ 'PATH_INFO' ], " debug " ))
2011-03-17 11:48:03 +00:00
{
2011-03-23 09:54:56 +00:00
$debug = " 1 " ;
ini_set ( 'display_errors' , 1 );
ini_set ( 'display_startup_errors' , 1 );
ini_set ( 'log_errors' , 1 );
2011-04-29 22:29:42 +00:00
ini_set ( 'error_reporting' , E_ALL );
2015-02-18 23:03:23 +00:00
set_error_handler ( 'logErrors' );
2010-08-21 12:54:42 +00:00
} else {
2011-03-23 09:54:56 +00:00
$debug = FALSE ;
ini_set ( 'display_errors' , 0 );
ini_set ( 'display_startup_errors' , 0 );
ini_set ( 'log_errors' , 0 );
ini_set ( 'error_reporting' , 0 );
2007-04-03 14:10:23 +00:00
}
2015-02-18 23:03:23 +00:00
function logErrors ( $errno , $errstr , $errfile , $errline ) {
global $php_debug ;
$php_debug [] = array ( 'errno' => $errno , 'errstr' => $errstr , 'errfile' => $errfile , 'errline' => $errline );
}
2011-10-03 13:40:37 +00:00
foreach ( $_GET as $key => $get_var )
{
if ( strstr ( $key , " opt " ))
{
2011-09-14 13:38:01 +00:00
list ( $name , $value ) = explode ( " | " , $get_var );
2011-09-20 14:37:54 +00:00
if ( ! isset ( $value )) { $value = " yes " ; }
2011-09-14 13:38:01 +00:00
$vars [ $name ] = $value ;
}
}
2012-04-05 14:02:32 +00:00
$segments = explode ( '/' , trim ( $_SERVER [ 'REQUEST_URI' ], '/' ));
2011-10-03 13:40:37 +00:00
foreach ( $segments as $pos => $segment )
{
2011-09-14 13:38:01 +00:00
$segment = urldecode ( $segment );
2011-09-20 14:37:54 +00:00
if ( $pos == " 0 " )
2011-09-14 13:38:01 +00:00
{
$vars [ 'page' ] = $segment ;
} else {
list ( $name , $value ) = explode ( " = " , $segment );
2011-09-20 14:37:54 +00:00
if ( $value == " " || ! isset ( $value ))
2011-09-14 13:38:01 +00:00
{
$vars [ $name ] = yes ;
} else {
$vars [ $name ] = $value ;
}
}
}
2011-10-04 09:10:21 +00:00
foreach ( $_GET as $name => $value )
2011-09-22 18:18:15 +00:00
{
$vars [ $name ] = $value ;
}
2011-10-04 09:10:21 +00:00
foreach ( $_POST as $name => $value )
2011-09-14 13:38:01 +00:00
{
2011-09-22 18:18:15 +00:00
$vars [ $name ] = $value ;
2011-09-14 13:38:01 +00:00
}
2012-04-27 17:18:26 +00:00
include ( " includes/authenticate.inc.php " );
2012-01-19 17:33:32 +00:00
if ( strstr ( $_SERVER [ 'REQUEST_URI' ], 'widescreen=yes' )) { $_SESSION [ 'widescreen' ] = 1 ; }
if ( strstr ( $_SERVER [ 'REQUEST_URI' ], 'widescreen=no' )) { unset ( $_SESSION [ 'widescreen' ]); }
2011-09-04 21:50:48 +00:00
2011-03-17 11:48:03 +00:00
# Load the settings for Multi-Tenancy.
2011-05-05 14:39:50 +00:00
if ( isset ( $config [ 'branding' ]) && is_array ( $config [ 'branding' ]))
2011-03-26 19:12:24 +00:00
{
2011-03-23 09:54:56 +00:00
if ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]])
{
foreach ( $config [ 'branding' ][ $_SERVER [ 'SERVER_NAME' ]] as $confitem => $confval )
2011-03-17 11:48:03 +00:00
{
2011-03-23 09:54:56 +00:00
eval ( " \$ config[' " . $confitem . " '] = \$ confval; " );
}
} else {
foreach ( $config [ 'branding' ][ 'default' ] as $confitem => $confval )
{
eval ( " \$ config[' " . $confitem . " '] = \$ confval; " );
2011-03-17 11:48:03 +00:00
}
2011-03-23 09:54:56 +00:00
}
2011-03-17 11:48:03 +00:00
}
2012-04-17 10:53:24 +00:00
# page_title_prefix is displayed, unless page_title is set
if ( $config [ 'page_title' ]) { $config [ 'page_title_prefix' ] = $config [ 'page_title' ]; }
2012-04-17 15:27:17 +00:00
2007-04-03 14:10:23 +00:00
?>
2011-09-02 19:25:54 +00:00
<! DOCTYPE HTML >
< html >
2007-04-03 14:10:23 +00:00
< head >
2014-01-28 14:59:15 +00:00
< title >< ? php echo ( $config [ 'page_title_suffix' ]); ?> </title>
2008-03-15 17:58:15 +00:00
< base href = " <?php echo( $config['base_url'] ); ?> " />
2009-03-17 20:29:54 +00:00
< meta http - equiv = " content-type " content = " text/html; charset=utf-8 " />
2014-01-13 07:59:31 +00:00
< meta name = " viewport " content = " width=device-width, initial-scale=1.0 " >
2008-03-23 21:32:54 +00:00
< ? php
2012-04-09 10:53:55 +00:00
if ( $config [ 'page_refresh' ]) { echo ( ' <meta http-equiv="refresh" content="' . $config [ 'page_refresh' ] . '" />' . " \n " ); }
2008-03-23 21:32:54 +00:00
?>
2014-01-13 07:59:31 +00:00
< link href = " css/bootstrap.min.css " rel = " stylesheet " type = " text/css " />
2014-10-28 07:46:08 +10:00
< link href = " css/bootstrap-datetimepicker.min.css " rel = " stylesheet " type = " text/css " />
2014-06-14 23:05:31 +01:00
< link href = " css/bootstrap-switch.min.css " rel = " stylesheet " type = " text/css " />
2014-10-01 00:14:26 +01:00
< link href = " css/toastr.min.css " rel = " stylesheet " type = " text/css " />
2014-10-28 07:46:08 +10:00
< link href = " css/typeahead.js-bootstrap.css " rel = " stylesheet " type = " text/css " />
2014-11-30 17:49:52 +00:00
< link href = " css/jquery-ui.min.css " rel = " stylesheet " type = " text/css " />
< link href = " css/tagmanager.css " rel = " stylesheet " type = " text/css " />
2014-03-18 22:36:22 +00:00
< link href = " <?php echo( $config['stylesheet'] ); ?> " rel = " stylesheet " type = " text/css " />
2014-01-13 07:59:31 +00:00
< script src = " js/jquery.min.js " ></ script >
< script src = " js/bootstrap.min.js " ></ script >
< script src = " js/bootstrap-hover-dropdown.min.js " ></ script >
2014-06-14 23:05:31 +01:00
< script src = " js/bootstrap-switch.min.js " ></ script >
2014-01-13 07:59:31 +00:00
< script src = " js/hogan-2.0.0.js " ></ script >
< script src = " js/jquery.cycle2.min.js " ></ script >
2014-10-28 07:47:52 +10:00
< script src = " js/moment.min.js " ></ script >
2014-10-29 10:48:18 +00:00
< script src = " js/bootstrap-datetimepicker.min.js " ></ script >
2014-10-28 07:47:52 +10:00
< script src = " js/typeahead.min.js " ></ script >
2014-11-30 17:49:52 +00:00
< script src = " js/jquery-ui.min.js " ></ script >
< script src = " js/tagmanager.js " ></ script >
2013-10-29 08:08:23 +10:00
< ? php
if ( $config [ 'favicon' ]) { echo ( ' <link rel="shortcut icon" href="' . $config [ 'favicon' ] . '" />' . " \n " ); }
?>
2011-09-14 13:38:01 +00:00
< script type = " text/javascript " >
2014-02-26 02:29:31 +00:00
<!-- Begin
function popUp ( URL )
{
day = new Date ();
id = day . getTime ();
eval ( " page " + id + " = window.open(URL, ' " + id + " ', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=550,height=600'); " );
}
// End -->
2011-03-23 09:54:56 +00:00
</ script >
2011-09-29 12:57:44 +00:00
< script type = " text/javascript " src = " js/overlib_mini.js " ></ script >
2014-10-01 00:14:26 +01:00
< script type = " text/javascript " src = " js/toastr.min.js " ></ script >
2014-01-13 07:59:31 +00:00
</ head >
< body >
2007-04-03 14:10:23 +00:00
2011-03-26 19:28:39 +00:00
< ? php
2007-04-03 14:10:23 +00:00
2012-01-19 17:33:32 +00:00
if ( ! $vars [ 'bare' ] == " yes " ) {
2011-09-14 13:38:01 +00:00
2014-02-26 02:29:31 +00:00
if ( $_SESSION [ 'authenticated' ])
{
2014-01-13 07:59:31 +00:00
include ( " includes/print-menubar.php " );
}
2011-09-14 13:38:01 +00:00
}
2007-04-03 14:10:23 +00:00
2011-03-26 19:28:39 +00:00
?>
2014-01-13 07:59:31 +00:00
< br />
2014-02-23 11:57:39 +00:00
< div class = " container-fluid " >
2014-06-22 19:51:35 -04:00
< ? php
if ( $_SESSION [ 'authenticated' ])
{
?>
2014-02-26 02:29:31 +00:00
< div class = " row " >
< div class = " col-md-12 " >
& nbsp ; < br />< br />
</ div >
2014-01-13 07:59:31 +00:00
</ div >
2014-06-22 19:51:35 -04:00
< ? php
}
?>
2014-02-26 02:29:31 +00:00
< div class = " row " >
< div class = " col-md-12 " >
2007-04-03 14:10:23 +00:00
< ? php
2011-09-15 21:18:57 +00:00
2012-05-25 12:24:34 +00:00
// To help debug the new URLs :)
2012-01-19 17:33:32 +00:00
if ( $devel || $vars [ 'devel' ])
2011-09-15 21:18:57 +00:00
{
echo ( " <pre> " );
print_r ( $_GET );
print_r ( $vars );
echo ( " </pre> " );
}
2011-03-17 11:48:03 +00:00
if ( $_SESSION [ 'authenticated' ])
{
2012-05-25 12:24:34 +00:00
// Authenticated. Print a page.
2011-09-14 13:38:01 +00:00
if ( isset ( $vars [ 'page' ]) && ! strstr ( " .. " , $vars [ 'page' ]) && is_file ( " pages/ " . $vars [ 'page' ] . " .inc.php " ))
2011-03-23 09:54:56 +00:00
{
2011-09-14 13:38:01 +00:00
include ( " pages/ " . $vars [ 'page' ] . " .inc.php " );
2011-03-23 09:54:56 +00:00
} else {
if ( isset ( $config [ 'front_page' ]) && is_file ( $config [ 'front_page' ]))
2011-03-17 11:48:03 +00:00
{
2011-03-23 09:54:56 +00:00
include ( $config [ 'front_page' ]);
2011-03-17 11:48:03 +00:00
} else {
2011-03-23 09:54:56 +00:00
include ( " pages/front/default.php " );
2007-04-03 14:10:23 +00:00
}
2011-03-23 09:54:56 +00:00
}
2008-07-22 08:24:34 +00:00
2011-03-17 11:48:03 +00:00
} else {
2014-06-21 09:50:24 -04:00
// Not Authenticated. Show status page if enabled
2014-06-21 22:02:16 -04:00
if ( $config [ 'public_status' ] === true )
2014-06-21 09:50:24 -04:00
{
if ( isset ( $vars [ 'page' ]) && strstr ( " login " , $vars [ 'page' ]))
{
include ( " pages/logon.inc.php " );
} else {
2014-06-21 20:24:44 -04:00
echo '<div id="public-status">' ;
2014-06-21 09:50:24 -04:00
include ( " pages/public.inc.php " );
2014-06-21 20:24:44 -04:00
echo '</div>' ;
echo '<div id="public-logon" style="display:none;">' ;
2014-06-21 22:02:16 -04:00
echo '<div class="well"><h3>Logon<button class="btn btn-default" type="submit" style="float:right;" id="ToggleStatus">Status</button></h3></div>' ;
2014-06-21 20:24:44 -04:00
include ( " pages/logon.inc.php " );
echo '</div>' ;
2014-06-21 09:50:24 -04:00
}
}
else
{
include ( " pages/logon.inc.php " );
}
2011-03-17 11:48:03 +00:00
}
2007-04-03 14:10:23 +00:00
?>
2014-02-26 02:29:31 +00:00
</ div >
</ div >
</ div >
2007-04-03 14:10:23 +00:00
< ? php
2014-02-26 02:29:31 +00:00
2012-02-06 17:39:31 +00:00
$runtime_end = utime (); $runtime = $runtime_end - $runtime_start ;
$gentime = substr ( $runtime , 0 , 5 );
2010-03-27 22:20:57 +00:00
2013-11-05 10:23:15 +10:00
# FIXME - move this
2011-03-17 11:48:03 +00:00
if ( $config [ 'page_gen' ])
{
2014-02-26 02:29:31 +00:00
echo ( ' <br />MySQL: Cell ' . ( $db_stats [ 'fetchcell' ] + 0 ) . '/' . round ( $db_stats [ 'fetchcell_sec' ] + 0 , 3 ) . 's' .
' Row ' . ( $db_stats [ 'fetchrow' ] + 0 ) . '/' . round ( $db_stats [ 'fetchrow_sec' ] + 0 , 3 ) . 's' .
' Rows ' . ( $db_stats [ 'fetchrows' ] + 0 ) . '/' . round ( $db_stats [ 'fetchrows_sec' ] + 0 , 3 ) . 's' .
' Column ' . ( $db_stats [ 'fetchcol' ] + 0 ) . '/' . round ( $db_stats [ 'fetchcol_sec' ] + 0 , 3 ) . 's' );
$fullsize = memory_get_usage ();
unset ( $cache );
$cachesize = $fullsize - memory_get_usage ();
if ( $cachesize < 0 ) { $cachesize = 0 ; } // Silly PHP!
echo ( ' <br />Cached data in memory is ' . formatStorage ( $cachesize ) . '. Page memory usage is ' . formatStorage ( $fullsize ) . ', peaked at ' . formatStorage ( memory_get_peak_usage ()) . '.' );
echo ( ' <br />Generated in ' . $gentime . ' seconds.' );
2011-03-17 11:48:03 +00:00
}
2007-04-03 14:10:23 +00:00
?>
2014-02-26 02:29:31 +00:00
< script class = " content_tooltips " type = " text/javascript " >
$ ( document ) . ready ( function () { $ ( '#content a[title]' ) . qtip ({ content : { text : false }, style : 'light' }); });
2011-09-19 11:15:01 +00:00
2014-02-26 02:29:31 +00:00
$ ( 'INPUT.auto-hint, TEXTAREA.auto-hint' ) . focus ( function () {
if ( $ ( this ) . val () == $ ( this ) . attr ( 'title' )) {
2011-09-19 11:15:01 +00:00
$ ( this ) . val ( '' );
$ ( this ) . removeClass ( 'auto-hint' );
2014-02-26 02:29:31 +00:00
}
});
</ script >
2011-09-19 11:15:01 +00:00
2011-10-18 14:27:21 +00:00
< ? php
if ( is_array ( $pagetitle ))
{
2012-04-17 10:48:35 +00:00
# if prefix is set, put it in front
if ( $config [ 'page_title_prefix' ]) { array_unshift ( $pagetitle , $config [ 'page_title_prefix' ]); }
2012-04-17 15:27:17 +00:00
2012-04-17 10:48:35 +00:00
# if suffix is set, put it in the back
if ( $config [ 'page_title_suffix' ]) { $pagetitle [] = $config [ 'page_title_suffix' ]; }
2012-04-17 15:27:17 +00:00
2012-04-17 10:48:35 +00:00
# create and set the title
2011-10-18 14:27:21 +00:00
$title = join ( " - " , $pagetitle );
echo ( " <script type= \" text/javascript \" > \n document.title = ' $title '; \n </script> " );
}
?>
2015-01-02 23:15:35 +00:00
< ? php
if ( $config [ 'enable_footer' ] == 1 ) {
?>
2014-02-26 02:29:31 +00:00
< footer >
< div class = " container " >
< div class = " row " >
< div class = " col-md-12 text-center " >
2014-01-13 07:59:31 +00:00
< ? php
2015-01-09 08:06:54 +00:00
echo ( '<em> Powered by <a href="/about/" target="_blank">' . $config [ 'project_name' ] . '</a>.</em><br/>' );
2014-01-13 07:59:31 +00:00
?>
2014-02-26 02:29:31 +00:00
</ div >
</ div >
</ div >
</ footer >
2014-10-01 00:14:26 +01:00
< ? php
2015-01-02 23:15:35 +00:00
}
2014-10-01 00:14:26 +01:00
2015-02-01 16:42:09 +00:00
if ( dbFetchCell ( " SELECT COUNT(`device_id`) FROM `devices` WHERE `last_polled` <= DATE_ADD(NOW(), INTERVAL - 15 minute) AND `ignore` = 0 AND `disabled` = 0 AND status = 1 " , array ()) > 0 ) {
$msg_box [] = array ( 'type' => 'warning' , 'message' => " It appears as though you have some devices that haven't completed polling within the last 15 minutes, you may want to check that out :) " , 'title' => 'Devices unpolled' );
}
2014-10-01 00:14:26 +01:00
if ( is_array ( $msg_box )) {
echo ( " <script>
toastr . options . timeout = 10 ;
toastr . options . extendedTimeOut = 20 ;
" );
foreach ( $msg_box as $message ) {
2015-02-01 16:42:09 +00:00
$message [ 'type' ] = mres ( $message [ 'type' ]);
$message [ 'message' ] = mres ( $message [ 'message' ]);
$message [ 'title' ] = mres ( $message [ 'title' ]);
2014-10-01 00:14:26 +01:00
echo " toastr. " . $message [ 'type' ] . " (' " . $message [ 'message' ] . " ',' " . $message [ 'title' ] . " '); \n " ;
}
echo ( " </script> " );
}
2015-02-18 23:03:23 +00:00
if ( is_array ( $sql_debug ) && is_array ( $php_debug )) {
include_once " includes/print-debug.php " ;
}
2014-10-01 00:14:26 +01:00
?>
2015-02-18 23:03:23 +00:00
2014-02-26 02:29:31 +00:00
</ body >
2007-04-03 14:10:23 +00:00
</ html >