source: extensions/pbase2piwigo/admin/import.php @ 17434

Last change on this file since 17434 was 17434, checked in by mistic100, 8 years ago

bug with albums with close names
bug with apostrophe in albums name and description

File size: 3.4 KB
Line 
1<?php
2if (!defined('PBASE_PATH')) die('Hacking attempt!');
3
4include_once(PBASE_PATH.'include/functions.inc.php');
5
6$step = null;
7
8if (test_remote_download() === false)
9{
10  array_push($page['errors'], l10n('No download method available. PBase2piwigo needs cURL extension or allow_url_fopen=true'));
11}
12else
13{
14  if (isset($_GET['action']))
15  {
16    switch ($_GET['action'])
17    {
18      case 'reset_tree':
19        unlink(PBASE_FS_CACHE.'tree.json');
20        redirect(PBASE_ADMIN.'-import');
21        break;
22    }
23  }
24  else
25  {
26    if (!file_exists(PBASE_FS_CACHE.'tree.json'))
27    {
28      $_GET['action'] = 'analyze';
29    }
30    else
31    {
32      $_GET['action'] = 'config';
33    }
34  }
35 
36  if (file_exists(PBASE_FS_CACHE.'tree.json'))
37  {
38    $tree = json_decode(file_get_contents(PBASE_FS_CACHE.'tree.json'), true);
39  }
40}
41
42
43switch ($_GET['action'])
44{
45  case 'analyze':
46  {
47    break;
48  }
49 
50  case 'config':
51  {
52    if (isset($_SESSION['pbase_empty_error']))
53    {
54      array_push($page['errors'], l10n('Import queue is empty'));
55      unset($_SESSION['pbase_empty_error']);
56    }
57   
58    // counters
59    $nb_categories = $nb_pictures = 0;
60    count_pictures_cats($tree, '/root', $nb_pictures, $nb_categories, true);
61   
62    // get piwigo categories
63    $query = '
64SELECT id, name, uppercats, global_rank
65  FROM '.CATEGORIES_TABLE.'
66;';
67    display_select_cat_wrapper($query, array(), 'category_parent_options');
68   
69    $template->assign(array(
70      'nb_categories' => $nb_categories-1, // don't count root
71      'nb_pictures' => $nb_pictures,
72      'F_ACTION' => PBASE_ADMIN.'-import&amp;action=init_import',
73      'RESET_LINK' => PBASE_ADMIN.'-import&amp;action=reset_tree',
74      'TREE' => print_tree($tree, 0, 'select'),
75      ));
76    break;
77  }
78 
79  case 'init_import':
80  {
81    $categories = $_POST['categories'];
82    $nb_categories = $nb_pictures = 0;
83   
84    if (isset($_POST['recursive']))
85    {
86      // we don't add "root", only it's children
87      if (@$categories[0] == '/root')
88      {
89        $temp = &get_current_cat($tree, '/root');
90        $categories = array_merge($categories, array_values(array_unique_deep($temp['categories'], 'path')));
91        $categories = array_unique($categories);
92        unset($categories[0]);
93      }
94     
95      // remove duplicate categories (in case of recursive mode)
96      foreach ($categories as &$path)
97      {
98        if ( ($matches = array_pos('#'.$path.'/([\w/]+)#', $categories, true, true)) !== false)
99        {
100          foreach ($matches as $i) unset($categories[$i]);
101        }
102      }
103      unset($path);
104    }
105   
106    // count pictures and cats
107    $temp_cats = $categories;
108    foreach ($temp_cats as $path)
109    {
110      count_pictures_cats($tree, $path, $nb_pictures, $nb_categories, isset($_POST['recursive']));
111    }
112   
113    if ($nb_pictures == 0)
114    {
115      $_SESSION['pbase_empty_error'] = true;
116      redirect(PBASE_ADMIN.'-import');
117    }
118   
119    $template->assign(array(
120      'nb_pictures' => $nb_pictures,
121      'nb_categories' => $nb_categories,
122      'categories' => $categories,
123      'PARENT_CATEGORY' => $_POST['parent_category'],
124      'RECURSIVE' => boolean_to_string(isset($_POST['recursive'])),
125      'FILLS' => implode(',', @$_POST['fills']),
126      'MANAGE_LINK' => get_root_url().'admin.php?page=batch_manager&amp;cat=recent',
127      ));
128    break;
129  }
130}
131
132$template->assign('STEP', $_GET['action']);
133
134$template->set_filename('pbase2piwigo', dirname(__FILE__) . '/template/import.tpl');
135
136?>
Note: See TracBrowser for help on using the repository browser.