source: extensions/download_by_size/main.inc.php @ 23325

Last change on this file since 23325 was 23325, checked in by plg, 11 years ago

in case the file has a representative, we fallback to standard behavior, ie
download the original only.

File size: 1.8 KB
RevLine 
[23157]1<?php
2/*
3Plugin Name: Download by Size
4Version: auto
5Description: Select a photo size before download
6Plugin URI: http://piwigo.org/ext/extension_view.php?eid=
7Author: plg
8Author URI: http://le-gall.net/pierrick
9*/
10
11if (!defined('PHPWG_ROOT_PATH'))
12{
13  die('Hacking attempt!');
14}
15
16define('DLSIZE_PATH' , PHPWG_PLUGINS_PATH.basename(dirname(__FILE__)).'/');
17
18add_event_handler('loc_end_picture', 'dlsize_picture');
19function dlsize_picture()
20{
21  global $conf, $template, $picture;
[23325]22
23  // in case of file with a pwg_representative, we simply fallback to the
24  // standard button (which downloads the original file)
25  if (!$picture['current']['src_image']->is_original())
26  {
27    return;
28  }
[23157]29 
30  $template->set_prefilter('picture', 'dlsize_picture_prefilter');
31
32  $params = array(
33    'id' => $picture['current']['id'],
34    'part' => 'e',
35    'download' => null,
36    );
37  $base_dl_url = add_url_params(get_root_url().PHPWG_PLUGINS_PATH.'download_by_size/action.php', $params);
38 
39  $template->assign(
40    array(
41      'DLSIZE_URL' => $base_dl_url.'&amp;size=',
42      )
43    );
44
45  if ($conf['picture_download_icon'])
46  {
47    // even if original can't be downloaded, we set U_DOWNLOAD so that
48    // visitor can download smaller sizes
49    $template->append('current', array('U_DOWNLOAD' => '#'), true);
50   
51    if (!empty($picture['current']['download_url']))
52    {
53      $template->assign('DLSIZE_ORIGINAL', $picture['current']['download_url']);
54    }
55  }
56
57  $template->set_filename('dlsize_picture', realpath(DLSIZE_PATH.'picture.tpl'));
58  $template->parse('dlsize_picture');
59}
60
61function dlsize_picture_prefilter($content, &$smarty)
62{
63  $pattern = '#\{if isset\(\$current\.U_DOWNLOAD\)\}\s*<a #';
64  $replacement = '{if isset($current.U_DOWNLOAD)}<a id="downloadSizeLink" ';
65  $content = preg_replace($pattern, $replacement, $content);
66
67  return $content;
68}
69
70?>
Note: See TracBrowser for help on using the repository browser.