Esempio n. 1
0
function importDir($parent, $path)
{
	global $abspath;
	$logtext = "";
	
	$node_id = getNode($parent->getPath()."/".basename($path));
	
	if ($node_id <= 0)
	{
		$node_id = createObject($parent, basename($path), "file_folder");
		$logtext .= "Created ".$parent->getPathInTree()."/".basename($path)."<br/>";
		
		if ($node_id === false)
			return false;
	}
	
	$new_parent = new mObject($node_id);
	
	$subitems = GetSubfilesAndSubfolders($path);
	
	foreach ($subitems as $subitem)
	{
		if (is_dir("$path/$subitem"))
			$logtext .= importDir($new_parent, "$path/$subitem");
		else
		{
			createObject($new_parent, $subitem, "file", array("file" => "$subitem:$path/$subitem"));
			$logtext .= "Created ".$new_parent->getPathInTree()."/$subitem<br/>";
		}
	}
	
	return $logtext;
}
Esempio n. 2
0
	function actionImport_upload(&$system, $args)
	{
		global $abspath;
		$chroot = "$abspath/upload";
		
		$object = new mObject($this->getNodeId($args));
		
		if ($object->getNodeId() <= 0)
		{
			$system->addAlert(ucf(i18n("invalid upload target")));
			return;
		}
		
		if (!$object->hasRight("write"))
		{
			$system->addAlert(ucf(i18n("not enough rights")));
			return;
		}
		
		// Validate path... only folders under upload
		
		if (count($args['filenames']) == 0)
		{
			$system->addAlert(ucf(i18n("you must select some files or folders to import")));
			return;
		}
		
		$path = empty($args['path']) ? "/" : urldecode($args['path']);
		$fullpath = extractPath("$chroot$path");
		
		$testpath = substr($fullpath, 0, strlen($chroot));
		if ($testpath != $chroot)
		{
			$system->addAlert(ucf(i18n("this path is not allowed")));
			return;
		}
		
		$logtext = "<strong>Beginning import from upload folder</strong> - ".date("Y-m-d H:i:s")."<hr/>";
		
		foreach ($args['filenames'] as $filename)
		{
			if (is_dir("$fullpath$filename"))
			{
				$logtext .= importDir($object, "$fullpath$filename");
			}
			else if (is_file("$fullpath$filename"))
			{
				createObject($object, $filename, "file", array("file" => "$filename:$fullpath$filename"));
				$logtext .= "Created ".$object->getPathInTree()."/$filename<br/>";
			}
			else
				$logtext .= "Did not find $path$filename - skipping<br/>";
		}
		
		$logtext .= "<hr/><strong>Finished import</strong> - ".date("Y-m-d H:i:s")."<br/><br/>";
		
		$system->paddZoneData("zone_import_log", utf8e($logtext));
	}