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

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

don't try to parse banner on admin pages, crashes on some sections

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; }
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.