From 26aed79338d4258f4b08fcc97dc815e94ec49765 Mon Sep 17 00:00:00 2001 From: Michael Larabel Date: Mon, 23 Jun 2008 14:29:34 -0400 Subject: Add pts_module object for providing some common functions to use by PTS modules, switch system_monitor to using these functions. --- pts-core/objects/pts_module.php | 95 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 pts-core/objects/pts_module.php (limited to 'pts-core/objects/pts_module.php') diff --git a/pts-core/objects/pts_module.php b/pts-core/objects/pts_module.php new file mode 100644 index 0000000..a7fee6b --- /dev/null +++ b/pts-core/objects/pts_module.php @@ -0,0 +1,95 @@ +. +*/ + +class pts_module +{ + public static function save_dir() + { + $prefix_dir = PTS_USER_DIR . "local/"; + + if(!is_dir($prefix_dir)) + mkdir($prefix_dir); + + return $prefix_dir . self::module_name() . "/"; + } + public static function save_file($file, $contents = NULL) + { + // Saves a file for a module + + $save_base_dir = self::save_dir(); + + if(!is_dir($save_base_dir)) + mkdir($save_base_dir); + + if(($extra_dir = dirname($file)) != "." && !is_dir($save_base_dir . $extra_dir)) + mkdir($save_base_dir . $extra_dir); + + if(!empty($contents)) + { + if(file_put_contents($save_base_dir . $file, $contents) != FALSE) + return $save_base_dir . $file; + } + + return FALSE; + } + public static function copy_file($from_file, $to_file) + { + // Copy a file for a module + + $save_base_dir = self::save_dir(); + + if(!is_dir($save_base_dir)) + mkdir($save_base_dir); + + if(($extra_dir = dirname($to_file)) != "." && !is_dir($save_base_dir . $extra_dir)) + mkdir($save_base_dir . $extra_dir); + + + if(is_file($from_file) && (!is_file($save_base_dir . $to_file) || md5_file($from_file) != md5_file($save_base_dir . $to_file))) + if(copy($from_file, $save_base_dir . $to_file)) + return $save_base_dir . $to_file; + + return FALSE; + } + private static function module_name() + { + $module_name = "unknown"; + + if($GLOBALS["PTS_MODULE_CURRENT"] != FALSE) + { + $module_name = $GLOBALS["PTS_MODULE_CURRENT"]; + } + else + { + $bt = debug_backtrace(); + + for($i = 0; $i < count($bt) && $module_name == "unknown"; $i++) + if($bt[$i]["class"] != "pts_module") + $module_name = $bt[$i]["class"]; + } + + return $module_name; + } +} + +?> -- cgit