Changeset 17716


Ignore:
Timestamp:
Sep 3, 2012, 3:06:50 PM (8 years ago)
Author:
mistic100
Message:

consolidate upgrade process

Location:
extensions/SmartAlbums
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • extensions/SmartAlbums/main.inc.php

    r17207 r17716  
    1212global $prefixeTable;
    1313
    14 define('SMART_PATH', PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/');
     14define('SMART_PATH',    PHPWG_PLUGINS_PATH . 'SmartAlbums/');
    1515define('CATEGORY_FILTERS_TABLE', $prefixeTable . 'category_filters');
    16 define('SMART_ADMIN', get_root_url() . 'admin.php?page=plugin-' . basename(dirname(__FILE__)));
     16define('SMART_ADMIN',   get_root_url() . 'admin.php?page=plugin-SmartAlbums');
     17define('SMART_VERSION', '2.0.3');
     18
    1719
    1820add_event_handler('invalidate_user_cache', 'smart_make_all_associations');
    1921add_event_handler('init', 'smart_init');
    2022
     23if (defined('IN_ADMIN'))
     24{
     25  include_once(SMART_PATH.'include/cat_list.php');
     26  add_event_handler('loc_begin_cat_list', 'smart_cat_list');
     27  add_event_handler('tabsheet_before_select','smart_tab', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
     28  add_event_handler('get_admin_plugin_menu_links', 'smart_admin_menu');
     29  add_event_handler('delete_categories', 'smart_delete_categories');
     30}
     31
    2132include_once(SMART_PATH.'include/functions.inc.php');
    2233
     34
     35/**
     36 * update plugin & unserialize conf & load language
     37 */
    2338function smart_init()
    2439{
    25   global $conf;
     40  global $conf, $pwg_loaded_plugins;
    2641 
    27   load_language('plugin.lang', SMART_PATH);
     42  if (
     43    $pwg_loaded_plugins['SmartAlbums']['version'] == 'auto' or
     44    version_compare($pwg_loaded_plugins['SmartAlbums']['version'], SMART_VERSION, '<')
     45  )
     46  {
     47    include_once(SMART_PATH . 'include/install.inc.php');
     48    smart_albums_install();
     49   
     50    if ($pwg_loaded_plugins['SmartAlbums']['version'] != 'auto')
     51    {
     52      $query = '
     53UPDATE '. PLUGINS_TABLE .'
     54SET version = "'. SMART_VERSION .'"
     55WHERE id = "SmartAlbums"';
     56      pwg_query($query);
     57     
     58      $pwg_loaded_plugins['SmartAlbums']['version'] = SMART_VERSION;
     59     
     60      if (defined('IN_ADMIN'))
     61      {
     62        $_SESSION['page_infos'][] = 'Smart Albums updated to version '. SMART_VERSION;
     63      }
     64    }
     65  }
     66 
     67  if (defined('IN_ADMIN'))
     68  {
     69    load_language('plugin.lang', SMART_PATH);
     70  }
    2871  $conf['SmartAlbums'] = unserialize($conf['SmartAlbums']);
    2972 
     
    3376    include_once(SMART_PATH.'include/page_items.php');
    3477  }
    35   else if (script_basename() == 'admin')
    36   {
    37     include_once(SMART_PATH.'include/cat_list.php');
    38    
    39     add_event_handler('loc_begin_cat_list', 'smart_cat_list');
    40     add_event_handler('tabsheet_before_select','smart_tab', EVENT_HANDLER_PRIORITY_NEUTRAL, 2);
    41     add_event_handler('get_admin_plugin_menu_links', 'smart_admin_menu');
    42     add_event_handler('delete_categories', 'smart_delete_categories');
    43   }
    4478}
    4579
     80/**
     81 * new tab on album properties page
     82 */
    4683function smart_tab($sheets, $id)
    4784{
     
    6198}
    6299
     100
     101/**
     102 * admin plugins menu link
     103 */
    63104function smart_admin_menu($menu)
    64105{
  • extensions/SmartAlbums/maintain.inc.php

    r16939 r17716  
    22if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
    33
    4 global $prefixeTable;
    5 define('smart_table', $prefixeTable . 'category_filters');
    6 
    7 define('smart_default_config', serialize(array(
    8     'update_on_upload' => false,
    9     'show_list_messages' => true,
    10     'smart_is_forbidden' => true,
    11     )));
     4include_once(PHPWG_PLUGINS_PATH . 'SmartAlbums/include/install.inc.php');
    125
    136function plugin_install()
    147{
    15   /* create table to store filters */
    16         pwg_query(
    17 'CREATE TABLE IF NOT EXISTS `' . smart_table . '` (
    18   `category_id` smallint(5) unsigned NOT NULL,
    19   `type` varchar(16) NOT NULL,
    20   `cond` varchar(16) NULL,
    21   `value` text
    22 ) ENGINE=MyISAM DEFAULT CHARSET=utf8
    23 ;');
    24  
    25   /* add a collumn to image_category_table */
    26   pwg_query('ALTER TABLE `' . IMAGE_CATEGORY_TABLE . '` ADD `smart` ENUM(\'true\', \'false\') NOT NULL DEFAULT \'false\';');
    27      
    28   /* config parameter */
    29   conf_update_param('SmartAlbums', smart_default_config);
     8  smart_albums_install();
     9  define('smart_albums_installed', true);
    3010}
    3111
    3212function plugin_activate()
    3313{
    34   global $conf;
    35  
    36   if (!isset($conf['SmartAlbums']))
     14  if (!defined('smart_albums_installed'))
    3715  {
    38     conf_update_param('SmartAlbums', smart_default_config);
    39   }
    40   else
    41   {
    42     $new_conf = unserialize($conf['SmartAlbums']);
    43     // new param in 2.0.2
    44     if (!isset($new_conf['smart_is_forbidden']))
    45     {
    46       $new_conf['smart_is_forbidden'] = true;
    47       conf_update_param('SmartAlbums', smart_default_config);
    48     }
    49   }
    50  
    51   // some filters renamed in 2.0
    52   $name_changes = array(
    53     'the' => 'the_post',
    54     'before' => 'before_post',
    55     'after' => 'after_post',
    56     'the_crea' => 'the_taken',
    57     'before_crea' => 'before_taken',
    58     'after_crea' => 'after_taken',
    59     );
    60   foreach ($name_changes as $old => $new)
    61   {
    62     pwg_query('UPDATE ' . smart_table . ' SET cond = "'.$new.'" WHERE cond = "'.$old.'";');
     16    smart_albums_install();
    6317  }
    6418}
    6519
    6620function plugin_uninstall()
    67 
    68   pwg_query('DROP TABLE `' . smart_table . '`;');
     21{
     22  global $prefixeTable;
     23 
     24  pwg_query('DROP TABLE `' . $prefixeTable . 'category_filters`;');
    6925  pwg_query('ALTER TABLE `' . IMAGE_CATEGORY_TABLE . '` DROP `smart`;');
    7026  pwg_query('DELETE FROM `' . CONFIG_TABLE . '` WHERE param = \'SmartAlbums\' LIMIT 1;');
Note: See TracChangeset for help on using the changeset viewer.