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

Last change on this file since 512 was 512, checked in by z0rglub, 20 years ago
  • in admin/configuration, add new step with "sections" (general, comments, default, upload, metadata, sessions)
  • admin/configuration.php and its template have been higly simplificated by making things more generic : for example, for each configuration parameter, its name must correspond to the name we find in the config table and belongs to a section, in the lang array we find :
  • more described message when connection to database server is impossible
  • redefinitions of get_languages and get_templates functions
  • deletion of configuration parameters : webmaster, session_keyword
  • rename of configuration parameters :
  • default_lang => default_language
  • default_style => default_template
  • 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-03 15:01:05 +0000 (Fri, 03 Sep 2004) $
10// | last modifier : $Author: z0rglub $
11// | revision      : $Revision: 512 $
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 style="font-weight:bold;">'.$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.