跳转到主要内容

跟踪您Plone站点上的用户行为。

项目描述

简介

slc.clicktracker将跟踪javascript注入到标记的页面中。该javascript随后会回调,以便我们能够跟踪哪些用户正在查看哪些页面。这个基本用例是为了确保在会议中投票反对某项文件之前,组织内的人实际上已经阅读了该文件。

为什么选择JavaScript?它不会在页面加载时引入延迟,而是将统计数据的收集推迟到页面加载后的异步过程。它还确保从真实浏览器收集统计数据,从某种意义上说更为准确,它仅在页面成功渲染到客户端后才注册有效负载。当然,很容易避免被记录,但目的是检查积极证据,即阅读过它的人。

可插拔存储层

存储层被设计成可插拔的。要实现存储,需要实现IClickStorage接口。这基本上需要实现两个方法,logAccess(将数据放入存储)和getLog(从存储中检索数据)。存储层使用ZCML注册为一个实用工具。

此产品附带一个现有的存储组件,该组件使用Postgresql。这种实现的思路是为了避免频繁写入导致的zodb膨胀。

在内容上禁用跟踪

要禁用视图的跟踪,请在生成任何内容之前,在请求早期使用IContentIsIgnored标记请求。

配置

Postgresql配置存储在Plone注册表中。在Plone控制面板(网站设置)中有一个配置小部件,您可以在其中设置连接到数据库服务器的DSN。DSN的格式如psycopg2手册中所述(http://initd.org/psycopg/docs/)。

数据库初始化

创建用于跟踪目的的新数据库后,您需要激活该数据库的plpgsql语言。然后,将sql/db.sql加载到您刚刚创建的数据库中。这包含所有表定义以及执行实际工作的存储过程。为了方便使用,还有一个GenericSetup步骤来自动化此过程。下面提供了一个示例。

示例Postgresql配置

其他数据库的用户经常难以理解Postgresql的认证。以下是一个简单的分步指南,说明如何配置基于Debian的Linux发行版的标准(与Debian发行版一起提供的)Postgresql安装的slc.clicktracker。

0. 如果您尚未安装,则需要安装postgresql。您还需要开发头文件。要在Debian/Ubuntu机器上执行此操作,请输入:

sudo apt-get install postgresql libpq-dev

  1. 成为postgresql用户

    sudo -u postgres -i

  2. 登录到template1数据库

    psql template1

3. 创建一个用户和一个跟踪数据库。用户需要与运行zope的系统用户同名。以下是一个名为zope的用户示例会话

template1=# create user zope; CREATE ROLE template1=# create database tracking owner zope; CREATE DATABASE template1=# q

  1. 将plpgsql语言安装到您的数据库中

    createlang plpgsql tracking

5. 在您的Plone网站上,转到网站设置,点击跟踪设置,然后使用DSN配置slc.clicktracker

dbname=tracking

6. 现在,转到portal_setup,单击导入选项卡,然后从下拉菜单中选择“slc.clicktracker数据库设置”,并导入所有步骤。

就是这样。默认安装的Postgresql使用“ident”认证,这意味着无需指定用户名和密码,只需要数据库的名称即可。

注意:如果postgresql安装在除localhost以外的主机上,或者在默认不设置ident认证的发行版上运行,或者在Windows上运行,上述内容将不起作用。在这种情况下,请参阅postgresql文档以获取有关pg_hba.conf文件的详细信息,并参阅psycopg2文档以获取有关dsn的详细信息。

变更日志

0.4 (2016-09-29)

错误修复

  • 使clicktracker-callback在任何上下文中可调用。[ale-rt]

0.3 (2012-03-26)

  • MANIFEST.in中的错误修复。[jcbrand]

0.2 (2012-03-23)

  • 添加MANIFEST.in。[jcbrand]

0.1 (2012-03-22)

  • 初始发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

slc.clicktracker-0.4.tar.gz (12.1 kB 查看哈希值)

上传时间 源代码

支持