2011-04-0418:37
MODX用メールフォームスニペット
cfFormMailer の最新版 v1.2を公開します。
今回は cfFormMailer だけでなく、これを連携してフォーム送信内容をデータベースに保存する
cfFormDB も同時に公開です。
(相変わらずネーミングはアレですけど、、、)
【ダウンロード】
なお、cfFormMailer の動作にはcfFormDBは必須ではありません。
必要な方のみ、ダウンロードしてご利用ください。
» 続きを読む "cfFormMailer1.2 & cfFormDB1.0公開"
2011-03-1011:34
このブログ以上に放置状態だった cfFormMailerデモサイトですが、
MODXもcfFormMailerも、両方最新のものに更新しました。(3月10日現在)
http://modx.clefarray-web.net/
» 続きを読む "cfFormMailerデモサイトが新しくなりました"
2011-01-2709:49
MODx Evolution のv1.0.4以下に対して、SQLインジェクションの脆弱性があることが発表されています。
詳細は↓こちら
JVN#54092716
MODx Evolution における SQL インジェクションの脆弱性最新版のv1.0.5では修正されているので、
早急にバージョンアップが必要ですね。
2010-11-1213:01
ただいま、cfFormMailerと連携するちょっとしたモジュールを作成中なのですが、
それの制作の際に必要となった変数を、今後のために備忘録としてメモっておきます。
$contentモジュールの情報が格納されている連想配列です。参照時にはglobal $content;としてグローバル宣言しておきます。
- id: モジュールID
- name: モジュール名
- description: モジュールの説明
- editor_type: 未使用?
- disabled: モジュールを停止(1・・・停止)
- category: カテゴリ
- wrap: 行の折り返し
- locked: Administrator(ロールID1)のみ編集可能
- icon: アイコンファイルパス
- enable_resource: 外部ファイルを有効に(未使用?)
- resource_file: 未使用?
- createdon: 作成日時(UNIXタイム)
- editedon: 更新日時(UNIXタイム)
- guid: Globally Unique ID
- enable_sharedparams: 共有パラメータを使用
- properties: モジュール設定
- modulecode: モジュールコード
なお、"enable_resource"はモジュール管理画面のHTMLソースではCSSにより非表示となっています。
$modx->event->params「モジュール設定」の情報が展開された連想配列です。
じつは設定情報はモジュールが実行される前にexract()関数により変数として展開されており、
モジュールコードからは、そのまま変数として使えますが、
モジュール本体を外部ファイルにしている場合などは、いちいち変数を引き継ぐのが面倒なので(笑)
この変数を参照するようにしています。
$_style管理画面テーマで使用しているアイコンなどのファイルパス、またはコードが格納されている連想配列です。
こちらも参照の際はグローバル宣言が必要です。
全部は多いのでよく使う(と思う)ものだけ抜粋します。
この変数が定義されているのは/manager/media/style/テーマ名/style.php なので、他の値はこのファイルを参照してください。
- icons_save: 保存やOKなど (※MODxCarbonテーマでは、save以外にaddやedit_documentでも同一です。)
- icons_refresh: 再読込アイコン
- icons_cancel: キャンセルアイコン
- icons_delete: 削除アイコン
- icons_close: 閉じるアイコン (※MODxCarbonテーマではcancelと同一です)
- icons_working: 注意アイコン
- icons_preview_resource: 表示アイコン
- ajax_loader: ローディングアイコン
2010-11-1017:56
MODx公式サイトのフォーラム(→
記事)で寄せられた情報を元に検証したところ、
どうやら送信者名が長い場合に、rnといった文字が挿入されてしまうことが判明しました。
新しいバージョンの開発も進んでいますが、取り急ぎこの不具合への対処に加え、
「
[バグ]cfFormMailerでファイルアップロードができない場合の対処」への対策も加えたものを
v1.1r2(リリース2)として公開しようと思います。
v1.1からの変更点は以下のとおりです。
------------------------------------------------------------
[FIX] メール送信者名やメール件名が長い場合に不要な文字が挿入されてしまう不具合に対処
(ただしWindows版PHPからmail関数でメール送信する設定の場合は正常動作しない可能性があります。)
[FIX] ユーザーからのファイルアップロードの際、サーバー環境によって保存がうまくいかない場合に対処 (環境設定 upload_tmp_path 追加)
------------------------------------------------------------
【ダウンロード:
cfFormMailer v1.1r2】
機能追加などは行っていませんので(若干ソースの編集はありますが。。。)、
上記不具合が起こっていない場合は、バージョンアップする必要はありません。
なお、Windows版PHPを使用しており、mail関数でメール送信する設定になっている場合は
正常に動作しない場合があります。
(少なくとも、私のローカル環境ではmail関数でエラーが発生し、対処方法が分かりません。。。)
対処方法がわかり次第対応しますが、Windows環境では不具合がおこる可能性をご承知おきください。
2010-11-0919:26
Twitter界隈で話題になっていましたが、どうやら
Yahoo! JAPANでもInternet Explorer 6(IE6)のサポートを縮小するみたいですね。
IE6でYahoo!JAPANトップページにアクセスすると、
お客様のブラウザはInternet Explorer6です。
12月中旬より、Yahoo! JAPANトップページが正しく動作しなくなる場合がございます。
と表示されます。

Googleに続き、利用者の多いサイトでこのように対応してくれることで、
IE6利用者の減少につながってくれれば、大変助かりますね。
2010-11-0410:38
現在公開されている
MODx Evolution 1.0.4Jで、以下の状況で使用する場合に不具合があることが確認されています。
対象はcfFormMailerすべてのバージョンです。
【環境】
- MODx 1.0.4J-r2からr4を使用している
- フレンドリーURLをOFFにしている
- トップページ以外にcfFormMailerを設置している
- <form>の送信先(action属性)を[~[*id*]~]にしている(※同梱しているサンプルチャンクではこのようになっています。)
【症状】
確認画面に遷移しない
【原因】
[~[*id*]~]が正常に展開されないため
本件は、yama氏とのTwitterでのやりとりで原因および対策が判明していますので、
次回のリビジョン(r5)で修正されるそうです。
おそらくフレンドリーURLを使用する場合が多く(※根拠なし・・・。)、本件に該当する方は少ないと思いますので、
MODxコアの修正が必要ということもあり、ここでは対処法は記しません。
上記環境でcfFormMailerをご利用の方は、次回のリビジョンをお待ちください。
現バージョンでどうしても使用するという場合は、入力画面チャンクformタグのaction属性 [~[*id*]~] を index.php?id=○ (※○はcfFormMailerを設置しているページID)に書き換えてください。
2010-10-2520:33
Clefarray Factoryのツイッターアカウントを作りました。
webに関するネタに反応したり、このブログやサイトの更新情報をつぶやく予定です。

2010-10-2518:23
MODx公式フォーラムにて「
cfFormMailerの確認画面へ進めません」という投稿がありましたので、調べてみたところ、
サンプルとして同梱している入力画面チャンク、および環境設定チャンクをそのままの設定で使用した場合に
メールアドレスの検証がうまく行われず、必ず検証エラーとなってしまうことを確認しました。
これは、環境設定の「自動返信メールの宛先として使用するフィールド名」が
email であるのに対し、
入力画面サンプル(form.html)のメールアドレスフィールド名が
email1 であるため、
「自動返信メールフラグ」が 1 の場合に行う自動返信先メールアドレスのチェックに必ず引っかかってしまうことが原因です。
サンプルをそのまま使用する場合は、以下のいずれかの方法で設定値を変更してからご利用ください。
A.入力画面の属性値を変える
入力画面チャンクのメールアドレス入力のためのinputタグのname属性を、 email に変更します。
<input name="email" size="30" id="f_email" type="text" />
B.環境設定値を変える
環境設定チャンクの「自動返信メールの宛先として使用するフィールド名」をemail1に変更します。
reply_to = email1
2010-05-2416:00
cfFormMailer v1.0以上でユーザーからのファイルアップロード機能を利用する際、
サーバー環境に依っては
SAFE MODE Restriction in effect というメッセージを含んだエラーが発生する場合があります。
これはPHPの
セーフモードが有効であることにより、ある特定のフォルダに対し"アップロードされたファイルを新しいファイル名で保存し直す処理"が拒否されてしまうことが原因です。
この症状が発生してしまう方は、お手数ですが以下の対応を応急処置として行うことで回避できますのでお試し下さい。
なお、この問題については今後のバージョンアップで対応する予定です。
1. サーバーの assets/snippets/cfFormMailer/ フォルダ内に
tmp というフォルダを作成し、その他のユーザーが書き込みできるパーミッション(707など)にしてください。
2. assets/snippets/cfFormMailer/class.cfFormMailer.inc.php を書き換えます。
class.cfFormMailer.inc.php 161行目(※v1.1の場合)
【書き換え前のコード】
$new_filepath = dirname($_FILES[$field]['tmp_name']) . DIRECTORY_SEPARATOR . urlencode($_FILES[$field]['name']);
↓
【書き換え後のコード】
$new_filepath = $this->modx->config['base_path'] . "assets/snippets/cfFormMailer/tmp/" . urlencode($_FILES[$field]['name']);
3. 書き換えたファイルをアップロードし、サーバー上にあるファイルと差し替えます。