HTML
Kohana_HTML

Class Contents

Class declared in SYSPATH/classes/html.php on line 3.

Properties

public static $attribute_order
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 $windowed_urls
bool FALSE

Methods

public static anchor( )
Kohana_HTML

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( )
Kohana_HTML

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.'="'.HTML::chars($value).'"';
	}

	return $compiled;
}

public static chars( )
Kohana_HTML

Source Code
public static function chars($value, $double_encode = TRUE)
{
	return htmlspecialchars( (string) $value, ENT_QUOTES, Kohana::$charset, $double_encode);
}

public static email( )
Kohana_HTML

Source Code
public static function email($email)
{
	// Make sure the at sign is always obfuscated
	return str_replace('@', '&#64;', HTML::obfuscate($email));
}

public static entities( )
Kohana_HTML

Source Code
public static function entities($value, $double_encode = TRUE)
{
	return htmlentities( (string) $value, ENT_QUOTES, Kohana::$charset, $double_encode);
}

public static file_anchor( )
Kohana_HTML

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( )
Kohana_HTML

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( )
Kohana_HTML

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="&#109;&#097;&#105;&#108;&#116;&#111;&#058;'.$email.'"'.HTML::attributes($attributes).'>'.$title.'</a>';
}

public static obfuscate( )
Kohana_HTML

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( )
Kohana_HTML

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( )
Kohana_HTML

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).' />';
}