Reputation: 44293
hey guys, i'm working on a very simple breadcrumb-path solution, however i have one little thing that kind of bugs me.
PATH is e.g. folder/subfolder/subsubfolder i'm simply splitting the PATH and i'm creating links to it. really simpel.
// breadcrumb path
$crumb = explode("/", PATH);
if (PATH != 'root' && realpath(PATH)) {
print "<div class='breadcrumbs'>";
$newpath = '';
foreach($crumb as $value) {
$newpath .= $value;
print "<a href='" . QUERY . $newpath ."'>$value</a> > ";
$newpath .= '/';
}
print "</div>";
}
however the only thing that bugs me is that the breadcrumb path looks like this:
folder > subfolder > subsubfolder >
can you see the > at the end. even though there is not another subsubsubfolder there i'm getting this > arrow. of course it's currently set that way, however i cannot think of an easy solution to get rid of the last arrow.
thank you for your help
Upvotes: 1
Views: 1095
Reputation: 44346
Here you go:
// breadcrumb path
$crumb = explode("/", PATH);
if (PATH != 'root' && realpath(PATH)) {
print "<div class='breadcrumbs'>";
$newpath = '';
foreach($crumb as $index => $value) {
$newpath .= $value;
// is not last item //
if($index < count($crumb)-1)
print "<a href='" . QUERY . $newpath ."'>$value</a> > ";
// it is last item //
else
print $value;
$newpath .= '/';
}
print "</div>";
}
Also try to use more suggestive names for your variables.
Upvotes: 2
Reputation: 19718
Change your code to (not tested!):
// breadcrumb path
$crumb = explode("/", PATH);
if (PATH != 'root' && realpath(PATH)) {
print "<div class='breadcrumbs'>";
$newpath = '';
foreach($crumb as $key=>$value) {
$newpath .= $value;
print "<a href='" . QUERY . $newpath ."'>$value</a>";
if($key!= (count($crumb)-1) )print "> "
$newpath .= '/';
}
print "</div>";
}
Upvotes: 0