isAdmin()) die('Access Denied'); $qs = array(); if($_REQUEST['type']) { $qs += array('type' => $_REQUEST['type']); } $type=null; switch(strtolower($_REQUEST['type'])){ case 'error': $title=__('Errors'); $type=$_REQUEST['type']; break; case 'warning': $title=__('Warnings'); $type=$_REQUEST['type']; break; case 'debug': $title=__('Debug logs'); $type=$_REQUEST['type']; break; default: $type=null; $title=__('All logs'); } $qwhere =' WHERE 1'; //Type if($type) $qwhere.=' AND log_type='.db_input($type); //dates $startTime =($_REQUEST['startDate'] && (strlen($_REQUEST['startDate'])>=8))?strtotime($_REQUEST['startDate']):0; $endTime =($_REQUEST['endDate'] && (strlen($_REQUEST['endDate'])>=8))?strtotime($_REQUEST['endDate']):0; if( ($startTime && $startTime>time()) or ($startTime>$endTime && $endTime>0)){ $errors['err']=__('Entered date span is invalid. Selection ignored.'); $startTime=$endTime=0; }else{ if($startTime){ $qwhere.=' AND created>=FROM_UNIXTIME('.$startTime.')'; $qs += array('startDate' => $_REQUEST['startDate']); } if($endTime){ $qwhere.=' AND created<=FROM_UNIXTIME('.$endTime.')'; $qs += array('endDate' => $_REQUEST['endDate']); } } $sortOptions=array('id'=>'log.log_id', 'title'=>'log.title','type'=>'log_type','ip'=>'log.ip_address' ,'date'=>'log.created','created'=>'log.created','updated'=>'log.updated'); $orderWays=array('DESC'=>'DESC','ASC'=>'ASC'); $sort=($_REQUEST['sort'] && $sortOptions[strtolower($_REQUEST['sort'])])?strtolower($_REQUEST['sort']):'id'; //Sorting options... if($sort && $sortOptions[$sort]) { $order_column =$sortOptions[$sort]; } $order_column=$order_column?$order_column:'log.created'; if($_REQUEST['order'] && $orderWays[strtoupper($_REQUEST['order'])]) { $order=$orderWays[strtoupper($_REQUEST['order'])]; } $order=$order?$order:'DESC'; if($order_column && strpos($order_column,',')){ $order_column=str_replace(','," $order,",$order_column); } $x=$sort.'_sort'; $$x=' class="'.strtolower($order).'" '; $order_by="$order_column $order "; $qselect = 'SELECT log.* '; $qfrom=' FROM '.SYSLOG_TABLE.' log '; $total=db_count("SELECT count(*) $qfrom $qwhere"); $page = ($_GET['p'] && is_numeric($_GET['p']))?$_GET['p']:1; //pagenate $pageNav=new Pagenate($total, $page, PAGE_LIMIT); $pageNav->setURL('logs.php',$qs); $qs += array('order' => ($order=='DESC' ? 'ASC' : 'DESC')); $qstr = '&'. Http::build_query($qs); $query="$qselect $qfrom $qwhere ORDER BY $order_by LIMIT ".$pageNav->getStart().",".$pageNav->getLimit(); $res=db_query($query); if($res && ($num=db_num_rows($res))) $showing=$pageNav->showing().' '.$title; else $showing=__('No logs found'); ?>