OSDN Git Service

6ff2cff48013ca875d85ee689204c5d326b0ad62
[magic3/magic3.git] / widgets / m / g_analytics / include / container / m_g_analyticsWidgetContainer.php
1 <?php
2 /**
3  * index.php用コンテナクラス
4  *
5  * PHP versions 5
6  *
7  * LICENSE: This source file is licensed under the terms of the GNU General Public License.
8  *
9  * @package    Magic3 Framework
10  * @author     平田直毅(Naoki Hirata) <naoki@aplo.co.jp>
11  * @copyright  Copyright 2006-2010 Magic3 Project.
12  * @license    http://www.gnu.org/copyleft/gpl.html  GPL License
13  * @version    SVN: $Id: m_g_analyticsWidgetContainer.php 3719 2010-10-19 08:39:44Z fishbone $
14  * @link       http://www.magic3.org
15  */
16 require_once($gEnvManager->getContainerPath() . '/baseWidgetContainer.php');
17
18 class m_g_analyticsWidgetContainer extends BaseWidgetContainer
19 {
20         private $account;               // Google AnalyticsのプロファイルのID
21         const ACCOUNT_HEAD = 'MO-';             // 携帯用アカウントヘッダ
22         
23         /**
24          * コンストラクタ
25          */
26         function __construct()
27         {
28                 // 親クラスを呼び出す
29                 parent::__construct();
30         }
31         /**
32          * テンプレートファイルを設定
33          *
34          * _assign()でデータを埋め込むテンプレートファイルのファイル名を返す。
35          * 読み込むディレクトリは、「自ウィジェットディレクトリ/include/template」に固定。
36          *
37          * @param RequestManager $request               HTTPリクエスト処理クラス
38          * @param object         $param                 任意使用パラメータ。そのまま_assign()に渡る
39          * @return string                                               テンプレートファイル名。テンプレートライブラリを使用しない場合は空文字列「''」を返す。
40          */
41         function _setTemplate($request, &$param)
42         {
43                 return 'main.tmpl.html';
44         }
45         /**
46          * テンプレートにデータ埋め込む
47          *
48          * _setTemplate()で指定したテンプレートファイルにデータを埋め込む。
49          *
50          * @param RequestManager $request               HTTPリクエスト処理クラス
51          * @param object         $param                 任意使用パラメータ。_setTemplate()と共有。
52          * @param                                                               なし
53          */
54         function _assign($request, &$param)
55         {
56                 $this->account = '';    // Google AnalyticsのプロファイルのID
57                 $paramObj = $this->getWidgetParamObj();
58                 if (!empty($paramObj)){
59                         $this->account  = $paramObj->account;
60                 }
61
62                 // アカウント番号が空のときは出力しない
63                 if (empty($this->account)){
64                         $this->cancelParse();
65                 } else {
66                         $imageUrl = $this->googleAnalyticsGetImageUrl();
67                         $this->tmpl->addVar("_widget", "image", $imageUrl);
68                 }
69         }
70         function googleAnalyticsGetImageUrl()
71         {
72                 //global $GA_ACCOUNT, $GA_PIXEL;
73                 $GA_ACCOUNT = self::ACCOUNT_HEAD . $this->account;
74                 $GA_PIXEL = $this->gEnv->getCurrentWidgetRootUrl() . '/ga.php';
75                 
76                 $url = "";
77                 $url .= $GA_PIXEL . "?";
78                 $url .= "utmac=" . $GA_ACCOUNT;
79                 $url .= "&utmn=" . rand(0, 0x7fffffff);
80                 $referer = $_SERVER["HTTP_REFERER"];
81                 $query = $_SERVER["QUERY_STRING"];
82                 $path = $_SERVER["REQUEST_URI"];
83                 if (empty($referer)) {
84                   $referer = "-";
85                 }
86                 $url .= "&utmr=" . urlencode($referer);
87                 if (!empty($path)) {
88                   $url .= "&utmp=" . urlencode($path);
89                 }
90                 $url .= "&guid=ON";
91                 return str_replace("&", "&amp;", $url);
92         }
93 }
94 ?>