Eventually this might help.
Add in your module class:
public void
contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter>
configuration,
@Symbol(value =
"tapestry.production-mode") boolean productionMode,
@Path(value =
"${tapestry.default-stylesheet}") Asset stylesheetAsset,
@Path(value =
"${tapestry.spacer-image}") Asset spacerImage,
ValidationMessagesSource
validationMessagesSource,
SymbolSource symbolSource,
AssetSource assetSource,
@Inject @Symbol("
google.analytics.id") final String googleAnalyticsID) {
if (productionMode)
configuration.add("GoogleAnalytics", new
GoogleAnalyticsMarkupRenderer(googleAnalyticsID));
}
With the following class:
public class GoogleAnalyticsMarkupRenderer implements MarkupRendererFilter {
private String siteID;
public GoogleAnalyticsMarkupRenderer(String siteID) {
this.siteID = siteID;
}
public void renderMarkup(MarkupWriter writer, MarkupRenderer renderer) {
renderer.renderMarkup(writer);
String analytics = "<script type='text/javascript'>\n" +
" var gaJsHost = (('https:' == document.location.protocol) ? '
https://ssl.' : '
http://www.');\n" +
" document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"
google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E\"));\n" +
"</script>\n" +
"<script type='text/javascript'>\n" +
" var pageTracker = _gat._getTracker('" + siteID + "');\n" +
" pageTracker._trackPageview();\n" +
"</script>\n";
Element root = writer.getDocument().getRootElement();
Element body = root.find("body");
body.raw(analytics);
}
}
On Tue, Jul 28, 2009 at 12:27, moritzgilsdorf <
moritz.gilsdorf@...>wrote:
>
> I tried it but it still inserts the tapestry-code after the GA code and
> before the </body> tag.
>
> Any other suggestions?
>
>
>
> Harald Geritzer wrote:
> >
> >
> > hello,
> >
> > i wrote some custom component for one of my projects. it's included just
> > before the closing body tag.
> >
> > <body>
> > ...
> >
> >
> > </body>
> >
> >
> > GoogleTracker.java
> > ==================
> >
> > public class GoogleTracker {
> >
> > @Paramter
> > private String trackerId;
> >
> >
> > public String getTrackerId() {
> > return trackerId;
> > }
> > }
> >
> >
> > GoogleTracker.tml
> > =================
> >
> > <t:container
> > xmlns:t="
http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
> > <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">
> > if (typeof(_gat) == 'object') {
> > var pageTracker = _gat._getTracker("${trackerId}");
> > pageTracker._initData();
> > pageTracker._trackPageview();
> > }
> > </script>
> > </t:container>
> >
> > moritzgilsdorf schrieb:
> >> Hi,
> >>
> >> I have a problem with using Google Analytics in my project. I've added
> >> the
> >> GA scripts in my Layout.tml just before the closing body tag. When
> >> rendering
> >> the Page, Tapestry inserts between the GA scripts and the </body> the
> >> following code:
> >>
> >> <script type="text/javascript">
> >> <!--
> >> Tapestry.onDOMLoaded(function() {
> >> $('gene').activate();
> >> Tapestry.init({"validate":[["organism",[["required","You must provide a
> >> value for Organism."]]]]});
> >> });
> >> // -->
> >>
> >> I suspect this behavior to cause GA to fail. Does anyone has a similar
> >> problem or knows a quick workaround to solve this?
> >>
> >> Thanks in advance!
> >>
> >> Moritz
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail:
users-unsubscribe@...
> > For additional commands, e-mail:
users-help@...
> >
> >
> >
>
> --
> View this message in context:
>
http://n2.nabble.com/T5%3A-Include-Google-Analytics-Code-tp3200824p3341390.html> Sent from the Tapestry Users mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
users-unsubscribe@...
> For additional commands, e-mail:
users-help@...
>
>
--
Jerome Bernard,
Director, EMEA Operations,
Elastic Grid, LLC.
Site:
http://www.elastic-grid.comBlog:
http://blog.elastic-grid.com