« Return to Thread: T5: Include Google Analytics Code

Re: T5: Include Google Analytics Code

by Jérôme BERNARD :: Rate this Message:

Reply to Author | View in Thread

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.com
Blog: http://blog.elastic-grid.com

 « Return to Thread: T5: Include Google Analytics Code