Overslaan en naar de inhoud gaan

Broodkruimeltjespad

Behalve dat het een geweldigwoord is om op je Wordfeud bordje te leggen, is de functie van het broodkruimelpad op websites allang afgedwaald van het sprookje waar het oorspronkelijk uit kwam. Hans en Grietje strooien broodkruimels in het bos om hun weg terug te vinden van waar ze vandaan kwamen, het is dus een soort geschiedenis van waar ze geweest waren.

Daar gaat het nu bij websites veelal verkeerd, die tonen niet de geschiedenis van een gebruiker maar een representatie van de structuur van de website vanaf de pagina terug naar de home. Nu valt daar zeker wel wat voor te zeggen, maar toch heb ik nu in deze site een ander soort broodkruimelpad gebouwd. Eentje die werkt op basis van de 4 laatst bezochten pagina’s. Immers, wil je naar de voorpagina dan kan je gewoon op het logo drukken. Wil je een ander onderdeel van de site bezoeken dan klik je gewoon op het menu. Het broodkruimelpad op deze website dient nu dus echt alleen als browse-geschiedenis. Een klein experimentje dus. Commentaar welkom.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?php
/**
 * @file
 * Main file for the session_breadcrumb module.
 */
 
function session_breadcrumbs_init() {
  session_start();
  if (!isset($_SESSION['breadcrumbs'])) {
    $_SESSION['breadcrumbs'] = array();
  }
}
 
/**
 * Implements hook_theme_registry_alter().
 */
function session_breadcrumbs_theme_registry_alter(&$theme_registry) {
  $theme_registry['breadcrumb_original'] = $theme_registry['breadcrumb'];
  $theme_registry['breadcrumb']['function'] = 'session_breadcrumbs_get_themed_breadcrumbs';
}
 
/**
 * Generate the breadcrumbs
 *
 * @return array|boolean
 */
function session_breadcrumbs_get_breadcrumbs() {
  $breadcrumbs = session_breadcrumbs_session_handler();
  return array('breadcrumb' => $breadcrumbs);
}
 
/**
 * Get themed breadcrumbs, which content may be overruled.
 *
 * @param array $original_breadcrumbs
 * @return string
 */
function session_breadcrumbs_get_themed_breadcrumbs($original_breadcrumbs) {
  $breadcrumbs = session_breadcrumbs_get_breadcrumbs();
  if (is_array($breadcrumbs)) {
    return theme('breadcrumb_original', $breadcrumbs);
  }
  return theme('breadcrumb_original', $original_breadcrumbs);
}
 
/**
 * Handles the session breadcrumb array.
 *
 * @param int $limit
 * @return array
 */
function session_breadcrumbs_session_handler($limit = 3) {
  $session_count = count($_SESSION['breadcrumbs']);
  if ($session_count > $limit) {
    array_shift($_SESSION['breadcrumbs']);
  }
 
  if (drupal_is_front_page()) {
    if (end($_SESSION['breadcrumbs']) != l(t('Home'), '<front>')) {
      array_push($_SESSION['breadcrumbs'], l(t('Home'), '<front>'));
    }
  }
  else {
    if (end($_SESSION['breadcrumbs']) != l(drupal_get_title(), $_GET['q'])) {
      array_push($_SESSION['breadcrumbs'], l(drupal_get_title(), $_GET['q']));
    }
  }
 
  return $_SESSION['breadcrumbs'];
}

function davidvandijk_breadcrumb($variables) {
  $breadcrumb = $variables['breadcrumb'];
  $breadcrumb_separator = theme_get_setting('zen_breadcrumb_separator');
  $trailing_separator = $title = '';
  return '<div class="breadcrumb">' . implode($breadcrumb_separator, $breadcrumb) . $trailing_separator . $title . '</div>';
}