Archive for 7月, 2009

このページの目次

MTの投稿を通知するメール

金曜日, 7月 3rd, 2009

こんにちは、なかわけです。

今日はMTの通知メールの話。

仕事中にふと、頼まれ語とされたことです。記事を投稿したときにメールを送信する、、、あれ?それ以前からなかったですか?その機能。

管理ページ入ってもない・・・。調べる・・・。

あった。MT4.2から搭載された「アドレス帳」を使うようです。ちなみにデフォルトではアドレス帳の機能がoffになっています。そりゃ気付かないわ。こんなのできたんですね、知らなかったです。

簡単に説明すると、mt-config.cgiに以下の1行を追加するだけです。

EnableAddressBook 1

この設定るすると、アドレス帳が使えるようになります。
アドレス帳を有効にしておいて、通知したい記事の編集ページにいって、右側の「共有」をクリック。
アドレス帳のすべての連絡先にチェックを入れて、送信ボタンをクリック。
そうすれば、アドレス帳に登録されているメールアドレスに更新のお知らせが届きます。

以下、参考にしたページです。というかsixapartのページです。
http://www.movabletype.jp/documentation/notification.html

http://www.movabletype.jp/documentation/send_a_notification.html

PHPでPOSTしつつページを移動する

木曜日, 7月 2nd, 2009

こんにちは、なかわけです。

今日はPHPの話。また仕事中にした作業のメモです。

AページからBページ(別サイト)にPOSTしたいのだけど、

  1. Aページの文字コードはUTF-8で、BページにはShift-JISでPOSTしなければいけない。
  2. またAページの文字コードをUTF-8からShift-JISに変更することができない。
  3. さらにBページのウィンドウをJavascriptで開かないといけないという環境でした。

エンジニアに相談したらcURLを使ったら?とアドバイスをもらったんだけど、cURLはPOST先のhtmlを取得することはできるんだけど、ページ自体を遷移(移動)することができなかったので、ボツでした。

考えた挙句、1ページはさんでそのページではJavascriptで自動的にFormをBページへPOSTするようにしました。つまり、

Aページ → A’ページ →Bページ

という流れです。A’ページの文字コードはShift-JISです。

具体的にはこんな感じでした。本当はもっと複雑な処理してますが、わかりやすく簡単にまとめます。

Aページ(UTF-8)

<form action="A'ページ" method="post" target="aDashPage">
    <input type="input" name="chocolate" value="ビターが好き" />
    <input type="submit" value="A'ページへ" onclick="window.open('', 'aDashPage')" />
</form>

送信ボタンのJavascriptではウィンドウ名を「aDashPage」とurlを指定しないで空白のページを開きます。そして、そのウィンドウに対してFormをPOSTするようにします。

A’ページ(Shift-JIS)

<script type="text/javascript">
    window.onload = function(){
        document.postForm.submit();
    }
</script>

<form action="Bページ" method="POST" name="postForm">
    <input type="hidden" name="chocolate" value="<?=mb_convert_encoding($_POST&#91;'chocolate'&#93;, 'SJIS', 'UTF-8')?>" />
</form>

A’ページではメンドクサイですけど、もう一度フォームを作っていますが、type=”hidden”にして表示しないようにしています。また、window.onloadでページの読み込みが完了したらFormをPOSTするようになっていますので、環境によりますが1秒くらいでBページに自動POSTされBページが表示されます。

PHPの言語仕様としてPOSTしてリダイレクトすることはできないようですね。なんかいろいろ問題あるみたい。調べてた記事がどこいったかわからなくなっちゃった・・・。

ソースコードは見れるけどページが表示されないIE

水曜日, 7月 1st, 2009

こんにちは、なかわけです。

今日は、うっかりわりと有名なトラップに引っかかってしまいました。
IEでソースコードは見られるけどページが真っ白で表示されない状態。

そもそもなんでこのトラップにハマったかというと、取引先からいただいたhtmlファイルで<head>タグ周りを自分で確認しなかったからです。

原因はcharsetより先に<title>タグが来てしまったこと。つまり、こうなっていたわけですね。

<head>
<title>このページは入力ページだよ</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS” >
・・・
</head>

charsetより先に日本語が来てしまうと、IEがページの文字コードをShift-jisをご認識してしまうということらしい。

しかし、ちょっと待った!!そもそもこのページはShift-jisで作っていたはず。なのになぜ見れない。
いろいろ調べていた結果、タイトル内の「入力」という文字を削除すると、表示されるようになりました。
「入力」がダメ文字かなと思って調べてみたけどそういうことでもなかったです。
よくわからないです、この挙動。

この件に関してあんまり詳しく調べても時間の無駄(!?)なので、とりあえず正しく動くように書きなおして終了することにしました。

<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS” >
<title>このページは入力ページだよ</title>
・・・
</head>

あ~あ、引っかかっちゃったな~。
以下、参考になる記事です。
http://www.trick7.com/blog/2008/08/06-154000.php

EC-CUBEの商品登録にHTMLタグを使用するときの注意

水曜日, 7月 1st, 2009

こんにちは、なかわけです。

またEC-CUBEの話です。またメモです。

EC-CUBEの商品登録時に詳細などのコメント内にhtmlタグが使用できますが、注意があります。普通にhtmlを書くと、
(さらに…)

jQueryの.children()と書き方

水曜日, 7月 1st, 2009

こんにちは、なかわけです。

仕事中にjQueryの書き方がわからなくて後輩に聞いてみた。すぐ返答が来た。

$('ul').each(function(){
    $(this)
        .children('li:odd')
        .addClass('colored');
});

.children()に引数を渡して要素を指定できたんですね。知らなかった。

あと、$(this)のあとにチェーンする場合は、メソッドごとに改行した方が処理が早いんだって。
納得いかない。なんで?