Files
2024-11-05 12:22:50 +01:00

97 lines
3.1 KiB
PHP

<?php
/**
* 2007-2015 Leotheme
*
* NOTICE OF LICENSE
*
* Adds image, text or video to your homepage.
*
* DISCLAIMER
*
* @author leotheme <leotheme@gmail.com>
* @copyright 2007-2015 Leotheme
* @license http://leotheme.com - prestashop template provider
*/
if (!class_exists('phpcopy')) {
class PhpCopy
{
/**
* @reference http://snipplr.com/view/74297/copy-files-and-folder-recursive/
* copy and override
*/
public static function cpy($source, $dest)
{
if (is_dir($source)) {
$dir_handle = opendir($source);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (is_dir($source."/".$file)) {
if (!is_dir($dest."/".$file)) {
mkdir($dest."/".$file);
}
self::cpy($source."/".$file, $dest."/".$file);
} else {
// if this is file then copy
copy($source."/".$file, $dest."/".$file);
}
}
}
closedir($dir_handle);
} else {
// if this is file then copy
copy($source, $dest);
}
}
/**
* Copy but not override
*/
public static function safeCopy($source, $dest)
{
if (is_dir($source)) {
$dir_handle = opendir($source);
while ($file = readdir($dir_handle)) {
if ($file != "." && $file != "..") {
if (is_dir($source."/".$file)) {
if (!is_dir($dest."/".$file)) {
mkdir($dest."/".$file);
}
self::safeCopy($source."/".$file, $dest."/".$file);
} else {
if (is_file($dest."/".$file) === false) {
// if this is file then copy
copy($source."/".$file, $dest."/".$file);
}
}
}
}
closedir($dir_handle);
} else {
if (is_file($dest) === false) {
// if this is file then copy
// if the destination file already exists, it will NOT be overwritten.
copy($source, $dest);
}
}
}
/**
* create folder foler path : a/b/c/d
* recursively create a long directory path
*/
public static function createPath($path)
{
if (is_dir($path)) {
# module validation
return true;
}
$prev_path = Tools::substr($path, 0, strrpos($path, '/', -2) + 1);
$return = self::createPath($prev_path);
return ($return && is_writable($prev_path)) ? mkdir($path) : false;
}
}
}