Example #1
0
<?php

/**
 * !
 * Displays breadcrumbs.
 *
 * @package Elgg
 * @subpackage Core
 *
 * @uses $vars['breadcrumbs'] (Optional) Array of arrays with keys 'title' and 'link'
 * @uses $vars['class']
 *
 * @see elgg_push_breadcrumb
 */
$breadcrumbs = elgg_extract('breadcrumbs', $vars, elgg_get_breadcrumbs());
$additional_class = elgg_extract('class', $vars, '');
$class = 'breadcrumb elgg-menu elgg-breadcrumbs';
if ($additional_class) {
    $class = "{$class} {$additional_class}";
}
if (is_array($breadcrumbs) && !empty($breadcrumbs)) {
    echo "<ul class=\"{$class}\">";
    foreach ($breadcrumbs as $breadcrumb) {
        $divider = '<span class="divider">/</span> ';
        if (!empty($breadcrumb['link'])) {
            $crumb = elgg_view('output/url', array('href' => $breadcrumb['link'], 'text' => $breadcrumb['title'], 'is_trusted' => true));
            echo "<li>{$divider} {$crumb}</li>";
        } else {
            $crumb = $breadcrumb['title'];
            echo "<li class=\"active\">{$divider} {$crumb}</li>";
        }
 public function testCrumbsAreExcerpted()
 {
     $this->markTestIncomplete('Needs DB');
     elgg_push_breadcrumb(str_repeat('abcd ', 100));
     $this->assertEquals(array(array('title' => elgg_get_excerpt(str_repeat('abcd ', 100), 100), 'link' => null)), elgg_get_breadcrumbs());
 }
/**
 * Displays breadcrumbs.
 *
 * @package Elgg
 * @subpackage Core
 *
 * @uses $vars['breadcrumbs'] (Optional) Array of arrays with keys 'title' and 'link'
 * @uses $vars['class']
 *
 * @see elgg_push_breadcrumb
 * @see elgg_get_breadcrumbs
 */
if (isset($vars['breadcrumbs'])) {
    $breadcrumbs = $vars['breadcrumbs'];
} else {
    $breadcrumbs = elgg_get_breadcrumbs();
}
$class = 'breadcrumb';
$additional_class = elgg_extract('class', $vars, '');
if ($additional_class) {
    $class = "{$class} {$additional_class}";
}
if (is_array($breadcrumbs) && count($breadcrumbs) > 0) {
    echo '<nav role="navigation" id="wb-bc" property="breadcrumb">';
    echo '<h2>You are here:</h2>';
    echo '<div class="container">';
    echo '<div class="row">';
    echo "<ol class=\"{$class}\">";
    foreach ($breadcrumbs as $breadcrumb) {
        // We have to escape text (without double-encoding). Titles in core plugins are HTML escaped
        // on input, but we can't guarantee that other users of this view and of elgg_push_breadcrumb()