Exemplo n.º 1
0
function get_image_by_imageid($imageid)
{
    $sql = 'SELECT * FROM images WHERE imageid=' . $imageid;
    $result = DBselect($sql);
    if ($row = DBfetch($result)) {
        $row['image'] = zbx_unescape_image($row['image']);
    }
    return $row;
}
Exemplo n.º 2
0
/**
 * Get image data from db, cache is used
 * @param  $imageid
 * @return array image data from db
 */
function get_image_by_imageid($imageid)
{
    static $images = array();
    if (!isset($images[$imageid])) {
        $row = DBfetch(DBselect('SELECT i.* FROM images i WHERE i.imageid=' . zbx_dbstr($imageid)));
        $row['image'] = zbx_unescape_image($row['image']);
        $images[$imageid] = $row;
    }
    return $images[$imageid];
}
Exemplo n.º 3
0
 /**
  * Get images data
  *
  * @param array $options
  * @param array $options['itemids']
  * @param array $options['hostids']
  * @param array $options['groupids']
  * @param array $options['triggerids']
  * @param array $options['imageids']
  * @param boolean $options['status']
  * @param boolean $options['editable']
  * @param boolean $options['count']
  * @param string $options['pattern']
  * @param int $options['limit']
  * @param string $options['order']
  * @return array|boolean image data as array or false if error
  */
 public function get($options = array())
 {
     $result = array();
     $sqlParts = array('select' => array('images' => 'i.imageid'), 'from' => array('images' => 'images i'), 'where' => array(), 'order' => array(), 'limit' => null);
     $defOptions = array('imageids' => null, 'sysmapids' => null, 'filter' => null, 'search' => null, 'searchByAny' => null, 'startSearch' => null, 'excludeSearch' => null, 'searchWildcardsEnabled' => null, 'output' => API_OUTPUT_EXTEND, 'select_image' => null, 'editable' => null, 'countOutput' => null, 'preservekeys' => null, 'sortfield' => '', 'sortorder' => '', 'limit' => null);
     $options = zbx_array_merge($defOptions, $options);
     // editable + PERMISSION CHECK
     if (!is_null($options['editable']) && self::$userData['type'] < USER_TYPE_ZABBIX_ADMIN) {
         return $result;
     }
     // imageids
     if (!is_null($options['imageids'])) {
         zbx_value2array($options['imageids']);
         $sqlParts['where']['imageid'] = dbConditionInt('i.imageid', $options['imageids']);
     }
     // sysmapids
     if (!is_null($options['sysmapids'])) {
         zbx_value2array($options['sysmapids']);
         $sqlParts['from']['sysmaps'] = 'sysmaps sm';
         $sqlParts['from']['sysmaps_elements'] = 'sysmaps_elements se';
         $sqlParts['where']['sm'] = dbConditionInt('sm.sysmapid', $options['sysmapids']);
         $sqlParts['where']['smse_or_bg'] = '(' . 'sm.backgroundid=i.imageid' . ' OR (' . 'sm.sysmapid=se.sysmapid' . ' AND (' . 'se.iconid_off=i.imageid' . ' OR se.iconid_on=i.imageid' . ' OR se.iconid_disabled=i.imageid' . ' OR se.iconid_maintenance=i.imageid' . ')' . ')' . ')';
     }
     // filter
     if (is_array($options['filter'])) {
         $this->dbFilter('images i', $options, $sqlParts);
     }
     // search
     if (is_array($options['search'])) {
         zbx_db_search('images i', $options, $sqlParts);
     }
     // limit
     if (zbx_ctype_digit($options['limit']) && $options['limit']) {
         $sqlParts['limit'] = $options['limit'];
     }
     $imageids = array();
     $sqlParts = $this->applyQueryOutputOptions($this->tableName(), $this->tableAlias(), $options, $sqlParts);
     $sqlParts = $this->applyQuerySortOptions($this->tableName(), $this->tableAlias(), $options, $sqlParts);
     $res = DBselect($this->createSelectQueryFromParts($sqlParts), $sqlParts['limit']);
     while ($image = DBfetch($res)) {
         if ($options['countOutput']) {
             return $image['rowscount'];
         } else {
             $imageids[$image['imageid']] = $image['imageid'];
             $result[$image['imageid']] = $image;
         }
     }
     // adding objects
     if (!is_null($options['select_image'])) {
         $dbImg = DBselect('SELECT i.imageid,i.image FROM images i WHERE ' . dbConditionInt('i.imageid', $imageids));
         while ($img = DBfetch($dbImg)) {
             // PostgreSQL and SQLite images are stored escaped in the DB
             $img['image'] = zbx_unescape_image($img['image']);
             $result[$img['imageid']]['image'] = base64_encode($img['image']);
         }
     }
     if (is_null($options['preservekeys'])) {
         $result = zbx_cleanHashes($result);
     }
     return $result;
 }
Exemplo n.º 4
0
 /**
  * Get images data
  *
  * @param array $options
  * @param array $options['itemids']
  * @param array $options['hostids']
  * @param array $options['groupids']
  * @param array $options['triggerids']
  * @param array $options['imageids']
  * @param boolean $options['status']
  * @param boolean $options['editable']
  * @param boolean $options['count']
  * @param string $options['pattern']
  * @param int $options['limit']
  * @param string $options['order']
  * @return array|boolean image data as array or false if error
  */
 public function get($options = array())
 {
     $result = array();
     // allowed columns for sorting
     $sortColumns = array('imageid', 'name');
     $sqlParts = array('select' => array('images' => 'i.imageid'), 'from' => array('images' => 'images i'), 'where' => array(), 'order' => array(), 'limit' => null);
     $defOptions = array('nodeids' => null, 'imageids' => null, 'sysmapids' => null, 'filter' => null, 'search' => null, 'searchByAny' => null, 'startSearch' => null, 'excludeSearch' => null, 'searchWildcardsEnabled' => null, 'output' => API_OUTPUT_REFER, 'select_image' => null, 'editable' => null, 'countOutput' => null, 'preservekeys' => null, 'sortfield' => '', 'sortorder' => '', 'limit' => null);
     $options = zbx_array_merge($defOptions, $options);
     // editable + PERMISSION CHECK
     if (!is_null($options['editable']) && self::$userData['type'] < USER_TYPE_ZABBIX_ADMIN) {
         return $result;
     }
     // nodeids
     $nodeids = !is_null($options['nodeids']) ? $options['nodeids'] : get_current_nodeid();
     // imageids
     if (!is_null($options['imageids'])) {
         zbx_value2array($options['imageids']);
         $sqlParts['where']['imageid'] = dbConditionInt('i.imageid', $options['imageids']);
     }
     // sysmapids
     if (!is_null($options['sysmapids'])) {
         zbx_value2array($options['sysmapids']);
         $sqlParts['select']['sm'] = 'sm.sysmapid';
         $sqlParts['from']['sysmaps'] = 'sysmaps sm';
         $sqlParts['from']['sysmaps_elements'] = 'sysmaps_elements se';
         $sqlParts['where']['sm'] = dbConditionInt('sm.sysmapid', $options['sysmapids']);
         $sqlParts['where']['smse'] = 'sm.sysmapid=se.sysmapid ';
         $sqlParts['where']['se'] = '(' . 'se.iconid_off=i.imageid' . ' OR se.iconid_on=i.imageid' . ' OR se.iconid_disabled=i.imageid' . ' OR se.iconid_maintenance=i.imageid' . ' OR sm.backgroundid=i.imageid)';
     }
     // output
     if ($options['output'] == API_OUTPUT_EXTEND) {
         $sqlParts['select']['images'] = 'i.imageid, i.imagetype, i.name';
     }
     // count
     if (!is_null($options['countOutput'])) {
         $options['sortfield'] = '';
         $sqlParts['select'] = array('count(DISTINCT i.imageid) as rowscount');
     }
     // filter
     if (is_array($options['filter'])) {
         $this->dbFilter('images i', $options, $sqlParts);
     }
     // search
     if (is_array($options['search'])) {
         zbx_db_search('images i', $options, $sqlParts);
     }
     // sorting
     zbx_db_sorting($sqlParts, $options, $sortColumns, 'i');
     // limit
     if (zbx_ctype_digit($options['limit']) && $options['limit']) {
         $sqlParts['limit'] = $options['limit'];
     }
     $imageids = array();
     $sqlParts['select'] = array_unique($sqlParts['select']);
     $sqlParts['from'] = array_unique($sqlParts['from']);
     $sqlParts['where'] = array_unique($sqlParts['where']);
     $sqlParts['order'] = array_unique($sqlParts['order']);
     $sqlSelect = '';
     $sqlFrom = '';
     $sqlWhere = '';
     $sqlOrder = '';
     if (!empty($sqlParts['select'])) {
         $sqlSelect .= implode(',', $sqlParts['select']);
     }
     if (!empty($sqlParts['from'])) {
         $sqlFrom .= implode(',', $sqlParts['from']);
     }
     if (!empty($sqlParts['where'])) {
         $sqlWhere .= ' AND ' . implode(' AND ', $sqlParts['where']);
     }
     if (!empty($sqlParts['order'])) {
         $sqlOrder .= ' ORDER BY ' . implode(',', $sqlParts['order']);
     }
     $sql = 'SELECT ' . zbx_db_distinct($sqlParts) . ' ' . $sqlSelect . ' FROM ' . $sqlFrom . ' WHERE ' . DBin_node('i.imageid', $nodeids) . $sqlWhere . $sqlOrder;
     $res = DBselect($sql, $sqlParts['limit']);
     while ($image = DBfetch($res)) {
         if ($options['countOutput']) {
             return $image['rowscount'];
         } else {
             $imageids[$image['imageid']] = $image['imageid'];
             if ($options['output'] == API_OUTPUT_SHORTEN) {
                 $result[$image['imageid']] = array('imageid' => $image['imageid']);
             } else {
                 if (!isset($result[$image['imageid']])) {
                     $result[$image['imageid']] = array();
                 }
                 // sysmapds
                 if (isset($image['sysmapid'])) {
                     if (!isset($result[$image['imageid']]['sysmaps'])) {
                         $result[$image['imageid']]['sysmaps'] = array();
                     }
                     $result[$image['imageid']]['sysmaps'][] = array('sysmapid' => $image['sysmapid']);
                 }
                 $result[$image['imageid']] += $image;
             }
         }
     }
     // adding objects
     if (!is_null($options['select_image'])) {
         $dbImg = DBselect('SELECT i.imageid,i.image FROM images i WHERE ' . dbConditionInt('i.imageid', $imageids));
         while ($img = DBfetch($dbImg)) {
             // PostgreSQL and SQLite images are stored escaped in the DB
             $img['image'] = zbx_unescape_image($img['image']);
             $result[$img['imageid']]['image'] = base64_encode($img['image']);
         }
     }
     if (is_null($options['preservekeys'])) {
         $result = zbx_cleanHashes($result);
     }
     return $result;
 }
Exemplo n.º 5
0
<?php

/* 
 * Objetivo: Gerar dinamicamente o logotipo do zabbix permitindo customizacao por usuario
 * Adail Horst - http://spinola.net.br/blog
 * Parte integrante do zabbix-extras
 * Nao e permitida qualquer alteracao que renomeie ou complique a identificacao do produto
 */
require_once dirname(__FILE__) . '/include/config.inc.php';
require_once dirname(__FILE__) . '/include/zbxe_visual_imp.php';
header("Content-type: image/png");
$query = "SELECT image FROM images WHERE name = '" . $ZBXE_VAR['logo_company'] . "'";
echo zbx_unescape_image(zbxeFieldValue($query, 'image'));
Exemplo n.º 6
0
define('ZBX_PAGE_NO_AUTHERIZATION', 1);
require_once 'include/config.inc.php';
require_once 'include/maps.inc.php';
$page['file'] = 'imgstore.php';
$page['type'] = detect_page_type(PAGE_TYPE_IMAGE);
include_once 'include/page_header.php';
//		VAR			TYPE	OPTIONAL FLAGS	VALIDATION	EXCEPTION
$fields = array('css' => array(T_ZBX_INT, O_OPT, P_SYS, null, null), 'imageid' => array(T_ZBX_STR, O_OPT, P_SYS, null, null), 'iconid' => array(T_ZBX_INT, O_OPT, P_SYS, DB_ID, null));
check_fields($fields);
if (isset($_REQUEST['css'])) {
    $css = 'div.sysmap_iconid_0{' . ' height: 50px; ' . ' width: 50px; ' . ' background-image: url("images/general/no_icon.png"); }' . "\n";
    $options = array('filter' => array('imagetype' => IMAGE_TYPE_ICON), 'output' => API_OUTPUT_EXTEND, 'select_image' => 1);
    $images = CImage::get($options);
    foreach ($images as $inum => $image) {
        //SDI($image['image']);
        $image['image'] = zbx_unescape_image(base64_decode($image['image']));
        $ico = imagecreatefromstring($image['image']);
        $w = imagesx($ico);
        $h = imagesy($ico);
        $css .= 'div.sysmap_iconid_' . $image['imageid'] . '{' . ' height: ' . $h . 'px; ' . ' width: ' . $w . 'px; ' . ' background-image: url("imgstore.php?iconid=' . $image['imageid'] . '");' . ' background-repeat:no-repeat; }' . "\n";
    }
    print $css;
} else {
    if (isset($_REQUEST['iconid'])) {
        $iconid = get_request('iconid', 0);
        if ($iconid > 0) {
            $image = get_image_by_imageid($iconid);
            print $image['image'];
        } else {
            $image = get_default_image(true);
            ImageOut($image);