Piwik网站统计平台是一套基于PHP5+MySQL技术构建的开源网站访问统计系统,前身是phpMyVisites。Piwik可以给你详细的统计信息,譬如网页浏览人数,访问最多的页面,搜索引擎关键字等等流量剖析功能。除此之外,它还使用了插件扩展及开放API构造,可以让用户依据 自已的实质需要创建更多的功能。
近期为了给我们的web系统添加一个运营数据剖析和展示的功能,本计划自己纯手工塑造,但发现本钱太高,时间和精力方面不允许。在网上查阅了一些资料,发现现在有很多开源的web数据剖析系统,所以拿来主意,决定找一个适合的开源web剖析工具。最后选择了piwik,理由如下:
Piwik使用LAMP开发,我的系统也是,所以可以复用运营环境。
Piwik的构造设计比较通用,可以开发插件进行扩展。
Piwik的数据显示比较强大,至少看起来这样。比如有曲线图,直方图,饼图,标签云等等。插件可以通过拖拽的方法任意布置。
开源,免费,并且有相对完整的文档。
经过了一段时间的探索,我终于将开发插件的步骤梳理了解了,记录于此,作为备忘。现在用的Piwik是目前最新版本,这点非常重要。Piwik的部分接口不向前兼容,以至于不少基于早期版本开发的插件在目前版本没办法用。本文的主要内容如下:
Piwik工作原理
安装部署Piwik
安装Piwik插件
Piwik插件结构
Hello World,你懂的!
Piwik模版
Piwik图形视图
待知道的地方 ……
Piwik是一个web系统,主要用于web运营剖析。它会部署在你一个人的apache和mysql中,如此运营数据都在你一个人的服务器里!安装好Piwik后,它会提供一段js代码,你仅需将这类代码嵌入到你web中的每一个网页中(假如你的系统是用模版开发的,具备相同的footer模版,那样这里比较适合放入这段代码),那样每当这类网页被访问时,这类数据就会传回给Piwik服务器。这里会有个问题,因为数据采集代码放在html中,那样异步请求没办法被统计到,由于这类请求不会返回完整的页面,而是部分页面或数据。不要紧,piwik提供web日志剖析的功能(具体配置见这里),如此就能统计出所有些访问数据。
安装部署Piwik
安装Piwik的确非常简单:下载开发包,解压到apahce服务器web根目录,配置piwik。Piwik在首次访问时,提供了一个很介绍的安装向导,指导你一步一步的配置好piwik,具体步骤见这里。
安装Piwik插件
插件的安装也非常简单,仅需将插件拷贝到piwik_src/plugins目录下面,然后去piwik配置页面启用插件。具体步骤,参见这里。
Piwik插件结构
Piwik源码目录下的plugins目录中是Piwik官方插件,其实官方插件是最高效学习参考。要创建你一个人的第一个插件,第一需要给插件取一个响亮的名字,这里就姑且称之为“BourneliPlugin”吧!然后创建目录piwik_src/plugins/BourneliPlugin。下面,需要在此目录下,创建两个比较要紧的文件:
BourneliPlugin.php:概念插件的基本信息、插件的地方
Controller.php:插件的CGI办法,可以理解为Web MVC模式中的Controller,Piwik框架会将插件有关的Url映射到Controller.php中的办法。
Hello World,你懂的!
根据上面的目录结构,你的第一个插件的基本骨架就搭建成功了,目前大家来写点什么,达成大家的第一个“Hello World”吧。先看看BourneliPlugin.php代码,如下:
上面的代码主要概念的插件的基本信息和插件挂接的地方,应该注意一下什么时间:
类的名字需要是Piwik_BourneliPlugin并且继承类Piwik_Plugin。聪明的你可能已经发现类名的规律:Piwik_YourPluginName(大小写不敏锐)。确实,YourPluginName代表插件目录和插件文件的名字。假如不根据这个约定,piwik是没办法找到插件。
需要达成getInformation函数,此函数返回插件描述信息,便捷在Piwik的插件管理器中找到大家的插件。
达成postLoad办法,在此办法中挂接插件。此办法有四个参数,分别是,widgetCategory,widgetName,ControllerName和ControllerAction,前面两个主如果显示用途,用于在主界面的widget管理器中找到你的插件。第三个办法是控制器办法,对应Controller.php中的类,第四个参数是第三个参数对应类中的具体办法,用于响应用户的请求。
下面看看Controller.php中的代码:
对,你没看错,Controller.php中的代码就是这么简单!应该注意一下什么时间
类的名字遵循这个规律:Piwik_YourPluginName_Controller,不然Piwik_AddWidget的第三个参数没办法找到对应类。
类继承Piwik_Controller类
helloWorld办法对应Piwik_AddWidget函数的第四个参数,输出将直接显示在widget的面板中。
OK,写完了代码,目前可以将BourneliPlugin整个目录拷贝到piwik_src/plugins目录下,看看成效了。
第一,进入插件管理页面,如下图:
对应导航:setting à Plugings à BourneliPlugin。可以看到description这一栏中显示的文本就是在getInformation函数中对应的字段输出的信息。点击最右侧的“Active”,启用插件(不然不会出目前widget面板中)。
下面,去widget面板中打开大家的“hello world”插件。如下图:
可以看到Piwik_AddWidget函数中的第一个和第二个参数出目前哪儿?最后点击“hello world”,可以到大家的插件出目前Dashboard中,如下图:
Piwik模版
用PHP开发web,一般都会用模版机制,如此可以将view和model分开。Piwik也提供模版功能,Piwik没自己造车,而是直接用了smarty模版库,所以用过smarty的同学肯定不会陌生。即时没用过,smarty的官方文档比较完备,可以网上搜索查阅。下面演示一个例子,看看怎么样在插件中用模版。第一,在BournliPlugin目录下添加一个templates目录,并且在templates目录中添加文件myTpl.tpl,内容如下:
(写这篇文章的时候天气真的非常糟!)
然后在Controller.php中添加下面的代码(前面例子中出现的代码备省略了):
添加的函数是一个新的插件函数,用于模版调用,可以看到第一行用Piwik的视图工厂,加载一个视图对象,并将此对象与模版绑定。然后直接将字符串“okkkkkkkkkkkkkk”赋值给模版中的变量myString,最后渲染并输出。
还没有完,虽然写了这个函数,但没将它挂接到Piwik的widget面板中(即时不挂接面板,也可以访问,感兴趣的读者可以通过抓包看看怎么样访问),在BourneliPlugin.php中添加下面的代码:
为了突出重点,前面相同的代码已经省略。大家来看看成效,如下:
Piwik图形视图
Piwik内置了一些图形视图,譬如趋势图,直方图,饼图,云图等。并且提供了十分简单的API供大家调用,大家所做的只不过提供数据。先来看看几种图形:
感觉是否非常拉风!用上面的功能非常简单,可以通过Piwik_src/plugins/ExampleUI这个插件来认识具体的用法,此插件专门用作demo。我在这里简要说名一下步骤:
第一在BourneliPlugin目录下创建名为API.php的文件,在此文件中创建名为Piwik_BourneliPlugin_API的类,命名规则为Piwik_YourPluginName_API。应该注意,此类需要达成单一模式。
Piwik_BourneliPlugin_API中的办法主如果用于获得数据并将你的数据填充到名为Piwik_DataTable的容器中,该类是Piwik自概念类,用于统一数据格式。
最后在Controller中的CGI办法中将对应视图与API中的数据提供办法链接起来,就能完成数据展示了。
这里提供实验的完整例子,读者也可以查询Piwik官方提供的ExampleUI这个例子中的源码,相信会更好,由于本人也是参照这个例子完成实验的。同时,不要忘记直接查询Piwik的源码,如此会更直接。
转载请说明来源于乐奇绿软(https://www.hileqi.com)
本文地址:https://www.hileqi.com/soft/10792.html
郑重声明:文章来源于网络作为参考,本站仅用于分享不存储任何下载资源,如果网站中图片和文字侵犯了您的版权,请联系我们处理!邮箱3450399331@qq.com