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

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

Update configuration after regeneration.

File size: 3.0 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_admin', 'rg_add_thumbnails_tab');
13add_event_handler('loc_begin_element_set_global', 'rg_element_set_global_add_action');
14add_event_handler('ws_add_methods', 'add_regenerate_thumbnails_method');
15
16function rg_add_thumbnails_tab()
17{
18  global $page;
19
20  if (isset($_GET['page']) and in_array($_GET['page'], array('thumbnail', 'plugin-regenerateThumbnails')))
21  {
22    load_language('plugin.lang', REGENERATE_THUMBNAILS_PATH);
23    include_once(PHPWG_ROOT_PATH.'admin/include/tabsheet.class.php');
24
25    if ($_GET['page'] == 'plugin-regenerateThumbnails')
26      $page['tab'] = 'regenerateThumbnails';
27    else
28      $page['tab'] = 'thumbnail';
29
30    $tabsheet = new tabsheet();
31    $tabsheet->add('thumbnail', l10n('Thumbnail creation'), get_root_url().'admin.php?page=thumbnail');
32    $tabsheet->add('regenerateThumbnails', l10n('Regenerate Thumbnails'), get_root_url().'admin.php?page=plugin-'.basename(dirname(__FILE__)));
33    $tabsheet->select($page['tab']);
34    $tabsheet->assign();
35  }
36}
37
38function rg_element_set_global_add_action()
39{
40  include(REGENERATE_THUMBNAILS_PATH.'element_set_global_action.php');
41}
42
43function add_regenerate_thumbnails_method($arr)
44{
45  global $conf;
46
47  $service = &$arr[0];
48  $service->addMethod(
49    'pwg.images.regenerateThumbnail',
50    'ws_images_regenerateThumbnail',
51    array(
52      'image_id'  => array(),
53      'maxwidth'  => array('default'=>$conf['upload_form_thumb_maxwidth']),
54      'maxheight' => array('default'=>$conf['upload_form_thumb_maxheight']),
55      'quality'   => array('default'=>$conf['upload_form_thumb_quality']),
56      'square'    => array('default'=>@$conf['upload_form_thumb_square']),
57    ),
58    'Regenerate a thumbnail with given arguments.'
59  );
60}
61
62function ws_images_regenerateThumbnail($params, &$service)
63{
64  global $conf;
65
66  if (!is_admin())
67    return new PwgError(401, 'Access denied');
68
69  $query='
70SELECT id, path
71FROM '.IMAGES_TABLE.'
72WHERE id = '.(int)$params['image_id'].'
73;';
74
75  $image = pwg_db_fetch_assoc(pwg_query($query));
76  if ($image == null)
77    return new PwgError(404, "image_id not found");
78
79  include_once(PHPWG_ROOT_PATH.'admin/include/functions_upload.inc.php');
80
81  if ($params['square'] == 'true' or $params['square'] == 'false')
82    $params['square'] = get_boolean($params['square']);
83  if (!$params['square'])
84    remove_event_handler('upload_thumbnail_resize', 'upload_square_resize', 40);
85 
86  trigger_event(
87    'upload_thumbnail_resize',
88    false,
89    $image['path'],
90    file_path_for_type($image['path'], 'thumb'),
91    $params['maxwidth'],
92    $params['maxheight'],
93    $params['quality'],
94    true
95    );
96
97  return true;
98}
99
100function regenerate_prefilter($content, $smarty)
101{
102  return str_replace('{$thumbnail.TN_SRC}', '{$thumbnail.TN_SRC}?rand='.md5(uniqid(rand(), true)), $content);
103}
104
105?>
Note: See TracBrowser for help on using the repository browser.