WEBマスター

カスタムされたMODxのスニペットeForm with autofillを使う

この記事は約2分で読めます。

毎年12月-2,3月は多忙なので、ついついご無沙汰してしまいます。

業務で作っている会社のサイトはMODxというCMSで作成しています。

商品紹介がメインなので、同様のサイトだと一般的にはECcubeなどのカートがついているCMSを使うことになると思うんですが、

このサイトのケースでは、商品データは既に社内に基となるデータベースがありますし、決済システムは今のところ必要としていません。

Web上の商品データを更新する担当の作業負担を軽減するために、そのデータベースからtxtファイルを書き出して各レコードを表示させています。

そしてサイトを見た人から各商品レコード毎の問い合わせをもらえるように、これまでは、各商品レコード毎に

mailto:xxxx@hogehoge.jp?subject=商品名

のリンクを張り、サイトを見ているPCのメーラーから、商品名がタイトルに入ったメールを送ってもらうようにしていました。

でも・・・ぜんぜんメールが来ません。

唐突に自分のメーラーが開くのが面食らうのかと思い、Web上に記入項目を限定したメールフォームを設置することを検討しました。

問題は、各商品レコードに「お問い合わせ」ボタンをつけてメールフォームを開く際、ボタン設置元の商品データをメール送信フォームに受け渡す仕組みを作れるのか?という点です。

さらに検索し、ここのページを見てみると、「assets/snippets/eform/eform.incに”$tpl = str_replace(‘を追加した」と説明が書かれています。

そのページからダウンロードしたeform.inc.phpファイルを見てみると、

$tpl = str_replace(

の行が、わかりやすいように飛び出していました。

Web上にインストールしているMODxは最新バージョンにしているので、eFormもバージョンがあり、ダウンロードしたファイルで上書きするだけだとまずいかな?と思い、Web上のMODxからeform.inc.phpをダウンロードし、上記の飛び出している1行を同じ場所に加えた後同じ場所に再アップロードして上書きました。

ダウンロードしたファイルに同梱のチャンクを参考に、各商品レコード毎のリンクを

(フォームを設置したドキュメントのURL)?info=商品名

に書き換えたら、開いたページのフォームのtextareaに商品名が入ってました!

これで商品問い合わせメールをeFormでサイト上から送信可能にできました。