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

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

improve upgrade process (for manual upgrades and piwigo.com upgrades)
improve delete button visibility

File size: 3.0 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  // search banner for a specific category
12  if (isset($page['category']))
13  {
14    // we use the banner configured for this category
15    // if no banner is configured we use the banner of the first parent category with a "deep" banner
16    // if nothing found we use the default banner
17    $query = '
18SELECT *
19  FROM '.HEADER_MANAGER_TABLE.'
20  WHERE
21    category_id IN ('.$page['category']['uppercats'].')
22    AND (category_id = '.$page['category']['id'].' OR deep = 1)
23;';
24    $cat_banners = hash_from_query($query, 'category_id');
25   
26    if (count($cat_banners))
27    {
28      usort($cat_banners, 'hm_uppercats_sort');
29     
30      foreach ($cat_banners as $cat_banner)
31      {
32        $cat_banner = get_banner($cat_banner['image']);
33        if ($cat_banner !== false)
34        {
35          $banner = $cat_banner;
36          break;
37        }
38      }
39    }
40  }
41 
42  // use default banner
43  if (!isset($banner))
44  {
45    if ($conf['header_manager']['image'] == 'random')
46    {
47      $banners = list_banners();
48      if (!count($banners)) return $page_banner;
49      $banner = $banners[ mt_rand(0, count($banners)-1) ];
50    }
51    else
52    {
53      $banner = get_banner($conf['header_manager']['image']);
54      if ($banner === false) return $page_banner;
55    }
56  }
57 
58  // for MontBlancXL and BlancMontXL the banner is displayed as background of the header
59  if ( in_array($user['theme'], array('blancmontxl','montblancxl')) )
60  {
61    $template->append('head_elements',
62'<style type="text/css">
63#theHeader { background: transparent url('.$banner['PATH'].') center bottom no-repeat; }
64</style>'
65      );
66
67    if ($conf['header_manager']['display'] == 'image_only')
68    {
69      $page_banner = null;
70    }
71    else
72    {
73      $page_banner = str_replace('%header_manager%', null, $page_banner);
74    }
75  }
76  // no support for Kardon (not enough space)
77  else if ($user['theme'] != 'kardon')
78  {
79    $template->append('head_elements',
80'<style type="text/css">
81#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; }
82</style>'
83      );
84   
85    $banner_img = '<div class="banner">'.($conf['header_manager']['display']=='with_title' ? $conf['gallery_title'] : '&nbsp;').'</div>';
86   
87    if ($conf['header_manager']['display'] == 'with_text')
88    {
89      $page_banner = str_replace('%header_manager%', $banner_img, $page_banner);
90    }
91    else
92    {
93      $page_banner = '<a href="'.get_gallery_home_url().'">'.$banner_img.'</a>';
94    }
95  }
96
97  return $page_banner;
98}
99
100function hm_uppercats_sort($a, $b)
101{
102  global $page;
103  $ids = explode(',', $page['category']['uppercats']);
104  return array_search($a['category_id'], $ids) < array_search($b['category_id'], $ids);
105}
106
107?>
Note: See TracBrowser for help on using the repository browser.