Source for file html.php

Documentation is available at html.php

  1. <?php
  2.  
  3. /**
  4.  * html.php
  5.  *
  6.  * The idea is to inlcude here some functions to make easier
  7.  * the right to left implementation by "functionize" some
  8.  * html outputs.
  9.  *
  10.  * @copyright &copy; 1999-2006 The SquirrelMail Project Team
  11.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  12.  * @version $Id: html.php,v 1.14.2.8 2006/04/14 22:27:07 jervfors Exp $
  13.  * @package squirrelmail
  14.  * @since 1.3.0
  15.  */
  16.  
  17. /**
  18.  * Generate html tags
  19.  *
  20.  * @param string $tag Tag to output
  21.  * @param string $val Value between tags
  22.  * @param string $align Alignment (left, center, etc)
  23.  * @param string $bgcolor Back color in hexadecimal
  24.  * @param string $xtra Extra options
  25.  * @return string HTML ready for output
  26.  */
  27. function html_tag$tag,                // Tag to output
  28.                                               $val '',           // Value between tags
  29.                                               $align '',         // Alignment
  30.                                               $bgcolor '',       // Back color
  31.                                               $xtra '' {       // Extra options
  32.  
  33.         GLOBAL $languages$squirrelmail_language;
  34.  
  35.         $align strtolower$align );
  36.         $bgc '';
  37.         $tag strtolower$tag );
  38.  
  39.         if isset$languages[$squirrelmail_language]['DIR']) ) {
  40.             $dir $languages[$squirrelmail_language]['DIR'];
  41.         else {
  42.             $dir 'ltr';
  43.         }
  44.  
  45.         if $dir == 'ltr' {
  46.             $rgt 'right';
  47.             $lft 'left';
  48.         else {
  49.             $rgt 'left';
  50.             $lft 'right';
  51.         }
  52.  
  53.         if $bgcolor <> '' {
  54.             $bgc " bgcolor=\"$bgcolor\"";
  55.         }
  56.  
  57.         switch $align {
  58.             case '':
  59.                 $alg '';
  60.                 break;
  61.             case 'right':
  62.                 $alg " align=\"$rgt\"";
  63.                 break;
  64.             case 'left':
  65.                 $alg " align=\"$lft\"";
  66.                 break;
  67.             default:
  68.                 $alg " align=\"$align\"";
  69.                 break;
  70.         }
  71.  
  72.         $ret "<$tag";
  73.  
  74.         if $dir <> 'ltr' {
  75.             $ret .= " dir=\"$dir\"";
  76.         }
  77.         $ret .= $bgc $alg;
  78.  
  79.         if $xtra <> '' {
  80.             $ret .= " $xtra";
  81.         }
  82.  
  83.         if $val <> '' {
  84.             $ret .= ">$val</$tag>\n";
  85.         else {
  86.             $ret .= '>' "\n";
  87.         }
  88.  
  89.         return$ret );
  90.     }
  91.  
  92.     /* handy function to set url vars */
  93.     /* especially usefull when $url = $PHP_SELF */
  94.     function set_url_var($url$var$val=0$link=true{
  95.         $k '';
  96.         $ret '';
  97.         $pat_a array (
  98.                        '/.+(\\&'.$var.')=(.*)\\&/AU',   /* in the middle */
  99.                        '/.+\\?('.$var.')=(.*\\&).+/AU'/* at front, more follow */
  100.                        '/.+(\\?'.$var.')=(.*)$/AU',     /* at front and only var */
  101.                        '/.+(\\&'.$var.')=(.*)$/AU'      /* at the end */
  102.                      );
  103.     preg_replace('/&amp;/','&',$url);
  104.         switch (true{
  105.             case (preg_match($pat_a[0],$url,$regs)):
  106.                 $k $regs[1];
  107.                 $v $regs[2];
  108.                 break;
  109.             case (preg_match($pat_a[1],$url,$regs)):
  110.                 $k $regs[1];
  111.                 $v $regs[2];
  112.                 break;
  113.             case (preg_match($pat_a[2],$url,$regs)):
  114.                 $k $regs[1];
  115.                 $v $regs[2];
  116.                 break;
  117.             case (preg_match($pat_a[3],$url,$regs)):
  118.                 $k $regs[1];
  119.                 $v $regs[2];
  120.                 break;
  121.             default:
  122.                 if ($val{
  123.                     if (strpos($url,'?')) {
  124.                         $url .= "&$var=$val";
  125.                     else {
  126.                         $url .= "?$var=$val";
  127.                     }
  128.                 }
  129.                 break;
  130.         }
  131.  
  132.         if ($k{
  133.             if ($val{
  134.                 $rpl "$k=$val";
  135.         if ($link{
  136.             $rpl preg_replace('/&/','&amp;',$rpl);
  137.         }
  138.             else {
  139.                 $rpl '';
  140.             }
  141.             ifsubstr($v,-1)=='&' {
  142.                 $rpl .= '&';
  143.             }
  144.             $pat "/$k=$v/";
  145.             $url preg_replace($pat,$rpl,$url);
  146.         }
  147.         return $url;
  148.     }
  149.  
  150.     /* Temporary test function to proces template vars with formatting.
  151.      * I use it for viewing the message_header (view_header.php) with
  152.      * a sort of template.
  153.      */
  154.     function echo_template_var($var$format_ar array() ) {
  155.         $frm_last count($format_ar-1;
  156.  
  157.         if (isset($format_ar[0])) echo $format_ar[0];
  158.             $i 1;
  159.  
  160.         switch (true{
  161.             case (is_string($var)):
  162.                 echo $var;
  163.                 break;
  164.             case (is_array($var)):
  165.                 $frm_a array_slice($format_ar,1,$frm_last-1);
  166.                 foreach ($var as $a_el{
  167.                     if (is_array($a_el)) {
  168.                         echo_template_var($a_el,$frm_a);
  169.                     else {
  170.                         echo $a_el;
  171.                         if (isset($format_ar[$i])) {
  172.                             echo $format_ar[$i];
  173.                         }
  174.                         $i++;
  175.                     }
  176.                 }
  177.                 break;
  178.             default:
  179.                 break;
  180.         }
  181.         if (isset($format_ar[$frm_last]&& $frm_last>$i {
  182.             echo $format_ar[$frm_last];
  183.         }
  184.     }
  185. ?>

Documentation generated on Sat, 07 Oct 2006 16:31:30 +0300 by phpDocumentor 1.3.0RC6