Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
moodle
moodle
Commits
e1b16f97
Commit
e1b16f97
authored
Mar 04, 2014
by
Rajesh Taneja
Browse files
MDL-44017 Events: Deprecated content_viewed event
Replaced content_viewed event with appropriate events and deprecated content_viewed event
parent
0a489777
Changes
35
Hide whitespace changes
Inline
Side-by-side
lib/classes/event/content_viewed.php
View file @
e1b16f97
...
...
@@ -16,8 +16,11 @@
/**
* Abstract event for content viewing.
*
* This class has been deprecated, please extend base event or other relevent abstract class.
*
* @package core
* @copyright 2013 Ankit Agarwal
* @deprecated since Moodle 2.7
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
...
...
@@ -25,28 +28,17 @@ namespace core\event;
defined
(
'MOODLE_INTERNAL'
)
||
die
();
debugging
(
'core\event\content_viewed has been deprecated. Please extend base event or other relevant abstract class.'
,
DEBUG_DEVELOPER
);
/**
* Class content_viewed.
*
* Base class for a content view event. Each plugin must extend this to create their own content view event.
*
* An example usage:-
* $event = \report_participation\event\content_viewed::create(array('courseid' => $course->id,
* 'other' => array('content' => 'participants'));
* $event->set_page_detail();
* $event->set_legacy_logdata(array($course->id, "course", "report participation",
* "report/participation/index.php?id=$course->id", $course->id));
* $event->trigger();
* where \report_participation\event\content_viewed extends \core\event\content_viewed
*
* @property-read array $other {
* Extra information about event.
*
* @type string content viewed content identifier.
* }
* This class has been deprecated, please extend base event or other relevent abstract class.
*
* @package core
* @copyright 2013 Ankit Agarwal
* @deprecated since Moodle 2.7
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
abstract
class
content_viewed
extends
base
{
...
...
lib/classes/event/notes_viewed.php
View file @
e1b16f97
...
...
@@ -31,17 +31,11 @@ defined('MOODLE_INTERNAL') || die();
*
* Class for event to be triggered when a note is viewed.
*
* @property-read array $other {
* Extra information about event.
*
* @type string content hard-coded to notes.
* }
*
* @package core
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
notes_viewed
extends
\
core\event\
content_viewed
{
class
notes_viewed
extends
\
core\event\
base
{
/**
* Set basic properties for the event.
...
...
@@ -66,7 +60,11 @@ class notes_viewed extends \core\event\content_viewed {
* @return string
*/
public
function
get_description
()
{
return
'Note for user with id "'
.
$this
->
relateduserid
.
'" was viewed by user with id "'
.
$this
->
userid
.
'"'
;
if
(
!
empty
(
$this
->
relateduserid
))
{
return
'Note for user with id "'
.
$this
->
relateduserid
.
'" was viewed by user with id "'
.
$this
->
userid
.
'"'
;
}
else
{
return
'Note for course with id "'
.
$this
->
courseid
.
'" was viewed by user with id "'
.
$this
->
userid
.
'"'
;
}
}
/**
...
...
@@ -74,7 +72,7 @@ class notes_viewed extends \core\event\content_viewed {
* @return \moodle_url
*/
public
function
get_url
()
{
return
new
\
moodle_url
(
'/note/index.php'
,
array
(
'course'
=>
$this
->
courseid
,
'user'
=>
$this
->
relateduserid
));
return
new
\
moodle_url
(
'/note
s
/index.php'
,
array
(
'course'
=>
$this
->
courseid
,
'user'
=>
$this
->
relateduserid
));
}
/**
...
...
lib/tests/event_content_viewed_test.php
deleted
100644 → 0
View file @
0a489777
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Tests for base content viewed event.
*
* @package core
* @category phpunit
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
defined
(
'MOODLE_INTERNAL'
)
||
die
();
require_once
(
__DIR__
.
'/fixtures/event_fixtures.php'
);
/**
* Class core_event_page_viewed_testcase
*
* Tests for event \core\event\page_viewed
*/
class
core_event_content_viewed_testcase
extends
advanced_testcase
{
/**
* Set basic page properties.
*/
public
function
setUp
()
{
global
$PAGE
;
// Set page details.
$PAGE
->
set_url
(
'/someurl.php'
);
$PAGE
->
set_pagelayout
(
'somelayout'
);
}
/**
* Test event properties and methods.
*/
public
function
test_event_attributes
()
{
global
$PAGE
;
$this
->
resetAfterTest
();
// Trigger the page view event.
$sink
=
$this
->
redirectEvents
();
$pageevent
=
\
core_tests\event\content_viewed
::
create
(
array
(
'other'
=>
array
(
'content'
=>
'tests'
)));
$pageevent
->
set_page_detail
();
// Set page details.
$legacydata
=
array
(
SITEID
,
'site'
,
'view'
,
'view.php?id='
.
SITEID
,
SITEID
);
$pageevent
->
set_legacy_logdata
(
$legacydata
);
// Set legacy data.
$pageevent
->
trigger
();
$result
=
$sink
->
get_events
();
$event
=
reset
(
$result
);
// Test page details.
$data
=
array
(
'url'
=>
$PAGE
->
url
->
out_as_local_url
(
false
),
'heading'
=>
$PAGE
->
heading
,
'title'
=>
$PAGE
->
title
,
'content'
=>
'tests'
);
$this
->
assertEquals
(
$data
,
$event
->
other
);
// Test legacy stuff.
$this
->
assertEventLegacyLogData
(
$legacydata
,
$event
);
$pageevent
=
\
core_tests\event\content_viewed
::
create
(
array
(
'other'
=>
array
(
'content'
=>
'tests'
)));
$pageevent
->
trigger
();
$result
=
$sink
->
get_events
();
$event
=
$result
[
1
];
$this
->
assertEventLegacyLogData
(
null
,
$event
);
$this
->
assertEventContextNotUsed
(
$event
);
}
/**
* Test custom validations.
*/
public
function
test_event_context_exception
()
{
$this
->
resetAfterTest
();
// Make sure content identifier is always set.
$this
->
setExpectedException
(
'coding_exception'
);
$pageevent
=
\
core_tests\event\content_viewed
::
create
();
$pageevent
->
set_page_detail
();
$pageevent
->
trigger
();
$this
->
assertEventContextNotUsed
(
$pageevent
);
}
}
lib/tests/fixtures/event_fixtures.php
View file @
e1b16f97
...
...
@@ -228,15 +228,6 @@ class noname_event extends \core\event\base {
}
}
/**
* Class content_viewed.
*
* Wrapper for testing \core\event\content_viewed .
*/
class
content_viewed
extends
\
core\event\content_viewed
{
}
/**
* Class course_module_viewed.
*
...
...
lib/upgrade.txt
View file @
e1b16f97
...
...
@@ -9,6 +9,7 @@ DEPRECATIONS:
* $module uses in mod/xxx/version.php files is now deprecated. Please use $plugin instead. It will be removed in Moodle 2.10.
* Update init methods in all event classes - "level" property was renamed to "edulevel", the level property is now deprecated.
* Abstract class \core\event\course_module_instances_list_viewed is deprecated now, use \core\event\instances_list_viewed instead.
* Abstract class core\event\content_viewed has been deprecated. Please extend base event or other relevant abstract class.
* mod_book\event\instances_list_viewed has been deprecated. Please use mod_book\event\course_module_instance_list_viewed instead.
* mod_chat\event\instances_list_viewed has been deprecated. Please use mod_chat\event\course_module_instance_list_viewed instead.
* mod_choice\event\instances_list_viewed has been deprecated. Please use mod_choice\event\course_module_instance_list_viewed instead.
...
...
mod/book/classes/event/chapter_viewed.php
View file @
e1b16f97
...
...
@@ -32,7 +32,7 @@ defined('MOODLE_INTERNAL') || die();
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
chapter_viewed
extends
\
core\event\
content_viewed
{
class
chapter_viewed
extends
\
core\event\
base
{
/**
* Returns description of what happened.
...
...
@@ -81,17 +81,4 @@ class chapter_viewed extends \core\event\content_viewed {
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_PARTICIPATING
;
$this
->
data
[
'objecttable'
]
=
'book_chapters'
;
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
// Hack to please the parent class. 'view chapter' was the key used in old add_to_log().
$this
->
data
[
'other'
][
'content'
]
=
'view chapter'
;
parent
::
validate_data
();
}
}
mod/chat/classes/event/sessions_viewed.php
View file @
e1b16f97
...
...
@@ -28,18 +28,15 @@ defined('MOODLE_INTERNAL') || die();
/**
* mod_chat sessions viewed event class.
*
* @property-read array $other {
* Extra information about event.
*
* @type int start start of period.
* @type int end end of period.
* }
* @property-read array $other Extra information about the event.
* -int start: start of period.
* -int end: end of period.
*
* @package mod_chat
* @copyright 2013 Frédéric Massart
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
sessions_viewed
extends
\
core\event\
content_viewed
{
class
sessions_viewed
extends
\
core\event\
base
{
/**
* Returns description of what happened.
...
...
@@ -96,8 +93,12 @@ class sessions_viewed extends \core\event\content_viewed {
* @return void
*/
protected
function
validate_data
()
{
// The parent class requires this to be non-empty. We are setting it and ignore the parent validation.
$this
->
data
[
'other'
][
'content'
]
=
''
;
if
(
!
isset
(
$this
->
data
[
'other'
][
'start'
]))
{
throw
new
\
coding_exception
(
'The property start must be set in other.'
);
}
if
(
!
isset
(
$this
->
data
[
'other'
][
'end'
]))
{
throw
new
\
coding_exception
(
'The property end must be set in other.'
);
}
}
}
mod/choice/classes/event/report_viewed.php
View file @
e1b16f97
...
...
@@ -28,17 +28,11 @@ defined('MOODLE_INTERNAL') || die();
/**
* Event for when a choice activity report is viewed.
*
* @property-read array $other {
* Extra information about event.
*
* @type string content viewed content identifier.
* }
*
* @package mod_choice
* @copyright 2013 Adrian Greeve
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
report_viewed
extends
\
core\event\
content_viewed
{
class
report_viewed
extends
\
core\event\
base
{
/**
* Init method.
...
...
@@ -58,6 +52,15 @@ class report_viewed extends \core\event\content_viewed {
return
get_string
(
'event_report_viewed'
,
'choice'
);
}
/**
* Returns description of what happened.
*
* @return string
*/
public
function
get_description
()
{
return
"The user with id
$this->userid
has viewed report for choice with instanceid
$this->objectid
"
;
}
/**
* Returns relevant URL.
* @return \moodle_url
...
...
notes/index.php
View file @
e1b16f97
...
...
@@ -71,10 +71,8 @@ $systemcontext = context_system::instance(); // SYSTEM context
// Trigger event.
$event
=
\
core\event\notes_viewed
::
create
(
array
(
'courseid'
=>
$courseid
,
'relateduserid'
=>
$userid
,
'context'
=>
$coursecontext
,
'other'
=>
array
(
'content'
=>
'notes'
)
'context'
=>
$coursecontext
));
$event
->
trigger
();
...
...
report/log/classes/event/report_viewed.php
0 → 100644
View file @
e1b16f97
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Event for when log report is viewed.
*
* @package report_log
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
namespace
report_log\event
;
/**
* Event triggered, when log report is viewed.
*
* @property-read array $other Extra information about the event.
* -int groupid: Group to display.
* -int date: Date to display logs from.
* -int modid: Module id for which logs were displayed.
* -string modaction: Module action.
* -string logformat: Log format in which logs were displayed.
*
* @package report_log
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
report_viewed
extends
\
core\event\base
{
/**
* Init method.
*
* @return void
*/
protected
function
init
()
{
$this
->
data
[
'crud'
]
=
'r'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Return localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventreportviewed'
,
'report_log'
);
}
/**
* Returns description of what happened.
*
* @return string
*/
public
function
get_description
()
{
return
"The user with id "
.
$this
->
userid
.
" viewed log report for course with id "
.
$this
->
courseid
;
}
/**
* Return the legacy event log data.
*
* @return array
*/
protected
function
get_legacy_logdata
()
{
return
array
(
$this
->
courseid
,
"course"
,
"report log"
,
"report/log/index.php?id=
$this->courseid
"
,
$this
->
courseid
);
}
/**
* Returns relevant URL.
*
* @return \moodle_url
*/
public
function
get_url
()
{
return
new
\
moodle_url
(
'report/log/index.php'
,
array
(
'id'
=>
$this
->
courseid
));
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
if
(
!
isset
(
$this
->
data
[
'other'
][
'groupid'
]))
{
throw
new
\
coding_exception
(
'The property groupid must be set in other.'
);
}
if
(
!
isset
(
$this
->
data
[
'other'
][
'date'
]))
{
throw
new
\
coding_exception
(
'The property date must be set in other.'
);
}
if
(
!
isset
(
$this
->
data
[
'other'
][
'modid'
]))
{
throw
new
\
coding_exception
(
'The property modid must be set in other.'
);
}
if
(
!
isset
(
$this
->
data
[
'other'
][
'modaction'
]))
{
throw
new
\
coding_exception
(
'The property modaction must be set in other.'
);
}
if
(
!
isset
(
$this
->
data
[
'other'
][
'logformat'
]))
{
throw
new
\
coding_exception
(
'The property logformat must be set in other.'
);
}
if
(
!
isset
(
$this
->
data
[
'relateduserid'
]))
{
throw
new
\
coding_exception
(
'The property relateduserid must be set.'
);
}
}
}
report/log/classes/event/
conten
t_viewed.php
→
report/log/classes/event/
user_repor
t_viewed.php
View file @
e1b16f97
...
...
@@ -15,7 +15,7 @@
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Event for when
some content in
log report is viewed.
* Event for when
user
log report is viewed.
*
* @package report_log
* @copyright 2013 Ankit Agarwal
...
...
@@ -24,20 +24,54 @@
namespace
report_log\event
;
/**
* Event triggered, when
some content in
log report is viewed.
* Event triggered, when
user
log report is viewed.
*
* @property-read array $other {
* Extra information about event.
*
* @type string content viewed content identifier.
* @type string url (optional) url of report page.
* }
* @property-read array $other Extra information about the event.
* -string mode: display mode.
*
* @package report_log
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class
content_viewed
extends
\
core\event\content_viewed
{
class
user_report_viewed
extends
\
core\event\base
{
/**
* Init method.
*
* @return void
*/
protected
function
init
()
{
$this
->
data
[
'crud'
]
=
'r'
;
$this
->
data
[
'edulevel'
]
=
self
::
LEVEL_OTHER
;
}
/**
* Return localised event name.
*
* @return string
*/
public
static
function
get_name
()
{
return
get_string
(
'eventuserreportviewed'
,
'report_log'
);
}
/**
* Returns description of what happened.
*
* @return string
*/
public
function
get_description
()
{
return
'The user with id '
.
$this
->
userid
.
' viewed user log report for user with id '
.
$this
->
relateduserid
;
}
/**
* Return the legacy event log data.
*
* @return array
*/
protected
function
get_legacy_logdata
()
{
$url
=
'report/log/user.php?id='
.
$this
->
relateduserid
.
'&course='
.
$this
->
courseid
.
'&mode='
.
$this
->
other
[
'mode'
];
return
array
(
$this
->
courseid
,
'course'
,
'report log'
,
$url
,
$this
->
courseid
);
}
/**
* Returns relevant URL.
...
...
@@ -45,10 +79,24 @@ class content_viewed extends \core\event\content_viewed {
* @return \moodle_url
*/
public
function
get_url
()
{
if
(
!
empty
(
$this
->
other
[
'url'
]))
{
return
new
\
moodle_url
(
$this
->
other
[
'url'
]);
return
new
\
moodle_url
(
'report/log/user.php'
,
array
(
'course'
=>
$this
->
courseid
,
'id'
=>
$this
->
relateduserid
,
'mode'
=>
$this
->
other
[
'mode'
]));
}
/**
* Custom validation.
*
* @throws \coding_exception
* @return void
*/
protected
function
validate_data
()
{
if
(
empty
(
$this
->
data
[
'other'
][
'mode'
]))
{
throw
new
\
coding_exception
(
'The property mode must be set in other.'
);
}
if
(
empty
(
$this
->
data
[
'relateduserid'
]))
{
throw
new
\
coding_exception
(
'The property relateduserid must be set.'
);
}
return
new
\
moodle_url
(
'report/log/index.php'
,
array
(
'id'
=>
$this
->
courseid
));
}
}
report/log/graph.php
View file @
e1b16f97
...
...
@@ -67,14 +67,6 @@ if ($type === "userday.png") {
}
}
// Trigger a content view event.
$event
=
\
report_log\event\content_viewed
::
create
(
array
(
'courseid'
=>
$course
->
id
,
'other'
=>
array
(
'content'
=>
'log graph'
)));
$event
->
set_page_detail
();
$event
->
set_legacy_logdata
(
array
(
$course
->
id
,
'course'
,
'report log'
,
"report/log/graph.php?user=
$user->id
&id=
$course->id
&type=
$type
&date=
$date
"
,
$course
->
id
));
$event
->
trigger
();
$logs
=
array
();
$timenow
=
time
();
...
...
report/log/index.php
View file @
e1b16f97
...
...
@@ -115,11 +115,10 @@ $context = context_course::instance($course->id);
require_capability
(
'report/log:view'
,
$context
);
// Trigger a content view event.
$event
=
\
report_log\event\content_viewed
::
create
(
array
(
'courseid'
=>
$course
->
id
,
'other'
=>
array
(
'content'
=>
'logs'
)));
$event
->
set_page_detail
();
$event
->
set_legacy_logdata
(
array
(
$course
->
id
,
"course"
,
"report log"
,
"report/log/index.php?id=
$course->id
"
,
$course
->
id
));
// Trigger a report viewed event.
$event
=
\
report_log\event\report_viewed
::
create
(
array
(
'context'
=>
$context
,
'relateduserid'
=>
$user
,
'other'
=>
array
(
'groupid'
=>
$group
,
'date'
=>
$date
,
'modid'
=>
$modid
,
'modaction'
=>
$modaction
,
'logformat'
=>
$logformat
)));
$event
->
trigger
();
if
(
!
empty
(
$page
))
{
...
...
report/log/lang/en/report_log.php
View file @
e1b16f97
...
...
@@ -24,6 +24,8 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
$string
[
'eventreportviewed'
]
=
'Log report viewed'
;
$string
[
'eventuserreportviewed'
]
=
'User log report viewed'
;
$string
[
'log:view'
]
=
'View course logs'
;
$string
[
'log:viewtoday'
]
=
'View today\'s logs'
;
$string
[
'page'
]
=
'Page {$a}'
;
...
...
report/log/tests/events_test.php
0 → 100644
View file @
e1b16f97
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
/**
* Tests for notes events.
*
* @package core_notes
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/
defined
(
'MOODLE_INTERNAL'
)
||
die
();
/**
* Class core_notes_events_testcase
*
* Class for tests related to notes events.
*
* @package core_notes
* @copyright 2013 Ankit Agarwal
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later.
*/