Class Kohana_HTML

Kohana_HTML

HTML helper class. Provides generic methods for generating various HTML tags and making output HTML safe.

package
Kohana
category
Helpers
author
Kohana Team
copyright
(c) Kohana Team
license
https://koseven.ga/LICENSE.md


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="&#109;&#097;&#105;&#108;&#116;&#111;&#058;'.$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).' />';
}

Do you want to contribute to Koseven?

We need YOUR help!

This project is open source. What does this mean? YOU can help:
  • Found a bug? Report it on Github
  • Need a feature? Add it Here
  • Want to help? Join the Forum
Go to Github