Current oav website
This commit is contained in:
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
/**
|
||||
* @brief maintenance, a plugin for Dotclear 2
|
||||
*
|
||||
* @package Dotclear
|
||||
* @subpackage Plugins
|
||||
*
|
||||
* @copyright Olivier Meunier & Association Dotclear
|
||||
* @copyright GPL-2.0-only
|
||||
*/
|
||||
|
||||
if (!defined('DC_RC_PATH')) {return;}
|
||||
|
||||
class dcMaintenanceZipmedia extends dcMaintenanceTask
|
||||
{
|
||||
protected $perm = 'admin';
|
||||
protected $blog = true;
|
||||
protected $tab = 'backup';
|
||||
protected $group = 'zipblog';
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->task = __('Download media folder of current blog');
|
||||
|
||||
$this->description = __('It may be useful to backup your media folder. This compress all content of media folder into a single zip file. Notice : with some hosters, the media folder cannot be compressed with this plugin if it is too big.');
|
||||
}
|
||||
|
||||
public function execute()
|
||||
{
|
||||
// Instance media
|
||||
$this->core->media = new dcMedia($this->core);
|
||||
$this->core->media->chdir(null);
|
||||
$this->core->media->getDir();
|
||||
|
||||
// Create zip
|
||||
@set_time_limit(300);
|
||||
$fp = fopen('php://output', 'wb');
|
||||
$zip = new fileZip($fp);
|
||||
$zip->addExclusion('#(^|/).(.*?)_(m|s|sq|t).jpg$#');
|
||||
$zip->addDirectory($this->core->media->root . '/', '', true);
|
||||
|
||||
// Log task execution here as we sent file and stop script
|
||||
$this->log();
|
||||
|
||||
// Send zip
|
||||
header('Content-Disposition: attachment;filename=' . date('Y-m-d') . '-' . $this->core->blog->id . '-' . 'media.zip');
|
||||
header('Content-Type: application/x-zip');
|
||||
$zip->write();
|
||||
unset($zip);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user