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.
array
$attribute_orderlink to thispreferred 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" )
boolean
$strictlink to thisuse strict XHTML mode?
bool TRUE
boolean
$windowed_urlslink to thisautomatically target external URLs to a new window?
bool FALSE
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'
);
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 string
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) {
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>'
;
}
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>'
;
array
$attributes
= NULL - Attribute list string
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
;
}
Convert special characters to HTML entities. All untrusted content should be passed through this method to prevent XSS injections.
echo
HTML::chars(
$username
);
string
$value
required - String to convert boolean
$double_encode
= bool TRUE - Encode existing entities string
public
static
function
chars(
$value
,
$double_encode
= true)
{
return
htmlspecialchars((string)
$value
, ENT_QUOTES, Kohana::
$charset
,
$double_encode
);
}
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
);
string
$value
required - String to convert boolean
$double_encode
= bool TRUE - Encode existing entities string
public
static
function
entities(
$value
,
$double_encode
= true)
{
return
htmlentities((string)
$value
, ENT_QUOTES, Kohana::
$charset
,
$double_encode
);
}
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'
);
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 string
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>'
;
}
Creates a image link.
echo
HTML::image(
'media/img/logo.png'
, [
'alt'
=>
'My Company'
]);
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 string
public
static
function
image(
$file
,
array
$attributes
= null,
$protocol
= null,
$index
= false)
{
if
(
strpos
(
$file
,
'://'
) === false) {
// Add the base URL
$file
= URL::site(
$file
,
$protocol
,
$index
);
}
// Add the image link
$attributes
[
'src'
] =
$file
;
return
'<img'
. HTML::attributes(
$attributes
) .
' />'
;
}
Creates an email (mailto:) anchor. Note that the title is not escaped, to allow HTML elements within links (images, etc).
echo
HTML::mailto(
$address
);
string
$email
required - Email address to send to string
$title
= NULL - Link text array
$attributes
= NULL - HTML anchor attributes string
public
static
function
mailto(
,
$title
= null,
array
$attributes
= null)
{
if
(
$title
=== null) {
// Use the email address as the title
$title
=
;
}
return
'<a href="mailto:'
.
.
'"'
. HTML::attributes(
$attributes
) .
'>'
.
$title
.
'</a>'
;
}
Creates a script link.
echo
HTML::script(
'media/js/jquery.min.js'
);
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 string
public
static
function
script(
$file
,
array
$attributes
= null,
$protocol
= null,
$index
= false)
{
if
(
strpos
(
$file
,
'://'
) === false AND
strpos
(
$file
,
'//'
) !== 0) {
// 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>'
;
}
Creates a style sheet link element.
echo
HTML::style(
'media/css/screen.css'
);
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 string
public
static
function
style(
$file
,
array
$attributes
= null,
$protocol
= null,
$index
= false)
{
if
(
strpos
(
$file
,
'://'
) === false AND
strpos
(
$file
,
'//'
) !== 0) {
// 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
) .
' />'
;
}