Author: tchemit Date: 2012-03-21 01:31:34 +0100 (Wed, 21 Mar 2012) New Revision: 659 Url: http://nuiton.org/repositories/revision/maven-nuiton-skin/659 Log: closes #2017 : Replace google Analytics by Piwik Modified: trunk/src/main/java/org/nuiton/maven/skin/NuitonSiteRenderer.java trunk/src/main/resources/META-INF/maven/site.vm trunk/src/site/apt/index.apt.vm trunk/src/site/en/apt/index.apt.vm Modified: trunk/src/main/java/org/nuiton/maven/skin/NuitonSiteRenderer.java =================================================================== --- trunk/src/main/java/org/nuiton/maven/skin/NuitonSiteRenderer.java 2012-03-20 23:47:16 UTC (rev 658) +++ trunk/src/main/java/org/nuiton/maven/skin/NuitonSiteRenderer.java 2012-03-21 00:31:34 UTC (rev 659) @@ -81,6 +81,10 @@ private boolean scmwebeditorEnabled; + private boolean piwikEnabled; + + private String piwikSiteId; + protected Method getWriteTemplateMethod() { if (writeTemplateMethod == null) { writeTemplateMethod = ReflectUtil.getMethod( @@ -116,14 +120,18 @@ // prepare all common values for a given module - locale = siteRenderingContext.getLocale(); Map<String, ?> templateProperties = siteRenderingContext.getTemplateProperties(); - String value = (String) templateProperties.get("scmwebeditorEnabled"); - scmwebeditorEnabled = StringUtils.isNotEmpty(value) && !"false".equals(value); + scmwebeditorEnabled = getBooleanProperty( + (String) templateProperties.get("scmwebeditorEnabled")); + mavenProject = (MavenProject) templateProperties.get("project"); + + piwikEnabled = getBooleanProperty( + (String) mavenProject.getProperties().get("piwikEnabled")); + if (scmwebeditorEnabled) { // get locales (defined in pom) @@ -134,8 +142,8 @@ this.locales = locales; - mavenProject = (MavenProject) templateProperties.get("project"); - siteSourcesType = (String) mavenProject.getProperties().get("siteSourcesType"); + siteSourcesType = (String) + mavenProject.getProperties().get("siteSourcesType"); String scm = mavenProject.getScm().getDeveloperConnection(); String scmURL = scm.substring(8); @@ -151,10 +159,42 @@ siteXmlScmwebeditorURL = scmwebeditorPrefixURL + editFile; getLogger().debug("[" + editFile + "] scmwebeditor url = " + siteXmlScmwebeditorURL); + } + if (piwikEnabled) { + + String piwikId = (String) mavenProject.getProperties().get("piwikId"); + if (StringUtils.isEmpty(piwikId)) { + + // try to use piwikId from platform + String platform = (String) mavenProject.getProperties().get("platform"); + + if ("nuiton.org".equals(platform)) { + piwikSiteId = "2"; + } else if ("chorem.org".equals(platform)) { + piwikSiteId = "3"; + } else if ("forge.codelutin.com".equals(platform)) { + piwikSiteId = "4"; + } else { + getLogger().warn( + "No piwik id known for this platform " + + platform + + ", please fill yourself a piwikId in your pom"); + + // disable piwik + piwikEnabled = false; + } + } else { + + // use given id + piwikSiteId = piwikId; + } } + if (piwikEnabled) { + getLogger().info("piwik is enabled, will use piwikiId : " + + piwikSiteId); + } super.render(documents, siteRenderingContext, outputDirectory); - } @Override @@ -180,7 +220,7 @@ if (scmwebeditorEnabled) { // add our tool to velocity context - + ScmwebeditorUtils tool = new ScmwebeditorUtils(context, getLogger()); tool.setLocale(locale); @@ -191,7 +231,11 @@ tool.setSiteXmlScmwebeditorURL(siteXmlScmwebeditorURL); tool.buildStates(); context.put("ScmwebeditorUtils", tool); + } + if (piwikEnabled) { + context.put("piwikEnabled", true); + context.put("piwikSiteId", piwikSiteId); } return context; } @@ -205,4 +249,9 @@ ReflectUtil.invokeMethod(m, this, writer, context, siteContext); } + protected boolean getBooleanProperty(String value) { + boolean result = StringUtils.isNotEmpty(value) && !"false".equals(value); + return result; + } + } \ No newline at end of file Modified: trunk/src/main/resources/META-INF/maven/site.vm =================================================================== --- trunk/src/main/resources/META-INF/maven/site.vm 2012-03-20 23:47:16 UTC (rev 658) +++ trunk/src/main/resources/META-INF/maven/site.vm 2012-03-21 00:31:34 UTC (rev 659) @@ -351,6 +351,20 @@ #end #end #end + #if ( "$piwikEnabled" != "false" ) +<!-- Piwik --> +<script type="text/javascript"> + var pkBaseURL = (("https:" == document.location.protocol) ? "https://piwik.codelutin.com/" : "http://piwik.codelutin.com/"); + document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E")); +</script><script type="text/javascript"> +try { + var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", $piwikSiteId); + piwikTracker.trackPageView(); + piwikTracker.enableLinkTracking(); +} catch( err ) {} +</script><noscript><p><img src="http://piwik.codelutin.com/piwik.php?idsite=$piwikSiteId" style="border:0" alt="" /></p></noscript> +<!-- End Piwik Tracking Code --> + #end </head> <body class="composite"> <div id="banner"> @@ -448,22 +462,6 @@ </script> </div> #end - #if ( "$googleAnalyticsEnabled" != "false" ) - <script src="http://www.google-analytics.com/urchin.js" - type="text/javascript"> - </script> - <script type="text/javascript"> - <!-- - _uacct = "UA-1064192-2"; - _udn="labs.libre-entreprise.org"; - urchinTracker(); - // --> - </script> - <div id="googleAnalytics"> - <a class="tiny" href="http://www.codelutin.com/google">google - analytics</a> - </div> - #end </div> <div id="bodyColumn"> Modified: trunk/src/site/apt/index.apt.vm =================================================================== --- trunk/src/site/apt/index.apt.vm 2012-03-20 23:47:16 UTC (rev 658) +++ trunk/src/site/apt/index.apt.vm 2012-03-21 00:31:34 UTC (rev 659) @@ -64,4 +64,6 @@ * <googleAdSenseEnabled> : mettre n'importe quoi sauf <<false>> pour que afficher des google-Ads dans la colonne de gauche. - * <googleAnalyticsEnabled> : mettre n'importe quoi sauf <<false>> pour que le site soit analysé par google analytics. \ No newline at end of file + * <piwikEnabled> : mettre n'importe quoi sauf <<false>> pour que le site soit analysé par Piwik*. + + * <piwikId> : pour spécifier un id de site Piwik (sinon celui de la forge qui héberge sera utilisé). \ No newline at end of file Modified: trunk/src/site/en/apt/index.apt.vm =================================================================== --- trunk/src/site/en/apt/index.apt.vm 2012-03-20 23:47:16 UTC (rev 658) +++ trunk/src/site/en/apt/index.apt.vm 2012-03-21 00:31:34 UTC (rev 659) @@ -64,4 +64,6 @@ * <googleAdSenseEnabled> : Set anything else to <<false>> to display google ads in the left column. - * <googleAnalyticsEnabled> : Set anything else to <<false>> to make site analyze by google analytics. \ No newline at end of file + * <piwikEnabled> : Set anything else to <<false>> to make site analyze by Piwik. + + * <piwikId> : To specify a Piwik site id (otherwise the owning forge piwik site id will be used). \ No newline at end of file