source: extensions/regenerateThumbnails/main.inc.php @ 9918

Last change on this file since 9918 was 9918, checked in by patdenice, 13 years ago

Clean code

File size: 3.5 KB
Line 
1<?php
2/*
3Plugin Name: Thumbnails Regeneration
4Version: 2.2.0
5Description: Regenerate thumbnails
6Author: P@t
7*/
8
9if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
10define('REGENERATE_THUMBNAILS_PATH' , PHPWG_PLUGINS_PATH . basename(dirname(__FILE__)) . '/');
11
12add_event_handler('loc_begin_element_set_global', 'rg_element_set_global_add_action');
13add_event_handler('ws_add_methods', 'add_regenerate_thumbnails_method');
14
15function rg_element_set_global_add_action()
16{
17  global $template, $conf, $page, $pwg_loaded_plugins;
18
19  load_language('plugin.lang', REGENERATE_THUMBNAILS_PATH);
20  include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php');
21
22  $template->set_filename('regenerateThumbnails', realpath(REGENERATE_THUMBNAILS_PATH.'element_set_global_action.tpl'));
23
24  if (isset($_GET['regeneratedThumbnail']))
25  {
26    $template->delete_compiled_templates();
27    array_push($page['infos'], sprintf(l10n('%s thumbnails have been regenerated'), $_GET['regeneratedThumbnail']));
28  }
29
30  foreach (get_upload_form_config() as $param_shortname => $param)
31  {
32    $param_name = 'upload_form_'.$param_shortname;
33    $form_values[$param_shortname] = $conf[$param_name];
34  }
35
36  if (isset($pwg_loaded_plugins['square_thumbnails']))
37  {
38    load_language('plugin.lang', SQUARE_THUMB_PATH);
39    $template->assign(array('SQUARE' => @$conf['upload_form_thumb_square']));
40  }
41
42  $template->assign(array(
43    'upload_form_settings' => $form_values,
44    'all_elements' => $page['cat_elements_id'],
45    'redirect_url' => get_root_url().'admin.php?page='.$_GET['page'],
46    )
47  );
48
49  $template->append('element_set_global_plugins_actions', array(
50    'ID' => 'regenerateThumbnails',
51    'NAME' => l10n('Regenerate Thumbnails'),
52    'CONTENT' => $template->parse('regenerateThumbnails', true),
53    )
54  );
55
56  $template->set_prefilter('batch_manager_global', 'regenerate_prefilter');
57}
58
59function add_regenerate_thumbnails_method($arr)
60{
61  global $conf;
62
63  $service = &$arr[0];
64  $service->addMethod(
65    'pwg.images.regenerateThumbnail',
66    'ws_images_regenerateThumbnail',
67    array(
68      'image_id'  => array(),
69      'maxwidth'  => array('default'=>$conf['upload_form_thumb_maxwidth']),
70      'maxheight' => array('default'=>$conf['upload_form_thumb_maxheight']),
71      'quality'   => array('default'=>$conf['upload_form_thumb_quality']),
72      'square'    => array('default'=>@$conf['upload_form_thumb_square']),
73    ),
74    'Regenerate a thumbnail with given arguments.'
75  );
76}
77
78function ws_images_regenerateThumbnail($params, &$service)
79{
80  global $conf;
81
82  if (!is_admin())
83    return new PwgError(401, 'Access denied');
84
85  $query='
86SELECT id, path
87FROM '.IMAGES_TABLE.'
88WHERE id = '.(int)$params['image_id'].'
89;';
90
91  $image = pwg_db_fetch_assoc(pwg_query($query));
92  if ($image == null)
93    return new PwgError(404, "image_id not found");
94
95  include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php');
96
97  if ($params['square'] == 'true' or $params['square'] == 'false')
98    $params['square'] = get_boolean($params['square']);
99  if (!$params['square'])
100    remove_event_handler('upload_thumbnail_resize', 'upload_square_resize', 40);
101 
102  trigger_event(
103    'upload_thumbnail_resize',
104    false,
105    $image['path'],
106    file_path_for_type($image['path'], 'thumb'),
107    $params['maxwidth'],
108    $params['maxheight'],
109    $params['quality'],
110    true
111    );
112
113  return true;
114}
115
116function regenerate_prefilter($content, $smarty)
117{
118  return str_replace('{$thumbnail.TN_SRC}', '{$thumbnail.TN_SRC}?rand='.md5(uniqid(rand(), true)), $content);
119}
120
121?>
Note: See TracBrowser for help on using the repository browser.