このブログを検索

大文字小文字を区別する 正規表現

Atelierで“「小粋空間」”が含まれるブログ記事

2016年7月15日

隠居のパソコン備忘録:全ブログ記事リストを表示する

私と同じサイトでブログ投稿を続けている YAMAKOさんから、今まで投稿したブログ記事のタイトル一覧 があれば便利ではないかとの提案があった。
 このようなときには、このサイトのブログを立ち上げるのに導入した MovableType を Version3 から Version4 にアップグレードした時に採用した「小粋空間」さんのテンプレート一式を老人のわずかばかりの知識を総動員して、エキスパートのコードをコピペするなどして対応してきた。
 今回も、いつもの様にネットで解決策を求めたが、うまくヒットしない。ようやく 「小粋空間」さんのサイトで、「ブログ記事に同一カテゴリーのブログ記事リストを表示(MT4版)」というページを探し当てた。ここに示されているコードをコピペしょうとしたが、どのテンプレートに挿入するかの記載はない。試行錯誤で、テンプレート・モジュールである「サイドバー」のここではないかと思われる個所に挿入すると、メインに表示している記事を分類したカテゴリーと同じカテゴリーを持つ記事タイトル一覧が、サイドバーに表示された。

 だが、どうもすっきりしない。いろいろなブログサイトを見ても、過去記事の一覧を簡単に見るページはたくさんある。
 いろいろと試行錯誤してみると、私のサイト環境で望む表示を実現できる方法が分かったので、老人の備忘録として記録しておきたい。

 方法は意外に簡単なことであった。私のサイトでも、最新の10投稿リストを表示するボタンがあった。(現在は、「過去記事タイトルリスト」に置き換えている) これを表示するコードは、次のようになっていた。


<!-- 最新の10投稿  -->
<div class="sidetitle2" id="entryname">
 最新の10投稿
</div>

<div class="side" id="entrylist">
<MTEntries lastn="10">

<MTDateHeader><ul><$MTEntryDate format="%y/%m/%d"$>
</MTDateHeader>
<li><a href="<$MTEntryPermalink$>" title="<$MTEntryTitle$>"><$MTEntryTitle$></a></li>
<MTDateFooter>
</ul>
</MTDateFooter>
</MTEntries>
</div>

<script type="text/javascript">
<!--
FoldNavigation('entry','off',false);
//-->
</script>
<script type=\"text/javascript">
<!--
generateNormalTree("entrylist");
//-->
</script>

 このコードの青字部分 lastn="10" は、参考書などによると出力する記事の件数を制限するモディファイア(HTML でいう属性)である。これが、表示する件数に関係していると思われたので、10 から 0 に変えてみると、見事に、この11年間に投稿した全記事のリストが表示された。
 (上のコードで使用されている JavaScript は、小粋空間さんが作成された「Movable Type サイドバー・メニューの折りたたみ」を応用したものである。)

 乏しい知識で、これを応用してサイドバーのテンプレートなどの表示部分をいじってみた。これによって、投稿全記事リストを表示することができるようになり、おまけに副産物があることが分かった。
 副産物は、理屈はよく分かっていないのだが、サイドバーの「Category」ボタンをクリックすると展開されるカテゴリーの一つ(サブカテゴリーを含めて)を選択すると、そのカテゴリーに該当する過去記事のすべてのタイトルリストが、「過去記事タイトルリスト」ボタンをクリックすることで表示されることであった。
今までは、左メイン枠に、該当する記事の最新の10記事(表示するブログ記事の数は、ブログ管理画面ー設定ーブログ記事設定ーブログ記事の表示数 で増減できる)全文が表示されるだけであったので、修正によってタイトルを見て古い過去の記事全文を表示できるようになったので大変便利となった。
 要するに、Movable Type 固有のファンクション・タグなどが十分に理解できていないことが、色々の対応を困難にしている原因であるが、もうこの歳になっての学習は困難となっている。痴呆予防には、助けになるかもしれないが。

2013年2月16日

隠居のパソコン備忘録: ブログ(MT4.1)サイトにあるウェブページへリンクできない


 【隠居のパソコン備忘録: (続)ブログ(MT4.1)の表示レイアウトを変更する】に記録したように、表示レイアウトを変更してから、いろいろなトラブルが出てきた。
 MovableType(MT) で構成している私のブログ・サイトには、右サイドメニューに日付やカテゴリーで管理されない 野鳥日誌であるとか、Jazz Player のリストなどの独立したウェブページにリンクするボタンを置いている。これらのリンクボタンをクリックしても、「ページが見つけられません」という表示がでて、リンクできないようになった。ネットをサーチしてみたりして、いろいろと弄ってみたが、知識の乏しい老人では、原因がわからない。思い余って、テンプレート使わさせてもらっている「小粋空間」の荒木さんに、質問を投げかけてみた。だが、上っ面だけの知識では教えてもらったことが、よく理解できない。
 とりあえず、MT のサイトの外に、静的なウェブページを作成し、リンクすることで急場をしのいだ。

 今回、何が原因だったのかがよくわからないのであるが、なんとか修復することができたので、修復した方法を備忘録として記録しておきたい。 
  1. MT ではブログ作成作成画面と同じように、 ウェブページを作成・編集する画面があるのであるが、ブログ作成・編集では、表示するファイル名は、/blog-url/yyyy/mm/dd_HHMM.php (2013/02/06_1131:2013年2月6日11時31分の意)というフィル名が自動的に付けられる。(変更はできるようだが) これに対して、ウェブページのフォルダー名・ファイル名は自分でつける。例えば、、/blog-url/web/birds-diary-2012.php という具合に下線部分を自分で決める。
    ブログの公開で、「アーカイブテンプレートをダイナミックに構築する」を選択し、ファイル拡張子 .php としていると、ファイル名の拡張子はすべて php となる。
  2. このウェブページのファイルを、Blog URL フォルダーの直下に置くなどして、ファイル名を変更し、表示を確認(プレビュー)して問題がなければ、保存する。
  3. ウェブページへのリンクは、「テンプレート・モジュール」の「サイドバー」の中で指定しているので、上で指定したファイル名(例:/blog-url/web/birds-diary-2012.phpを間違えないように書き換える。書き換えた「サイドバー」テンプレートを保存し、サイトの再構築(すべてのファイルの再構築とした)をすると、ブログの右カラムに置いているリンクボタンのクリックで、ウェブページが表示されるようになった。ダイナミック・・パブリッシングになっているので、サイトの再構築はそんなに時間がかからない。

 修復できてみれば、大した作業ではないのであるが、それまでに同じような試みをして、上手くいかなかったのは、きっと入力文字の綴りを間違えるなど初歩的なミスをしていたせいかもしれない。

 MTサイト内のウェブページへのリンクにしておくと、MTサイトでカストマイズしている最新のカレンダーが使えるなど、体裁が良くなる。ただし、内容によっては、MTサイト外で表示したほうがいい場合もある。たとえば、DIY作品集などは、静的なウェブページのほうが、スッキリしていいようだ。

2010年1月30日

隠居のMT備忘録:ソースコードを縦スクロールつきコード・ボックスで表示する

 エントリーで、HTML や Javascript , XML のソースコードを記録するときには、<pre><code>~</code></pre>という形で記述している。
 私のMovable Type でのブログは、「小粋空間」さんのテンプレートを使わせてもらっている。もちろん付属しているCSS(Cascading Style Sheets)も使っている。そのCSSでの <pre> は次のように設定されている。backgroundの色は、いじっていているが。
pre {
    margin: 15px 20px 0px;
    padding: 10px;
    background: #ffffe0;
    border: 1px solid #999;
    font-size: 83.3%;
    line-height: 1.5;
    width: 100%;
    overflow: scroll;
}

 このまま、100行、200行あるソースコードを記載すると、縦に非常に間延びしたエントリーになってしまう。
 これを避ける方法をネットでサーチしてみると余りにも普通の知識なのか適切な記述が見つからなかった。もう一度 CSS の基本に立ち返って学習してみると、CSS の pre の部分に、
pre {
  ,,,,
  height: 150px;
  ,,,,
 }
 
といれればよいことが分かった。 
 が、これでは1行のコードを表示するときでも、縦 150px のボックスができてしまう。それで面倒でも、本文のHTMLで
<pre style="height: 150px"> 
とスタイルを指定すればいいことが分かった。この方法を使えば、ボックスの縦の大きさを表示するコードの行数に合わせて変えることができる。スタイルを指定しなければ、縦スクロールがなく、全てのソースコードが表示される。余りにも基本的なことなので、ブログに載せるのは恥ずかしいが、自分自身の備忘録として残しておきたい。

 なお、、<pre><code> ~ </code></pre> の ~ 部分(ソースコード)にある < > は、特殊文字と判定されるので、&lt; &gt;  とHTML エンコードする必要がある。
私はエンコードには、HTML エンコードフォームというサービスを使わせてもらっている。これを使うと空白文字が 、&nbsp; に、" が &quot;に、& が &amp;にエンコードされるが、エンコードされたものをそのまま Copy&Paste して使っても問題はない。
 また、いろいろな場面でソースコードを整理する必要があるが、そのようなときはシェアウエアの「秀丸エディタ」を使っている。テキストを編集する様々な機能が備わっているので、非常に便利である。

2008年11月10日

隠居のブログ備忘録:MovableType4.1 での Captcha 設定

 スパム・コメント対策のために、MovableType(MT)3.3 の時には Scode というランダムに発生させた6桁の数字をいれないとコメントできない仕様にしていた。
 MT4.1 にバージョンアップして、この Scode プラグインが使えなくなった。MT4 以降になって、Captcha がデフォールトで取り入れられたためかもしれない。

 しかし、これを機能させるためには、サーバーに Image::Magic という CGI スクリプトがインストールされている必要がある。私がブログを置いているレンタル・サーバー Xserver には当初見あたらなかったので、他のプラグイン(reCaptcha)を試してみたが上手くいかなかった。仕方なく、MovableType か TypeKey に登録してもらうことを推奨して認証できる方のみがコメントできるようにしていた。

 最近になって、ブログにあまり詳しくない友人からコメントをいただくことがでてきたので、再度MovableType 既定の Cpatcha の利用を調べてみると、Xserver に Image::Magic がインストールされていることが判明した。MT4 のガイドに従って、Captcha を active にしてみるとすんなりと機能するようになったので、手順について備忘録として記録しておきたい。

  1. 環境:Windows XP, Vista
       MovableType 4.1
       レンタル・サーバー:Xserver
       テンプレート・セット:「小粋空間」
  2. http://userdomain/cgi/mt/mt-check.cgi で、 Image::Magic がインストールされていることを確認する。
    「確認中: オプションモジュール」の項に「サーバーに Image::Magick がインストールされています(バージョン 6.0.7)。」とある。
  3. クリックすると大きくなりますNinsho_1.jpgMovableType 4 のドキュメント「コメントに CAPTCHA 認証を利用する」のガイドに従って、「ブログの設定: 登録 / 認証設定」を行う。
     右のスクリーンショットのように、該当ブログ管理画面→設定→ブログの設定→登録/認証 で「認証なしコメントにチェック」、私の場合「メールアドレスを要求」にもチェックをいれた。
    なお、MovableType または TypeKey の認証はそのままコメントが表示されるようにしている。
  4. 同じブログの設定→コメント で「コメントポリシー」→「即時公開する条件」 で「認証サービスで認証されたコメント投稿者のみ」にチェックをいれ、「表示オプション」→「CAPTCHAプロバイダ」 で「MovableType 既定」を選択している。
  5. 「テンプレートモジュール」の「コメント入力フォーム」でコメントをいただくときの注意事項をいささかくどいと思ったが、挿入した。


 MT4.1 での CAPTCHA の設定は、以上のように非常に簡単である。ネットサーチをしてみると MT4.0 ではいろいろとトラブルがあったようであるが、MT 4.1 では解消されている。先人に感謝しなければならない。

  

2008年9月21日

隠居のMT備忘録:lightbox 2.0 の背景 overlay が黒くならない

 lightbox 2.0 の最新バージョン 2.04 の導入は失敗した。導入の手順を間違ったものと思うが、サイトそのものにアクセスできないという致命的な障害がでるので、すぐに元のバージョン 2.03 に戻した。

 そのときのドサクサにまぎれてテンプレートなどをいじったせいか、次の条件のときに、画像が現れるポップアップ画面の背景 overlay が黒くならないという現象がでた。
  • Windows XP SP2
  • Internet Explorer 7
  • MovableType 4.1 テンプレート:小粋空間:two-column-liquid-right メインページ
 アーカイブページやWindowsVista Mozilla(Firefox) では起こらない。
 上記は私の環境で、それ以外については確認していない。

 lightbox2.0 のページの support では、overlay については次の説明がある。

The shadow overlay doesn't stretch to cover full browser window.
Remove the default margin and padding from the body tag. Add body{ margin: 0; padding: 0; } to your stylesheet.

 スタイルシートでは、この設定は既に以下のようになっており、問題はなさそうである。
/* すべて */
* {
    margin: 0;
    padding: 0;
    font-family: Verdana, Arial, sans-serif;
    word-break: normal;
    line-break: strict;
}


 ネットサーチもしてみたが、的確な示唆はヒットしなかった。見当はずれであるが、「小粋空間」さんの「Lightbox JS の Movable Type での不具合を修正する」のエントリーに、コメントとして質問を投げかけてみた。親切に以下のような返事をいただいたが、結局原因不明である。
>n_shuheiさん
こんばんは。ご返事遅くなってすいません。
事象は確認できましたが、現在のところ原因不明です。

もし何か分かりましたら別途エントリーしたいと思います。
それではよろしくお願い致します。


 アクセス解析サービスの Artisan の分析では、私のサイトへの訪問者は、WindowsXP IE6/7 でのアクセスが最も多いから、早く修復したいと思ったが方途がない。

 運営している友人の2つのブログのひとつを見ていると、なんと上の条件でも、lightbox で拡大画像表示されるポップアップ画像の背景overlay が黒くなっていることが分かった。いじっているうちに偶然うまくいっていたらしい。

 このブログも同じ小粋空間:two-column-liquid-right のテンプレートを使っているので、lightbox 表示に関連していると思われるテンプレートモジュールの「ヘッダー」を子細に見てみると、正常に表示されるブログのテンプレートの<div> タグを閉じる </div> タグがひとつ少ないことを見つけた。
 どうやら、テンプレートモジュールの「ヘッダー」で<div> タグを閉じる </div> タグを余計にひとつつけたことが原因らしく思われた。テンプレートの構成上テンプレートモジュールの「ヘッダー」の<div> タグのひとつは、テンプレートモジュールの「フッター」で閉じられることになっていたのだ。

 「ヘッダー」の余計な </div> タグを削除すると上手く背景overlay が黒くなった。原因は、まったくそのせいと思っていたが、再現性を確認するために、「ヘッダー」テンプレートに余計な </div> タグをつけても、背景overlay は黒くなる。再現性はないのだ。
 どうやら修復は不可逆性だったようで釈然としないのだが、うまく表示されるようになっているので、まあ、いいか という気分である。
 ブラウザーに依存する障害は、いつもよく分からない。

2008年8月24日

隠居のBlog備忘録: MT4.1 で エントリー部分のみを印刷する

 友人から、ブログのヘッダー部分や右サイドメニューを外して、エントリー部分のみを印刷できないかの質問を受けた。確かに、ヘッダー部分や右サイドメニューが印刷されるのは少々うっとうしい。

 方法をググッテみるといつもテンプレートを使わせてもらっている「小粋空間」さんに、「印刷用スタイルシート」というカストマイズがあることが分かった。このカスタマイズは、印刷をするときには、スタイルシートを切り替える仕様になっている。MT4.1、「小粋空間」さんのテンプレート(layout-two-column-liquid-right )の私のブログ環境に導入してみたので備忘録として書き留めておきたい。
 
  1. 印刷用スタイルシート追加を追加する。
     管理画面のデザイン→テンプレート→インデックス・テンプレートの表示で「インデックステンプレートを作成」クリックして、以下のように新しいインデックス・テンプレートを作成する。
    • テンプレートの名前:ForPrinting(なんでもよい)
    • 出力ファイル名:print.css
    • 再構築オプション:チェックを外す
    • このテンプレートにリンクするファイル:(空白)
    • テンプレートの中身:スタイルシート(styles-site.css)の中身を丸ごとコピー
  2. 印刷用スタイルシートの修正
    コピーしたスタイルシートで本体のヘッド部分と右サイドメニューが印刷プレビューで表示されないように、該当スタイルのID属性、クラス属性をいじった。
     私の場合、具体的にはスタイルシートの次の項目を青字で書いた部分を付加した。
    #header 
        {
         /* padding: 15px;
        border-bottom: 1px solid #669;
        color: #999;
        background-image: url("http://n-huhei.net/Libraly/Image/Wood_ipe_01.gif");   
        background: #8fabbe; 
       text-align: left;     */
       display: none;
    }
    
    #links-left-box dl,
    #links-right-box dl {
      /*  margin: 0;
        padding: 0;   */
          display: none;
        }
    
    /* 2カラムリキッドレイアウト(右サイドバー) */
    .layout-two-column-liquid-right #content {
        /* margin: 0 250px 10px 0px;  */
        margin: 0 10px 0px;    
       /* border-bottom: 1px solid #669;
        border-right: 1px solid #669;
        background-color: #ffffff;  */
        border-style: none; 
    }

  3. テンプレートに link 要素追加
     次に、モジュールテンプレートの「ヘッダー」 <head> 部にあるスタイルシートを呼び出している部分を次の青字部分を追加した。
    実際には、この部分を先に付加しておいて、ブログのエントリーを表示し、ブラウザーのツールバー「ファイル」→「印刷プレビュー」で確認しながら print.css をいじる試行錯誤をした。
    
       <link rel="stylesheet" href="<$MTLink template="スタイルシート"$>" type="text/css" media="screen,tv" />
       <link rel="stylesheet" href="<$MTBlogURL$>print.css" type="text/css" media="print" />


  4. カスタマイズの結果
    ForPrintCSS.jpgForPrintCSS_2.jpg 左のスクリーンショットは、このカスタマイズをしていない場合とカスタマイズした後との印刷画面の比較である。
     カスタマイズした後は、ヘッダーと右サイドメニューが印刷画面に出てこないので、エントリー部分のみを印刷できる。




2008年8月16日

MT4.1 での迷惑トラックバックの阻止:asciiTBPingfilter

 MT3.3 のときに、JunkTrackbacks の絨毯爆撃に悩まされて、「小粋空間」さんの ASCII TBPing Filter というプラグインを入れて阻止したことをエントリーしている。

クリックすると大きくなります MT4.1 では、MT3.3 のときに「迷惑トラックバック」にフィルタリングされていた spam trackback は、screenshot のように「スパム指定されているトラックバック」としてフィルタリングされてあまり気にとめていなかったが、開いてみると英語のSpam TB が1000 以上溜まっていた。JunkTrackbacks の絨毯爆撃は相変わらず続いていたのだ。

 それで、MT4.1 での迷惑トラックバックの阻止の方法を探ってみた。ヒントを得るために、上記の「小粋空間」さんの ASCII TBPing Filter というプラグインを訪ねてみると、"asciiTBPingfilter.zip(MT4.x用)" が用意されていた。早速、このプラグインを導入した。
 導入は、すこぶる簡単である。上のファイルをダウンロードして解凍して出てくるフォルダー asciiTBPingfilter を Movable Type の plugins ディレクトリにアップロードするだけである。
 「システム・メニュー」→「プラグイン」で "ASCII TBPing Filter Plugin 2.0" が表示されれば(多分一番上に) OK である。これをクリックすると
ASCII 文字のみのトラックバックをフィルタリング(スパムとしても保存しない)
との説明がある。

クリックすると大きくなります 各ブログの「設定」→「プラグイン」でも "ASCII TBPing Filter Plugin 2.0" が表示されている。ここの「設定」ボタンで「フィルタリングされたトラックバックをログに出力する」にチェックをいれると screenshot のように、フィルタリングされたトラックバックがリスト表示される。 JunkTrackbacks の絨毯爆撃は相変わらず続いているようだ。
 チェックを外せば、ログも表示されなくなる。




2008年7月22日

隠居のBlog備忘録:MT4.1 で TagCloud ページをつくる

 MT3.3 のときに、はじめて TagCloud を設置したときはかなり苦労した。

 MT4.1 では「小粋空間」さんのテンプレート・セットの "two-colomn-liquid-right" を使わせてもらっている。TagCloud は右サイドメニューの中で表示する仕様になっている。Msajii's Blog のようにタグ(キーワード)が多いと「小粋空間」さんの「タグクラウドの折りたたみ for Movable Type 4」を使わせてもらって、折りたたみができる。ただ、私の場合はメッシュを細かくしてタグ(キーワード)をつけたので700 ちかくになっているから、全てを表示すると縦に長くなってしまう。

 それで、MT3.3 のときのようにページで表示できないかネットをググッテみたが、適切なインストラクションがヒットしなかった。それでもいろいろなページを参考に、MT3.3 のときに使っていた「小粋空間」さんの「Movable Type 3.3 エントリー・タグ詳説」のコードを使って、TagCloud ページを作るとうまくいったので備忘録的に書き留めておきたい。

 わかってみれば設置は簡単である。
  1. 方法はインデックステンプレートを新しく作るのである。(追記:2013/1/22)。インデックステンプレートのメインページをまるまる C&P して、新しく名前は何でもいいのだが、TagCloud とでもし、出力ファイル名はこれも名前は何でもいいのだが tagcloud_page.php としてインデックス・テンプレートに保存する。
  2. このテンプレートページの下記の部分を削除し、
    <MTEntries>
       <$MTEntryTrackbackData$>
       <$MTInclude module="ブログ記事の概要"$>
    </MTEntries>
    

    「Movable Type 3.3 エントリー・タグ詳説」の下方にある次のコードを挿入する。
    <div class="module-tagcloud module">
        <h2 class="module-header">Tag cloud</h2>
        <div class="module-content">
            <ul class="module-list">
                <MTTags>
                    <li class="module-list-item taglevel<$MTTagRank$>">
                        <a href="<$MTTagSearchLink$>"><$MTTagName$></a>
                    </li>
                </MTTags>
            </ul>
        </div>
    </div>
    <h2> Tag Cloud </h2> の部分には、TagCloud の説明などに変更できる。
  3. スタイルシートには、次のCSS を追加する。
    /* (タグクラウド用) */
    
    .module-tagcloud .module-content a {text-decoration: none; }
    .module-tagcloud .module-content {text-align: left; }
    .module-tagcloud .module-content .module-list { list-style: none; }
    .module-tagcloud .module-content .module-list .module-list-item { display: inline; }
    .module-tagcloud .module-content .module-list li.taglevel1 { font-size: 32px; }
    .module-tagcloud .module-content .module-list li.taglevel2 { font-size: 28px; }
    .module-tagcloud .module-content .module-list li.taglevel3 { font-size: 24px; }
    .module-tagcloud .module-content .module-list li.taglevel4 { font-size: 20px; }
    .module-tagcloud .module-content .module-list li.taglevel5 { font-size: 16px; }
    .module-tagcloud .module-content .module-list li.taglevel6 { font-size: 12px; }
    
    .module-tagcloud .module-content .module-list li.taglevel1 a{ color: #000000; }
    .module-tagcloud .module-content .module-list li.taglevel2 a{ color: #0000ff; }
    .module-tagcloud .module-content .module-list li.taglevel3 a{ color: #000000; }
    
    表示するフォントの大きさや色は、ここでいじれる。ランクの区分は6段階が初期値である。
  4. 作ったページへのパス(私の場合:http://n-shuhei.net/atelier/tagcloud_page.php )でブラウザに TagCloud ページが表示できれば成功である。
  5. あとは適当な位置に TagCloud ページへのリンクボタンを設定すれば終わりである。右サイドにボタンを置いたので、サンプルはそちらをみて欲しい。


2008年7月 4日

.htaccess で移転先URLページへ誘導する:MT4.1

 MT4.1 で「小粋空間」さんのテンプレート・セットに移行したときに、ブログ名を変更した。とりあえず、元のメイン・ページ( http://n-shuhei.net/blog/ )へ訪問された方には、以前 ISP のホームページを移転するときに使っていた次のようなメタ・タグをメイン・ページの<head> ~ </head> においた。
<meta http-equiv="REFRESH" content=" 5;URL=http://user-domain/new-blog/">

 これは、ページの移転の知らせを発信されている方のソースから、何も分からないままいただいたものである。この方法については、「.htaccessを活用する方法(6)」に詳しい。

 このメタタグをおくことで、元のメインページに訪問された方を新しいメインページに誘導できるが、Google search などで個別のアーカイブへ直接訪問される方は新しいページには誘導するには、全ての個別のアーカイブにメタタグを設置しなければならないから大変な作業となる。

 そこで、上の記事にも紹介されている .htaccess を使って誘導(redirect)する方法を試してみることにした。以前に、この .htaccess を使ってページへのアクセス制限を設定したことがあるが、redirect を使うのは初めてである。

 説明通りに、次のコードを元のブログ:http://n-shuhei.net/blog/ と同じフォルダーにある .htaccess ファイルに追加した。{私の場合、FTP ソフトは FFFTP を使っているが、いったんローカル側で、テキスト・エディター(私の場合は、秀丸)でコードを追加したファイルを作り、これを元の位置にアップロードしなければならない。}
Redirect permanent /blog/index.php http://n-shuhei.net/atelier/index.php

 このコード追加では、先ほどのメタタグの挿入と同じような効果が得られるだけである。

クリックすると大きくなります アクセス解析にはアクセス解析サービスの Research Artisan を使っているが、その解析のひとつである先月のページ別訪問は、screenshot のように、ほとんどが元のブログ(頭に Atelier Shuhei Weblog: とある。新しいブログは、頭に単に Atelier: とあるもの)のアーカイブへの訪問である。また、少ないがカテゴリー・アーカイブへの訪問もある。MT3.3 を単純に MT4.1 へバージョンアップした元のブログ・アーカイブはそのままおいているので、ページが見つからないということはないが、コメント入力などが不備な(実はそのために新しいテンプレート・セットを導入した)ページへの訪問となっている。
 図中にある 「Atelier Shuhei Weblog: 001DIY アーカイブ」への訪問を redirect するには、次のようなコードを .htaccess に追加する。
RedirectPermanent /blog/001diy/ http://n-shuhei.net/atelier/001diy/


 数が少なければ、上のようなコードを追加していけばよいのだが、個別アーカイブごとにコードを追加するのは大変な作業となる。そこで、「小粋空間」さんに紹介されている「.htaccess によるリダイレクト」を参考に、.htaccess に追加するコードを作成することにした。

方法は、
  1. この記事の 3.1 項にあるコードの次の個別アーカイブ部分を
    <MTArchiveList archive_type="Individual"> RedirectPermanent /blog/archives/<$MTArchiveDate format="%Y/%m"$>/<MTEntries><$MTEntryLink$></MTEntries> <$MTBlogURL$>archives/
    <$MTArchiveDate format="%Y/%m/%d_%H%M"$><MTEntries>.php</MTEntries> </MTArchiveList>
    下のようなコードに書き換え、説明通り「リダイレクト」(出力ファイル名:htaccess.txt)という名前でインデックス・テンプレートを作成した。
     <MTArchiveList archive_type="Individual"> RedirectPermanent /blog/archives<$MTArchiveDate format="/%Y/%m/%d-%h%m%s"$>.php  http://n-shuhei.net/atelier/<$MTArchiveDate format="%Y/%m/%d_%H%M"$>.php </MTArchiveList>
    ここでの $MTArchiveDate format= は、元のブログ(blog)のものは「アーカイブ・テンプレート」→「エントリー・アーカイブ」(MT3.3 ではこのような名称である)の「アーカイブ・マッピング」のパスで使っているフォーマットである。新しいブログ(atelier) では、「アーカイブ・テンプレート」→「ブログ記事」「アーカイブ・マッピング」のパスで使っているフォーマットである。
  2. 新しく作成したインデックス・テンプレート「リダイレクト」を保存・再構築すると、FFFTP のサーバー側に次のようなファイル(htaccess.txt)が表示される。
    RedirectPermanent /blog/archives/2008/06/10-110702.php  http://n-shuhei.net/atelier/2008/06/10_1107.php
    RedirectPermanent /blog/archives/2008/06/04-102457.php http://n-shuhei.net/atelier/2008/06/04_1024.php
    RedirectPermanent /blog/archives/2008/06/03-194435.php http://n-shuhei.net/atelier/2008/06/03_1944.php
    .
    .
    .
    .

     この作成されたコードをコピー&ペーストで、.htaccess に約400 のエントリー分コードを追加した。
     一見、上手くコード生成していると思われたが、うまく機能しない。
     先ほどのResearch Artisan に表示されるページのURLと作成したコードを子細に照らし合わせてみると元のアーカイブURLの分表示(%M)が月表示(%m)になっている。
    2008/06/04-102457 が正解なのだが、参照にいっているURLの表示では、2008/06/04-100657 となっているのだ。どうやら、MT3.3 から MT4.1 にバージョンアップしたときに、アーカイブ・マッピングの指定を間違ったらしい。 小文字の %m は月表示であり、大文字の %M は分表示なのだ。2~3の例で .htaccess に追加するコードを間違った方にしたら、上手く機能するようになった。
  3. この作業を作成したファイルをテキスト・エディターの秀丸にコピー&ペーストして行った。単純な作業だが、400近くの修正は結構なアルバイトであった。
  4. 修正したファイルを、ローカル側の.htaccess にコピー&ペーストして、サーバー側にアップロードすると、うまくリダイレクトしてくれるようになった。



(追記:2008/7/4)元のカテゴリー別のアーカイブにも訪問が割合あるので、上と同じような方法で、.htaccess に追加するコードを「小粋空間」さんの記事を参考に作成した。数が少ないので、マニュアルにいじってもそれほどの作業ではない。ただ、バージョンアップしてから、カテゴリー名を変更している場合は、特別なひもつけが必要である。
(追記:2008/7/8) Research Artisan をつぶさにみると、数は少ないが元の月別アーカイブに訪ねて来る人があるようなので、先ほどの「リダイレクト」インデックス・テンプレートを次のコードに書き換えて、.htaccess に追加するコードを作成した。月別アーカイブについては、コードの修正は全くなかった。
 この「リダイレクト」インデックス・テンプレートは、コードを生成するためのテンプレートなので、書き換えても問題はない。
 これで、元のブログはサーバーから削除しても大丈夫と思うが、まだ容量にゆとりがあるのでしばらくおいておくことにしている。
<MTArchiveList archive_type="Monthly">
RedirectPermanent /blog/archives/<$MTArchiveDate format="%Y/%m"$>/index.php http://n-shuhei.net/atelier/<$MTArchiveDate format="%Y/%m"$>/index.php
</MTArchiveList>

 Monthly Archive の後尾には、index.php をつけないと、individual archive のリダイレクトに不都合が起こる。

2008年6月29日

Kinarie&Mayさんの横長Flash CalendarをMT4.1に設置する

 MT4.1 にアップグレードしてから、Kinarie&May さんのFlash Calendar が使えなくなっていた。MT3.3 のときに、アーカイブテンプレートのところにおいていた 月別XML の XML ファイルをどのように置き、アーカイブマッピングをどのように設定するのかの知識がなかったためである。

 それで、「小粋空間」さんが提供している「Ajax 月送りカレンダー(MT4版)」を3つ運営しているブログのうちひとつに導入した。うまく動くようなので、メインのこのブログにも導入してみた。ところが、はじめのブログでは上手く動いているのに、こちらではカレンダーは表示されるもののエントリーがある日のリンクをクリックすると、アドレスはリンク先のエントリーになっているのに
error in template: found but mtifnonzero was expected
というエラー・メッセージが表示されるだけである。

 この原因を探るうちに、Kinarie&May さんのFlash Calendar でつかう XML ファイルの置き場所とアーカイブマッピングの仕方が分かった。忘れないうちに書き留めておきたい。
 なお、エラーの原因はあとで判明したことであるが、テンプレートをいじっている間に、テンプレート・タグの残骸が「ブログ記事」テンプレートに残っていたためらしい。いつものように初歩的なミスである。

  1. 横長Flash Calendar 3.0 のダウンロードと解凍、アップロードなどについては、Kinarie&May さんのページ 「Falsh」→「MT用横長Flash Calendar 3.0」に詳しくでているのでそちらを参考にする。
     私の場合、MT3.3 のときに使っていた Flash File があったので、これを使った。
  2. MT4 になって、XML ファイルの設定が異なる。
    1. ブログ管理画面で(MT4 からダッシュボードという)設置するブログを選択し、「デザイン」→「テンプレート」→「アーカイブテンプレート」を選択する。
    2. 上段の「アーカイブテンプレートを作成」→「ブログ記事リスト」を選択する。
    3. 空白のテンプレート作成画面がでるのでファイル名を「月別XML」(なんでもいいようだが)とし、Kinarie&Mayさんの「月別XMLファイルのテンプレート修正」のページから、呈示されている XML ファイルを C&P して保存する。
    4. 保存すると、テンプレートの下に「アーカイブマッピング」が表示されるので、 「新しいアーカイブマッピングを作成」をクリックし、種類「月別」を選択し追加ボタンをクリックする。 「パス」はカスタムを選び、次のパスを入力(C&P)し保存する。
      xml/<MTArchiveDate format="%Y_%m"$>.xml
    5. Kinarie&Mayさんの手順にはないが、MT4では「デザイン」→「テンプレート」→「アーカイブテンプレート」→「ブログ記事リスト」の下部にある「アーカイブマッピング」で「日別」のパスを表示しておく必要がある。表示がない場合は、「新しいアーカイブマッピング作成」をクリックしてでてくるリストボックスから「日別」を選び「追加」をクリックする。パス表示はそのままでよいようだ。
  3. あとは、Kinarie&Mayさんの手順とおりに、Flash を貼り付けるHTMLソースをつくって、テンプレートに貼り付けるだけである。
    私の場合、MT3.3 のときのソースが残っていたので、URL のパス部分を変更して、MT4 の「テンプレートモジュール」→「ヘッダー」の<div id="header"> ~ </div> の部分に貼り付けた。ただし、私は「小粋空間」さんのテンプレート・セットを使わせてもらっている。


 友人が原稿を書いているもう一つのブログでは、「小粋空間」さんの「月送りカレンダー」を設置しているが、どちらも甲乙がつけがたい。「小粋空間」さんの「月送りカレンダー」では、スタイルシートでデザインをいじれるのがいい。
Kinarie&Mayさんのカレンダーは横長があるのと、投稿している日にカーソルを合わせるとエントリーのタイトルが出てくる。どちらも愛用させてもらっている。