タグ「カスタマイズ」 の検索結果(1/1)

September 10, 2010

Movable Type 5: 時間差再構築計画、再び

以前、cronとスクリプトを使って、公開キューでのMT5の再構築をしようとチャレンジしましたが、なぜか再構築してくれなくて断念。その後、ほったらかしだったのですが、今日MT5.03がリリースされているのを知ってリリースノートを見ていたら、これってバグだったという事を知りました。なんと!?

5.03へのアップグレードは、またバックアップとかが大げさなので、5.02 パッチ(公開キューの修正)で再チャレンジですよ。設定は完了済み。このエントリで実験ですよ。

続きを読む "Movable Type 5: 時間差再構築計画、再び"

September 1, 2010

Movable Type 5: 関連エントリーの表示

ブログの個別アーカイブのページ下に関連エントリーのリンクをつけようと思いつき、色々調べてみたのですが、どうもMT5向けの記事が少なくて苦戦したのでメモ代わりに。

関連エントリーの表示で考えないといけないのは、どのエントリーを選んでくるかと、どうやってリストにするかです。エントリーを選ぶには、エントリー毎に付けてあるタグを参照するか、タグを付けてなければカテゴリーから選んでくると言う2つから選ぶ事になります。ここのブログの場合、タグなんて付けてなかったので、必然的にエントリーから選ぶしかないというのが最初のハードル。

次にどうやってリストにするかですが、プラグインを使うか、MT4以降に実装されたタグを駆使するかです。プラグインを使おうとするとどうしてもタグでエントリーを選ぶ物がほとんどです。エントリーから選んでくるモノも無くはないのですが、MT5での使用例があんまり見つからなくて、不安が残ります。

色々調べた結果、TagSupplementalsというプラグインを使って、表示に関してはタグのあるエントリーはタグで、タグの無いエントリーはカテゴリーでリストを作るというテンプレートモジュールを作成する方法を見つけました。そのエントリー自身を表示させないようにしたり、スタイルシートを適応させたりするところで試行錯誤を繰り返しましたが、なんとか上手くいきましたよ。

まずはプラグインをインストールして、「関連記事」というテンプレートモジュールを作成し、以下のタグを貼り付けて保存します (スタイルシート関連のタグは外しています)。

<MTEntryIfTagged>
<!-- 関連記事 TagSupplementals -->
<div class="relatedentries">
<h3>関連記事</h3>
<ul>
<MTRelatedEntries lastn="5" weight="idf">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTRelatedEntries>
</ul>
</div>
<!--/ 関連記事 TagSupplementals -->
<MTElse>
<div class="relatedentries">
<MTSetVarBlock name="ecat"><MTEntryCategories glue=" OR "><
$MTCategoryLabel$></MTEntryCategories></MTSetVarBlock>
<h3>関連記事</h3>
<ul>
<MTEntries lastn="5" category="$ecat" unique="1">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTEntries>
</ul>
</div>
</MTEntryIfTagged>​

後は、表示させたいアーカイブテンプレートの適当な場所に、

<mt:include module="関連記事" />

を書き込めばOKです。

これまで、エントリー毎にタグを付けるのって、面倒なのでやってなかったのですが、今後は付けていこうと思いますよ。過去のエントリーはかなりの数になるので、時間のある時にぼちぼちとやっていこうかと思ってます。


今回参考にさせてもらったページ。
TagSupplementals - ogawa - 「タグ」機能を追加・拡張するプラグイン。 - Project Hosting on Google Code
「TagSupplementals Plugin」プラグインで関連記事を表示:Nakamura's Weblog
MT5 関連記事へのリンクを自動表示したい:+Chip(プラスチップ)

August 14, 2010

Movable Type 5: 時間差再構築計画、スタック中

昨夜設定して上手くいくだろうと、高をくくっていた公開キューとcronを使ったMT5の再構築高速化計画ですが、上手く再構築が出来ていないので、失敗中という状況です。

cronでタスクが実行される度にメールが来るように設定しているので、ちゃんとcronが回ってる事は間違いないのですが、となるとスクリプトが悪いのか、どこか設定が間違ってるのか。

ダッシュボートから「全ての再構築」を掛けてもアーカイブが再構築されていないので、どうもテンプレートの設定あたりが変になってるのではないかと当たりはつけているものの、スクリプト内の記述で疑わしいところがあるので、これからこのエントリで実験してみようと思ってます。毎時20分にスクリプトが走るので、後で結果を確認してみます。上手くいくといいんだけど。

続きを読む "Movable Type 5: 時間差再構築計画、スタック中"

August 14, 2010

Movable Type 5: 再構築高速化

このサイトのシステムをMovable Type 5.0.2にアップグレードして、紆余曲折はあったものの上手く動くようになって機嫌の良い日々を過ごしていたのですが、ここ最近、エントリを投稿して再構築が掛かると、"502 Server dropped connection"のエラーが出て失敗する事がしょっちゅうだったのです。最初の頃は再構築もめっちゃ早くなって喜んでいたんですが、わずかな期間で何が起こったのでしょう。

さておき、そのまま放っておくのもよろしくないので、テンプレート毎の公開設定を変更する事にしました。メインページや個別エントリはすぐに更新して欲しいのでスタティック、ちょっと遅れても大丈夫な月別アーカイブやカテゴリアーカイブは公開キュー、スタイルシートやJava Scriptは手動に変更。これで幾つかの過去のエントリで確かめてみたところ、うまくいっている感じに見えます。新規作成の時の再構築はすごく早くなりましたよ。

公開キューは、サーバでcronを動かさないといけないのでいささか面倒なのですが、使っているホスティングサーバではコントロールパネルという管理画面からcronの設定も出来るので簡単。このエントリでもテストしてみようと思ってますよ。

動的なphpでの出力はしたくなかったので、今回もなんとか静的なページで運用出来る方法を取りました。ちょっとした設定で、使いにくくなったり、上手く使えたり、面白いものですね。

今回参考にさせてもらったページ。
公開設定を見直してMovableTypeの再構築を高速化する - Open MagicVox.net
指定日投稿や公開キュー等のスケジュール処理の設定

July 31, 2010

Movable Type 5: アーカイブページの分割方法

わたし、ver.2か3の頃に作ったMovable Typeのテンプレートを引きずったまま使っていたので知らなかったのですが、ver.4の頃からカテゴリーや月別のアーカイブファイルはhtmlファイルで書き出す設定にしていると、初期設定で設定しているエントリー数以上は表示されなくなっているのですよ。つまり、数百件のエントリーがあるカテゴリーでも、5件と設定していたら残りは見えない。見るためには検索するか月別アーカイブからたどるしかない。

それをページ分割して次のページへと見れるようにしてやるにはphpで吐き出すようにしないといけないのですが、古いタイプの人間なのか、どうも動的にページ作成するというのはビビる。サーバーの容量もまだ余裕があるので、静的なhtmlで運用したいので、それなら何か方法を考えなくてはなりません。で、検索すると発見したのが、PageButeというプラグインです。これなら静的ページを分割してくれます。

早速導入したところ、月別ページの分割は全くトラブルなしでページ分割されたのですが、カテゴリーアーカイブの分割がうまくいかない。最初はエントリーが空のページが生成される有り様でした。原因は分岐処理を掛ける"MTelse"というタグで、サブカテゴリーを持てるカテゴリーというアーカイブが上手く動かなかった様子。色々調べて、最終的にたどり着いたテンプレートの書き方がこれです。デザイン > テンプレート > アーカイブテンプレート一覧 > ブログ記事リストの35行目辺り。

<mt:if name="datebased_archive">
<MTPageContents count="10">
<mt:entries>
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<$MTPageSeparator$>
</mt:entries>
</MTPageContents>
<mt:else>
<MTPageContents count="10">
<mt:entries lastn="0">
<mt:entryTrackbackData />
<mt:include module="ブログ記事の概要" />
<$MTPageSeparator$>
</mt:entries>
</MTPageContents>
</mt:if>

赤字が追加したタグ、青字が今回のキモになるポイントでした。
まず、mt:else後にもう一回MTPageContentsタグを入れてやる事で、カテゴリーアーカイブが空で出力されるのが回避出来ます。ただ、これだけだとエントリーの数が規定数(ここでは10)に達していないカテゴリーがやっぱり空になってしまうので、それを青字のところのlastnを0に指定してやることで回避しています。

今回、久しぶりにSQLやらMovable Typeやらテンプレートやらタグやら、色々触りました。最近は検索が強力なのですぐにある程度の問題解決は出来るのですが、完全に自分の症状と一致するケースはまれなので、トライ&エラーの繰り返しでしたよ。なかなか楽しかったですが、熱中しちゃって寝不足になるのが困ったところですね。

今回参考にさせてもらったページ。
静的ページ用ページ分割プラグイン:PageBute | スカイアークシステム
静的ページのままでもページ分割できる! - それだよ。
小粋空間: Movable Type 4 のカテゴリーアーカイブで全てのブログ記事を表示する