ownClowd で Google アナリティクスでの解析を有効にする

自前で立ててるサーバにインストールしている ownCloud を使って、ファイルの公開をしているのがいくつかあるのだけど、そこへのアクセス状況を Google アナリティクス使って解析出来ないかと思って、調べてみたところ同じようなこと考えている人は居るようで、以下の様な情報を発見。

Owncloud 6.0.1 them

For without Google Universal Analysis
1 .Download and extract to owncloud/themes/
2. edit owncloud/config/config.php
'theme' => 'max212',

[From ownCloud Forums • View topic - 6.0.1 Them with/without Google Analysis]

フォーラムに書かれていたとおり、テーマをダウンロードしてきて試してみたところ、

  • max212 テーマを適用すると、ownCloud の Web アクセス時の認証が上手くいかない。というか、正しくログイン出来るアカウントとパスワードでも、認証画面が繰り返し表示され、その先に進めない。
  • テーマ適用状態かつログイン状態で、ファイルの一覧表示などで、レイアウト崩れが発生する。それに起因して、PDF ファイル閲覧時のクローズボタンが表示されない場合がある。
ownCloudの標準テーマmax212テーマ適用時
左:標準、右:max212適用時(左上プルダウンや、ウィンドウ左側に空白など表示がおかしい)

となってしまって、うまく使えない…。
それでもトラッキング自体は出来るのだけど、実際に使うには不便なので、max212 テーマを使わない形で Google アナリティクス対応にさせるのが、以下の手順。


google_ana.js は、max212 に含まれていたものを使うので、/usr/share/owncloud/themes/default/core/js/ にコピーなり移動なりで配置後に /usr/share/owncloud/core/js/ にシンボリックリンクを作成。

nexus01:/usr/share/owncloud# ls -l core/js/google_ana.js
lrwxrwxrwx 1 root root 42  9月 21 18:18 core/js/google_ana.js -> ../../themes/default/core/js/google_ana.js

もちろん、/usr/share/owncloud/core/js/ にダイレクトに google_ana.js を配置しても大丈夫。
google_ana.js の中のトラッキング ID は、自分のものに書き換えておくのは、お忘れなく。

google_ana.js の配置が終わったら、それを読みこませるため /usr/share/owncloud/core/templates/layout.[base|guest|user].php の 3 ファイルを、以下のように変更。

nnexus01:/usr/share/owncloud# diff -u core/templates/layout.base.php~ core/templates/layout.base.php
--- core/templates/layout.base.php~	2015-09-10 23:34:43.000000000 +0900
+++ core/templates/layout.base.php	2015-09-21 18:20:04.505058152 +0900
@@ -18,6 +18,7 @@
 		<?php foreach ($_['cssfiles'] as $cssfile): ?>
 			<link rel="stylesheet" href="<?php print_unescaped($cssfile); ?>" type="text/css" media="screen" />
 		<?php endforeach; ?>
+		<script type="text/javascript" src="/owncloud/core/js/google_ana.js"></script>
 		<?php foreach ($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php print_unescaped($jsfile); ?>"></script>
 		<?php endforeach; ?>
nexus01:/usr/share/owncloud# diff -u core/templates/layout.guest.php~ core/templates/layout.guest.php
--- core/templates/layout.guest.php~	2015-09-10 23:34:43.000000000 +0900
+++ core/templates/layout.guest.php	2015-09-21 18:21:07.276298489 +0900
@@ -19,6 +19,7 @@
 		<?php foreach($_['cssfiles'] as $cssfile): ?>
 			<link rel="stylesheet" href="<?php print_unescaped($cssfile); ?>" type="text/css" media="screen" />
 		<?php endforeach; ?>
+		<script type="text/javascript" src="/owncloud/core/js/google_ana.js"></script>
 		<?php foreach($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php print_unescaped($jsfile); ?>"></script>
 		<?php endforeach; ?>
nexus01:/usr/share/owncloud# diff -u core/templates/layout.user.php~ core/templates/layout.user.php
--- core/templates/layout.user.php~	2015-09-10 23:34:43.000000000 +0900
+++ core/templates/layout.user.php	2015-09-21 18:20:50.823449142 +0900
@@ -22,6 +22,7 @@
 		<?php foreach($_['cssfiles'] as $cssfile): ?>
 			<link rel="stylesheet" href="<?php print_unescaped($cssfile); ?>" type="text/css" media="screen" />
 		<?php endforeach; ?>
+		<script type="text/javascript" src="/owncloud/core/js/google_ana.js"></script>
 		<?php foreach($_['jsfiles'] as $jsfile): ?>
 			<script type="text/javascript" src="<?php print_unescaped($jsfile); ?>"></script>
 		<?php endforeach; ?>

修正が終われば、即適用状態になるので、Google アナリティクスで公開しているファイルへのアクセス状況を解析することが出来るようになります。
♯ただ、ownCloud をアップデートすると、layout.[base|guest|user].phpが、元通りに…。

トラックバック(0)

コメントする