From ee7ec2bcd3ee35c2c5ebf04539c9573ee5edcf35 Mon Sep 17 00:00:00 2001 From: Ralf Becker Date: Sun, 14 Sep 2003 10:25:05 +0000 Subject: [PATCH] moved the html-class to the API --- etemplate/inc/class.html.inc.php | 388 ------------------------ etemplate/inc/class.uietemplate.inc.php | 6 +- infolog/inc/class.boinfolog.inc.php | 11 +- infolog/inc/class.uilink.inc.php | 12 +- 4 files changed, 18 insertions(+), 399 deletions(-) delete mode 100644 etemplate/inc/class.html.inc.php diff --git a/etemplate/inc/class.html.inc.php b/etemplate/inc/class.html.inc.php deleted file mode 100644 index be328e3c6a..0000000000 --- a/etemplate/inc/class.html.inc.php +++ /dev/null @@ -1,388 +0,0 @@ - * - * -------------------------------------------- * - * 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 "

HTTP_USER_AGENT='$GLOBALS[HTTP_USER_AGENT]', UserAgent: '$this->user_agent', Version: '$this->ua_version', img_title: '$this->prefered_img_title'

\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 "

_SERVER[DOCUMENT_ROOT]='$_SERVER[DOCUMENT_ROOT]', this->document_root='$this->document_root'

\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 (intval($multiple) > 0) - { - $options .= ' MULTIPLE SIZE="'.intval($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 .= "\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='',$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 "

html::link(url='$url',vars='"; print_r($vars); echo "')

\n"; - if (!is_array($vars)) - { - parse_str($vars,$vars); - } - list($url,$v) = explode('?',$url); // url may contain additional vars - if ($v) - { - parse_str($v,$v); - $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 = "
link($url,$url_vars)."\" $options>\n"; - $html .= $this->input_hidden($hidden_vars); - - if ($content) - { - $html .= $content; - $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%"') = '
cell1cell2cell3
' - @result string with html-code of the table - */ - function table($rows,$options = '',$no_table_tr=False) - { - $html = $no_table_tr ? '' : "\n"; - - foreach($rows as $key => $row) - { - if (!is_array($row)) - { - continue; // parameter - } - $html .= $no_table_tr && $key == 1 ? '' : "\t\n"; - - foreach($row as $key => $cell) - { - if ($key[0] == '.') - { - continue; // parameter - } - $table_pos = strpos($cell,'$cell\n"; - } - } - $html .= "\t\n"; - } - $html .= "
\n"; - - if ($no_table_tr) - { - $html = substr($html,0,-16); - } - return $html; - } - - function sbox_submit( $sbox,$no_script=0 ) - { - $html = str_replace('submit_button('send','>').''; - } - return $html; - } - - function image( $app,$name,$title='',$options='' ) - { - if (!($path = $GLOBALS['phpgw']->common->image($app,$name))) - { - $path = $name; // name may already contain absolut path - } - if (!@is_readable($this->document_root . $path)) - { - return $title; - } - if ($title) - { - $options .= " $this->prefered_img_title=\"".htmlspecialchars($title).'"'; - } - return ""; - } - - function a_href( $content,$url,$vars='',$options='') - { - if (!strstr($url,'/') && count(explode('.',$url)) == 3) - { - $url = "/index.php?menuaction=$url"; - } - if (is_array($url)) - { - $vars = $url; - $url = '/index.php'; - } - return ''.$content.''; - } - - function bold($content) - { - return ''.$content.''; - } - - function italic($content) - { - return ''.$content.''; - } - - function hr($width,$options='') - { - if ($width) - $options .= " WIDTH=$width"; - return "
\n"; - } - - /*! - @function formatOptions - @abstract formats option-string for most of the above functions - @param $options String (or Array) with option-values eg. '100%,,1' - @param $names String (or Array) with the option-names eg. 'WIDTH,HEIGHT,BORDER' - @example formatOptions('100%,,1','WIDTH,HEIGHT,BORDER') = ' WIDTH="100%" BORDER="1"' - @result option string - */ - function formatOptions($options,$names) - { - if (!is_array($options)) $options = explode(',',$options); - if (!is_array($names)) $names = explode(',',$names); - - while (list($n,$val) = each($options)) - if ($val != '' && $names[$n] != '') - $html .= ' '.$names[$n].'="'.$val.'"'; - - return $html; - } - - /*! - @function themeStyles - @abstract returns simple stylesheet (incl. " : ''; - } - - function label($content,$id='',$accesskey='',$options='') - { - if ($id != '') - { - $id = " FOR=\"$id\""; - } - if ($accesskey != '') - { - $accesskey = " ACCESSKEY=\"$accesskey\""; - } - return "$content"; - } -} diff --git a/etemplate/inc/class.uietemplate.inc.php b/etemplate/inc/class.uietemplate.inc.php index f07e248dc4..cf0378d5b4 100644 --- a/etemplate/inc/class.uietemplate.inc.php +++ b/etemplate/inc/class.uietemplate.inc.php @@ -49,7 +49,11 @@ 'show' => True, 'process_show' => True, ); - $this->html = CreateObject('etemplate.html'); // should be in the api (older version in infolog) + if (!is_object($GLOBALS['phpgw']->html)) + { + $GLOBALS['phpgw']->html = CreateObject('phpgwapi.html'); + } + $this->html = &$GLOBALS['phpgw']->html; $this->boetemplate($name,$load_via); diff --git a/infolog/inc/class.boinfolog.inc.php b/infolog/inc/class.boinfolog.inc.php index 65a7638ecc..dedc70d0eb 100644 --- a/infolog/inc/class.boinfolog.inc.php +++ b/infolog/inc/class.boinfolog.inc.php @@ -294,6 +294,12 @@ { return False; } + if (!is_object($GLOBALS['phpgw']->html)) + { + $GLOBALS['phpgw']->html = CreateObject('phpgwapi.html'); + } + $GLOBALS['phpgw']->translation->add_app('infolog'); + $do_events = $args['location'] == 'calendar_include_events'; $start = 0; $to_include = array(); @@ -310,11 +316,6 @@ { continue; } - if (!is_object($GLOBALS['phpgw']->html)) // only once and only if thers something to report - { - $GLOBALS['phpgw']->html = CreateObject('etemplate.html'); - $GLOBALS['phpgw']->translation->add_app('infolog'); - } $title = ($do_events?$GLOBALS['phpgw']->common->formattime(date('H',$info['info_startdate']+$this->tz_offset_sec),date('i',$info['info_startdate']+$this->tz_offset_sec)).' ':''). $info['info_subject']; $view = $this->link->view('infolog',$info['info_id']); diff --git a/infolog/inc/class.uilink.inc.php b/infolog/inc/class.uilink.inc.php index 714ded5ba0..52bc92c1cb 100644 --- a/infolog/inc/class.uilink.inc.php +++ b/infolog/inc/class.uilink.inc.php @@ -32,6 +32,10 @@ 'getEntry' => True, 'showLinks' => True ); + if (!is_object($GLOBALS['phpgw']->html)) + { + $GLOBALS['phpgw']->html = CreateObjecet('phpgwapi.html'); + } } /*! @@ -65,8 +69,7 @@ 'remark' => '' ); $etemplate = CreateObject('etemplate.etemplate','infolog.linkto_widget.create'); - $html = CreateObject('etemplate.html'); - $out = $etemplate->show($value,'','',$name)."\n".$html->input_hidden($name.'[app]',$value['app']); + $out = $etemplate->show($value,'','',$name)."\n".$GLOBALS['phpgw']->html->input_hidden($name.'[app]',$value['app']); } else { @@ -136,15 +139,14 @@ @param $content if set result will be like "$content" @result link to view $id in $app or False if no link for $app registered or $id=='' */ - function viewLink($app,$id,$html='') + function viewLink($app,$id) { $view = $this->view($app,$id); if (!count($view)) { return False; } - $html = CreateObject('etemplate.html'); - return $content == '' ? $html->link('/index.php',$view) : $html->a_href($content,'/index.php',$view); + return $content == '' ? $GLOBALS['phpgw']->html->link('/index.php',$view) : $GLOBALS['phpgw']->html->a_href($content,'/index.php',$view); } /*!