4 Aug 2002
In the Movable Type support forums I’ve seen requests for the ability to group archives by date. Most of the time, people want to have an archive index that looks something like:
2002 August July June May April March February January2001
December November October September August July June May April March February January
There have been a few people that have posted solutions using PHP or JavaScript, but I thought it would be nice to do this straight out of Movable Type.
Thus the Archive Date Header plugin was born.
Tim Appnel has taken over the maintenance and support of this plugin as of Oct 2004.
You can get this plugin by downloading ArchiveDateHeader.zip
Unzip ArchiveDateHeader.zip and connect to your FTP server and open the directory where you have Movable Type installed.
Create a directory there called plugins if there isn’t one already and copy ArchiveDateHeader.pl to the plugins directory.
Once you’ve installed the plugin you will have a new container tag, MTArchiveDateHeader. The tag only works within an MTArchiveList container tag, and if you try and use it elsewhere, you’ll receive an error.
If you use monthly archives, the contents of this container will only be printed when a new year starts.
If you use weekly archives, the contents of this container will only be printed when a new month starts.
If you use another sort of archive, the contents of this tag won’t be printed at all.
Here’s an example:
<MTArchiveList archive_type="Monthly"> <MTArchiveDateHeader> <p><b><MTArchiveDate format="%Y"></b></p> </MTArchiveDateHeader> <a href="<$MTArchiveLink$>"><MTArchiveDate format="%B"></a> </MTArchiveList>
Like our other freeware, this plugin is released under the open-source MIT License. In plain English, that means you can do whatever you want with the software, including modifying it, selling it, or eating it, but we’re not responsible for anything that goes wrong.
Forgot to thank you so.. Thanks :)
To generate nested lists of archives you can use this plugin together with Brad Choate’s MTPerlScript plugin, with your template something like this:
<ul> <MTArchiveList archive_type=”Monthly”>
<MTArchiveDateHeader> <li><$MTArchiveDate format=”%Y”$> <ul> </MTArchiveDateHeader>
<li><$MTArchiveDate format=”%B”$></li>
<MTPerlScript> $a = ‘<MTArchivePrevious><$MTArchiveDate format=”%Y”></MTArchivePrevious$>’; $b = ‘<$MTArchiveDate format=”%Y”$>’; if ($a ne $b) {print “</ul></li>”}; </MTPerlScript>
</MTArchiveList>
</ul>Example of output:
<ul> <li>2003 <ul> <li>February</li> <li>January</li> </ul> </li> <li>2002 <ul> <li>December</li> <li>November</li> <li>October</li> </ul> </li> </ul>
Excerpt: しました。 Archive Date Header Pluginを入れて。 ソースも書いてあるので、そちらを参考に。...
Excerpt: In the Movable Type support forums I’ve seen requests for the ability to group archives by date. Most of the time, people want to have an archive index. There have been a few people that have posted solutions using PHP...
These are the last 15 comments. Read all 19 comments here.
This discussion has been closed.
Adam Kalsey
Mobile: 916.600.2497
Email: adam AT kalsey.com
AIM or Skype: akalsey
©1999-2009 Adam Kalsey.
Content management by Movable Type.
Rob Novak
August 22, 2003 8:01 AM
If you want to handle Daily archives with per-month headers as well, the following if..elsif..else statement will do it nicely:
if ($at eq “Monthly”) { $thisdate = substr $ts, 0, 4; } elsif ($at eq “Weekly”){ $thisdate = substr $ts, 4, 2; } elsif ($at eq “Daily”){ $this_date = substr $ts, 4, 2; } else { return ”; }