On this page

Helpers

HeadLink

The HTML <link> element is increasingly used for linking a variety of resources for your site: stylesheets, feeds, favicons, trackbacks, and more. The HeadLink helper provides a simple interface for creating and aggregating these elements for later retrieval and output in your layout script.

The HeadLink helper has special methods for adding stylesheet links to its stack:

  • appendStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = [])
  • offsetSetStylesheet($index, $href, $media = 'screen', $conditionalStylesheet = '', $extras = [])
  • prependStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = [])
  • setStylesheet($href, $media = 'screen', $conditionalStylesheet = '', $extras = [])

The $media value defaults to 'screen', but may be any valid media value. $conditionalStylesheet is a string or boolean false, and will be used at rendering time to determine if special comments should be included to prevent loading of the stylesheet on certain platforms. $extras is an array of any extra values that you want to be added to the tag.

Additionally, the HeadLink helper has special methods for adding 'alternate' links to its stack:

  • appendAlternate($href, $type, $title, $extras = [])
  • offsetSetAlternate($index, $href, $type, $title, $extras = [])
  • prependAlternate($href, $type, $title, $extras = [])
  • setAlternate($href, $type, $title, $extras = [])

The headLink() helper method allows specifying all attributes necessary for a <link> element, and allows you to also specify placement: whether the new element replaces all others, prepends (top of stack), or appends (end of stack).

The HeadLink helper is a concrete implementation of the Placeholder helper.

Basic Usage

You may specify a headLink at any time. Typically, you will specify global links in your layout script, and application specific links in your application view scripts. In your layout script, in the <head> section, you will then echo the helper to output it.

<?php
// setting links in a view script:
$this->headLink(['rel' => 'icon', 'href' => '/img/favicon.ico'], 'PREPEND')
     ->appendStylesheet('/styles/basic.css')
     ->prependStylesheet(
         '/styles/moz.css',
         'screen',
         true,
         ['id' => 'my_stylesheet']
     );

// rendering the links from the layout:
echo $this->headLink();
?>

Output:

<link href="/styles/moz.css" media="screen" rel="stylesheet" type="text/css" id="my_stylesheet">
<link href="/img/favicon.ico" rel="icon">
<link href="/styles/basic.css" media="screen" rel="stylesheet" type="text/css">