1: <?php
2: /**
3: * Interface that provides an interface which must be implemented by all objects wishing to be
4: * recorded in the system log (and by extension the river).
5: *
6: * This interface defines a set of methods that permit the system log functions to
7: * hook in and retrieve the necessary information and to identify what events can
8: * actually be logged.
9: *
10: * To have events involving your object to be logged simply implement this interface.
11: *
12: * @package Elgg.Core
13: * @subpackage DataModel.Loggable
14: */
15: interface Loggable {
16: /**
17: * Return an identification for the object for storage in the system log.
18: * This id must be an integer.
19: *
20: * @return int
21: */
22: public function getSystemLogID();
23:
24: /**
25: * Return the class name of the object.
26: * Added as a function because get_class causes errors for some reason.
27: *
28: * @return string
29: */
30: public function getClassName();
31:
32: /**
33: * Return the type of the object - eg. object, group, user, relationship, metadata, annotation etc
34: *
35: * @return string
36: */
37: public function getType();
38:
39: /**
40: * Return a subtype. For metadata & annotations this is the 'name' and for relationship this is the
41: * relationship type.
42: *
43: * @return string
44: */
45: public function getSubtype();
46:
47: /**
48: * For a given ID, return the object associated with it.
49: * This is used by the river functionality primarily.
50: * This is useful for checking access permissions etc on objects.
51: *
52: * @param int $id GUID of an entity
53: *
54: * @return ElggEntity
55: */
56: public function getObjectFromID($id);
57:
58: /**
59: * Return the GUID of the owner of this object.
60: *
61: * @return int
62: * @deprecated 1.8 Use getOwnerGUID() instead
63: */
64: public function getObjectOwnerGUID();
65: }
66: