ILIAS  release_5-2 Revision v5.2.25-18-g3f80b828510
ilRepositoryObjectPlugin Class Reference

Abstract parent class for all repository object plugin classes. More...

+ Inheritance diagram for ilRepositoryObjectPlugin:
+ Collaboration diagram for ilRepositoryObjectPlugin:

Public Member Functions

 getComponentType ()
 Get Component Type. More...
 
 getComponentName ()
 Get Component Name. More...
 
 getSlot ()
 Get Slot Name. More...
 
 getSlotId ()
 Get Slot ID. More...
 
 getParentTypes ()
 
 allowCopy ()
 decides if this repository plugin can be copied More...
 
- Public Member Functions inherited from ilPlugin
 __construct ()
 
 getComponentType ()
 Get Component Type. More...
 
 getComponentName ()
 Get Component Name. More...
 
 getSlot ()
 Get Slot Name. More...
 
 getSlotId ()
 Get Slot ID. More...
 
 getPluginName ()
 Get Plugin Name. More...
 
 getId ()
 Get Id. More...
 
 getLastUpdateVersion ()
 Get Version of last update. More...
 
 getVersion ()
 Get Current Version (from plugin.php file). More...
 
 getIliasMinVersion ()
 Get Required ILIAS min. More...
 
 getIliasMaxVersion ()
 Get Required ILIAS max. More...
 
 getActive ()
 Get Active. More...
 
 setDBVersion ($a_dbversion)
 Set DB Version. More...
 
 getDBVersion ()
 Get DB Version. More...
 
 writeDBVersion ($a_dbversion)
 Write DB version to database. More...
 
 getDirectory ()
 Get Plugin Directory. More...
 
 includeClass ($a_class_file_name)
 Include (once) a class file. More...
 
 getPrefix ()
 Get plugin prefix, used for lang vars. More...
 
 getTablePrefix ()
 Get db table plugin prefix. More...
 
 updateLanguages ($a_lang_keys=null)
 
 updateDatabase ()
 Update database. More...
 
 loadLanguageModule ()
 Load language module for plugin. More...
 
 txt ($a_var)
 Get Language Variable (prefix will be prepended automatically) More...
 
 getTemplate ($a_template, $a_par1=true, $a_par2=true)
 Get template from plugin. More...
 
 getImagePath ($a_img)
 Get image path. More...
 
 getStyleSheetLocation ($a_css_file)
 Get css file location. More...
 
 addBlockFile ($a_tpl, $a_var, $a_block, $a_tplname)
 Add template content to placeholder variable. More...
 
 isActive ()
 Check whether plugin is active. More...
 
 needsUpdate ()
 Check whether update is needed. More...
 
 activate ()
 Activate. More...
 
 deactivate ()
 Deactivate. More...
 
 uninstall ()
 
 update ()
 Update plugin. More...
 

Static Public Member Functions

static _getIcon ($a_type, $a_size)
 Get Icon. More...
 
static _getName ($a_id)
 Get class name. More...
 
- Static Public Member Functions inherited from ilPlugin
static _getDirectory ($a_ctype, $a_cname, $a_slot_id, $a_pname)
 Get plugin directory. More...
 
static getAvailableLangFiles ($a_lang_directory)
 Get array of all language files in the plugin. More...
 
static hasConfigureClass ($a_slot_dir, $a_name)
 Has the plugin a configure class? More...
 
static getConfigureClassName ($a_name)
 Get plugin configure class name. More...
 
static getDBUpdateScriptName ($a_ctype, $a_cname, $a_slot_name, $a_pname)
 Get DB update script filename (full path) More...
 
static lookupTxt ($a_mod_prefix, $a_pl_id, $a_lang_var)
 Lookup language text. More...
 
static _getImagePath ($a_ctype, $a_cname, $a_slot_id, $a_pname, $a_img)
 Get image path. More...
 
static createPluginRecord ($a_ctype, $a_cname, $a_slot_id, $a_pname)
 
static getPluginRecord ($a_ctype, $a_cname, $a_slot_id, $a_pname)
 Get record from il_plugin table. More...
 
static getPluginObject ($a_ctype, $a_cname, $a_slot_id, $a_pname)
 Get plugin object. More...
 
static lookupStoredData ($a_ctype, $a_cname, $a_slot_id, $a_pname)
 Lookup information data in il_plugin. More...
 
static getActivePluginsForSlot ($a_ctype, $a_cname, $a_slot_id)
 Get all active plugin names for a slot. More...
 
static getActivePluginIdsForSlot ($a_ctype, $a_cname, $a_slot_id)
 Get All active plugin ids for a slot. More...
 
static lookupNameForId ($a_ctype, $a_cname, $a_slot_id, $a_plugin_id)
 Lookup name for id. More...
 
static lookupIdForName ($a_ctype, $a_cname, $a_slot_id, $a_plugin_name)
 Lookup id for name. More...
 

Protected Member Functions

 slotInit ()
 Object initialization done by slot. More...
 
 beforeActivation ()
 Before activation processing. More...
 
 beforeUninstallCustom ()
 
 uninstallCustom ()
 
 beforeUninstall ()
 
- Protected Member Functions inherited from ilPlugin
 setSlotObject ($a_slot)
 Set Plugin Slot. More...
 
 getSlotObject ()
 Get Plugin Slot. More...
 
 getClassesDirectory ()
 Get Plugin's classes Directory. More...
 
 getLanguageDirectory ()
 Get Plugin's language Directory. More...
 
 slotInit ()
 Object initialization done by slot. More...
 
 init ()
 Object initialization. More...
 
 beforeActivation ()
 Before activation processing. More...
 
 afterActivation ()
 After activation processing. More...
 
 afterDeactivation ()
 After deactivation processing. More...
 
 beforeUninstall ()
 
 afterUninstall ()
 
 beforeUpdate ()
 Before update processing. More...
 
 afterUpdate ()
 After update processing. More...
 

Additional Inherited Members

- Protected Attributes inherited from ilPlugin
 $lang_initialised = false
 
 $id = ''
 

Detailed Description

Abstract parent class for all repository object plugin classes.

Author
Alex Killing alex..nosp@m.kill.nosp@m.ing@g.nosp@m.mx.d.nosp@m.e
Version
$Id$

Definition at line 13 of file class.ilRepositoryObjectPlugin.php.

Member Function Documentation

◆ _getIcon()

static ilRepositoryObjectPlugin::_getIcon (   $a_type,
  $a_size 
)
static

Get Icon.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 66 of file class.ilRepositoryObjectPlugin.php.

67 {
68 return ilPlugin::_getImagePath(IL_COMP_SERVICE, "Repository", "robj",
70 "icon_".$a_type.".svg");
71 }
const IL_COMP_SERVICE
static _getImagePath($a_ctype, $a_cname, $a_slot_id, $a_pname, $a_img)
Get image path.
static lookupNameForId($a_ctype, $a_cname, $a_slot_id, $a_plugin_id)
Lookup name for id.
$a_type
Definition: workflow.php:93

References $a_type, ilPlugin\_getImagePath(), IL_COMP_SERVICE, and ilPlugin\lookupNameForId().

+ Here is the call graph for this function:

◆ _getName()

static ilRepositoryObjectPlugin::_getName (   $a_id)
static

Get class name.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 76 of file class.ilRepositoryObjectPlugin.php.

77 {
78 $name = ilPlugin::lookupNameForId(IL_COMP_SERVICE, "Repository", "robj",$a_id);
79 if ($name != "")
80 {
81 return $name;
82 }
83 }

References IL_COMP_SERVICE, and ilPlugin\lookupNameForId().

+ Here is the call graph for this function:

◆ allowCopy()

ilRepositoryObjectPlugin::allowCopy ( )

decides if this repository plugin can be copied

Returns
bool

Definition at line 239 of file class.ilRepositoryObjectPlugin.php.

240 {
241 return false;
242 }

Referenced by beforeActivation().

+ Here is the caller graph for this function:

◆ beforeActivation()

ilRepositoryObjectPlugin::beforeActivation ( )
protected

Before activation processing.

Reimplemented from ilPlugin.

Definition at line 88 of file class.ilRepositoryObjectPlugin.php.

89 {
90 global $lng, $ilDB;
91
92 // before activating, we ensure, that the type exists in the ILIAS
93 // object database and that all permissions exist
94 $type = $this->getId();
95
96 if (substr($type, 0, 1) != "x")
97 {
98 throw new ilPluginException("Object plugin type must start with an x. Current type is ".$type.".");
99 }
100
101 // check whether type exists in object data, if not, create the type
102 $set = $ilDB->query("SELECT * FROM object_data ".
103 " WHERE type = ".$ilDB->quote("typ", "text").
104 " AND title = ".$ilDB->quote($type, "text")
105 );
106 if ($rec = $ilDB->fetchAssoc($set))
107 {
108 $t_id = $rec["obj_id"];
109 }
110 else
111 {
112 $t_id = $ilDB->nextId("object_data");
113 $ilDB->manipulate("INSERT INTO object_data ".
114 "(obj_id, type, title, description, owner, create_date, last_update) VALUES (".
115 $ilDB->quote($t_id, "integer").",".
116 $ilDB->quote("typ", "text").",".
117 $ilDB->quote($type, "text").",".
118 $ilDB->quote("Plugin ".$this->getPluginName(), "text").",".
119 $ilDB->quote(-1, "integer").",".
120 $ilDB->quote(ilUtil::now(), "timestamp").",".
121 $ilDB->quote(ilUtil::now(), "timestamp").
122 ")");
123 }
124
125 // add rbac operations
126 // 1: edit_permissions, 2: visible, 3: read, 4:write, 6:delete
127 $ops = array(1, 2, 3, 4, 6);
128 if ($this->allowCopy())
129 {
131 }
132 foreach ($ops as $op)
133 {
134 // check whether type exists in object data, if not, create the type
135 $set = $ilDB->query("SELECT * FROM rbac_ta ".
136 " WHERE typ_id = ".$ilDB->quote($t_id, "integer").
137 " AND ops_id = ".$ilDB->quote($op, "integer")
138 );
139 if (!$ilDB->fetchAssoc($set))
140 {
141 $ilDB->manipulate("INSERT INTO rbac_ta ".
142 "(typ_id, ops_id) VALUES (".
143 $ilDB->quote($t_id, "integer").",".
144 $ilDB->quote($op, "integer").
145 ")");
146 }
147 }
148
149 // now add creation permission, if not existing
150 $set = $ilDB->query("SELECT * FROM rbac_operations ".
151 " WHERE class = ".$ilDB->quote("create", "text").
152 " AND operation = ".$ilDB->quote("create_".$type, "text")
153 );
154 if ($rec = $ilDB->fetchAssoc($set))
155 {
156 $create_ops_id = $rec["ops_id"];
157 }
158 else
159 {
160 $create_ops_id = $ilDB->nextId(rbac_operations);
161 $ilDB->manipulate("INSERT INTO rbac_operations ".
162 "(ops_id, operation, description, class) VALUES (".
163 $ilDB->quote($create_ops_id, "integer").",".
164 $ilDB->quote("create_".$type, "text").",".
165 $ilDB->quote("create ".$type, "text").",".
166 $ilDB->quote("create", "text").
167 ")");
168 }
169
170 // assign creation operation to root, cat, crs, grp and fold
171 $par_types = $this->getParentTypes();
172 foreach ($par_types as $par_type)
173 {
174 $set = $ilDB->query("SELECT obj_id FROM object_data ".
175 " WHERE type = ".$ilDB->quote("typ", "text").
176 " AND title = ".$ilDB->quote($par_type, "text")
177 );
178 if ($rec = $ilDB->fetchAssoc($set))
179 {
180 if ($rec["obj_id"] > 0)
181 {
182 $set = $ilDB->query("SELECT * FROM rbac_ta ".
183 " WHERE typ_id = ".$ilDB->quote($rec["obj_id"], "integer").
184 " AND ops_id = ".$ilDB->quote($create_ops_id, "integer")
185 );
186 if (!$ilDB->fetchAssoc($set))
187 {
188 $ilDB->manipulate("INSERT INTO rbac_ta ".
189 "(typ_id, ops_id) VALUES (".
190 $ilDB->quote($rec["obj_id"], "integer").",".
191 $ilDB->quote($create_ops_id, "integer").
192 ")");
193 }
194 }
195 }
196 }
197
198 return true;
199 }
getId()
Get Id.
static _getOperationIdByName($a_operation)
get operation id by name of operation @access public @access static
allowCopy()
decides if this repository plugin can be copied
static now()
Return current timestamp in Y-m-d H:i:s format.
global $lng
Definition: privfeed.php:17
global $ilDB

References $ilDB, $lng, ilRbacReview\_getOperationIdByName(), allowCopy(), ilPlugin\getId(), getParentTypes(), and ilUtil\now().

+ Here is the call graph for this function:

◆ beforeUninstall()

ilRepositoryObjectPlugin::beforeUninstall ( )
finalprotected

Reimplemented from ilPlugin.

Definition at line 210 of file class.ilRepositoryObjectPlugin.php.

211 {
212 if($this->beforeUninstallCustom())
213 {
214 include_once "Services/Repository/classes/class.ilRepUtil.php";
215 $rep_util = new ilRepUtil();
216 $rep_util->deleteObjectType($this->getId());
217
218 // custom database tables may be needed by plugin repository object
219 $this->uninstallCustom();
220
221 return true;
222 }
223 return false;
224 }
Repository Utilities (application layer, put GUI related stuff into ilRepUtilGUI)

References beforeUninstallCustom(), ilPlugin\getId(), and uninstallCustom().

+ Here is the call graph for this function:

◆ beforeUninstallCustom()

ilRepositoryObjectPlugin::beforeUninstallCustom ( )
protected

Definition at line 201 of file class.ilRepositoryObjectPlugin.php.

202 {
203 // plugin-specific
204 // false would indicate that anything went wrong
205 return true;
206 }

Referenced by beforeUninstall().

+ Here is the caller graph for this function:

◆ getComponentName()

ilRepositoryObjectPlugin::getComponentName ( )

Get Component Name.

Returns
string Component Name

Reimplemented from ilPlugin.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 30 of file class.ilRepositoryObjectPlugin.php.

31 {
32 return "Repository";
33 }

◆ getComponentType()

ilRepositoryObjectPlugin::getComponentType ( )

Get Component Type.

Returns
string Component Type

Reimplemented from ilPlugin.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 20 of file class.ilRepositoryObjectPlugin.php.

21 {
22 return IL_COMP_SERVICE;
23 }

References IL_COMP_SERVICE.

◆ getParentTypes()

ilRepositoryObjectPlugin::getParentTypes ( )
Returns
string[]

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 229 of file class.ilRepositoryObjectPlugin.php.

229 {
230 $par_types = array("root", "cat", "crs", "grp", "fold");
231 return $par_types;
232 }

Referenced by beforeActivation().

+ Here is the caller graph for this function:

◆ getSlot()

ilRepositoryObjectPlugin::getSlot ( )

Get Slot Name.

Returns
string Slot Name

Reimplemented from ilPlugin.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 40 of file class.ilRepositoryObjectPlugin.php.

41 {
42 return "RepositoryObject";
43 }

◆ getSlotId()

ilRepositoryObjectPlugin::getSlotId ( )

Get Slot ID.

Returns
string Slot Id

Reimplemented from ilPlugin.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 50 of file class.ilRepositoryObjectPlugin.php.

51 {
52 return "robj";
53 }

◆ slotInit()

ilRepositoryObjectPlugin::slotInit ( )
protected

Object initialization done by slot.

Reimplemented from ilPlugin.

Reimplemented in ilOrgUnitExtensionPlugin.

Definition at line 58 of file class.ilRepositoryObjectPlugin.php.

59 {
60 // nothing to do here
61 }

◆ uninstallCustom()

ilRepositoryObjectPlugin::uninstallCustom ( )
abstractprotected

Referenced by beforeUninstall().

+ Here is the caller graph for this function:

The documentation for this class was generated from the following file: