なにかスパム対策を施してみることに。
※一週間ほど様子をみましたが、下記の方法では現在来ている
スパムコメントを防げないようでした。
そのため新しい対策を こちら で取っています。
どうやらスパマーはコメントフォームのHTMLに書かれている
コメントCGIのパスを参照してくるそうで、
そのパスを実体参照にすればほとんどのスパムコメントを防げるとか。
合わせて、コメントCGIのファイル名も変更すると効果UPだそうです。
(デフォルトではmt-comments.cgi)
■手順
1. MTフォルダにある「mt-comments.cgi」を適当な名前にリネーム
2. 1で新たにつけたファイル名を、こちらのサイト等で変換
3. 同階層にある「mt-config.cgi」を開き、一番下に下記を追記
--------------------
CommentScript ○○○○(2で変換した文字列)
--------------------
4. 再構築
これで完了です。
ブログのテンプレートで<$mt:CommentScript$>タグを使って
コメントCGIを参照しているブログならこれだけでOKですし、
新しくブログを作ったときも反映されるのでお手軽です。
何度やってもエラーが解消されず、よくよく調べたら下記のようなことが起こっていました。
Firefox16でMovable Typeのカテゴリ・フォルダ選択ができない不具合について
Firefox 16 でカテゴリおよびフォルダの選択が保存できない。
自分はFirefoxのブラウザをメインで使用しているのですが、
どうやら新しいバージョンのFirefox16では、MovableTypeののカテゴリを選択できない。
という謎のバグが発生していた為でした。
解消するためのバッチが配布されているようですが、
もうChromeメインに乗り換えようかな・・・
MovableTypeにて、entrytitleやentrybody内の文字列にダブルクオテーション「"」を使うと、javascriptを使用した際にエラーになってしまいます。
以前、この問題で悩んだ際に解決方法を教えてもらったような、検索したような気がしますが、急に対応が必要でなかったこともあり放っておいてしまいました。今、対応が必要となり探ります。
MT タグとあわせて利用する「グローバル・モディファイア」というものがあるようです。アトリビュートですね。
まずは、replaceというものがあるようです。
たとえば、「&」を「&」に置き換えるには
<$mt:entrytitle replace="&","&"$>
となります。
便利そうですが、今回の「"」の置き換えは、これで解決できそうにありません。
ここで、違うグローバルモディファイアを発見しました。
Movable Typeの『グローバル・モディファイアリファレンス』(encode_htmlとかencode_js)
-----
●encode_js
javascriptで「"」を入れるとエラーになるので変換してくれます。
「"」を「¥"」という形に変換してくれます。
『<$mt:EntryTitle encode_js="1" $>』
こんな感じで使用します。
-----
1 に設定すると、MT タグの値が javascript の文字列の値として使えるようにエンコードするようです。解決方法はまさにこれです。
この他にも
●encode_html
1 に設定すると、MT タグの値が 「<」を「<」、「&」を「 」などの形にHTMLエンコード
↓
『<$mt:EntryTitle encode_html="1" $>』
こんなのが、かなり使えそう。助かりました。
『TOPページ内のある箇所のテキスト更新に関しては
自社スタッフで出来るようにしたい、何か良いシステムは無いか?』
という要望をクライアント様より頂く場合があります。
こういったタイプの案件の場合、
トップページのみ公開されればいいので、
ブログ記事単体ページは公開しません。
ですので、インデックステンプレートとして
【インデックステンプレート:メインページ】だけを
カスタマイズすればいいと思われがちですが、
公開しない【アーカイブテンプレート:ブログ記事】の
カスタマイズも必要になります。
すでに多くの方々がまとめていますが、cronの設定が必要です。
基本的には、
・MTディレクトリ/tools/ にある「run-periodic-tasks」のパーミッションを「755」などの実行可能なものにする
・「run-periodic-tasks」を定期実行させるようcronに設定
これで指定日公開が可能になります。
弊社環境(CPIサーバー)の場合、これに加えて、
・「run-periodic-tasks」内の一部を修正する
という作業が必要でした。
修正内容は以下↓
----------------------------------------------------------
use lib 'lib', '../lib', 'extlib', '../extlib';
----------------------------------------------------------
という部分を探し、
サーバー内の絶対パスに修正します。
(修正後)
----------------------------------------------------------
use lib 'lib', '/usr/home/ユーザーID/html/mtディレクトリ/lib', 'extlib', '/usr/home/ユーザーID/html/mtディレクトリ/extlib';
----------------------------------------------------------
この状態でアップしなおせば完了です。




