Пример #1
0
    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
Пример #2
0
$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();
}