TopMovable Typeカスタマイズその他 > 2005年12月
2005年12月22日

著作権表示の西暦をリアルタイム化する

Movable Type の著作権表示は、BlogCopyright Plugin を使ったカスタマイズが有名です。このプラグインは登録されている最初のエントリーと最後のエントリーから著作権の西暦を自動生成しますが、再構築した時点の年しか取得できません。つまり年をまたがった場合、再構築が行われるまでは更新されないことになります。

ということで、プラグインを少し修正して、リアルタイムカレンダーのように、リロードを契機に年表示を切り替える方法をご紹介します。日々更新されている方にとっては1年に数分?数時間しか有効にならないという甚だコストパフォーマンスの低い技ですが、年始末にブログを更新できない場合はお勧めです。ある意味、更新頻度が低い方ほど効果大です。

1.著作権表示の意味

カスタマイズの前に、一般的によくみかける

Copyright © 2004 hogehoge All rights reserved. 

を例に、著作権表記の意味を記しておきます。

「Copyright」は著作権があることを意味します。© は「マルシーマーク(英語読みは「サークルシー」)」と読み、同じく著作権があることを意味します。この2つは意味が重複していますが、著作権の扱いが国によって異なるため、より多くの国において保護を受けられるようにという習慣からきているようです。西暦は著作物を公開した最初の年です(ハイフンで現在の年を表示しているのもよくみかけます)。hogehoge は著作権者で、最後の「All rights reserved.」は著作権以外の権利についても保持していることを示すものです。

次に、プラグインの設定方法です。

2.アーカイブのダウンロード

BlogCopyright Pluginより Download BlogCopyright のリンクをクリックしてアーカイブをダウンロードします。

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

アーカイブを解凍して、中にある BlogCopyright.pl を plugins ディレクトリにアップロードします。アップロード後、メインメニューの「プラグイン」をクリックして、「BlogCopyright.pl」が表示されていればOKです。

4.著作権表示用タグの設定

著作権表示を行いたいテンプレートの編集画面を開き、任意の場所に

<$MTBlogCopyright$>

を記述します。このタグが

Copyright c2004-2005

のような表示に置き換わります。

著作権者を表示する場合、つまり

Copyright c2004-2005 hogehoge

の青色部分を表示するには

<$MTBlogCopyright$> hogehoge

と直接記述する方法もありますが、メインメニューの「プロフィール」→「表示名」に設定していれば、その文字が表示されます。

または

<$MTBlogCopyright owner="hogehoge"$>

と owner 属性を与えます。owner_name に設定した文字が著作権者として表示されます。

「All rights reserved.」はタグまたは著作権者の後ろに直接記述してください。

5.リアルタイム化

4項まででプラグインの通常の動作が行えます。以下はリアルタイムのカスタマイズです。

5.1 プラグインの修正

BlogCopyright.pl を任意のエディタで開き、下記の赤色部分を削除して青色のものに置き換えます。

         :
# Add the years the blog has been up
if($first_year eq $last_year) {
$copyright .=  $first_year . ' ';
$copyright .=  ' <span id="fixyear">' . $first_year . '</span> ';
} else {
$copyright .= $first_year . '-' . $last_year . ' ';
$copyright .= ' <span id="fixyear1">' . $first_year . '</span>-<span id="fixyear2">' .$last_year . '</span> ';
}
         :

5.2 スクリプトの追加

著作権表示用タグを設定しているテンプレートの最後の方(<$MTBlogCopyright$> の後方であればOK)に下記のスクリプトを追加します。

<script type="text/javascript">
<!--
var data = new Date();
var year = data.getYear();
year = (year < 2000) ? year + 1900 : year;
var oldYear;
if(document.getElementById('fixyear')){
    oldYear = document.getElementById('fixyear').innerHTML;
    if(parseInt(oldYear) < parseInt(year)){
        document.getElementById('fixyear').innerHTML = oldYear + "-" + year;
    }
} else if(document.getElementById('fixyear2')) {
    oldYear = document.getElementById('fixyear2').innerHTML;
    if(parseInt(oldYear) < parseInt(year)){
        document.getElementById('fixyear2').innerHTML = year;
    }
}
//-->
</script>

リアルタイム化の仕組みは、5.1項で修正したプラグインで西暦部分に span 要素(id 属性が "fixyear")を付与しています。そして5.2項のスクリプトでその西暦を取得し、サーバから取得した西暦と比較して、サーバの西暦の方が新しければ置き換えるようにしています。またブログに登録されているエントリーが同一年のものしかなく、サーバの西暦が新しい場合は初年と現在年を両方表示します。
JavaScript がOFFの場合は何も処理されません。

6.注意事項

span 要素を他の部分のCSSクラスセレクタとして利用している場合は、表示に影響する可能性があるのでご注意ください。

Comments [14] | Trackbacks [6]
2005年12月11日

プロフィールのページを作る(3.2-ja~3.35-ja用)

「プロフィール」用テンプレートの作成方法です。以前書いたプロフィールのページを作るが3.1xまでしか対応していなかったので、3.2-ja~3.35-ja用に書き直しました。なおここでご紹介するのは公開テンプレート用ですので予めご了承ください(デフォルトテンプレートのものは別途エントリーします)。

同様の手法で「このサイトについて」や「注意事項」のページを色々と作ることができます。プロフィール自体をエントリーとして追加する方法もありますが、ここではインデックステンプレートとして追加し、その中に直接コンテンツを記述する方法を説明します。

1.プロフィール用テンプレートの作成

Movable Type 管理画面左メニューの「テンプレート」をクリックし、右側上に表示されている「テンプレートを新規作成 」をクリックしてください。次に表示された画面で以下の項目を設定します。

  • テンプレートの名前:Profile
  • 出力ファイル名:profile.html(とりあえずこの名称で)
  • 「インデックス・テンプレートを再構築する時に~(中略)~」をチェック
  • このテンプレートにリンクするファイル:何も設定しない
  • テンプレートの中身:下記のリストを丸ごとコピー&ペーストしてください。

リストは3カラム(固定)用の設定になってますので、カラムレイアウトはご自身の設定されているものに合わせて修正してください。

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

タイトルや本文に該当する部分に、プロフィールの内容(コンテンツ)を直接書き込んでください。書き込む場所(=修正する場所)はテンプレートにある下記の青色で示す部分です。

<!-- タイトル開始 -->
<h2 class="date">プロフィール</h2>
<!-- タイトル終了 -->
 
<!-- タイトルの内容1開始 -->
<div class="entry">
 
   <!-- エントリータイトル -->
   <h3 class="entry-header">●名前</h3>
 
   <!-- エントリー -->
   <div class="entry-content">
      <div class="entry-body">
小粋太郎
      </div>
   </div><!-- /entry-content -->
 
</div><!-- /entry -->
<!-- タイトルの内容1終了 -->
 
<!-- タイトルの内容2開始 -->
<div class="entry">
 
   <!-- エントリータイトル -->
   <h3 class="entry-header">●性別</h3>
 
   <!-- エントリー -->
   <div class="entry-content">
      <div class="entry-body">

      </div>
   </div><!-- /entry-content -->
 
</div><!-- /entry -->
<!-- タイトルの内容2終了 -->
 
<!-- タイトルの内容3開始 -->
<div class="entry">
 
   <!-- エントリータイトル -->
   <h3 class="entry-header">●さらに詳しく</h3>
 
   <!-- エントリー -->
   <div class="entry-content">
      <div class="entry-body">
あいうえお
      </div>
   </div><!-- /entry-content -->
 
</div><!-- /entry -->
<!-- タイトルの内容3終了 -->

入力および編集後、テンプレートを保存して再構築し、ブラウザより index.html のURL+出力ファイル名でアクセスして表示を確認してください。

3.サイドバーメニューにプロフィールページのリンク設定

メインページ等のサイドメニューやナビゲーションバーにリンクを追加します。フォーマットは各自のメニューのフォーマットに合わせてください。

<div class="side">
<a href="<$MTLink template="Profile">">プロフィール</a>
</div>

リスト中にある MTLink は、template 属性で指定された Profile(これは1項で設定した「テンプレートの名前」です)に該当するファイルを読み込む機能をもっています。
リンク追加後、保存して再構築します。

4.コンテンツのサブタイトル数について

ここでは3つのサブタイトル(名前・性別・さらに詳しく)を入力できるフォーマットを公開していますが、

<!-- タイトルの内容x開始 -->
<div class="entry">
 
   <!-- エントリータイトル -->
   <h3 class="entry-header">●サブタイトル</h3>
 
   <!-- エントリー -->
   <div class="entry-content">
      <div class="entry-body">
サブタイトルの内容
      </div>
   </div><!-- /entry-content -->
 
</div><!-- /entry -->
<!-- タイトルの内容x終了 -->

がひとつのサブタイトル全体を表示する単位ですので、このタグを丸ごと追加すればサブタイトルをお好きなだけ増やすことができます(減らすこともできます)。

2005.12.21 追記
3項のリンク方法を変更しました。
Comments [56] | Trackbacks [4]
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