source: extensions/BatchDownloader/include/functions.inc.php @ 23321

Last change on this file since 23321 was 23321, checked in by mistic100, 11 years ago

improve filenames, fix for calendar view

File size: 2.6 KB
Line 
1<?php
2defined('BATCH_DOWNLOAD_PATH') or die('Hacking attempt!');
3
4/**
5 * get BatchDownloader type and type_id from page info
6 * @return: array or false
7 */
8function get_set_info_from_page()
9{
10  global $page;
11 
12  switch ($page['section'])
13  {
14    case 'categories':
15      if (isset($page['chronology_field']))
16      {
17        $batch_type = 'calendar';
18        $batch_id = add_well_known_params_in_url('', 
19          array_intersect_key($page, 
20            array(
21              'chronology_field'=>0,
22              'chronology_style'=>0,
23              'chronology_view'=>0,
24              'chronology_date'=>0,
25          )));
26        $batch_id = ltrim($batch_id, '/');
27      }
28      else if (isset($page['category']))
29      {
30        $batch_type = 'category';
31        $batch_id = $page['category']['id'];
32      }
33      else if (isset($page['flat'])) // this is for the whole gallery only, flat mode for category is above
34      {
35        return false;
36      }
37      break;
38    case 'tags':
39      $batch_type = 'tags';
40      $batch_id = implode(',', array_map(create_function('$t', 'return $t["id"];'), $page['tags']));
41      break;
42    case 'search':
43      $batch_type = 'search';
44      $batch_id = $page['search'];
45      break;
46    case 'collections':
47      if (in_array(@$page['sub_section'], array('view','edit')))
48      {
49        $batch_type = 'collection';
50        $batch_id = $page['col_id'];
51      }
52      break;
53    case 'favorites':
54    case 'most_visited':
55    case 'best_rated':
56    case 'list':
57    case 'recent_pics':
58      $batch_type = $page['section'];
59      $batch_id = null;
60      break;
61    default:
62      return false;
63  }
64 
65  return array(
66    'type' => $batch_type,
67    'id' => $batch_id,
68    'size' => !empty($_GET['down_size']) ? $_GET['down_size'] : 'original',
69    );
70}
71
72/**
73 * check is current user can use BatchDownloader
74 * @return: boolean
75 */
76function check_download_access()
77{
78  global $user, $conf;
79 
80  if (is_a_guest()) return false;
81  if (is_admin()) return true;
82 
83  if ($user['level'] < $conf['batch_download']['level']) return false;
84 
85  if (!empty($conf['batch_download']['groups']))
86  {
87    $query = '
88SELECT 1 FROM '.USER_GROUP_TABLE.'
89  WHERE
90    user_id = '.$user['id'].'
91    AND group_id IN('.implode(',', $conf['batch_download']['groups']).')
92;';
93    $result = pwg_query($query);
94   
95    if (!pwg_db_num_rows($result)) return false;
96  }
97 
98  return true;
99}
100
101// https://bugs.php.net/bug.php?id=61636
102function readlargefile($fullfile)
103{
104  $fp = fopen($fullfile, 'rb');
105
106  if ($fp)
107  {
108    while (!feof($fp))
109    {
110      print(fread($fp, 2097152));
111    }
112
113    fclose($fp);
114  }
115}
116
117?>
Note: See TracBrowser for help on using the repository browser.