[17922] | 1 | <?php |
---|
| 2 | defined('PHPWG_ROOT_PATH') or die('Hacking attempt!'); |
---|
| 3 | |
---|
| 4 | function stc_install() |
---|
| 5 | { |
---|
| 6 | global $conf, $prefixeTable; |
---|
| 7 | |
---|
| 8 | $stc_table = $prefixeTable . 'subscribe_to_comments'; |
---|
| 9 | |
---|
| 10 | // config parameter |
---|
| 11 | if (empty($conf['Subscribe_to_Comments'])) |
---|
| 12 | { |
---|
| 13 | $stc_default_config = serialize(array( |
---|
| 14 | 'notify_admin_on_subscribe' => false, |
---|
| 15 | 'allow_global_subscriptions' => true, |
---|
| 16 | )); |
---|
| 17 | |
---|
| 18 | conf_update_param('Subscribe_to_Comments', $stc_default_config); |
---|
| 19 | $conf['Subscribe_to_Comments'] = $stc_default_config; |
---|
| 20 | } |
---|
| 21 | |
---|
| 22 | // subscriptions table |
---|
| 23 | pwg_query(' |
---|
| 24 | CREATE TABLE IF NOT EXISTS `'.$stc_table.'` ( |
---|
| 25 | `id` int(11) unsigned NOT NULL AUTO_INCREMENT, |
---|
| 26 | `type` enum("image","album-images","album","all-images","all-albums") NOT NULL DEFAULT "image", |
---|
| 27 | `element_id` mediumint(8) DEFAULT NULL, |
---|
| 28 | `language` varchar(64) NOT NULL, |
---|
| 29 | `email` varchar(255) NOT NULL, |
---|
| 30 | `registration_date` datetime NOT NULL, |
---|
| 31 | `validated` enum("true","false") NOT NULL DEFAULT "false", |
---|
| 32 | PRIMARY KEY (`id`), |
---|
| 33 | UNIQUE KEY `UNIQUE` (`email` , `type` , `element_id`) |
---|
| 34 | ) DEFAULT CHARSET=utf8 |
---|
| 35 | ;'); |
---|
| 36 | |
---|
| 37 | // table structure upgrade in 1.1 |
---|
| 38 | $result = pwg_query('SHOW COLUMNS FROM `'.$stc_table.'` LIKE "element_id";'); |
---|
| 39 | if (!pwg_db_num_rows($result)) |
---|
| 40 | { |
---|
| 41 | // backup subscriptions |
---|
| 42 | $query = 'SELECT * FROM `'.$stc_table.'` ORDER BY registration_date;'; |
---|
| 43 | $subscriptions = hash_from_query($query, 'id'); |
---|
| 44 | |
---|
| 45 | // upgrade the table |
---|
| 46 | pwg_query('TRUNCATE TABLE `'.$stc_table.'`;'); |
---|
| 47 | pwg_query('ALTER TABLE `'.$stc_table.'` DROP `image_id`, DROP `category_id`;'); |
---|
| 48 | pwg_query('ALTER TABLE `'.$stc_table.'` AUTO_INCREMENT = 1;'); |
---|
| 49 | |
---|
| 50 | $query = ' |
---|
| 51 | ALTER TABLE `'.$stc_table.'` |
---|
| 52 | ADD `type` enum("image", "album-images", "album", "all-images", "all-albums") NOT NULL DEFAULT "image" AFTER `id`, |
---|
| 53 | ADD `element_id` mediumint(8) NULL AFTER `type`, |
---|
| 54 | ADD `language` varchar(64) NOT NULL AFTER `element_id` |
---|
| 55 | ;'; |
---|
| 56 | pwg_query($query); |
---|
| 57 | |
---|
| 58 | pwg_query('ALTER TABLE `'.$stc_table.'` DROP INDEX `UNIQUE`, ADD UNIQUE `UNIQUE` (`email`, `type`, `element_id`);'); |
---|
| 59 | |
---|
| 60 | // convert datas and fill the table |
---|
| 61 | $inserts = array(); |
---|
| 62 | |
---|
| 63 | foreach ($subscriptions as $row) |
---|
| 64 | { |
---|
| 65 | if (!empty($row['category_id'])) |
---|
| 66 | { |
---|
| 67 | $row['type'] = 'album'; |
---|
| 68 | $row['element_id'] = $row['category_id']; |
---|
| 69 | } |
---|
| 70 | else if (!empty($row['image_id'])) |
---|
| 71 | { |
---|
| 72 | $row['type'] = 'image'; |
---|
| 73 | $row['element_id'] = $row['image_id']; |
---|
| 74 | } |
---|
| 75 | else |
---|
| 76 | { |
---|
| 77 | continue; |
---|
| 78 | } |
---|
| 79 | |
---|
| 80 | unset($row['id'], $row['image_id'], $row['category_id']); |
---|
| 81 | $row['language'] = 'en_UK'; |
---|
| 82 | |
---|
| 83 | array_push($inserts, $row); |
---|
| 84 | } |
---|
| 85 | |
---|
| 86 | if (count($inserts) > 0) |
---|
| 87 | { |
---|
| 88 | $dbfields = array('type', 'element_id', 'language', 'email', 'registration_date', 'validated'); |
---|
| 89 | mass_inserts($stc_table, $dbfields, $inserts); |
---|
| 90 | } |
---|
| 91 | } |
---|
| 92 | } |
---|
| 93 | |
---|
| 94 | ?> |
---|