dainiti Reply #1, 3 years, 3 months ago
eForm のイベントを使った使用例が見当たらないため備忘録としてここに保存しておきたいと思います。
イベント呼出用関数をスニペット名 [b]eFormEvent として保存した場合の内容例[/b]
コード中に、<?php ~ ?> を含むと全角文字がデコードされてしまうためここでは割愛しています。
(3)と(4)の呼び出される順番が逆だったので入れ替えました。 2009/02/23
[[eFormEvent]] ← eForm の呼び出し前にユーザ定義関数のスニペット名を指定する [!eForm? &formid=`ContactForm` &subject=`[+subject+]` &to=`[(emailsender)]` &ccsender=`1` &tpl=`ContactForm` &report=`ContactFormReport` &invalidClass=`invalidValue` &requiredClass=`requiredValue` &cssStyle=`ContactStyles` &gotoid=`46` &eFormOnBeforeFormMerge=`onBeforeFormMerge` &eFormOnBeforeFormParse=`onBeforeFormParse` &eFormOnBeforeMailSent=`onBeforeMailSent` &eFormOnMailSent=`onMailSent` &eFormOnValidate=`onValidate` !]
イベント呼出用関数をスニペット名 [b]eFormEvent として保存した場合の内容例[/b]
コード中に、<?php ~ ?> を含むと全角文字がデコードされてしまうためここでは割愛しています。
function onBeforeFormParse (&$fields,&$templates) {
echo '<p>ï¼ï¼ï¼ãã©ã¼ã ããã¼ã¹ãããç´åã«å¼ã³åºããã¾ãããã©ã¼ã ããPOSTããã妥å½ãªãã¼ã¿ ($_POST) ãããå ´åã«ã®ã¿ããã¼ã¹ãè¡ããã¾ãã</p>';
return true;
}
function onValidate(&$fields,&$vMsg,&$rMsg) {
echo '<p>ï¼ï¼ï¼ãã«ãã¤ã³ã®ããªãã¼ã·ã§ã³ããã¼ã¹ãããå¾ã«å¼ã³åºããã¾ããããªãã¼ã·ã§ã³ã®æ¡å¼µã«ä½¿ãã¾ãã</p>';
return true;
}
function onBeforeMailSent( &$fields ) {
echo '<p>ï¼ï¼ï¼ã¡ãã»ã¼ã¸ãéä¿¡ãããåã«å¼ã³åºããã¾ãããã®ã¤ãã³ãã¯&noemailãè¨å®ããã¦ãããã©ããã«é¢ãããå¼ã³åºããã¾ãã <br />';
echo 'ãããæ¨æºã®ãã©ã¼ã ãã§ãã¯ã§ã§ããªããã§ãã¯ãæ¡å¼µã§ãã¾ãã </p>';
if ($fields['email'] == $fields['verify_email']) return true;
$fields['validationmessage']='確èªç¨ã¡ã¼ã«ã¢ãã¬ã¹ã«ç¸éãããã¾ãã確èªãã¦ãã ãã';
return false;
}
function onBeforeFormMerge( &$fields ) {
echo '<p>ï¼ï¼ï¼ãã©ã¼ã ãã¯ã©ã¤ã¢ã³ããã©ã¦ã¶ã«åºåãããåã«å¼ã³åºããããæå¾ã®ã¤ãã³ãã§ãã <br />';
echo 'ãããã¦ã§ãã¦ã¼ã¶ãã¾ãã¯ããã¼ã¸ã£ã¨ãã¦ãã°ã¤ã³ãã¦ããå ´åã«ååã¨ã¡ã¼ã«ã¢ãã¬ã¹ãè¨å®ããä¾ã§ãã</p>';
$info=userInfo();
$fields['name']=$info['fullname'];
$fields['email']=$info['email'];
return $fields;
}
function onMailSent( &$fields ) {
echo '<p>ï¼ï¼ï¼ã¡ãã»ã¼ã¸ãéä¿¡ããå¾ã«å¼ã³åºããã¾ãã&toãè¨å®ããã¦ããªãå ´åãã¾ãã¯ã¡ã¼ã«ã¢ãã¬ã¹ãæ£ãããªãå ´åããã®ã¤ãã³ãã¯å¼ã³åºããã¾ããã </p>';
}
function userInfo() {
global $modx;
if (isset ($_SESSION['webValidated'])) { // web user
return $modx->getWebUserInfo($_SESSION['webInternalKey']);
} else
if (isset ($_SESSION['mgrValidated'])) { // manager user
return $modx->getUserInfo($_SESSION['mgrInternalKey']);
} else {
return false;
}
}