TopMovable Type > バージョン別 > 3.0D > 2004年7月
2004年7月31日

カテゴリーアーカイブと月別アーカイブのページ分割

July 31,2004 2:15 AM
Tag:[, , , ]
Permalink


Movable Type でのカテゴリーアーカイブと月別アーカイブのページ分割方法をご紹介します。

参照サイトはMagic whiteさんの「カスタマイズメモその2」経由できままにポロポロさんの「ページ分割」です。あっさりできました。ありがとうございます。
ということで以下に設定方法(プラグインファイルの配置は自宅サーバ用)を記しておきます。

1.プラグインファイルのダウンロード

MT Extensions より MTPaginate をダウンロード(ページ上の方にある「Download」をクリック)。ファイルは任意のフォルダ(デスクトップ等)に保存します。

2.プラグインファイルのアップロード

ダウンロードしたファイルを解凍し、その中の MTPaginate.pl を plugins ディレクトリにアップロードします。

注:この情報はバージョン1.28のものです。
ダウンロードしたファイルを解凍し、その中の MTPaginate ディレクトリを下記のディレクトリ構成になるように plugins ディレクトリに丸ごとアップロードします。

plugins/MTPaginate/lib/MTPaginate.pm
plugins/MTPaginate/MTPaginate.pl

2.1 アーカイブURL/アーカイブ・パスの設定(Movable Type 3.2-ja 以降の場合)

管理メニューの「設定」→「公開」にある「アーカイブの設定」のチェックボックスをチェックします。チェックするとその下に「アーカイブURL」「アーカイブ・パス」の項目が表示されるので、下記のように設定します。

アーカイブURL:サイトURL/archives/
アーカイブ・パス:サイト・パス/archives

サイトURLとサイト・パスは同じページに表示されている「サイトURL」「サイト・パス」の内容をそのままあてはめてください。例えばサイトURLが http://www.koikikukan.com/ であれば、アーカイブURLは

http://www.koikikukan.com/archives/

となります。
なおこれらはページ分割を行わない場合も設定することをお勧めします。

3.アーカイブファイル名の変更

Movable Type のバージョンによって3.1項または3.2項のいずれかを実施してください。

3.1 Movable Type 3.2-ja 以降の場合

管理メニュー左の「設定」→「公開」で「アーカイブ・マッピング」の「出力フォーマット」のテキストボックス欄で「カスタマイズ」を選択して下記を設定します。

  • カテゴリーアーカイブ(「カテゴリー」行)
    cat_<$MTCategoryID$>.php *1
  • 月別アーカイブ(「月別」行)
    %y/%m/index.php
  • 日別アーカイブ(「日別」行)
    %y/%m/%d/index.php

をそれぞれ設定し「変更を保存」をクリックしてください。

*1:カテゴリーアーカイブのファイル名にはカテゴリーIDを設定するためにMTタグを使用することを推奨します。

3.2 Movable Type 3.1x 以前の場合

管理メニュー左の「ウェブログの設定」→「アーカイブの設定」で「アーカイブ」の「アーカイブ・ファイルのテンプレート」のテキストボックス欄に下記を設定します。

  • カテゴリーアーカイブ(「カテゴリー」行)
    cat_<$MTCategoryID$>.php
  • 月別アーカイブ(「月別」行)
    <$MTArchiveDate format="%Y/%m/"$>index.php
  • 日別アーカイブ(「日別」行) *2
    <$MTArchiveDate format="%Y/%m/%d/"$>index.php

をそれぞれ設定し「変更を保存」をクリックしてください。*3 *4

*2:カレンダーのリンク等で「日別」を使用されている場合は設定が必要です。
*3:すでに「アーカイブ・ファイルのテンプレート(3.2 は「出力フォーマット」)」へカスタマイズされたフォーマットを設定されている場合は「.html」となっている部分を「.php」に修正すればOKです。
*4:フォーマットは一例ですので、任意のフォーマットを設定してください。また 3.2-ja 以降ではフォーマットの指定方法が変更されていますが、3.1x 以前のMTタグを利用した設定でも正常に動作します。

4.ページ分割の設定

カテゴリーアーカイブテンプレート・日別アーカイブテンプレートに以下の青色部分を設定します。

カテゴリーアーカイブの場合

<div class="blog">
<MTPaginate>
<MTPaginateContent max_sections="8">
<MTEntries>
     :
     :
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>">&#65308;</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">&#65310;</a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
</div>

日付アーカイブの場合

<div class="blog">
<div id="menu">
<MTArchivePrevious>
<a href="<$MTArchiveLink$>"><< <$MTArchiveTitle$></a> |
</MTArchivePrevious>
<a href="<$MTBlogURL$>">Main</a>
<MTArchiveNext>
| <a href="<$MTArchiveLink$>"><$MTArchiveTitle$> >></a>
</MTArchiveNext>
</div>
<MTPaginate>
<MTPaginateContent max_sections="8">
<MTEntries>
     :
     :
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>">&#65308;</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">&#65310;</a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
</div>

赤色部分は中央に配置スタイルシート(styles-site.css)に ".paginate" というクラスセレクタを作成し、ページリンクのスタイルを設定するためのタグです。スタイルシートには必要に応じて

.paginate {
    text-align: center;
    font-size: 9px;
}

という風に設定してください。
設定が完了したら「保存」をクリックします。

追記.XML宣言の修正

拡張子を .html から .php に変更したテンプレートの1行目が

<?xml version="1.0" encoding="<$MTPublishCharset$>"?>

となっている場合は

<? echo('<?xml version="1.0" encoding="<$MTPublishCharset$>"?>') ?>

に修正してください(XML宣言が存在しない場合はこの対処自体不要です)。この修正を行わないとページ表示時に

Parse error: parse error, unexpected T_STRING in [...] on line 1

というエラー(またはページが真っ白)が発生します。

5.サイトの再構築

4項まで完了したら再構築を実施し、ページ分割を設定したアーカイブのページを開き、分割されていればOKです。

6.その他

きままにポロポロさんのページで

<$MTPaginateNavigator format_current="<font size=+1>%d</font>">

と書けば現在のページ番号の文字を装飾できるようですが、上の例ではfontタグの"<"と">"(計4ヶ所)を"&lt;"と"&gt;"で記述する必要があります。具体的には青色で表示してある

<$MTPaginateNavigator format_current="&lt;font size=+1&gt;%d&lt;/font&gt;">

となります。なお、XHTMLでは各要素の属性(ここでは font 要素の size 属性)はダブルクォーテーションで括る仕様となっているため、ここでは非推奨とします。font 要素自体も非推奨です。

なお月別アーカイブはjolie'sさんの【長くなったページを分割】でやってみたところ再構築でInvalid Argumentというエラーになりました。原因は、そのページに表示されていたアーカイブファイル名のテンプレート名をそのままコピー&ペーストして使ったのですが、そのタグの"<"と">"が全角になっているせいでした。こういうのって意外に気がつかないものです

2004.10.04 追記
【PHPのバージョンについて】
ページ分割はPHP4.1以下では正常に動作しないようです。詳細については先と同様、Cool Gaming ! weBlogさんのカテゴリ、月別アーカイブのページ分割を参照ください。

2005.03.01 追記
日付アーカイブの設定について追加しました。

2005.04.13 追記
SWEET WATER Web Server さんの記事を参考に、日付アーカイブの設定について追加しました。

2005.11.11 追記
3.2-ja 用の設定を追記しました。

2005.11.20 追記
3.2-ja 用の設定をさらに追記しました。

2005.11.28 追記
3.2-ja 用の出力フォーマットを 3.1x 以前のものと分割しました。またページリンクのタグを改善しました。具体的には、MTPaginateIfMultiplePages タグと div 要素の位置を入れ替えて、ページ分割が行われない場合に不要な div 要素を生成しないようにしました。さらに div 要素に設定していた align 属性を削除しました。

2006.02.19 追記
XML宣言の修正について記述を追加しました。

2006.04.25 追記
XML宣言の修正について記述を修正しました(XML宣言がない場合は不要である旨)。

2007.05.04 追記
プラグインのバージョンアップに伴い、アップロード方法を修正しました。

Comments [197] | Trackbacks [107]
2004年7月22日

タイトルの色変更

July 22,2004 1:18 AM
Tag:[]
Permalink

最近暑いですね?。しかも自宅で24時間PCを立ち上げているせいか部屋がムッとしっぱなしです。この無駄な熱をなんとか冷房に利用できないものでしょうか。

とりあえず涼しくなるかなと思って青色にしてみました。トップページだけですが。

Comments [3] | Trackbacks [0]
2004年7月16日

Movable Type 3.0 Developer Edition 日本語版の提供開始

July 16,2004 10:05 AM
Tag:[]
Permalink

Movable Type 3.0 Developer Edition 日本語版Movable Type 3.0 Developer Edition 日本語版が公開されました。7月15日リリースでしたので予定通りですね。もっともそのニュースが投稿されたのは23:59ですが(笑)。
とりあえずダウンロード手順を記しておきます。

  1. Movable Type のページ上または左の「Movable Typeを入手ダウンロード」をクリック
  2. 右の「Movable Typeオンライン購入システムダウンロードへ」をクリック
  3. ログイン(アカウントを持っていない場合はここで登録しましょう)
  4. ログインすると「Get Movable Type!!!」というページに進みます。無償で利用したい場合は一番上の「限定個人ライセンス」をクリック
  5. 「ライセンス契約を承諾する」をチェックして(利用許諾契約書も読んでね)「>>次へすすむ」をクリック
  6. パッケージの種類・アーカイブの種別を選んで「ダウンロード」をクリック。

その後のインストールはMovable Type 3.x 導入手順が分かりやすいです。

日本語版ですがインストール時は英語なんですよね(笑)。

Comments [0] | Trackbacks [0]

エントリーの画像をサイドメニューに表示

July 16,2004 1:30 AM
Tag:[]
Permalink

エントリーに携帯等で撮った画像を表示しているブログをよく見かけますが、エントリーの画像を検索してサイドバーに自動的に表示するカスタマイズをご紹介致します。具体的な動作は、エントリーの中に書かれている img 要素の src 属性を検索し、そこで指定された画像をサイドバーに表示します。Collect プラグインというものを利用しています。
以下、手順メモです。

1.プラグインのダウンロード

Collect Plugin for Movable TypeCollect より Plugin をクリックします(ソースが表示される場合は右クリックして「対象をファイルに保存」を選択)。

2.プラグインのアップロード

ダウンロードした Collect.pl を plugins ディレクトリ直下にアップロードします。

3.テンプレート修正

リスト1のタグを、画像を表示したいテンプレート(メインページ/カテゴリーアーカイブ/日付アーカイブ/個別エントリーアーカイブ等)のサイドバー部分に追加します。次のタグは最近の8エントリーより、各エントリー内にある一番最初のイメージを表示します。

<MTEntries lastn="8">
<MTCollect tags="img">
<MTCollectThis show="0">
<$MTEntryBody$>
</MTCollectThis>
<MTIfCollected tags="img">
<MTCollected tags="img" lastn="1">
<a href="<$MTEntryLink$>">
<img src="<$MTCollectedAttr attr="src"$>" style="margin:10px" />
</a><br />
</MTCollected>
</MTIfCollected>
</MTCollect>
</MTEntries>

リスト1:最近の8エントリーより各エントリー内にある一番最初のイメージを表示

リスト2のタグは、全エントリーから最新の5個のイメージを表示します。

<MTCollect tags="img">
<MTEntries lastn="5">
<MTCollectThis>
<$MTEntryBody$>
<$MTEntryMore$>
</MTCollectThis>
</MTEntries>
<MTIfCollected>
Recent Photos of all <$MTCollectedTotalCount$> photos<br />
<MTCollected tags="img" lastn="5">
<img width="100" src="<$MTCollectedAttr attr="src"$>" alt="<$MTCollectedAttr attr="alt"$>"<$MTCollectedContent$><br />
</MTCollected>
<MTElse>
No Photos
</MTElse>
</MTIfCollected>
</MTCollect>

リスト2:全エントリーから最新の5個のイメージを表示

以上です。なおこの機能については以下のサイトを参考にさせて頂きました(テンプレートもそこからの抜粋です)。

あとはカメラ付き携帯を買うだけ(爆)。

2005.08.08 追記
本文を全面修正しました。

2006.09.10 追記
マークアップ修正。

Comments [6] | Trackbacks [0]
2004年7月15日

MT-3.0D-ja-b3

July 15,2004 10:23 AM
Tag:[]
Permalink

さらに Movable Type 3.0 日本語版ベータ3が公開されてました。正式版の提供は7月中旬ということなのでそろそろでしょうか。

Comments [0] | Trackbacks [0]
2004年7月11日

Movable Typeで日本語カテゴリが別の日本語カテゴリの記事にリンクされる不具合について

July 11,2004 2:05 AM
Tag:[]
Permalink

日本語カテゴリーを作ると別の日本語カテゴリーのエントリーが誤ってリンクされるようです。例えば「車」カテゴリーのリンクをクリックすると「音楽」カテゴリーが表示されてしまいます。
原因は、英語(多分数字も含む)のカテゴリーであればそのカテゴリー名がフォルダとして作られる(厳密にはその配下に index.html を配置)のですが、日本語カテゴリーは任意のアルファベットに変換し、その名前でフォルダを作ります。その時に元の日本語カテゴリ名と生成されたフォルダの関連づけが誤ってしまうようです。

そういう時は横着して英語カテゴリー名に直していましたが本質的な解決ではありません。ということでこちらの記事を参考に日本語カテゴリー名を使用しても不具合が発生しないように修正しました。面倒かと思ったらカテゴリー用ファイル名を指定して再構築するだけでした。

日本語エントリーの個別アーカイブファイル名も場合によっては「aaeaaaaaaaa.html」みたいになってしまうことがあり、ちょっと気に入りません(動作上の問題は今のところありません)。こちらも解決策があるみたいですがとりあえず次回まわしにします。
それにしてももう少し気の利いた変換できないものでしょうか。

Comments [2] | Trackbacks [0]
2004年7月10日

MT-3.0D-ja-b2

July 10,2004 2:53 AM
Tag:[]
Permalink

Movable Type 3.0 日本語版ベータ2が公開されたようです。が、とりあえずアップグレードせずに3.0正式版を待とうと思います。

Comments [0] | Trackbacks [0]
2004年7月 9日

CSSでフォーム要素の空白を除去する方法

July 9,2004 12:12 AM
Tag:[]
Permalink

以前テーブルタグを用いてフォーム前後の空白を除去しましたが、以下のスタイルシートを追加すれば同様の効果がありました。

form {
    margin: 0;
}

この設定では全ての form タグに有効になりますので、個別に設定が必要な場合は form のクラス属性を指定します。例えば

<div class="side">
<form>
   :

であれば、

.side form {
    margin: 0;
}

としてください。

2005.08.18 追記
記事の内容を一部修正しました。

Comments [0] | Trackbacks [0]
2004年7月 8日

プロフィール修正

July 8,2004 12:26 AM
Tag:[]
Permalink

このblogは元々開設していたWebサイトからのリンクしか設定してなかったのですが、プロフィールにこちらから元サイトへのリンクを設定しました。先のCDの話もそうですがblogを読まれる際の補助になればと思います。最近元サイトの更新が滞っているのでどうしたものかというところですが。

Comments [0] | Trackbacks [0]
2004年7月 3日

「このサイトについて」を追加

July 3,2004 12:41 AM
Tag:[]
Permalink

プロフィール用テンプレートを流用して早速追加しました。サイドバーのプロフィールの上にリンクを追加してます。これでタイトルの由来を書くスペースも確保できました。

Comments [0] | Trackbacks [0]
2004年7月 2日

Movable Typeでプロフィールのページを作る方法

July 2,2004 11:35 PM
Tag:[, , , ]
Permalink

この記事は Movable Type 3.1x 用ですので、Movable Type 3.2-ja 以降をお使いの方はプロフィールのページを作る(3.2-ja?用)へどうぞ。


サイドバーメニューのタイトル「Introduction」を新たに作成しサブメニューとしてプロフィールを追加しました(中身ありませんが)。ということで「プロフィール」用テンプレートの設定およびメニューへの追加方法を記しておきます。同様の手法で「このサイトについて」や「注意事項」のページを作ることができます。
追加方法のひとつに、「プロフィール」というカテゴリーを作り、そのカテゴリーのエントリーとしてプロフィールのコンテンツを記述、そのカテゴリだけを抽出してプロフィールのページを表示するという手段があるようですが、カテゴリーメニューや最近のエントリーに含まれてしまうので、逆にそれらから除外する設定が必要となるためやや面倒です。
ということで、ここではテンプレートに直接コンテンツを記述する方法で説明します(妥当な手法であるかどうかは定かでありません)。

1.新しいテンプレートの作成

Movable Type 管理画面左メニューより「テンプレート」をクリック。右側上に表示されている「新しいインデックス・テンプレートを作る」をクリック。

2.テンプレート設定

次に表示されたページで次の各項目を設定します。

  • テンプレートの名前:Profile Index(任意の名前)
  • 出力ファイル名:about.html(任意の名前)
  • 「インデックス・テンプレートを?(中略)?再構築する」をチェック
  • このテンプレートにリンクするファイル:何も設定しない
  • テンプレートの中身:ここではCategory Archiveの内容をそのままコピー下記の2004.10.29 追記のリストの内容をコピーしてください。なおサイドバーの内容については適宜必要なものを他のテンプレートからコピーしてください(注意事項がありますので先の追記欄を併せてご確認ください)

3.テンプレートより不要なタグを削除

プロフィールをカテゴリーやエントリーとして登録しないので、上記のテンプレートをコピーしただけでは再構築時にエラーとなります。そのため「テンプレートの中身」欄にコピーしたテンプレートより下記のタグを削除します。終了タグがある場合はそちらも併せて削除。

  • MTArchiveTitle(タイトル)
  • MTEntries(エントリー)
  • MTDateHeader(日付)
  • MTEntryXXX(個別エントリー:XXXは任意の文字列)

2004.10.29 追記
下記に本サイトの「プロフィール」を元にしたサンプルを置いておきます。本サイトで公開中のスタイルシート利用が前提です。サイズ可変の場合は赤色部分を削除してください。
うまく動作しないようでしたらすいませんがご連絡ください。:サイドバーのメニューに、カテゴリー・アーカイブや日別アーカイブにある「The list of ?」のメニューを挿入しないでください(ここには上記のMTArchiveTitleが含まれているので再構築時にエラーとなります)。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
 
<title><$MTBlogName$>: プロフィール</title>
 
<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="alternate" type="application/rss+xml" title="RSS" href="<$MTBlogURL$>index.rdf" />
 
</head>
 
<body>
 
<div id="box">
 
<div id="banner">
<h1><a href="<$MTBlogURL$>" accesskey="1"><$MTBlogName$></a></h1>
<h2><$MTBlogDescription$></h2>
</div>
 
<!-- 左サイドバーここから -->
 
省略(適宜必要なメニューを挿入してください)
 
<!-- 左サイドバーここまで -->
 
<div id="content">
 
<div class="blog">
 
<h2 class="date">プロフィール</h2>
 
<div class="blogbody">
<h3 class="title">●名前</h3>
yujiro
</div>
 
<div class="blogbody">
<h3 class="title">●性別</h3>
男
</div>
 
<div class="blogbody">
<h3 class="title">●さらに詳しく</h3>
</div>
 
</div>
 
</div>
 
<!-- 右サイドバーここから -->
 
省略(適宜必要なメニューを挿入してください)
 
<!-- 右サイドバーここまで -->
 
<br clear="all" />
 
</div>
 
</body>
</html>

4.テンプレートにコンテンツ記述

修正したテンプレートの本文に該当する部分にプロフィールを直接書き込みます。入力後このテンプレートを保存して再構築します。

5.サイドバーメニューにリンク設定

Main Index等のサイドバーメニューに下記の部分を追加します。フォーマットは各自のメニューのフォーマットに合わせてください。追加後保存して再構築します。

<div class="side">
<a href="<$MTBlogURL$>about.html">プロフィール</a><br />
</div>

2004.11.18 追記
サイドメニューにカテゴリー・アーカイブや日別アーカイブにある「The list of ?」のメニューを挿入しない注意書きを追記。

2004.11.29 追記
作業手順の「Category Archiveの内容をそのままコピー」は適切な表現でないため、提示のリストを使用するよう記述を変更致しました。

2005.03.12 追記
テンプレートの配置が可変3カラム専用でしたので固定3カラムに対応できるよう変更致しました。

2005.12.30 追記
3.2-ja 用記事へのリンクを追加しました。

Comments [49] | Trackbacks [27]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3