source: extensions/header_manager/include/header_manager.inc.php @ 17179

Last change on this file since 17179 was 17012, checked in by mistic100, 12 years ago

-clean up table when a banner or a category is deleted
-force centered text on banner

File size: 3.6 KB
Line 
1<?php
2if (!defined('HEADER_MANAGER_PATH')) die('Hacking attempt!');
3
4/**
5 * add personal banner to page banner
6 */
7function header_manager_render($page_banner)
8{
9  global $conf, $user, $template, $page;
10 
11  if (defined('IN_ADMIN')) return $page_banner;
12 
13  // search banner for a specific category
14  if (isset($page['category']))
15  {
16    // we use the banner configured for this category
17    // if no banner is configured we use the banner of the first parent category with a "deep" banner
18    // if nothing found we use the default banner
19    $query = '
20SELECT *
21  FROM '.HEADER_MANAGER_TABLE.'
22  WHERE
23    category_id IN ('.$page['category']['uppercats'].')
24    AND (category_id = '.$page['category']['id'].' OR deep = 1)
25;';
26    $cat_banners = hash_from_query($query, 'category_id');
27   
28    if (count($cat_banners))
29    {
30      function uppercats_sort($a, $b)
31      {
32        global $page;
33        $ids = explode(',', $page['category']['uppercats']);
34        return array_search($a['category_id'], $ids) < array_search($b['category_id'], $ids);
35      }
36      usort($cat_banners, 'uppercats_sort');
37     
38      foreach ($cat_banners as $cat_banner)
39      {
40        $cat_banner = get_banner($cat_banner['image']);
41        if ($cat_banner !== false)
42        {
43          $banner = $cat_banner;
44          break;
45        }
46      }
47    }
48  }
49 
50  // use default banner
51  if (!isset($banner))
52  {
53    if ($conf['header_manager']['image'] == 'random')
54    {
55      $banners = list_banners();
56      if (!count($banners)) return $page_banner;
57      $banner = $banners[ mt_rand(0, count($banners)-1) ];
58    }
59    else
60    {
61      $banner = get_banner($conf['header_manager']['image']);
62      if ($banner === false) return $page_banner;
63    }
64  }
65 
66  // for MontBlancXL and BlancMontXL the banner is displayed as background of the header
67  if ( in_array($user['theme'], array('blancmontxl','montblancxl')) )
68  {
69    $template->append('head_elements',
70'<style type="text/css">
71#theHeader { background: transparent url('.$banner['PATH'].') center bottom no-repeat; }
72</style>'
73      );
74
75    if ($conf['header_manager']['display'] == 'image_only')
76    {
77      $page_banner = null;
78    }
79    else
80    {
81      $page_banner = str_replace('%header_manager%', null, $page_banner);
82    }
83  }
84  // no support for Kardon (not enough space)
85  else if ($user['theme'] != 'kardon')
86  {
87    $template->append('head_elements',
88'<style type="text/css">
89#theHeader div.banner { background:transparent url(\''.$banner['PATH'].'\') center center no-repeat;height:'.$banner['SIZE'][1].'px;line-height:'.($banner['SIZE'][1]-12).'px;font-size:2.5em;color:#fff;text-shadow:0 0 5px #000;text-align:center; }
90</style>'
91      );
92   
93    $banner_img = '<div class="banner">'.($conf['header_manager']['display']=='with_title' ? $conf['gallery_title'] : '&nbsp;').'</div>';
94   
95    if ($conf['header_manager']['display'] == 'with_text')
96    {
97      $page_banner = str_replace('%header_manager%', $banner_img, $page_banner);
98    }
99    else
100    {
101      $page_banner = '<a href="'.get_gallery_home_url().'">'.$banner_img.'</a>';
102    }
103  }
104
105  return $page_banner;
106}
107
108/**
109 * Header Manager admin link
110 */
111function header_manager_admin_menu($menu) 
112{
113  array_push($menu, array(
114    'NAME' => 'Header Manager',
115    'URL' => HEADER_MANAGER_ADMIN,
116  ));
117  return $menu;
118}
119
120/**
121 * tab on album edition page
122 */
123function header_manager_tab($sheets, $id)
124{
125  if ($id == 'album')
126  {
127    load_language('plugin.lang', HEADER_MANAGER_PATH);
128   
129    $sheets['headermanager'] = array(
130      'caption' => l10n('Banner'),
131      'url' => HEADER_MANAGER_ADMIN.'-album&amp;cat_id='.$_GET['cat_id'],
132      );
133  }
134 
135  return $sheets;
136}
137
138?>
Note: See TracBrowser for help on using the repository browser.