Files
simrs-jatim/navigation.php
2024-04-19 14:04:41 +07:00

68 lines
1.9 KiB
PHP

<?php
require_once _DOCROOT_.'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Monolog\Handler\FirePHPHandler;
$my_nav = $db->query("SELECT * FROM m_menu where link = '$link'");
if($my_nav->numRows() > 0)
{
$nav_item = $my_nav->fetchFirst();
if(preg_match("/\{/", $nav_item['location']))
{
$obj = (array) json_decode($nav_item['location']);
$condition = $_SESSION[$obj['var']];
$this_case = (array) $obj['case'];
$found = 0;
foreach($this_case as $key => $loc)
{
if($condition == $key) {
$found = 1;
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|'.$loc.'|'.$nav_item['description']);
require_once $loc;
break;
}
}
if($found != 1) {
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|'.$obj['default'].'|'.$nav_item['description']);
require_once $obj['default'];
}
}
else {
if(!file_exists($nav_item['location']))
{
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|NOT FOUND|');
require_once 'error404.php';
}
else {
log_nav($_SESSION['rolename'].'|'.$nav_item['link'].'|'.$nav_item['location'].'|'.$nav_item['description']);
require_once $nav_item['location'];
}
}
}
function log_nav($link) {
global $logdir;
$logger = new Logger('access');
$daily_log = $_SESSION['NIP'].'.log';
$year_dir = makeDir($logdir.'access/'.date('Y'),0777);
$month_dir = makeDir($logdir.'access/'.date('Y').'/'.date('m'),0777);
$day_dir = makeDir($logdir.'access/'.date('Y').'/'.date('m').'/'.date('d'),0777);
$dir_log = $logdir.'access/'.date('Y').'/'.date('m').'/'.date('d').'/'.$daily_log;
$logger->pushHandler(new StreamHandler($dir_log, Logger::DEBUG));
if(!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip=$_SERVER['HTTP_CLIENT_IP']; // share internet
} elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip=$_SERVER['HTTP_X_FORWARDED_FOR']; // pass from proxy
} else {
$ip=$_SERVER['REMOTE_ADDR'];
}
$logger->addInfo($link,[$ip]);
}
?>