Movable Type: un feed per ogni categoria

In questo articolo vedremo come configurare la piattaforma Movable Type per generare automaticamente, assieme all'archivio delle categorie, anche il rispettivo feed.
Questa caratteristica è molto utile per fornire agli utenti feed personalizzati in base ai loro gusti. Presupponendo di avere numerose categorie multitematiche, con qualche semplice passaggio metteremo a disposizione la possibilità di scegliere di iscriversi solo alla categoria (o alle categorie) che più desiderano.

Sebbene le istruzioni seguenti sono valide per la versione 3.2, non sarà difficile realizzare le stesse procedure anche su release differenti.
Ovviamente i passi non saranno esattamente gli stessi, ma sarà possibile usare le informazioni seguenti come traccia.

Prima di procedere, è necessario spendere qualche parola sul sistema di gestione degli archivi di Movable Type.
E' possibile configurare diverse tipologie di archivi, suddivisi in due grandi gruppi: archivio temporale ed archivio tematico. Nel nostro caso considereremo l'archivio tematico ma, con qualche modifica, è ugualmente possibile fornire un feed per ogni mese.
Possibile non vuol dire necessariamente utile.

Gli archivi vengono generati dalla piattaforma in real time, al momento dell'aggiornamento di un qualsiasi elemento.
Attraverso un template, Movable Type ricreerà fisicamente la pagina sul server se richiesto. In alternativa, se l'archivio è costruito dinamicamente, il compito è delegato a PHP che fornirà la giusta pagina al momento della richiesta.

Vediamo ora come procedere.

Creare un nuovo template

La prima cosa da fare è creare il template per produrre i nuovi feed.
E' possibile, ovviamente, realizzare un qualsiasi template per un qualsiasi formato.

Crea un nuovo template

Per semplicità, in questo caso, copieremo il template del feed RSS 2.0 principale.
Alla voce Templates > Indexes > RSS 2.0 Index è disponibile il template in questione che si presenta come segue.

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>
<rss version="2.0">
  <channel>
    <title><$MTBlogName remove_html="1" encode_xml="1"$></title>
    <link><$MTBlogURL$></link>
    <description><$MTBlogDescription remove_html="1" encode_xml="1"$></description>
    <language><$MTBlogLanguage ietf="1"$></language>
    <copyright>Copyright <$MTDate format="%Y"$></copyright>
    <lastBuildDate>
      <MTEntries lastn="1">
      <$MTEntryDate format_name="rfc822"$>
      </MTEntries>
    </lastBuildDate>
    <generator>http://www.sixapart.com/movabletype/?v=<$MTVersion$></generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>

<MTEntries lastn="15">
<item>
<title><$MTEntryTitle remove_html="1" encode_xml="1"$></title>
<description><$MTEntryExcerpt encode_xml="1"$></description>
<link><$MTEntryPermalink encode_xml="1"$></link>
<guid><$MTEntryPermalink encode_xml="1"$></guid>
<category><$MTEntryCategory remove_html="1" encode_xml="1"$></category>
<pubDate><$MTEntryDate format_name="rfc822"$></pubDate>
</item>
</MTEntries>
</channel>
</rss>

Una volta copiato, portatevi nella tab Archive e selezionate la voce Create New Archive Template.
Incollate il contenuto del template in memoria.

Personalizzare e salvare il template

Usando i tag speciali messi a disposizione dalla piattaforma personalizziamo i nostri feed.
Ad esempio è possibile inserire il titolo della categoria nel feed e nella descrizione, come segue.

<title><$MTBlogName remove_html="1" encode_xml="1"$></title>
<link><$MTBlogURL$></link>
<description><$MTBlogDescription remove_html="1" encode_xml="1"$></description>

diventa

<title><$MTBlogName remove_html="1" encode_xml="1"$>: Categoria <$MTArchiveTitle$></title>
<link><$MTBlogURL$></link>
<description>Archivio dei messaggi nella categoria <$MTArchiveTitle$></description>

Una volta completate le modifiche, salvate il nuovo template con un nome a piacere, ad esempio RSS 2.0 Category Archive.
A questo punto dovreste trovarvi in una situazione tipo quella in figura.

Elenco dei template

Mapping del template

Dopo aver creato il template è necessario segnalarne a Movable Type l'esistenza ed istruire la piattaforma affinché il file sia rigenerato quando e se necessario.
Questa azione si chiama mapping.

Template mapping

Portatevi nel pannello Settings > Publishing > Archive Mapping.
Selezionato la voce New Archive Mapping e scegliete il template prima creato. Nel nostro caso, il tipo di archivio sarà Category in quanto l'obiettivo è creare un feed per ogni categoria.

Nuovo mapping

A questo punto, è necessario dare un nome al template.
Nel nostro caso decidiamo che il feed dovrà chiamarsi index.xml e trovarsi nella cartella della categoria. Scegliamo custom ed inseriamo manualmente il percorso ed il nome del file.
La stringa da inserire è %c/index.xml dove %c indica il percorso della categoria.

Nome del template

Generare i file

A questo punto, l'ultimo passo è scegliere la voce Rebuild Site per rigenerare i file statici e, dunque, anche i singoli feed per ogni categoria.