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

Last change on this file since 26298 was 26298, checked in by mistic100, 10 years ago

update for 2.6 + better calculation + option to force ratio
TODO: issue with PNG (unable to generate thumbnail with IM)

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