From: Philippe M. <phi...@us...> - 2002-05-30 14:27:41
|
Update of /cvsroot/squirrelmail/squirrelmail/functions In directory usw-pr-cvs1:/tmp/cvs-serv15139/functions Modified Files: html.php mailbox_display.php Log Message: Html output. Proposal 2 Index: html.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/html.php,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- html.php 29 May 2002 16:09:01 -0000 1.1 +++ html.php 30 May 2002 14:27:31 -0000 1.2 @@ -15,6 +15,7 @@ function html_tag( $tag, $align = '', + $bgcolor = '', $xtra = '' ) { GLOBAL $languages, $language; @@ -36,6 +37,10 @@ $lft = 'right'; } + if ( $bgcolor <> '' ) { + $bgc = " BGCOLOR=\"$bgcolor\""; + } + switch ( $align ) { case '': $alg = ''; @@ -47,8 +52,284 @@ $alg = " ALIGN=\"$lft\""; } - return( "<$tag DIR=\"$dir\"$alg $xtra>" ); + return( "<$tag DIR=\"$dir\"$bgc$alg $xtra>" ); + } + +/* + * Zookeeper + * Copyright (c) 2001 Partridge + * Licensed under the GNU GPL. For full terms see the file COPYING. + * + * $Id$ + */ + +/** + * ZkSvc_html + * + * The ZkSvc_html class manages html output. + */ +class ZkSvc_html { + + /* Constants */ + var $name = 'html'; // Module name + var $ver = '$Id$'; + + /* Properties */ + var $buffer; // Buffered output + var $htmlmod; // Module handler + var $title; // Page title + var $head_extras; // Extra header tags + var $bgcolor; // Background color + var $text; // Text color + var $link; // Link color + var $vlink; // Visited link color + var $alink; // Active link color + var $onload; // Onload event + var $onunload; // OnUnload event + var $dir; // Text direction + + var $tag_options; // Array of tag options array + + /** CONSTRUCTOR + */ + + function ZkSvc_html() { + + GLOBAL $languages, $language; + + $this->spool = FALSE; + $this->buffer = ''; + $this->title = 'Default zkHTML Title'; + $this->head_extras = ''; + $this->bgcolor = '#FFFFFF'; + $this->text = '#000000'; + $this->link = '#3300CC'; + $this->vlink = '#993333'; + $this->alink = '#993333'; + $this->onload = ''; + $this->onunload = ''; + + /* To know if a tag exists we check that it has got a place in the following array */ + $this->tag_options = array( 'table' => array( 'tag_name' => 'table', + 'tag_closed' => TRUE ), + 'tr' => array( 'tag_name' => 'tr', + 'tag_closed' => TRUE ), + 'th' => array( 'tag_name' => 'th', + 'tag_closed' => TRUE ), + 'td' => array( 'tag_name' => 'td', + 'tag_closed' => TRUE ), + 'li' => array( 'tag_name' => 'li', + 'tag_closed' => TRUE ), + 'ol' => array( 'tag_name' => 'ol', + 'tag_closed' => TRUE ), + 'form' => array( 'tag_name' => 'form', + 'tag_closed' => TRUE ), + 'input' => array( 'tag_name' => 'input', + 'tag_closed' => FALSE ), + 'br' => array( 'tag_name' => 'br', + 'tag_closed' => FALSE ), + 'textarea' => array( 'tag_name' => 'textarea', + 'tag_closed' => TRUE ), + 'p' => array( 'tag_name' => 'p', + 'tag_closed' => TRUE ), + 'a' => array( 'tag_name' => 'a', + 'tag_closed' => TRUE ), + 'center' => array( 'name' => 'center', + 'tag_closed' => TRUE ), + 'img' => array( 'name' => 'img', + 'tag_closed' => FALSE ), + 'font' => array( 'tag_closed' => TRUE ), + 'blockquote' => array( 'tag_name' => 'blockquote', + 'tag_closed' => TRUE ) + ); + + if ( isset( $languages[$language]['DIR']) ) { + $this->dir = strtolower( $languages[$language]['DIR'] ); + } else { + $this->dir = 'ltr'; + } + + } + + /** + * Return the name of this service. + * + * @return string the name of this service + */ + function getServiceName() { + return( $this->name ); } + /** + * Replace the Zookeeper html module loaded for this service. (no modules yet) + * + */ + function loadModule(&$module) { + $this->htmlmod = &$module; + } + + /** + * Outputs the buffer and re-initialize it. + * + */ + function flush( $string = '' ) { + echo $this->buffer . $string; + flush(); + $this->buffer = ''; + } + + /** + * Builds a header string + * + */ + function header( $string = '' ) { + + // It initializes the buffer. + $this->buffer = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">' . + "\n<HTML>\n"; + + if( $this->head_extras <> '' || $this->title <> '' ) { + + $this->buffer .= "<HEAD>\n"; + + if( $this->title <> '' ) + $this->buffer .= "<TITLE>$this->title</TITLE>\n"; + + $this->buffer .= "$this->head_extras</HEAD>\n"; + } + $xtra = ''; + if ( $this->onload <> '' ) { + $xtra .= ' onload="' . $this->onload . '" '; + } + if ( $this->onunload <> '' ) { + $xtra .= ' onunload="' . $this->onunload . '" '; + } + $this->buffer .= "<BODY TEXT=\"$this->text\" BGCOLOR=\"$this->bgcolor\" LINK=\"$this->link\" VLINK=\"$this->vlink\" ALINK=\"$this->alink\" $xtra>\n"; + + /* See if we're asking for a closed strcuture */ + if( $string == '' ) { + $this->flush(); + } else { + $this->buffer .= $string . '</BODY></HTML>'; + } + + } + + /** + * Builds a footer string + * + */ + function footer() { + + $this->buffer .= "\n</body>\n</html>\n"; + $this->flush(); + + } + + /** + * Builds a tag string + * + */ + function tag( $tag, $string = '', $options = '' ) { + + $ret = ''; + if( $this->tag_options[$tag] <> NULL ) { + if( $options == '' ) { + $options = $this->tag_options[$tag]; + } + switch( strtolower( $tag ) ) { + case 'td': + case 'th': + if ( $this->dir == 'rtl' && isset( $options['align'] ) ) { + + } + case 'table': + if ( $this->dir <> '' ) { + $options['DIR'] = $this->dir; + } + break; + } + $ret = zkTag_html( $tag, $string, $options, $this->tag_options[$tag]['tag_closed'] ); + } + return( $ret ); + + } + + /** + * Builds a header string + * + */ + function h( $string, $level = '1' ) { + + $buffer = "<h$level>"; + + /* See if we're asking for a closed strcuture */ + if( $string == '' ) { + $this->$buffer .= $buffer; + } else { + $buffer .= $string . "</h$level>"; + } + return( $buffer ); + + } + +} + +/** + * Converts an array into a parameters tag list. + * + */ +function zkGetParms_html( $parms ) { + + $buffer = ''; + foreach( $parms as $key => $opt ) { + if( substr( $key, 0, 3 ) <> 'tag' ) { + $buffer .= " $key"; + if ($opt <> '' ) { + $buffer .= "=\"$opt\""; + } + } + } + return( $buffer ); +} + +/** + * Composes a tag string with all its parameters. + * + */ +function zkTag_html( $tag, $string, $options, $closed ) { + + /* + We must check direction tag in case we have table, td or th + */ + + $ret = "<$tag" . + zkGetParms_html( $options ) . + '>' . + $string; + + if ( $closed ) { + $ret .= "</$tag>"; + } + + return( $ret ); +} + +function optionize( $name, $opts, $default, $xtra = '' ) { + + $ret = "<select name=\"$name\" $xtra>\n"; + + foreach( $opts as $key => $opt ) { + if( $opt == $default ) { + $chk = ' SELECTED'; + } else { + $chk = ''; + } + $ret .= "<option value=\"$opt\"$chk>$opt</option>\n"; + } + + $ret .= "</select>\n"; + return( $ret ); +} ?> Index: mailbox_display.php =================================================================== RCS file: /cvsroot/squirrelmail/squirrelmail/functions/mailbox_display.php,v retrieving revision 1.244 retrieving revision 1.245 diff -u -w -r1.244 -r1.245 --- mailbox_display.php 29 May 2002 16:08:23 -0000 1.244 +++ mailbox_display.php 30 May 2002 14:27:31 -0000 1.245 @@ -14,7 +14,6 @@ require_once('../functions/strings.php'); require_once('../functions/imap_utf7_decode_local.php'); -require_once('../functions/html.php'); /* Default value for page_selector_max. */ define('PG_SEL_MAX', 10); @@ -497,10 +496,12 @@ function displayMessageArray($imapConnection, $num_msgs, $start_msg, &$msgs, $msort, $mailbox, $sort, $color, $show_num) { + global $folder_prefix, $sent_folder, $imapServerAddress, $data_dir, $username, $use_mailbox_cache, $index_order, $real_endMessage, $real_startMessage, $checkall, - $indent_array, $thread_sort_messages, $allow_server_sort, $server_sort_order; + $indent_array, $thread_sort_messages, $allow_server_sort, + $server_sort_order, $html; /* If cache isn't already set, do it now. */ if (!session_is_registered('msgs')) { @@ -605,14 +606,26 @@ } while ($i && $i < $endVar); } - echo '</table>' - . html_tag( 'table', '', - "bgcolor=\"$color[9]\" width=\"100%\" border=0 cellpadding=1 cellspacing=1" ) - . "<tr BGCOLOR=\"$color[4]\"><td>" - . "<table width=\"100%\" BGCOLOR=\"$color[4]\" border=0 cellpadding=1 " - . "cellspacing=0><tr><td>$paginator_str</td>" - . html_tag( 'td', 'right' ) . "$msg_cnt_str</td></tr></table>" - . "</td></tr></table>"; + echo '</table>' . + $html->tag( 'table', + $html->tag( 'tr', + $html->tag( 'td', + $html->tag( 'table', + $html->tag( 'tr', + $html->tag( 'td', $paginator_str ) . + $html->tag( 'td', $msg_cnt_str, array( 'align' => 'right' ) ) + ) + , array( 'bgcolor'=> $color[4], + 'width' => '100%', + 'cellpadding' => 1, + 'cellspacing' => 1 ) ) + ) + , array( 'bgcolor' => $color[4] ) ) + , array( 'bgcolor' => $color[9], + 'width' => '100%', + 'cellpadding' => 1, + 'cellspacing' => 1 ) ); + /* End of message-list table */ do_hook('mailbox_index_after'); |