summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Widgets/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php')
-rw-r--r--Widgets/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php90
1 files changed, 0 insertions, 90 deletions
diff --git a/Widgets/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php b/Widgets/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php
deleted file mode 100644
index 05c97378..00000000
--- a/Widgets/smarty/libs/sysplugins/smarty_internal_runtime_writefile.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-/**
- * Smarty write file plugin
- *
- * @package Smarty
- * @subpackage PluginsInternal
- * @author Monte Ohrt
- */
-
-/**
- * Smarty Internal Write File Class
- *
- * @package Smarty
- * @subpackage PluginsInternal
- */
-class Smarty_Internal_Runtime_WriteFile
-{
- /**
- * Writes file in a safe way to disk
- *
- * @param string $_filepath complete filepath
- * @param string $_contents file content
- * @param Smarty $smarty smarty instance
- *
- * @throws SmartyException
- * @return boolean true
- */
- public function writeFile($_filepath, $_contents, Smarty $smarty)
- {
- $_error_reporting = error_reporting();
- error_reporting($_error_reporting & ~E_NOTICE & ~E_WARNING);
- $_file_perms = property_exists($smarty, '_file_perms') ? $smarty->_file_perms : 0644;
- $_dir_perms = property_exists($smarty, '_dir_perms') ? (isset($smarty->_dir_perms) ? $smarty->_dir_perms : 0777) : 0771;
- if ($_file_perms !== null) {
- $old_umask = umask(0);
- }
-
- $_dirpath = dirname($_filepath);
- // if subdirs, create dir structure
- if ($_dirpath !== '.' && !file_exists($_dirpath)) {
- mkdir($_dirpath, $_dir_perms, true);
- }
-
- // write to tmp file, then move to overt file lock race condition
- $_tmp_file = $_dirpath . DS . str_replace(array('.', ','), '_', uniqid('wrt', true));
- if (!file_put_contents($_tmp_file, $_contents)) {
- error_reporting($_error_reporting);
- throw new SmartyException("unable to write file {$_tmp_file}");
- }
-
- /*
- * Windows' rename() fails if the destination exists,
- * Linux' rename() properly handles the overwrite.
- * Simply unlink()ing a file might cause other processes
- * currently reading that file to fail, but linux' rename()
- * seems to be smart enough to handle that for us.
- */
- if (Smarty::$_IS_WINDOWS) {
- // remove original file
- if (is_file($_filepath)) {
- @unlink($_filepath);
- }
- // rename tmp file
- $success = @rename($_tmp_file, $_filepath);
- } else {
- // rename tmp file
- $success = @rename($_tmp_file, $_filepath);
- if (!$success) {
- // remove original file
- if (is_file($_filepath)) {
- @unlink($_filepath);
- }
- // rename tmp file
- $success = @rename($_tmp_file, $_filepath);
- }
- }
- if (!$success) {
- error_reporting($_error_reporting);
- throw new SmartyException("unable to write file {$_filepath}");
- }
- if ($_file_perms !== null) {
- // set file permissions
- chmod($_filepath, $_file_perms);
- umask($old_umask);
- }
- error_reporting($_error_reporting);
-
- return true;
- }
-}