-
-
Save JonasEriksson/df6890c6703c60710860641452f5d458 to your computer and use it in GitHub Desktop.
Mura CMS : Example of how to create a Frequently Asked Questions (FAQ) area/section with Mura CMS and Bootstrap3 markup.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- | |
1) Drop this in your theme /{SiteID}/includes/themes/{Theme}/config.xml.cfm | |
--> | |
<theme> | |
<extensions> | |
<extension type="Folder" subType="FAQ" availableSubTypes="Page/Question" iconClass="icon-question-sign"> | |
</extension> | |
<extension type="Page" subType="Question" iconClass="icon-question" hasSummary="0" hasBody="0" hasAssocFile="0"> | |
</extension> | |
</extensions> | |
</theme> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<cfsilent><cfscript> | |
/* | |
Example of how to create a Frequently Asked Questions (FAQ) section/area | |
1) Create a class extension called 'Folder / FAQ' | |
2) Copy the code below and paste it into /{SiteID}/includes/themes/{Theme}/display_objects/custom/extensions/dsp_Folder_FAQ.cfm | |
3) Add kids and voila! | |
*/ | |
// The Iterator | |
variables.iterator = variables.$.content().getKidsIterator().setNextN(variables.$.content('nextN')).setPage(1); | |
// Start :: Pagination Variables | |
variables.currentNextNIndex=1; | |
variables.maxPortalItems = IsNumeric(variables.$.globalConfig('maxPortalItems')) | |
? variables.$.globalConfig('maxPortalItems') | |
: 100; | |
if ( variables.$.event('startRow') > variables.iterator.recordcount() ) { | |
variables.$.event('startRow', 1); | |
} | |
if ( !Len(variables.$.event('nextNID')) || variables.$.event('nextNID') == variables.$.content('contentID') ) { | |
if ( variables.$.content('NextN') > 1 ) { | |
variables.currentNextNIndex = variables.$.event('startRow'); | |
variables.iterator.setStartRow(variables.$.event('startRow')); | |
} else { | |
variables.currentNextNIndex = variables.$.event('pageNum'); | |
variables.iterator.setPage(variables.$.event('pageNum')); | |
} | |
} | |
variables.nextN = variables.$.getBean('utility').getNextN( | |
variables.iterator.getQuery() | |
, variables.$.content('nextN') | |
, variables.currentNextNIndex | |
); | |
// @END :: Pagination Variables | |
</cfscript></cfsilent> | |
<cfoutput> | |
<!--- Content / Body ---> | |
#$.setDynamicContent($.content('body'))# | |
<!--- FAQs ---> | |
<cfif variables.iterator.hasNext()> | |
<div class="panel-group" id="accordion"> | |
<cfloop condition="variables.iterator.hasNext()"> | |
<cfset item = variables.iterator.next() /> | |
<div class="panel panel-default"> | |
<div class="panel-heading"> | |
<h4 class="panel-title"> | |
<a data-toggle="collapse" data-parent="##accordion" href="##collapse#variables.iterator.currentIndex()#"> | |
#HTMLEditFormat(item.getTitle())# | |
</a> | |
</h4> | |
</div> | |
<div id="collapse#variables.iterator.currentIndex()#" class="panel-collapse collapse"> | |
<div class="panel-body"> | |
#$.setDynamicContent(item.getBody())# | |
</div> | |
</div> | |
</div> | |
</cfloop> | |
</div> | |
</cfif> | |
<!--- Pagination Output ---> | |
<cfif variables.nextn.numberofpages gt 1> | |
#variables.$.dspObject_Include(thefile='dsp_nextN.cfm')# | |
</cfif> | |
</cfoutput> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment