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.
Een voorbeeld van de code staat hieronder.
<?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>'; }














Reacties
Mennn, dat is zoo verwarrend als je dat doet.. :o
Ik bedoel dit wordt toch wel een beetje een raar verhaal: Portfolio « Alles over Luuk « Minecraft..
Als ik mn geschiedenis wil druk ik wel op mn backspace hoor :)
En als je je fontgrootte wilt aanpassen wil je zeker zo'n knop op je website hebben ;). Tis een experimentje, even tegen de gevestigde orde schoppen.
De zwangerschap heeft mijn ogen nog niet dus danig aangetast dat ik daar gebruik van moet maken hahah.
Maare, ik blijf erbij voor gescheidenis is de backbutton, voor orientatie de breadcrumb :) Jakob Nielsen vind dat overigens ook http://www.useit.com/alertbox/breadcrumbs.html.. :P
Then again wie niet waagt wie niet wint...
Nou het is weer teruggezet naar de oude situatie. Het leek een leuk idee maar de sitestructuur werkt toch iets beter. Mede ook omdat in het beheergedeelte ook hetzelfde kruimelpad gebruikt wordt.
Hahah kijk nu ben je weer cool ;)
Dat doet me goed :). Soms moet je gewoon wat dingen uitproberen om erachter te komen dat ze niet werken.
Reactie toevoegen