From the Forum:
Can I have a menu which looks like a calender and where I can choose years of months for which I can see the posts of that month?
If you don’t need much bells and whistles, here is the yearly posts solution.
<!-- grids construction -->
<txp:etc_query name="grid" data="[2012..{?|now|date(Y)}]">
<table>
<thead><tr><th colspan="4">{?}</th></tr></thead>
<tbody>
<tr>
<td id="month-{?}-01">Jan</td>
<td id="month-{?}-02">Feb</td>
<td id="month-{?}-03">Mar</td>
<td id="month-{?}-04">Apr</td>
</tr>
<tr>
<td id="month-{?}-05">May</td>
<td id="month-{?}-06">Jun</td>
<td id="month-{?}-07">Jul</td>
<td id="month-{?}-08">Aug</td>
</tr>
<tr>
<td id="month-{?}-09">Sep</td>
<td id="month-{?}-10">Oct</td>
<td id="month-{?}-11">Nov</td>
<td id="month-{?}-12">Dec</td>
</tr>
</tbody>
</table>
</txp:etc_query>
<!-- retrieve posts counts and prepare replacements -->
<txp:etc_query name="replace" break=";"
data="SELECT COUNT(*) cnt, YEAR(Posted) year, DATE_FORMAT(Posted, '%m') month FROM textpattern WHERE Status=4 GROUP BY DATE_FORMAT(Posted, '%Y-%m') ORDER BY Posted">
id('month-{year?}-{month?}')@@.=<a href='?month={year?}-{month?}'>{{node()}}<br /><span>{cnt?} {$(cnt?).=1.?(Post|Posts)}</span></a>@class=busy
</txp:etc_query>
<!-- fill the grid -->
<txp:etc_query data='<txp:variable name="grid" />' replace='<txp:variable name="replace" />' />
Your calendar is ready now, with linked posts counts and busy
class added to “productive” months cells. Add a bit of style to customize the result ad infinitum.
Monthly calendars are feasible too, but trickier, so I leave it with you.
File(s)
- File: etc_query.txt [60.72 kB] (4246 downloads, ~29 per month)