function _update_media_record($id, $tmp_file_path, $file_name, $mime_type) { if (!file_exists($tmp_file_path)) { debug::write_error('file doesnt exist', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array('tmp' => $tmp_file_path)); return false; } if (function_exists('md5_file')) { $etag = md5_file($tmp_file_path); } else { $fd = fopen($data['tmp_name'], 'rb'); $contents = fread($fd, filesize($tmp_file_path)); fclose($fd); $etag = md5($contents); } if (!is_dir(MEDIA_DIR)) { dir::mkdir(MEDIA_DIR, 777, true); } if (!copy($tmp_file_path, MEDIA_DIR . $id . '.media')) { debug::write_error('temporary file copy failed', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array('src' => $tmp_file_path, 'dst' => MEDIA_DIR . $id . '.media')); return false; } $media_db_table = db_table_factory::instance('media'); $media_db_table->update_by_id($id, array('file_name' => $file_name, 'mime_type' => $mime_type, 'size' => filesize($tmp_file_path), 'etag' => $etag)); return true; }
function write($log_file_data, $string) { $log_dir = $log_file_data[0]; $log_name = $log_file_data[1]; $file_name = $log_dir . $log_name; if (!is_dir($log_dir)) { dir::mkdir($log_dir, 0775, true); } $oldumask = @umask(0); $file_existed = @file_exists($file_name); $log_file = @fopen($file_name, 'a'); if ($log_file) { $time = strftime("%b %d %Y %H:%M:%S", strtotime('now')); $notice = '[ ' . $time . " ]\n"; if ($user_id = user::get_id()) { $notice .= '[ ' . $user_id . ' ] [ ' . user::get_login() . ' ] [ ' . user::get_email() . ' ] '; } $notice .= '[' . sys::client_ip() . '] [' . (isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '') . "]\n" . $string . "\n\n"; @fwrite($log_file, $notice); @fclose($log_file); if (!$file_existed) { @chmod($file_name, 0664); } @umask($oldumask); $result = true; } else { @umask($oldumask); $result = false; debug::write_error("Cannot open log file '{$file_name}' for writing\n" . "The web server must be allowed to modify the file.\n" . "File logging for '{$file_name}' is disabled.", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, false); } return $result; }
function test_mkdir_windows() { if (sys::os_type() != 'win32') { return; } dir::mkdir(VAR_DIR . '/./tmp\\../tmp/wow////hey/', 0777, true); $this->assertTrue(is_dir(VAR_DIR . '/tmp/wow/hey/')); }
function cp($src, $dest) { dir::mkdir($dest, 0777); $arr = dir::ls($src); $separator = dir::separator(); foreach ($arr as $fn) { if ($fn) { $fl = "{$src}{$separator}{$fn}"; $flto = "{$dest}{$separator}{$fn}"; if (is_dir($fl)) { dir::cp($fl, $flto); } else { copy($fl, $flto); } } } }
function _load_cache($reset = true) { if ($reset) { $this->reset(); } $cached_dir = $this->cached_dir; if (!is_dir($cached_dir)) { if (!dir::mkdir($cached_dir, 0777, true)) { debug::write_error("Couldn't create cache directory {$cached_dir}, perhaps wrong permissions", __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__); } } $input_files = array(); $ini_file = ''; $this->find_input_files($input_files, $ini_file); if (count($input_files) == 0) { return false; } $md5_files = array(); foreach ($input_files as $input_file) { $md5_files[] = $input_file; } $md5_input = implode("\n", $md5_files); $file_name = md5($md5_input) . '.php'; $cached_file = $cached_dir . $file_name; $this->cache_file = $cached_file; $input_time = false; // check for modifications foreach ($input_files as $input_file) { $file_time = filemtime($input_file); if ($input_time === false || $file_time > $input_time) { $input_time = $file_time; } } $load_cache = false; $cache_time = false; if (file_exists($cached_file)) { $cache_time = filemtime($cached_file); $load_cache = true; if ($cache_time < $input_time) { $load_cache = false; } } $use_cache = false; if ($load_cache) { $use_cache = true; $charset = null; $block_values = array(); include $cached_file; if (!isset($ini_cache_code_date) or $ini_cache_code_date != INI_CACHE_CODE_DATE) { $this->reset(); $use_cache = false; } else { $this->charset = $charset; $this->block_values = $block_values; $this->modified_block_values = array(); unset($block_values); } } if (!$use_cache) { $this->_parse($input_files, $ini_file, false); $this->save_cache($cached_file); } }
function test_mkdir_relative_path_no_trailing_slash() { dir :: rm(TEST_DIR_RELATIVE_PATH . '/tmp/'); $this->assertFalse(is_dir(TEST_DIR_RELATIVE_PATH . '/tmp/wow/hey/')); dir :: mkdir(TEST_DIR_RELATIVE_PATH . '/./tmp\../tmp/wow////hey'); $this->assertTrue(is_dir(TEST_DIR_RELATIVE_PATH . '/tmp/wow/hey/')); }
function cp($src, $dest, $as_child = false, $exclude_regex = '', $include_hidden = false) { $src = dir::clean_path($src); $dest = dir::clean_path($dest); if (!is_dir($src)) { debug::write_error('no such a directory', __FILE__ . ' : ' . __LINE__ . ' : ' . __FUNCTION__, array('dir' => $src)); return false; } if (!dir::mkdir($dest)) { return false; } $separator = dir::separator(); if ($as_child) { $separator_regex = preg_quote($separator); if (preg_match("#^.+{$separator_regex}([^{$separator_regex}]+)\$#", $src, $matches)) { dir::_do_mkdir($dest . $separator . $matches[1], 0777); $dest .= $separator . $matches[1]; } else { return false; } //??? } $items = dir::find_subitems($src, 'df', $exclude_regex, false, $include_hidden); $total_items = $items; while (count($items) > 0) { $current_items = $items; $items = array(); foreach ($current_items as $item) { $full_path = $src . $separator . $item; if (is_file($full_path)) { copy($full_path, $dest . $separator . $item); } elseif (is_dir($full_path)) { dir::_do_mkdir($dest . $separator . $item, 0777); $new_items = dir::find_subitems($full_path, 'df', $exclude_regex, $item, $include_hidden); $items = array_merge($items, $new_items); $total_items = array_merge($total_items, $new_items); unset($new_items); } } } if ($total_items) { clearstatcache(); } return $total_items; }
/** * Writes a compiled template file * * @param string $ filename * @param string $ content to write to the file * @return void * @access protected */ function write_template_file($file, $data) { if (!is_dir(dirname($file))) { dir::mkdir(dirname($file), 0777, true); } $fp = fopen($file, "wb"); if (fwrite($fp, $data, strlen($data))) { fclose($fp); } }
/** * Constructor * * $attributes is an assoc. Available attributes are : * * @param array $attributes attributes * @access public */ function cache_lite($attributes = array(null)) { $this->import_attributes($attributes); if (!is_dir(CACHE_DIR)) { dir::mkdir(CACHE_DIR, 0777, true); } }