source: extensions/GDThumb/main.inc.php @ 30890

Last change on this file since 30890 was 30890, checked in by SergeD, 9 years ago

version 1.0.14 - please refer to changelog for more details

File size: 4.5 KB
Line 
1<?php
2/*
3Plugin Name: gdThumb
4Version: 1.0.14
5Description: Display thumbnails as patchwork
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=771
7Author: Serge Dosyukov
8Author URI: http://blog.dragonsoft.us
9*/
10// Original work by P@t - GTHumb+
11
12global $conf;
13
14if (!defined('PHPWG_ROOT_PATH')) die('Hacking attempt!');
15
16if (mobile_theme()) return;
17
18// +-----------------------------------------------------------------------+
19// | Plugin constants                                               |
20// +-----------------------------------------------------------------------+
21define('GDTHUMB_VERSION', '1.0.14');
22define('GDTHUMB_ID',      basename(dirname(__FILE__)));
23define('GDTHEME_PATH' ,   PHPWG_THEMES_PATH . 'greydragon/');
24define('GDTHUMB_PATH' ,   PHPWG_PLUGINS_PATH . GDTHUMB_ID . '/');
25
26if (!isset($conf['gdThumb'])):
27  include(dirname(__FILE__).'/config_default.inc.php');
28
29  $query = '
30INSERT INTO ' . CONFIG_TABLE . ' (param,value,comment)
31VALUES ("gdThumb" , "'.addslashes(serialize($config_default)).'" , "GDThumb plugin parameters");';
32  pwg_query($query);
33  load_conf_from_db();
34endif;
35
36$conf['gdThumb'] = unserialize($conf['gdThumb']);
37
38// RV Thumbnails Scroller
39if (isset($_GET['rvts'])):
40  $conf['gdThumb']['big_thumb'] = false;
41  add_event_handler('loc_end_index_thumbnails', 'GDThumb_process_thumb', 50, 2);
42endif;
43
44add_event_handler('init', 'GDThumb_init');
45add_event_handler('loc_begin_index', 'GDThumb_index', 60);
46add_event_handler('loc_end_index_category_thumbnails', 'GDThumb_process_category', 50, 2);
47add_event_handler('get_admin_plugin_menu_links', 'GDThumb_admin_menu');
48add_event_handler('loc_end_index', 'GDThumb_remove_thumb_size');
49
50function GDThumb_init() {
51  global $conf, $user, $page, $stripped;
52
53  $confTemp = $conf['gdThumb'];
54  $user['nb_image_page']    = $confTemp['nb_image_page'];
55  $page['nb_image_page']    = $confTemp['nb_image_page'];
56  $stripped['maxThumb']     = $confTemp['nb_image_page'];
57}
58
59function GDThumb_index() {
60  global $template;
61 
62  $template->set_prefilter('index', 'GDThumb_prefilter');
63
64  add_event_handler('loc_end_index_thumbnails', 'GDThumb_process_thumb', 50, 2);
65}
66
67function GDThumb_process_thumb($tpl_vars, $pictures) {
68  global $template, $conf;
69  $confTemp = $conf['gdThumb'];
70  $confTemp['GDTHUMB_ROOT'] = 'plugins/' . GDTHUMB_ID;
71  $confTemp['big_thumb_noinpw'] = (isset($confTemp['big_thumb_noinpw']) && ($confTemp['big_thumb_noinpw']))? 1 : 0;
72  if ($confTemp['normalize_title'] == "1"):
73    $confTemp['normalize_title'] = "on";
74  endif;   
75
76  $template->set_filename( 'index_thumbnails', dirname(__FILE__) . '/template/gdthumb_thumb.tpl');
77  $template->assign('GDThumb', $confTemp);
78  $template->assign('GDThumb_derivative_params', ImageStdParams::get_custom(9999, $confTemp['height']));
79
80  if ($confTemp['big_thumb'] and !empty($tpl_vars[0])):
81    $derivative_params = ImageStdParams::get_custom(9999, 2 * $confTemp['height'] + $confTemp['margin']);
82    $template->assign('GDThumb_big', new DerivativeImage($derivative_params, $tpl_vars[0]['src_image']));
83  endif;
84
85  return $tpl_vars;
86}
87
88function GDThumb_process_category($tpl_vars) {
89
90  global $template, $conf;
91  $confTemp = $conf['gdThumb'];
92  $confTemp['GDTHUMB_ROOT'] = 'plugins/' . GDTHUMB_ID;
93  $confTemp['big_thumb_noinpw'] = isset($confTemp['big_thumb_noinpw'])? 1 : 0;
94
95  $template->set_filename( 'index_category_thumbnails', dirname(__FILE__) . '/template/gdthumb_cat.tpl');
96  $template->assign('GDThumb', $confTemp);
97  $template->assign('GDThumb_derivative_params', ImageStdParams::get_custom(9999, $confTemp['height']));
98
99  if ($confTemp['big_thumb'] and !empty($tpl_vars[0])):
100    $id = $tpl_vars[0]["representative_picture_id"];
101    if (($id) && ($rep = $tpl_vars[0]["representative"])):
102      $derivative_params = ImageStdParams::get_custom(9999, 2 * $confTemp['height'] + $confTemp['margin']);
103      $template->assign('GDThumb_big', new DerivativeImage($derivative_params, $rep['src_image']));
104    endif;
105  endif;
106
107  return $tpl_vars;
108}
109
110function GDThumb_prefilter($content, $smarty) {
111  $pattern = '#\<div.*?id\="thumbnails".*?\>\{\$THUMBNAILS\}\</div\>#';
112  $replacement = '<ul id="thumbnails">{$THUMBNAILS}</ul>';
113
114  return preg_replace($pattern, $replacement, $content);
115}
116
117function GDThumb_admin_menu($menu) {
118  array_push($menu,
119    array(
120      'NAME' => 'gdThumb',
121      'URL' => get_root_url() . 'admin.php?page=plugin-' . basename(dirname(__FILE__)),
122    )
123  );
124  return $menu;
125}
126
127function GDThumb_remove_thumb_size() {
128  global $template;
129  $template->clear_assign('image_derivatives');
130}
131
132?>
Note: See TracBrowser for help on using the repository browser.