Ignore:
Timestamp:
06/14/11 18:41:10 (9 years ago)
Author:
mistic100
Message:

Add event_handler on 'login_success' and 'invalidate_user_cache' to regenerate SmartAlbums content

Location:
extensions/SmartAlbums
Files:
2 added
1 deleted
7 edited

Legend:

Unmodified
Added
Removed
  • extensions/SmartAlbums/include/functions.inc.php

    r11334 r11376  
    3030  } 
    3131   
     32  if (!function_exists('set_rendom_representant')) 
     33  { 
     34    include(PHPWG_ROOT_PATH.'admin/include/functions.php'); 
     35  } 
    3236  set_random_representant(array($cat_id)); 
    3337   
    3438  return $images; 
     39} 
     40 
     41 
     42/* 
     43 * Make associations for all SmartAlbums 
     44 * Called with invalidate_user_cache and/or on admin login 
     45 * @param string login (not mandatory) 
     46 */ 
     47function smart_make_all_associations($login = false) 
     48{ 
     49  global $conf; 
     50     
     51  if (!is_array($conf['SmartAlbums'])) $conf['SmartAlbums'] = unserialize($conf['SmartAlbums']); 
     52   
     53  if ( !$login AND !defined('SMART_NOT_UPDATE') AND $conf['SmartAlbums']['update_on_upload'] != 'false' ) 
     54    continue; 
     55  else if ( is_string($login) AND is_admin() AND $conf['SmartAlbums']['update_on_login'] != 'false' ) 
     56    continue; 
     57  else 
     58    return; 
     59   
     60  /* get categories with smart filters */ 
     61  $query = ' 
     62SELECT DISTINCT id 
     63  FROM '.CATEGORIES_TABLE.' AS c 
     64    INNER JOIN '.CATEGORY_FILTERS_TABLE.' AS cf 
     65    ON c.id = cf.category_id 
     66;'; 
     67   
     68  /* regenerate photo list */ 
     69  $smart_cats = array_from_query($query, 'id'); 
     70  array_map('smart_make_associations', $smart_cats); 
     71   
     72  if (is_string($login)) 
     73  { 
     74    define('SMART_NOT_UPDATE', 1); 
     75    invalidate_user_cache(); 
     76  } 
    3577} 
    3678 
  • extensions/SmartAlbums/include/init_cat_list.php

    r11334 r11376  
    99{ 
    1010  global $template, $page, $smart_count; 
    11   include_once(SMART_PATH.'include/functions.inc.php'); 
     11 
    1212  $self_url = get_root_url().'admin.php?page=cat_list'.(isset($_GET['parent_id']) ? '&parent_id='.$_GET['parent_id'] : null); 
    1313   
     
    7070    } 
    7171     
    72     invalidate_user_cache(true); 
     72    define('SMART_NOT_UPDATE', 1); 
     73    invalidate_user_cache(); 
    7374  } 
    7475   
  • extensions/SmartAlbums/include/init_cat_modify.php

    r11334 r11376  
    88{ 
    99  global $template, $page; 
    10   include_once(SMART_PATH.'include/functions.inc.php'); 
    1110   
    1211  $cat_id = $_GET['cat_id']; 
     
    6261       
    6362      $associated_images = smart_make_associations($cat_id); 
    64       invalidate_user_cache(true); 
    6563      $template->assign('IMAGE_COUNT', l10n_dec('%d photo', '%d photos', count($associated_images))); 
     64       
     65      define('SMART_NOT_UPDATE', 1); 
     66      invalidate_user_cache(); 
    6667    } 
    6768  } 
  • extensions/SmartAlbums/language/en_UK/plugin.lang.php

    r11334 r11376  
    2323$lang['Regenerate photos list of this SmartAlbum'] = 'Regenerate photos list of this SmartAlbum'; 
    2424$lang['Regenerate photos list of all SmartAlbums'] = 'Regenerate photos list of all SmartAlbums'; 
     25$lang['Update albums on file upload'] = 'Update albums on file upload'; 
     26$lang['Update albums when an admin logins'] = 'Update albums when an admin logins'; 
    2527 
    2628?> 
  • extensions/SmartAlbums/language/fr_FR/plugin.lang.php

    r11334 r11376  
    2323$lang['Regenerate photos list of this SmartAlbum'] = 'Régénérer les photos de ce SmartAlbum'; 
    2424$lang['Regenerate photos list of all SmartAlbums'] = 'Régénérer les photos de tous les SmartAlbums'; 
     25$lang['Update albums on file upload'] = 'Mettre à jour les albums après la mise en ligne d\'un fichier'; 
     26$lang['Update albums when an admin logins'] = 'Mettre à jour les albums quand un admin se connecte'; 
    2527 
    2628?> 
  • extensions/SmartAlbums/main.inc.php

    r11334 r11376  
    1616define('CATEGORY_FILTERS_TABLE', $prefixeTable.'category_filters'); 
    1717 
     18add_event_handler('invalidate_user_cache', 'smart_make_all_associations'); 
     19add_event_handler('login_success', 'smart_make_all_associations'); 
     20include_once(SMART_PATH.'include/functions.inc.php'); 
     21 
    1822if (script_basename() == 'index') 
    1923{ 
     
    3034  add_event_handler('loc_begin_cat_list', 'smart_cat_list'); 
    3135  include_once(SMART_PATH.'include/init_cat_list.php'); 
     36   
     37  add_event_handler('get_admin_plugin_menu_links', 'smart_admin_menu'); 
     38        function smart_admin_menu($menu)  
     39        { 
     40                array_push($menu, array( 
     41                        'NAME' => 'SmartAlbums', 
     42                        'URL' => get_root_url().'admin.php?page=plugin-' . SMART_DIR)); 
     43                return $menu; 
     44        } 
    3245} 
    3346 
  • extensions/SmartAlbums/maintain.inc.php

    r11333 r11376  
    22if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!'); 
    33 
    4 function plugin_install() { 
     4function plugin_install()  
     5{ 
    56        global $prefixeTable; 
    67 
     
    1617   
    1718  /* add a collumn to image_category_table */ 
    18   pwg_query('ALTER TABLE `' . IMAGE_CATEGORY_TABLE . '` ADD `smart` ENUM("true", "false") NOT NULL DEFAULT "false";'); 
     19  pwg_query('ALTER TABLE `' . IMAGE_CATEGORY_TABLE . '` ADD `smart` ENUM(\'true\', \'false\') NOT NULL DEFAULT \'false\';'); 
    1920       
    2021  /* config parameter */ 
    21   // pwg_query("INSERT INTO `" . CONFIG_TABLE . "` 
    22     // VALUES ('SmartAlbums', '', 'Configuration for SmartAlbums plugin');"); 
     22  pwg_query(' 
     23INSERT INTO `' . CONFIG_TABLE . '` 
     24  VALUES ( 
     25    \'SmartAlbums\',  
     26    \''.serialize(array( 
     27        'update_on_upload' => false, 
     28        'update_on_login' => false, 
     29        ) 
     30      ).'\', 
     31    \'Configuration for SmartAlbums plugin\' 
     32  ) 
     33;'); 
     34 
    2335} 
    2436 
    25 function plugin_uninstall() { 
     37function plugin_activate() 
     38{ 
     39  global $conf; 
     40   
     41  if (!isset($conf['SmartAlbums'])) 
     42  { 
     43    pwg_query(' 
     44INSERT INTO `' . CONFIG_TABLE . '` 
     45  VALUES ( 
     46    \'SmartAlbums\',  
     47    \''.serialize(array( 
     48        'update_on_upload' => false, 
     49        'update_on_login' => false, 
     50        ) 
     51      ).'\', 
     52    \'Configuration for SmartAlbums plugin\' 
     53  ) 
     54;'); 
     55  } 
     56   
     57} 
     58 
     59function plugin_uninstall()  
     60{ 
    2661        global $prefixeTable; 
    2762   
    2863  pwg_query('DROP TABLE `' . $prefixeTable . 'category_filters`;'); 
    2964  pwg_query('ALTER TABLE `' . IMAGE_CATEGORY_TABLE . '` DROP `smart`;'); 
    30   pwg_query('DELETE FROM `' . CONFIG_TABLE . '` WHERE param = "SmartAlbums";'); 
     65  pwg_query('DELETE FROM `' . CONFIG_TABLE . '` WHERE param = \'SmartAlbums\';'); 
    3166} 
    3267?> 
Note: See TracChangeset for help on using the changeset viewer.