HTML
› Kohana_HTML
Class Contents
Constants
- None
Properties
HTML helper class. Provides generic methods for generating various HTML tags and making output HTML safe.
Class declared in SYSPATH/classes/html.php on line 3.
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$windowed_urls - automatically target external URLs to a new window?
bool FALSE
Methods
public static anchor( string $uri [, string $title = NULL , array $attributes = NULL , string $protocol = NULL ] )
› 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');
Return Values
string
Source Code
public static function anchor($uri, $title = NULL, array $attributes = NULL, $protocol = NULL)
{
if ($title === NULL)
{
// Use the URI as the title
$title = $uri;
}
if ($uri === '')
{
// Only use the base URL
$uri = URL::base(FALSE, $protocol);
}
else
{
if (strpos($uri, '://') !== FALSE)
{
if (HTML::$windowed_urls === TRUE AND empty($attributes['target']))
{
// Make the link open in a new window
$attributes['target'] = '_blank';
}
}
elseif ($uri[0] !== '#')
{
// Make the URI absolute for non-id anchors
$uri = URL::site($uri, $protocol);
}
}
// Add the sanitized link to the attributes
$attributes['href'] = $uri;
return '<a'.HTML::attributes($attributes).'>'.$title.'</a>';
}
public static attributes( [ array $attributes = NULL ] )
› 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>';
Return Values
string
Source Code
public static function attributes(array $attributes = NULL)
{
if (empty($attributes))
return '';
$sorted = array();
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;
}
// Add the attribute value
$compiled .= ' '.$key.'="'.htmlspecialchars($value, ENT_QUOTES, Kohana::$charset).'"';
}
return $compiled;
}
public static chars( string $value [, boolean $double_encode = bool TRUE ] )
› 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);
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 email( string $email )
› Kohana_HTML
Generates an obfuscated version of an email address. Helps prevent spam robots from finding email addresses.
echo HTML::email($address);
Return Values
string
Source Code
public static function email($email)
{
// Make sure the at sign is always obfuscated
return str_replace('@', '@', HTML::obfuscate($email));
}
public static entities( string $value [, boolean $double_encode = bool TRUE ] )
› 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);
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 , string $protocol = NULL ] )
› 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');
Return Values
string
Source Code
public static function file_anchor($file, $title = NULL, array $attributes = NULL, $protocol = NULL)
{
if ($title === NULL)
{
// Use the file name as the title
$title = basename($file);
}
// Add the file link to the attributes
$attributes['href'] = URL::base(FALSE, $protocol).$file;
return '<a'.HTML::attributes($attributes).'>'.$title.'</a>';
}
public static image( string $file [, array $attributes = NULL , $index = bool FALSE ] )
› Kohana_HTML
Creates a image link.
echo HTML::image('media/img/logo.png', array('alt' => 'My Company'));
Return Values
string
Source Code
public static function image($file, array $attributes = NULL, $index = FALSE)
{
if (strpos($file, '://') === FALSE)
{
// Add the base URL
$file = URL::base($index).$file;
}
// Add the image link
$attributes['src'] = $file;
return '<img'.HTML::attributes($attributes).' />';
}
public static mailto( string $email [, string $title = NULL , array $attributes = NULL ] )
› 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);
Return Values
string
Source Code
public static function mailto($email, $title = NULL, array $attributes = NULL)
{
// Obfuscate email address
$email = HTML::email($email);
if ($title === NULL)
{
// Use the email address as the title
$title = $email;
}
return '<a href="mailto:'.$email.'"'.HTML::attributes($attributes).'>'.$title.'</a>';
}
public static obfuscate( string $string )
› Kohana_HTML
Generates an obfuscated version of a string. Text passed through this method is less likely to be read by web crawlers and robots, which can be helpful for spam prevention, but can prevent legitimate robots from reading your content.
echo HTML::obfuscate($text);
Return Values
string
Source Code
public static function obfuscate($string)
{
$safe = '';
foreach (str_split($string) as $letter)
{
switch (rand(1, 3))
{
// HTML entity code
case 1: $safe .= '&#'.ord($letter).';'; break;
// Hex character code
case 2: $safe .= '&#x'.dechex(ord($letter)).';'; break;
// Raw (no) encoding
case 3: $safe .= $letter;
}
}
return $safe;
}
public static script( string $file [, array $attributes = NULL , boolean $index = bool FALSE ] )
› Kohana_HTML
Creates a script link.
echo HTML::script('media/js/jquery.min.js');
Return Values
string
Source Code
public static function script($file, array $attributes = NULL, $index = FALSE)
{
if (strpos($file, '://') === FALSE)
{
// Add the base URL
$file = URL::base($index).$file;
}
// 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 , boolean $index = bool FALSE ] )
› Kohana_HTML
Creates a style sheet link element.
echo HTML::style('media/css/screen.css');
Return Values
string
Source Code
public static function style($file, array $attributes = NULL, $index = FALSE)
{
if (strpos($file, '://') === FALSE)
{
// Add the base URL
$file = URL::base($index).$file;
}
// Set the stylesheet link
$attributes['href'] = $file;
// Set the stylesheet rel
$attributes['rel'] = 'stylesheet';
// Set the stylesheet type
$attributes['type'] = 'text/css';
return '<link'.HTML::attributes($attributes).' />';
}