access_deny(); } if (hasRequest('elementid')) { $data['screen'] = get_slideshow_by_slideshowid(getRequest('elementid'), PERM_READ); if (!$data['screen']) { access_deny(); } } else { $data['screen'] = []; } /* * Actions */ if ((hasRequest('widgetRefresh') || hasRequest('widgetRefreshRate')) && $data['screen']) { $elementId = getRequest('elementid'); $screen = getSlideshowScreens($elementId, getRequest('upd_counter')); // display screens $dbScreens = API::Screen()->get(['screenids' => $screen['screenid'], 'output' => API_OUTPUT_EXTEND, 'selectScreenItems' => API_OUTPUT_EXTEND]); if (!$dbScreens) { insert_js('alert("' . _('No permissions') . '");'); } else { $dbScreen = reset($dbScreens); // get fresh widget data if (hasRequest('widgetRefresh')) { $screenBuilder = new CScreenBuilder(['screen' => $dbScreen, 'mode' => SCREEN_MODE_PREVIEW, 'profileIdx' => 'web.slides', 'profileIdx2' => $elementId, 'hostid' => getRequest('hostid'), 'period' => getRequest('period'), 'stime' => getRequest('stime')]); CScreenBuilder::insertScreenCleanJs(); echo (new CDiv($screenBuilder->show()))->addClass(ZBX_STYLE_TABLE_FORMS_CONTAINER)->toString(); CScreenBuilder::insertScreenStandardJs(['timeline' => $screenBuilder->timeline, 'profileIdx' => $screenBuilder->profileIdx]); insertPagePostJs(); } // refresh rate
$data = array('fullscreen' => getRequest('fullscreen'), 'elementId' => getRequest('elementid', CProfile::get('web.slides.elementid')), 'slideshows' => array()); // get slideshows $dbSlideshows = DBselect('SELECT s.slideshowid,s.name FROM slideshows s'); while ($dbSlideshow = DBfetch($dbSlideshows)) { if (slideshow_accessible($dbSlideshow['slideshowid'], PERM_READ)) { $data['slideshows'][$dbSlideshow['slideshowid']] = $dbSlideshow; } } order_result($data['slideshows'], 'name'); if (!isset($data['slideshows'][$data['elementId']])) { $slideshow = reset($data['slideshows']); $data['elementId'] = $slideshow['slideshowid']; } CProfile::update('web.slides.elementid', $data['elementId'], PROFILE_TYPE_ID); // get screen $data['screen'] = $data['elementId'] ? getSlideshowScreens($data['elementId'], 0) : array(); if ($data['screen']) { // get groups and hosts if (check_dynamic_items($data['elementId'], 1)) { $data['isDynamicItems'] = true; $data['pageFilter'] = new CPageFilter(array('groups' => array('monitored_hosts' => true, 'with_items' => true), 'hosts' => array('monitored_hosts' => true, 'with_items' => true, 'DDFirstLabel' => _('not selected')), 'hostid' => getRequest('hostid'), 'groupid' => getRequest('groupid'))); $data['groupid'] = $data['pageFilter']->groupid; $data['hostid'] = $data['pageFilter']->hostid; } // get element $data['element'] = get_slideshow_by_slideshowid($data['elementId']); if ($data['screen']['delay'] > 0) { $data['element']['delay'] = $data['screen']['delay']; } show_messages(); }