Kohana_HTML
HTML helper class. Provides generic methods for generating various HTML tags and making output HTML safe.
Constants
- None
Properties
Properties
-
public static array $attribute_order
-
preferred order of attributes
-
array(28) ( 0 => string(6) "action" 1 => string(6) "method" 2 => string(4) "type" 3 => string(2) "id" 4 => string(4) "name" 5 => string(5) "value" 6 => string(4) "href" 7 => string(3) "src" 8 => string(5) "width" 9 => string(6) "height" 10 => string(4) "cols" 11 => string(4) "rows" 12 => string(4) "size" 13 => string(9) "maxlength" 14 => string(3) "rel" 15 => string(5) "media" 16 => string(14) "accept-charset" 17 => string(6) "accept" 18 => string(8) "tabindex" 19 => string(9) "accesskey" 20 => string(3) "alt" 21 => string(5) "title" 22 => string(5) "class" 23 => string(5) "style" 24 => string(8) "selected" 25 => string(7) "checked" 26 => string(8) "readonly" 27 => string(8) "disabled" )
-
public static boolean $strict
-
use strict XHTML mode?
-
bool TRUE
-
public static boolean $windowed_urls
-
automatically target external URLs to a new window?
-
bool FALSE
Methods
public static anchor(string $uri [, string $title = NULL , array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool TRUE ] ) (defined in Kohana_HTML)
Create HTML link anchors. Note that the title is not escaped, to allow HTML elements within links (images, etc).
echo HTML::anchor('/user/profile', 'My Profile');
Parameters
- string $uri required - URL or URI string
- string $title = NULL - Link text
- array $attributes = NULL - HTML anchor attributes
- mixed $protocol = NULL - Protocol to pass to URL::base()
- boolean $index = bool TRUE - Include the index page
Tags
Return Values
- string
Source Code
public static function anchor($uri, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = TRUE)
{
if ($title === NULL)
{
// Use the URI as the title
$title = $uri;
}
if ($uri === '')
{
// Only use the base URL
$uri = URL::base($protocol, $index);
}
else
{
if (strpos($uri, '://') !== FALSE OR strncmp($uri, '//', 2) == 0)
{
if (HTML::$windowed_urls === TRUE AND empty($attributes['target']))
{
// Make the link open in a new window
$attributes['target'] = '_blank';
}
}
elseif ($uri[0] !== '#' AND $uri[0] !== '?')
{
// Make the URI absolute for non-fragment and non-query anchors
$uri = URL::site($uri, $protocol, $index);
}
}
// Add the sanitized link to the attributes
$attributes['href'] = $uri;
return '<a'.HTML::attributes($attributes).'>'.$title.'</a>';
}
public static attributes([ array $attributes = NULL ] ) (defined in Kohana_HTML)
Compiles an array of HTML attributes into an attribute string. Attributes will be sorted using HTML::$attribute_order for consistency.
echo '<div'.HTML::attributes($attrs).'>'.$content.'</div>';
Parameters
- array $attributes = NULL - Attribute list
Return Values
- string
Source Code
public static function attributes(array $attributes = NULL)
{
if (empty($attributes))
return '';
$sorted = [];
foreach (HTML::$attribute_order as $key)
{
if (isset($attributes[$key]))
{
// Add the attribute to the sorted list
$sorted[$key] = $attributes[$key];
}
}
// Combine the sorted attributes
$attributes = $sorted + $attributes;
$compiled = '';
foreach ($attributes as $key => $value)
{
if ($value === NULL)
{
// Skip attributes that have NULL values
continue;
}
if (is_int($key))
{
// Assume non-associative keys are mirrored attributes
$key = $value;
if ( ! HTML::$strict)
{
// Just use a key
$value = FALSE;
}
}
// Add the attribute key
$compiled .= ' '.$key;
if ($value OR HTML::$strict)
{
// Add the attribute value
$compiled .= '="'.HTML::chars($value).'"';
}
}
return $compiled;
}
public static chars(string $value [, boolean $double_encode = bool TRUE ] ) (defined in Kohana_HTML)
Convert special characters to HTML entities. All untrusted content should be passed through this method to prevent XSS injections.
echo HTML::chars($username);
Parameters
- string $value required - String to convert
- boolean $double_encode = bool TRUE - Encode existing entities
Return Values
- string
Source Code
public static function chars($value, $double_encode = TRUE)
{
return htmlspecialchars( (string) $value, ENT_QUOTES, Kohana::$charset, $double_encode);
}
public static entities(string $value [, boolean $double_encode = bool TRUE ] ) (defined in Kohana_HTML)
Convert all applicable characters to HTML entities. All characters that cannot be represented in HTML with the current character set will be converted to entities.
echo HTML::entities($username);
Parameters
- string $value required - String to convert
- boolean $double_encode = bool TRUE - Encode existing entities
Return Values
- string
Source Code
public static function entities($value, $double_encode = TRUE)
{
return htmlentities( (string) $value, ENT_QUOTES, Kohana::$charset, $double_encode);
}
public static file_anchor(string $file [, string $title = NULL , array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool FALSE ] ) (defined in Kohana_HTML)
Creates an HTML anchor to a file. Note that the title is not escaped, to allow HTML elements within links (images, etc).
echo HTML::file_anchor('media/doc/user_guide.pdf', 'User Guide');
Parameters
- string $file required - Name of file to link to
- string $title = NULL - Link text
- array $attributes = NULL - HTML anchor attributes
- mixed $protocol = NULL - Protocol to pass to URL::base()
- boolean $index = bool FALSE - Include the index page
Tags
Return Values
- string
Source Code
public static function file_anchor($file, $title = NULL, array $attributes = NULL, $protocol = NULL, $index = FALSE)
{
if ($title === NULL)
{
// Use the file name as the title
$title = basename($file);
}
// Add the file link to the attributes
$attributes['href'] = URL::site($file, $protocol, $index);
return '<a'.HTML::attributes($attributes).'>'.$title.'</a>';
}
public static image(string $file [, array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool FALSE ] ) (defined in Kohana_HTML)
Creates a image link.
echo HTML::image('media/img/logo.png', array('alt' => 'My Company'));
Parameters
- string $file required - File name
- array $attributes = NULL - Default attributes
- mixed $protocol = NULL - Protocol to pass to URL::base()
- boolean $index = bool FALSE - Include the index page
Tags
Return Values
- string
Source Code
public static function image($file, array $attributes = NULL, $protocol = NULL, $index = FALSE)
{
if (strpos($file, '://') === FALSE AND strncmp($file, '//', 2) AND strncmp($file, 'data:', 5))
{
// Add the base URL
$file = URL::site($file, $protocol, $index);
}
// Add the image link
$attributes['src'] = $file;
return '<img'.HTML::attributes($attributes).' />';
}
public static mailto(string $email [, string $title = NULL , array $attributes = NULL ] ) (defined in Kohana_HTML)
Creates an email (mailto:) anchor. Note that the title is not escaped, to allow HTML elements within links (images, etc).
echo HTML::mailto($address);
Parameters
- string $email required - Email address to send to
- string $title = NULL - Link text
- array $attributes = NULL - HTML anchor attributes
Tags
Return Values
- string
Source Code
public static function mailto($email, $title = NULL, array $attributes = NULL)
{
if ($title === NULL)
{
// Use the email address as the title
$title = $email;
}
return '<a href="mailto:'.$email.'"'.HTML::attributes($attributes).'>'.$title.'</a>';
}
public static script(string $file [, array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool FALSE ] ) (defined in Kohana_HTML)
Creates a script link.
echo HTML::script('media/js/jquery.min.js');
Parameters
- string $file required - File name
- array $attributes = NULL - Default attributes
- mixed $protocol = NULL - Protocol to pass to URL::base()
- boolean $index = bool FALSE - Include the index page
Tags
Return Values
- string
Source Code
public static function script($file, array $attributes = NULL, $protocol = NULL, $index = FALSE)
{
if (strpos($file, '://') === FALSE AND strncmp($file, '//', 2))
{
// Add the base URL
$file = URL::site($file, $protocol, $index);
}
// Set the script link
$attributes['src'] = $file;
// Set the script type
$attributes['type'] = 'text/javascript';
return '<script'.HTML::attributes($attributes).'></script>';
}
public static style(string $file [, array $attributes = NULL , mixed $protocol = NULL , boolean $index = bool FALSE ] ) (defined in Kohana_HTML)
Creates a style sheet link element.
echo HTML::style('media/css/screen.css');
Parameters
- string $file required - File name
- array $attributes = NULL - Default attributes
- mixed $protocol = NULL - Protocol to pass to URL::base()
- boolean $index = bool FALSE - Include the index page
Tags
Return Values
- string
Source Code
public static function style($file, array $attributes = NULL, $protocol = NULL, $index = FALSE)
{
if (strpos($file, '://') === FALSE AND strncmp($file, '//', 2))
{
// Add the base URL
$file = URL::site($file, $protocol, $index);
}
// Set the stylesheet link
$attributes['href'] = $file;
// Set the stylesheet rel
$attributes['rel'] = empty($attributes['rel']) ? 'stylesheet' : $attributes['rel'];
// Set the stylesheet type
$attributes['type'] = 'text/css';
return '<link'.HTML::attributes($attributes).' />';
}