We would like to use an accordion function in a SilverStripe website similar to http://www.lifeway.ac.nz/3d-animation/, but are not sure how this would be set up to allow editing in the CMS. Has this been done before or are there any ideas?
We've moved the forum!
Please use forum.silverstripe.org for any new questions
(announcement).
The forum archive will stick around, but will be read only.
You can also use our Slack channel
or StackOverflow to ask for help.
Check out our community overview for more options to contribute.
An accordion can be realized with just templates, css and javascript. As for the CMS: You could simply create sub-pages for each of the accordion panes. Then output it in your template like so:
<% if Children %>
<div class="accordion">
<% control Children %>
<div>
<h2 class="accordion-header">$Title</h2>
$Content
</div>
<% end_control %>
<div>
<% end_if %>
That would output the contents of all child-pages of the current page. Then it's just a matter of applying CSS and JavaScript for a fully working accordion.
Edit: if there are only small amounts of content in the accordion tabs, you could also use something like a has_many relation or even enter the required code inside the editor. There are quite a lot of possible solutions.. it's all a matter of taste.
On a second thought, the has_many relation is probably even better than my first solution, since it won't actually require a page for each accordion pane (therefore not polluting the url names)
Thank you, brilliant