*
* -------------------------------------------- *
* 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; either version 2 of the License, or (at your *
* option) any later version. *
\**************************************************************************/
/* $Id$ */
class html
{
var $user_agent,$ua_version; // 'mozilla','msie','konqueror'
var $prefered_img_title;
function html()
{
// should be Ok for all HTML 4 compatible browsers
if (!eregi('compatible; ([a-z_]+)[/ ]+([0-9.]+)',$_SERVER['HTTP_USER_AGENT'],$parts))
{
eregi('^([a-z_]+)/([0-9.]+)',$_SERVER['HTTP_USER_AGENT'],$parts);
}
list(,$this->user_agent,$this->ua_version) = $parts;
$this->user_agent = strtolower($this->user_agent);
$this->prefered_img_title = $this->user_agent == 'mozilla' && $this->ua_version < 5 ? 'alt' : 'title';
//echo "
\n";
$this->document_root = $_SERVER['DOCUMENT_ROOT'];
// this is because some webservers report their docroot without the leading slash
if (!is_dir($this->document_root) && is_dir('/'.$this->document_root))
{
$this->document_root = '/' . $this->document_root;
}
//echo "
\n";
if ($GLOBALS['phpgw']->translation)
{
$this->charset = $GLOBALS['phpgw']->translation->charset();
}
}
function htmlspecialchars($str)
{
return htmlspecialchars($str,ENT_COMPAT,$this->charset);
}
/*
* Function: Allows to show and select one item from an array
* Parameters: $name string with name of the submitted var which holds the key of the selected item form array
* $key key(s) of already selected item(s) from $arr, eg. '1' or '1,2' or array with keys
* $arr array with items to select, eg. $arr = array ( 'y' => 'yes','n' => 'no','m' => 'maybe');
* $no_lang if !$no_lang send items through lang()
* $options additional options (e.g. 'multiple')
* On submit $XXX is the key of the selected item (XXX is the content of $name)
* Returns: string to set for a template or to echo into html page
*/
function select($name, $key, $arr=0,$no_lang=0,$options='',$multiple=0)
{
// should be in class common.sbox
if (!is_array($arr))
{
$arr = array('no','yes');
}
if ((int)$multiple > 0)
{
$options .= ' multiple size="'.(int)$multiple.'"';
if (substr($name,-2) != '[]')
{
$name .= '[]';
}
}
$out = "\n";
return $out;
}
function div($content,$options='')
{
return "
\n$content
\n";
}
function input_hidden($vars,$value='',$ignore_empty=True)
{
if (!is_array($vars))
{
$vars = array( $vars => $value );
}
foreach($vars as $name => $value)
{
if (is_array($value))
{
$value = serialize($value);
}
if (!$ignore_empty || $value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$html .= "htmlspecialchars($value)."\" />\n";
}
}
return $html;
}
function textarea($name,$value='',$options='' )
{
return "\n";
}
function input($name,$value='',$type='',$options='' )
{
if ($type)
{
$type = 'type="'.$type.'"';
}
return "htmlspecialchars($value)."\" $options />\n";
}
function submit_button($name,$lang,$onClick='',$no_lang=0,$options='',$image='',$app='')
{
if ($image != '')
{
if (strpos($image,'.'))
{
$image = substr($image,0,strpos($image,'.'));
}
if (!($path = $GLOBALS['phpgw']->common->image($app,$image)) &&
!($path = $GLOBALS['phpgw']->common->image('phpgwapi',$image)))
{
$path = $image; // name may already contain absolut path
}
$image = ' src="'.$path.'"';
}
if (!$no_lang)
{
$lang = lang($lang);
}
if (($accesskey = strstr($lang,'&')) && $accesskey[1] != ' ' &&
(($pos = strpos($accesskey,';')) === False || $pos > 5))
{
$lang_u = str_replace('&'.$accesskey[1],''.$accesskey[1].'',$lang);
$lang = str_replace('&','',$lang);
$options = 'accesskey="'.$accesskey[1].'" '.$options;
}
else
{
$accesskey = '';
$lang_u = $lang;
}
if ($onClick) $options .= " onclick=\"$onClick\"";
// ';
}
/*!
@function link
@abstract creates an absolut link + the query / get-variables
@param $url phpgw-relative link, may include query / get-vars
@parm $vars query or array ('name' => 'value', ...) with query
@example link('/index.php?menuaction=infolog.uiinfolog.get_list',array('info_id' => 123))
@example = 'http://domain/phpgw-path/index.php?menuaction=infolog.uiinfolog.get_list&info_id=123'
@result absolut link already run through $phpgw->link
*/
function link($url,$vars='')
{
//echo "