PDF rausgenommen
This commit is contained in:
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace Piwik\Plugins\ExampleLogTables\Columns;
|
||||
|
||||
use Piwik\Columns\Dimension;
|
||||
|
||||
class GroupAttributeAdmin extends Dimension
|
||||
{
|
||||
protected $dbTableName = 'log_group';
|
||||
protected $category = 'General_Visitors';
|
||||
protected $type = self::TYPE_BOOL;
|
||||
protected $columnName = 'is_admin';
|
||||
protected $segmentName = 'isadmin';
|
||||
protected $nameSingular = 'Admin privileges';
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace Piwik\Plugins\ExampleLogTables\Columns;
|
||||
|
||||
use Piwik\Columns\Dimension;
|
||||
|
||||
class UserAttributeGender extends Dimension
|
||||
{
|
||||
protected $dbTableName = 'log_custom';
|
||||
protected $category = 'General_Visitors';
|
||||
protected $type = self::TYPE_TEXT;
|
||||
protected $columnName = 'gender';
|
||||
protected $segmentName = 'attrgender';
|
||||
protected $nameSingular = 'Gender';
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
<?php
|
||||
/**
|
||||
* Matomo - free/libre analytics platform
|
||||
*
|
||||
* @link https://matomo.org
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\ExampleLogTables\Dao;
|
||||
|
||||
use Piwik\Common;
|
||||
use Piwik\Db;
|
||||
use Piwik\DbHelper;
|
||||
|
||||
class CustomGroupLog
|
||||
{
|
||||
private $table = 'log_group';
|
||||
private $tablePrefixed = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->tablePrefixed = Common::prefixTable($this->table);
|
||||
}
|
||||
|
||||
public function install()
|
||||
{
|
||||
DbHelper::createTable($this->table, "
|
||||
`group` VARCHAR(30) NOT NULL,
|
||||
`is_admin` TINYINT(1) NOT NULL,
|
||||
PRIMARY KEY (`group`)");
|
||||
}
|
||||
|
||||
public function uninstall()
|
||||
{
|
||||
Db::query(sprintf('DROP TABLE IF EXISTS `%s`', $this->tablePrefixed));
|
||||
}
|
||||
|
||||
private function getDb()
|
||||
{
|
||||
return Db::get();
|
||||
}
|
||||
|
||||
public function getAllRecords()
|
||||
{
|
||||
return $this->getDb()->fetchAll('SELECT * FROM ' . $this->tablePrefixed);
|
||||
}
|
||||
|
||||
public function addGroupInformation($group, $isAdmin)
|
||||
{
|
||||
$columns = array(
|
||||
'group' => $group,
|
||||
'is_admin' => $isAdmin
|
||||
);
|
||||
|
||||
$bind = array_values($columns);
|
||||
$placeholder = Common::getSqlStringFieldsArray($columns);
|
||||
|
||||
$sql = sprintf('INSERT INTO %s (`%s`) VALUES(%s)',
|
||||
$this->tablePrefixed, implode('`,`', array_keys($columns)), $placeholder);
|
||||
|
||||
$db = $this->getDb();
|
||||
|
||||
$db->query($sql, $bind);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,68 @@
|
||||
<?php
|
||||
/**
|
||||
* Matomo - free/libre analytics platform
|
||||
*
|
||||
* @link https://matomo.org
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\ExampleLogTables\Dao;
|
||||
|
||||
use Piwik\Common;
|
||||
use Piwik\Db;
|
||||
use Piwik\DbHelper;
|
||||
|
||||
class CustomUserLog
|
||||
{
|
||||
private $table = 'log_custom';
|
||||
private $tablePrefixed = '';
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->tablePrefixed = Common::prefixTable($this->table);
|
||||
}
|
||||
|
||||
public function install()
|
||||
{
|
||||
DbHelper::createTable($this->table, "
|
||||
`user_id` VARCHAR(200) NOT NULL,
|
||||
`gender` VARCHAR(30) NOT NULL,
|
||||
`group` VARCHAR(30) NOT NULL,
|
||||
PRIMARY KEY (user_id)");
|
||||
}
|
||||
|
||||
public function uninstall()
|
||||
{
|
||||
Db::query(sprintf('DROP TABLE IF EXISTS `%s`', $this->tablePrefixed));
|
||||
}
|
||||
|
||||
private function getDb()
|
||||
{
|
||||
return Db::get();
|
||||
}
|
||||
|
||||
public function getAllRecords()
|
||||
{
|
||||
return $this->getDb()->fetchAll('SELECT * FROM ' . $this->tablePrefixed);
|
||||
}
|
||||
|
||||
public function addUserInformation($userId, $group, $gender)
|
||||
{
|
||||
$columns = array(
|
||||
'user_id' => $userId,
|
||||
'group' => $group,
|
||||
'gender' => $gender
|
||||
);
|
||||
|
||||
$bind = array_values($columns);
|
||||
$placeholder = Common::getSqlStringFieldsArray($columns);
|
||||
|
||||
$sql = sprintf('INSERT INTO %s (`%s`) VALUES(%s)',
|
||||
$this->tablePrefixed, implode('`,`', array_keys($columns)), $placeholder);
|
||||
|
||||
$db = $this->getDb();
|
||||
|
||||
$db->query($sql, $bind);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
/**
|
||||
* Matomo - free/libre analytics platform
|
||||
*
|
||||
* @link https://matomo.org
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\ExampleLogTables;
|
||||
|
||||
use Piwik\Plugins\ExampleLogTables\Dao\CustomUserLog;
|
||||
use Piwik\Plugins\ExampleLogTables\Dao\CustomGroupLog;
|
||||
|
||||
class ExampleLogTables extends \Piwik\Plugin
|
||||
{
|
||||
public function install()
|
||||
{
|
||||
// Install custom log table [disabled as example only]
|
||||
|
||||
// $userLog = new CustomUserLog();
|
||||
// $userLog->install();
|
||||
|
||||
// $userLog = new CustomGroupLog();
|
||||
// $userLog->install();
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Matomo - free/libre analytics platform
|
||||
*
|
||||
* @link https://matomo.org
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\ExampleLogTables\Tracker\LogTable;
|
||||
|
||||
use Piwik\Tracker\LogTable;
|
||||
|
||||
class CustomGroupLog extends LogTable
|
||||
{
|
||||
public function getName()
|
||||
{
|
||||
return 'log_group';
|
||||
}
|
||||
|
||||
public function getIdColumn()
|
||||
{
|
||||
return 'group';
|
||||
}
|
||||
|
||||
public function getPrimaryKey()
|
||||
{
|
||||
return ['group'];
|
||||
}
|
||||
|
||||
public function getWaysToJoinToOtherLogTables()
|
||||
{
|
||||
return ['log_custom' => 'group'];
|
||||
}
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
/**
|
||||
* Matomo - free/libre analytics platform
|
||||
*
|
||||
* @link https://matomo.org
|
||||
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
|
||||
*
|
||||
*/
|
||||
namespace Piwik\Plugins\ExampleLogTables\Tracker\LogTable;
|
||||
|
||||
use Piwik\Tracker\LogTable;
|
||||
|
||||
class CustomUserLog extends LogTable
|
||||
{
|
||||
public function getName()
|
||||
{
|
||||
return 'log_custom';
|
||||
}
|
||||
|
||||
public function getIdColumn()
|
||||
{
|
||||
return 'user_id';
|
||||
}
|
||||
|
||||
public function getPrimaryKey()
|
||||
{
|
||||
return ['user_id'];
|
||||
}
|
||||
|
||||
public function getWaysToJoinToOtherLogTables()
|
||||
{
|
||||
return ['log_visit' => 'user_id'];
|
||||
}
|
||||
}
|
29
msd2/tracking/piwik/plugins/ExampleLogTables/plugin.json
Normal file
29
msd2/tracking/piwik/plugins/ExampleLogTables/plugin.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "ExampleLogTables",
|
||||
"description": "Matomo Platform showcase: how to create custom log tables.",
|
||||
"version": "0.1.0",
|
||||
"theme": false,
|
||||
"require": {
|
||||
"piwik": ">=3.0.0-b1,<4.0.0-b1"
|
||||
},
|
||||
"authors": [
|
||||
{
|
||||
"name": "Matomo",
|
||||
"email": "",
|
||||
"homepage": ""
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"email": "",
|
||||
"issues": "",
|
||||
"forum": "",
|
||||
"irc": "",
|
||||
"wiki": "",
|
||||
"source": "",
|
||||
"docs": "",
|
||||
"rss": ""
|
||||
},
|
||||
"homepage": "",
|
||||
"license": "GPL v3+",
|
||||
"keywords": []
|
||||
}
|
Reference in New Issue
Block a user