How to use the a user macro to show blog posts based on a specific start date and end date
Asked by Bryan Guffey:

Hello all -

I'm attempting to replicate a feature we had in Sharepoint where I could create a news item and set a start date and end date for the item to show up. I'd like to use a variant of the Blog Posts Macro to do so. Basically, the macro should take these inputs:

Title

Body

Start Date

End Date

I should then be able to use the macro to show only the posts where the current date falls within the start and end date range, inclusively.

Any and all help would be great!


Answers:
author: CharlesH
body: Bryan, I haven't used the Zen Foundation plugin myself, but am I right in thinking it helps alter the appearance of pages? It should not change the fact that a blog post is an object able to reported upon by Reporting.

comments: author: Bryan Guffey
body: Charles-  

I just realized that it looks like this date filter would only show posts created between two certain dates. Is there a way to set dates this way:

Start: \[date\] End\[date\]

the reporting plugin would then show any posts where today's date was between the two dates listed.


author: IT Access
body: I've submitted a feature request for this [HERE](https://jira.atlassian.com/browse/CONF-41034). Please vote on it - I'm surprised Confluence doesn't have this feature that is heavily-used in SharePoint. Hopefully they integrate end date/expiry functionality soon!


author: CharlesH
body: Hi Bryan,

Your code in pastebin looks odd to me - the part with "data:displaystart, data:displayend" in the parameter name "types".

The date filter is normally pretty easy to use. The only thing to remember is that the start and end dates must be expressed in the way described by the format paramater.

Here's an example I just added to an existing report, to pull back pages where the release date value is sometime during 2012:

```
&lt;ac:macro ac:name="date-filter"&gt;&lt;ac:parameter ac:name="minValue"&gt;01-JAN-2012&lt;/ac:parameter&gt;&lt;ac:parameter ac:name="format"&gt;dd-MMM-yyyy&lt;/ac:parameter&gt;&lt;ac:parameter ac:name="maxValue"&gt;31-DEC-2012&lt;/ac:parameter&gt;&lt;ac:default-parameter&gt;data:DateReleased&lt;/ac:default-parameter&gt;&lt;/ac:macro&gt;
```

If you want to parameterize this in due course that's fine, but I would definitely suggest starting off with hard-coded dates to begin with to make sure the mechanics work. Once achieved, you can then replace the hard-coded values with dynamic values. Are you intending to use injection to do this? I notice you have tried to use this in your pastebin code, but are missing a delimiter (%):

```
&lt;ac:default-parameter&gt;%global:current date &amp;gt; date:at midnight&lt;/ac:default-parameter&gt;
```

Regards,

Charles


author: Davin Studer
body: Would this fulfill what you are trying to do?

<https://marketplace.atlassian.com/plugins/com.atlassian.pas>

comments: author: Bryan Guffey
body: Devin, Unfortunately, not. I need this displayed in a page.


author: CharlesH
body: Hi Bryan -

I'm not sure I understand your last question?

The documentation for the date-filter macro includes an example for filtering between 2 given dates, using the minValue and maxValue options. The example I gave earlier also shows these.

If you want to be able to set the min and max dates as parameters in some way, rather than have them hardcoded, then you could do this with the aid of a companion plugin, called Scaffolding. The name might sound strange, but essentially it allows you to build form elements, including text fields, for capturing information. Values captured in this way can be referenced by reporting.

Alternatively, if you were to express your Reporting macros in a user macro, whenever you need to change the dates you could do so in the user macro, and anyone visiting a page where this macro has been included would use the dates you've set.

If you want to delve deeper into the capabilities of Reporting \& Scaffolding, you may find this blog post of interest:http://blogs.atlassian.com/2013/01/how-to-building-a-company-glossary-with-confluence/

Regards,

Charles

comments: author: Bryan Guffey
body: Charles - See below - I can't get the report to filter out dates correctly based on today's date and using displaystart and displayend. I could only pul the XML stoarge format, it's [here in a pastebin](http://pastebin.com/s3Jd7t3D). Thanks!


Tags: blog

confluence-administration

user-macro