aboutsummaryrefslogtreecommitdiffstats
path: root/BSF/include/functions_html.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'BSF/include/functions_html.inc.php')
-rw-r--r--BSF/include/functions_html.inc.php751
1 files changed, 0 insertions, 751 deletions
diff --git a/BSF/include/functions_html.inc.php b/BSF/include/functions_html.inc.php
deleted file mode 100644
index b51f6f9df..000000000
--- a/BSF/include/functions_html.inc.php
+++ /dev/null
@@ -1,751 +0,0 @@
-<?php
-// +-----------------------------------------------------------------------+
-// | Piwigo - a PHP based picture gallery |
-// +-----------------------------------------------------------------------+
-// | Copyright(C) 2008 Piwigo Team http://piwigo.org |
-// | Copyright(C) 2003-2008 PhpWebGallery Team http://phpwebgallery.net |
-// | Copyright(C) 2002-2003 Pierrick LE GALL http://le-gall.net/pierrick |
-// +-----------------------------------------------------------------------+
-// | This program is free software; you can redistribute it and/or modify |
-// | it under the terms of the GNU General Public License as published by |
-// | the Free Software Foundation |
-// | |
-// | This program is distributed in the hope that it will be useful, but |
-// | WITHOUT ANY WARRANTY; without even the implied warranty of |
-// | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
-// | General Public License for more details. |
-// | |
-// | You should have received a copy of the GNU General Public License |
-// | along with this program; if not, write to the Free Software |
-// | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, |
-// | USA. |
-// +-----------------------------------------------------------------------+
-
-function get_icon($date, $is_child_date = false)
-{
- global $page, $user;
-
- if (empty($date))
- {
- return '';
- }
-
- if (isset($page['get_icon_cache'][$date]))
- {
- if (! $page['get_icon_cache'][$date] )
- return '';
- return $page['get_icon_cache']['_icons_'][$is_child_date];
- }
-
- if (!isset($page['get_icon_cache']['sql_recent_date']))
- {
- // Use MySql date in order to standardize all recent "actions/queries"
- list($page['get_icon_cache']['sql_recent_date']) =
- mysql_fetch_array(pwg_query('select SUBDATE(
- CURRENT_DATE,INTERVAL '.$user['recent_period'].' DAY)'));
- }
-
- $page['get_icon_cache'][$date] = false;
- if ( $date > $page['get_icon_cache']['sql_recent_date'] )
- {
- if ( !isset($page['get_icon_cache']['_icons_'] ) )
- {
- $icons = array(false => 'recent', true => 'recent_by_child' );
- $title = sprintf(
- l10n('elements posted during the last %d days'),
- $user['recent_period']
- );
- foreach ($icons as $key => $icon)
- {
- $icon_url = get_themeconf('icon_dir').'/'.$icon.'.png';
- $size = getimagesize( PHPWG_ROOT_PATH.$icon_url );
- $icon_url = get_root_url().$icon_url;
- $output = '<img title="'.$title.'" src="'.$icon_url.'" class="icon" style="border:0;';
- $output.= 'height:'.$size[1].'px;width:'.$size[0].'px" alt="(!)" />';
- $page['get_icon_cache']['_icons_'][$key] = $output;
- }
- }
- $page['get_icon_cache'][$date] = true;
- }
-
- if (! $page['get_icon_cache'][$date] )
- return '';
- return $page['get_icon_cache']['_icons_'][$is_child_date];
-}
-
-function create_navigation_bar(
- $url, $nb_element, $start, $nb_element_page, $clean_url = false
- )
-{
- global $conf;
-
- $pages_around = $conf['paginate_pages_around'];
- $start_str = $clean_url ? '/start-' :
- ( ( strstr($url, '?')===false ? '?':'&amp;') . 'start=' );
-
- $navbar = '';
-
- // current page detection
- if (!isset($start)
- or !is_numeric($start)
- or (is_numeric($start) and $start < 0))
- {
- $start = 0;
- }
-
- // navigation bar useful only if more than one page to display !
- if ($nb_element > $nb_element_page)
- {
- // current page and last page
- $cur_page = ceil($start / $nb_element_page) + 1;
- $maximum = ceil($nb_element / $nb_element_page);
-
- // link to first page ?
- if ($cur_page != 1)
- {
- $navbar.=
- '<a href="'.$url.'" rel="first">'
- .l10n('first_page')
- .'</a>';
- }
- else
- {
- $navbar.= l10n('first_page');
- }
- $navbar.= ' | ';
- // link on previous page ?
- if ($start != 0)
- {
- $previous = $start - $nb_element_page;
-
- $navbar.=
- '<a href="'
- .$url.($previous > 0 ? $start_str.$previous : '')
- .'" rel="prev">'
- .l10n('previous_page')
- .'</a>';
- }
- else
- {
- $navbar.= l10n('previous_page');
- }
- $navbar.= ' |';
-
- if ($cur_page > $pages_around + 1)
- {
- $navbar.= '&nbsp;<a href="'.$url.'">1</a>';
-
- if ($cur_page > $pages_around + 2)
- {
- $navbar.= ' ...';
- }
- }
-
- // inspired from punbb source code
- for ($i = $cur_page - $pages_around, $stop = $cur_page + $pages_around + 1;
- $i < $stop;
- $i++)
- {
- if ($i < 1 or $i > $maximum)
- {
- continue;
- }
- else if ($i != $cur_page)
- {
- $temp_start = ($i - 1) * $nb_element_page;
-
- $navbar.=
- '&nbsp;'
- .'<a href="'.$url
- .($temp_start > 0 ? $start_str.$temp_start : '')
- .'">'
- .$i
- .'</a>';
- }
- else
- {
- $navbar.=
- '&nbsp;'
- .'<span class="pageNumberSelected">'
- .$i
- .'</span>';
- }
- }
-
- if ($cur_page < ($maximum - $pages_around))
- {
- $temp_start = ($maximum - 1) * $nb_element_page;
-
- if ($cur_page < ($maximum - $pages_around - 1))
- {
- $navbar.= ' ...';
- }
-
- $navbar.= ' <a href="'.$url.$start_str.$temp_start.'">'.$maximum.'</a>';
- }
-
- $navbar.= ' | ';
- // link on next page ?
- if ($nb_element > $nb_element_page
- and $start + $nb_element_page < $nb_element)
- {
- $next = $start + $nb_element_page;
-
- $navbar.=
- '<a href="'.$url.$start_str.$next.'" rel="next">'
- .l10n('next_page')
- .'</a>';
- }
- else
- {
- $navbar.= l10n('next_page');
- }
-
- $navbar.= ' | ';
- // link to last page ?
- if ($cur_page != $maximum)
- {
- $temp_start = ($maximum - 1) * $nb_element_page;
-
- $navbar.=
- '<a href="'.$url.$start_str.$temp_start.'" rel="last">'
- .l10n('last_page')
- .'</a>';
- }
- else
- {
- $navbar.= l10n('last_page');
- }
- }
- return $navbar;
-}
-
-/**
- * returns the list of categories as a HTML string
- *
- * categories string returned contains categories as given in the input
- * array $cat_informations. $cat_informations array must be an array
- * of array( id=>?, name=>?, permalink=>?). If url input parameter is null,
- * returns only the categories name without links.
- *
- * @param array cat_informations
- * @param string url
- * @param boolean replace_space
- * @return string
- */
-function get_cat_display_name($cat_informations,
- $url = '',
- $replace_space = true)
-{
- global $conf;
-
- $output = '';
- $is_first = true;
- foreach ($cat_informations as $cat)
- {
- is_array($cat) or trigger_error(
- 'get_cat_display_name wrong type for category ', E_USER_WARNING
- );
- if ($is_first)
- {
- $is_first = false;
- }
- else
- {
- $output.= $conf['level_separator'];
- }
-
- if ( !isset($url) )
- {
- $output.= $cat['name'];
- }
- elseif ($url == '')
- {
- $output.= '<a href="'
- .make_index_url(
- array(
- 'category' => $cat,
- )
- )
- .'">';
- $output.= $cat['name'].'</a>';
- }
- else
- {
- $output.= '<a href="'.PHPWG_ROOT_PATH.$url.$cat['id'].'">';
- $output.= $cat['name'].'</a>';
- }
- }
- if ($replace_space)
- {
- return replace_space($output);
- }
- else
- {
- return $output;
- }
-}
-
-/**
- * returns the list of categories as a HTML string, with cache of names
- *
- * categories string returned contains categories as given in the input
- * array $cat_informations. $uppercats is the list of category ids to
- * display in the right order. If url input parameter is empty, returns only
- * the categories name without links.
- *
- * @param string uppercats
- * @param string url
- * @param boolean replace_space
- * @return string
- */
-function get_cat_display_name_cache($uppercats,
- $url = '',
- $replace_space = true)
-{
- global $cache, $conf;
-
- if (!isset($cache['cat_names']))
- {
- $query = '
-SELECT id, name, permalink
- FROM '.CATEGORIES_TABLE.'
-;';
- $cache['cat_names'] = hash_from_query($query, 'id');
- }
-
- $output = '';
- $is_first = true;
- foreach (explode(',', $uppercats) as $category_id)
- {
- $cat = $cache['cat_names'][$category_id];
-
- if ($is_first)
- {
- $is_first = false;
- }
- else
- {
- $output.= $conf['level_separator'];
- }
-
- if ( !isset($url) )
- {
- $output.= $cat['name'];
- }
- elseif ($url == '')
- {
- $output.= '
-<a href="'
- .make_index_url(
- array(
- 'category' => $cat,
- )
- )
- .'">'.$cat['name'].'</a>';
- }
- else
- {
- $output.= '
-<a href="'.PHPWG_ROOT_PATH.$url.$category_id.'">'.$cat['name'].'</a>';
- }
- }
- if ($replace_space)
- {
- return replace_space($output);
- }
- else
- {
- return $output;
- }
-}
-
-/**
- * returns the HTML code for a category item in the menu (for the main page)
- *
- * HTML code generated uses logical list tags ul and each category is an
- * item li. The paramter given is the category informations as an array,
- * used keys are : id, name, nb_images, max_date_last, date_last
- * count_images, count_categories
- *
- * @param array categories
- * @return string
- */
-function get_html_menu_category($categories, $selected_category)
-{
- $ref_level = 0;
- $level = 0;
-
- $menu = trigger_event('get_html_menu_category', '',
- $categories, $selected_category);
- if (strlen($menu))
- {
- return $menu;
- }
-
- foreach ($categories as $category)
- {
- $level = substr_count($category['global_rank'], '.') + 1;
- if ($level > $ref_level)
- {
- $menu.= "\n<ul>";
- }
- else if ($level == $ref_level)
- {
- $menu.= "\n</li>";
- }
- else if ($level < $ref_level)
- {
- // we may have to close more than one level at the same time...
- $menu.= "\n</li>";
- $menu.= str_repeat("\n</ul></li>",($ref_level-$level));
- }
- $ref_level = $level;
-
- $menu.= "\n\n".'<li';
- if ($category['id'] == @$selected_category['id'])
- {
- $menu.= ' class="selected"';
- }
- $menu.= '>';
-
- $url = make_index_url(
- array(
- 'category' => $category
- )
- );
-
- $title = get_display_images_count
- (
- $category['nb_images'],
- $category['count_images'],
- $category['count_categories'],
- false,
- ' / '
- );
-
- $menu.= '<a href="'.$url.'"';
- if ($selected_category!=null
- and $category['id'] == $selected_category['id_uppercat'])
- {
- $menu.= ' rel="up"';
- }
- $menu.= ' title="'.$title.'">'.$category['name'].'</a>';
-
- if ( $category['count_images']>0 )
- {// at least one direct or indirect image
- $menu.= "\n".'<span class="';
- // at least one image in this category -> class menuInfoCat
- $menu.= ($category['nb_images'] > 0 ? "menuInfoCat"
- : "menuInfoCatByChild").'"';
- $menu.= ' title=" '.$title.'">';
- // show total number of images
- $menu.= '['.$category['count_images'].']';
- $menu.= '</span>';
- }
- $child_date_last = @$category['max_date_last']> @$category['date_last'];
- $menu.= get_icon($category['max_date_last'], $child_date_last);
- }
-
- $menu.= str_repeat("\n</li></ul>",($level));
-
- return $menu;
-}
-
-/**
- * returns HTMLized comment contents retrieved from database
- *
- * newlines becomes br tags, _word_ becomes underline, /word/ becomes
- * italic, *word* becomes bolded
- *
- * @param string content
- * @return string
- */
-function parse_comment_content($content)
-{
- $pattern = '/(https?:\/\/\S*)/';
- $replacement = '<a href="$1" rel="nofollow">$1</a>';
- $content = preg_replace($pattern, $replacement, $content);
-
- $content = nl2br($content);
-
- // replace _word_ by an underlined word
- $pattern = '/\b_(\S*)_\b/';
- $replacement = '<span style="text-decoration:underline;">$1</span>';
- $content = preg_replace($pattern, $replacement, $content);
-
- // replace *word* by a bolded word
- $pattern = '/\b\*(\S*)\*\b/';
- $replacement = '<span style="font-weight:bold;">$1</span>';
- $content = preg_replace($pattern, $replacement, $content);
-
- // replace /word/ by an italic word
- $pattern = "/\/(\S*)\/(\s)/";
- $replacement = '<span style="font-style:italic;">$1$2</span>';
- $content = preg_replace($pattern, $replacement, $content);
-
- $content = '<div>'.$content.'</div>';
- return $content;
-}
-
-function get_cat_display_name_from_id($cat_id,
- $url = '',
- $replace_space = true)
-{
- $cat_info = get_cat_info($cat_id);
- return get_cat_display_name($cat_info['upper_names'], $url, $replace_space);
-}
-
-/**
- * Returns an HTML list of tags. It can be a multi select field or a list of
- * checkboxes.
- *
- * @param string HTML field name
- * @param array selected tag ids
- * @return array
- */
-function get_html_tag_selection(
- $tags,
- $fieldname,
- $selecteds = array(),
- $forbidden_categories = null
- )
-{
- global $conf;
-
- if (count ($tags) == 0 )
- {
- return '';
- }
- $output = '<ul class="tagSelection">';
- foreach ($tags as $tag)
- {
- $output.=
- '<li>'
- .'<label>'
- .'<input type="checkbox" name="'.$fieldname.'[]"'
- .' value="'.$tag['id'].'"'
- ;
-
- if (in_array($tag['id'], $selecteds))
- {
- $output.= ' checked="checked"';
- }
-
- $output.=
- ' />'
- .' '. $tag['name']
- .'</label>'
- .'</li>'
- ."\n"
- ;
- }
- $output.= '</ul>';
-
- return $output;
-}
-
-function name_compare($a, $b)
-{
- return strcmp(strtolower($a['name']), strtolower($b['name']));
-}
-
-/**
- * exits the current script (either exit or redirect)
- */
-function access_denied()
-{
- global $user;
-
- $login_url =
- get_root_url().'identification.php?redirect='
- .urlencode(urlencode($_SERVER['REQUEST_URI']));
-
- if ( isset($user) and !is_a_guest() )
- {
- echo '<div style="text-align:center;">'.l10n('access_forbiden').'<br />';
- echo '<a href="'.get_root_url().'identification.php">'.l10n('identification').'</a>&nbsp;';
- echo '<a href="'.make_index_url().'">'.l10n('home').'</a></div>';
- exit();
- }
- else
- {
- set_status_header(401);
- redirect_html($login_url);
- }
-}
-
-/**
- * exits the current script with 403 code
- * @param string msg a message to display
- * @param string alternate_url redirect to this url
- */
-function page_forbidden($msg, $alternate_url=null)
-{
- set_status_header(403);
- if ($alternate_url==null)
- $alternate_url = make_index_url();
- redirect_html( $alternate_url,
- '<div style="text-align:left; margin-left:5em;margin-bottom:5em;">
-<h1 style="text-align:left; font-size:36px;">Forbidden</h1><br/>'
-.$msg.'</div>',
- 5 );
-}
-
-/**
- * exits the current script with 400 code
- * @param string msg a message to display
- * @param string alternate_url redirect to this url
- */
-function bad_request($msg, $alternate_url=null)
-{
- set_status_header(400);
- if ($alternate_url==null)
- $alternate_url = make_index_url();
- redirect_html( $alternate_url,
- '<div style="text-align:left; margin-left:5em;margin-bottom:5em;">
-<h1 style="text-align:left; font-size:36px;">Bad request</h1><br/>'
-.$msg.'</div>',
- 5 );
-}
-
-/**
- * exits the current script with 404 code when a page cannot be found
- * @param string msg a message to display
- * @param string alternate_url redirect to this url
- */
-function page_not_found($msg, $alternate_url=null)
-{
- set_status_header(404);
- if ($alternate_url==null)
- $alternate_url = make_index_url();
- redirect_html( $alternate_url,
- '<div style="text-align:left; margin-left:5em;margin-bottom:5em;">
-<h1 style="text-align:left; font-size:36px;">Page not found</h1><br/>'
-.$msg.'</div>',
- 5 );
-}
-
-/* returns the title to be displayed above thumbnails on tag page
- */
-function get_tags_content_title()
-{
- global $page;
- $title = count($page['tags']) > 1 ? l10n('Tags') : l10n('Tag');
- $title.= ' ';
-
- for ($i=0; $i<count($page['tags']); $i++)
- {
- $title.= $i>0 ? ' + ' : '';
-
- $title.=
- '<a href="'
- .make_index_url(
- array(
- 'tags' => array( $page['tags'][$i] )
- )
- )
- .'" title="'
- .l10n('See elements linked to this tag only')
- .'">'
- .$page['tags'][$i]['name']
- .'</a>';
-
- if ( count($page['tags'])>2 )
- {
- $other_tags = $page['tags'];
- unset ( $other_tags[$i] );
- $title.=
- '<a href="'
- .make_index_url(
- array(
- 'tags' => $other_tags
- )
- )
- .'" style="border:none;" title="'
- .l10n('remove this tag')
- .'"><img src="'
- .get_root_url().get_themeconf('icon_dir').'/remove_s.png'
- .'" alt="x" style="vertical-align:bottom;" class="button"/>'
- .'</a>';
- }
-
- }
- return $title;
-}
-
-/**
- Sets the http status header (200,401,...)
- */
-function set_status_header($code, $text='')
-{
- if (empty($text))
- {
- switch ($code)
- {
- case 200: $text='OK';break;
- case 301: $text='Moved permanently';break;
- case 302: $text='Moved temporarily';break;
- case 304: $text='Not modified';break;
- case 400: $text='Bad request';break;
- case 401: $text='Authorization required';break;
- case 403: $text='Forbidden';break;
- case 404: $text='Not found';break;
- case 500: $text='Server error';break;
- case 503: $text='Service unavailable';break;
- }
- }
- $protocol = $_SERVER["SERVER_PROTOCOL"];
- if ( ('HTTP/1.1' != $protocol) && ('HTTP/1.0' != $protocol) )
- $protocol = 'HTTP/1.0';
-
- if ( version_compare( phpversion(), '4.3.0', '>=' ) )
- {
- header( "$protocol $code $text", true, $code );
- }
- else
- {
- header( "$protocol $code $text" );
- }
- trigger_action('set_status_header', $code, $text);
-}
-
-/** returns the category comment for rendering in html.
- * this is an event handler. don't call directly
- */
-function render_category_description($desc)
-{
- global $conf;
- if ( !( $conf['allow_html_descriptions'] and
- preg_match('/<(div|br|img|script).*>/i', $desc) ) )
- {
- $desc = nl2br($desc);
- }
- return $desc;
-}
-
-/** returns the category comment for rendering in html textual mode (subcatify)
- * this is an event handler. don't call directly
- */
-function render_category_literal_description($desc)
-{
- return strip_tags($desc, '<span><p><a><br><b><i><small><big><strong><em>');
-}
-
-/** returns the argument_ids array with new sequenced keys based on related
- * names. Sequence is not case sensitive.
- * Warning: By definition, this function breaks original keys
- */
-function order_by_name($element_ids,$name)
-{
- $ordered_element_ids = array();
- foreach ($element_ids as $k_id => $element_id)
- {
- $key = strtolower($name[$element_id]) .'-'. $name[$element_id] .'-'. $k_id;
- $ordered_element_ids[$key] = $element_id;
- }
- ksort($ordered_element_ids);
- return $ordered_element_ids;
-}
-
-?>