File Manager
<?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