CodeIgniter installed
[living-lab-site.git] / system / helpers / html_helper.php
diff --git a/system/helpers/html_helper.php b/system/helpers/html_helper.php
new file mode 100755 (executable)
index 0000000..c6103ab
--- /dev/null
@@ -0,0 +1,431 @@
+<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+/**
+ * CodeIgniter
+ *
+ * An open source application development framework for PHP 5.1.6 or newer
+ *
+ * @package            CodeIgniter
+ * @author             ExpressionEngine Dev Team
+ * @copyright  Copyright (c) 2008 - 2011, EllisLab, Inc.
+ * @license            http://codeigniter.com/user_guide/license.html
+ * @link               http://codeigniter.com
+ * @since              Version 1.0
+ * @filesource
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * CodeIgniter HTML Helpers
+ *
+ * @package            CodeIgniter
+ * @subpackage Helpers
+ * @category   Helpers
+ * @author             ExpressionEngine Dev Team
+ * @link               http://codeigniter.com/user_guide/helpers/html_helper.html
+ */
+
+// ------------------------------------------------------------------------
+
+/**
+ * Heading
+ *
+ * Generates an HTML heading tag.  First param is the data.
+ * Second param is the size of the heading tag.
+ *
+ * @access     public
+ * @param      string
+ * @param      integer
+ * @return     string
+ */
+if ( ! function_exists('heading'))
+{
+       function heading($data = '', $h = '1')
+       {
+               return "<h".$h.">".$data."</h".$h.">";
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Unordered List
+ *
+ * Generates an HTML unordered list from an single or multi-dimensional array.
+ *
+ * @access     public
+ * @param      array
+ * @param      mixed
+ * @return     string
+ */
+if ( ! function_exists('ul'))
+{
+       function ul($list, $attributes = '')
+       {
+               return _list('ul', $list, $attributes);
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Ordered List
+ *
+ * Generates an HTML ordered list from an single or multi-dimensional array.
+ *
+ * @access     public
+ * @param      array
+ * @param      mixed
+ * @return     string
+ */
+if ( ! function_exists('ol'))
+{
+       function ol($list, $attributes = '')
+       {
+               return _list('ol', $list, $attributes);
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Generates the list
+ *
+ * Generates an HTML ordered list from an single or multi-dimensional array.
+ *
+ * @access     private
+ * @param      string
+ * @param      mixed
+ * @param      mixed
+ * @param      integer
+ * @return     string
+ */
+if ( ! function_exists('_list'))
+{
+       function _list($type = 'ul', $list, $attributes = '', $depth = 0)
+       {
+               // If an array wasn't submitted there's nothing to do...
+               if ( ! is_array($list))
+               {
+                       return $list;
+               }
+
+               // Set the indentation based on the depth
+               $out = str_repeat(" ", $depth);
+
+               // Were any attributes submitted?  If so generate a string
+               if (is_array($attributes))
+               {
+                       $atts = '';
+                       foreach ($attributes as $key => $val)
+                       {
+                               $atts .= ' ' . $key . '="' . $val . '"';
+                       }
+                       $attributes = $atts;
+               }
+
+               // Write the opening list tag
+               $out .= "<".$type.$attributes.">\n";
+
+               // Cycle through the list elements.  If an array is
+               // encountered we will recursively call _list()
+
+               static $_last_list_item = '';
+               foreach ($list as $key => $val)
+               {
+                       $_last_list_item = $key;
+
+                       $out .= str_repeat(" ", $depth + 2);
+                       $out .= "<li>";
+
+                       if ( ! is_array($val))
+                       {
+                               $out .= $val;
+                       }
+                       else
+                       {
+                               $out .= $_last_list_item."\n";
+                               $out .= _list($type, $val, '', $depth + 4);
+                               $out .= str_repeat(" ", $depth + 2);
+                       }
+
+                       $out .= "</li>\n";
+               }
+
+               // Set the indentation for the closing tag
+               $out .= str_repeat(" ", $depth);
+
+               // Write the closing list tag
+               $out .= "</".$type.">\n";
+
+               return $out;
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Generates HTML BR tags based on number supplied
+ *
+ * @access     public
+ * @param      integer
+ * @return     string
+ */
+if ( ! function_exists('br'))
+{
+       function br($num = 1)
+       {
+               return str_repeat("<br />", $num);
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Image
+ *
+ * Generates an <img /> element
+ *
+ * @access     public
+ * @param      mixed
+ * @return     string
+ */
+if ( ! function_exists('img'))
+{
+       function img($src = '', $index_page = FALSE)
+       {
+               if ( ! is_array($src) )
+               {
+                       $src = array('src' => $src);
+               }
+
+               // If there is no alt attribute defined, set it to an empty string
+               if ( ! isset($src['alt']))
+               {
+                       $src['alt'] = '';
+               }
+
+               $img = '<img';
+
+               foreach ($src as $k=>$v)
+               {
+
+                       if ($k == 'src' AND strpos($v, '://') === FALSE)
+                       {
+                               $CI =& get_instance();
+
+                               if ($index_page === TRUE)
+                               {
+                                       $img .= ' src="'.$CI->config->site_url($v).'"';
+                               }
+                               else
+                               {
+                                       $img .= ' src="'.$CI->config->slash_item('base_url').$v.'"';
+                               }
+                       }
+                       else
+                       {
+                               $img .= " $k=\"$v\"";
+                       }
+               }
+
+               $img .= '/>';
+
+               return $img;
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Doctype
+ *
+ * Generates a page document type declaration
+ *
+ * Valid options are xhtml-11, xhtml-strict, xhtml-trans, xhtml-frame,
+ * html4-strict, html4-trans, and html4-frame.  Values are saved in the
+ * doctypes config file.
+ *
+ * @access     public
+ * @param      string  type    The doctype to be generated
+ * @return     string
+ */
+if ( ! function_exists('doctype'))
+{
+       function doctype($type = 'xhtml1-strict')
+       {
+               global $_doctypes;
+
+               if ( ! is_array($_doctypes))
+               {
+                       if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/doctypes'.EXT))
+                       {
+                               include(APPPATH.'config/'.ENVIRONMENT.'/doctypes'.EXT);
+                       }
+                       elseif (is_file(APPPATH.'config/doctypes'.EXT))
+                       {
+                               include(APPPATH.'config/doctypes'.EXT);
+                       }
+
+                       if ( ! is_array($_doctypes))
+                       {
+                               return FALSE;
+                       }
+               }
+
+               if (isset($_doctypes[$type]))
+               {
+                       return $_doctypes[$type];
+               }
+               else
+               {
+                       return FALSE;
+               }
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Link
+ *
+ * Generates link to a CSS file
+ *
+ * @access     public
+ * @param      mixed   stylesheet hrefs or an array
+ * @param      string  rel
+ * @param      string  type
+ * @param      string  title
+ * @param      string  media
+ * @param      boolean should index_page be added to the css path
+ * @return     string
+ */
+if ( ! function_exists('link_tag'))
+{
+       function link_tag($href = '', $rel = 'stylesheet', $type = 'text/css', $title = '', $media = '', $index_page = FALSE)
+       {
+               $CI =& get_instance();
+
+               $link = '<link ';
+
+               if (is_array($href))
+               {
+                       foreach ($href as $k=>$v)
+                       {
+                               if ($k == 'href' AND strpos($v, '://') === FALSE)
+                               {
+                                       if ($index_page === TRUE)
+                                       {
+                                               $link .= 'href="'.$CI->config->site_url($v).'" ';
+                                       }
+                                       else
+                                       {
+                                               $link .= 'href="'.$CI->config->slash_item('base_url').$v.'" ';
+                                       }
+                               }
+                               else
+                               {
+                                       $link .= "$k=\"$v\" ";
+                               }
+                       }
+
+                       $link .= "/>";
+               }
+               else
+               {
+                       if ( strpos($href, '://') !== FALSE)
+                       {
+                               $link .= 'href="'.$href.'" ';
+                       }
+                       elseif ($index_page === TRUE)
+                       {
+                               $link .= 'href="'.$CI->config->site_url($href).'" ';
+                       }
+                       else
+                       {
+                               $link .= 'href="'.$CI->config->slash_item('base_url').$href.'" ';
+                       }
+
+                       $link .= 'rel="'.$rel.'" type="'.$type.'" ';
+
+                       if ($media      != '')
+                       {
+                               $link .= 'media="'.$media.'" ';
+                       }
+
+                       if ($title      != '')
+                       {
+                               $link .= 'title="'.$title.'" ';
+                       }
+
+                       $link .= '/>';
+               }
+
+
+               return $link;
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Generates meta tags from an array of key/values
+ *
+ * @access     public
+ * @param      array
+ * @return     string
+ */
+if ( ! function_exists('meta'))
+{
+       function meta($name = '', $content = '', $type = 'name', $newline = "\n")
+       {
+               // Since we allow the data to be passes as a string, a simple array
+               // or a multidimensional one, we need to do a little prepping.
+               if ( ! is_array($name))
+               {
+                       $name = array(array('name' => $name, 'content' => $content, 'type' => $type, 'newline' => $newline));
+               }
+               else
+               {
+                       // Turn single array into multidimensional
+                       if (isset($name['name']))
+                       {
+                               $name = array($name);
+                       }
+               }
+
+               $str = '';
+               foreach ($name as $meta)
+               {
+                       $type           = ( ! isset($meta['type']) OR $meta['type'] == 'name') ? 'name' : 'http-equiv';
+                       $name           = ( ! isset($meta['name']))             ? ''    : $meta['name'];
+                       $content        = ( ! isset($meta['content']))  ? ''    : $meta['content'];
+                       $newline        = ( ! isset($meta['newline']))  ? "\n"  : $meta['newline'];
+
+                       $str .= '<meta '.$type.'="'.$name.'" content="'.$content.'" />'.$newline;
+               }
+
+               return $str;
+       }
+}
+
+// ------------------------------------------------------------------------
+
+/**
+ * Generates non-breaking space entities based on number supplied
+ *
+ * @access     public
+ * @param      integer
+ * @return     string
+ */
+if ( ! function_exists('nbs'))
+{
+       function nbs($num = 1)
+       {
+               return str_repeat("&nbsp;", $num);
+       }
+}
+
+
+/* End of file html_helper.php */
+/* Location: ./system/helpers/html_helper.php */
\ No newline at end of file