File Manager

Current Path : /webspace/www.promiel.be/html/modules/Gallery/
Upload File :
Current File : //webspace/www.promiel.be/html/modules/Gallery/action.multiaction.php

<?php
if (!isset($gCms))
	exit;

// Check permissions
if (!$this->CheckPermission('Use Gallery'))
{
	echo $this->ShowErrors(lang('needpermissionto', 'Use Gallery'));
	return;
}

if (empty($params['gid']) || (empty($params['fid']) && empty($params['imgselect'])))
{
	$params['module_error'] = lang('missingparams');
	$this->Redirect($id, 'defaultadmin', '', $params);
}

$gid = $params['gid'];
$nopermission = 0;

// check permission to edit
if ($this->CheckPermission('Gallery - Edit all galleries'))
{
	$permission_to_edit = 'all';
}
else
{
	$userid = get_userid();
	$galleryinfo = Gallery_utils::Getgalleryinfobyid($gid);
	$editors = explode(';', $galleryinfo['editors']);
	if (Gallery_utils::CheckEditor($userid, $gid, $editors))
	{
		$permission_to_edit = 'this';
	}
	else
	{
		$permission_to_edit = 'no';
	}
}


if (empty($params['fid']))
{
	$fid_array = is_array($params['imgselect']) ? array_keys($params['imgselect']) : explode(',', $params['imgselect']);
}
else
{
	$fid_array = array($params['fid']);
}

$fids = '';
if ($params['multiaction'] == 'active' || $params['multiaction'] == 'inactive' || $params['multiaction'] == 'switchactive')
{
	foreach ($fid_array as $fid)
	{
		$fileinfo = Gallery_utils::Getgalleryinfobyid($fid);
		$editors = explode(';', $fileinfo['editors']);
		if (strpos($fileinfo['filename'], "/") === FALSE && ($permission_to_edit == 'all' || $permission_to_edit == 'this'))
		{
			$fids .= $fid . ',';
		}
		elseif (strpos($fileinfo['filename'], "/") > 0 && Gallery_utils::CheckEditor($userid, $fid, $editors))
		{
			$fids .= $fid . ',';
		}
		else
		{
			$nopermission++;
		}
	}
}
$fids = trim($fids, ',');


switch ($params['multiaction'])
{
	case 'delete': {
			if ($permission_to_edit == 'all')
			{
				foreach ($fid_array as $fid)
				{
					$fileinfo = Gallery_utils::Getgalleryinfobyid($fid);
					if (strpos($fileinfo['filename'], "/") === FALSE)
					{
						// delete only one file
						Gallery_utils::DeleteGalleryDB('do_not_delete_directory', $fid);
					}
					else
					{
						// delete directory and files
						Gallery_utils::DeleteGalleryDB($fileinfo['filepath'] . $fileinfo['filename'], $fid);
					}
				}
				$gid = empty($params['gid']) ? $fileinfo['galleryid'] : $params['gid'];
			}
			else
			{
				$nopermission += count($fid_array);
			}
			break;
		}

	case 'rotateclockwise':
	case 'rotateanticlockwise': {
			if ($permission_to_edit == 'all' || $permission_to_edit == 'this')
			{
				foreach ($fid_array as $fid)
				{
					$fileinfo = Gallery_utils::Getgalleryinfobyid($fid);
					$image = '../' . DEFAULT_GALLERY_PATH . $fileinfo['filepath'] . $fileinfo['filename'];
					$degrees = $params['multiaction'] == 'rotateclockwise' ? 270 : 90;
					Gallery_utils::RotateImage($image, $degrees);
				}
			}
			else
			{
				$nopermission++;
			}
			break;
		}

	case 'active': {
			$query = "UPDATE " . cms_db_prefix() . "module_gallery SET active = 1 WHERE fileid IN (" . $fids . ")";
			$db->Execute($query);
			break;
		}

	case 'inactive': {
			$query = "UPDATE " . cms_db_prefix() . "module_gallery SET active = 0 WHERE fileid IN (" . $fids . ")";
			$db->Execute($query);
			break;
		}

	case 'switchactive': {
			$query = "UPDATE " . cms_db_prefix() . "module_gallery SET active = active^1 WHERE fileid IN (" . $fids . ")";
			$db->Execute($query);
			break;
		}

	case 'move': {
			$galleryinfo = Gallery_utils::Getgalleryinfobyid($params['moveto']);
			$newdir = $galleryinfo['filepath'] . $galleryinfo['filename'];
			$editors = explode(';', $galleryinfo['editors']);
			if (Gallery_utils::CheckEditor($userid, $params['moveto'], $editors))
			{
				// permission to edit destination dir
				foreach ($fid_array as $fid)
				{
					if ($fid != 1)
					{
						$fileinfo = Gallery_utils::Getgalleryinfobyid($fid);
						$newpath = '../' . DEFAULT_GALLERY_PATH . $newdir . $fileinfo['filename'];
						$oldpath = '../' . DEFAULT_GALLERY_PATH . $fileinfo['filepath'] . $fileinfo['filename'];
						if (strpos($fileinfo['filename'], "/") === FALSE)
						{
							// move only one file, let's don't forget the thumb
							if ($permission_to_edit == 'all' || $permission_to_edit == 'this')
							{
								if (@rename($oldpath, $newpath))
								{
									$newpath = '../' . DEFAULT_GALLERY_PATH . $newdir . IM_PREFIX . $fileinfo['filename'];
									$oldpath = '../' . DEFAULT_GALLERY_PATH . $fileinfo['filepath'] . IM_PREFIX . $fileinfo['filename'];
									@rename($oldpath, $newpath);
									$query = "UPDATE " . cms_db_prefix() . "module_gallery SET filepath = ?, galleryid = ? WHERE fileid = ?";
									$db->Execute($query, array($newdir, $params['moveto'], $fid));
								}
							}
							else
							{
								$nopermission++;
							}
						}
						else
						{
							// move directory
							$editors = explode(';', $fileinfo['editors']);
							if (Gallery_utils::CheckEditor($userid, $fid, $editors))
							{
								if (@rename($oldpath, $newpath))
								{
									$query = "UPDATE " . cms_db_prefix() . "module_gallery SET filepath = ?, galleryid = ? WHERE fileid = ?";
									$db->Execute($query, array($newdir, $params['moveto'], $fid));

									//move content
									$oldpath = $fileinfo['filepath'] . $fileinfo['filename'];
									$newpath = $newdir . $fileinfo['filename'];
									$query = "UPDATE " . cms_db_prefix() . "module_gallery SET filepath = REPLACE(filepath,?,?) WHERE filepath = ? OR filepath LIKE ?";
									$db->Execute($query, array($oldpath, $newpath, $oldpath, $oldpath . '%'));
								}
							}
							else
							{
								$nopermission++;
							}
						}
					}
				}
			}
			else
			{
				$nopermission += count($fid_array);
			}
			break;
		}
}

$origaction = $params['origaction'];
switch ($origaction)
{
	case 'editgallery': {
			$params = array('gid' => $gid, 'mode' => 'edit', 'fids' => $fids);
			break;
		}
	case 'defaultadmin': {
			$params = array();
			break;
		}
}

$this->Redirect($id, $origaction, $returnid, $params);
?>

File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com