source: trunk/include/functions_html.inc.php @ 514

Last change on this file since 514 was 514, checked in by z0rglub, 20 years ago
  • bug correction : when coming from picture.php on a picture of category.php page superior to the first, the right page was displayed (the one including the element) but the navigation bar was always saying we were on the first page
  • distinguish CSS classes span.dateSelected and span.pageNumberSelected
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.7 KB
Line 
1<?php
2// +-----------------------------------------------------------------------+
3// |                         functions_html.inc.php                        |
4// +-----------------------------------------------------------------------+
5// | application   : PhpWebGallery <http://phpwebgallery.net>              |
6// | branch        : BSF (Best So Far)                                     |
7// +-----------------------------------------------------------------------+
8// | file          : $RCSfile$
9// | last update   : $Date: 2004-09-04 08:07:33 +0000 (Sat, 04 Sep 2004) $
10// | last modifier : $Author: z0rglub $
11// | revision      : $Revision: 514 $
12// +-----------------------------------------------------------------------+
13// | This program is free software; you can redistribute it and/or modify  |
14// | it under the terms of the GNU General Public License as published by  |
15// | the Free Software Foundation                                          |
16// |                                                                       |
17// | This program is distributed in the hope that it will be useful, but   |
18// | WITHOUT ANY WARRANTY; without even the implied warranty of            |
19// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU      |
20// | General Public License for more details.                              |
21// |                                                                       |
22// | You should have received a copy of the GNU General Public License     |
23// | along with this program; if not, write to the Free Software           |
24// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
25// | USA.                                                                  |
26// +-----------------------------------------------------------------------+
27
28function get_icon( $date )
29{
30  global $user, $conf, $lang;
31
32  if (!preg_match('/\d{4}-\d{2}-\d{2}/', $date))
33  {
34    return '';
35  }
36
37  list( $year,$month,$day ) = explode( '-', $date );
38  $unixtime = mktime( 0, 0, 0, $month, $day, $year );
39 
40  $diff = time() - $unixtime;
41  $day_in_seconds = 24*60*60;
42  $output = '';
43  $title = $lang['recent_image'].'&nbsp;';
44  if ( $diff < $user['recent_period'] * $day_in_seconds )
45  {
46    $icon_url = './template/'.$user['template'].'/theme/';
47    $icon_url.= 'recent.gif';
48    $title .= $user['recent_period'];
49    $title .=  '&nbsp;'.$lang['days'];
50    $size = getimagesize( $icon_url );
51    $output = '<img title="'.$title.'" src="'.$icon_url.'" style="border:0;';
52    $output.= 'height:'.$size[1].'px;width:'.$size[0].'px" alt="" />';
53  }
54  return $output;
55}
56
57function create_navigation_bar( $url, $nb_element, $start,
58                                $nb_element_page, $link_class )
59{
60  global $lang;
61  $navigation_bar = "";
62  // 0. détection de la page en cours
63  if( !isset( $start )
64      || !is_numeric( $start )
65      || ( is_numeric( $start ) && $start < 0 ) )
66  {
67    $start = 0;
68  }
69  // on n'affiche la bare de navigation que si on plus de 1 page
70  if ( $nb_element > $nb_element_page )
71  {
72    // 1.une page précédente ?
73    if ( $start != 0 )
74    {
75      $previous = $start - $nb_element_page;
76      $navigation_bar.= '<a href="';
77      $navigation_bar.= add_session_id( $url.'&amp;start='.$previous );
78      $navigation_bar.= '" class="'.$link_class.'">'.$lang['previous_page'];
79      $navigation_bar.= '</a>';
80      $navigation_bar.= ' | ';
81    }
82    // 2.liste des numéros de page
83    $maximum = ceil ( $nb_element / $nb_element_page );
84    for ( $i = 1; $i <= $maximum; $i++ )
85    {
86      $temp_start = ( $i - 1 ) * $nb_element_page;
87      if ( $temp_start == $start )
88      {
89        $navigation_bar.= ' <span class="pageNumberSelected">'.$i.'</span> ';
90      }
91      else
92      {
93        $navigation_bar.= ' <a href="';
94        $navigation_bar.= add_session_id( $url.'&amp;start='.$temp_start );
95        $navigation_bar.= '" class="'.$link_class.'">'.$i.'</a> ';
96      }
97    }
98    // 3.une page suivante ?
99    if ( $nb_element > $nb_element_page
100         && $start + $nb_element_page < $nb_element )
101    {
102      $next = $start + $nb_element_page;
103      $navigation_bar.= ' | <a href="';
104      $navigation_bar.= add_session_id( $url.'&amp;start='.$next );
105      $navigation_bar.= '" class="'.$link_class.'">'.$lang['next_page'].'</a>';
106    }
107  }
108  return $navigation_bar;
109}
110
111//
112// Pick a language, any language ...
113//
114function language_select($default, $select_name = "language")
115{
116  $available_lang = get_languages();
117
118  $lang_select = '<select name="' . $select_name . '" onchange="this.form.submit()">';
119  foreach ($available_lang as $displayname => $code)
120  {
121    $selected = ( strtolower($default) == strtolower($code) ) ? ' selected="selected"' : '';
122    $lang_select .= '<option value="' . $code . '"' . $selected . '>' . ucwords($displayname) . '</option>';
123  }
124  $lang_select .= '</select>';
125
126  return $lang_select;
127}
128
129//
130// Pick a template/theme combo,
131//
132function style_select($default_style, $select_name = "style")
133{
134  $templates = get_templates();
135
136  foreach ($templates as $template)
137  {
138    $selected = ( $template == $default_style ) ? ' selected="selected"' : '';
139    $style_select.= '<option value="'.$template.'"'.$selected.'>';
140    $style_select.= $template.'</option>';
141  }
142  return $style_select;
143}
144
145// The function get_cat_display_name returns a string containing the list
146// of upper categories to the root category from the lowest category shown
147// example : "anniversaires - fete mere 2002 - animaux - erika"
148// You can give this parameters :
149//   - $style : the style of the span tag for the lowest category,
150//     "font-style:italic;" for example
151function get_cat_display_name( $cat_informations, $separator, 
152  $url = 'category.php?cat=', $replace_space = true)
153{
154  $output = '';
155  $i=0;
156  while ( list ($id, $name) = each($cat_informations)) 
157  {
158    if ( $i )  $output.= $separator;
159        $i++;
160        if (empty($style) && empty($url) || ($i == count( $cat_informations))) 
161          $output.= $name;
162    elseif (!empty($url))
163      $output.= '<a class="" href="'.add_session_id(PHPWG_ROOT_PATH.$url.$id).'">'.$name."</a>";
164        else
165      $output.= '<span style="'.$style.'">'.$name.'</span>';
166  }
167  if ( $replace_space ) return replace_space( $output );
168  else                  return $output;
169}
170
171/**
172 * returns the HTML code for a category item in the menu (for category.php)
173 *
174 * HTML code generated uses logical list tags ul and each category is an
175 * item li. The paramter given is the category informations as an array,
176 * used keys are : id, name, dir, nb_images, date_last, subcats (sub-array)
177 *
178 * @param array category
179 * @return string
180 */
181function get_html_menu_category($category)
182{
183  global $page, $lang;
184
185  $menu = '
186
187           <li>';
188 
189  $url = add_session_id(PHPWG_ROOT_PATH.'category.php?cat='.$category['id']);
190
191  $class = '';
192  if (isset($page['cat'])
193      and is_numeric($page['cat'])
194      and $category['id'] == $page['cat'])
195  {
196    $class = 'menuCategorySelected';
197  }
198  else
199  {
200    $class = 'menuCategoryNotSelected';
201  }
202 
203  $name = $category['name'];
204  if (empty($name))
205  {
206    $name = str_replace('_', ' ', $category['dir']);
207  }
208
209  $menu.= '
210           <a href="'.$url.'"
211              title="'.$lang['hint_category'].'"
212              class="'.$class.'">
213             '.$name.'
214           </a>';
215
216  if ($category['nb_images'] > 0)
217  {
218    $menu.= '
219             <span class="menuInfoCat"
220                   title="'.$category['nb_images'].'
221                          '.$lang['images_available'].'">
222             ['.$category['nb_images'].']
223             </span>
224             '.get_icon($category['date_last']);
225  }
226 
227  // recursive call
228  if ($category['expanded'] and count($category['subcats']) > 0)
229  {
230    $menu.= '
231             <ul class="menu">';
232    foreach ($category['subcats'] as $subcat)
233    {
234      $menu.= get_html_menu_category($subcat);
235    }
236    $menu.= '
237             </ul>';
238  }
239
240  $menu.= '</li>';
241
242  return $menu;
243}
244?>
Note: See TracBrowser for help on using the repository browser.