Movable Type のブロックタグにファンクションタグで使うモディファイアを指定する

April 30,2008 3:13 AM
Category:[テンプレートタグ]
Tag:[]
Permalink

「ブロックタグに、ファンクションタグで使うようなグローバルモディファイアを指定するとどうなるのか」という実験です。オチあはりません。

以下、MTEntries タグに encode_html="1" を設定しない場合と、設定した場合の「最近のエントリー」を出力してみます。

1.encode_htmlなしの場合

サブテンプレート

<mt:entries>
  <mt:entriesHeader><ul></mt:entriesHeader>
    <li><a href="<mt:entryPermalink />"><mt:entryTitle /></a></li>
  <mt:entriesFooter><ul></mt:entriesFooter>
</mt:entries>

出力結果

<ul>
<li><a href="http://user-dmain/2008/04/5.html">ブログ記事5</a></li>
<li><a href="http://user-dmain/2008/04/4.html">ブログ記事4</a></li>
<li><a href="http://user-dmain/2008/04/3.html">ブログ記事3</a></li>
<li><a href="http://user-dmain/2008/03/2.html">ブログ記事2</a></li>
<li><a href="http://user-dmain/2008/02/1.html">ブログ記事1</a></li>
<ul>

2.encode_htmlありの場合

サブテンプレート

<mt:entries encode_html="1">
  <mt:entriesHeader><ul></mt:entriesHeader>
    <li><a href="<mt:entryPermalink />"><mt:entryTitle /></a></li>
  <mt:entriesFooter><ul></mt:entriesFooter>
</mt:entries>

出力結果

&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://user-dmain/2008/04/5.html&quot;&gt;ブログ記事5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://user-dmain/2008/04/4.html&quot;&gt;ブログ記事4&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://user-dmain/2008/04/3.html&quot;&gt;ブログ記事3&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://user-dmain/2008/03/2.html&quot;&gt;ブログ記事2&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://user-dmain/2008/02/1.html&quot;&gt;ブログ記事1&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;

ということで、このサンプルでは見事にブロック内部全体がエンコードされました。
なお、これを使えばブラウザの[ページ]-[ソースの表示]を使わずに、ブラウザで直接ソースコードを見ることができます。

「グローバルモディファイア」という名前は伊達ではありませんでした。

Comments [0] | Trackbacks [0]

この蜃気楼は

April 29,2008 2:08 AM
Category:[ダジャレ]
Tag:[]
Permalink
Comments [0] | Trackbacks [0]

Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その2)

April 28,2008 2:11 AM
Category:[エントリー]
Tag:[, , ]
Permalink

Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法を、2回に分けて紹介します。

「サンプルを」という要望を頂いているのですが、時間がとれないので、以下のイメージのみでお許しください。

やりたいことは、ひとつのブログ記事アーカイブを使った、カテゴリー別のブログ記事ページのデザイン(HTMLマークアップやCSS)の切り替えです。

カスタマイズイメージ

1.MTEntryIfCategory タグブロック内のサブテンプレートをモジュール化する

ブログ記事アーカイブのデザインを変更する1つめの方法で、MTEntryIfCategory タグブロック内にサブテンプレートをベタ書きするのではなく、MTInclude タグを使います。

カテゴリー1~3

<MTEntryIfCategory name="カテゴリー1">
<$MTInclude module="カテゴリー1"$>
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー2">
<$MTInclude module="カテゴリー2"$>
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー3">
<$MTInclude module="カテゴリー3"$>
</MTEntryIfCategory>

こうすることにより、カテゴリーアーカイブ本体では「どのカテゴリーにどのテンプレートを割り当てるか」という制御に徹することができ、テンプレート全体の見通しがよくなります。

汎用的なデザインを与えたいカテゴリー4~6を新たに追加する場合は、次のようにします。

<MTEntryIfCategory name="カテゴリー1">
<$MTInclude module="カテゴリー1"$>
<MTElse>
  <MTEntryIfCategory name="カテゴリー2">
  <$MTInclude module="カテゴリー2"$>
  <MTElse>
    <MTEntryIfCategory name="カテゴリー3">
    <$MTInclude module="カテゴリー3"$>
    <MTElse>
    <$MTInclude module="カテゴリーその他"$>
    </MTEntryIfCategory>
  </MTEntryIfCategory>
</MTEntryIfCategory>

最初の MTEntryIfCategory タグでカテゴリー1であるか判定をし、そうでなければ MTElse を実行して、次の MTEntryIfCategory タグでカテゴリー2であるか判定をします。その繰り返しで、最後のカテゴリー判定にマッチしなかったカテゴリーには一番最後の MTElse タグの内容、つまりデフォルトとなるデザインのテンプレートモジュールを呼び出します。

2.MTEntryIfCategory タグを除去して、モジュール化をさらに最適化する

さて、すでにお気づきの方もいらっしゃると思いますが、1項のリストは、カテゴリーを識別するキーさえ取得できれば、実は以下の1行で済みます。

<$MTInclude module="カテゴリーを識別するキー"$>

「カテゴリーを識別するためのキー」として、次のようにカテゴリー名を使ってみます。カテゴリー名は、MTInclude タグを実行する前に、MTSetVarBlock タグを使って変数に設定し、変数名をmoduleモディファイアに与えれば、ダイナミックにカテゴリー名を設定することができます。

<$MTCategoryLabel setvar="category_name$>
<$MTInclude module="$category_name"$>

これで、このアーカイブが「カテゴリー1」の再構築を行うときには変数 category_name には「カテゴリー1」が、「カテゴリー2」の再構築を行うときには変数 category_name には「カテゴリー2」...という具合に設定され、それぞれ「カテゴリー1」「カテゴリー2」...という名前のテンプレートモジュールを呼び出します。

注意するのは、変数category_nameをmoduleモディファイア(というか、nameモディファイア以外)で使う場合は、変数名の前に大抵「$」をつけておく、ということです。

3.MTIf タグを使ってデフォルトデザインの条件分岐をつける

2つめのリストのように、デフォルトのデザインと振り分けたい場合は、さらに MTIf タグと MTCategoryDescription タグで制御します。

<$MTCategoryDescription setvar="category_description$>
<mt:if name="category_description">
  <$MTInclude module="$category_description"$>
<mt:else>
  <$MTInclude module="デフォルト"$>
<mt:if>

このリストを使う前準備として、各カテゴリーの「カテゴリーの説明」欄に、呼び出したいモジュール名を設定しておきます。デフォルトデザインのモジュールを呼び出したいときには、「カテゴリーの説明」欄には何も設定しません。

そうすれば、MTIf タグの判定で「カテゴリーの説明」欄に記入されている場合に、「カテゴリーの説明」欄に設定された名前のテンプレートモジュールを呼び出します。「カテゴリーの説明」欄に記入していない場合は、「デフォルト」という名前のテンプレートモジュールを呼び出します。

なお、前回もお伝えしたとおり、「カテゴリーの説明」欄を使うよりも、カスタムフィールドを利用した方が妥当に思われます。


Comments [2] | Trackbacks [0]

キヤノン PIXUS mini360

April 27,2008 1:50 AM
Category:[mono]
Tag:[, ]
Permalink

かなり日が経ってしまいましたが、先日行われたMT4LP5 の直前に、交換用の名刺を手元に持ち合わせていないことに気がつき、名刺印刷用に「キヤノン PIXUS mini360」を急遽購入しておりましたので、製品の紹介まで。

キヤノン PIXUS  mini360キヤノン PIXUS mini360

キヤノン 2007-10-04
売り上げランキング : 3497

Amazonで詳しく見る
by G-Tools

この機種を選んだのは、通常のA4サイズを印刷するような大きい機種は置き場がなく、フォトプリンタ系で探し始めたためです。が、「プリンタで名刺を印刷する」という需要が少ないのか、そもそもどのフォトプリンタが名刺サイズに対応しているのか分からない、というところでつまづきました。

結局、カタログを睨めっこして、名刺サイズに対応している「キヤノン PIXUS mini360」を選んだのですが、今考えると、他のキャノンのフォトプリンタ(SELPHY)でもできたのかもしれません。カタログスペック上はこの機種しか載っていませんでした。

下は、キャノン SELPHY シリーズです。

Canon コンパクトプリンター SELPHY CP750Canon コンパクトプリンター SELPHY CP750

キヤノン 2007-06-07
売り上げランキング : 6754

Amazonで詳しく見る
by G-Tools
Canon コンパクトプリンター SELPHY CP740Canon コンパクトプリンター SELPHY CP740

キヤノン 2007-06-07
売り上げランキング : 6418

Amazonで詳しく見る
by G-Tools

話を戻して、キヤノン PIXUS mini360は、キャノンのフォトプリンタでは唯一のインクジェット方式(他は熱転写方式)です。また、4色カラーながら、最高解像度9600dpi、最小インク滴1pl というハイスペック。
操作も簡単、きびきびとした印刷っぷりで、予めデザインしていた名刺をあっという間に印刷できました(都合100枚)。

本来の機能であるフォトプリントは、主流になったメモリーカード差し込み方式(市販アダプタを使えば「miniSDメモリーカード」や「メモリースティック デュオ」からのプリントも可)。赤外線通信に対応したカメラ付き携帯電話なら、メモリーカードやケーブルなしで印刷できます。Bluetoothでのワイヤレスプリントも可能です(オプションのBU-20が必要)。
さらに別売のバッテリーを組み合わせれば、コンセントがない場所でもプリントできます(Lサイズ約130枚印刷可能)。

機能詳細は仕様は mini360 の公式サイトをご覧ください。

今回印刷した名刺はほとんどなくなったので、また機会があれば新しいデザインを考えたいと思います。好きな枚数も印刷できることや、デザインのバリエーションや微調整ができるのが、自前で印刷できるメリットですね。

インクジェットプリンタを購入したのは、おそらく10年振りくらいです。
ちなみに、前に買ったのはエプソンのPM-3500Cというもので、A3ノビまで対応しているので重宝しています。いまだに使ってはいるものの、ちょっと使わないとインクの噴射口が汚れるのか、きれいに印刷できるまで何回もクリーニングしなければならない状態です。
そろそろ次のプリンタを買わなければと思う今日この頃です。

Comments [0] | Trackbacks [1]

Movable Type 4.15 ベータ1リリース

April 26,2008 12:33 AM
Category:[4.15]
Tag:[, ]
Permalink

公にアナウンスされていないようですが、Movable Type 4.15 ベータ1(プロフェッシュナルパック同梱版)がリリースされました。言い換えると、MTOS 4.15 ベータのコア機能をベースにした Movable Type 4.15 ベータ(カスタムフィールド機能つき)がリリースされた、ということです。

Movable Type 4.15 ベータ

すでに藤本壱さんの記事「Movable Type 4.15β4とメタデータの扱い」や mtos-ja で情報が公開されていますが、4.15 ではカスタムフィールドのテーブル構成が見直されています。

言い換えると、カスタムフィールドを実装するためのバックエンド機能が 4.15 で見直されて、カスタムフィールドはそれを元に作り直されています。

ちなみに、4.15 では MT::Meta クラスが新しく実装され、データベースには entry_meta とcategory_meta というテーブルが追加されています。さらに、mt_asset_meta/mt_author_meta/mt_blog_meta/mt_template_meta というテーブルも追加されています。
それに伴い、mt_entry テーブルから entry_meta カラムがなくなりました。

4.1 のテーブル(抜粋)

4.1 のテーブル構成(抜粋)

4.15 のテーブル(抜粋)

4.15 のテーブル構成(抜粋)

entry_meta のテーブル構造

entry_meta のテーブル構造

カスタムフィールドを利用した場合、指定した型によって適切なカラムにデータを格納するようです。また、テキストや日付などの単純な構造のデータについてはシリアライズされません。

種類が「テキスト」のカスタムフィールド設定例

種類が「テキスト」のカスタムフィールド設定例

種類が「日付と時刻」のカスタムフィールド設定例

種類が「日付と時刻」のカスタムフィールド設定例

Comments [0] | Trackbacks [0]

Movable Type 4 でカテゴリー別にブログ記事ページのデザインを切り替える方法(その1)

April 25,2008 1:01 AM
Category:[エントリー]
Tag:[, , ]
Permalink

Movable Type 4 で、カテゴリー別にブログ記事ページのデザインを切り替える方法を、2回に分けて紹介します。

やりたいことは、ひとつのブログ記事アーカイブを使った、カテゴリー別のブログ記事ページのデザイン(HTMLマークアップやCSS)の切り替えです。

カスタマイズイメージ

1.MTEntryIfCategory タグを使用する

ひとつめは、ブログ記事アーカイブテンプレートの中で MTEntryIfCategory タグを使って、カテゴリー別に処理を振り分ける方法です *1。MTEntryIfCategory タグは、処理中のブログ記事が属するカテゴリーを判定するためのタグです。このタグはブログ記事コンテキストで動作します。

MTEntryIfCategory タグの name モディファイアには、カテゴリー名が重複しないように設定します。

次のサンプルは、カテゴリー1~3に属するブログ記事のテンプレートを振り分けるサブテンプレートです。

<MTEntryIfCategory name="カテゴリー1">
    :
(カテゴリー1に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー2">
    :
(カテゴリー2に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー3">
    :
(カテゴリー3に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>

また、タグの構造を変更すれば、特定のカテゴリーに属するブログ記事に特殊なデザインを与え、そうでないものについては汎用的なデザインを適用することもできます。

例えば、冒頭のサブテンプレートに、汎用的なデザインを使いたいカテゴリー4~6を新たに追加する場合、最初に示したサブテンプレートでは、カテゴリー4~6を個別に指定する必要がありますが、次のように変更すれば、一括した指定が可能です。

<MTEntryIfCategory name="カテゴリー1">
    :
(カテゴリー1に属するブログ記事アーカイブのテンプレート)   
    :
<MTElse>
  <MTEntryIfCategory name="カテゴリー2">
     :
 (カテゴリー2に属するブログ記事アーカイブのテンプレート)   
     :
  <MTElse>
    <MTEntryIfCategory name="カテゴリー3">
      :
  (カテゴリー3に属するブログ記事アーカイブのテンプレート)   
      :
    <MTElse>
      :
  (カテゴリー4~6に属するブログ記事アーカイブのテンプレート)   
      :
    </MTEntryIfCategory>
  </MTEntryIfCategory>
</MTEntryIfCategory>

最初の MTEntryIfCategory タグでカテゴリー1であるかを判定し、そうでなければ MTElse を実行して、次の MTEntryIfCategory タグでカテゴリー2であるかを判定します。その繰り返しで、最後のカテゴリー判定にマッチしなかったカテゴリーのブログ記事には一番最後の MTElse タグの内容、つまりデフォルトとなるデザインを適用します。

ちなみに、次の設定は誤りです。

<MTEntryIfCategory name="カテゴリー1">
    :
(カテゴリー1に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー2">
    :
(カテゴリー2に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー3">
    :
(カテゴリー3に属するブログ記事アーカイブのテンプレート)   
    :
<MTElse>
    :
(カテゴリー4~6に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>

理由は、「カテゴリー4~6に属するブログ記事アーカイブのテンプレート」と書かれた部分にはカテゴリー1とカテゴリー2が含まれるからです。

2.スタイルシートについて

ここでは次の方法が考えられます。

head 要素が、1項のサブテンプレートの各カテゴリー別の部分に含まれているのであれば、head 要素内にカテゴリー用のスタイルシートを呼び出す link 要素をそのまま記述します(下)。

<MTEntryIfCategory name="カテゴリー1">
<head>
<link rel="stylesheet" href="<$MTBlogURL$>[カテゴリー1に属するブログ記事のスタイルシートファイル名]" type="text/css" encode_html="1"$>" media="screen,tv" />
</head>
    :
(カテゴリー1に属するブログ記事アーカイブのテンプレート)   
    :
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー2">
<head>
<link rel="stylesheet" href="<$MTBlogURL$>[カテゴリー2に属するブログ記事のスタイルシートファイル名]" type="text/css" encode_html="1"$>" media="screen,tv" />
</head>
    :
(カテゴリー2に属するブログ記事アーカイブのテンプレート)   
    :
以下省略

そうではなく、ブログ記事テンプレートから「ヘッダー」テンプレートモジュール(つまり head 要素)を呼び出している場合は、ブログ記事テンプレートの先頭に、次のような MTSetVar タグを記述します。

<MTEntryIfCategory name="カテゴリー1">
<mt:setvar name="style" value="カテゴリー1に属するブログ記事のスタイルシートのファイル名">
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー2">
<mt:setvar name="style" value="カテゴリー2に属するブログ記事のスタイルシートのファイル名">
</MTEntryIfCategory>
<MTEntryIfCategory name="カテゴリー3">
<mt:setvar name="style" value="カテゴリー3に属するブログ記事のスタイルシートのファイル名">
</MTEntryIfCategory>
<$MTInclude module="ヘッダー"$>
 
<MTEntryIfCategory name="カテゴリー1">
    :
(カテゴリー1に属するブログ記事アーカイブのテンプレート)   
    :
以下省略

そして、「ヘッダー」モジュールには次のように記述しておきます。
これで、上のサブテンプレートで設定した変数 style の内容、つまりCSSファイル名が、「ヘッダー」モジュールに追加した link 要素の href 属性に反映されます。

<mt:if name="entry_archive">
<link rel="stylesheet" href="<$MTBlogURL$><$mt:getvar name="style"$>" type="text/css" title="<$MTCategoryLabel encode_html="1"$>" media="screen,tv" />
</mt:if>

または、「カテゴリーの説明」欄にスタイルシートのファイル名(下のサンプルでは拡張子なし)を設定しておけば、ブログ記事アーカイブに CSS ファイル名を設定しなくても、「ヘッダー」モジュールに設定した MTCategoryDescription タグで CSS ファイルを指定できます(下)。

<mt:if name="entry_archive">
<link rel="stylesheet" href="<$MTBlogURL$><$MTCategoryDescription$>.css" type="text/css" title="<$MTCategoryLabel encode_html="1"$>" media="screen,tv" />
</mt:if>

汎用的なカテゴリー用のスタイルシートを作りたい場合は、最初のサブテンプレートを次のように変更します。

<MTEntryIfCategory name="カテゴリー1">
  <mt:setvar name="style" value="カテゴリー1に属するブログ記事のスタイルシートのファイル名">
<MTElse>
  <MTEntryIfCategory name="カテゴリー2">
    <mt:setvar name="style" value="カテゴリー2に属するブログ記事のスタイルシートのファイル名">
  <MTElse>
    <MTEntryIfCategory name="カテゴリー3">
      <mt:setvar name="style" value="カテゴリー3に属するブログ記事のスタイルシートのファイル名">
    <MTElse>
      <mt:setvar name="style" value="カテゴリー4~6に属するブログ記事のスタイルシートのファイル名">
    </MTEntryIfCategory>
  </MTEntryIfCategory>
</MTEntryIfCategory>
<$MTInclude module="ヘッダー"$>
 
<MTEntryIfCategory name="カテゴリー1">
    :
(カテゴリー1に属するブログ記事アーカイブのテンプレート)   
    :
以下省略

異なるカテゴリーで同じデザインを適用したい場合は、MTCategoryDescription タグに該当する「カテゴリーの説明」欄に同じ名称を記述しておきます。

なお、「カテゴリーの説明」よりもカスタムフィールドを使う方が、用途が明確になってよりいいでしょう。

次回は、さらに最適化したサブテンプレートを紹介します。


*1:MTIfCategory タグでも同じ効果があります。ここではブログ記事コンテキストであることを明示するために MTEntryIfCategory タグを使用しています。逆にカテゴリーアーカイブで MTEntryIfCategory タグは使えません。カテゴリーアーカイブなどのブログ記事コンテキスト以外のコンテキストで使用する場合は、MTEntries タグで括る必要があります。

Comments [3] | Trackbacks [0]

MTOS 4.15 ベータ4リリースと公開プロファイルの日本語表記募集

April 24,2008 12:55 PM
Category:[4.15]
Tag:[, ]
Permalink

MTOS 4.15 ベータ4がリリースされました。

Movable Type 4.15 ベータ

管理画面系では、ローカライズがほぼ出来上がっています。

MT4.15 のテンプレート一覧

また、Six Apart では現在、公開プロファイルの日本語表記を募集しています。

MT4.15 で追加される公開プロファイル

今回新たに加わった2つの公開プロファイル Asynchronous Publishing と High Priority Static Publishing の日本語表示名を募集したいと思います。記事を書いてこの記事にトラックバックを送信いただくか、フィードバックフォームより [Movable Type のバージョン] 項目を Movable Type 4 Beta と選択し、ご投稿ください。

表記を募集しているのは次の2つです。

  • Asynchronous Publishing(バックグラウンドキューを使った再構築)
  • High Priority Static Publishing(インデックステンプレート、ブログ記事・ウェブページアーカイブテンプレートは静的再構築。それ以外のテンプレートは、バックグラウンドキューを使った再構築)

ベータ4の公開プロファイル選択画面は英語表記のままです。

公開プロファイル選択画面

個人的には、

  • Asynchronous Publishing:非同期スタティックパブリッシング、バックグラウンド・スタティックパブリッシング、ピリオディック・スタティックパブリッシング、キューイング・スタティックパブリッシング
  • High Priority Static Publishing:ハイブリッドパブリッシング、アドバンストパブリッシング

といったところでしょうか。

Asynchronous Publishing はスタティックパブリッシングの一種であることが分かる方がいいかなと思って、「スタティック」という単語を含めてます。

「ハイブリッドパブリッシング」は、上ノ郷谷さんが、ProNetミーティングや開発者向けカンファレンスでと言われていたらしいです(参考記事:Junnama Online - RebuildAt1stView(Beta) ハイブリッド・パブリッシング対応版。)。異なる再構築方式を組み合わせているので、この表記はしっくりしますね。

Comments [0] | Trackbacks [0]

休日表示付きリアルタイムカレンダー for WordPress 日本語版

April 24,2008 12:38 AM
Category:[カレンダー]
Tag:[, , , ]
Permalink

休日表示付きリアルタイムカレンダー for WordPress」をバージョンアップして、WordPress 日本語版で曜日の部分に色をつけられるようにしました。

WordPress 日本語版+1.4

WordPress ME のカレンダーでは、曜日部分の土日に配色の設定がされていました。誤解されている方が多いようですが、これは「休日表示付きリアルタイムカレンダープラグイン」の設定ではなく、デフォルトで配色されていました(下)。

WordPress ME

したがって、WordPress 日本語版で「休日表示付きリアルタイムカレンダープラグイン(v1.3)」を適用しても、曜日は真っ黒のままです(下)。

WordPress 日本語版+1.3

これを今回のバージョンアップで、WordPress 日本語版にプラグインを適用させたときに、土曜日と日曜日に配色の設定を行いました(下)。

WordPress 日本語版+1.4

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

プラグインを以下のリンクからダウンロードしてください。

休日表示付きリアルタイムカレンダー for WordPress

2.プラグインのインストール

ダウンロードしたプラグインを展開し、中にある realtime-calendar フォルダを、wp-content/plugins にアップロードします。

WordPress のプラグイン一覧で、「Realtime Calendar」の右側の「利用する」をクリックすればOKです。あとはカレンダーを表示させるだけです。

プラグインのインストール

3.注意事項

カレンダー用のテンプレートタグは、下記のもので動作の正常性を確認しています。

<li id="calendar"><?php get_calendar(); ?></li>

get_calendar() を括るタグに id属性 calendar を付与すれば大丈夫だと思います。CSS は適宜設定願います。

また、カレンダー先頭の「xxxx年xx月」という表示より当月を割り出していますので、この部分の表示が異なっていると、正常に動作しません(多言語対応はしていません)。

Comments [8] | Trackbacks [3]

サブカテゴリーリストを定義型リストでマークアップする

Movable Type の、2階層のサブカテゴリーリストで、定義型リスト(dl/dt/dd:または定義リスト)によるマークアップを実現する方法です。ここでは Movable Type によるカスタマイズを記していますが、定義型リストの使い方の参考にもなると思います。

以前、ご質問を頂いたもので、本エントリーで情報展開しておきます。

1.完成例

親カテゴリーに dt 要素、子カテゴリーは全体を dd 要素で括った後、順不同リスト(ul/li)でリスト表示します。

<dl>
  <dt>親カテゴリーA</dt>
  <dd>
    <ul>
      <li>子カテゴリーA-1</li>
      <li>子カテゴリーA-2</li>
      <li>子カテゴリーA-3</li>
    </ul>
  </dd>
  <dt>親カテゴリーB</dt>
  <dd>
    <ul>
      <li>子カテゴリーB-1</li>
      <li>子カテゴリーB-2</li>
      <li>子カテゴリーB-3</li>
    </ul>
  </dd>
</dl>

ちなみに、上のリストを順不同リストで表現すると、次のようになります。

<ul>
  <li>親カテゴリーA
    <ul>
      <li>子カテゴリーA-1</li>
      <li>子カテゴリーA-2</li>
      <li>子カテゴリーA-3</li>
    </ul>
  </li>
</ul>
<ul>
  <li>親カテゴリーB
    <ul>
      <li>子カテゴリーB-1</li>
      <li>子カテゴリーB-2</li>
      <li>子カテゴリーB-3</li>
    </ul>
  </li>
</ul>

2.サブテンプレート

上記を実現するサブテンプレートは次のようになります。

<dl>
<MTTopLevelCategories>
<MTSubCatIsFirst><MTHasNoParentCategory><MTElse><dd><ul></MTHasNoParentCategory></MTSubCatIsFirst>
<MTIfNonZero tag="MTCategoryCount">
<MTHasNoParentCategory>
<dt><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]</dt>
<MTElse>
<li><a href="<$MTCategoryArchiveLink$>" title="<$MTCategoryDescription$>"><MTCategoryLabel></a> [<$MTCategoryCount$>]
</MTHasNoParentCategory>
<MTElse>
<MTHasNoParentCategory>
<dt><MTCategoryLabel></dt>
<MTElse>
<li><MTCategoryLabel>
</MTHasNoParentCategory>
</MTIfNonZero>
<MTSubCatsRecurse>
<MTHasNoParentCategory>
<MTElse>
</li>
</MTHasNoParentCategory>
<MTSubCatIsLast><MTHasNoParentCategory><MTElse></ul></dd></MTHasNoParentCategory></MTSubCatIsLast>
</MTTopLevelCategories>
</dl>

余談ですが、定義型リストによるマークアップは、以前行われた「コーディングコンテストVol.1」で最優秀賞を獲得された、「TOTOCO.ORG」さんのマークアップで利用されていて、審査員の方から「dl要素の使い方が良い」と、高い評価を受けています。

コーディングコンテストVol.1最優秀賞☆コーディングコンテストVol.1

下の画面がコンテストで最優秀賞を得たサイトです。ブラウザから[表示]-[ページのソース]でマークアップをみることができます。

最優秀賞☆コーディングコンテストVol.1

例えば、グローバルナビゲーションは次のようなマークアップです(一部省略しています)。

<dl id="globalNav">
  <dt>主なカテゴリー</dt>
  <dd>
    <ul>
      <li><a href="index.html"><img src="nav_home_cr.gif" alt="ホーム" width="98" height="54" /></a></li>
      <li><a href="service/index.html"><img src="nav_biz.gif" alt="事業内容" width="98" height="54" /></a></li>
      <li><a href="products/index.html"><img src="nav_products.gif" alt="製品情報" width="98" height="54" /></a></li>
      <li><a href="recruit/index.html"><img src="nav_recruit.gif" alt="採用情報" width="98" height="54" /></a></li>
      <li><a href="about/index.html"><img src="nav_about.gif" alt="会社概要" width="98" height="54" /></a></li>
      <li><a href="contact/index.html"><img src="nav_contact.gif" alt="お問い合わせ" width="99" height="54" /></a></li>
    </ul>
  </dd>
</dl>

dt 要素は、次のCSSで非表示になっています(セレクタ名は一部省略)。

dl#globalNav dt{
    position:absolute;
    overflow:hidden;
    width:0;
    height:0;
}

丁度この時執筆していた、「Movable Type WEBデザインの新しいルール」のグローバルナビゲーションのカスタマイズにも、この定義型リストによるマークアップを利用させていただきました。

Comments [0] | Trackbacks [0]

Movable Type のページ分割によるナビゲーションの前後ページ表示を絞り込む

April 22,2008 1:11 AM
Category:[ページ分割]
Tag:[, , ]
Permalink

Movable Type の MTPaginate プラグインによるページ分割を行った際、ナビゲーションの前後ページの表示を絞り込む方法です。

どういうことかと言うと、デフォルトの設定では、分割されたページが下の画面のようにすべて表示されてしまうのですが、本エントリーのカスタマイズを行えば、(多分)直近の前後ページのみの表示に変更できる、というものです。

カスタマイズ前

下は、カスタマイズを行った後のナビゲーションです。上の画面と同じ、5ページに分割されたサンプルで、1ページ目を表示している状態です(とりあえず前後1ページのナビゲーションを表示する設定にしています)。

カスタマイズ後

2ページ目を表示している時のナビゲーションです。3ページ目のナビゲーションが現れました。

カスタマイズ後

3ページ目を表示している時のナビゲーションです。4ページ目のナビゲーションが現れ、1ページの表示が消えます。

カスタマイズ後

4ページ目を表示している時のナビゲーションです。5ページ目のナビゲーションが現れ、2ページの表示が消えました。

カスタマイズ後

5ページ目を表示している時のナビゲーションです。3ページの表示が消えました。

カスタマイズ後

以下、カスタマイズ方法です。

1.MTPaginate プラグインによるページ分割の設定

下記の記事を参考にして、MTPaginate プラグインを Movable Type に設定してください。

注:2項を実施する前に、必ずページ分割が正常に動作することを確認してください。すべてを一気に行うと、正常に動作しなかった場合の切り分けができなくなります。

2.プラグインファイルの修正

MTPaginate/lib/MTPaginate.pm を任意のエディタで開き、赤色部分(v1.28 では 498行~506行)を青色部分に置き換えます。

                        $format_title = " . sprintf(' title=\"$format_title\"', \$i)" if $format_title;
                        $res .=<<PHP;
for(\$i = $start; \$i <= $end; \$i++) {
        if(\$i > $start)
                echo '$separator';
        if(\$i == \$paginate_current_page) {
                echo sprintf("$format_current", \$i);
        } else {
                echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
}
PHP
                        if ($format_all && $place_all eq 'after') {

下が置き換えた後のリストです。

                        $format_title = " . sprintf(' title=\"$format_title\"', \$i)" if $format_title;
                        $res .=<<PHP;
for (\$i = $start; \$i <= $end; \$i++) {
  if (\$paginate_current_page == 'all') {
    if(\$i > $start)
      echo '$separator';
    if(\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
    }
  } else {
    if (\$i > $start) {
      if (\$i == \$paginate_current_page && \$i != 1) {
        echo '$separator';
      } else if (\$i < \$paginate_current_page) {
        if (\$paginate_current_page - \$i < $offset) {
          echo '$separator';
        }
      } else {
        if (\$i - \$paginate_current_page < ($offset+1)) {
          echo '$separator';
        }
      }
    }
    if (\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      if(\$i < \$paginate_current_page) {
        if(\$paginate_current_page - \$i < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      } else {
        if(\$i - \$paginate_current_page < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      }
    }
  }
}
PHP
                        if ($format_all && $place_all eq 'after') {

追加した箇所の2行上に、さらに青色の行を1行追加してください。

                        $format_title = " . sprintf(' title=\"$format_title\"', \$i)" if $format_title;
                        my $offset = $args->{offset} || 2;
                        $res .=<<PHP;
for (\$i = $start; \$i <= $end; \$i++) {
  if (\$paginate_current_page == 'all') {
    if(\$i > $start)
      echo '$separator';
    if(\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
    }
  } else {
    if (\$i > $start) {
      if (\$i == \$paginate_current_page && \$i != 1) {
        echo '$separator';
      } else if (\$i < \$paginate_current_page) {
        if (\$paginate_current_page - \$i < $offset) {
          echo '$separator';
        }
      } else {
        if (\$i - \$paginate_current_page < ($offset+1)) {
          echo '$separator';
        }
      }
    }
    if (\$i == \$paginate_current_page) {
      echo sprintf("$format_current", \$i);
    } else {
      if(\$i < \$paginate_current_page) {
        if(\$paginate_current_page - \$i < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      } else {
        if(\$i - \$paginate_current_page < ($offset+1)) {
          echo "<a href=\\\"\$paginate_self=\$i$anchor\\\"$target" $format_title .  sprintf('>$format', \$i) . '</a>';
        }
      }
    }
  }
}
PHP
                        if ($format_all && $place_all eq 'after') {

修正が終わったら保存し、元のディレクトリにアップロードして、ファイルを上書きしてください。

うまく動かないようでしたら、元のMTPaginateのプラグインアーカイブから同じファイルを取り出して、再度チャレンジしてください。

3.offset モディファイアの指定

テンプレートに記述している MTPaginateNavigator タグに offset モディファイアを与えれば、前後に表示するページ数を指定できます。
指定しない場合のデフォルト値は2になっているので、前後2ページを表示します。

<MTPaginateNavigator offset="3">

とすれば、表示ページの前後3ページのナビゲーションを表示します。

4.動作確認状況

このカスタマイズで確認している MTPaginateNavigator タグのオプションは、

<$MTPaginateNavigator offset="n" style="links" format_all="All pages" place_all="before" separator=" | ">
<$MTPaginateNavigator offset="n" style="links" format_all="All pages" place_all="after" separator=" | ">

の2種類のみです。これ以外のパターンは未確認ですので、予めご容赦ください。

Comments [4] | Trackbacks [1]

mt-csv2customfields v0.02

CSV形式のデータを Movable Type のカスタムフィールドに一括読み込みさせるスクリプト mt-csv2customfields.cgi をバージョンアップしました。

追加機能は次の通りです。

  • CSVデータにカテゴリー名(またはサブカテゴリー名)が設定可能
  • カテゴリー名が存在しない場合、トップカテゴリーとして新規作成
  • CSVデータにタグが設定可能
  • タグの複数指定が可能
  • 既存のブログ記事タイトルを指定した場合、カスタムフィールドの内容を上書き

最新版のダウンロードと使用方法は以下の記事を参照願います。

mt-csv2customfields
Comments [12] | Trackbacks [0]

テキストからグラフィックをつくる(仮)

April 20,2008 1:23 AM
Category:[お知らせ]
Tag:[, ]
Permalink

このエントリーは、先日エントリーした「555万5555アクセス特別企画」で見事キリ番 5555555 をゲットされた方のサイト紹介です。

5555555

サイト名は「テキストからグラフィックをつくる(仮)」。管理者は都内デザイン事務所に勤務されている fooo さん。

テキストからグラフィックをつくる(仮)

(以下の説明はほとんどサイトからの引用です。予めご了承ください)

このサイトは「あるものにルールを当てはめて変換を行うことによって、新しい別のものをつくる」という、変換によるデザインの手法を試みる個人的な実験サイトということです。

で、現在行っているのは、上のキャプチャにある、テキストを変換してグラフィックを生成することを行われています。

この「テキストを変換してグラフィックを生成」のロジック(変換ルール)は次の通りです。

  1. テキストを品詞分解
  2. 品詞分解した言葉の先頭文字を抽出
  3. 五十音に対応色が割り振られており、先頭文字によって、品詞分解された各言葉の粒子の色が決定
  4. 色の粒子の大きさは、分解された各言葉の音数によって決定
  5. 描画はテキストの順番通りに行われ、テキスト解析が進むごとに下方向へ移動
  6. 左右方向の粒子の触れ幅は、テキストのひらがなの割合によって決定
  7. テキストに読点・改行がある場合、粒子の描画位置が再設定される
  8. テキストの段落や場面が変化すると、描画位置が下方向へ大きく移動
  9. テキスト内にキーワード語を設定した場合、先頭文字に関係なく特殊な模様が描画

さらに詳しい解説が「図解付きPDF(924KB)」でご覧になれます。これを読むと冒頭のグラフィックの意味がよくお分かりになるでしょう。

品詞分解に Monzai、描画に Illustrator を使用し、AppleScript で両ソフトの制御をしています。

ご本人が「このサイトについて」で、

グラフィックとテキストを見比べても、その関係性はわかりずらいものです。けれども、数種類のグラフィックを見比べることにより、簡単なルールでもテキストのリズムが見えてきます

とおっしゃってますが、テキストの特徴が相対的に比較できるので、オープンなサービスにできて、比較の対象が増えると結構面白いかもしれません。

ますますのご活躍を期待しています。

Comments [0] | Trackbacks [0]

この野菜は

April 19,2008 1:50 AM
Category:[ダジャレ]
Tag:[]
Permalink

完熟野菜だと

Comments [0] | Trackbacks [0]

MTOS 4.15 ベータ3リリース

April 18,2008 1:55 AM
Category:[4.15]
Tag:[, ]
Permalink

MTOS 4.15 ベータ3がリリースされていました。

Movable Type 4.15 ベータ3の提供を開始

Movable Type 4.15 Beta は Movable Type Open Source コミュニティにおけるパフォーマンス向上のアクティビティの成果が盛り込まれたリリースです。ソースコードは Movable Type Open Source 4.15 となりますので、ベータ3ではカスタムフィールドなどを含む Professional Pack は同梱されていません。

ベータ3から(?)、日本語版がダウンロードできるようになっています。

Movable Type 4.15 ベータ

テンプレート一覧の構成が大きく変わったのが衝撃で気がついてなかったのですが、一覧の中の表示も微妙に変わってます。
画面はインデックステンプレート一覧の一部について、MT4.1 と MTOS4.15ベータを比較したものです。

MT4.1 のテンプレート一覧

MT4.1 のテンプレート一覧

MTOS4.15 ベータのテンプレート一覧

MTOS4.15 ベータのテンプレート一覧

具体的には、

  • 「インデックステンプレートのページ表示のリンク」がテンプレート名に移動
  • 「ダイナミックテンプレートの表示」が公開欄(Staticの部分)に縮退
  • 「インデックスと同期して再構築」の表示が公開欄(Staticの部分)に縮退

となっているようです。4.1 から継承されているのは「ファイルにリンクされたテンプレート」のみです。

また、設定画面のダイナミックパブリッシングとバックグラウンド再構築の設定が、「公開設定」から消えました。公開設定に残っているのは、ダイナミックパブリッシングのオプションのみです。

公開設定

ダイナミックパブリッシングとバックグラウンド再構築の設定は、テンプレート編集画面で直接選択できるようになってます。
Statically と Manually の違いは、インデックスの再構築と同期する・しないの違いと思ってます。

再構築の設定

再構築を最適化するとこんな感じでしょうか。

再構築を最適化

ちなみにRSSもインデックステンプレートからなくなりました。

余談ですが、(多分)ベータ2からコメントに返信機能がデフォルトで表示されるようになりました。

コメントに返信機能

返信を設定して確認画面に移動すると、返信が無効になる件はフィードバックさせて頂いてます。

Comments [0] | Trackbacks [0]

「Movable Type プロフェッショナル・スタイル」重版決定

April 17,2008 1:05 AM
Category:[書籍]
Tag:[, ]
Permalink

4月上旬に発売された「Movable Type プロフェッショナル・スタイル」の重版が決定致しました。

Movable Type プロフェッショナル・スタイル MT4.1対応Movable Type プロフェッショナル・スタイル MT4.1対応
CSS Nite 上ノ郷谷 太一 蒲生 トシヒロ

毎日コミュニケーションズ 2008-04-08
売り上げランキング : 632

Amazonで詳しく見る
by G-Tools

CMSとして使うMovable Typeガイドブック」に引き続き、こちらも発売後1週間で重版が決まったようです。
大変多くの方にお買い上げいただいているようで、ありがとうございます。

書籍の構成を再掲しておきます。

Introduction:Movable Type 4の概要とテンプレートの基本

Track A:企業サイトへの応用

Track B:プラグイン開発とカスタマイズ

  • MTタグ、JavaScript を用いたサイトのカスタマイズ/ 荒木 勇次郎(小粋空間)
  • プラグインを利用したカスタマイズ/藤本 壱(The blog of H.Fujimoto
  • MTプラグインを作ろう!/関根 元和(MovableTypeで行こう!
  • 教えて!プラグインを使ったステップアップ/小野 崎 直昭(WolaWola
  • 管理画面のカスタマイズ/野田 純生(Junnama Online (Mirror)

Track C:スキルアップのための環境構築

  • MTの設置・運用に関するTIPS/ 丹羽 章(Online Digital Clock Works
    • Movable Typeを構築するためのサーバー選び
    • Movable Typeのサーバー別インストール方法
    • ローカルサーバーで動かすMT4(XAMPP、MAMP)
    • phpMySdminを使ったデータ移動
    • SPAM対策
    • セキュリティ対

私の担当分は30ページほどですが、テンプレートタグと JavaScript を使ったカスタマイズの解説を行っています。テンプレートタグの使い方はかなり細かく解説しているつもりですので、興味のある方はご覧ください。

他の方の執筆担当分も、テンプレートの基本からカスタマイズ、プラグインの利用や作成、環境設定に至るまで、充実した内容です。

Comments [0] | Trackbacks [0]

CSS でブログ本文の画像だけをセンタリングする

April 16,2008 12:30 AM
Category:[CSS]
Tag:[, ]
Permalink

ブログのエントリー本文は、一般的に左寄せで表示しますが、「本文中の画像だけをセンタリングしたい場合はどうすればいいですか?」というご質問を頂きましたので、本エントリーで紹介します。

このカスタマイズを行えば、下の画面のように、画像だけをセンタリングすることができます。

画像アップロードのオプション

ちなみに、これは昨年の11月に頂いた質問で、もっと早くエントリーを公開する予定でしたが、完全に忘却の彼方でした。大変申し訳ありません。

1.設定方法

エントリー全体が、

class="entry"

という class 属性で括られていると仮定した場合、CSS に、

.entry img {
    display:block;
    margin: 0 auto;
    text-align: center;
}

を追加するだけです。

class属性名が異なる場合は .entry の部分を変更してください。また、セレクタ名を img という要素セレクタにしてしまうと、ブログ全体に設定が蔓延してしまうので、必ずエントリー本文に絞り込むセレクタを設定してください。

2.Movable Type 4 の場合

Movable Type 4 であれば、ブログ記事に画像をアップロードした時に配置の設定が可能です。「位置」欄にある「中央」を選択すればOKです。

画像アップロードのオプション

この設定を行うと、img 要素に style 属性として、

style="margin: 0pt auto 20px; text-align: center; display: block;"

が設定されます。

img 要素にダイレクトに CSS が設定されるので、カスケードの優先度から、テンプレートを入れ替えても効果は変わりません。

Comments [2] | Trackbacks [3]

EntryCategory プラグイン

Movable Type には MTEntryCategory というファンクションタグが存在しますが、これをブロックタグに置き換えるプラグインを作りました。

元々の発端は、EntryCategoryID プラグインを作った時に、他のプライマリーカテゴリーに関する情報も、このようなファンクションタグでしか出力できないことを不満に思ったからです。

テンプレートタグのブロックタグは、リスト形式で出力するものがほとんどですが、

など、単数形のブロックタグもいくつか存在します。

つまり、MTEntryCategory もファンクションタグとして MTCategoryLabel の内容だけを出力するのではなく、ブロックタグとして振舞うのが本来のような気がした訳です。

1.ダウンロード

下記のリンクからプラグインアーカイブをダウンロードし、任意のフォルダに保存してください。

EntryCategory.zip

2.インストール

プラグインアーカイブを解凍し、中にある EntryCategory.pl を plugins ディレクトリにアップロードしてください。
ブログ管理画面より「システム」→「プラグイン」でプラグイン一覧を表示し、次のように表示されればOKです。

プラグイン一覧

3.使用方法

このプラグインが提供する MTEntryCategory テンプレートタグは、MTEntries タグブロック内、またはブログ記事アーカイブで利用可能です。

エントリーの属するプライマリカテゴリー名の一覧を出力する場合は、次のように記述します。

<MTEntries>
  <MTEntryCategory>
    <$MTCategoryLabel$>
  </MTEntryCategory>
</MTEntries>

エントリーの属するプライマリカテゴリーに親カテゴリーがある場合のみ、親カテゴリー名を出力する場合は、次のように記述します。

<MTEntries>
  <MTEntryCategory>
    <MTHasParentCategory>
      <MTParentCategory>
        <$MTCategoryLabel$>
      </MTParentCategory>
    </MTHasParentCategory>
  </MTEntryCategory>
</MTEntries>

その他、MTCategoryID、MTCategoryArchiveLink、MTCategoryBasename など、MTEntryCategory タグの中ではカテゴリー系のテンプレートタグがいろいろ使えます。

すでにテンプレートで MTEntryCategory を使っている場合は、検索機能の正規表現を使って検索、場合によっては置換してしまうと良いでしょう。

検索画面

Comments [1] | Trackbacks [0]

Firefox2 と Firefox3(ベータ版)の共存

April 14,2008 12:05 AM
Category:[Firefox]
Tag:[]
Permalink

Firefox3 Beta5 を Windows に入れてみました。

Firefox3 beta のインストール1

ついでに Firefox2 との共存方法も、公式サイトや他のサイトでの解説など(下)がありますが、補足を交えながら手順を説明します。

ここでは Windows での共存方法を解説します。

注:この記事を読みながら共存の設定をする場合は、この記事を Firefox 以外のブラウザで開いてください。

1.Firefox2 のプロファイルのバックアップ

本作業中にインストールした Firefox3 Beta をうっかり起動してしまうと、Firefox 2 のプロファイル(=ブラウザのオプション設定やアドオンなどが保存されているところ)が Firefox3 Beta のプロファイルで上書きされてしまいます。

こうなると、Firefox2 のプロファイルを復元するためには Firefox2を再インストールする必要があります(設定情報はクリアされるので最初からやり直し)。

とうことで、Firefox3 Beta をインストールする前に、Firefox2 のプロファイルをフォルダごとバックアップしておくことをおすすめします。

Firefox2 のプロファイルのフォルダは、プロファイル名が default、またはプロファイル自体が分からずに Firefox を利用しているのであれば、

C:¥Documents and Settings¥[ユーザ名]¥Application Data¥Mozilla¥Firefox¥Profiles¥xxxxxxxx.default

です。
[ユーザ名]はご自身のログインユーザ名、最後の「xxxxxxxx」は Firefox2 がつけた任意の半角英数文字です。

別のプロファイル名で Firefox2 を起動しているのであれば、最後のフォルダ名が「xxxxxxxx.プロファイル名」になっているフォルダを選択してください。

2.Firefox3 Beta のインストール

Firefox3 Beta をダウンロードし、ダウンロードアーカイブをダブルクリックして、「次へ」をクリック。

Firefox3 beta のインストール1

使用許諾書に同意するをチェックして、「次へ」をクリック。

Firefox3 beta のインストール2

標準インストールを選択して、「次へ」をクリック。

Firefox3 beta のインストール3

「インストール」をクリック。

Firefox3 beta のインストール4

「今すぐ Firefox を起動」のチェックを外して「完了」をクリック。チェックを外さないで完了すると Firefox3 Beta が起動し、Firefox2 のプロファイルが上書きされます。

Firefox3 beta のインストール5

3.プロファイルの作成

この設定を行う前に、必ず Firefox2 を閉じてください。開いたまま設定を行うと、説明通りの動作になりません(私はこれで一度失敗しました)。

タスクバーの[スタート]-[ファイル名を指定して実行]を選択。

プロファイルの作成1

このあと、プロファイルの作成方法には、3.1と3.2の2通りがありますが、3.1の手順で進んでください。3.2は備忘録的に記したものです。

3.1 簡単な設定

「firefox -createprofile 3beta」を入力。これで Firefox3 Beta 用の「3beta」という名前のプロファイルが作成されます。これは公式サイトで紹介されている方法です。

プロファイルの作成2-1

「3beta」という名前は他の名前でも構いませんが、ここでは「3beta」で説明を進めます。
3.2はスキップして4項に進んでください。

3.2 プロファイル作成ウィザードを利用した設定

「firefox -p」を入力して、「OK」をクリック。

プロファイルの作成2-2

表示されたダイアログの左上にある[新しいプロファイルを作成]をクリック。

プロファイルの作成3

「次へ」をクリック。

プロファイルの作成4

「新しいプロファイルの名前」に "3beta" を入力し「完了」をクリック。設定する名前は何でも構いませんが、ここでは「3beta」という名称で説明を進めます。
ちなみに、この画面で保存先が表示されます。これがプロファイルに対応したデータの保存先になります。

プロファイルの作成5

先程の「ユーザプロファイル選択」画面に、作成したプロファイル名「3beta」が追加されます。そして「今後このプロファイルを使用する」のチェックを外して[終了]をクリック

プロファイルの作成6

4.起動オプションの追加

それぞれの Firefox を起動するときに、プロファイルを指定して起動するようにします。

4.1 Firefox3 Beta の起動オプションの追加

デスクトップの「Mozilla Firefox 3 Beta 5」を右クリックして「プロパティ」 を選択。

起動オプションの追加1

「リンク先」欄の末尾に、半角スペースをいれた後、

-p 3beta -no-remote

を追加して、「OK」をクリック。

起動オプションの追加2

4.2 Firefox2 の起動オプションの追加

デスクトップの「Mozilla Firefox(Firefox2)」を右クリックして「プロパティ」 を選択。

起動オプションの追加3

「リンク先」欄の末尾に、半角スペースをいれた後、

-p default -no-remote

を追加して、「OK」をクリック。

起動オプションの追加4

「-no-remote」は、ひとつのアプリケーションを同時に複数起動するためのオプションです。

mozilla developer center

これで Firefox2 と Firefox3 Beta が共存できるようになりました。同時に開くことも可能です。

Firefox2 と Firefox3 beta の共存

5.共存に失敗した場合

Firefox3 Beta をアンインストールし、Firefox2 をアンインストール→再インストールし、バックアップしていた Firefox2 のプロファイルを、インストールした Firefox2 のプロファイルに上書きしてください。プロファイルのフォルダ名は異なる名称になっていますが、末尾が「.default」になっているフォルダに上書きすればOKです(上書きするのはその中にあるフォルダやファイルだけです。フォルダ名自体は書き換えないでください)。

この状態で Firefox2 を起動し、設定が元に戻っていることを確認したら、Firefox2 を終了し、再度 Firefox3 Beta の共存にチャレンジしてください。

Comments [5] | Trackbacks [4]

ベタな

April 13,2008 12:25 AM
Category:[ダジャレ]
Tag:[]
Permalink
Comments [0] | Trackbacks [0]

MTOS 4.15 ベータ2リリース

April 12,2008 3:03 AM
Category:[4.15]
Tag:[, ]
Permalink

MTOS 4.15 ベータ2がリリースされました。

Movable Type 4.15 Beta

今回のリリースでグローバルナビゲーションのメニュー構成が変わり、設定メニューにあった「全般」「公開」「ブログ記事」「コメント」「トラックバック」「登録 / 認証」「スパム」「ウェブサービス」の各メニューがサブメニューになりました。

グローバルナビゲーション1

また、グローバルナビゲーションに「ツール」というメニューが追加され、「プラグイン」がこちらに移動し、ブログ単位の「ログ」「インポート」「エクスポート」「バックアップ」の各画面にジャンプできるようになりました。

グローバルナビゲーション2

が、「設定」メニューにあった「アドレス帳」が消えてしまっているようです(URLを指定すれば表示されます)。

ベータ1でテンプレート一覧が見直され、ナビゲーションは大変良くなったのですが、編集画面から別の編集画面に進むために一覧に戻らなければならないので、個人的にはテンプレートの編集画面右に全テンプレートへのリンクを表示するか、一覧画面のテンプレート名をクリックすると、JavaScriptですぐ下に編集画面がスライドダウンするようなナビゲーションもありかと(独り言)。

Comments [2] | Trackbacks [0]

「CMSとして使うMovable Typeガイドブック」重版決定

April 11,2008 1:33 AM
Category:[書籍]
Tag:[, , ]
Permalink

3月中旬に発売された「CMSとして使うMovable Typeガイドブック」の重版が決定致しました。

CMSとして使うMovable TypeガイドブックCMSとして使うMovable Typeガイドブック
黒野 明子 荒木 勇次郎

翔泳社 2008-03-14
売り上げランキング : 1326

Amazonで詳しく見る
by G-Tools

出版社である翔泳社の編集担当の方の話によると、発売後1週間で重版が決まったようです。大変多くの方にお買い上げいただいているようで、本当にありがとうございます。

2刷では、正誤表の反映と、若干の記述内容の改善を行う予定です。

Comments [5] | Trackbacks [0]

アーカイブページのページ分割 for Movable Type 4.1

April 10,2008 12:03 AM
Category:[ページ分割]
Tag:[, , , ]
Permalink

Movable Type 4.1 で、MTPaginate プラグインを用いたアーカイブページ(カテゴリーアーカイブ・月別アーカイブ等)のページ分割方法をご紹介します。
4.15でテンプレート構成が変わりそうなので、4.1(厳密には4.0~4.1)限定にしておきます。

ページ分割

このエントリーは「カテゴリーアーカイブと月別アーカイブのページ分割」を MT4.1 用に書き直したものです。

カスタマイズ手順には、PHP化の設定を含んでいます。PHP化の設定を行っていない場合は手順1~手順3を行った後、PHP化したメインページが正常に表示されることを確認してから、手順4以降のページ分割の設定を行ってください。

すでにPHP化が済んでいる場合は、手順5から開始してください。

1.ファイル・ディレクトリのパーミッションを変更

ファイルのパーミッションを変更するために、以下の作業を行ってください。
この作業を行うと、他のアーカイブページのファイルも同じパーミッションになるので、すべてのアーカイブのPHP化(拡張子を.phpにする)が必要です。

まず、mt-config.cgi を FTP ツールでダウンロードし、任意のエディタで開き、行末に以下の内容を追加してください。mt-config.cgi はアプリケーションディレクトリにあります。アプリケーションディレクトリとは、Movable Type をインストールしたディレクトリで、mt.cgi があるところです。

HTMLUmask 0072
DirUmask 0072
HTMLPerms 0777

修正後、mt-config.cgi を保存して、元のディレクトリにアップロードし、メインページを再構築してください。

この設定を行っておけば、出力されるメインページや他のHTMLファイルおよびディレクトリのパーミッションを常に705にします。パーミッションを 775 にする場合は、

HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777

としてください。

2.拡張子の変更

ブログ管理画面の「設定」→「ブログの設定」→「公開」の一番下にある「アーカイブの拡張子」を html から php に変更して「変更を保存」をクリックします。

アーカイブの拡張子

3.XML宣言の修正

ページを XHTML文書、例えば XHTML1.0 として適合させている場合、前項と同じ画面の「テンプレートの内容」の1行目、またはテンプレートモジュールの「ヘッダー」の1行目(またはどこか)に、

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

という XML 宣言が記述されているケースがあります(記述されていなければこの項目はスキップしてください)。

PHP化を行うと、サーバではこのXML宣言の行をPHPスクリプトとして誤認識してしまい、次のようなPHPエラー

Parse error: parse error, unexpected T_STRING in ~(省略)~index.php on line 1

となるか、500エラーが発生するか、真っ白なページが表示される可能性があります。

このような場合、前述のXML宣言を下記の内容に置き換えてください(ご利用になる際、リストに含まれる改行はすべて除去してください。)。
なお、他のアーカイブページ等も PHP 化されていることを前提にしています。

<MTUnless name="system_template">
<? php echo('
</MTUnless>
<?xml version="1.0" encoding="utf-8"?>
<MTUnless name="system_template">
'); ? >
</MTUnless>

よく分からない場合や、ページが表示されない場合は、このカスタマイズを行う代わりに、XML宣言自体を削除してください。

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

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

5.プラグインのインストール

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

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

ブログ管理画面の「システム」→「プラグイン」で MTPaginate が表示されれば、プラグインのインストールは完了です。

プラグイン一覧

6.ページ分割の設定

ブログ管理画面より、「デザイン」→「テンプレート」→「アーカイブテンプレート」→「ブログ記事リスト」を選択し、青色部分のページ分割用タグを設定します。デフォルトテンプレート/配布テンプレート共通です。

一見複雑にみえますが <MTEntries> の直前と </MTEntries> の前後に加えるだけです。

すべてのアーカイブにページ分割を設定する場合

    :
<MTIf name="datebased_archive">
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
<MTElse>
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
</MTIf>
    :

日付ベースのアーカイブのみページ分割を設定する場合

    :
<MTIf name="datebased_archive">
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
<MTElse>
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
</MTIf>
    :

日付ベース以外のアーカイブのみページ分割を設定する場合

    :
<MTIf name="datebased_archive">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
<MTElse>
  <MTPaginate>
    <MTPaginateContent max_sections="5">
    <MTEntries limit="auto">
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
    <MTPaginateIfMultiplePages>
    <p 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_>
    </p>
    </MTPaginateIfMultiplePages>
  </MTPaginate>
</MTIf>
    :

日付ベース以外のアーカイブのみページ分割を設定する場合、MTEntries タグにある

limit="auto"

は削除した方がいいでしょう。
limit モディファイアに auto を設定した場合、表示するブログ記事数を、「設定」→「ブログの設定」→「ブログ記事」→「ブログ記事の表示数」にあわせます。

7.表示ブログ記事数の設定

リスト中の、

<MTPaginateContent max_sections="5">
<MTEntries>

にある

max_sections="5"

は、1ページに表示する最大ブログ記事数を設定します。ここでは5つのブログ記事表示する設定にしています。

ブログ記事数が30ある場合、max_sections が1ページに5ブログ記事ずつ表示する設定になっているので、ページは計6ページに分割して表示することになります。

8.スタイルの設定

赤色の p 要素はスタイルを設定するために付与しています。必要に応じて下記のようなCSSをスタイルシートに追加してください。

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

設定が完了したら保存し、再構築します。
これで各アーカイブページがページ分割されていることを確認してください。

9.ページリンクの設定

ページリンクは冒頭のスクリーンショットのように表示され、各ページへのリンクと現在のページから前後のページへジャンプするのリンク、および全ページを一括表示するリンクがあります。

各ページのリンクの現在のページはテキスト表示になります。また一番最初のページは「<」を表示せず、最後のページは「>」を表示しません。

上のサンプルではページリンクをページの一番下に表示するように配置していますが、ページの上に表示したい場合は、

     :
<MTPaginate>
<MTPaginateIfMultiplePages>
<p 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_>
</p>
</MTPaginateIfMultiplePages>
    <MTPaginateContent max_sections="5">
    <MTEntries>
<$MTEntryTrackbackData$>
<$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
    </MTEntries>
    </MTPaginateContent>
  </MTPaginate>
     :

と、青色部分を追加してください(すべてのアーカイブに適用させる場合は、上のリストを日付アーカイブベースのサブテンプレートと、それ以外のサブテンプレートの2ヶ所に設定してください)。上下両方にページリンクを付与することも可能です。

注意点としては、ページリンクを必ず MTPaginate タグと MTPaginateContent タグの間に設定してください。誤って MTPaginate の上に設定すると再構築エラーになり、MTPaginateContent の下に貼り付けると再構築はできますが、何も表示されなくなりますのでご注意ください。

2008.04.25
カスタマイズ手順に PHP 化の手順を追加し、手順の順番を見直しました。

2008.08.06
1項の文言を一部削除しました。

Comments [22] | Trackbacks [2]

Six Apart が「住職の公開面接(シックス・アパート オープンハウス)」を実施

April 9,2008 4:35 PM
Category:[お知らせ]
Tag:[]
Permalink

4月1日にシックス・アパート社が住職の募集を行っていて、それはまあエイプリルフールネタだったのですが、少僧都資格を保持される方から本当に応募があったようです。

で、急遽、「住職の公開面接」を実施することになりました。同時に「シックス・アパート オープンハウス」も開催されます。

住職の公開面接(シックス・アパート オープンハウス)

4月11日に「住職の公開面接(シックス・アパート オープンハウス)」を実施へ

シックス・アパートはご本人の許可を得て、「住職の公開面接」を実施します。また、公開面接をご覧になりたい方もいらっしゃると思いますので、あわせて「シックス・アパート オープンハウス」を同時開催します。
オープンハウスは、シックス・アパートのオフィスを実際に訪れていただき、シックス・アパートの社員やオフィスの雰囲気を実際に感じていただくイベントです。
住職の公開面接に興味がある方、シックス・アパートに興味がある方、ともにお時間があえば、ぜひ東京・赤坂のシックス・アパートのオフィスにいらしてください。

私は別の予定が入ってしまっていて、残念ながら参加できないのですが、時間のある方は是非参加されてみてはいかがでしょうか。

ということで、応募された方はエイプリルフールを分かっていてあえて応募したのか、シックス・アパート社は真剣に面接をするのか、何がどこまで本当なのかだんだん分からなくなってきましたが、一番驚いたのは、シックス・アパート社から「シックス・アパートに転籍致しました」の記事にトラックバックが送信されていたことです。

この件に関して、シックス・アパート社の並々ならぬ意欲を感じているのは私だけでしょうか(笑)。

Comments [0] | Trackbacks [0]

CSS nite MT4LP5セミナーで語る、ブログの中の人

April 9,2008 1:55 AM
Category:[gallery]
Tag:[, ]
Permalink

先日の「MT4LP5」のセミナー風景を、カメラマン・岡田陽一さんが撮影してくださっていました。

このブログで顔見せしたことは一度もなかったのですが、気に入ったショットが何枚かあったので、記念に何枚か掲載しておきます。

この会場は左右に広く、スライドが左右2ヶ所に投影されており、これは客席から向かって左側のスライドを見ながら解説している風景です。
mt4lp5

会場の左側を見渡しながら。手に持っているのはリモコン式のプレゼンテーションツールで、うろうろしながらこれでスライドを切り替えてました。初めて使いましたが快適でした。
mt4lp5

指で輪を作って何かを説明していますが、何を説明していたのかまったく覚えていません(笑)。
mt4lp5
[撮影:岡田陽一]

Comments [2] | Trackbacks [0]

555万5555アクセス特別企画

April 8,2008 1:37 PM
Category:[お知らせ]
Tag:[]
Permalink

このサイトの右下に表示しているカウンタがまもなく 5555555 に到達します。現在のアクセスからすると、明日の未明か午前中に超えそうです。4/9 2:30頃に超えました。

このカウンタはサイト開設当初の2004年5月から設置しているもので、その値はいわゆる「ページビュー」と、隣りに設置している「ビジット」カウンタの中間くらいの粒度で更新されているようです(IPチェックは行っている筈なのでやや閾値が低いビジットと言えるでしょう)。

ということで、5555555 のキリ番をゲットされた方は、カウンタおよびブラウザ内の他の部分を含んだキャプチャ画面をメールでお送り頂ければ、貴サイトを当サイトのエントリーにて紹介させて頂きます。*1


*1:サイト内容によってはお断りする場合があります。予めご了承ください。

Comments [0] | Trackbacks [0]

Movable Type 4 でテンプレート編集画面の内容が途中から消失する問題の対処

MT4 になってから、「テンプレート編集画面の下半分が消失する」という事象があったのですが、原因が判明しました。
Firefox で Googleツールバーを使用していると発生します。

一昨日の MT4LP5 のパネルディスカッションでその質問があがり、CHEEBOW さんの回答で知りました。ありがとうございました! > CHEEBOWさん
また、情報収集不足ですいません。

私も以前、何回かこの事象に遭遇していたのですが、OSを再インストールしてから一度も発生しなくなりました。たしかに、再インストール後は、Firefox に Google ツールバーをいれてませんでした。

参考記事は下記です。以下の記事は、上記の内容を受けて検索してヒットしたものですが、いずれもMT3の時の記事なので、本件の事象とは無関係かもしれません。予めご了承ください。

ということで、この事象で困っている場合は、FIrefox から Google ツールバーをアンインストールしましょう。

2008.04.09 追記
他のブラウザ含め、MT4.1にアップグレードすることで解消するというコメントを頂きました。私もOS再インストール後はMT4.1の利用しか行っていないので、MT4.1へのアップグレードを推奨します。

Comments [12] | Trackbacks [1]

Movable Type に関する情報(MT4LP5 雑感)

April 7,2008 1:50 AM
Category:[Movable Type]
Tag:[]
Permalink

4月5日に開催された CSS nite MP4LP5 の雑感です。
また、Web屋さんに Movable Type の情報がなかなか行き渡っていない感じも同時に受けたので、ネットから Movable Type に関する情報の一覧も記しておきます。

1.MT4LP5 雑感

私は、A会場のセミナーを最後尾からずっと聴いてまして、満席の会場で受講されている方皆さんが真剣に講義を聴かれていたのがよく分かりました。

B面もそうだったらしいのですが、講義が終わった方から「(ウケを狙っても)反応がない」という感想があり、たしかにA面も講義中は静かでした。私はでだしでネタをひとつ考えていて、それは予想通りウケてもらえたので、後は比較的なごやかな雰囲気で進められたように思います。
それにしても、ほとんどの方がこのサイトを閲覧して下さっているようで、本当にありがとうございます。

私自身、どの講義も大変有意義な内容でした。私は趣味レベルで MT を弄っているだけなので、企業としてどのように Movable Type を利用するのかという、サイト制作のノウハウを目の当たりにできました。
同時進行していたB面を聞けなかったのが残念です。

また打ち上げでは、MT を使った案件が多い(提案してMTを勧めるのではなく、お客様からMTによるサイト構築依頼がある)ということも知りました。中小企業向けのサイト構築には、コストパフォーマンスの高いMTにかなり人気があるようです。

セミナー最後の質疑応答で、私が冗談で「(連動書籍に)サイン欲しい方は後できてください」といったのですが、打ち上げに参加されていた80名ほどの受講者の多くの方からサインをお願いされ、執筆者のサイン会と化してました。

Movable Type プロフェッショナル・スタイル MT4.1対応Movable Type プロフェッショナル・スタイル MT4.1対応
CSS Nite 上ノ郷谷 太一 蒲生 トシヒロ

毎日コミュニケーションズ 2008-04-08
売り上げランキング : 632

Amazonで詳しく見る
by G-Tools

2.Movable Type に関する情報を収集する

Movable Type を扱う Web 屋さんに(多分)おすすめな情報です。

日々の情報収集など

公式サイト以外の Movable Type の情報収集には、当ブログを含め、以下のサイトを RSS リーダーに登録しておくと良いでしょう。
掲載もれがありましたらご連絡ください。

プラグイン一覧

プラグインを探したい場合は、下記のサイトが参考になります。

その他

プラグイン開発に利用してください。

また、MTパッケージのlib 配下にある各モジュールのドキュメントは、コマンドプロンプトなどから

>perldoc ファイル名

で参照できます。

2008.04.17
WingMemo・あんちもん2.Labを追加しました。大事なサイトを忘れてました。すいません...。

Comments [0] | Trackbacks [2]

CSS nite MT4LP5 終了

April 6,2008 11:13 AM
Category:[お知らせ]
Tag:[]
Permalink

昨日、ベルサール原宿にてCSS nite MT4LP5 で開催され、無事に終了致しました。

A会場とB会場の2つでそれぞれのセミナーが行われ、A会場は約300名の参加者で満席でした。下はA会場のセミナー風景です。

CSS nite MT4LP5

私はA会場の最後で講師をやらせて頂き、ぶっつけ本番のため若干時間が不足してしまいましたが大体お伝えしたかったことは話すことができました。

下は、最後に連動書籍の著者が全員登壇し、撮影会になったとき、こちらからも撮影させて頂いたものです。

CSS nite MT4LP5

鷹野さん、蒲生さんはじめ、スタッフの皆様、また連動書籍の執筆に参加された皆様、本当にお疲れ様でした。また、このイベントに参加させて頂き、ありがとうございました。

雑感などは別にエントリーしたいと思います。

Comments [2] | Trackbacks [0]

無題

April 5,2008 1:25 AM
Category:[ダジャレ]
Tag:[]
Permalink

A「オメガの時計買ったよ」

Comments [0] | Trackbacks [0]

Movable Type 4.15 公開ベータテスト開始

April 4,2008 12:55 PM
Category:[4.1]
Tag:[, ]
Permalink

Movable Type 4.15 公開ベータテストが開始しました。

Movable Type 4.15 公開ベータテストを開始

Movable Type 4.15 では、パフォーマンス改善に関する様々な機能が追加されています。
  • パフォーマンス改善
  • パフォーマンスロギング機能
  • 再構築の負荷を減らすテンプレートモジュールのキャッシュ
  • 詳細な設定が可能になった再構築オプション
  • 複数のテンプレートで利用しているテンプレートモジュール、ウィジェトの出力結果を共有して読み込み、再構築の負荷を減らすサーバー・サイド・インクルード
  • 全文検索や、結果ページのページ分割など強化されたブログ検索
  • 追加・拡張されたテンプレートタグ
  • 追加された環境変数
  • テンプレートごとのオプション設定インターフェイスの追加
  • テンプレート一覧ページのリデザイン
  • テンプレートのプレビュー

パッケージは MTOS として配布されています。

Movable Type 4.15 ベータ

以下、各機能について抜粋でまとめてみました。タイトルのリンクをクリックすれば、公式サイトのより詳細な解説ページを参照できます。

1.パフォーマンスロギング機能

以下の内容をログファイルに出力します。

  • 使用 OS などウェブサーバー環境に関する情報
  • メモリー使用量
  • テンプレートタグの処理時間
  • リクエストされた URL
  • プロセス ID

2.再構築の負荷を減らすテンプレートモジュールのキャッシュ

MTInclude ファンクションタグで読み込むテンプレートモジュールの内容をキャッシュします。

テンプレートモジュールまたはウィジェットの編集画面に次の「Module Caching」というオプションが追加されました(画面に入っていませんがチェックボックスには「ウェブページ」と「アイテム」もあります)。Expireする時間や動作も選択できるようです。

オプション

3.再構築オプションの詳細な設定

次の設定が可能になりました。

  • 全てのテンプレートで出力されるページを、バックグラウンドのキューを使用し再構築を定期的に実施し、静的ファイルを出力
  • インデックステンプレート、ブログ記事アーカイブテンプレートで出力されるページは、再構築実行時、静的にファイルを出力。それ以外はバックグラウンドのキューを使用して定期的に再構築を実施し、静的にファイルを出力。

4.サーバー・サイド・インクルード

テンプレートモジュールまたはウィジェットを呼び出すとき、サーバー・サイド・インクルード (SSI) を利用して、再構築時に適切なサーバー・サイド・インクルードの記述に変換します。再構築の負荷を削減します。
サーバー・サイド・インクルードの設定にはPHPも含まれているので、標準機能でPHP化が行えます。

テンプレートモジュールまたはウィジェットの編集画面に次の「Server Side Include」というオプションが追加されました。

オプション

ブログ設定画面に次の「Server Side Includes」という項目が追加されており、SSI の方法を選択します。

オプション

設定後、テンプレートモジュールまたはウィジェットの編集画面の「Server Side Include」というオプションに反映されます。

オプション

<$MTInclude module="サイドバー"$>

と書かれたテンプレートタグは、内容が展開されるのではなく、

<?php include("/www/htdocs/mt/includes_c/A3s/ssi.html") ?>

というようなインクルード文に置き換わります。

なお、SSI の設定だけではなく、例えばPHPによるSSI を行う場合は、別途PHP化が必要です。

5.検索結果ページのページ分割

キーワードもしくはタグでブログ内を検索した結果ページを分割して出力できます。また、分割されたページをあつかうテンプレートタグを利用して、ページナビゲーションのなどの作成も行えます。

6.追加・拡張されたテンプレートタグ

以下の検索結果関連タグが追加、および拡張されています。

MTCurrentPage
現在表示中のページは検索結果の総ページの何番目かを出力
MTTotalPages
検索結果の総ページ数を出力
MTPagerBlock
検索結果ページの総ページ分繰り返し処理を実施
MTIfCurrentPage
ブロックタグを利用して作成したページナビゲーションの中で、現在表示中のページ数を判定
MTSearchMaxResults
環境設定ファイル (mt-config.cgi) で設定されている環境変数 MaxResults の値を出力
MTPagerLink
複数ページの検索結果になり、MTPagerBlock ブロックタグで検索結果ページ分繰り返し処理を行いナビゲーションを作成するとき、各検索結果ページへの URL を出力
MTIfMoreResults
検索結果が設定した1ページに表示する件数より多いかを判定
MTIfPreviousResults
検索結果が複数の検索結果ページになるとき、表示中のページにひとつ前のページがあるかを判定
MTNextLink
複数ページの検索結果になるとき、表示中ページの次ページの URL を出力
MTPreviousLink
複数ページの検索結果になるとき、表示中ページの次ページの URL を出力
MTInclude
テンプレートモジュールや、外部ファイルを読み込むときに使用。SSI や PHP のインクルードを利用可能

7.追加された環境変数

以下の環境変数が追加されました。

AuthorBasenameLimit
ユーザーアーカイブのベースネームの最大文字数を設定
PerformanceLogging
パフォーマンスロギング機能を使用するかどうかの設定
PerformanceLoggingThreshold
処理時間が設定時間未満の場合はパフォーマンスログに出力しないように設定
RebuildAtDelete
記事やウェブページなどを管理画面上で削除処理したとき、自動的に再構築を行うかどうかを設定
ProcessMemoryCommand
メモリー使用量の計測時に使用するコマンドを設定したい場合に使用
SearchResultDisplay
検索結果の並べ替えの順序を設定
SearchDefaultTemplate
デフォルトで使用するサイト検索結果のテンプレートを設定
SearchMaxResults
検索実行時に返される、結果の最大数を示
SearchAltTemplate
検索結果の代替テンプレートを利用する際にテンプレートを設定
SearchPrivateTags
タグ検索で、@ で始まるプライベートタグを検索対象にするかを設定
IncludesDir
テンプレートモジュールやウィジェットを SSI インクルードオプションを使用して読み込むときに使用する対象ファイルを格納するディレクトリの名前を設定

8.テンプレート一覧ページのリデザイン

ブログのテンプレート管理画面は、ウィジェットを除く全てのテンプレートがひとつの画面に表示されるようになりました。

テンプレート管理画面

9.テンプレートのプレビュー

インデックステンプレート・アーカイブテンプレートにプレビュー機能が追加されました。フォームボタンの「確認」がそれです。

テンプレート管理画面

Comments [4] | Trackbacks [0]

「Movable Type プロフェッショナル・スタイル」見本誌到着

April 4,2008 1:43 AM
Category:[書籍]
Tag:[, , ]
Permalink

「Movable Type プロフェッショナル・スタイル」の見本誌が到着致しました。

Movable Type プロフェッショナル・スタイル

今回は、MTタグのカスタマイズと JavaScript のカスタマイズというテーマで30ページほど書かせて頂きました。私の書いた内容でおすすめネタは、カスタムフィールドを用いた「おすすめ度」による、記事の並び替えです。きめ細かい内容に仕上げたつもりですので、ショッピングモールなどのお役に立てれば幸いです。

ご覧のように4色(フルカラー)で、画面も豊富に使われています。インストールからテンプレート、カスタマイズ、プラグイン利用・開発まで、MTに深く携わっている方々の最新情報が満載で、読み応え十分です。

Movable Type プロフェッショナル・スタイル

何冊か執筆させて頂いたので、入稿時にほぼ完璧な仕上がりだと思ったのですが、結局大量の校正をお願いすることになってしまいました。申し訳ありません。
おかげさまで満足のいく内容になりました。

今回の執筆に関しては、株式会社スイッチの鷹野さん、また声をかけて頂いたITプロフェッショナルの蒲生さんに大変お世話になりました。この場をお借りしてお礼申し上げます。
また明日のMT4LP5でもお世話になりますが、よろしくお願い致します。

Movable Type プロフェッショナル・スタイル MT4.1対応Movable Type プロフェッショナル・スタイル MT4.1対応
CSS Nite 上ノ郷谷 太一 蒲生 トシヒロ

毎日コミュニケーションズ 2008-04-08
売り上げランキング : 632

Amazonで詳しく見る
by G-Tools
Comments [0] | Trackbacks [0]

「Movable Type WEBデザインの新しいルール」3刷見本誌到着

April 3,2008 2:55 AM
Category:[書籍]
Tag:[, , ]
Permalink

Movable Type WEBデザインの新しいルール」の3刷見本誌が到着しました。
3刷が書店に並ぶのはまだ先になると思いますが、新宿の紀伊国屋あたりが一番早いかも知れません。

Movable Type WEBデザインの新しいルール

本を書かせて頂けただけでも光栄だったのですが、ここまで部数を伸ばせるとは、正直、夢にも思っていませんでした。お買い上げくださった皆様には改めてお礼申し上げます。
このブログ同様、ビギナーズラックといったところでしょうか。

初めて当ブログを訪れた方へ、おさらいですが、この本の特徴は以下のエントリーで記しています。

上の記事で書いていないところで、一番力を入れたところは2つあります。

ひとつは、書籍では当ブログのテンプレートをダウンロードしてデザインを変更するという手順になっているのですが、そのデザイン変更と、完成したデザインです。
それに伴って、CSSの基本についても数ページですが誌面を割いて説明しています。「そういうのはいらない(MTだけの内容にして欲しい)」という評価もネット上でいくつかあったのですが、私が執筆を引き受ける時点ではそういう構成に決まっていたことと、本を何冊も買えない方への配慮という意味で、私自身もそれについては賛成でした。

もうひとつは、カスタマイズの完成サンプルは、ブログを実際に使ってどのように表示されるかというところを表現したかったので、画面ショットに使われている記事タイトルや記事本文は、相当な時間をかけて推敲しました。
記事本文を「テストテスト...」などの文字で並べても良かったかもしれませんが、私自身、その部分だけはこだわりたかった部分です。パラパラとめくっただけでは気がつかない、カスタマイズの内容には直接関係ない箇所ですが、そういうディテールにはかなり注力したことを付け加えておきます。

情報商材サイトっぽくなるので、多くは語りませんが、「この本のおかげで素敵なブログができました」という内容のメールも多く頂いており、大変嬉しく思っています。

ただし、本の価値は購入された方次第ですので、内容的に不満が残る方がいらっしゃることも事実です。今後も、時間が許す限りサポートしたいと思っていますので、書籍のサポートサイトや本ブログのメールからでもご質問を頂ければと思います。

Movable Type WEBデザインの新しいルールMovable Type WEBデザインの新しいルール
荒木 勇次郎 松永 英明

翔泳社 2007-10-17
売り上げランキング : 29243

Amazonで詳しく見る
by G-Tools
Comments [0] | Trackbacks [0]

feedpath Rabbit がサービス終了

April 2,2008 2:07 AM
Category:[サービス]
Tag:[, ]
Permalink

愛用していた RSS リーダー「feedpath Rabbit」のサービスが2008年4月末でサービス終了になりました。

feedpath Rabbit

4月1日に届いたメールでお知らせされていたので、てっきりエイプリルフールかと思ったら、本気でした。

【重要】feedpath Rabbitサービス終了のお知らせ

2006年1月から長らくご愛顧いただいておりましたfeedpath Rabbitですが、2008年4月30日(水)をもってサービスを終了させていただく運びとなりました。 同時にフィードデータベースfeedpath Skunkも併せてサービスを終了させて頂きます。 ご利用のみなさまには大変ご迷惑をおかけいたしますが、何卒ご了承の程よろしくお願い申し上げます。

ご利用中の方は、OPML 形式でフィードを出力し、4月29日までに他のRSSリーダーに移行する必要があります。

【重要】フィードリーダー移行手順

これで RSS リーダーの移行を余儀なくされることになってしまった訳ですが、移転先は未定です。

Comments [2] | Trackbacks [0]

シックス・アパートに転籍致しました

April 1,2008 12:34 PM
Category:[お知らせ]
Tag:[]
Permalink

本日、シックス・アパートに転籍致しました。

実はThe blog of H.Fujimotoさんの予想通り、求人募集に対し、水面下での打診があり、求人募集はいわゆる「出来レース」でした。この件につきましては、応募された皆様に対し、この場をお借りして深くお詫び申し上げます。

これまでは一人のMTユーザとして、Movable Type の普及に務めてまいりましたが、今後はシックス・アパートの一員として、さらにMT、そしてシックスアパートの発展を目指す所存です。

ちなみに、就任する職種は「住職」で、今後は僧侶としてシックス・アパート社全体を管掌させて頂くことになります。

なお今後、本ブログへの Movable Type に関するご質問は、シックス・アパート社の業務とは全く重複しないため、引き続き行いたいと思います。

注:このエントリーはエイプリルフールに投稿したものです。

Comments [4] | Trackbacks [2]

メインページのページ分割 for Movable Type 4

April 1,2008 2:00 AM
Category:[ページ分割]
Tag:[, ]
Permalink

Movable Type 4 で、MTPaginate プラグインを用いた、メインページのページ分割方法をご紹介します。

ページ分割

このエントリーは「トップページのページ分割」を MT4 用に書き直したものです。

以前、ご質問を頂いていたものの回答ですが、公開が大変遅くなってしまい、申し訳ございません。

カスタマイズ手順には、PHP化の設定を含んでいます。PHP化の設定を行っていない場合は手順1~手順4を行った後、PHP化したメインページが正常に表示されることを確認してから、手順5以降のページ分割の設定を行ってください。

すでにPHP化が済んでいる場合は、手順5から開始してください。

1.ファイル・ディレクトリのパーミッションを変更

ファイルのパーミッションを変更するために、以下の作業を行ってください。
この作業を行うと、他のアーカイブページのファイルも同じパーミッションになるので、すべてのアーカイブのPHP化(拡張子を.phpにする)が必要です。

まず、mt-config.cgi を FTP ツールでダウンロードし、任意のエディタで開き、行末に以下の内容を追加してください。mt-config.cgi はアプリケーションディレクトリにあります。アプリケーションディレクトリとは、Movable Type をインストールしたディレクトリで、mt.cgi があるところです。

HTMLUmask 0072
DirUmask 0072
HTMLPerms 0777

修正後、mt-config.cgi を保存して、元のディレクトリにアップロードし、メインページを再構築してください。

この設定を行っておけば、出力されるメインページや他のHTMLファイルおよびディレクトリのパーミッションを常に705にします。パーミッションを 775 にする場合は、

HTMLUmask 0022
DirUmask 0022
HTMLPerms 0777

としてください。

2.ファイル名の変更

テンプレートのメインページの編集画面を開き、「出力ファイル名」を index.html から index.php に変更して「保存」をクリックします。
もしファイル名が index.html のままになっていると、カスタマイズ終了後、ページを表示した時に

The MTPaginate tag only works within PHP documents!
Make sure that the document extension is .php and that your server supports PHP documents.

というメッセージが表示されますのでご注意ください。

3.XML宣言の修正

利用しているテンプレートによっては、メインページテンプレート、またはテンプレートモジュールの「ヘッダー」の1行目(またはどこか)に、

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

という XML 宣言が記述されているケースがあります(記述されていなければこの項目はスキップしてください)。

PHP化を行うと、サーバではこのXML宣言の行をPHPスクリプトとして誤認識してしまい、次のようなPHPエラー

Parse error: parse error, unexpected T_STRING in ~(省略)~index.php on line 1

となるか、500エラーが発生するか、真っ白なページが表示される可能性があります。

このような場合、前述のXML宣言を下記の内容に置き換えてください(ご利用になる際、リストに含まれる改行はすべて除去してください。)。
なお、他のアーカイブページ等も PHP 化されていることを前提にしています。

<MTUnless name="system_template">
<? php echo('
</MTUnless>
<?xml version="1.0" encoding="utf-8"?>
<MTUnless name="system_template">
'); ? >
</MTUnless>

よく分からない場合や、ページが表示されない場合は、このカスタマイズを行う代わりに、XML宣言自体を削除してください。

4.index.html の削除

トップページを index.html という出力ファイル名で再構築したことがある場合、index.html がサーバ上に残ります。このファイルが残っていると、

http://~/

という、最後が "/" で終了するURLの場合、html ファイルを優先に検索します。html ファイルが表示されるとページ分割は正常に動作しません。レンタルサーバの場合は任意のFTPソフトを使って index.html を直接削除してください

インデックステンプレートにはファイル名変更後に元ファイルを削除する機能はありません。

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

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

6.プラグインのインストール

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

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

ブログ管理画面の「システム」→「プラグイン」で MTPaginate が表示されれば、プラグインのインストールは完了です。

プラグイン一覧

7.ページ分割の設定

ブログ管理画面より、「デザイン」→「テンプレート」→「メインページ」を選択し、ページ分割用タグを設定します。

テンプレート編集画面のテキストエリアに、リストのように青色部分を追加します。一見複雑にみえますが <MTEntries> の直前と </MTEntries> の前後に加えるだけですので MTEntries という文字列を検索して編集すると良いでしょう。

デフォルトテンプレート/配布テンプレート共通

    :
<MTPaginate>
<MTPaginateContent max_sections="5">
<MTEntries>
    <$MTEntryTrackbackData$>
    <$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
<MTPaginateIfMultiplePages>
<div class="paginate">
<MTPaginateIfPreviousPage_>
<a href="<$MTPaginatePreviousPageLink$>"><</a>
</MTPaginateIfPreviousPage_>
<$MTPaginateNavigator style="links" format_all="All pages" place_all="after" separator=" | ">
<MTPaginateIfNextPage_>
<a href="<$MTPaginateNextPageLink$>">></a>
</MTPaginateIfNextPage_>
</div>
</MTPaginateIfMultiplePages>
</MTPaginate>
    :

7.1 表示ブログ記事数の設定

リスト中の、

<MTPaginateContent max_sections="5">
<MTEntries>

にある

max_sections="5"

は、1ページに表示する最大ブログ記事数を設定します。ここでは5つのブログ記事表示する設定にしています。

また全ページ合計の表示ブログ記事数は、「設定」→「ブログの設定」→「ブログ記事」→「ブログ記事の表示数」で設定します。

「ブログ記事の表示数」を30にした場合、max_sections が1ページに5ブログ記事ずつ表示する設定になっているので、トップページは計6ページに分割して表示することになります。「ブログ記事の表示数」の値が max_sections より小さい場合はページ分割が行われません。

7.2 スタイルの設定

赤色の div 要素はスタイルを設定するために付与しています。必要に応じて下記のようなCSSをスタイルシートに追加してください。

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

設定が完了したら保存し、再構築します。 注:7項の作業を終えるまでページは確認しないでください。

8.ページリンクの設定

ページリンクは冒頭のスクリーンショットのように表示され、各ページへのリンクと現在のページから前後のページへジャンプするのリンク、および全ページを一括表示するリンクがあります。

各ページのリンクの現在のページはテキスト表示になります。また一番最初のページは「<」を表示せず、最後のページは「>」を表示しません。

サンプルリストではページリンクをページの一番下に表示するように配置していますが、ページの上に表示したい場合は、

     :
<MTPaginate>
<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>
<MTPaginateContent max_sections="5">
<MTEntries>
   <$MTEntryTrackbackData$>
   <$MTInclude module="ブログ記事の概要"$>
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>
</MTPaginate>
     :

としてください。ページの上下にページリンクを付与することも可能です。

注意点としては、必ず MTPaginate タグと MTPaginateContent タグの間に設定してください。誤って MTPaginate の上に設定すると再構築エラーになり、MTPaginateContent の下に貼り付けると再構築はできますが、何も表示されなくなりますのでご注意ください。

2008.04.25
カスタマイズ手順に PHP 化の手順を追加し、手順の順番を見直しました。

Comments [14] | Trackbacks [6]
Now loading...
Introduction
List of "April 2008"
Recent Entries
Recent Comments
Recent Trackbacks
QRcode

現在停止中です
携帯電話からこのQRcodeを撮影することで携帯用URLを取得することができます

URI for cellular phones
ギターに入った猫
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site
loading ...
Categories
Monthly Archives
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
クリエイティブ・コモンズ・ライセンス
Powered by
Movable Type 5.12