
Trac Google Analytics プラグイン (修正版) は Trac Google Analytics Plugin (TracGoogleAnalytics) で発生するエラーを回避した修正バージョン。
※ TracGoogleAnalytics 0.2.4 で同様の修正が行われました。
※ Trac Google Analytics プラグイン (修正版) のベース (オリジナルのバージョン) は TracGoogleAnalytics 0.2.2。
※ TracGoogleAnalytics 0.2.4 で同様の修正が行われました。
管理コンソールまたは Easy Install を使用してインストールする。
※ 手動でインストールする場合は、TracGoogleAnalytics-0.2.4-py2.7.egg を /path/to/env/plugins ディレクトリにアップロードする。
%easy_install TracGoogleAnalytics
trac.ini の [components] セクションに以下の記述を追加してプラグインを有効にする。
[components] tracext.google.analytics.* = enabled
※ TracGoogleAnalytics 0.2.4 で同様の修正が行われました。(変更内容)
管理コンソール – [Google] – [Analytics] を表示すると次のようなエラーメッセージが表示される。
UndefinedError: None has no member named "upper"
エラーを回避するためオリジナルの templatesgoogle_analytics_admin.html を次のように修正。
--- google_analytics_admin.html (original)
+++ google_analytics_admin.html (modified)
@@ -22,3 +22,3 @@
<label for="uid">UID:</label>
-<input type="text" name="uid" value="${ga.uid.value.upper()}"/>
+<input type="text" name="uid" value="${ga.uid.value}"/>
<p class="help">Enter your Google Analytics' UID in this box.<br/>
※ エラーの原因は None 定数からの str.upper() 呼び出し。UID を設定するまで ga.uid.value 属性値は未定義 (None) が返る。
/path/to/env/templates/site.html を作成すると、プラグインを使わずに Google Analytics を導入できる。たとえばトラッキングコードを単に挿入する場合 site.html の内容は次のようになる。(UA-XXXXX-Y の部分は書き換える)
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:py="http://genshi.edgewall.org/" py:strip="">
<body py:match="body" py:attrs="select('@*')">
${select('*|text()')}
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-XXXXX-Y");
pageTracker._trackPageview();
} catch(err) {}
</script>
</body>
</html>
いただいたコメントは大変参考になります。ここまで読んでいただきありがとうございました。
コメント