Ignore:
Timestamp:
Nov 24, 2013, 6:09:57 PM (10 years ago)
Author:
mistic100
Message:

very big update for Piwigo 2.6

File:
1 edited

Legend:

Unmodified
Added
Removed
  • extensions/UserCollections/maintain.inc.php

    r24421 r25678  
    22if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    33
    4 defined('USER_COLLEC_ID') or define('USER_COLLEC_ID', basename(dirname(__FILE__)));
    5 include_once(PHPWG_PLUGINS_PATH . USER_COLLEC_ID . '/include/install.inc.php');
     4class UserCollections_maintain extends PluginMaintain
     5{
     6  private $installed = false;
    67
    7 function plugin_install()
    8 {
    9   user_collections_install();
    10  
    11   define('user_collections_installed', true);
    12 }
     8  function install($plugin_version, &$errors=array())
     9  {
     10    global $conf, $prefixeTable;
    1311
    14 function plugin_activate()
    15 {
    16   if (!defined('user_collections_intalled'))
     12    if (empty($conf['user_collections']))
     13    {
     14      $conf['user_collections'] = serialize(array(
     15        'allow_mails' => true,
     16        'allow_public' => true,
     17        ));
     18
     19      conf_update_param('user_collections', $conf['user_collections']);
     20    }
     21
     22    // create tables
     23    $query = '
     24CREATE TABLE IF NOT EXISTS `'.$prefixeTable.'collections` (
     25  `id` mediumint(8) NOT NULL AUTO_INCREMENT,
     26  `user_id` smallint(5) DEFAULT NULL,
     27  `name` varchar(255) NOT NULL,
     28  `date_creation` datetime NOT NULL,
     29  `comment` text NULL,
     30  `nb_images` mediumint(8) NOT NULL DEFAULT 0,
     31  PRIMARY KEY (`id`)
     32) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
     33;';
     34    pwg_query($query);
     35
     36    $query = '
     37CREATE TABLE IF NOT EXISTS `'.$prefixeTable.'collection_images` (
     38  `col_id` mediumint(8) NOT NULL,
     39  `image_id` mediumint(8) NOT NULL,
     40  `add_date` datetime NULL,
     41  UNIQUE KEY `UNIQUE` (`col_id`,`image_id`)
     42) ENGINE=MyISAM DEFAULT CHARSET=utf8
     43;';
     44    pwg_query($query);
     45
     46    $query = '
     47CREATE TABLE IF NOT EXISTS `'.$prefixeTable.'collection_shares` (
     48  `id` mediumint(8) NOT NULL AUTO_INCREMENT,
     49  `col_id` mediumint(8) NOT NULL,
     50  `share_key` varchar(64) NOT NULL,
     51  `params` text NULL,
     52  `add_date` datetime NOT NULL,
     53  PRIMARY KEY (`id`),
     54  UNIQUE KEY `share_key` (`share_key`)
     55) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
     56;';
     57    pwg_query($query);
     58
     59
     60    // version 2.0.0
     61    $result = pwg_query('SHOW COLUMNS FROM `'.$prefixeTable.'collection_images` LIKE "add_date";');
     62    if (!pwg_db_num_rows($result))
     63    {
     64      pwg_query('ALTER TABLE `'.$prefixeTable.'collection_images` ADD `add_date` datetime NULL;');
     65    }
     66
     67    $result = pwg_query('SHOW COLUMNS FROM `'.$prefixeTable.'collections` LIKE "comment";');
     68    if (!pwg_db_num_rows($result))
     69    {
     70      pwg_query('ALTER TABLE `'.$prefixeTable.'collections` ADD `comment` text NULL;');
     71      pwg_query('ALTER TABLE `'.$prefixeTable.'collections` DROP `active`;');
     72    }
     73
     74    // version 2.1.0
     75    $result = pwg_query('SHOW COLUMNS FROM `'.$prefixeTable.'collections` LIKE "public";');
     76    if (pwg_db_num_rows($result))
     77    {
     78      $now = date('Y-m-d H:i:s');
     79
     80      $query = '
     81SELECT id, public_id
     82  FROM `'.$prefixeTable.'collections`
     83  WHERE public = 1
     84;';
     85      $result = pwg_query($query);
     86
     87      $inserts = array();
     88      while ($row = pwg_db_fetch_assoc($result))
     89      {
     90        $inserts[] = array(
     91          'col_id' => $row['id'],
     92          'share_key' => $row['public_id'],
     93          'params' => serialize(array('password'=>'','deadline'=>'')),
     94          'add_date' => $now,
     95          );
     96      }
     97
     98      mass_inserts($prefixeTable.'collection_shares',
     99        array('col_id','share_key','params','add_date'),
     100        $inserts
     101        );
     102
     103      pwg_query('ALTER TABLE `'.$prefixeTable.'collections` DROP `public`, DROP `public_id`;');
     104    }
     105  }
     106
     107  function activate($plugin_version, &$errors=array())
    17108  {
    18     user_collections_install();
     109    if (!$this->installed)
     110    {
     111      $this->install($plugin_version, $errors);
     112    }
     113  }
     114
     115  function deactivate(){}
     116
     117  function uninstall()
     118  {
     119    global $prefixeTable;
     120
     121    conf_delete_param('user_collections');
     122
     123    pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'collections`;');
     124    pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'collection_images`;');
     125    pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'collection_shares`;');
    19126  }
    20127}
    21 
    22 function plugin_uninstall()
    23 {
    24   global $prefixeTable, $conf;
    25  
    26   pwg_query('DELETE FROM `'. CONFIG_TABLE .'` WHERE param = "user_collections";');
    27   pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'collections`;');
    28   pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'collection_images`;');
    29   pwg_query('DROP TABLE IF EXISTS `'.$prefixeTable.'collection_shares`;');
    30  
    31   unset($conf['user_collections']);
    32 }
    33 
    34 ?>
Note: See TracChangeset for help on using the changeset viewer.