Monitor(); $countSql = 'SELECT COUNT(*) AS FrameCount FROM Frames AS F WHERE 1 '; $frameSql = 'SELECT *, unix_timestamp(TimeStamp) AS UnixTimeStamp FROM Frames AS F WHERE 1 '; // override the sort_field handling in parseSort for frames if ( empty($_REQUEST['sort_field']) ) $_REQUEST['sort_field'] = 'FramesTimeStamp'; if ( !isset($_REQUEST['sort_asc']) ) $_REQUEST['sort_asc'] = true; if ( !isset($_REQUEST['filter']) ) { // generate a dummy filter from the eid for pagination $_REQUEST['filter'] = array('Query' => array('terms' => array())); $_REQUEST['filter'] = addFilterTerm( $_REQUEST['filter'], 0, array( 'cnj' => 'and', 'attr' => 'FramesEventId', 'op' => '=', 'val' => $eid ) ); } parseSort(); $filter = ZM\Filter::parse($_REQUEST['filter']); $filterQuery = $filter->querystring(); if ( $filter->sql() ) { $countSql .= ' AND ('.$filter->sql().')'; $frameSql .= ' AND ('.$filter->sql().')'; } $frameSql .= " ORDER BY $sortColumn $sortOrder"; if ( $sortColumn != 'Id' ) $frameSql .= ',Id '.$sortOrder; if ( isset($_REQUEST['scale']) ) { $scale = validNum($_REQUEST['scale']); } else if ( isset($_COOKIE['zmWatchScale'.$Monitor->Id()]) ) { $scale = validNum($_COOKIE['zmWatchScale'.$Monitor->Id()]); } else if ( isset($_COOKIE['zmWatchScale']) ) { $scale = validNum($_COOKIE['zmWatchScale']); } else { $scale = max(reScale(SCALE_BASE, $Monitor->DefaultScale(), ZM_WEB_DEFAULT_SCALE), SCALE_BASE); } $page = isset($_REQUEST['page']) ? validInt($_REQUEST['page']) : 1; $limit = isset($_REQUEST['limit']) ? validInt($_REQUEST['limit']) : 0; $nFrames = dbFetchOne($countSql, 'FrameCount'); if ( !empty($limit) && ($nFrames > $limit) ) { $nFrames = $limit; } $pages = (int)ceil($nFrames/ZM_WEB_EVENTS_PER_PAGE); if ( !empty($page) ) { if ( $page <= 0 ) $page = 1; else if ( $pages and ( $page > $pages ) ) $page = $pages; $limitStart = (($page-1)*ZM_WEB_EVENTS_PER_PAGE); if ( empty($limit) ) { $limitAmount = ZM_WEB_EVENTS_PER_PAGE; } else { $limitLeft = $limit - $limitStart; $limitAmount = ($limitLeft>ZM_WEB_EVENTS_PER_PAGE)?ZM_WEB_EVENTS_PER_PAGE:$limitLeft; } $frameSql .= " LIMIT $limitStart, $limitAmount"; } else if ( !empty($limit) ) { $frameSql .= ' LIMIT 0, '.$limit; } $maxShortcuts = 5; $totalQuery = $sortQuery.'&eid='.$eid.$limitQuery.$filterQuery; $pagination = getPagination($pages, $page, $maxShortcuts, $totalQuery); $frames = dbFetchAll($frameSql); $focusWindow = true; xhtmlHeaders(__FILE__, translate('Frames').' - '.$Event->Id()); ?>
Id(); $thmb_width = ZM_WEB_LIST_THUMB_WIDTH ? 'width='.ZM_WEB_LIST_THUMB_WIDTH : ''; $thmb_height = ZM_WEB_LIST_THUMB_HEIGHT ? 'height='.ZM_WEB_LIST_THUMB_HEIGHT : ''; $thmb_fn = 'filename=' .$Event->MonitorId(). '_' .$frame['EventId']. '_' .$frame['FrameId']. '.jpg'; $img_src = join('&', array_filter(array($base_img_src, $thmb_width, $thmb_height, $thmb_fn))); $full_img_src = join('&', array_filter(array($base_img_src, $thmb_fn))); $frame_src = '?view=frame&eid=' .$Event->Id(). '&fid=' .$frame['FrameId']; echo ''.PHP_EOL; } ?>