このブログを検索

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

Atelierで“スタイルシート”が含まれるブログ記事

2019年1月28日

隠居のPC備忘録:ブログ記事を印刷する

ブログ記事をパソコンの画面だけではなく、ハードコピーにして残しておきたいという要求もある。私たちのテンプレート(スタイル)では、画面に表示されているそのまま印刷すると右サイドカラムやヘッダー・フッターが印刷されることになる。
 MT7にバージョンアップする前には、本文の記事と写真サムネイルだけをプリントあるいは PDF化しておくことができるようにカスタマイズしていたが、バージョンアップしてから、そのときのカスタマイズがなくなってしまっていた。どうしてやったのかと過去のブログの記録を探してみたが、見つからなかった。ちゃんと記録しておかなったようだ。
 それで、新たにググッてみると、以前に実施した思える方法が見つかった。Print 用の CSS を作成し、印刷するときには、その CSS を使用するように、HTML のコードに指示すればいいことがわった。
 これで、右サイドカラムやヘッダー・フッターが印刷されることはなくなったが、ただブラウザごとに異なる結果となる。特に、初めて print用カスタマイズを設置したときには存在していなかった Microsoft Edge での印刷が一番芳しくなく、Internet Explorer がもっとも良い結果であった。
 参照例:印刷時にのみ有効となるスタイルシートを設定する方法

 ただ、この方法で右サイドカラムやヘッダー・フッターが印刷されることはなくなったが、印刷時に、適切な位置でページ替えをする方法が見つからなかった。このような事案の解決は、Web ページの先進国である英語圏のページでヒットすることが多い。
 [CSS for print] というようなフレーズでググッてみると、以下のような英語のページがヒットした。
 How to Create Printer-friendly Pages with CSS
 このページに、求めていた記述があった。【Page Break】の部分である。  表を印刷するとき、表の途中で印刷が切れてしまわないようにするには、次のような CSS を記述すればよいことがわかった。実際に、print 用 CSS に記述してみると表の印刷前にページ替えが実行される。

table { 
page-break-inside: avoid;
break-inside: avoid;
}

私達のブログでは、表の中で、左に(あるいは右に)サムネイル写真、その隣に写真の説明文といった構成で一枚づつの写真を行替えしていることが多い。それで、上述の CSS を真似て、table 要素を table の子要素である tr にしてみるとテーブル内の行替えでページ印刷されるようになった。Page Break を十分に理解はできていないが、とりあえず満足している。
 今の所、Google chrome が一番期待に答えてくれている。
 現在、導入している CSS は以下のようなものである。
/* print.css */    
header, footer, aside, nav, form, iframe, .menu, .hero, .adslot {  
display: none;  
}   

tr {  
page-break-inside: avoid;  
break-inside: avoid;   
}  

2013年2月 3日

隠居のブログ備忘録:JQuery lightbox 2.51 をカストマイズする

 
 昨年夏に、サムネイル写真をクリックするとウインドウ中央に写真が拡大表示される Llightbox を jQuery という JavaScript のライブラリーを使用した Lightbox2.51 を導入した。
 その時、カストマイズしたのは、デフォールトでは黒である背景画面の色を緑にしたのと、写真ページを閉じるボタンを デフォールトのclose.png から、自作の closelabel.gif に変更しただけである。

 私が管理している友人の Lightbox は、prototype.js という JavaScript のライブラリーを使った旧バージョン Lightbox2.0 を使っている。背景画面に、蝶をあしらった壁紙を使っていて、これを Lightbox2.51 で使う方策が分からなかったからである。
  Lightbox2.51 のカストマイズは、【jQueryのlightBoxプラグインの使い方】【jQuery LightBox Pluginの使い方】 などに詳しい。これらのプラグインは、新たに JavaScript を付け加えてカストマイズする方法である。だが、私のやり方が悪かったのか上手く行かなかった。
 そこで、当初導入した時にいじったJavaScript lightbox.js と スタイルシート lightbox.css 再度いじって見ることにした。 私にコードが理解できるわけではないから、やりかたは ここはと思われるスクリプト ないしは CSS をいじって、FTP でサーバーにアップロードし、実際のページでの変化を観察する方法である。幸い、JavaScript と CSS の変更は、すぐにページに現れるから楽である。この結果を備忘録として記録しておきたいと思う。

  1. 自作の closelabel に置き換える。
    lightbox.js の41行目を下のように独自の画像に置き換える。
          this.fileCloseImage = 'http://n-shuhei.net/atelier/Jquery2.51/images/closelabel.gif';

  2. セットで写真を表示している場合の表示を "image"(default) から "画像"に置き換える。44行目
          this.labelImage = " 画像 "; 

  3. セットの写真の何枚目を示す、表示を例えば "1 of 8" を " 1 / 8 "に置き換える。45行目
          this.labelOf = "/";  

  4. 背景画面を単一色から、壁紙画面に変える。lightbox.ccs の7行目あたりの背景色をコメントアウトして、壁紙イメージを挿入する。
    /*  background-color: #000000; */
    background-image: url("http://n-shuhei.net/atelier/lightbox2/images/overlay_1.jpg") ; 

  5. 画像の枠(台紙)の色をかえる。lightbox.ccs の35行目あたり。デフォールトは、"white;"
       background-color: #ffffe0;

  6. 画面の"前画面" "次画面" へのボタンを独自のボタンに置き換える。lightbox.ccs の112行目、117行目あたり。 
        background: url(http://n-shuhei.net/lightbox2/images/prevlabel.gif) left 40% no-repeat;

    background: url(http://n-shuhei.net/lightbox2/images/nextlabel.gif) right 40% no-repeat;

  7. 写真の説明文字の色を変える。lightbox.ccs の145行目あたり。デフォールトは灰色。
     color: #ffffff;

 その他、細かい部分も、CSS をいじることで変えられそうだ。
サンプル画像は、次のエントリー【隠居の探鳥ウォーク:ハリエンジュ 花芽ついばむ 鷽(ウソ)4羽 】などで確認できます。

  

2013年1月22日

隠居のパソコン備忘録: (続)ブログ(MT4.1)の表示レイアウトを変更する


 【隠居のパソコン備忘録: ブログ(MT4.1)の表示レイアウトを変更する】で記録したように、表示レイアウトを変えてから、色々なバグが出ている。今まで、当ページを訪問していただいていて、お気に入り(Bookmark)に登録していただいてような方が、登録しているURLをクリックすると表示が崩れてしまう。変更前のレイアウトのキャッシュを保持しているからである。一旦、古い登録や Cookie(キャッシュ) を削除して、新たにアクセスしていただくと上手く表示されるのだが、メールでもいただかない限り、それを案内する方法が思い当たらない。何かいい方法があれば教えてもらいたいと思う。

 その他にもいくつかの不具合があったが、中でもなかなか原因がつかめなかったバグ(?)は、右サイドメニューに置いている【このブログのキーワードページ】(TagCloud のページ)の表示である。ページの表示が崩れるのである。このページは、自分で乏しい知識をもとに行ったカストマイズである。このページを作った時の記録が、ブログに残っているのであるが、この記録が不完全であった。新たに、tagcloud ページ用のインデックス・テンプレートを作って対処していたのであるが、新たにインデックス・テンプレートを作るとの記述が抜けていた。
 スタイルシート(CSS)も、インデックス・テンプレートの一つであるが、これらを訂正した時には、ブログの再構築が必要である。上述の記録にある方法で、tagcloud 用のインデックス・テンプレートを作成し、再構築を行うと正常に表示されるようになった。
 5年も前のことは、すっかり忘れてしまっている。そのための記録なのだが。

(追記:2013/1/28)修復するのに、多大な時間を使った項目が2つあるので、記録しておきたい。
  1. 先にも記録したようにメインページのおかしなキャッシュが残っていて、ブログ・メインページ(http://n-shuhei.net/atelier/ )にアクセスすると、1月8日現在の形の崩れたページが表示された。
    原因をいろいろと探ったが分からずあきらめていたところ、インデックス・テンプレートのメインページテンプレートでの出力ファイル名が、index.php となっていなければならないところ、index.html となっていた。いつもそうだが、単純なミスである。
  2. いつも訪問していただいている友人の指摘で、ヘッダー部分にある横長カレンダーからエントリーへのリンクが機能していないことがわかった。原因を探ると、プラグインの横長カレンダーを導入した時に作ったアーカイブテンプレートが消失していることが判明した。過去の記録を見て修復することができた。



  

2012年3月 4日

隠居のMT 備忘録:テーブル(表)の形式を工夫してみる


 前回の記事【隠居のMT 備忘録:IE で表示した時に出現する意図しないスペースを削除する】で表の上部に余分なスペースが表示される件については、一応落着しているのであるが、それでも原因が探りたくて、色々と大した知識もない中で思いをめぐらしていた。

 どうやら、先の現象が起きるのは、記事の中のテーブルを頻回に修正・追加しているのが原因ではないかと思われた。それで、〘IE CSS Table〙というようなワードでググってみると、 HTML コードでの <table> に関するプロパティを付け焼刃で学習してきたために、十分把握していなかったことが分かった。今後、HTML CSS にあまり知識のないものが、テーブルをいじるときに注意すべき事項を思いつくまま、備忘録として記録しおきたい。

 
  • テーブルやセルの枠を表示する線は、それぞれ太さがあり、隣接するセルのボーダーを重ねて表示したり、間隔をあけて表示したりできる。これは、CSS(スタイル・シート)で指定する。
     重ねての表示は、次のようなコードが紹介されている。
    table  { border-collapse: collapse }

    また、間隔をあけての表示は、次のように設定するとされている。
    table {  border-collapse: separate }

    どうやら、border-collapse を指定しない場合(初期設定)は、separate になっていたようだ。そのために、IE の場合、テーブルを設定し直すたびに、少しずつ sell-space が設定されており、たび重なって大きな空白ができたのではないかと推定される。ど素人のゲスだから、全く的外れかもしれないが。

  • このような学習をしていると、テーブルの枠やセルの線の太さや色などを指定したり、空白のセルにも枠をつけるためのスタイルを設定する方法が分ってきた。テーブルの枠やセルの線は、今まで特別に意識しない場合デフォールトの設定である solid で通してきたが、好きな線の太さや色を設定する方法も分かった。それで、もう少し自分好みにしたくて、新たにスタイルシートに設定した <table> に関するコードは、次のようなものである。
    なお、余談であるが、線の色:#ffcf64 および #48acd0 は私がディスクトップの壁紙として使っているカワセミの写真の腹部および羽の色である。この色コードは、以前から愛用している【ウェブカラークリエイター】というソフトを使って、採取したものである。
    /* テーブルのセル・ボーダーの表示形式 */
    table
     .waku1
      { border-collapse: separate;
        border: 1px solid #ffcf64; }
     .waku2
      { border-collapse: collapse;
        border: 1px solid #48acd0; }
    
    td { border: 1px solid #48acd0 }  


border-collapse: separate の場合(初期設定)
collapse_2.JPG


border-collapse: collapse の場合(新しく設定したスタイルシート)
collapse_3.JPG


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年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年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さんのカレンダーは横長があるのと、投稿している日にカーソルを合わせるとエントリーのタイトルが出てくる。どちらも愛用させてもらっている。 

2008年6月24日

隠居、MT4.1 でのコメント編集HTMLタグボタンを設置

 MT3.3 のときには、コメント入力ボックスの縁に、HTMLタグボタンをカストマイズで設置していた。MT4 にバージョンアップして、新たに「小粋空間」さんの MT4.1 テンプレートセットを導入したが、「コメント入力フォーム」には、このHTMLタグボタンがついていない。

 コメントも単純なテキスト文書でなく、冗長な絵文字までいらないが、文字の一部分を太字にしたりリンクを張ったりしたい。HTMLタグは使える設定にしているので、タグを書けばよいのだがいちいち面倒である。それで、新しい「コメント入力フォーム」にもHTMLタグボタンをつけることにトライすることにした。

 「MT4 コメント編集ボタン」でググルとすぐにでもありそうなのに的確にヒットしない。そこで、MT3.3 のときにお世話になった「小粋空間」さんの「コメントにHTMLタグ挿入ボタンをつける(改)」を参考にさせてもらって、MT4 に応用してみた。カスタマイズの記録として記しておきたい。

 「小粋空間」さんのエントリーの順に従って、変更した部分を書き留めたい。
  1. コメント欄でのHTMLタグの使用を有効にする。
    →MT4 では、「ブログの設定」→「コメント」→「コメントポリシー:HTMLを許可」をチェック
  2. 編集ボタン用画像のコピー
    →バックアップでおいてあった MT3.3 のときのファイルを <$MTBlogURL$> (私の場合:http://n-shuhei.net/atelier/ )に images フォルダーを作ってアップした。
  3. JavaScriptファイルの作成>
    →提供されている JavaScript のスクリプトを秀丸に文字コードを UTF-8 として Copy&Paste とし、ファイル名を commentButton.js として保存した。このファイルを <$MTBlogURL$> のフォルダーにアップした。
  4. 編集ボタン表示スタイルの追加
    →提供されているコードをスタイルシート(styles-site.css)に追加した。ただし、実際の表示をみて、以下のコードの赤字部分を修正した。
    /*  field buttons */
    .field-header {
        width: 400px; /* ボタンを配置するエリアの幅 */
        height: 30px; /* ボタンを配置するエリアの高さ */
        position: relative;
    }
     
    .field-label {
        position: absolute;
        bottom: 30px;
        left: 0px;
    }
     
    .field-buttons {
        position: absolute;
        bottom: 0px;
        right: 0px;
    }
     
    .field-buttons img {
        border: 0;
        margin: 0px 0px 0px 3px;
    }
    

  5. テンプレートの修正(JavaScriptファイルのインクルード追加)
    →モジュール・テンプレート 「ヘッダー」の </head> 直前に、
    <script type="text/javascript" src="<$MTBlogURL$>commentButton.js" charset="utf-8"></script> 
    
    を挿入した。

  6. テンプレートの修正(個別エントリーアーカイブへ編集用ボタン設定)
    →モジュール・テンプレートの「コメント入力フォーム」の次の部分をコメントアウトし、その直後に提供されているコードを挿入した。
     <!--<p id="comments-open-text"><label for="comment-text">コメント:<MTIfAllowCommentHTML>(スタイル用のHTMLタグが使えます)</MTIfAllowCommentHTML></label>-->
    
    <div class="field-header">
    コメント:
    <div class="field-buttons">
    <a title="太字" href="#" onclick="return formatStr(document.comments_form.text, 'strong')"><img class="button" src="<$MTBlogURL$>images/html-bold.gif" alt="太字" width="22" height="16" /></a>
    <a title="イタリック" href="#" onclick="return formatStr(document.comments_form.text, 'em')"><img class="button" src="<$MTBlogURL$>images/html-italic.gif" alt="イタリック" width="22" height="16" /></a>
    <a title="アンダーライン" href="#" onclick="return formatStr(document.comments_form.text, 'u')"><img class="button" src="<$MTBlogURL$>images/html-underline.gif" alt="アンダーライン" width="22" height="16" /></a>
    <a title="ハイパーリンク" href="#" onclick="return insertLink(document.comments_form.text)"><img class="button" src="<$MTBlogURL$>images/html-link.gif" alt="ハイパーリンク" width="22" height="16" /></a>
    <a title="引用" href="#" onclick="return formatStr(document.comments_form.text, 'blockquote')"><img class="button" src="<$MTBlogURL$>images/html-quote.gif" alt="引用" width="22" height="16" /></a>
    </div>
    </div>
    
    

以上で、「コメント入力フォーム」にコメント編集ボタンは表示されるようになった。MT4 では、「コメント入力フォーム」がモジュール化されているので、コメントの「確認」画面でも、コメント編集ボタンは表示される。
(追記:2009/3/2)サインインなしのコメントのための Captcha を設定したときに、HTMLタグのアイコンが消えてしまっていたので、修正した。また、一部の記述を変更した。

2008年6月22日

隠居のMT4.1 バージョンアップ備忘録

 MT3.35 から MT4.1 へ「小粋空間」さんの「Movable Type 3 から へのアップグレード方法」を参考にアップグレードした。一見上手く成功したと思ったが、コメント入力での認証などで不具合が出て丸1日くらい調べてみても対処の方法が見つからなかった。

  MT3.35 を引きづりながら、素人があれこれいじっても時間ばかりかかるので思い切って 「小粋空間」さんの4.1 用(XHTML 1.0 Strict(utf-8 版):スタイル対応版)のテンプレートセット(この言葉も 4.1 から初めて使われている)に切り替えることにした。

 MT3 からは全面的に改定されているので、新しい構成や言葉になれるのが大変である。
 「Movable Type 4.1 テンプレートセット(スタイル対応版)」の設定方法に従ってインストールしたが、多くの問題に遭遇した。(している。)

 忘れないうちに(もう忘れていることもあるが)、遭遇した問題と対処したことがらを備忘録として思いつくまま記録しておきたい。

 
  •   問題:MT3.35 では、ファイルを php としてきたが、MT4 での設定がよく分からない。
    対処:我楽さんの「Movable Type 4.0 新規インスコ覚書」を参考にというかそのまま利用させてもらって、ファイル名を書き換えた。
  •   問題:メインページから、(例えば最近のエントリーのリストから)アーカイブページが開かない。また、MT4 から MT3 では Plugin で対処していた Preview 画面がディフォールトで編集画面の「確認」ボタンで用意されているが、 Preview 画面が表示されない。
    対処:「ブログの設定」→「公開」→「公開に関するオプション」の公開方法で「アーカイブのみダイナミックで構築する」を選択する。
    原因推定:MT3 のときから、php化をしていたからと思われる。なお、このことによって、ファイルの再構築が劇的に速くなった。
  •   問題:FFFTP で確認しても投稿したファイル名が見えない。
    対処:「ダイナミックパブリッシング」の理解が十分でなかった。「小粋空間」さんの「Movable Type の再構築を不要にする「ダイナミック・パブリッシング」(その1:概要)」を読んで納得。
    注意点:リンクするページのURL特定は、「ブログ記事あるいウェブページの編集」での公開にある出力ファイル名でする。
  •   問題:右サイドメニューのカテゴリの中身が空白となる。
    対処:HTML 記述部分に、<MTTopLevelCategories > テンプレートタグを挿入。詳細は、「小粋空間」のエントリー「カテゴリーアーカイブで全サブカテゴリーリストを表示」を参照。
  •   問題:「小粋空間」さんのテンプレート・セットでは、「Category」「Recent Entries」 などは折りたたみやツリー表示になっていない。
    対処:「小粋空間」さんのプラグイン:サイドメニューの折りたたみ (V4.0) を導入。基本的には、MT3.35 のコードを利用して、テンプレートモジュールの「サイドバー2」 の既存のコードと置き換える。
    注意点:スタイルシートへの追加項目が忘れがちである。
  •   問題:MT3.35 では、[Kinarie&May]さんのフラッシュカレンダーを愛用してきたが、アーカイブテンプレートに設置するXML ファイルの設置方法がよく分からないので、「小粋空間」さんのテンプレート・セットのカレンダーを使うことにしたが、月送りできず十分ではない。
    対処:プラグイン:「Ajax 月送りカレンダー(MT4版)」を導入。
    注意点:「デザイン」→「テンプレート」→「アーカイブテンプレート」→「ブログ記事リスト」を選択し、アーカイブマッピングの「新しいアーカイブマッピングを作成」をクリックして、「日別」を選択して「追加」をクリックしておかねばならない。
  •   問題:私は、スタイルとして two-column-liquid-right を使っているが、画面の解像度を 1024x768 にしていても機種によっては、右サイドメニューと本文部分のカラムが重なるようである。
    対処:「小粋空間」さんのテンプレート説明エントリーの下の方にある FAQ を参考に、スタイルシートをいじって修正した。
    注意点:友達などのPC でうまくいっているか確認してもらう必要がある。
  •   問題:MT3.35 ではCategory 表示順を「藤本壱」さんの cutfirstchar のプラグインを利用して、カテゴリー名の頭に3桁数字をつけて表示順を決めてきたが、MT4 では上手くいかない部分がある。
    対処:カテゴリー名の頭3桁の数字を外した。表示順は、数字→英語→ひらがな→カタカナ→漢字の順となるが、あまり違和感もないので当分この表示でいくことにした。
    展開:「藤本壱」さんが、「カテゴリーとフォルダを並べ替えるプラグイン(MT4以降用)」のカスタマイズを発表されているので、これを導入するつもりである。
  • 問題:MT3.35 ではインデックス・テンプレートとしてホームページの変更履歴を整理していたが、MT4 ではそのようなテンプレートは作成できないようである。
    対処:MT4 ではウェブページのテンプレートが用意されており、これを利用してページの変更履歴を記録していくことにした。
  •   問題:MT3.35 で表示していた「パンくずリスト」のMT4 では上手く動かないようにみえる。
    対処:MT4 のものをサーチしてインストールしたが、サブカテゴリーが表示されないのはMT3.35 と同様なので、古いコードをブログ記事(旧エントリーアーカイブ)とブログ記事リスト(旧カテゴリーアーカイブ)にインストールして使用した。
  •   問題:list-style-type が、circle 表示となり変えられない。
    対処:style-cite.css の ul 定義している部分をコメント・アウトし、ブログ記事編集画面で直接 <ul type="square">というように指定した。ブログ記事の編集画面は、フォーマット 「なし」を選択し、HTML タグを使っている。
    発展:list mark をリスト画像にできる id属性をCSS に設定した。画像は「シェルの素材工場」からいただいた。 ここで使っているように画像を自分で作ってみた。
  •   問題:ブログ記事を書く編集画面が小さい。
    対処:気がつかなかったが、記事を書く枠下のラインをドラッグすることによって、広げたり小さくしたりできる。


 MT4.1 での「小粋空間」さんのテンプレート・セット導入はまだまだ苦戦しているが、なんとか形となった。悪戦苦闘のサイド・プロダクトとして、Version4の理解も少し進んだ。今後は、MT4.1 の進化しているところを取りいれて充実していきたいと思っている。