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 1999-2014 The SquirrelMail Project Team
  11.  * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  12.  * @version $Id: html.php 14422 2014-01-01 20:59:43Z pdontthink $
  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. /**
  93.  * This function is used to add, modify or delete GET variables in a URL.
  94.  * It is especially useful when $url = $PHP_SELF
  95.  *
  96.  * Set $val to NULL to remove $var from $url.
  97.  * To ensure compatibility with older versions, use $val='0' to set $var to 0.
  98.  *
  99.  * @param string $url url that must be modified
  100.  * @param string $var GET variable name
  101.  * @param string $val variable value (CANNOT be an array)
  102.  * @param boolean $link controls sanitizing of ampersand in urls (since 1.3.2)
  103.  * @param boolean $treat_as_array When TRUE, if $var is an array (it occurs one
  104.  *                                 or more times with square brackets after it,
  105.  *                                 e.g. "var[1]"), the whole array will be removed
  106.  *                                 (when $val is NULL) or the given value will be
  107.  *                                 added to the next array slot (@since 1.4.23/1.5.2)
  108.  *
  109.  * @return string $url modified url
  110.  *
  111.  * @since 1.3.0
  112.  *
  113.  */
  114. function set_url_var($url$var$val=null$link=true$treat_as_array=false{
  115.     $url str_replace('&amp;','&',$url);
  116.  
  117.     if (strpos($url'?'=== false{
  118.         $url .= '?';
  119.     }   
  120.  
  121.     list($uri$paramsexplode('?'$url2);
  122.         
  123.     $newpar array()
  124.     $params explode('&'$params);
  125.     $array_names array();
  126.    
  127.     foreach ($params as $p{
  128.         if (trim($p)) {
  129.             $p explode('='$p);
  130.             $newpar[$p[0]] (isset($p[1]$p[1'');
  131.             if ($treat_as_array && preg_match('/(.*)\[(\d+)]$/'$p[0]$matches)) {
  132.                if (!isset($array_names[$matches[1]])) $array_names[$matches[1]] array();
  133.                $array_names[$matches[1]][$matches[2]] $p[1];
  134.             }
  135.         }
  136.     }
  137.  
  138.     if (is_null($val)) {
  139.         if ($treat_as_array && !empty($array_names[$var])) {
  140.             foreach ($array_names[$varas $key => $ignore)
  141.                 unset($newpar[$var '[' $key ']']);
  142.         else {
  143.             unset($newpar[$var]);
  144.         }
  145.     else {
  146.         if ($treat_as_array && !empty($array_names[$var])) {
  147.             $max_key 0;
  148.             foreach ($array_names[$varas $key => $ignore)
  149.                 if ($key >= $max_key$max_key $key 1;
  150.             $newpar[$var '[' $max_key ']'$val;
  151.         else {
  152.             $newpar[$var$val;
  153.         }
  154.     }
  155.  
  156.     if (!count($newpar)) {
  157.         return $uri;
  158.     }
  159.    
  160.     $url $uri '?';
  161.     foreach ($newpar as $name => $value{
  162.         $url .= "$name=$value&";
  163.     }
  164.      
  165.     $url substr($url0-1);
  166.     if ($link{
  167.         $url str_replace('&','&amp;',$url);
  168.     }
  169.     
  170.     return $url;
  171. }
  172.  
  173.     /* Temporary test function to proces template vars with formatting.
  174.      * I use it for viewing the message_header (view_header.php) with
  175.      * a sort of template.
  176.      */
  177.     function echo_template_var($var$format_ar array() ) {
  178.         $frm_last count($format_ar-1;
  179.  
  180.         if (isset($format_ar[0])) echo $format_ar[0];
  181.             $i 1;
  182.  
  183.         switch (true{
  184.             case (is_string($var)):
  185.                 echo $var;
  186.                 break;
  187.             case (is_array($var)):
  188.                 $frm_a array_slice($format_ar,1,$frm_last-1);
  189.                 foreach ($var as $a_el{
  190.                     if (is_array($a_el)) {
  191.                         echo_template_var($a_el,$frm_a);
  192.                     else {
  193.                         echo $a_el;
  194.                         if (isset($format_ar[$i])) {
  195.                             echo $format_ar[$i];
  196.                         }
  197.                         $i++;
  198.                     }
  199.                 }
  200.                 break;
  201.             default:
  202.                 break;
  203.         }
  204.         if (isset($format_ar[$frm_last]&& $frm_last>$i {
  205.             echo $format_ar[$frm_last];
  206.         }
  207.     }

Documentation generated on Sat, 25 Oct 2014 04:21:00 +0200 by phpDocumentor 1.4.3