Your Ad Here

Archive Date Header Plugin

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 January

2001
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.

Download

You can get this plugin by downloading ArchiveDateHeader.zip

Installation

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.

Using the plugin

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>

License

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.

Revision History

1.0 - August 4, 2002 Initial release.

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 ”; }

Peter
September 4, 2003 8:27 AM

Forgot to thank you so.. Thanks :)

dvd
November 18, 2003 2:02 PM

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>

Trackback from BLOG:RED BICYCLE RECORDS
September 17, 2004 11:30 PM

月別アーカイヴを手短に

Excerpt: しました。 Archive Date Header Pluginを入れて。 ソースも書いてあるので、そちらを参考に。...

Trackback from BnKB
February 16, 2005 11:50 PM

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.

Lijit Search

Best Of

Recently Read

Get More

Subscribe | Archives

Recently

Coffee spill (Nov 11)
Coffee vs the laptop
Cloud Reliability (Aug 12)
Would you like to take bets as to whether Amazon or Google have better reliability and safety than your local network service providers?
George Carlin (Jun 22)
"I'm always relieved when someone is delivering a eulogy and I realize I'm listening to it."
Business lessons from the Kitchen (Jun 9)
The Gordon Ramsay School of Business
Under The Radar twittering (Jun 3)
My live stream from Under the Radar
Measuring a CEO's mind (May 29)
Not everything that's important can be measured. Not everything that can be measured is important.
Golden 1: breaking customer expectations (May 25)
Take a potential new user and give them a poor signup experience, then call them a liar.

Subscribe to this site's feed.

Elsewhere

Feed Crier
Get alerted by IM when your favorite web sites and feeds are updated.
SacStarts
The Sacramento technology startup community.
Pinewood Freak
Pinewood Derby tips and tricks
Del.icio.us
My tagstream at del.icio.us.
Waddlespot
My son's Club Penguin community. News, blogs, tips, and tricks.

Contact

Adam Kalsey

Mobile: 916.600.2497

Email: adam AT kalsey.com

AIM or Skype: akalsey

Resume

PGP Key

©1999-2008 Adam Kalsey.
Content management by Movable Type.