@@ -70,8 +70,8 @@ |
||
| 70 | 70 | $debug = false; |
| 71 | 71 | |
| 72 | 72 | if (!isset($GLOBALS['xoopsTpl']) || !($GLOBALS['xoopsTpl'] instanceof \XoopsTpl)) { |
| 73 | - require_once $GLOBALS['xoops']->path('class/template.php'); |
|
| 74 | - $xoopsTpl = new \XoopsTpl(); |
|
| 73 | + require_once $GLOBALS['xoops']->path('class/template.php'); |
|
| 74 | + $xoopsTpl = new \XoopsTpl(); |
|
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | $moduleDirName = basename(dirname(__DIR__)); |
@@ -69,7 +69,7 @@ |
||
| 69 | 69 | |
| 70 | 70 | $debug = false; |
| 71 | 71 | |
| 72 | -if (!isset($GLOBALS['xoopsTpl']) || !($GLOBALS['xoopsTpl'] instanceof \XoopsTpl)) { |
|
| 72 | +if ( ! isset($GLOBALS['xoopsTpl']) || ! ($GLOBALS['xoopsTpl'] instanceof \XoopsTpl)) { |
|
| 73 | 73 | require_once $GLOBALS['xoops']->path('class/template.php'); |
| 74 | 74 | $xoopsTpl = new \XoopsTpl(); |
| 75 | 75 | } |
@@ -12,19 +12,19 @@ |
||
| 12 | 12 | |
| 13 | 13 | //if (is_object($GLOBALS['xoopsUser'])) { |
| 14 | 14 | if ($GLOBALS['xoopsUser'] instanceof \XoopsUser) { |
| 15 | - if (!$helper->isUserAdmin()) { |
|
| 16 | - $helper->redirect(XOOPS_URL . '/', 3, _NOPERM); |
|
| 17 | - } |
|
| 15 | + if (!$helper->isUserAdmin()) { |
|
| 16 | + $helper->redirect(XOOPS_URL . '/', 3, _NOPERM); |
|
| 17 | + } |
|
| 18 | 18 | } else { |
| 19 | - $helper->redirect(XOOPS_URL . '/user.php', 1, _NOPERM); |
|
| 19 | + $helper->redirect(XOOPS_URL . '/user.php', 1, _NOPERM); |
|
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | /** @var Xmf\Module\Admin $adminObject */ |
| 23 | 23 | $adminObject = \Xmf\Module\Admin::getInstance(); |
| 24 | 24 | |
| 25 | 25 | if (!isset($GLOBALS['xoopsTpl']) || !($GLOBALS['xoopsTpl'] instanceof \XoopsTpl)) { |
| 26 | - require_once $GLOBALS['xoops']->path('class/template.php'); |
|
| 27 | - $xoopsTpl = new \XoopsTpl(); |
|
| 26 | + require_once $GLOBALS['xoops']->path('class/template.php'); |
|
| 27 | + $xoopsTpl = new \XoopsTpl(); |
|
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | $pathIcon16 = Xmf\Module\Admin::iconUrl('', 16); |
@@ -12,7 +12,7 @@ discard block |
||
| 12 | 12 | |
| 13 | 13 | //if (is_object($GLOBALS['xoopsUser'])) { |
| 14 | 14 | if ($GLOBALS['xoopsUser'] instanceof \XoopsUser) { |
| 15 | - if (!$helper->isUserAdmin()) { |
|
| 15 | + if ( ! $helper->isUserAdmin()) { |
|
| 16 | 16 | $helper->redirect(XOOPS_URL . '/', 3, _NOPERM); |
| 17 | 17 | } |
| 18 | 18 | } else { |
@@ -22,7 +22,7 @@ discard block |
||
| 22 | 22 | /** @var Xmf\Module\Admin $adminObject */ |
| 23 | 23 | $adminObject = \Xmf\Module\Admin::getInstance(); |
| 24 | 24 | |
| 25 | -if (!isset($GLOBALS['xoopsTpl']) || !($GLOBALS['xoopsTpl'] instanceof \XoopsTpl)) { |
|
| 25 | +if ( ! isset($GLOBALS['xoopsTpl']) || ! ($GLOBALS['xoopsTpl'] instanceof \XoopsTpl)) { |
|
| 26 | 26 | require_once $GLOBALS['xoops']->path('class/template.php'); |
| 27 | 27 | $xoopsTpl = new \XoopsTpl(); |
| 28 | 28 | } |
@@ -17,228 +17,228 @@ |
||
| 17 | 17 | */ |
| 18 | 18 | trait FilesManagement |
| 19 | 19 | { |
| 20 | - /** |
|
| 21 | - * Function responsible for checking if a directory exists, we can also write in and create an index.html file |
|
| 22 | - * |
|
| 23 | - * @param string $folder The full path of the directory to check |
|
| 24 | - * |
|
| 25 | - * @return void |
|
| 26 | - * @throws \RuntimeException |
|
| 27 | - */ |
|
| 28 | - public static function createFolder($folder) |
|
| 29 | - { |
|
| 30 | - try { |
|
| 31 | - if (!file_exists($folder)) { |
|
| 32 | - if (!mkdir($folder) && !is_dir($folder)) { |
|
| 33 | - throw new \RuntimeException(sprintf('Unable to create the %s directory', $folder)); |
|
| 34 | - } |
|
| 35 | - |
|
| 36 | - file_put_contents($folder . '/index.html', '<script>history.go(-1);</script>'); |
|
| 37 | - } |
|
| 38 | - } |
|
| 39 | - catch (\Exception $e) { |
|
| 40 | - echo 'Caught exception: ', $e->getMessage(), "\n", '<br>'; |
|
| 41 | - } |
|
| 42 | - } |
|
| 43 | - |
|
| 44 | - /** |
|
| 45 | - * @param $file |
|
| 46 | - * @param $folder |
|
| 47 | - * @return bool |
|
| 48 | - */ |
|
| 49 | - public static function copyFile($file, $folder) |
|
| 50 | - { |
|
| 51 | - return copy($file, $folder); |
|
| 52 | - } |
|
| 53 | - |
|
| 54 | - /** |
|
| 55 | - * @param $src |
|
| 56 | - * @param $dst |
|
| 57 | - */ |
|
| 58 | - public static function recurseCopy($src, $dst) |
|
| 59 | - { |
|
| 60 | - $dir = opendir($src); |
|
| 61 | - @mkdir($dst); |
|
| 62 | - while (false !== ($file = readdir($dir))) { |
|
| 63 | - if (('.' !== $file) && ('..' !== $file)) { |
|
| 64 | - if (is_dir($src . '/' . $file)) { |
|
| 65 | - self::recurseCopy($src . '/' . $file, $dst . '/' . $file); |
|
| 66 | - } else { |
|
| 67 | - copy($src . '/' . $file, $dst . '/' . $file); |
|
| 68 | - } |
|
| 69 | - } |
|
| 70 | - } |
|
| 71 | - closedir($dir); |
|
| 72 | - } |
|
| 73 | - |
|
| 74 | - /** |
|
| 75 | - * |
|
| 76 | - * Remove files and (sub)directories |
|
| 77 | - * |
|
| 78 | - * @param string $src source directory to delete |
|
| 79 | - * |
|
| 80 | - * @uses \Xmf\Module\Helper::getHelper() |
|
| 81 | - * @uses \Xmf\Module\Helper::isUserAdmin() |
|
| 82 | - * |
|
| 83 | - * @return bool true on success |
|
| 84 | - */ |
|
| 85 | - public static function deleteDirectory($src) |
|
| 86 | - { |
|
| 87 | - // Only continue if user is a 'global' Admin |
|
| 88 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 89 | - return false; |
|
| 90 | - } |
|
| 91 | - |
|
| 92 | - $success = true; |
|
| 93 | - // remove old files |
|
| 94 | - $dirInfo = new \SplFileInfo($src); |
|
| 95 | - // validate is a directory |
|
| 96 | - if ($dirInfo->isDir()) { |
|
| 97 | - $fileList = array_diff(scandir($src, SCANDIR_SORT_NONE), ['..', '.']); |
|
| 98 | - foreach ($fileList as $k => $v) { |
|
| 99 | - $fileInfo = new \SplFileInfo("{$src}/{$v}"); |
|
| 100 | - if ($fileInfo->isDir()) { |
|
| 101 | - // recursively handle subdirectories |
|
| 102 | - if (!$success = self::deleteDirectory($fileInfo->getRealPath())) { |
|
| 103 | - break; |
|
| 104 | - } |
|
| 105 | - } else { |
|
| 106 | - // delete the file |
|
| 107 | - if (!($success = unlink($fileInfo->getRealPath()))) { |
|
| 108 | - break; |
|
| 109 | - } |
|
| 110 | - } |
|
| 111 | - } |
|
| 112 | - // now delete this (sub)directory if all the files are gone |
|
| 113 | - if ($success) { |
|
| 114 | - $success = rmdir($dirInfo->getRealPath()); |
|
| 115 | - } |
|
| 116 | - } else { |
|
| 117 | - // input is not a valid directory |
|
| 118 | - $success = false; |
|
| 119 | - } |
|
| 120 | - return $success; |
|
| 121 | - } |
|
| 122 | - |
|
| 123 | - /** |
|
| 124 | - * |
|
| 125 | - * Recursively remove directory |
|
| 126 | - * |
|
| 127 | - * @todo currently won't remove directories with hidden files, should it? |
|
| 128 | - * |
|
| 129 | - * @param string $src directory to remove (delete) |
|
| 130 | - * |
|
| 131 | - * @return bool true on success |
|
| 132 | - */ |
|
| 133 | - public static function rrmdir($src) |
|
| 134 | - { |
|
| 135 | - // Only continue if user is a 'global' Admin |
|
| 136 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 137 | - return false; |
|
| 138 | - } |
|
| 139 | - |
|
| 140 | - // If source is not a directory stop processing |
|
| 141 | - if (!is_dir($src)) { |
|
| 142 | - return false; |
|
| 143 | - } |
|
| 144 | - |
|
| 145 | - $success = true; |
|
| 146 | - |
|
| 147 | - // Open the source directory to read in files |
|
| 148 | - $iterator = new \DirectoryIterator($src); |
|
| 149 | - foreach ($iterator as $fObj) { |
|
| 150 | - if ($fObj->isFile()) { |
|
| 151 | - $filename = $fObj->getPathname(); |
|
| 152 | - $fObj = null; // clear this iterator object to close the file |
|
| 153 | - if (!unlink($filename)) { |
|
| 154 | - return false; // couldn't delete the file |
|
| 155 | - } |
|
| 156 | - } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 157 | - // Try recursively on directory |
|
| 158 | - self::rrmdir($fObj->getPathname()); |
|
| 159 | - } |
|
| 160 | - } |
|
| 161 | - $iterator = null; // clear iterator Obj to close file/directory |
|
| 162 | - return rmdir($src); // remove the directory & return results |
|
| 163 | - } |
|
| 164 | - |
|
| 165 | - /** |
|
| 166 | - * Recursively move files from one directory to another |
|
| 167 | - * |
|
| 168 | - * @param string $src - Source of files being moved |
|
| 169 | - * @param string $dest - Destination of files being moved |
|
| 170 | - * |
|
| 171 | - * @return bool true on success |
|
| 172 | - */ |
|
| 173 | - public static function rmove($src, $dest) |
|
| 174 | - { |
|
| 175 | - // Only continue if user is a 'global' Admin |
|
| 176 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 177 | - return false; |
|
| 178 | - } |
|
| 179 | - |
|
| 180 | - // If source is not a directory stop processing |
|
| 181 | - if (!is_dir($src)) { |
|
| 182 | - return false; |
|
| 183 | - } |
|
| 184 | - |
|
| 185 | - // If the destination directory does not exist and could not be created stop processing |
|
| 186 | - if (!is_dir($dest) && !mkdir($dest, 0755)) { |
|
| 187 | - return false; |
|
| 188 | - } |
|
| 189 | - |
|
| 190 | - // Open the source directory to read in files |
|
| 191 | - $iterator = new \DirectoryIterator($src); |
|
| 192 | - foreach ($iterator as $fObj) { |
|
| 193 | - if ($fObj->isFile()) { |
|
| 194 | - rename($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 195 | - } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 196 | - // Try recursively on directory |
|
| 197 | - self::rmove($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 198 | - // rmdir($fObj->getPath()); // now delete the directory |
|
| 199 | - } |
|
| 200 | - } |
|
| 201 | - $iterator = null; // clear iterator Obj to close file/directory |
|
| 202 | - return rmdir($src); // remove the directory & return results |
|
| 203 | - } |
|
| 204 | - |
|
| 205 | - /** |
|
| 206 | - * Recursively copy directories and files from one directory to another |
|
| 207 | - * |
|
| 208 | - * @param string $src - Source of files being moved |
|
| 209 | - * @param string $dest - Destination of files being moved |
|
| 210 | - * |
|
| 211 | - * @uses \Xmf\Module\Helper::getHelper() |
|
| 212 | - * @uses \Xmf\Module\Helper::isUserAdmin() |
|
| 213 | - * |
|
| 214 | - * @return bool true on success |
|
| 215 | - */ |
|
| 216 | - public static function rcopy($src, $dest) |
|
| 217 | - { |
|
| 218 | - // Only continue if user is a 'global' Admin |
|
| 219 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 220 | - return false; |
|
| 221 | - } |
|
| 222 | - |
|
| 223 | - // If source is not a directory stop processing |
|
| 224 | - if (!is_dir($src)) { |
|
| 225 | - return false; |
|
| 226 | - } |
|
| 227 | - |
|
| 228 | - // If the destination directory does not exist and could not be created stop processing |
|
| 229 | - if (!is_dir($dest) && !mkdir($dest, 0755)) { |
|
| 230 | - return false; |
|
| 231 | - } |
|
| 232 | - |
|
| 233 | - // Open the source directory to read in files |
|
| 234 | - $iterator = new \DirectoryIterator($src); |
|
| 235 | - foreach ($iterator as $fObj) { |
|
| 236 | - if ($fObj->isFile()) { |
|
| 237 | - copy($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 238 | - } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 239 | - self::rcopy($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 240 | - } |
|
| 241 | - } |
|
| 242 | - return true; |
|
| 243 | - } |
|
| 20 | + /** |
|
| 21 | + * Function responsible for checking if a directory exists, we can also write in and create an index.html file |
|
| 22 | + * |
|
| 23 | + * @param string $folder The full path of the directory to check |
|
| 24 | + * |
|
| 25 | + * @return void |
|
| 26 | + * @throws \RuntimeException |
|
| 27 | + */ |
|
| 28 | + public static function createFolder($folder) |
|
| 29 | + { |
|
| 30 | + try { |
|
| 31 | + if (!file_exists($folder)) { |
|
| 32 | + if (!mkdir($folder) && !is_dir($folder)) { |
|
| 33 | + throw new \RuntimeException(sprintf('Unable to create the %s directory', $folder)); |
|
| 34 | + } |
|
| 35 | + |
|
| 36 | + file_put_contents($folder . '/index.html', '<script>history.go(-1);</script>'); |
|
| 37 | + } |
|
| 38 | + } |
|
| 39 | + catch (\Exception $e) { |
|
| 40 | + echo 'Caught exception: ', $e->getMessage(), "\n", '<br>'; |
|
| 41 | + } |
|
| 42 | + } |
|
| 43 | + |
|
| 44 | + /** |
|
| 45 | + * @param $file |
|
| 46 | + * @param $folder |
|
| 47 | + * @return bool |
|
| 48 | + */ |
|
| 49 | + public static function copyFile($file, $folder) |
|
| 50 | + { |
|
| 51 | + return copy($file, $folder); |
|
| 52 | + } |
|
| 53 | + |
|
| 54 | + /** |
|
| 55 | + * @param $src |
|
| 56 | + * @param $dst |
|
| 57 | + */ |
|
| 58 | + public static function recurseCopy($src, $dst) |
|
| 59 | + { |
|
| 60 | + $dir = opendir($src); |
|
| 61 | + @mkdir($dst); |
|
| 62 | + while (false !== ($file = readdir($dir))) { |
|
| 63 | + if (('.' !== $file) && ('..' !== $file)) { |
|
| 64 | + if (is_dir($src . '/' . $file)) { |
|
| 65 | + self::recurseCopy($src . '/' . $file, $dst . '/' . $file); |
|
| 66 | + } else { |
|
| 67 | + copy($src . '/' . $file, $dst . '/' . $file); |
|
| 68 | + } |
|
| 69 | + } |
|
| 70 | + } |
|
| 71 | + closedir($dir); |
|
| 72 | + } |
|
| 73 | + |
|
| 74 | + /** |
|
| 75 | + * |
|
| 76 | + * Remove files and (sub)directories |
|
| 77 | + * |
|
| 78 | + * @param string $src source directory to delete |
|
| 79 | + * |
|
| 80 | + * @uses \Xmf\Module\Helper::getHelper() |
|
| 81 | + * @uses \Xmf\Module\Helper::isUserAdmin() |
|
| 82 | + * |
|
| 83 | + * @return bool true on success |
|
| 84 | + */ |
|
| 85 | + public static function deleteDirectory($src) |
|
| 86 | + { |
|
| 87 | + // Only continue if user is a 'global' Admin |
|
| 88 | + if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 89 | + return false; |
|
| 90 | + } |
|
| 91 | + |
|
| 92 | + $success = true; |
|
| 93 | + // remove old files |
|
| 94 | + $dirInfo = new \SplFileInfo($src); |
|
| 95 | + // validate is a directory |
|
| 96 | + if ($dirInfo->isDir()) { |
|
| 97 | + $fileList = array_diff(scandir($src, SCANDIR_SORT_NONE), ['..', '.']); |
|
| 98 | + foreach ($fileList as $k => $v) { |
|
| 99 | + $fileInfo = new \SplFileInfo("{$src}/{$v}"); |
|
| 100 | + if ($fileInfo->isDir()) { |
|
| 101 | + // recursively handle subdirectories |
|
| 102 | + if (!$success = self::deleteDirectory($fileInfo->getRealPath())) { |
|
| 103 | + break; |
|
| 104 | + } |
|
| 105 | + } else { |
|
| 106 | + // delete the file |
|
| 107 | + if (!($success = unlink($fileInfo->getRealPath()))) { |
|
| 108 | + break; |
|
| 109 | + } |
|
| 110 | + } |
|
| 111 | + } |
|
| 112 | + // now delete this (sub)directory if all the files are gone |
|
| 113 | + if ($success) { |
|
| 114 | + $success = rmdir($dirInfo->getRealPath()); |
|
| 115 | + } |
|
| 116 | + } else { |
|
| 117 | + // input is not a valid directory |
|
| 118 | + $success = false; |
|
| 119 | + } |
|
| 120 | + return $success; |
|
| 121 | + } |
|
| 122 | + |
|
| 123 | + /** |
|
| 124 | + * |
|
| 125 | + * Recursively remove directory |
|
| 126 | + * |
|
| 127 | + * @todo currently won't remove directories with hidden files, should it? |
|
| 128 | + * |
|
| 129 | + * @param string $src directory to remove (delete) |
|
| 130 | + * |
|
| 131 | + * @return bool true on success |
|
| 132 | + */ |
|
| 133 | + public static function rrmdir($src) |
|
| 134 | + { |
|
| 135 | + // Only continue if user is a 'global' Admin |
|
| 136 | + if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 137 | + return false; |
|
| 138 | + } |
|
| 139 | + |
|
| 140 | + // If source is not a directory stop processing |
|
| 141 | + if (!is_dir($src)) { |
|
| 142 | + return false; |
|
| 143 | + } |
|
| 144 | + |
|
| 145 | + $success = true; |
|
| 146 | + |
|
| 147 | + // Open the source directory to read in files |
|
| 148 | + $iterator = new \DirectoryIterator($src); |
|
| 149 | + foreach ($iterator as $fObj) { |
|
| 150 | + if ($fObj->isFile()) { |
|
| 151 | + $filename = $fObj->getPathname(); |
|
| 152 | + $fObj = null; // clear this iterator object to close the file |
|
| 153 | + if (!unlink($filename)) { |
|
| 154 | + return false; // couldn't delete the file |
|
| 155 | + } |
|
| 156 | + } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 157 | + // Try recursively on directory |
|
| 158 | + self::rrmdir($fObj->getPathname()); |
|
| 159 | + } |
|
| 160 | + } |
|
| 161 | + $iterator = null; // clear iterator Obj to close file/directory |
|
| 162 | + return rmdir($src); // remove the directory & return results |
|
| 163 | + } |
|
| 164 | + |
|
| 165 | + /** |
|
| 166 | + * Recursively move files from one directory to another |
|
| 167 | + * |
|
| 168 | + * @param string $src - Source of files being moved |
|
| 169 | + * @param string $dest - Destination of files being moved |
|
| 170 | + * |
|
| 171 | + * @return bool true on success |
|
| 172 | + */ |
|
| 173 | + public static function rmove($src, $dest) |
|
| 174 | + { |
|
| 175 | + // Only continue if user is a 'global' Admin |
|
| 176 | + if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 177 | + return false; |
|
| 178 | + } |
|
| 179 | + |
|
| 180 | + // If source is not a directory stop processing |
|
| 181 | + if (!is_dir($src)) { |
|
| 182 | + return false; |
|
| 183 | + } |
|
| 184 | + |
|
| 185 | + // If the destination directory does not exist and could not be created stop processing |
|
| 186 | + if (!is_dir($dest) && !mkdir($dest, 0755)) { |
|
| 187 | + return false; |
|
| 188 | + } |
|
| 189 | + |
|
| 190 | + // Open the source directory to read in files |
|
| 191 | + $iterator = new \DirectoryIterator($src); |
|
| 192 | + foreach ($iterator as $fObj) { |
|
| 193 | + if ($fObj->isFile()) { |
|
| 194 | + rename($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 195 | + } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 196 | + // Try recursively on directory |
|
| 197 | + self::rmove($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 198 | + // rmdir($fObj->getPath()); // now delete the directory |
|
| 199 | + } |
|
| 200 | + } |
|
| 201 | + $iterator = null; // clear iterator Obj to close file/directory |
|
| 202 | + return rmdir($src); // remove the directory & return results |
|
| 203 | + } |
|
| 204 | + |
|
| 205 | + /** |
|
| 206 | + * Recursively copy directories and files from one directory to another |
|
| 207 | + * |
|
| 208 | + * @param string $src - Source of files being moved |
|
| 209 | + * @param string $dest - Destination of files being moved |
|
| 210 | + * |
|
| 211 | + * @uses \Xmf\Module\Helper::getHelper() |
|
| 212 | + * @uses \Xmf\Module\Helper::isUserAdmin() |
|
| 213 | + * |
|
| 214 | + * @return bool true on success |
|
| 215 | + */ |
|
| 216 | + public static function rcopy($src, $dest) |
|
| 217 | + { |
|
| 218 | + // Only continue if user is a 'global' Admin |
|
| 219 | + if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 220 | + return false; |
|
| 221 | + } |
|
| 222 | + |
|
| 223 | + // If source is not a directory stop processing |
|
| 224 | + if (!is_dir($src)) { |
|
| 225 | + return false; |
|
| 226 | + } |
|
| 227 | + |
|
| 228 | + // If the destination directory does not exist and could not be created stop processing |
|
| 229 | + if (!is_dir($dest) && !mkdir($dest, 0755)) { |
|
| 230 | + return false; |
|
| 231 | + } |
|
| 232 | + |
|
| 233 | + // Open the source directory to read in files |
|
| 234 | + $iterator = new \DirectoryIterator($src); |
|
| 235 | + foreach ($iterator as $fObj) { |
|
| 236 | + if ($fObj->isFile()) { |
|
| 237 | + copy($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 238 | + } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 239 | + self::rcopy($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
|
| 240 | + } |
|
| 241 | + } |
|
| 242 | + return true; |
|
| 243 | + } |
|
| 244 | 244 | } |
@@ -28,8 +28,8 @@ discard block |
||
| 28 | 28 | public static function createFolder($folder) |
| 29 | 29 | { |
| 30 | 30 | try { |
| 31 | - if (!file_exists($folder)) { |
|
| 32 | - if (!mkdir($folder) && !is_dir($folder)) { |
|
| 31 | + if ( ! file_exists($folder)) { |
|
| 32 | + if ( ! mkdir($folder) && ! is_dir($folder)) { |
|
| 33 | 33 | throw new \RuntimeException(sprintf('Unable to create the %s directory', $folder)); |
| 34 | 34 | } |
| 35 | 35 | |
@@ -85,7 +85,7 @@ discard block |
||
| 85 | 85 | public static function deleteDirectory($src) |
| 86 | 86 | { |
| 87 | 87 | // Only continue if user is a 'global' Admin |
| 88 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 88 | + if ( ! ($GLOBALS['xoopsUser'] instanceof \XoopsUser) || ! $GLOBALS['xoopsUser']->isAdmin()) { |
|
| 89 | 89 | return false; |
| 90 | 90 | } |
| 91 | 91 | |
@@ -99,12 +99,12 @@ discard block |
||
| 99 | 99 | $fileInfo = new \SplFileInfo("{$src}/{$v}"); |
| 100 | 100 | if ($fileInfo->isDir()) { |
| 101 | 101 | // recursively handle subdirectories |
| 102 | - if (!$success = self::deleteDirectory($fileInfo->getRealPath())) { |
|
| 102 | + if ( ! $success = self::deleteDirectory($fileInfo->getRealPath())) { |
|
| 103 | 103 | break; |
| 104 | 104 | } |
| 105 | 105 | } else { |
| 106 | 106 | // delete the file |
| 107 | - if (!($success = unlink($fileInfo->getRealPath()))) { |
|
| 107 | + if ( ! ($success = unlink($fileInfo->getRealPath()))) { |
|
| 108 | 108 | break; |
| 109 | 109 | } |
| 110 | 110 | } |
@@ -133,12 +133,12 @@ discard block |
||
| 133 | 133 | public static function rrmdir($src) |
| 134 | 134 | { |
| 135 | 135 | // Only continue if user is a 'global' Admin |
| 136 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 136 | + if ( ! ($GLOBALS['xoopsUser'] instanceof \XoopsUser) || ! $GLOBALS['xoopsUser']->isAdmin()) { |
|
| 137 | 137 | return false; |
| 138 | 138 | } |
| 139 | 139 | |
| 140 | 140 | // If source is not a directory stop processing |
| 141 | - if (!is_dir($src)) { |
|
| 141 | + if ( ! is_dir($src)) { |
|
| 142 | 142 | return false; |
| 143 | 143 | } |
| 144 | 144 | |
@@ -150,15 +150,15 @@ discard block |
||
| 150 | 150 | if ($fObj->isFile()) { |
| 151 | 151 | $filename = $fObj->getPathname(); |
| 152 | 152 | $fObj = null; // clear this iterator object to close the file |
| 153 | - if (!unlink($filename)) { |
|
| 153 | + if ( ! unlink($filename)) { |
|
| 154 | 154 | return false; // couldn't delete the file |
| 155 | 155 | } |
| 156 | - } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 156 | + } elseif ( ! $fObj->isDot() && $fObj->isDir()) { |
|
| 157 | 157 | // Try recursively on directory |
| 158 | 158 | self::rrmdir($fObj->getPathname()); |
| 159 | 159 | } |
| 160 | 160 | } |
| 161 | - $iterator = null; // clear iterator Obj to close file/directory |
|
| 161 | + $iterator = null; // clear iterator Obj to close file/directory |
|
| 162 | 162 | return rmdir($src); // remove the directory & return results |
| 163 | 163 | } |
| 164 | 164 | |
@@ -173,17 +173,17 @@ discard block |
||
| 173 | 173 | public static function rmove($src, $dest) |
| 174 | 174 | { |
| 175 | 175 | // Only continue if user is a 'global' Admin |
| 176 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 176 | + if ( ! ($GLOBALS['xoopsUser'] instanceof \XoopsUser) || ! $GLOBALS['xoopsUser']->isAdmin()) { |
|
| 177 | 177 | return false; |
| 178 | 178 | } |
| 179 | 179 | |
| 180 | 180 | // If source is not a directory stop processing |
| 181 | - if (!is_dir($src)) { |
|
| 181 | + if ( ! is_dir($src)) { |
|
| 182 | 182 | return false; |
| 183 | 183 | } |
| 184 | 184 | |
| 185 | 185 | // If the destination directory does not exist and could not be created stop processing |
| 186 | - if (!is_dir($dest) && !mkdir($dest, 0755)) { |
|
| 186 | + if ( ! is_dir($dest) && ! mkdir($dest, 0755)) { |
|
| 187 | 187 | return false; |
| 188 | 188 | } |
| 189 | 189 | |
@@ -192,13 +192,13 @@ discard block |
||
| 192 | 192 | foreach ($iterator as $fObj) { |
| 193 | 193 | if ($fObj->isFile()) { |
| 194 | 194 | rename($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
| 195 | - } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 195 | + } elseif ( ! $fObj->isDot() && $fObj->isDir()) { |
|
| 196 | 196 | // Try recursively on directory |
| 197 | 197 | self::rmove($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
| 198 | 198 | // rmdir($fObj->getPath()); // now delete the directory |
| 199 | 199 | } |
| 200 | 200 | } |
| 201 | - $iterator = null; // clear iterator Obj to close file/directory |
|
| 201 | + $iterator = null; // clear iterator Obj to close file/directory |
|
| 202 | 202 | return rmdir($src); // remove the directory & return results |
| 203 | 203 | } |
| 204 | 204 | |
@@ -216,17 +216,17 @@ discard block |
||
| 216 | 216 | public static function rcopy($src, $dest) |
| 217 | 217 | { |
| 218 | 218 | // Only continue if user is a 'global' Admin |
| 219 | - if (!($GLOBALS['xoopsUser'] instanceof \XoopsUser) || !$GLOBALS['xoopsUser']->isAdmin()) { |
|
| 219 | + if ( ! ($GLOBALS['xoopsUser'] instanceof \XoopsUser) || ! $GLOBALS['xoopsUser']->isAdmin()) { |
|
| 220 | 220 | return false; |
| 221 | 221 | } |
| 222 | 222 | |
| 223 | 223 | // If source is not a directory stop processing |
| 224 | - if (!is_dir($src)) { |
|
| 224 | + if ( ! is_dir($src)) { |
|
| 225 | 225 | return false; |
| 226 | 226 | } |
| 227 | 227 | |
| 228 | 228 | // If the destination directory does not exist and could not be created stop processing |
| 229 | - if (!is_dir($dest) && !mkdir($dest, 0755)) { |
|
| 229 | + if ( ! is_dir($dest) && ! mkdir($dest, 0755)) { |
|
| 230 | 230 | return false; |
| 231 | 231 | } |
| 232 | 232 | |
@@ -235,7 +235,7 @@ discard block |
||
| 235 | 235 | foreach ($iterator as $fObj) { |
| 236 | 236 | if ($fObj->isFile()) { |
| 237 | 237 | copy($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
| 238 | - } elseif (!$fObj->isDot() && $fObj->isDir()) { |
|
| 238 | + } elseif ( ! $fObj->isDot() && $fObj->isDir()) { |
|
| 239 | 239 | self::rcopy($fObj->getPathname(), "{$dest}/" . $fObj->getFilename()); |
| 240 | 240 | } |
| 241 | 241 | } |