*
* -------------------------------------------- *
* 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;
var $prefered_img_title;
function html()
{ // should be Ok for all HTML 4 compatible browsers
if (!eregi('compatible; ([a-z_]+)[/ ]+([0-9.]+)',$GLOBALS['HTTP_USER_AGENT'],$parts))
eregi('^([a-z_]+)/([0-9.]+)',$GLOBALS['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";
}
/*
* 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 (0+$multiple > 0)
{
$options .= ' MULTIPLE SIZE='.(0+$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 );
}
while (list($name,$value) = each($vars))
{
if (is_array($value)) $value = serialize($value);
if (!$ignore_empty || $value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$html .= "\n";
}
}
return $html;
}
function textarea($name,$value='',$options='' )
{
return "\n";
}
function input($name,$value='',$type='',$options='' )
{
if ($type) $type = 'TYPE="'.$type.'"';
return "\n";
}
function submit_button($name,$lang,$onClick='',$no_lang=0,$options='',$image='')
{
if ($image != '')
{
if (!($path = $GLOBALS['phpgw']->common->image($app,$image)))
$path = $image; // name may already contain absolut path
$options .= ' src="'.$path.'"';
}
if (!$no_lang) $lang = lang($lang);
if ($onClick) $options .= " onClick=\"$onClick\"";
return $this->input($name,$lang,$image != '' ? 'IMAGE' : 'SUBMIT',$options);
}
/*!
@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='')
{
if (is_array( $vars ))
{
$v = array( );
while(list($name,$value) = each($vars))
{
if ($value && !($name == 'filter' && $value == 'none')) // dont need to send all the empty vars
{
$v[] = "$name=$value";
}
}
$vars = implode('&',$v);
}
list($url,$v) = explode('?',$url); // url may contain additional vars
if ($v)
$vars .= ($vars ? '&' : '') . $v;
return $GLOBALS['phpgw']->link($url,$vars);
}
function checkbox($name,$value='')
{
return "\n";
}
function form($content,$hidden_vars,$url,$url_vars='',$name='',$options='',$method='POST')
{
$html = "\n";
}
return $html;
}
function form_1button($name,$lang,$hidden_vars,$url,$url_vars='',
$form_name='',$method='POST')
{
return $this->form($this->submit_button($name,$lang),
$hidden_vars,$url,$url_vars,$form_name,'',$method);
}
/*!
@function table
@abstracts creates table from array with rows
@discussion abstract the html stuff
@param $rows array with rows, each row is an array of the cols
@param $options options for the table-tag
@example $rows = array ( '1' => array( 1 => 'cell1', '.1' => 'colspan=3',
@example 2 => 'cell2', 3 => 'cell3', '.3' => 'width="10%"' ),
@example '.1' => 'BGCOLOR="#0000FF"' );
@example table($rows,'WIDTH="100%"') = '
cell1
cell2
cell3
'
@result string with html-code of the table
*/
function table($rows,$options = '')
{
$html = "
\n";
while (list($key,$row) = each($rows)) {
if (!is_array($row))
continue; // parameter
$html .= "\t
\n";
while (list($key,$cell) = each($row)) {
if ($key[0] == '.')
continue; // parameter
$html .= "\t\t