Breadcrumb Trail for Category Section Editor
10 posts by 4 authors in: Forums > CMS Builder
Last Post: April 4, 2011 (RSS)
Just looking for some instructions on how to implement a breadcrumb trail for a category section editor.
Have done some digging and have not found anything yet.
Many Thanks
Re: [aquaman] Breadcrumb Trail for Category Section Editor
By Chris - August 20, 2010
There's a 'breadcrumb' field for category records which might be useful to you.
If you need something more involved, you can use the 'lineage' and/or 'parentNum' fields to identify which records should be in your breadcrumb trail.
If you can explain exactly what it is you want to accomplish, I can give you some sample code. :)
I hope this helps. Please let me know if you have any questions.
Chris
Re: [chris] Breadcrumb Trail for Category Section Editor
I have a category section setup for my pages. See attached screenshot of setup.
Breadcrumb code would be like so:
<a href="/">Home</a> <span>›</span> <a href="top-level-link">Top Level Name</a> <span>›</span> Second Level Name
cheers
Re: [aquaman] Breadcrumb Trail for Category Section Editor
By Chris - August 23, 2010 - edited: August 23, 2010
The following PHP would generate breadcrumb HTML as you've provided above:
<?php
$categoriesRecordsByNum = array_combine(array_pluck($categoriesRecords, "num"), $categoriesRecords);
$lineage = explode("\t", trim(preg_replace("/:/", "\t", $selectedCategory['lineage'])));
$parents = array();
foreach ($lineage as $parentCatNum) {
$parents[] = $categoriesRecordsByNum[$parentCatNum];
}
?>
<a href="/">Home</a>
<?php foreach($parents as $parent): ?>
<span>›</span>
<?php if ($parent === $selectedCategory): ?>
<?php echo $parent['name'] ?>
<?php else: ?>
<a href="<?php echo $parent['_link'] ?>"><?php echo $parent['name'] ?></a>
<?php endif ?>
<?php endforeach ?>
This code assumes that your variables are called $categoriesRecords and $selectedCategory (highlighted in red above.) If they're not, you can change the variables in red to match your variable names.
Does this help? Please let me know if you have any questions.
Chris
Re: [chris] Breadcrumb Trail for Category Section Editor
Top level page - works fine:
http://turnerhopkins.theclicklab.com/areas-of-practice-5/
Home > Areas of Practice
Second level page - missing top level item:
http://turnerhopkins.theclicklab.com/commercial-property-6/
should be Home > Areas of Practice > Commercial Property instead of Home > Commercial Property
Also, this second level page has the following error:
http://turnerhopkins.theclicklab.com/debt-recovery-16/
Notice: Undefined index: 1 in /home/turnerhopk/turnerhopkins.co.nz/page.php on line 71
Have attached the php file so you can see the code starting on line 55
Any suggestions?
Many thanks,
Jan
Re: [aquaman] Breadcrumb Trail for Category Section Editor
By Chris - August 23, 2010
The code I wrote requires $selectedCategory to be a fully-fledged record, not a record num. Also, since the code tests for equality, it'll need to be from the same record set as the results from getCategories().
Change the following code in red:
<?php
// load records for breadcrumb
list($pagesRecords, $selectedCategory) = getCategories(array(
'tableName' => 'pages',
'selectedCategoryNum' => '', // defaults to getNumberFromEndOfUrl()
'debugSql' => 'true',
));
?>
<?php
$selectedCategory=$pagesRecord['num'];
Does that help? Please let me know if you have any questions.
Chris
Re: [Chris] Breadcrumb Trail for Category Section Editor
By terryally - April 1, 2011
I do not fully understand this i.e. the $categoriesRecords and $selectedCategory variables.
Are you saying that if I had a section editor named "Education" it would be my category and my variable would become $educationRecords?
Then the variable name for $selectedCategory would be $education?
Terry
<?php
$categoriesRecordsByNum = array_combine(array_pluck($categoriesRecords, "num"), $categoriesRecords);
$lineage = explode("\t", trim(preg_replace("/:/", "\t", $selectedCategory['lineage'])));
$parents = array();
foreach ($lineage as $parentCatNum) {
$parents[] = $categoriesRecordsByNum[$parentCatNum];
}
?>
<a href="/">Home</a>
<?php foreach($parents as $parent): ?>
<span>›</span>
<?php if ($parent === $selectedCategory): ?>
<?php echo $parent['name'] ?>
<?php else: ?>
<a href="<?php echo $parent['_link'] ?>"><?php echo $parent['name'] ?></a>
<?php endif ?>
<?php endforeach ?>
This code assumes that your variables are called $categoriesRecords and $selectedCategory (highlighted in red above.) If they're not, you can change the variables in red to match your variable names.
Re: [terryally] Breadcrumb Trail for Category Section Editor
By Jason - April 1, 2011
The variables $categoriesRecords and $selectedCategory are the two variables you get as a result of using the getCategories Function.
For example:
list($categoriesRecords, $selectedCategory) = getCategories(array(
'tableName' => 'my_categories'
));
In this example, "my_categories" would be the name of my section. The code you're showing will only work if the section you're using is a category section.
Hope this helps clarify. Please let me know if you have any other questions.
Jason Sauchuk - Project Manager
interactivetools.com
Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/
Re: [Jason] Breadcrumb Trail for Category Section Editor
By terryally - April 1, 2011 - edited: April 3, 2011
I
Thanks.
Terry
Re: [terryally] Breadcrumb Trail for Category Section Editor
By Jason - April 4, 2011
Glad that helped. Please let us know if you have any other questions.
Thanks
Jason Sauchuk - Project Manager
interactivetools.com
Hire me! Save time by getting our experts to help with your project.
http://www.interactivetools.com/consulting/