From 4fd39629ef07f62c4c64e9bb8077ffe557e620d5 Mon Sep 17 00:00:00 2001 From: Petr Macek Date: Wed, 26 Aug 2026 16:30:39 +0200 Subject: [PATCH] formatting --- README.md | 6 ++-- images/index.php | 25 ++++++++++++++ include/arrays.php | 35 ++++++++++--------- include/database.php | 22 ++---------- include/functions.php | 70 +++++++++++++++++++------------------- poller_tags.php | 10 +++--- setup.php | 3 -- tags.php | 79 ++++++++++++------------------------------- 8 files changed, 108 insertions(+), 142 deletions(-) create mode 100644 images/index.php diff --git a/README.md b/README.md index 7b94739..5e77dfe 100644 --- a/README.md +++ b/README.md @@ -21,7 +21,7 @@ It is also possible to archive old tags. These are then not displayed in the gra ## Installation -To install the servcheck plugin, simply copy the plugin_servcheck directory to +To install the Tags plugin, simply copy the plugin_tags directory to Cacti's plugins directory and rename it to simply 'tags'. Once you have done this, goto Cacti's Plugin Management page, Install and Enable the Tags plugin. Once this is complete, you can grant users permission to manage tags. @@ -31,11 +31,11 @@ Go to Management -> Tags ## Bugs and Feature Enhancements -Bug and feature enhancements for the servcheck plugin are handled in GitHub. If +Bug and feature enhancements for the Tags plugin are handled in GitHub. If you find a first search the Cacti forums for a solution before creating an issue in GitHub - https://github.com/Cacti/plugin_tags -You can find more information on our forum - http://forums.cacti.net/ +You can find more information on our forum - https://forums.cacti.net/viewtopic.php?t=64137 ----------------------------------------------- Copyright (c) 2004-2026 - The Cacti Group, Inc. diff --git a/images/index.php b/images/index.php new file mode 100644 index 0000000..a16f0e6 --- /dev/null +++ b/images/index.php @@ -0,0 +1,25 @@ + __('Never', 'tags'), '7' => __('%d Days', 7, 'tags'), @@ -52,16 +51,16 @@ $tags_auto_how = [ 'primary' => __('Primary device', 'tags'), - 'all' => __('All devices', 'tags'), + 'all' => __('All devices', 'tags'), ]; $tags_event_types = [ - 'manual' => __('Manual', 'tags'), - 'auto_device_added' => __('Device Added', 'tags'), - 'auto_device_changed' => __('Device Changed', 'tags'), - 'auto_device_restart' => __('Device Restart', 'tags'), - 'auto_cacti_version_changed' => __('Cacti Version Changed', 'tags'), + 'manual' => __('Manual', 'tags'), + 'auto_device_added' => __('Device Added', 'tags'), + 'auto_device_changed' => __('Device Changed', 'tags'), + 'auto_device_restart' => __('Device Restart', 'tags'), + 'auto_cacti_version_changed' => __('Cacti Version Changed', 'tags'), 'auto_other' => __('Other Automatic Events', 'tags'), 'auto_data_source_reindexed' => __('Data Source Reindexed', 'tags'), 'auto_poller_overrun' => __('Poller Overrun', 'tags'), @@ -130,13 +129,13 @@ 'none_value' => __('None', 'tags'), ], 'tag_time' => [ - 'method' => 'textbox', + 'method' => 'textbox', 'friendly_name' => __('Date and time of tag', 'tags'), - 'description' => __('The date / time for this tag.', 'tags'), - 'value' => isset($data['tag_time']) ? date('Y-m-d H:i', $data['tag_time']) : '', - 'default' => date('Y-m-d H:i', time()), - 'max_length' => 22, - 'size' => 22, + 'description' => __('The date / time for this tag.', 'tags'), + 'value' => isset($data['tag_time']) ? date('Y-m-d H:i', $data['tag_time']) : '', + 'default' => date('Y-m-d H:i', time()), + 'max_length' => 22, + 'size' => 22, ], 'color' => [ 'friendly_name' => __('Choose color', 'tags'), @@ -160,16 +159,16 @@ ]; $settings['tags'] = [ - 'tags_display_header1' => [ + 'tags_display_header1' => [ 'friendly_name' => __('Settings', 'tags'), 'method' => 'spacer', ], 'tags_retention' => [ 'friendly_name' => __('Data Retention', 'tags'), - 'description' => __('After this time, tags will be moved to the archive and will no longer be displayed', 'mactrack'), - 'method' => 'drop_array', - 'default' => '365', - 'array' => $tags_retention, + 'description' => __('After this time, tags will be moved to the archive and will no longer be displayed', 'mactrack'), + 'method' => 'drop_array', + 'default' => '365', + 'array' => $tags_retention, ], 'tags_graph_limit' => [ 'friendly_name' => __('Graph legend limit', 'tags'), diff --git a/include/database.php b/include/database.php index 893510f..f050531 100644 --- a/include/database.php +++ b/include/database.php @@ -36,21 +36,6 @@ function plugin_tags_upgrade() { $new = $info['version']; $old = db_fetch_cell('SELECT version FROM plugin_config WHERE directory="tags"'); - - if (version_compare($old, '0.2', '<')) { -/* - foreach (['plugin_tags_event', 'plugin_tags_event_archive'] as $table) { - $column = db_fetch_row("SHOW COLUMNS FROM $table LIKE 'type'"); - - if (isset($column['Type']) && stripos($column['Type'], 'varchar') !== 0) { - db_execute("ALTER TABLE $table MODIFY type varchar(32) NOT NULL DEFAULT 'manual'"); - } - - db_execute("UPDATE $table SET type = 'auto_other' WHERE type = 'automatic'"); - } -*/ - } - db_execute_prepared('UPDATE plugin_config SET version = ? WHERE directory = ?', [$new, 'tags']); plugin_tags_setup_state_table(); @@ -97,13 +82,12 @@ function plugin_tags_setup_table() { $data['comment'] = 'Events archive'; api_plugin_db_table_create('tags', 'plugin_tags_event_archive', $data); - - $data = []; + $data = []; $data['columns'][] = ['name' => 'host_id', 'type' => 'int(11)', 'NULL' => false]; $data['columns'][] = ['name' => 'uptime', 'type' => 'bigint(20)', 'NULL' => false, 'default' => '0']; $data['primary'] = 'host_id'; - $data['type'] = 'InnoDB'; - $data['comment'] = 'Holds device uptime'; + $data['type'] = 'InnoDB'; + $data['comment'] = 'Holds device uptime'; api_plugin_db_table_create ('tags', 'plugin_tags_uptime', $data); plugin_tags_setup_state_table(); diff --git a/include/functions.php b/include/functions.php index 79a9a85..f2e2fe8 100644 --- a/include/functions.php +++ b/include/functions.php @@ -50,7 +50,6 @@ function tags_is_automatic_type($type) { return strpos((string) $type, 'auto_') === 0; } - /** Write a plugin debug message when selective debugging is enabled. * * @param string $message Message to log. @@ -65,7 +64,6 @@ function tags_debug($message = '') { } } - /** Read a persisted plugin state value. * * @param string $key State key. @@ -155,6 +153,7 @@ function plugin_tags_check_poller_events() { } $poller_interval = read_config_option('poller_interval'); + $pollers = db_fetch_assoc('SELECT id, name, status, total_time, UNIX_TIMESTAMP() - UNIX_TIMESTAMP(last_status) AS heartbeat FROM poller WHERE disabled = "" ORDER BY id'); foreach ($pollers as $poller) { @@ -162,7 +161,7 @@ function plugin_tags_check_poller_events() { if (read_config_option('tags_poller_overrun') == 'on') { $key = 'poller_overrun:' . $poller_id; - $overrun = (float) $poller['total_time'] >= ($poller_interval-1); + $overrun = (float) $poller['total_time'] >= ($poller_interval - 1); $was_over = tags_state_get($key) === '1'; if ($overrun && !$was_over) { @@ -216,7 +215,7 @@ function plugin_tags_check_plugin_events() { global $config; $tags = 0; -echo "aaaaa"; + if ((int)$config['poller_id'] !== 1) { return $tags; } @@ -231,9 +230,8 @@ function plugin_tags_check_plugin_events() { FROM plugin_config ORDER BY directory'); -echo "bb"; foreach ($plugins as $plugin) { -echo "cc-" . $plugin['directory']; + $key = 'plugin:' . $plugin['directory']; $old_raw = tags_state_get($key); @@ -248,7 +246,6 @@ function plugin_tags_check_plugin_events() { /* Plugin enabled */ if ($old_status !== null && $old_status != 1 && $new_status == 1) { -echo "dd"; $description = sprintf('Plugin enabled: %s %s', $plugin['directory'], $new_version); plugin_tags_create_tag(substr($description, 0, 64), 'primary', $primary_device, 0, read_config_option('tags_plugin_state_color'), 'auto_plugin_enabled'); @@ -257,7 +254,7 @@ function plugin_tags_check_plugin_events() { /* Plugin disabled */ } elseif ($old_status !== null && $old_status == 1 && $new_status != 1) { -echo "ee"; + $description = sprintf('Plugin disabled: %s',$plugin['directory']); plugin_tags_create_tag(substr($description, 0, 64), 'primary', $primary_device, 0, read_config_option('tags_plugin_state_color'), 'auto_plugin_disabled'); @@ -266,7 +263,7 @@ function plugin_tags_check_plugin_events() { /* Plugin version changed */ } elseif ($old_version !== null && version_compare($old_version, $new_version, '!=')) { -echo "ff"; + $description = sprintf('Plugin updated: %s %s → %s', $plugin['directory'], $old_version, $new_version); plugin_tags_create_tag(substr($description, 0, 64), 'primary', $primary_device, 0, read_config_option('tags_plugin_state_color'), 'auto_plugin_updated'); @@ -274,8 +271,6 @@ function plugin_tags_check_plugin_events() { $tags++; } -echo "gg"; - tags_state_set($key, json_encode([ 'status' => $new_status, 'version' => $new_version @@ -309,8 +304,9 @@ function plugin_tags_device_save($device) { * * @return bool true if tag was created, false otherwise */ -function plugin_tags_check_version () { - $current_version = get_cacti_version(); +function plugin_tags_check_version() { + + $current_version = get_cacti_version(); $previous_version = read_config_option('plugin_tags_cacti_version'); if (isset($previous_version) && $current_version != $previous_version) { @@ -336,14 +332,15 @@ function plugin_tags_check_hosts() { $tags_host_restart = read_config_option("tags_host_restart"); $tags_host_added = read_config_option("tags_host_added"); $tags_primary_device = read_config_option("tags_primary_device"); + $tags = 0; if ($tags_host_restart) { - $color_host_restart = read_config_option("tags_host_restart_color"); + $color_host_restart = read_config_option('tags_host_restart_color'); } if ($tags_host_added) { - $color_host_added = read_config_option("tags_host_added_color"); + $color_host_added = read_config_option('tags_host_added_color'); } $hosts = db_fetch_assoc ("SELECT id, snmp_sysUpTimeInstance, total_polls, ptu.uptime AS `old_uptime` @@ -357,21 +354,21 @@ function plugin_tags_check_hosts() { if ($tags_host_added && $host['old_uptime'] === null && $host['total_polls'] < 10) { // adding new device if ($tags_primary_device > 0) { - plugin_tags_create_tag (__('Device added, id %s', $host['id'], 'tags'), 'primary', $tags_primary_device, 0, $color_host_added, 'auto_device_added'); + plugin_tags_create_tag(__('Device added, id %s', $host['id'], 'tags'), 'primary', $tags_primary_device, 0, $color_host_added, 'auto_device_added'); $tags++; } else { cacti_log('Cannot create tag, primary device not set', 'tags'); } - plugin_tags_create_tag (__('Device added', 'tags'), 'device', $host['id'], 0, $color_host_added, 'auto_device_added'); + plugin_tags_create_tag(__('Device added', 'tags'), 'device', $host['id'], 0, $color_host_added, 'auto_device_added'); $tags++; continue; } if ($tags_host_restart && $host['old_uptime'] > $host['snmp_sysUpTimeInstance'] && $host['snmp_sysUpTimeInstance'] > 0) { // restart - plugin_tags_create_tag(__('Restart, uptime was %s', get_daysfromtime($host['old_uptime']/100), 'tags'), 'device', $host['id'], 0, $color_host_restart, 'auto_device_restart'); - $tags++; + plugin_tags_create_tag(__('Restart, uptime was %s', get_daysfromtime($host['old_uptime']/100), 'tags'), 'device', $host['id'], 0, $color_host_restart, 'auto_device_restart'); + $tags++; } } db_execute("INSERT INTO plugin_tags_uptime (host_id, uptime) @@ -421,7 +418,7 @@ function plugin_tags_rrd_graph_graph_options($data) { $host_id = db_fetch_cell_prepared('SELECT host_id FROM graph_local WHERE id = ?', [$data['graph_id']]); - $tags_primary = db_fetch_assoc_prepared ("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE + $tags_primary = db_fetch_assoc_prepared("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE tag_time BETWEEN ? AND ? AND enabled='on' AND target = 'primary' AND @@ -430,7 +427,7 @@ function plugin_tags_rrd_graph_graph_options($data) { ORDER BY tag_time desc", [$data['start'], $data['end'], $host_id]); - $tags_host = db_fetch_assoc_prepared ("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE + $tags_host = db_fetch_assoc_prepared("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE tag_time BETWEEN ? AND ? AND enabled='on' AND target = 'device' AND @@ -439,14 +436,14 @@ function plugin_tags_rrd_graph_graph_options($data) { ORDER BY tag_time desc", [$data['start'], $data['end'], $host_id]); - $tags_all = db_fetch_assoc_prepared ("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE + $tags_all = db_fetch_assoc_prepared("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE tag_time BETWEEN ? AND ? AND enabled='on' AND target = 'all' ORDER BY tag_time desc", [$data['start'], $data['end']]); - $tags_graph = db_fetch_assoc_prepared ("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE + $tags_graph = db_fetch_assoc_prepared("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE tag_time BETWEEN ? AND ? AND enabled='on' AND target = 'graph' AND @@ -458,8 +455,8 @@ function plugin_tags_rrd_graph_graph_options($data) { $site_id = db_fetch_cell_prepared('SELECT site_id FROM host WHERE id = ?', [$host_id]); - if($site_id > 0) { - $tags_site = db_fetch_assoc_prepared ("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE + if ($site_id > 0) { + $tags_site = db_fetch_assoc_prepared("SELECT id, tag_time, description, color, type FROM plugin_tags_event WHERE tag_time BETWEEN ? AND ? AND enabled='on' AND target = 'site' AND @@ -484,7 +481,7 @@ function plugin_tags_rrd_graph_graph_options($data) { $tags = array_merge($tags, $tags_site); } - usort($tags, function($a, $b) { + usort($tags, function ($a, $b) { return $b['tag_time'] <=> $a['tag_time']; }); @@ -502,7 +499,7 @@ function plugin_tags_rrd_graph_graph_options($data) { $label = date('y-m-d H:i', $tag['tag_time']) . ' ' . $tag['description']; $label = str_replace(':', '\\:', $label); - $add[] = RRD_NL . "VRULE:" . $tag['tag_time'] . "#$color:'$label\l'" . RRD_NL; + $add[] = RRD_NL . 'VRULE:' . $tag['tag_time'] . "#$color:'$label\l'" . RRD_NL; } } else { $automatic_groups = []; @@ -531,7 +528,7 @@ function plugin_tags_rrd_graph_graph_options($data) { } $automatic_groups = array_values($automatic_groups); - usort($automatic_groups, function($a, $b) { + usort($automatic_groups, function ($a, $b) { return $b['latest']['tag_time'] <=> $a['latest']['tag_time']; }); @@ -540,7 +537,7 @@ function plugin_tags_rrd_graph_graph_options($data) { foreach (array_slice($automatic_groups, 0, $legend_limit) as $group) { $type = $group['latest']['type']; $type_label = $tags_event_types[$type] ?? $type; - $dates = array_map(function($timestamp) { + $dates = array_map(function ($timestamp) { return date('y-m-d H:i', $timestamp); }, $group['dates']); $label = $type_label . ' (' . $group['count'] . '): ' . implode(', ', $dates); @@ -572,7 +569,7 @@ function plugin_tags_rrd_graph_graph_options($data) { foreach (array_slice($tags, 0, $vrule_limit) as $tag) { $color = array_key_exists($tag['color'], $all_colors) ? $tag['color'] : '999999'; - $line = "VRULE:" . $tag['tag_time'] . "#$color"; + $line = 'VRULE:' . $tag['tag_time'] . "#$color"; if (isset($legend_by_id[$tag['id']])) { $line .= ":'" . $legend_by_id[$tag['id']] . "\l'"; @@ -712,7 +709,7 @@ function plugin_tags_settings_update() { 'tags_plugin_state_color' => 'auto_plugin_updated', ]; - foreach($tags_sett as $ts) { + foreach ($tags_sett as $ts) { if (config_value_exists($ts . '_old')) { $old = read_config_option($ts . '_old'); $act = read_config_option($ts); @@ -732,10 +729,10 @@ function plugin_tags_settings_update() { default: if (isset($automatic_types[$ts])) { - db_execute_prepared("UPDATE plugin_tags_event + db_execute_prepared('UPDATE plugin_tags_event SET color = ? WHERE type = ? AND - color = ?", + color = ?', [$act, $automatic_types[$ts], $old]); } @@ -743,7 +740,7 @@ function plugin_tags_settings_update() { break; } - } + } } else { // save default as old values set_config_option($ts . '_old', read_config_option($ts)); } @@ -759,13 +756,13 @@ function plugin_tags_settings_update() { */ function plugin_tags_archive() { - $retention_days = (int) read_config_option("tags_retention"); + $retention_days = (int) read_config_option('tags_retention'); if ($retention_days == 0) { return true; } - $limit = time() - ($retention_days*86400); + $limit = time() - ($retention_days * 86400); $result = db_fetch_assoc_prepared('SELECT id FROM plugin_tags_event @@ -788,6 +785,7 @@ function plugin_tags_archive() { function plugin_tags_move_old_events($ids) { cacti_log('PLUGIN TAGS: moving ' . cacti_sizeof($ids) . ' records to the archive'); + foreach (array_chunk($ids, 50) as $chunk) { $chunk = array_map('intval', $chunk); diff --git a/poller_tags.php b/poller_tags.php index e9a90be..2011461 100644 --- a/poller_tags.php +++ b/poller_tags.php @@ -45,7 +45,7 @@ chdir($dir); if (strpos($dir, 'plugins') !== false) { - chdir('../../'); + chdir('../../'); } require('./include/cli_check.php'); @@ -74,7 +74,7 @@ if (strpos($parameter, '=')) { list($arg, $value) = explode('=', $parameter, 2); } else { - $arg = $parameter; + $arg = $parameter; $value = ''; } @@ -131,17 +131,17 @@ } } -if (read_config_option("tags_poller_overrun") == 'on') { +if (read_config_option('tags_poller_overrun') == 'on') { $tags += plugin_tags_check_poller_events(); } -if (read_config_option("tags_plugin_state") == 'on') { +if (read_config_option('tags_plugin_state') == 'on') { $tags += plugin_tags_check_plugin_events(); } $poller_end = microtime(true); -$pstats = 'Time:' . round($poller_end-$poller_start, 2) . ', Tags:' . $tags; +$pstats = 'Time:' . round($poller_end - $poller_start, 2) . ', Tags:' . $tags; cacti_log('TAGS STATS: ' . $pstats, false, 'SYSTEM'); tags_debug($pstats); diff --git a/setup.php b/setup.php index 79cb433..1510d3a 100644 --- a/setup.php +++ b/setup.php @@ -205,6 +205,3 @@ function plugin_tags_page_head() { print ""; } - - - diff --git a/tags.php b/tags.php index b66174d..b57aea0 100644 --- a/tags.php +++ b/tags.php @@ -46,7 +46,7 @@ $sql_where = 'WHERE host_id = ' . get_filter_request_var('host_id'); } else { $sql_where = ''; - } + } get_allowed_ajax_graphs($sql_where); break; @@ -206,7 +206,6 @@ function form_actions() { "; - html_end_box(); form_end(); @@ -222,7 +221,7 @@ function form_save() { global $tags_colors, $tags_target; if (isset_request_var('save_component')) { - $save['id'] = get_filter_request_var('id'); + $save['id'] = get_filter_request_var('id'); $save['description'] = form_input_validate(get_nfilter_request_var('description'), 'description', '', false, 3); @@ -240,14 +239,14 @@ function form_save() { $save['target'] = get_nfilter_request_var('target'); if (get_nfilter_request_var('target') == 'all') { - $save['host_id'] = 0; + $save['host_id'] = 0; $save['graph_id'] = 0; - } elseif (get_nfilter_request_var('target') == 'device') { + } elseif (get_nfilter_request_var('target') == 'device') { $save['host_id'] = get_filter_request_var('host_id'); - } elseif (get_nfilter_request_var('target') == 'graph') { + } elseif (get_nfilter_request_var('target') == 'graph') { $host_id = db_fetch_cell_prepared('SELECT host_id FROM graph_local WHERE id = ?', [get_filter_request_var('graph_id')]); if ($host_id > 0) { - $save['host_id'] = $host_id; + $save['host_id'] = $host_id; $save['graph_id'] = get_filter_request_var('graph_id'); } else { $_SESSION['sess_error_fields']['graph_id'] = 'graph_id'; @@ -318,17 +317,19 @@ function tags_edit() { $tags_fields['color']['array'] = $tags_colors; } else { - $data = []; + $data = []; $header_label = __('Tag [new]'); $tags_fields['color']['array'] = $tags_colors; } $tags_fields['host_id']['id'] = isset($data['host_id']) ? $data['host_id'] : ''; + if (isset($data['host_id']) && $data['host_id'] > 0) { $tags_fields['host_id']['value'] = db_fetch_cell_prepared('SELECT description FROM host WHERE id = ?', [$data['host_id']]); } $tags_fields['graph_id']['id'] = isset($data['graph_id']) ? $data['graph_id'] : ''; + if (isset($data['graph_id']) && $data['graph_id'] > 0) { $tags_fields['graph_id']['value'] = db_fetch_cell_prepared('SELECT gt.name FROM graph_local AS gl INNER JOIN graph_templates_graph AS gtg ON gl.id=gtg.local_graph_id @@ -336,6 +337,7 @@ function tags_edit() { } $tags_fields['site_id']['id'] = isset($data['site_id']) ? $data['site_id'] : ''; + if (isset($data['site_id']) && $data['site_id'] > 0) { $tags_fields['site_id']['value'] = db_fetch_cell_prepared('SELECT name FROM sites WHERE id = ?', [$data['site_id']]); } @@ -370,13 +372,7 @@ function tags_edit() { setTag(); -// tohle to kdyztak resi - // $('#target').on('change', function () { - // setTag(); - // }); - - - $('#tag_time').after(''); + $('#tag_time').after(''); $('#tagTime').click(function() { if (dateOpen) { @@ -388,7 +384,6 @@ function tags_edit() { } }); - $('#tag_time').datetimepicker({ minuteGrid: 10, stepMinute: 1, @@ -398,13 +393,8 @@ function tags_edit() { dateFormat: 'yy-mm-dd', showButtonPanel: false }); - - - }); - - function setTag() { var target_type = $('#target').val(); @@ -424,11 +414,9 @@ function setTag() { $('#row_site_id').show(); } } - 0 ? $row['graph_id'] : '-'; $row['site_id'] = $row['site_id'] > 0 ? $row['site_id'] : '-'; - $row['type'] = tags_is_automatic_type($row['type']) ? __('Yes', 'tags') : __('No', 'tags');; + $row['type'] = tags_is_automatic_type($row['type']) ? __('Yes', 'tags') : __('No', 'tags'); form_alternate_row('line' . $row['id'], false, $row['enabled']); form_selectable_cell("" . $row['description'] . '', $row['id']); @@ -656,10 +635,6 @@ function tags_list() { draw_actions_dropdown($tags_actions_menu, 1); } - - -// TADY - print ""; form_end(); @@ -674,7 +649,7 @@ function tags_filter() { if (get_filter_request_var('host_id')) { $host_id = get_filter_request_var('host_id'); - } else if (isset($_SESSION['plugin_uptime_host_id'])) { + } elseif (isset($_SESSION['plugin_uptime_host_id'])) { $host_id = $_SESSION['plugin_uptime_host_id']; } else { $host_id = -1; @@ -759,7 +734,7 @@ function tags_filter() { > Archive + > Archive @@ -777,7 +752,7 @@ function tags_filter() {
- + - + @@ -808,7 +783,7 @@ function tags_filter() { - + @@ -827,10 +802,8 @@ function tags_filter() {