使えるさまざまな拡張アプリを開発しています。その一つとしてフォームから送信された内容をエントリーにする拡張アプリ、Form2Entryがあります。Form2Entryは使い方次第でとても強力なツールとなるのでぜひ使い方をマスターしましょう。cmsパートナーストアでご購入いただける拡張アプリです。期間限定ではありますが、ハンズオンできるプログラムを本記事で配布しております。目次Form2Entryとはフォームからエントリーに登録したい内容を送信できる機能です。フォームモジュールを使用したフォームから、エントリーに投稿したい内容を送信できます。この機能を活用することで掲示板のようなログイン無しで投稿できる、投稿型サイトが簡単に実装できます。自動で投稿されたエントリーは、カテゴリーの指定や、エントリーのステータス、どのユーザーとして登録するかなど詳細な指定がフォームの管理画面から可能になっています。Form2Entryではフォームから送信されたフィールドがエントリーの以下のテーブルの情報に変換されて登録されます。してインポートされます。インポート先のフィールド仕様にあった値を設定くださいさらにフォームから投稿された画像やカスタムフィールドグループなどの情報もエントリーにそのまま保存されます。その際には、カスタムフィールドメーカーで生成すると便利です。ユニットとしてデータを登録する方法カスタムフィールドだけではなく、エントリーのユニットにもフォームから送信したデータを登録することができます。その場合は以下のように記述します。unit@markdownが利用でき、それぞれ、見出し2、見出し3、リスト、マークダウンの形式でテキストユニットに保存されます。Form2EntryダウンロードForm2Entryをダウンロードしましょう。以下のパッケージは暗号化されていて、年内まで利用することができます。サーバー環境のPHPのバージョンに合わせて、パッケージをダウンロードしてください。PHPのバージョンは、管理画面>チェックリストのページにて確認することができます。cmsに設置しましょう。zipファイルを解凍したら、/extension/plugins/ディレクトリの中に、Form2Entryという名前でフォルダを設置します。拡張アプリよりForm2Entryをインストールします。管理画面>フォームの順にページを移動し、Form2Entryを使いたいフォームIDの設定ページに移動します。contactFormのフォーム設定画面に移動すると下の画像のようにForm2Entry用の設定が増えています。エントリー設定を「有効にする」にチェックを入れることでForm2Entryが利用可能になります。Form2Entryで設定できる項目についてForm2EntryのフォームIDの設定には以下の設定項目があります。ハンズオンに移る前に、それぞれ順を追って説明します。フォームで送信されたフィールドの内容をどのようにエントリーのフィールドに保存するかの設定です。デフォルトの設定である「項目変換をせずに全部登録する」ではフォームのフィールド名がそのままエントリーのカスタムフィールドとなって保存されます。項目変換をしたいもの以外はそのままのフィールド名で登録する(entry側を空にしておくと情報を捨て登録しない)こちらの設定では、あらかじめフォームのフィールド名に対応するエントリーのカスタムフィールド名を記述しておくことによって、フォームから送信された内容が一部、別名でエントリーのカスタムフィールドに登録されます。ここに設定されていない項目についてはそのままのフィールド名でエントリーのカスタムフィールドに登録されます。下の画像のようにエントリー側の項目が空の場合は、対応するフォームのフィールドがエントリーのカスタムフィールドに保存されなくなります。項目変換したいものだけを登録するこの設定では、あらかじめフォームの設定で登録された内容以外の送信内容が全て破棄されてエントリーのカスタムフィールドに登録されます。タイトル指定フォーム内で利用された変数を活用して、フォームから生成されるエントリーのタイトルを設定できます。ブログ指定エントリーがフォームから作成された際にここで指定されたブログがエントリーに設定されます。カテゴリー指定エントリーがフォームから作成された際にここで指定されたカテゴリーがエントリーに設定されます。ユーザー指定エントリーがフォームから作成された際にここで指定されたユーザーがそのエントリーの作成者として登録されます。ステータス指定エントリーがフォームから作成された際のエントリーの公開状態を指定することができます。Form2Entryでお問い合わせ管理システムを作ろう(ハンズオン)このハンズオンでは、From2Entryの機能を使って、お問い合わせ管理の仕組みを作ります。以下の手順で進めていきます。作る閲覧ページでお問い合わせの内容を確認できるテンプレートを作るトップページにお問い合わせの一覧を表示するここでは、site2019テーマの初期インストール状態を例に解説していきます。環境が異なる場合はご自身の環境に合わせて読み替えてください。Form2Entryで投稿されたエントリーが所属するブログを作る以下のように子ブログを作ります。管理者のみ閲覧できるように今回はシークレットブログで作成します。使用するフォームIDでForm2Entryを有効化するフォームの投稿データをエントリーへ変換したいフォームIDの変更画面に移動します。今回はcontactFormを使用します。contactFormの変更画面に移動すると、以下のようにForm2Entryの設定項目が増えています。「エントリー設定」を有効にしてください。下図のように設定し、ルートブログに投稿されたフォームの内容を、子ブログのエントリーとして作成されるようにしましょう。これで、お問い合わせフォームから送信すると子ブログにエントリーが作成される仕組みができました。一度、フォームを送信して子ブログにエントリーが作成させるか試してみてください。それでは、お問い合わせを管理するための編集ページを作成していきます。作る下図のようなお問い合わせ管理用の管理画面を、エントリーに作成していきます。この画面を作ることにより、Form2Entryにより投稿されたエントリーのデータを編集できるようになります。子ブログ側のエントリーにお問い合わせ内容を確認するためのカスタムフィールドを作ります。以下のテンプレートに書き加えます。-->@include("/admin/entry/field/%{BCD}.html")次にお問い合わせ内容のカスタムフィールドを実際に作っていきます。お問い合わせフォームで使用しているHTMLの一部分をそのまま利用するため、既存のファイルをインクルードします。お問い合わせに対しての対応状況の項目だけ、新たに追加しておきましょう。編集設定の順にページを移動し、以下のように編集画面を表側に統一しておいてください。閲覧ページでお問い合わせ内容を確認できるテンプレートを作るお問い合わせ管理のブログのを調整して実際にお問い合わせ内容が表示されるようにカスタマイズしていきます。テーマ設定にてcontact-admin@site2019テーマを選択します。このとき、テンプレートの設定は「テンプレート選択ファイル(template.yaml)の値を優先する」のチェックを外して、以下のようにしておきましょう。以下の必要なファイルを新規作成またはすでに存在するファイルには一部コードを追加します。@include("/contact/form/confirm.html")を追加します。--></div>@endsection新規作成:/themes/site2019/include/parts/contact-search.htmlこのHTMLはお問い合わせ検索用のテンプレートになります。-->これでカスタマイズは完了です。カスタマイズがうまく完了していれば、お問い合わせから送信があった場合は以下のように子ブログでエントリー一覧が表示されます。「対応済み」にチェックを入れると、一覧ページのラベルに「対応済み」と表示されます。ハンズオンは以上になります。今回はForm2Entryでお問い合わせ管理機能を作りましたが、アイデア次第でForm2Entryで予約管理システムなどいろいろなサイトが作れるはずです。同じタグ付けがされている記事201911/16開発環境が整ったテーマ「Develop」を触ってみようこのハンズオン記事ではVer.2.11から追加された、開発環境が整ったテーマ「Develop」を触ってみましょう。新しく追加された「エントリーの一括編集」機能を体験してみましょう。「エントリーの一括編集」の機能が追加されました。パフォーマンス改善に関する機能が多く追加されました。デフォルトで有効な機能も多いですが、どうやって動いているのか、カスタマイズ方法を覚えて、使いこなせるようになりましょう。cmsに新しく追加される予定のブロックベースのエディターです。SmartBlockの特徴は以下になります。