Movable Type 備忘録

 JCalendarColor プラグイン

こんばんわ^^

Movable Type 4.25 になって、jQuery が一部使われてるようですね。何気なく環境を眺めてたら見つけました (●´∀`●)

さて、MT4.25 ではコメント投稿時の認証方法として、デフォルトで Google 認証や mixi 認証など選択肢増えてますね。
Google 認証( CommentByGoogleAccount )や mixi 認証( mixiComment )は以前からプラグインとしてあったものですが、Crypt::SSLeay という Perl モジュールが必要なので使えなかった人は多かったと思います。

幸い CORESERVER では Crypt::SSLeay はインストールされてたので mixi 認証は使えたものの、Google 認証はなぜか使えませんでした。
MT4.25 になってプリインストールされてたので再度いろいろ調べててたのですが、やっぱり Perl モジュールがネックで以前断念した JCalendarColor というプラグインは、Perl モジュールもインストールできてカレンダーに色づけできたのでその方法をご紹介します。

[2009.03.22] Google 認証できないと思ってたらできたよ (●´∀`●)
あと、mixiComment、GoogleAnalyticsWidget においても、Crypt::SSLeay のパスを通したら動作できました。

詳しくは以下のページを参考にしてください。

Perl モジュールのセットアップ

JCalendarColor プラグインを使うには以下の Perl モジュールが別途必要になります。

まずは上記 Perl モジュールのインストールを行います。

わたしが実施した方法は TELNET or SSH からインストールする方法になります。
ターミナルが利用できない場合には以下で説明する方法ではインストールできません。

  1. インストールされてる Perl モジュールをチェック

    まず、お使いのサーバでインストール済みの Perl モジュールをチェックします。
    チェックには以下のコマンドを実行します。

    # find `/usr/local/bin/perl -e 'print join(" ", @INC)'` -type f -name "*.pm" | grep Calc
    

    上記は Date::Calc モジュールがインストールされてるかどうかをチェックするコマンドです。
    そして以下のコマンドは Calendar::Japanese::Holiday モジュールをチェックするコマンドになります。

    # find `/usr/local/bin/perl -e 'print join(" ", @INC)'` -type f -name "*.pm" | grep Holiday
    

    幸い CORESER では上記 2 つのモジュールはインストール済だったのですが、各自のサーバでインストール済みかどうかチェックしてください。
    よく分からない人は以下のツールを使えば一覧で確認することができます。

  2. Date::Calc モジュールのインストール

    まず、Date::Calc モジュールのインストールを行います。
    以下のコマンドを実行してください。

    # cd $HOME
    # mkdir temp
    # cd temp
    # wget http://search.cpan.org/CPAN/authors/id/S/ST/STBEY/Date-Calc-5.4.tar.gz
    # tar zxf Date-Calc-5.4.tar.gz
    # cd Date-Calc-5.4
    # perl Makefile.PL INSTALL_BASE=$HOME
    # make
    # make install
    

    これで Date::Calc モジュールのインストールはできました。
    インストール先は $HOME/lib/ フォルダの中になります。

  3. Calendar::Japanese::Holiday モジュールのインストール

    次は Calendar::Japanese::Holiday モジュールをインストールしてみます。 インストール手順は先ほどと同様です。

    # cd $HOME/temp
    # wget http://search.cpan.org/CPAN/authors/id/K/KZ/KZTOMITA/Calendar-Japanese-Holiday-0.03.tar.gz
    # tar zxf Calendar-Japanese-Holiday-0.03.tar.gz
    # cd Calendar-Japanese-Holiday-0.03
    # perl Makefile.PL INSTALL_BASE=$HOME
    # make
    # make install
    

    これでインストールは完了です。同様にインストール先は $HOME/lib/ フォルダの中です。
    temp/ フォルダはもう不要なので削除してください。

    # rm -fr $HOME/temp
    
  4. jCalendarColor プラグインのインストール

    いよいよ、jCalendarColor プラグインのインストールになります。
    こちらは今まで通り MT のプラグインなので、上記配布元のページから圧縮ファイル( JCalendarColor.tar.gz OR JCalendarColor.zip )をダウンロードして、いつものように mt/plugins/ フォルダにアップロードしてください。

  5. jCalendarColor プラグインの修正

    jCalendarColor.pl に先ほどインストールした Perl モジュールの追記を行います。
    具体的には以下のように追記してください。

    JCalendarColor.pl / 11 行目

    1. package MT::Plugin::JCalendarColor;
    2.  
    3. use strict;
    4. # 2009.03.21 bzbell
    5. use lib '/home/●●●/lib/perl5/';
    6. # 2009.03.21 bzbell
    7. use Calendar::Japanese::Holiday qw(isHoliday);
    8. use Date::Calc qw(Day_of_Week);
    9. use MT::Util qw(offset_time_list);
    10. use MT::Template::Context;
    11. @MT::Plugin::JCalendarColor::ISA = qw(MT::Plugin);

    青字の部分を追加して、プラグインから Perl モジュールを参照できるようにします。
    また、赤字の部分には先ほどインストールした Perl モジュールのフルパスを指定します。

以上でセットアップは完了です。
次はテンプレートの修正になります。

テンプレートの修正と CSS

次は JCalendarColor プラグインを使ってカレンダーに休日/土曜日の色付けするための修正を行います。
わたしのサイトではカレンダー表示に Ajax を使ってるので、ちょと人とは違うテンプレートになります。 なので、参考にならないと思いますので、配布元さんの説明を読んで頂けたらと思います。

以上で完了です。
一時期よりはだいぶ Perl モジュールのインストール方法は慣れてきたのですが、相変わらず Google 認証が有効にならないんですよね(つω-`。)
まだ足らないモジュールがあるんでしょうね。

気ながらに調べてみますの (●´∀`●)

 Trackback Pings(0)

No trackbacks found.

 Comments(2)

#1: Posted by Author Profile Page naganaga34 @ March 26, 2009 [REPLY]
user-pic

Crypt::SSLeayなんですが、
coreserverが提供するサーバによって、
標準でインストールされていないサーバもあるのかもしれませんよ。
自分は2つ使っているのですが、
mt-check.cgiで調べたところ、
両方ともCrypt::SSLeayはインストールされていないとのお返事です。
インストールした方がよいのか、どうしたものか。

#2: Posted by Author Profile Page bzbellからnaganaga34への返信 @ March 27, 2009 [REPLY]
user-pic

>>1 naganaga34 さん

こんばんわ^^

JCalenarColor プラグインでは Crypt::SSLeay モジュールを使用することないので触れませんでした。
その代わり以下のページにてご紹介してますので、必要でしたら参考にしてください。
http://bizcaz.com/archives/2008/08/22-213327.php
http://bizcaz.com/archives/2007/10/08-032921.php

> mt-check.cgiで調べたところ、

CORESERVER でも mt-check.cgi で確認するとインストールされてないと言われます。
ですが、ページ中でもご紹介してます方法でチェックして頂くとインストールされてるかどうかがホントの意味で分かります。
mt-check.cgi はただパスが通ってないから識別できてないんだと思うのですうぅ~ん

 Post a Comment

 

コメント用フィード