分はじめに出張や長期休暇の都合上,前回の記事からずいぶんと時間が経ってしまいましたが,今回も前回に引き続き,MODxに欠かせないスニペットのひとつであるFormITについて解説したいと思います。基本的な設置方法については前回解説済みですので,必要であれば内容をおさらいしておいてくださいね。一般的なサイトの問い合わせフォームを利用すると,フォームの内容が控えとして投稿者に送信されてくることがほとんどだと思います。この機能は標準でサポートされているため,次のようにスニペットのパラメータを少し設定するだけで簡単に実現することができます。#ff0000;">...</div>という一見意味のない表現を用いています。class="success">...</div>という表現を用いるのが一般的です。&successMessage=`<p>お問い合わせを受け付けました。/></td></tr></tbody></table></form>ここでは,フックの追加と投稿者向けのメール設定を定義しています。フックとは,投稿が行われる前や行われた際に関連して実行される処理であり,FormITが持つ独自のプラグインのように考えることができます。投稿者向けのメール設定については,これまでの&email...パラメータとよく似ているため,解説の必要はないでしょう。投稿者,管理者に異なった内容のメールを送信したい場合には,別々のテンプレート用チャンクを作成し,&emailTplと&fiarTplパラメータでそれぞれのチャンクを指定してください。required.」という英語のメッセージが表示されます。必須項目を記入しない場合のエラーここで思い出していただきたいのは第12回で紹介したLexicon機能です。今回のエラーメッセージは,「⁠システム⁠」⁠→「⁠語彙トピックの管理⁠」⁠→「⁠ネームスペースでformitを選択」より探し出すことができます。メッセージを日本語化させるためには,以前行ったように,付属の翻訳ファイルを日本語用ファイルとしてコピーし,「⁠語彙トピックの管理」より日本語訳を上書きさせれば良いのですが,名前が入力されていない場合には「名前の入力は必須です。⁠」⁠,メールアドレスが不正な場合には「メールアドレスの入力は必須です。」といった形で,パーツごとに異なるエラーメッセージを表示させたい場合があります。この場合,前回紹介したカスタムの妥当性チェックを使い,チャンクごとに異なったエラーメッセージを用意するというのもアリなのですが,妥当性チェックの数だけチャンクを用意するのは骨の折れる作業です。実は次のようにエラーメッセージは簡単に変更することができます。&successMessage=`<p>お問い合わせを受け付けました。名前の入力は必須です。メールアドレスの入力は必須です。問い合わせ内容の入力は必須です。日本語の問い合わせフォームで英語のエラーが表示されるのは不自然ですので,ぜひとも設定しておきたい機能のひとつです。フックを活用するフックとは,FormITが持つプラグインのようなもの,と解説しましたが,本校執筆時点でFormITには,下記のビルトインフックが含まれています。自動応答を実現する各フックの使い方は,すでになんとなく理解いただけているかと思いますが,詳細は例のごとくスニペットのドキュメントを参照してみてください。ビルトインフックだけでも多機能なフォームを作成することができますが,妥当性チェック同様,カスタムのフックを作成することもできます。試しに,カスタムフックを使って,メール内に「送信日」という項目を追加してみましょう。ここでの「送信日」とは,フォームが送信された際の日付と時間を意図しています。カスタムのフックは妥当性チェック同様,スニペットとして作成します。内容は非常にシンプルで,postdateという変数に実行時の時刻情報を代入し,trueを返しているだけです。true;次に,&HooksパラメータにSetPostdateフックを追加します。&successMessage=`<p>お問い合わせを受け付けました。名前の入力は必須です。メールアドレスの入力は必須です。問い合わせ内容の入力は必須です。---あとは,メールのテンプレートであるformit_mailbodyチャンクにpostdateという項目を加えます。/>これにより,仮にメールが遅延した場合でも正確な送信日時がわかるようになり,より充実した問い合わせフォームとなりました。最後に世の中にはさまざまなメールフォームが存在しますが,MODx+FormITの組み合わせでは,パラメータやフックを活用することで,FormIT自体のソースを変更することなく多彩な投稿フォームを作成することができます。FormITの解説は次回で最後です。次回はさらにフックを活用して,より実用的な機能を追加していきます。フック著者プロフィール中満英生(なかみつひでお)大学時代に出会ったSolarisがきっかけでUNIXの世界へ。その後ホスティングプロバイダ,データセンターで実務経験を積む傍ら,雑誌記事の執筆や技術セミナーの講師を務める。サーバ設定の他,セキュリティに関する著作や技術者エッセイも執筆経験あり。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。