Version: 1.0
Type: Function
Category: Other
License: GNU General Public License
Description: A PHP function *without* database, that displays a clickable, breadcrumbs style navigation item: home > gallery > my gallery
<?php /*----------------------------------------------------------------------------------- #Filename: trail.txt #Author and format of any credits: "Russ Michell 2002 [email protected] - www.theruss.com" #Status: Freeware - that means you can use this script wherever you want for nowt. #Please ensure credits are intact or pasted into wherever you wish to use this code. #I, Russ Michell, take no responsibility whatsoever for *any* problems arising through #the use/deployment of this code. #Enjoy! Russ. -------------------------------------------------------------------------------------*/ //Calling the function and echoing to the page: //--------------------------------------------- #1). Call the genTrail() function in each page thus: (For a STATIC page) $pageTrail = "About this site"; genTrail('index','.php',$pageTrail,'',''); #2). Call the genTrail() function in each page thus: (For a DYNAMIC page) $pageTrail = "gallerys"; genTrail('index','.php',$pageTrail,$galleryID,$GalleryName); //Function to abbreviate the text that the genTrail() function below prints: //Name: "abbr()" Abbreviate text string for display purposes //Arg1: '$str' the test string to be shortened //Arg2: '$len' the length the string should be after shortening function abbr($str,$len) { //Next two lines removes any html tags: $str = htmlspecialchars($str); //Only if the length of $str is > $len, will $str require shortening: if (strlen($str) > $len) { $str = substr($str,0,$len) . '...'; } return $str; } //The gentrail() function itself: //Name: genTrail() - Generate a trail for breadcrumbs navigation. //Arg1: '$index' A string - the name of your index page: index,default,home etc //Arg2: '$suf' A string - the file suffix of site's pages: .php,.htm,.html etc //Arg3: '$pageTrail' A string of the format: "about|about<sublevelname> (if used)"; //Arg4: '$query1' An [optional] string: if $query1 then display on basis of $query2 //Arg5: '$query2' An [optional] string: if $query1 then display $query2 function genTrail($index,$suf,$pageTrail,$query1,$query2) { //Used when function is called from an include/library file global $trail; //If a variable needs to be set to display DB content, deal with it: if($query1) { $pageTrail = "$pageTrail|$query2"; } else { $pageTrail = "$pageTrail"; } //Initiate the $trail variable text: $trail = "<strong class='trail'>you're @:</strong> <a title='Home.' href='$index$suf'>home</a>"; //Create an array to loop thru from '$pageTrail': $array = explode("|",$pageTrail); //Get last element & remove from array (displayed later at end of trail) $last = strtolower(array_pop($array)); //Loop thru array and add re-formatted last element ('$lastElement') to $trail: foreach($array as $val) { //Make all displayed text, lower case: $val = strtolower($val); //Check $pageTrail for whitespace ('about us' for example) use first as link: if(preg_match("/ /",$val)) { $valArr = explode(" ",$val); //Take first element as the link text: $trail .= " > <a title='$val.' href='$valArr[0]$suf'>" . abbr($val,25) . "</a>"; } else { $trail .= " > <a title='$val.' href='$val$suf'>" . abbr($val,25) . "</a>"; } } //Display trail to page (including a '>') & add last element ('$last') to $trail: $trail .= " > <strong class='trail'>" . abbr($last,25) . "</strong>"; return $trail; } ?>