Disclaimer:
- I’m a total newb to FW/1.
- There is most likely a better, or built in way to do this.
Still with me? Ok. Here is the specification for this little ditty:
- The site I’m working on is mostly static.
- It is required (perhaps legally, definitely procedurally) that every page of the site must have a last modified date in the footer.
- The site is built using FW/1 (which is awesome).
Here are the cliff notes of what’s about to go down:
- I have a footer that is included in every page.
- In the footer view Im going to look at the current page’s action in the request context (rc) and figure out what the corresponding “view” is based on the action
- I’m going to use cfdirectory to find the lastmodifieddate of the view file from step 2.
Without further adieu:
<!— Start with the path to our views folder —>
<cfset local.viewPath=”#VARIABLES.FRAMEWORK.BASE#views” />
<!— Make an array of rc.action (we use this to append subfolders) —>
<cfset local.arrAction=ListToArray(rc.action,”.”) />
<!— Set the counter to be 1 short of the action array len b/c the last member will be our view page —>
<cfset local.counter=ArrayLen(local.arrAction)-1 />
<!— Set the last member of our action array to be our action page —>
<cfset local.viewPage=”#local.arrAction[ArrayLen(local.arrAction)]#.cfm” />
<!— Append any subfolders to our viewPath —>
<cfloop from=”1″ to=”#local.counter#” index=”local.a”>
<cfset local.viewPath=”#local.viewPath#/#local.arrAction[local.a]#” />
</cfloop>
<!— Look for our viewPage cfm file in our viewPath —>
<cfdirectory action=”list”
directory=”#ExpandPath(local.viewPath)#”
name=”qGetLastdateModified”
filter=”#ListLast(local.viewPage, “/”)#”>
<!— If we have a record count then calculate the last modified date —>
<cfif qGetLastdateModified.recordCount>
<cfset local.siteLastUpdated=’#DateFormat(qGetLastdateModified.dateLastModified,”long”)# at #TimeFormat(qGetLastdateModified.dateLastModified,”hh:mm:ss tt”)#’ />
<cfelse>
<cfset local.siteLastUpdated=”unknown :- (” />
</cfif>
<cfoutput>#local.siteLastUpdated#</cfoutput>