ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
class.ilTermsOfServiceAcceptanceHistoryProvider.php
Go to the documentation of this file.
1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Services/TermsOfService/classes/class.ilTermsOfServiceTableDatabaseDataProvider.php';
5
11{
17 protected function getSelectPart(array $params, array $filter)
18 {
19 $fields = array(
20 'tos_acceptance_track.tosv_id',
21 'ud.usr_id',
22 'ud.login',
23 'ud.firstname',
24 'ud.lastname',
25 'tos_acceptance_track.ts',
26 'tos_versions.src',
27 'tos_versions.text',
28 'tos_versions.lng'
29 );
30
31 return implode(', ', $fields);
32 }
33
39 protected function getFromPart(array $params, array $filter)
40 {
41 $joins = array(
42 'INNER JOIN tos_acceptance_track ON tos_acceptance_track.usr_id = ud.usr_id',
43 'INNER JOIN tos_versions ON tos_versions.id = tos_acceptance_track.tosv_id',
44 );
45
46 return 'usr_data ud ' . implode(' ', $joins);
47 }
48
54 protected function getWherePart(array $params, array $filter)
55 {
56 $where = array();
57
58 if(isset($filter['query']) && strlen($filter['query']))
59 {
60 $where[] = '(' . implode(' OR ', array(
61 $this->db->like('ud.login', 'text', '%'.$filter['query'].'%'),
62 $this->db->like('ud.firstname', 'text', '%'.$filter['query'].'%'),
63 $this->db->like('ud.lastname', 'text', '%'.$filter['query'].'%'),
64 $this->db->like('ud.email', 'text', '%'.$filter['query'].'%')
65 )) . ')';
66 }
67
68 if(isset($filter['lng']) && strlen($filter['lng']))
69 {
70 $where[] = 'tos_versions.lng = ' . $this->db->quote($filter['lng'], 'text');
71 }
72
73 if(isset($filter['period']) && is_array($filter['period']))
74 {
75 $where[] = '(' . implode(' AND ', array(
76 'tos_acceptance_track.ts >= ' . $this->db->quote($filter['period']['start'], 'integer'),
77 'tos_acceptance_track.ts <= ' . $this->db->quote($filter['period']['end'], 'integer')
78 )) . ')';
79 }
80
81 return implode(' AND ', $where);
82 }
83
89 protected function getGroupByPart(array $params, array $filter)
90 {
91 return '';
92 }
93
99 protected function getHavingPart(array $params, array $filter)
100 {
101 return '';
102 }
103
110 protected function getOrderByPart(array $params, array $filter)
111 {
112 if(isset($params['order_field']))
113 {
114 if(!is_string($params['order_field']))
115 {
116 throw new InvalidArgumentException('Please provide a valid order field.');
117 }
118
119 if(!in_array($params['order_field'], array('lng', 'login', 'firstname', 'lastname', 'src', 'ts')))
120 {
121 throw new InvalidArgumentException('Please provide a valid order field.');
122 }
123
124 if($params['order_field'] == 'ts')
125 {
126 $params['order_field'] = 'tos_acceptance_track.ts';
127 }
128
129 if(!isset($params['order_direction']))
130 {
131 $params['order_direction'] = 'ASC';
132 }
133 else if(!in_array(strtolower($params['order_direction']), array('asc', 'desc')))
134 {
135 throw new InvalidArgumentException('Please provide a valid order direction.');
136 }
137
138 return $params['order_field'] . ' ' . $params['order_direction'];
139 }
140
141 return '';
142 }
143}
$params
Definition: example_049.php:96