File: cdef.php

package info (click to toggle)
cacti 0.8.6c-7sarge5
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 4,424 kB
  • ctags: 8,367
  • sloc: php: 35,994; sh: 4,033; sql: 2,357; xml: 680; perl: 109; makefile: 87
file content (76 lines) | stat: -rw-r--r-- 3,313 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
/*
 +-------------------------------------------------------------------------+
 | Copyright (C) 2004 Ian Berry                                            |
 |                                                                         |
 | This program is free software; you can redistribute it and/or           |
 | modify it under the terms of the GNU General Public License             |
 | as published by the Free Software Foundation; either version 2          |
 | of the License, or (at your option) any later version.                  |
 |                                                                         |
 | This program is distributed in the hope that it will be useful,         |
 | but WITHOUT ANY WARRANTY; without even the implied warranty of          |
 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           |
 | GNU General Public License for more details.                            |
 +-------------------------------------------------------------------------+
 | cacti: a php-based graphing solution                                    |
 +-------------------------------------------------------------------------+
 | Most of this code has been designed, written and is maintained by       |
 | Ian Berry. See about.php for specific developer credit. Any questions   |
 | or comments regarding this code should be directed to:                  |
 | - iberry@raxnet.net                                                     |
 +-------------------------------------------------------------------------+
 | - raXnet - http://www.raxnet.net/                                       |
 +-------------------------------------------------------------------------+
*/

/* get_cdef_item_name - resolves a single CDEF item into its text-based representation
   @arg $cdef_item_id - the id of the individual cdef item
   @returns - a text-based representation of the cdef item */
function get_cdef_item_name($cdef_item_id) 	{
	global $config;

	include($config["include_path"] . "/config_arrays.php");

	$cdef_item = db_fetch_row("select type,value from cdef_items where id=$cdef_item_id");
	$current_cdef_value = $cdef_item["value"];

	switch ($cdef_item["type"]) {
		case '1': return $cdef_functions[$current_cdef_value]; break;
		case '2': return $cdef_operators[$current_cdef_value]; break;
		case '4': return $current_cdef_value; break;
		case '5': return db_fetch_cell("select name from cdef where id=$current_cdef_value"); break;
		case '6': return $current_cdef_value; break;
	}
}

/* get_cdef - resolves an entire CDEF into its text-based representation for use in the RRDTool 'graph'
     string. this name will be resolved recursively if necessary
   @arg $cdef_id - the id of the cdef to resolve
   @returns - a text-based representation of the cdef */
function get_cdef($cdef_id) {
	$cdef_items = db_fetch_assoc("select * from cdef_items where cdef_id=$cdef_id order by sequence");

	$i = 0; $cdef_string = "";

	if (sizeof($cdef_items) > 0) {
	foreach ($cdef_items as $cdef_item) {
		if ($i > 0) {
			$cdef_string .= ",";
		}

		if ($cdef_item["type"] == 5) {
			$current_cdef_id = $cdef_item["value"];
			$cdef_string .= get_cdef($current_cdef_id);
		}else{
			$cdef_string .= get_cdef_item_name($cdef_item["id"]);
		}

		$i++;
	}
	}

	return $cdef_string;
}

?>