MODxのeFormでリファラを取得してみた。


MODx 1.0.5J-r3
eForm 1.4.4.6

MODxでリファラの取得方法を調べたが見つからないので、作ってみました。

まず2つのスニペットを用意します。

1つめのスニペット [[get_referer]]


<?php
if(! isset($_SESSION['ref'])){
$_SESSION['ref'] = $_SERVER["HTTP_REFERER"];
}
?>

2つめのスニペット [[echo_referer]]


<?php
$referer = $_SESSION['ref'];
echo $referer;
?>

テンプレートの1行目にスニペット [[get_referer]] を追加。


[[get_referer]]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

入力フォームのチャンク {{ContactForm}} に スニペット [[echo_referer]] を追加。


<input type="hidden" name="referer" id="referer" value="[[echo_referer]]"
 eform="::0::" />
<input type="submit" name="contact" id="cfContact" class="button"
 value="送信する" />
</fieldset>
</form>

チャンク {{ContactFormReport}} に [+referer+] を追加


ウェブサイトの問い合わせフォームからの送信です。

--------------------------------------------------------
お名前 : [+name+] さん
Email :  [+email+]
件 名  :  [+subject+]
内 容  :
[+message+]
--------------------------------------------------------
リファラ  :  [+referer+]

これでリファラが取得できるようになりました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です