IIS中加入piwik跟踪代码,iispiwik跟踪代码


好久没来写博了...
今天写一下如何在IIS中加入piwik跟踪代码。
背景:
•    piwik 开源php站点统计程序        http://piwik.org
•    HttpModule: http://www.cnblogs.com/stwyhm/archive/2006/08/09/471729.html
实现思路:通过HttpModule在aspx页面的body前加入统计代码。
代码实现:

1. 新建dll项目   

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO; 

namespace PiwikAnalytics
{
    /// 修改于网上流传的Google Analytics (https://www.google.com/analytics/) script    
    public class PiwikAnalyticsModule : IHttpModule
    {
        static string GoogleScript = string.Empty;
        HttpApplication application; 

        public void Dispose()
        {
            //context.BeginRequest -= new EventHandler(OnBeginRequest);
        } 

        public void Init(HttpApplication context)
        {
            context.BeginRequest += new EventHandler(OnBeginRequest);
            application = context;
        } 

        void OnBeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = (HttpApplication)sender;
            //web.config中定义的站点字符串,后面会有介绍
            string sites = ConfigurationManager.AppSettings["PiwikAnalyticsSites"];
            //此处未进行异常处理,大家发布时记得加上哦~
            string[] siteArr = sites.Split(';');
            string siteid = "5";
            foreach (string site in siteArr)
            {
                if (application.Request.Url.OriginalString.ToLower().IndexOf(site.Split(',')[0]) > 0)
                {
                    siteid = site.Split(',')[1];
                }
            } 

            GoogleScript = @" <!-- Piwik -->
             <script type=""text/javascript"">
        var pkBaseURL = ((""https:"" == document.location.protocol) ? ""https://yourpiwik.com/piwik/"" : ""http://yourpiwik.com/piwik/"");
        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"", " + siteid + @");           
            piwikTracker.trackPageView();
            piwikTracker.enableLinkTracking();
        //} catch (err) { }
    </script> 

    <noscript>
        <p>
            <img id=""img1"" src=""http://pm.taobao.ali.com/piwik/piwik.php?idsite="+siteid+@"""><?xml version="1.0"?>
<configuration>
  <appSettings>
    <add key="PiwikAnalyticsSites" value="site,4;meeting,6"/>    
  </appSettings>
  <system.web>    
    <authentication mode="Windows"/>
    <httpModules>
      <add name="PiwikAnalytics" type="PiwikAnalytics.PiwikAnalyticsModule"/>
    </httpModules>
    <compilation debug="true">
      <assemblies>
        <add assembly="PiwikAnalytics, version=1.0.0.0, Culture=neutral,PublicKeyToken=0c64deee0d840dfb" />
      </assemblies>
    </compilation>
  </system.web>
</configuration> 

要记得把从步骤2中得到的PublicKeyToken替换成你自己的哦~
到此时,重启iis,刷新页面。再去piwik中查看,大功告成!
需特别注意的地方:
1.    注册module时,要按照自己的实际情况配置
2.    上述方式不适用于MVC和模板模式开发
3.    每次改写代码的时候都需要重新生成一次DLL,并且重新注册GAC,并且对站点相应应用程序池中的进行回收
More:另外介绍2个pwiki客户端查看软件
•    Desktop Web Analytics
•    Piwik Connector
Over 收工!

相关内容

    暂无相关文章