Dotclear

source: plugins/maintenance/inc/tasks/class.dc.maintenance.ziptheme.php @ 1989:b234959829da

Revision 1989:b234959829da, 1.4 KB checked in by Denis Jean-Chirstian <contact@…>, 12 years ago (diff)

Revamp plugin maintenance, step 5, now open to admin user and various fixes, addresses #999

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_RC_PATH')) { return; }
13
14class dcMaintenanceZiptheme extends dcMaintenanceTask
15{
16     protected $perm = 'admin';
17     protected $blog = true;
18     protected $tab = 'backup';
19     protected $group = 'zipblog';
20
21     protected function init()
22     {
23          $this->task = __('Download active theme of current blog');
24     }
25
26     public function execute()
27     {
28          // Get theme path
29          $path = $this->core->blog->themes_path;
30          $theme =$this->core->blog->settings->system->theme;
31          $dir = path::real($path.'/'.$theme);
32          if (empty($path) || empty($theme) || !is_dir($dir)) {
33               return false;
34          }
35
36          // Create zip
37          @set_time_limit(300);
38          $fp = fopen('php://output', 'wb');
39          $zip = new fileZip($fp);
40          $zip->addExclusion('#(^|/).(.*?)_(m|s|sq|t).jpg$#');
41          $zip->addDirectory($dir.'/', '', true);
42
43          // Log task execution here as we sent file and stop script
44          $this->log();
45
46          // Send zip
47          header('Content-Disposition: attachment;filename=theme-'.$theme.'.zip');
48          header('Content-Type: application/x-zip');
49          $zip->write();
50          unset($zip);
51          exit(1);
52     }
53}
Note: See TracBrowser for help on using the repository browser.

Sites map