function pathos_files_copyDirectoryStructure($src, $dest, $exclude_dirs = array()) { $__oldumask = umask(0); if (!file_exists($dest)) { mkdir($dest, fileperms($src)); } $dh = opendir($src); while (($file = readdir($dh)) !== false) { if (is_dir("{$src}/{$file}") && !in_array($file, $exclude_dirs) && substr($file, 0, 1) != "." && $file != "CVS") { if (!file_exists("{$dest}/{$file}")) { mkdir("{$dest}/{$file}", fileperms("{$src}/{$file}")); } if (is_dir("{$dest}/{$file}")) { pathos_files_copyDirectoryStructure("{$src}/{$file}", "{$dest}/{$file}"); } } } umask($__oldumask); }
# not, write to: # # Free Software Foundation, Inc., # 59 Temple Place, # Suite 330, # Boston, MA 02111-1307 USA # # $Id: finish.php,v 1.4 2005/04/18 15:23:54 filetreefrog Exp $ ################################################## if (!defined('PATHOS')) { exit(''); } $dest_dir = pathos_sessions_get('dest_dir'); $files = pathos_sessions_get('files_data'); if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } if (!file_exists(BASE . 'files')) { mkdir(BASE . 'files', 0777); } foreach (array_keys($files) as $mod) { pathos_files_copyDirectoryStructure($dest_dir . '/files/' . $mod, BASE . 'files/' . $mod); foreach (array_keys($files[$mod][1]) as $file) { copy($dest_dir . '/files/' . $mod . '/' . $file, BASE . 'files/' . $mod . '/' . $file); } } pathos_sessions_unset('dest_dir'); pathos_sessions_unset('files_data'); pathos_files_removeDirectory($dest_dir); $template = new template('importer', '_files_final'); $template->output();
function pathos_sharedcore_linkExtension($type, $name, $source, $destination) { $typedir = ''; $manifest = ''; $auto_manidfest = ''; switch ($type) { case CORE_EXT_MODULE: $typedir = 'modules'; $manifest = 'modules/' . $name . '/manifest.php'; $auto_manifest = 'modules/' . $name . '/auto.manifest.php'; break; case CORE_EXT_SUBSYSTEM: $typedir = 'subsystems'; $manifest = 'subsystems/' . $name . '.manifest.php'; $auto_manifest = 'subsystems/' . $name . '.auto.manifest.php'; break; case CORE_EXT_THEME: $typedir = 'themes'; $manifest = 'themes/' . $name . '/manifest.php'; $auto_manifest = 'themes/' . $name . '/auto.manifest.php'; break; } if (substr($source, -1, 1) == "/") { $source = substr($source, 0, -1); } if (substr($destination, -1, 1) == "/") { $destination = substr($destination, 0, -1); } $linksrc = "{$source}/{$typedir}/{$name}"; $linkdest = "{$destination}/{$typedir}/{$name}"; if (is_dir($linksrc)) { pathos_files_copyDirectoryStructure($linksrc, $linkdest); } if (!defined('SYS_FILES')) { require_once BASE . 'subsystems/files.php'; } if (!defined('SYS_INFO')) { require_once BASE . 'subsystems/info.php'; } $files = $manifest == '' ? null : array(); if ($files !== null) { echo $source . '/' . $auto_manifest . '<br />'; echo $source . '/' . $manifest . '<br />'; if (is_readable($source . '/' . $auto_manifest)) { $files = (include $source . '/' . $auto_manifest); } else { if (is_readable($source . '/' . $manifest)) { $files = (include $source . '/' . $manifest); } else { $files = null; } } } if ($files !== null) { pathos_sharedcore_linkFiles($source . '/', $destination . '/', $files); } return SHAREDCORE_ERR_OK; }