source: extensions/physical2virtual/main.inc.php @ 27146

Last change on this file since 27146 was 27146, checked in by JanisV, 10 years ago

Add new virt albums thumbnails

File size: 2.5 KB
Line 
1<?php
2/*
3Plugin Name: physical2virtual
4Version: 2.6.b
5Description: Autoconvert physical albums to virtual
6Author: JanisV
7*/
8
9if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
10
11define('PHYSICAL2VIRTUAL_ID',       basename(dirname(__FILE__)));
12define('PHYSICAL2VIRTUAL_PATH' ,    PHPWG_PLUGINS_PATH . PHYSICAL2VIRTUAL_ID . '/');
13define('PHYSICAL2VIRTUAL_ADMIN',    get_root_url() . 'admin.php?page=plugin-' . PHYSICAL2VIRTUAL_ID);
14
15add_event_handler('init', 'physical2virtual_init');
16if (defined('IN_ADMIN'))
17{
18  add_event_handler('get_admin_plugin_menu_links', 'physical2virtual_admin_menu');
19} 
20
21function physical2virtual_init()
22{
23  global $conf;
24 
25  load_language('plugin.lang', PHYSICAL2VIRTUAL_PATH);
26
27  $conf['physical2virtual'] = unserialize($conf['physical2virtual']);
28
29//  add_event_handler('invalidate_user_cache', 'physical2virtual_convert');
30}
31
32function physical2virtual_convert()
33{
34  global $conf;
35
36  $query = '
37    SELECT name
38    FROM '.CATEGORIES_TABLE.'
39    WHERE dir IS NULL
40  ;';  // get virtual
41  $virt_cats = array_from_query($query, 'name'); 
42 
43  $query = '
44    SELECT id, name
45    FROM '.CATEGORIES_TABLE.'
46    WHERE dir IS NOT NULL
47  ;';  // get physical
48  $result = pwg_query($query);
49  while ($row = pwg_db_fetch_assoc($result))
50  {
51    $virt_name = $row['name'];
52    $created = false;
53    if (!in_array($virt_name, $virt_cats))
54    {
55      $parent = isset($conf['physical2virtual']['parent_cat']) ? $conf['physical2virtual']['parent_cat'] : null;
56      $virt_id = create_virtual_category($virt_name, $parent)['id'];
57      $created = true;
58
59      if (isset($conf['physical2virtual']['lock_physical']) and $conf['physical2virtual']['lock_physical'])
60      {
61        $cat_info = get_cat_info($row['id']);
62        if ($cat_info['visible'] == true)
63        {
64          set_cat_visible(array($row['id']), false);
65        }
66      }
67    }
68    else
69    {
70      // Get existen virt category ID
71      $query = '
72        SELECT id FROM '.CATEGORIES_TABLE.' WHERE dir IS NULL AND name = \''.pwg_db_real_escape_string($virt_name).'\'
73      ;';
74      list($virt_id) = pwg_db_fetch_row(pwg_query($query));
75    }
76
77    $query = '
78      INSERT IGNORE INTO '.IMAGE_CATEGORY_TABLE.' (category_id, image_id)
79        SELECT '.$virt_id.', image_id FROM '.IMAGE_CATEGORY_TABLE.' WHERE category_id = '.$row['id'].'
80    ;';
81    pwg_query($query);
82
83    if ($created)
84    {
85      set_random_representant(array($virt_id));
86    }
87  }
88}
89
90function physical2virtual_admin_menu($menu)
91{
92  $menu[] = array(
93    'NAME' => 'physical2virtual',
94    'URL'  => PHYSICAL2VIRTUAL_ADMIN,
95  );
96
97  return $menu;
98}
99
100?>
Note: See TracBrowser for help on using the repository browser.