source: extensions/BatchDownloader/include/install.inc.php @ 25931

Last change on this file since 25931 was 25931, checked in by mistic100, 10 years ago

allow to configure only one downloadable size

File size: 3.8 KB
Line 
1<?php
2if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
3
4function batch_download_install() 
5{
6  global $conf, $prefixeTable;
7 
8  // configuration
9  if (empty($conf['batch_download']))
10  {
11    $batch_download_default_config = array(
12      'groups'          => array(),
13      'level'           => 0,
14      'what'            => array('categories','specials','collections'),
15      'photo_size'      => 'original',
16      'multisize'       => true,
17      'archive_prefix'  => 'piwigo',
18      'archive_timeout' => 48, /* hours */
19      'max_elements'    => 500,
20      'max_size'        => 100, /* MB */
21      'last_clean'      => time(),
22      'one_archive'     => false,
23      'force_pclzip'    => false,
24      'direct'          => false,
25      );
26     
27    $conf['batch_download'] = serialize($batch_download_default_config);
28    $conf['batch_download_comment'] = null;
29   
30    conf_update_param('batch_download', $conf['batch_download']);
31    conf_update_param('batch_download_comment', $conf['batch_download_comment']);
32  }
33  else
34  {
35    $new_conf = is_string($conf['batch_download']) ? unserialize($conf['batch_download']) : $conf['batch_download'];
36   
37    if (!isset($new_conf['what']))
38    {
39      $new_conf['what'] = array('categories','specials','collections');
40    }
41    if (!isset($new_conf['one_archive']))
42    {
43      $new_conf['one_archive'] = false;
44      $new_conf['force_pclzip'] = isset($conf['batch_download_force_pclzip']) && $conf['batch_download_force_pclzip'];
45      $new_conf['direct'] = isset($conf['batch_download_direct']) && $conf['batch_download_direct'];
46    }
47    if (!isset($new_conf['multisize']))
48    {
49      $new_conf['multisize'] = true;
50    }
51   
52    $conf['batch_download'] = serialize($new_conf);
53    conf_update_param('batch_download', $conf['batch_download']);
54  }
55
56  // archives directory
57  if (!file_exists(PHPWG_ROOT_PATH . $conf['data_location'] . 'download_archives/'))
58  {
59    mkgetdir(PHPWG_ROOT_PATH . $conf['data_location'] . 'download_archives/', MKGETDIR_DEFAULT&~MKGETDIR_DIE_ON_ERROR);
60  }
61
62  // create tables
63  $query = '
64CREATE TABLE IF NOT EXISTS `' . $prefixeTable . 'download_sets` (
65  `id` mediumint(8) NOT NULL AUTO_INCREMENT,
66  `user_id` smallint(5) NOT NULL,
67  `date_creation` datetime NOT NULL,
68  `type` varchar(16) NOT NULL,
69  `type_id` varchar(64) NOT NULL,
70  `size` varchar(16) NOT NULL DEFAULT "original",
71  `nb_zip` smallint(3) NOT NULL DEFAULT 0,
72  `last_zip` smallint(3) NOT NULL DEFAULT 0,
73  `nb_images` mediumint(8) NOT NULL DEFAULT 0,
74  `total_size` int(10) NOT NULL DEFAULT 0,
75  `status` enum("new","ready","download","done") NOT NULL DEFAULT "new",
76  PRIMARY KEY (`id`)
77) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
78;';
79  pwg_query($query);
80 
81  $query = '
82CREATE TABLE IF NOT EXISTS `' . $prefixeTable . 'download_sets_images` (
83  `set_id` mediumint(8) NOT NULL,
84  `image_id` mediumint(8) NOT NULL,
85  `zip` smallint(5) NOT NULL DEFAULT 0,
86  UNIQUE KEY `UNIQUE` (`set_id`,`image_id`)
87) ENGINE=MyISAM DEFAULT CHARSET=utf8
88;';
89  pwg_query($query);
90 
91  $query = '
92CREATE TABLE IF NOT EXISTS `' . $prefixeTable . 'image_sizes` (
93  `image_id` mediumint(8) NOT NULL,
94  `type` varchar(16) NOT NULL,
95  `width` smallint(9) NOT NULL,
96  `height` smallint(9) NOT NULL,
97  `filesize` mediumint(9) NOT NULL,
98  `filemtime` int(16) NOT NULL,
99  PRIMARY KEY (`image_id`)
100) ENGINE=MyISAM DEFAULT CHARSET=utf8
101;';
102  pwg_query($query);
103 
104  // add a "size" column to download_sets
105  $result = pwg_query('SHOW COLUMNS FROM `' . $prefixeTable . 'download_sets` LIKE "size";');
106  if (!pwg_db_num_rows($result))
107  {     
108    pwg_query('ALTER TABLE `' . $prefixeTable . 'download_sets` ADD `size` varchar(16) NOT NULL DEFAULT "original";');
109  }
110 
111  // add "ready" status
112  pwg_query('ALTER TABLE `' . $prefixeTable . 'download_sets` CHANGE `status` `status` enum("new","ready","download","done") NOT NULL DEFAULT "new";');
113}
114
115?>
Note: See TracBrowser for help on using the repository browser.