プロが教えるわが家の防犯対策術!

3年間書いてきた日記をMovable typeに移行しました。
日付アーカイブが長すぎるので▼参考にコンパクトにしてみました。

http://chitatopops.net/archives/2005/09/11/compa …

現在は▼次のとおりです。

2005
 9
 8
 7
 6
 5
 4
 3
 2
 1
2004
2003

これを▼次のようにしたいのです。
ソースに年や月、年、月と入れたりしてみましたが駄目でした。
また2005 9は…/mt/archives/2005/09/index.phpでリンクされますが、2005は…/mt/archives2005/となってリンクされません。
何をやってもうまく行かないので、質問いたしました。
もしお分かりになればぜひ教えてください。

2005年
 9月
 8月
 7月
 6月
 5月
 4月
 3月
 2月
 1月
2004年
2003年

■ソース
<MTSetVar name="lastyear" value="1"><ul>
<MTArchiveList archive_type="Monthly"><MTIfEqual a="[MTGetVar name='lastyear']" b="1"><MTArchiveDateHeader>
<li><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y"$></a>
<ul>
</MTArchiveDateHeader> <li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B"$></a></li><MTIfNotEqual a="[MTArchivePrevious][MTArchiveDate format='%Y'][/MTArchivePrevious]" b="[MTArchiveDate format='%Y']">
</ul>
</li><MTSetVar name="lastyear" value="2"></MTIfNotEqual>
</MTIfEqual></MTArchiveList><MTIfEqual a="[MTGetVar name='lastyear']" b="2"><MTArchiveList archive_type="Monthly"><MTArchiveDateHeader><li><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y"$></a></li>
</MTArchiveDateHeader></MTArchiveList></MTIfEqual></ul>

A 回答 (8件)

取り急ぎ



1個目、プラグインの記述の仕方が 3.0x or 3.1x ? から変わったのでそれに沿った記述をしていないと管理画面内に表示されないのです。表示されないイコール使えないというのは早計でアクティブログにエラーが表示されていないのならだいたい動くと思います。いずれにしてこのプラグイン自体が古いので表示されないのでしょう。

2個目、ダイナミックパブリッシングが原因ですね。
ぬりかべブログ?::?年別のアーカイブインデックス作成
http://nurikabe.net/blog/archives/2005/06/01/225 …

>2005、9などのように数字のみで年と月が表示されませんでした。

これはメインインデックスページでのサイドメニューでの表示の問題でしょうか?

参考URL:http://nurikabe.net/blog/archives/2005/06/01/225 …
    • good
    • 0

私の環境うんぬんですが、私はお気楽ブロガーちゃんですので参考にならないと思います。



データベースは何をお使いなのでしょうか?BerkeleyDB だとこのエラーが頻繁にでるようになるのですが。。。
    • good
    • 0
この回答へのお礼

SpiceGirlさん、お礼が遅くなって申し訳ありません。
休み明けで、早速サーバーの会社に連絡を取ってみたところ、メモリ制限に引っかかっているのでワンランク上のサービスに乗り換えるようとの回答でした。
サーバーの移転を真剣に考えてみることにします。
なおデータベースサーバーはMySQLを使用しています。

これまで丁寧に教えていただいて本当に感謝しております。
まだ使い始めたばかりで???の連続ですが、使いこなせるようにがんばります。
ありがとうございました。

お礼日時:2005/09/20 16:00

暫定回答 その3



年ごとのアーカイブを作るため ArchiveYear と ArchiveLoad の二つのプラグイン をインストール。利用可能なプラグインの設定にはいずれも表示されない。

ぬりかべブログ?::?年別のアーカイブインデックス作成
http://nurikabe.net/blog/archives/2005/06/01/225 …
を参考にして

MT 管理画面の「テンプレート」 -> 「新しいアーカイブ・テンプレートを作る」
テンプレートの名前 : 年別アーカイブ
適当に作って保存

*日別アーカイブ内容をコピーして Entrybody 等の箇所を削除し
Chitatopops: 年ごとのアーカイブ
http://chitatopops.net/archives/2003/08/25/archi …
にあるコードを貼り付け保存。

次に「ウェブログの設定」 -> 「アーカイブの設定」で「新しく、テンプレートとアーカイブを関連付ける。」
アーカイブの種類: 月別 、テンプレート: 年別アーカイブを選択し、「追加」
アーカイブ・ファイルのテンプレート: <$MTArchiveDate format="%Y/index.php"$>(優先するテンプレートは月別アーカイブで使っているもののまま)

「変更を保存」

再構築すると /archives/2005/index.php として出力されるのでメインインデックスページのサイドメニューから 2005年をクリックすると2005年のエントリーが一覧表示されます。

訂正:
月別アーカイブ の設定は <$MTArchiveDate format="%Y/%m"$>/index.php
年別アーカイブ の設定は <$MTArchiveDate format="%Y"$>/index.php

<$MTArchiveDate format="%Y/index.php"$> と<$MTArchiveDate format="%Y"$>/index.php は同じです。

参考URL:http://nurikabe.net/blog/archives/2005/06/01/225 …
    • good
    • 0

暫定回答 その2 *条件 MT バージョン 3.171、 ダイナミックパブリッシングは使っていない。

2005年、7月と9月のみ投稿ありのとき。

プラグインの Archive Date Header と Compare をインストールする。
利用可能なプラグインの設定には「Compare」のみ表示される。

これで再構築すると、先の表示からこのように変わる。

アーカイブ
2005 年
9 月
7 月

月別アーカイブ の設定は <$MTArchiveDate format="%Y/%m"$>/ となっているので 9 月 、7 月 それぞれクリック
/archives/2005/07/
/archives/2005/09/

で表示されます。

年ごとのアーカイブをこの時点では作っていないのでリンク先が
/archives/2005/
となっているも当然ページが無いのでエラーとなる。
    • good
    • 0

暫定回答 その1



MT 3.171 でプラグインを何も入れていない状態で下記コードを追加したとき
(直接、年と月を書いて追加)


<h2>アーカイブ</h2>

<MTSetVar name="lastyear" value="1"><ul>
<MTArchiveList archive_type="Monthly"><MTIfEqual a="[MTGetVar name='lastyear']" b="1"><MTArchiveDateHeader>
<li><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y 年"$></a>
<ul>
</MTArchiveDateHeader> <li><a href="<$MTArchiveLink$>"><$MTArchiveDate format="%B 月"$></a></li><MTIfNotEqual a="[MTArchivePrevious][MTArchiveDate format='%Y'][/MTArchivePrevious]" b="[MTArchiveDate format='%Y']">
 </ul>
</li><MTSetVar name="lastyear" value="2"></MTIfNotEqual>
</MTIfEqual></MTArchiveList><MTIfEqual a="[MTGetVar name='lastyear']" b="2"><MTArchiveList archive_type="Monthly"><MTArchiveDateHeader><li><a href="<$MTBlogArchiveURL$><$MTArchiveDate format="%Y"$>/"><$MTArchiveDate format="%Y 年"$></a></li>
</MTArchiveDateHeader></MTArchiveList></MTIfEqual></ul>

メインインデックスページのサイドメニューでの表示のされかたは

アーカイブ
2005 年
9 月
2005 年
7 月
2005 年
2005 年

少なくとも表記の問題はこれで解決。

この回答への補足

SpiceGirlさん、お返事遅くなって申し訳ありません。
教えていただき原因はダイナミックパブリッシングにあることは分かりました。
ダイナミックパブリッシングでページを変更しても反映されなかったためこのようなことが起きたようです。
しかしスタティックで再構築するとカテゴリーと月別で必ず▼500エラーが発生します。

500 Internal Server Error
(CGIスクリプトのエラーかメモリ使用量が許容量を超えています。このページの管理者にお問い合わせください。)

まずはここから問題を解決しなければなりませんでした。
1カテゴリーに400ほどあったのを100ずつサブカテゴリーに分割しても500エラーが発生します。
結局インストール時の状態まで戻したりしたのですが、500エラーをどうしても避けることができず、検索して調べた結果▼次をインストールすることになりました。

「rebuild支援ツール」のインストール方法
http://www.na.rim.or.jp/~tsupo/program/rebuild-t …

これでも400あったカテゴリで動作しなかったので細分化し、少しづつ再構築することで、何とか希望とおりに実現することができました。

そこでひとつお聞きしたいのですが、これはどのサーバーでも起こりうることなのでしょうか?
SpiceGirlさんのサーバー環境ではいかがでしょうか?
私は4年前から借りている3780円/月のサーバーを使っています。
しかしブログを使っているところをみるとエラーメッセージから低額で有名なロリポップを使っているところが多いのがわかります。
私以上のエントリー数でもロリポップで難なく動作しているのをみると何だかやりきれないです。
エントリー数は過去のものだけで2000以上、1年で約1000件ほどは今後増えていきます。
最初の質問とは無関係で大変申し訳ないのですが、サーバーに知識がないものですから、SpiceGirlさんのサーバー環境(差し支えなければ)と何かアドバイスを教えていただければありがたいです。
よろしくお願いします。

補足日時:2005/09/19 10:37
    • good
    • 0

<$MTArchiveDate format="%Y" language="jp"$>


language="jp" を付ければ言語設定に左右されません。

この回答への補足

SpiceGirlさん。いつも丁寧に教えていただきありがとうございます。
教えていただいたとおりに3回やり直してみたもののうまくいきません。
状況を書いてみます。

> 年ごとのアーカイブを作る設定をしていないからではないでしょうか?
> Chitatopops: 年ごとのアーカイブ
> http://chitatopops.net/archives/2003/08/25/archi …

はい、設定していませんでした。
早速、プラグインをアップロードしてURLの案内に従って設定しました。
ここでひとつ質問があります。プラグインをアップロードしたもののメインメニューの「利用可能なプラグインの設定」には両方とも表示されないのです。
これはうまくプラグインがアップロードされていないということでしょうか?

またあまり関係ないと思いますが、教えていただいたプラグインのページでアップロードしても表示されなかったため、▼こちらのページの最後に同じプラグインがありましたので同様にコピーしてアップロードしました。しかしこちらでも表示されませんでした。
http://www.mushline.com/junky/2004/07.shtml

サイトを見てみると、同じ年なのにリンクされたURLが次のように異なっていました。
「年ごとのアーカイブ」で設定
2005 URL:www.MYSITE.com/archives/2005/

「日付アーカイブのリストをコンパクトに」で設定
2005 URL:http://www.MYSITE.com/htdocs/mt/archives2005/

FFTPでサーバーのディレクトリを見るとどちらにもindex.phpのファイルは生成されていませんでした。
ここで2つめの質問があります。
これはウェブログの設定の基本設定かアーカイブの設定が間違っているのでしょうか?

なおもしかしたら関係あるのかもしれませんが、カテゴリーには「Cut First Char 0.01」というプラグインを用いて<$MTCategoryLabel cutfirstchar="3"$>(最初の数字の3桁を削ったものをファイル名にする)としています。また日本語での表示のためにカテゴリ名は<$MTCategoryDescription$>としています。

> <$MTArchiveDate format="%Y" language="jp"$>
> language="jp" を付ければ言語設定に左右されません。

上のようにすべてにlanguage="jp"をつけたのですが、2005、9などのように数字のみで年と月が表示されませんでした。
再構築の仕方が間違っているのでしょうか?

テンプレートの再構築オプションで、アーカイブのみダイナミックを指定しています。
すべてスタティックにすると投稿が多いせいかすぐに505エラーが発生します。

いろいろ検索して調べてみるものの思うようにいかず困っています。
もしよい解決方法がお分かりになりましたら教えてください。よろしくお願いします。

補足日時:2005/09/18 17:54
    • good
    • 0

>2004を2004年と表示したい



日付の言語設定が日本になっていないのでは?
    • good
    • 0

年ごとのアーカイブを作る設定をしていないからではないでしょうか?



Chitatopops: 年ごとのアーカイブ
http://chitatopops.net/archives/2003/08/25/archi …

ただしオリジナルプラグイン配布サイトが閉鎖しているので
Survival: Plug-in アーカイブ
http://survival.zionic.org/archives/mt/plugin/in …
からソースをコピーして XXXXXX.pl の形で保存すれば使えると思われます。

ちなみに現在 Archive Date Header と Compare プラグインはインストール済みでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!