mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-08 11:11:39 +09:00
Implement files changelog
This commit is contained in:
parent
2cd2d0528b
commit
941542b991
6 changed files with 107 additions and 17 deletions
|
|
@ -16,16 +16,10 @@ class file extends ModuleObject
|
||||||
// Register action forward (to use in administrator mode)
|
// Register action forward (to use in administrator mode)
|
||||||
$oModuleController = getController('module');
|
$oModuleController = getController('module');
|
||||||
|
|
||||||
// Save the default settings for attachments
|
|
||||||
$config = new stdClass;
|
|
||||||
$config->allowed_filesize = '2';
|
|
||||||
$config->allowed_attach_size = '2';
|
|
||||||
$config->allowed_filetypes = '*.*';
|
|
||||||
$config->allowed_extensions = array();
|
|
||||||
$oModuleController->insertModuleConfig('file', $config);
|
|
||||||
// Generate a directory for the file module
|
// Generate a directory for the file module
|
||||||
FileHandler::makeDir('./files/attach/images');
|
FileHandler::makeDir('./files/attach/images');
|
||||||
FileHandler::makeDir('./files/attach/binaries');
|
FileHandler::makeDir('./files/attach/binaries');
|
||||||
|
|
||||||
// 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
|
// 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
|
||||||
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
|
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
|
||||||
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
|
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
|
||||||
|
|
|
||||||
|
|
@ -889,7 +889,6 @@ class fileController extends file
|
||||||
// Check file type
|
// Check file type
|
||||||
if(!$manual_insert && !$this->user->isAdmin())
|
if(!$manual_insert && !$this->user->isAdmin())
|
||||||
{
|
{
|
||||||
|
|
||||||
// Check file type
|
// Check file type
|
||||||
if(isset($config->allowed_extensions) && count($config->allowed_extensions))
|
if(isset($config->allowed_extensions) && count($config->allowed_extensions))
|
||||||
{
|
{
|
||||||
|
|
@ -1015,9 +1014,33 @@ class fileController extends file
|
||||||
$args->member_srl = $member_srl;
|
$args->member_srl = $member_srl;
|
||||||
$args->regdate = $file_regdate;
|
$args->regdate = $file_regdate;
|
||||||
$args->sid = Rhymix\Framework\Security::getRandom(32, 'hex');
|
$args->sid = Rhymix\Framework\Security::getRandom(32, 'hex');
|
||||||
|
|
||||||
|
$oDB = DB::getInstance();
|
||||||
|
$oDB->begin();
|
||||||
$output = executeQuery('file.insertFile', $args);
|
$output = executeQuery('file.insertFile', $args);
|
||||||
if(!$output->toBool()) return $output;
|
if(!$output->toBool())
|
||||||
|
{
|
||||||
|
$oDB->rollback();
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($config->save_changelog === 'Y')
|
||||||
|
{
|
||||||
|
$clargs = new stdClass;
|
||||||
|
$clargs->change_type = 'I';
|
||||||
|
$clargs->file_srl = $args->file_srl;
|
||||||
|
$clargs->file_size = $args->file_size;
|
||||||
|
$clargs->uploaded_filename = $args->uploaded_filename;
|
||||||
|
$clargs->regdate = $args->regdate;
|
||||||
|
$output = executeQuery('file.insertFileChangelog', $clargs);
|
||||||
|
if(!$output->toBool())
|
||||||
|
{
|
||||||
|
$oDB->rollback();
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$oDB->commit();
|
||||||
|
|
||||||
// Call a trigger (after)
|
// Call a trigger (after)
|
||||||
ModuleHandler::triggerCall('file.insertFile', 'after', $args);
|
ModuleHandler::triggerCall('file.insertFile', 'after', $args);
|
||||||
|
|
@ -1226,6 +1249,10 @@ class fileController extends file
|
||||||
return new BaseObject();
|
return new BaseObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$config = getModel('file')->getFileConfig();
|
||||||
|
$oDB = DB::getInstance();
|
||||||
|
$oDB->begin();
|
||||||
|
|
||||||
foreach($file_list as $file)
|
foreach($file_list as $file)
|
||||||
{
|
{
|
||||||
if(!is_object($file))
|
if(!is_object($file))
|
||||||
|
|
@ -1248,7 +1275,26 @@ class fileController extends file
|
||||||
|
|
||||||
// Remove from the DB
|
// Remove from the DB
|
||||||
$output = executeQuery('file.deleteFile', $file);
|
$output = executeQuery('file.deleteFile', $file);
|
||||||
if(!$output->toBool()) return $output;
|
if(!$output->toBool())
|
||||||
|
{
|
||||||
|
$oDB->rollback();
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
if($config->save_changelog === 'Y')
|
||||||
|
{
|
||||||
|
$clargs = new stdClass;
|
||||||
|
$clargs->change_type = 'D';
|
||||||
|
$clargs->file_srl = $file->file_srl;
|
||||||
|
$clargs->file_size = $file->file_size;
|
||||||
|
$clargs->uploaded_filename = $file->uploaded_filename;
|
||||||
|
$output = executeQuery('file.insertFileChangelog', $clargs);
|
||||||
|
if(!$output->toBool())
|
||||||
|
{
|
||||||
|
$oDB->rollback();
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// If successfully deleted, remove the file
|
// If successfully deleted, remove the file
|
||||||
Rhymix\Framework\Storage::delete(FileHandler::getRealPath($file->uploaded_filename));
|
Rhymix\Framework\Storage::delete(FileHandler::getRealPath($file->uploaded_filename));
|
||||||
|
|
@ -1260,6 +1306,7 @@ class fileController extends file
|
||||||
Rhymix\Framework\Storage::deleteEmptyDirectory(dirname(FileHandler::getRealPath($file->uploaded_filename)), true);
|
Rhymix\Framework\Storage::deleteEmptyDirectory(dirname(FileHandler::getRealPath($file->uploaded_filename)), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$oDB->commit();
|
||||||
return new BaseObject();
|
return new BaseObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1312,7 +1359,7 @@ class fileController extends file
|
||||||
* @param int $source_srl Sequence of target to move
|
* @param int $source_srl Sequence of target to move
|
||||||
* @param int $target_module_srl New squence of module
|
* @param int $target_module_srl New squence of module
|
||||||
* @param int $target_srl New sequence of target
|
* @param int $target_srl New sequence of target
|
||||||
* @return void
|
* @return object
|
||||||
*/
|
*/
|
||||||
function moveFile($source_srl, $target_module_srl, $target_srl)
|
function moveFile($source_srl, $target_module_srl, $target_srl)
|
||||||
{
|
{
|
||||||
|
|
@ -1324,11 +1371,14 @@ class fileController extends file
|
||||||
|
|
||||||
$file_count = count($file_list);
|
$file_count = count($file_list);
|
||||||
|
|
||||||
for($i=0;$i<$file_count;$i++)
|
$config = $oFileModel->getFileConfig($module_srl);
|
||||||
|
$oDB = DB::getInstance();
|
||||||
|
$oDB->begin();
|
||||||
|
|
||||||
|
foreach($file_list as $i => $file_info)
|
||||||
{
|
{
|
||||||
unset($file_info);
|
|
||||||
$file_info = $file_list[$i];
|
|
||||||
$old_file = $file_info->uploaded_filename;
|
$old_file = $file_info->uploaded_filename;
|
||||||
|
|
||||||
// Determine the file path by checking if the file is an image or other kinds
|
// Determine the file path by checking if the file is an image or other kinds
|
||||||
if (Rhymix\Framework\Filters\FilenameFilter::isDirectDownload($file_info->source_filename))
|
if (Rhymix\Framework\Filters\FilenameFilter::isDirectDownload($file_info->source_filename))
|
||||||
{
|
{
|
||||||
|
|
@ -1343,22 +1393,46 @@ class fileController extends file
|
||||||
$random_filename = basename($file_info->uploaded_filename) ?: Rhymix\Framework\Security::getRandom(32, 'hex');
|
$random_filename = basename($file_info->uploaded_filename) ?: Rhymix\Framework\Security::getRandom(32, 'hex');
|
||||||
$new_file = $path . $random_filename;
|
$new_file = $path . $random_filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pass if a target document to move is same
|
// Pass if a target document to move is same
|
||||||
if($old_file === $new_file) continue;
|
if($old_file === $new_file) continue;
|
||||||
|
|
||||||
// Create a directory
|
// Create a directory
|
||||||
FileHandler::makeDir($path);
|
FileHandler::makeDir($path);
|
||||||
|
|
||||||
// Move the file
|
// Move the file
|
||||||
FileHandler::rename($old_file, $new_file);
|
FileHandler::rename($old_file, $new_file);
|
||||||
|
|
||||||
// Delete old path
|
// Delete old path
|
||||||
Rhymix\Framework\Storage::deleteEmptyDirectory(dirname(FileHandler::getRealPath($old_file)), true);
|
Rhymix\Framework\Storage::deleteEmptyDirectory(dirname(FileHandler::getRealPath($old_file)), true);
|
||||||
|
|
||||||
// Update DB information
|
// Update DB information
|
||||||
$args = new stdClass;
|
$args = new stdClass;
|
||||||
$args->file_srl = $file_info->file_srl;
|
$args->file_srl = $file_info->file_srl;
|
||||||
$args->uploaded_filename = $new_file;
|
$args->uploaded_filename = $new_file;
|
||||||
$args->module_srl = $file_info->module_srl;
|
$args->module_srl = $file_info->module_srl;
|
||||||
$args->upload_target_srl = $target_srl;
|
$args->upload_target_srl = $target_srl;
|
||||||
executeQuery('file.updateFile', $args);
|
$output = executeQuery('file.updateFile', $args);
|
||||||
|
|
||||||
|
if($config->save_changelog === 'Y')
|
||||||
|
{
|
||||||
|
$clargs = new stdClass;
|
||||||
|
$clargs->change_type = 'M';
|
||||||
|
$clargs->file_srl = $file_info->file_srl;
|
||||||
|
$clargs->file_size = $file_info->file_size;
|
||||||
|
$clargs->uploaded_filename = $new_file;
|
||||||
|
$clargs->previous_filename = $old_file;
|
||||||
|
$output = executeQuery('file.insertFileChangelog', $clargs);
|
||||||
|
if(!$output->toBool())
|
||||||
|
{
|
||||||
|
$oDB->rollback();
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$oDB->commit();
|
||||||
|
return new BaseObject();
|
||||||
}
|
}
|
||||||
|
|
||||||
function copyFile($source_file, $module_srl, $upload_target_srl, &$content = null)
|
function copyFile($source_file, $module_srl, $upload_target_srl, &$content = null)
|
||||||
|
|
|
||||||
|
|
@ -229,6 +229,7 @@ class fileModel extends file
|
||||||
if(!$config->image_autorotate) $config->image_autorotate = $file_module_config->image_autorotate;
|
if(!$config->image_autorotate) $config->image_autorotate = $file_module_config->image_autorotate;
|
||||||
if(!$config->image_autorotate_quality) $config->image_autorotate_quality = $file_module_config->image_autorotate_quality;
|
if(!$config->image_autorotate_quality) $config->image_autorotate_quality = $file_module_config->image_autorotate_quality;
|
||||||
if(!$config->ffmpeg_command) $config->ffmpeg_command = $file_module_config->ffmpeg_command;
|
if(!$config->ffmpeg_command) $config->ffmpeg_command = $file_module_config->ffmpeg_command;
|
||||||
|
if(!$config->save_changelog) $config->save_changelog = $file_module_config->save_changelog;
|
||||||
|
|
||||||
// Default setting if not exists
|
// Default setting if not exists
|
||||||
if(!$config->allowed_filesize) $config->allowed_filesize = '2';
|
if(!$config->allowed_filesize) $config->allowed_filesize = '2';
|
||||||
|
|
|
||||||
13
modules/file/queries/insertFileChangelog.xml
Normal file
13
modules/file/queries/insertFileChangelog.xml
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<query id="insertFileChangelog" action="insert">
|
||||||
|
<tables>
|
||||||
|
<table name="files_changelog" />
|
||||||
|
</tables>
|
||||||
|
<columns>
|
||||||
|
<column name="change_type" var="change_type" notnull="notnull" />
|
||||||
|
<column name="file_srl" var="file_srl" filter="number" notnull="notnull" />
|
||||||
|
<column name="file_size" var="file_size" filter="number" notnull="notnull" />
|
||||||
|
<column name="uploaded_filename" var="uploaded_filename" notnull="notnull" />
|
||||||
|
<column name="previous_filename" var="previous_filename" />
|
||||||
|
<column name="regdate" var="regdate" default="curdate()" />
|
||||||
|
</columns>
|
||||||
|
</query>
|
||||||
9
modules/file/schemas/files_changelog.xml
Normal file
9
modules/file/schemas/files_changelog.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
<table name="files_changelog">
|
||||||
|
<column name="id" type="number" primary_key="primary_key" auto_increment="auto_increment" />
|
||||||
|
<column name="change_type" type="char" size="1" notnull="notnull" index="idx_change_type" />
|
||||||
|
<column name="file_srl" type="number" notnull="notnull" index="idx_file_srl" />
|
||||||
|
<column name="file_size" type="number" notnull="notnull" />
|
||||||
|
<column name="uploaded_filename" type="varchar" size="250" notnull="notnull" />
|
||||||
|
<column name="previous_filename" type="varchar" size="250" />
|
||||||
|
<column name="regdate" type="date" notnull="notnull" index="idx_regdate" />
|
||||||
|
</table>
|
||||||
|
|
@ -21,5 +21,4 @@
|
||||||
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
<button type="submit" class="x_btn x_btn-primary">{$lang->cmd_save}</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{@ var_dump($config)}
|
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue