source: extensions/pwgCumulus/include/pwgCumulusContent.class.php @ 26115

Last change on this file since 26115 was 26115, checked in by nikrou, 7 years ago

Fix compatibility with piwigo 2.6 (smarty, i18n plural)

File size: 5.7 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// | pwgCumulus  - a plugin for Piwigo                                     |
4// +-----------------------------------------------------------------------+
5// | Copyright(C) 2009-2013 Nicolas Roudaire        http://www.nikrou.net  |
6// +-----------------------------------------------------------------------+
7// | This program is free software; you can redistribute it and/or modify  |
8// | it under the terms of the GNU General Public License version 2 as     |
9// | published by  the Free Software Foundation                            |
10// |                                                                       |
11// | This program is distributed in the hope that it will be useful, but   |
12// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
13// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
14// | General Public License for more details.                              |
15// |                                                                       |
16// | You should have received a copy of the GNU General Public License     |
17// | along with this program; if not, write to the Free Software           |
18// | Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,            |
19// | MA 02110-1301 USA                                                     |
20// +-----------------------------------------------------------------------+
21
22class pwgCumulusContent
23{
24    public function __construct($config) {
25        $this->plugin_config = $config;
26    }
27
28    public function loc_begin_page_header() {
29        global $template;
30
31        if (!empty($_GET['display_mode']) && $_GET['display_mode']=='cumulus') {
32            $template->assign('display_mode', 'cumulus');
33        }
34
35        $template->set_filenames(array('tags'=> PWG_CUMULUS_PLUGIN_TEMPLATE . '/tags.tpl'));
36       
37        $template->assign('PWG_CUMULUS_SWF', PWG_CUMULUS_PLUGIN_SWF);
38        $template->assign('PWG_CUMULUS_IMGS', PWG_CUMULUS_PLUGIN_IMGS);
39
40        $template->assign('PWG_CUMULUS_WIDTH', $this->plugin_config->pwg_cumulus_width);
41        $template->assign('PWG_CUMULUS_HEIGHT', $this->plugin_config->pwg_cumulus_height);
42        $template->assign('PWG_CUMULUS_HREF', get_root_url().'tags.php?display_mode=cumulus');
43
44        $template->assign('PWG_CUMULUS_MODE_TRANSPARENT', $this->plugin_config->pwg_cumulus_mode_transparent);
45        $template->assign('PWG_CUMULUS_BGCOLOR', $this->plugin_config->pwg_cumulus_bgcolor);
46        $template->assign('PWG_CUMULUS_COLOR1', '0x'.$this->plugin_config->pwg_cumulus_color1);
47        $template->assign('PWG_CUMULUS_COLOR2', '0x'.$this->plugin_config->pwg_cumulus_color2);
48        $template->assign('PWG_CUMULUS_HICOLOR', '0x'.$this->plugin_config->pwg_cumulus_hicolor);
49
50        if (!empty($template->smarty->tpl_vars['tags'])) {
51            foreach ($template->smarty->tpl_vars['tags']->value as $key => &$tag) {
52                $tag['display_name'] = urlencode($tag['name']);
53                $tag['size'] = $this->plugin_config->pwg_cumulus_coeff * $tag['level'];
54            }
55        }
56    }
57
58    public function blockmanager_register_blocks($menu_ref_arr) {
59        if (!$this->plugin_config->pwg_cumulus_in_main_menu) {
60            return;
61        }
62        $menu = &$menu_ref_arr[0];
63        if ($menu->get_id() != 'menubar') {
64            return;
65        }
66        $menu->register_block(new RegisteredBlock('mbCumulus', 'Cumulus', 'piwigo'));
67    }
68
69
70    public function blockmanager_apply($menu_ref_arr) {
71        global $template;
72
73        if (!$this->plugin_config->pwg_cumulus_in_main_menu) {
74            return;
75        }
76
77        load_language('plugin.lang', PWG_CUMULUS_PLUGIN_LANG);
78
79        $menu = &$menu_ref_arr[0];
80        if ($menu->get_id() != 'menubar') {
81            return;
82        }
83
84        include_once(PHPWG_ROOT_PATH.'include/block.class.php');
85
86        if (($mbCumulus = $menu->get_block('mbTags'))!==null) {
87            if (empty($mbCumulus->data)) {
88                return;
89            }
90            if ($this->plugin_config->position_order!=null 
91            && $this->plugin_config->position_block_id!=null) {
92                $related_block = $menu->get_block($this->plugin_config->position_block_id);
93                if ($this->plugin_config->position_order=='after') {
94                    $mbCumulus->set_position($related_block->get_position()+1);
95                } else {
96                    $mbCumulus->set_position($related_block->get_position()-1);
97                }
98            }
99
100            $template->assign('PWG_CUMULUS_SWF', PWG_CUMULUS_PLUGIN_SWF);
101            $template->assign('PWG_CUMULUS_IMGS', PWG_CUMULUS_PLUGIN_IMGS);
102     
103            $template->assign('PWG_CUMULUS_WIDTH', $this->plugin_config->pwg_cumulus_width);
104            $template->assign('PWG_CUMULUS_HEIGHT', $this->plugin_config->pwg_cumulus_height);
105            $template->assign('PWG_CUMULUS_MODE_TRANSPARENT', $this->plugin_config->pwg_cumulus_mode_transparent);
106            $template->assign('PWG_CUMULUS_BGCOLOR', $this->plugin_config->pwg_cumulus_bgcolor);
107            $template->assign('PWG_CUMULUS_COLOR1', '0x'.$this->plugin_config->pwg_cumulus_color1);
108            $template->assign('PWG_CUMULUS_COLOR2', '0x'.$this->plugin_config->pwg_cumulus_color2);
109            $template->assign('PWG_CUMULUS_HICOLOR', '0x'.$this->plugin_config->pwg_cumulus_hicolor);
110            foreach ($mbCumulus->data as &$tag) {
111                $tag['size'] = $this->plugin_config->pwg_cumulus_coeff * $tag['level'];
112                if (!empty($tag['U_ADD'])) {
113                    $tag['URL'] = $tag['U_ADD'];
114                }
115            }
116            $template->assign('PWG_CUMULUS_TAGS', $mbCumulus->data);
117            $mbCumulus->template = PWG_CUMULUS_PLUGIN_TEMPLATE . '/menubar_tags.tpl';
118        }
119    }
120}
Note: See TracBrowser for help on using the repository browser.