sfSitemap2Plugin を使ってみる
sfSitemap2Plugin ってどんなプラグイン?
データモデルとかを元に、Googleサイトマップ等で利用出来るサイトマップXMLを生成してくれるプラグインだと思う。インストール
symfony plugin-install http://plugins.symfony-project.com/sfSitemap2Plugin
・・・失敗しました。(package.xmlの記述が正しくないとかなんとか・・・)[sfSitemap2Plugin-0.0.2.tgz - 2007/11/7 現在]
まぁ、そのうち修正されるだろうということで、深く考えず、手動で 'plugins' フォルダに配置しました。
('svn:externals' 属性を利用して sfSitemap2Plugin のリポジトリをそのまま配置しました)
準備
Wikiを見ると、なんだかサンプルデータが欲しいようなので、カンタンなダミー記事を100件ほど用意しました。記事データは、最低限、'タイトル','URL用のタイトル','更新日時' あたりを用意します。
んでこんな感じになりました。
urlset(XML)を吐き出す
準備したサンプル記事データを元に urlset を出力します。とりあえずWikiのサンプルに修正を加えて作成しました。
[actions.class.php]
public function executeOutputXML()
{
$sitemap = new sfDefaultSitemap();
$priority = '0.3';
$freq = 'weekly';
$c = new Criteria();
$c->addAscendingOrderByColumn(Sample2Peer::ID);
$obj = Sample2Peer::doSelect($c);
foreach ($obj as $post)
{
$item = new sfSitemapItem();
$item->setLoc('@Sitemap2_show?stripped_title='.$post->getStrippedTitle());
$item->setLastMod($post->getCreatedAt('U'));
$item->setPriority($priority);
$item->setChangeFreq($freq);
$sitemap->addItem($item);
}
$this->sitemap = $sitemap;
}
[outputXMLSuccess.php]
<?php decorate_with(false) ?>
<?php echo $sf_data->getRaw('sitemap')->asXml() ?>
コレでなんとか出力することが出来ました。
出力表示はコチラ
まとめ
今現在は、定期的なバッチ処理で urlset を静的な xml に書き出してんだけど、動的に次々コンテンツが増えてくサービスの場合は、こういうのが必須かもね。そんなサービスを始める機会があれば利用させていただきます。
でも、開発が始まったばっかりのプラグインっぽいので、メジャーバージョンが出るころには使い方が激変してそうでグッタリ。
--
プラグイン調べる速さより、新しく増える方が早かったら・・・
・・・考えないでおく。
About this entry
Title
Archive type
Individual archive
Published
2007/11/07 18:59
0 Comments