追記(extend)の別表示。

文章は出来るだけ、見える部分で完結させたい、という意図があって、 今ままで、『追記(extend)』は使ってこなかった。 読み手を気遣っているとはいえ、巷に溢れる、 (続きはこちら)というリンクが、非常にださく感じていたのも理由の1つ。 折り畳み式にすればスマートだが、JavaScriptを使わざるを得ない。 ところが、[Lyric]として文章をアップしたときの、思い入れの書き方が難しい。 今までは、改めて別文章として書いていたけど、 出来ればきちんと関係性を保ったままで、書きたい。 コメントを利用して書いてみたけど、なんか違う。 仕方がないので、追記、を利用することにする。 しかし、追記が歌詞に混じって表示されたり、 続きリンクが貼られたりというのは避けたい。 となると後はもう、別窓しかないわけで。 別窓用のテンプレートを書いても良かったが (柔軟性という点ではそっちの方がずっと優れている…後日そうするかも) とりあえずは、ということで、表示用のプログラムを書き、 それへデータを渡して開く、と言うことにする。 この際重要なことは…追記部分だけ、データから切り離して書き出しておく、ということだ。 それで使い回しがきくようになる。 具体的には、適当なテンプレートを作成し、中身に、

とだけ記述する。 そしてそれをアーカイブの設定で個別に関連づける。 と、そういう形で、追記を表示させることに成功した。 しかしまぁなんて言うか…本当に、blogっぽくないな、このサイトは(笑)

続きを読む

スパムコメント対策(1)

先日言ったとおり、スパムコメントに対する対策を施しました。 コメントをくれる人は、一文字以上のひらがなを入れてください。 でないと、エラーになりますんで。 『スパム』について説明しておくと。 語彙の正確な意味はともかく、実際の使われ方としては、 商業的な宣伝の手段として、無作為に情報を送りつける、という様をさして『スパム』と呼びます。 有名なのが、『スパムメール』。 『君んとこのサイトのアクセス数をアップしてあげるよ』 なんていう英語のメールがよく来ますが、余計なお世話だっつーの。 最近では、スパムコメントに加えて、スパムトラックバックなんてのもあるらしいです。 で。 スパムコメントの発信者のほとんどは海外…というわけで、英語での書き込みになりますな。 そこに着目した対策がAkihiさんの一連の対策、 『半角英数のみのコメントを弾く』 →『全角句読点の入っていないコメントを弾く』 なんですが、最近は漢字を含めたスパムもあるそうで。 最新バージョンは、 『ひらがなの入っていないコメントを弾く』 ということになっとります。 具体的な改造点は、対スパマーを考慮してここには記せませんが、 該当サイトをリンクしておきますので、お悩みの方いたら直接Akihiさんのところでどうぞ。 きままにポロポロ: コメントスパム ひらがな対策

続きを読む

スパムコメント対策始めます。

サイトをblogベースに変更してから2ヶ月経ってないんですけど。 おおっと、スパムコメントが…。 サイト性質上、コメントを書き込む人もあんまりいないんで 目立つんだよね…(苦笑) 今すぐに膨大になる…という感じではないけど、 対策を始めるんなら早い方がよいだろう、ということで、 記憶を辿っていくつか対策をピックアップしてみた。 まずは…これ。 BLOG質問箱: スパムコメント対策

最近、海外からのスパムコメントの投稿がひどいため、 スパムコメント対策機能を「BLOG質問箱」のみに付けてみました。 質問箱を利用される皆様にはお手数ですが、 コメント投稿時に当サイトの名前を入力してください。
つまり、コメント投稿フォームをデフォルトから変更することで、ロボットによる作業を阻止し、 加えて日本語で説明文を書くことで、日本人以外による手動も阻止する、と。 地味だけど効きそう。 基本的にスパムなんて、上手く行かなきゃ他へ行くものなので。 もう一つはこれ。 きままにポロポロ: 続々コメントスパム
「オール英語(半角文字のみの文字列)で記入された場合のみ強制終了する」 という、ブロガーにあるまじき(?)奥の手の方法なのでした(^^;;;
なるほどねー理にかなってますな。 でも何となく自分で『good!!』とか書き込もうとして自爆しそうな気もするけど(苦笑) akihiさん(きままにポロポロの人ね)は、これ以外にもいろんなアイディアを試してらっしゃるようで。 というのも、最近は日本語スパムもある、とか。おいおい。 とりあえずこの辺を参考にして、何らかの対策をとってみようかなぁ…と。 スパムがひどくなってから対策しないと、効果がわかんないけどね。 『こういう対策しました!』 とか書いちゃうと、実際スパマーにばらしてるも同然なので、こっそり対策します。 まぁ、上手く行くようで在れば、トラックバックはさせてもらいたいんだけど、 うーん、微妙だなぁ…迷惑掛けちゃいそうだし。 まぁ、とりあえず試行錯誤を。

続きを読む

<p>自動挿入の仕様を変更

個人的な好みの問題ではあるが、 <p>という段落タグがあまり好きではない。 というのも、このタグを入れると、自動的に前後に空白行を入れてしまうので、 デザイン面で苦労することが多いからだ。 MTの場合、改行が2つ以上続くと、そこで一段落と判断し、 段落毎に<p>?</p>に収めようとする。 確かに、『論理的』には正しいことなのだけど、 <strong>なんて使うことはほとんどないように、 基本的にはデザイン性と利便性とで選べるようにすべきかと。 というわけで、この仕様を変更する。 変更するファイルは、/lib/MT/ にある、Util.pm。 このファイルは、MTで使うユーティリティーが詰まったモジュールだが、 その中の、html_text_transformというサブルーチン(246行目/v3.01)が、 この仕様を制御しているので、とりあえずその中の、

$p = “<p>$p</p>”;
行をコメントアウトする。
# $p = “<p>$p</p>”;
しかし、これだけでは実は問題が生じる。 というのも、『前述の改行2つで?』というチェック部分で、空白行を削除してしまうので、 各段落がくっついて表示されてしまう。 しょうがないので、各段落の最後に空白行を再び追加する。 ルーチンの最後で、段落毎に分割したデータを、再び1つにまとめているので、 その際に、各段落毎に空白行を入れるようにすればよい。
join “\n\n”, @paras;  ↓ join “<br />\n<br />\n”, @paras;
というわけで、最低限の変更による変更後。
sub html_text_transform {   my $str = shift;   $str ||= ”;   my @paras = split /\r?\n\r?\n/, $str;   for my $p (@paras) {     if ($p !~ m@^</?(?:h1|h2|h3|h4|h5|h6|table|ol|dl |ul|menu|dir|p|pre|center|form|fieldset|blockquote|address|div|hr)@) {       $p =~ s!\r?\n!<br />\n!g; #    $p = “<p>$p</p>”;     }   }   join “<br />\n<br />\n”, @paras; }

続きを読む

index.rdfを表示する

MovableTypeは自動的にRDFファイルを書き出してくれる。 本来なら、そのリンクをクリックすればそのファイルを読むことが出来るのだけど、 サーバによってはダウンロードになってしまう。 ダウンロードして、テキストエディタで開けばいいけど… 突然ダウンロードされるファイルなんか保存したくない。 特にロリポップのサーバは全てダウンロードになってしまうので、 何とかしなくちゃならない…解決策は。 こうなる原因が、サーバ設定でMimeTypeがきちんと設定されていないためなので、 .htaccessファイルで補ってやる必要がある。 (.htaccessに関しては、『ミケネコの htaccess リファレンス』を参照のこと。) このサイトの場合、.htaccess の適当な行に、

AddType “application/xml; charset=EUC-JP” rdf
という行を記述し、ドメイン直下に置き、rdfファイルを定義してやっている。 こうすることで、ブラウザはきちんと認識できるようになるのだけど… キャッシュの関係なのか、反映されるまでに暫く掛かり、 僕の場合、翌日になってようやく、反映された。気長に待てってことか。 にしても、いろんなプラグインが使えて、スクリプトも最新、 いろいろとサービス充実のロリポだけど変なとこ間抜けだよな… サーバ全部の設定ファイル変えるのは確かに面倒だろうけど。

続きを読む

COMMENT の自動承認

どうやら、携帯から書き込まれたコメントは、 こちらが承認するまでWEBに反映されないようだ。 これはこれでスパム対策などになってはいるのだけど、 いちいち承認しないといけないのは面倒。 コメントしてくれる方も、『アレ?』って感じだろうし。 mt4iの設定のどこかをいじればOKなんだろう… と思って見てみたけど、わからなかった。 んじゃblogの設定か?と思い色々やってみたが不明。 うーん…情報求ム。 ※追記 探してたら結局、MT4iの拡張バージョンを開発してらっしゃる、 Tonkeyさんのところに解決法がありました。 Tonkey Magic: MT4i+MT3.0環境でのコメント承認について

MT3.0の場合、MT4i経由でコメントはできるようですが、未承認状態になってしまうらしいですね。これに関しては、以下のコードで対応できると思われます。
おお、できた。素晴らしい。 長らくご迷惑おかけしておりました。 今後ともひとつよろしく(?)

続きを読む

DIARYの修正点

DIARYのページは、カレンダーはカレンダーで独自に切り出しているのだけど、 これを作成した当時から問題点に思っていることがある。 というのは、月が変わったときに、カレンダー部分が切り替わらず、 常に最新のカレンダーを表示してしまう…という点。 カレンダーに月の名前を付けて保存(calendar200408.phpとか)し、 それをアーカイブ毎に呼び出せば良いんだろうけど…それがなかなか。 今は、INDEXテンプレートにカレンダーを入れてるけど、 これを月毎アーカイブに変更したらいけるかな…? それともそのままでも書き出しファイル名に日付を指定できるんだろうか? やってみないと分からないので、結果はまた後ほど、追記にて。 追記。 結論から言うと、出来ました。方法も、上記の通り。 記述上の工夫といえば、に、month=”this”という記述をしてやらないと、 現在時刻のカレンダーが書き出されてしまう点…くらいかなぁ。 後は他のテンプレートの呼び出し箇所も忘れずに変更。それだけでした。

続きを読む

携帯対応

旅行の予定に合わせて、急遽携帯用INDEXを作成。 利用したCGIは太鉄さん(->talk to oneself 2)が開発し、 Tonkeyさん(->Tonkey Magic)が機能強化を行っている、MT4i。 デザイン面の変更が大変なのと(もしいじっても、バージョンアップのたびに変えなきゃならない)、 開発が二手に分かれてるのとで、少々混乱もあるが… しかし、細かい部分まで携帯に対応できるように作られているので、 コレを使わない手はないかな、と。 MTって基本的にJavaScript/Cookieの巣になってるし、 携帯向けじゃないからねぇ… その回避を自分でやろうと思ったら死ぬほど大変。感謝であります。 まぁ、そのリンクだけじゃあまりに間抜けなので、 一応RSSをPHPで取得して最終更新時間を表示できるように設計。 掲示板はまだ対応してないけど。 掲示板のRSS書き出しプログラムも作成中。 …でもコレやったら、ますますapeboard+じゃなくなるなぁ… 改造は自由だが再配布は要相談、 では改造したプログラムの再配布は…? 開発止まってるだけになぁ…ちょっと手を入れたい気もありつつ。 なんにせよ、携帯対応です。

続きを読む

エントリー投稿画面のカスタマイズ

右上のボタンが使い始めると結構便利なのだけど、いかんせん 4つでは…と言うわけでカスタマイズ。 カスタマイズする場所は、MTの入っているディレクトリから /tmpl/cms/edit_entry.tmpl これをダウンロードして編集。 WEBで検索してみると、『384行目と385行目の間に』という記述がよく見られるけど、 (参考:->デポログ / DEPOLOG : blockquoteを簡単に) MT3.0 では場所が多少変わっており、それでは出来ない。ではどうするか? 正解は同じファイルの167-181行目に。 ここに任意の処理を入れればOK。 たとえば、blockquoteで囲みたいときには、174-175行目に

write(‘<a title=”<MT_TRANS phrase=”Blockquote”>” href=”#” onclick=”return formatStr(document.entry_form.text, \’blockquote\’)”><img src=”<TMPL_VAR NAME=STATIC_URI>images/blockquote-button.gif” alt=”<MT_TRANS phrase=”Blockquote”>” width=”24″ height=”18″ border=”0″ /></a>’);
というプログラムを入れればよい。 (ただし、表示用に使う画像は各自準備してください) このプログラムを眺めてもらえば気づくと思うが、途中にある、 formatStrという関数が、選択した文字の前後にタグを挿入する関数、 insertLinkと言う関数が、選択した文字にリンクを設定する関数になっている。 これはどこにあるかというと…MTのあるディレクトリの、mt.jsというファイルがそれ。 そこをいじれば、もしくは新しく関数をそこに設定すれば、 他の処理を行わせることも出来る…のだけど、それについてはまた別稿にて。

続きを読む

スタイルシートの更新を簡単に

MovableTypeでは、スタイルシートもテンプレートとして保存されていて、 それを変更するためには、 スタイルシートの書き換え>再構築 という手順が必要なのだけど、 普段サイトを作り慣れてる身にとっては、その手順が面倒この上ない。 再構築は時間も負荷もかかる。 いつも通り、アップロードするだけで反映したい。 テンプレートをよく見ると、<head>の中に

<link rel=”stylesheet” href=”<$MTBlogURL$>styles-site.css” type=”text/css” />
という記述がある。これはつまり、このスタイルシートを参照しますよ、ということなのだが、 たとえばこれを、
<link rel=”stylesheet” href=”http://www.nobodyplace.com/styles-site.css” type=”text/css” />
に書き換えてやると、それはそのまま、そのスタイルシートを読むことになる。 再構築が必要なのは、あくまでそのblogのディレクトリにある、”styles-site.css”だけなので、新たに、
<link rel=”stylesheet” href=”http://www.nobodyplace.com/styles-site.css” type=”text/css” />
という行を付け加えて、そのファイルを変更すれば、 再構築の必要なく、スタイルシートを適応できる。 結局、普段サイトを作るときと同じ事を記述してるに過ぎないのだけど、 テンプレートを作る、ということでつい頭が固くなって忘れがちなので、 一応、Tipsということで。

続きを読む