27require_once
"./Services/Object/classes/class.ilObject.php";
139 $this->db =
$DIC->database();
140 $this->log =
$DIC[
"ilLog"];
141 $this->access =
$DIC->access();
142 $this->
error = $DIC[
"ilErr"];
143 $this->rbacsystem =
$DIC->rbac()->system();
144 $this->tree =
$DIC->repositoryTree();
145 $this->
user = $DIC->user();
146 $this->obj_definition =
$DIC[
"objDefinition"];
147 $this->news =
$DIC->news();
150 $this->setting =
$DIC[
"ilSetting"];
152 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
154 if ($this->
getId() > 0) {
185 $cont_dir = $webspace_dir .
"/container_data";
186 if (!is_dir($cont_dir)) {
189 $obj_dir = $cont_dir .
"/obj_" . $this->
getId();
190 if (!is_dir($obj_dir)) {
222 $this->hiddenfilesfound = $a_hiddenfilesfound;
240 return $this->style_id;
248 $this->style_id = $a_style_id;
258 $this->news_timeline = $a_val;
278 $this->news_timeline_auto_entries = $a_val;
298 $this->news_timeline_landing_page = $a_val;
308 return $this->news_timeline_landing_page;
318 if (!$this->news->isGloballyActivated()) {
354 $this->news_block_activated = $a_val;
364 return $this->news_block_activated;
374 $this->use_news = $a_val;
384 return $this->use_news;
401 $q =
"SELECT * FROM container_settings WHERE " .
402 " id = " .
$ilDB->quote($a_id,
'integer') .
" AND " .
403 " keyword = " .
$ilDB->quote($a_keyword,
'text');
404 $set =
$ilDB->query($q);
407 if (isset($rec[
'value'])) {
408 return $rec[
"value"];
410 if ($a_default_value ===
null) {
413 return $a_default_value;
427 $query =
"DELETE FROM container_settings WHERE " .
428 "id = " .
$ilDB->quote($a_id,
'integer') .
" " .
429 "AND keyword = " .
$ilDB->quote($a_keyword,
'text');
433 $log->debug(
"Write container setting, id: " . $a_id .
", keyword: " . $a_keyword .
", value: " . $a_value);
435 $query =
"INSERT INTO container_settings (id, keyword, value) VALUES (" .
436 $ilDB->quote($a_id,
'integer') .
", " .
437 $ilDB->quote($a_keyword,
'text') .
", " .
438 $ilDB->quote($a_value,
'text') .
452 $sql =
"SELECT * FROM container_settings WHERE " .
453 " id = " .
$ilDB->quote($a_id,
'integer');
454 $set =
$ilDB->query($sql);
455 while ($row =
$ilDB->fetchAssoc($set)) {
456 $res[$row[
"keyword"]] = $row[
"value"];
472 $sql =
"DELETE FROM container_settings WHERE " .
473 " id = " .
$ilDB->quote($a_id,
'integer');
475 if (!$a_keyword_like) {
476 $sql .=
" AND keyword = " .
$ilDB->quote($a_keyword,
"text");
478 $sql .=
" AND " .
$ilDB->like(
"keyword",
"text", $a_keyword);
481 $ilDB->manipulate($sql);
488 if (
sizeof($settings)) {
491 foreach ($settings as $keyword => $value) {
493 if (stristr($keyword,
"icon")) {
520 public function cloneObject($a_target_id, $a_copy_id = 0, $a_omit_tree =
false)
523 $new_obj = parent::cloneObject($a_target_id, $a_copy_id, $a_omit_tree);
526 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
528 $ot->copy($new_obj->getId());
530 include_once(
'./Services/Container/classes/class.ilContainerSortingSettings.php');
531 #18624 - copy all sorting settings
535 include_once(
"./Services/Container/classes/class.ilContainerPage.php");
541 $orig_page->copy($new_obj->getId(),
"cont", $new_obj->getId());
545 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
550 $new_id = $style_obj->ilClone();
551 $new_obj->setStyleSheetId($new_id);
560 include_once(
"./Services/Container/classes/class.ilContainerStartObjectsPage.php");
566 $orig_page->copy($new_obj->getId(),
"cstr", $new_obj->getId());
570 foreach (self::_getContainerSettings($this->
getId()) as $keyword => $value) {
581 $mom_noti->cloneSettings($new_obj->getRefId());
598 parent::cloneDependencies($a_target_id, $a_copy_id);
600 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
604 ilContainer::fixInternalLinksAfterCopy($a_target_id, $a_copy_id, $this->
getRefId());
607 include_once(
"./Modules/ItemGroup/classes/class.ilObjItemGroup.php");
610 include_once(
'Services/Object/classes/class.ilObjectLP.php');
612 $collection = $olp->getCollectionInstance();
614 $collection->cloneCollection($a_target_id, $a_copy_id);
638 include_once(
'./Services/Link/classes/class.ilLink.php');
639 include_once(
'Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
650 $wizard_options->saveOwner(
$ilUser->getId());
651 $wizard_options->saveRoot($clone_source);
654 $wizard_options->initContainer($clone_source,
$ref_id);
656 foreach ($options as $source_id => $option) {
657 $wizard_options->addEntry($source_id, $option);
659 $wizard_options->read();
660 $wizard_options->storeTree($clone_source);
662 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
666 $wizard_options->read();
667 $wizard_options->dropFirstNode();
668 $wizard_options->appendMapping($clone_source,
$ref_id);
676 include_once
'Services/WebServices/SOAP/classes/class.ilSoapClient.php';
679 $soap_client->setResponseTimeout($soap_client->getResponseTimeout());
680 $soap_client->enableWSDL(
true);
682 $ilLog->write(__METHOD__ .
': Trying to call Soap client...');
683 if ($soap_client->init()) {
685 $res = $soap_client->call(
'ilClone', array($new_session_id .
'::' .
$client_id, $copy_id));
688 $wizard_options->disableSOAP();
689 $wizard_options->read();
690 include_once(
'./webservice/soap/include/inc.soap_functions.php');
694 'copy_id' => $copy_id,
695 'ref_id' => (
int)
$res
704 public function delete()
707 if (!parent::delete()) {
711 $this->obj_trans->delete();
734 $this->order_type = $a_value;
746 $id = get_class($class_provider);
747 $current = $repo->getValueForProvider(
$id);
777 $objects =
$tree->getSubTree(
$tree->getNodeData($this->getRefId()));
793 $a_admin_panel_enabled =
false,
794 $a_include_side_block =
false,
801 if (is_array($this->items[(
int) $a_admin_panel_enabled][(
int) $a_include_side_block]) &&
803 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
813 $id = get_class($class_provider);
814 $current = $repo->getValueForProvider(
$id);
816 $class_provider->setSelection($current);
817 $filtered = $class_provider->getFilteredObjects();
818 $objects = array_filter($objects,
function (
$i) use ($filtered) {
819 return (is_array($filtered) && in_array(
$i[
"obj_id"], $filtered));
831 $all_ref_ids = array();
833 if (!self::$data_preloaded) {
834 include_once(
"./Services/Object/classes/class.ilObjectListGUIPreloader.php");
838 include_once(
'Services/Container/classes/class.ilContainerSorting.php');
843 include_once
'./Modules/Session/classes/class.ilEventItems.php';
847 foreach ($objects as $key => $object) {
848 if ($a_get_single > 0 && $object[
"child"] != $a_get_single) {
853 if (
$objDefinition->getDevMode($object[
"type"]) || $object[
"type"] ==
"adm"
854 || $object[
"type"] ==
"rolf") {
864 if (in_array($object[
'type'], array(
'file',
'fold',
'cat'))) {
865 include_once
'Modules/File/classes/class.ilObjFileAccess.php';
868 if (!$a_admin_panel_enabled) {
876 if (!self::$data_preloaded) {
877 $preloader->addItem($object[
"obj_id"], $object[
"type"], $object[
"child"]);
887 if (!$a_include_side_block &&
$objDefinition->isSideBlock($object[
'type'])) {
891 $all_ref_ids[] = $object[
"child"];
895 if (!self::$data_preloaded) {
896 $preloader->preload();
899 self::$data_preloaded =
true;
902 foreach ($objects as $key => $object) {
904 if (!in_array($object[
"child"], $all_ref_ids)) {
911 $type = $object[
"type"];
917 $this->items[
$type][$key] = $object;
919 $this->items[
"_all"][$key] = $object;
920 if ($object[
"type"] !=
"sess") {
921 $this->items[
"_non_sess"][$key] = $object;
924 $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block]
925 = $sort->sortItems($this->items);
927 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
935 if (is_array($this->items[
"_all"]) && count($this->items[
"_all"]) > 0) {
958 if (empty($this->type_grps)) {
961 return $this->type_grps;
972 if (
$ilSetting->get(
"enable_cat_page_edit")) {
986 $ret = parent::create();
995 $lng->getDefaultLanguage(),
1000 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1005 $log->debug(
"Create Container, id: " . $this->
getId());
1010 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
1022 parent::putInTree($a_parent_ref);
1025 if (self::_lookupContainerSetting(
ilObject::_lookupObjId($a_parent_ref),
"hide_header_icon_and_title")) {
1038 $ret = parent::update();
1041 $trans->setDefaultTitle($this->
getTitle());
1045 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1049 $log->debug(
"Update Container, id: " . $this->
getId());
1054 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
1073 include_once(
"./Services/Container/classes/class.ilContainerSortingSettings.php");
1076 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1094 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
1098 $this->setting->get(
'block_activated_news',
true)
1102 && $this->news->isGloballyActivated()
1119 $ilObjDataCache =
$DIC[
"ilObjDataCache"];
1121 $short_desc =
$ilSetting->get(
"rep_shorten_description");
1122 $short_desc_max_length =
$ilSetting->get(
"rep_shorten_description_length");
1123 if (!$short_desc || $short_desc_max_length > 0) {
1126 foreach ($objects as $key => $object) {
1127 $objects[$key][
"description"] =
ilUtil::shortenText($object[
"description"], $short_desc_max_length,
true);
1133 foreach ($objects as $key => $object) {
1134 $obj_ids[] = $object[
"obj_id"];
1136 if (
sizeof($obj_ids)) {
1138 foreach ($objects as $key => $object) {
1140 if ($ilObjDataCache->isTranslatedDescription($object[
"obj_id"])) {
1141 $long_desc[$object[
"obj_id"]] = $object[
"description"];
1143 if ($short_desc && $short_desc_max_length) {
1146 $objects[$key][
"description"] =
$long_desc[$object[
"obj_id"]];
1160 protected static function fixInternalLinksAfterCopy($a_target_id, $a_copy_id, $a_source_ref_id)
1168 include_once(
"./Services/Container/classes/class.ilContainerPage.php");
1170 include_once(
"./Services/CopyWizard/classes/class.ilCopyWizardOptions.php");
1172 $mapping = $cwo->getMappings();
1176 $pg->handleRepositoryLinksOnCopy($mapping, $a_source_ref_id);
1177 $pg->update(
true,
true);
1180 foreach ($mapping as $old_ref_id => $new_ref_id) {
1181 if (!is_numeric($old_ref_id) || !is_numeric($new_ref_id)) {
1188 $file = $loc .
'/class.' . $class .
'.php';
1190 if (is_file($file)) {
1192 $coll =
new $class();
1197 $page->handleRepositoryLinksOnCopy($mapping, $a_source_ref_id);
1198 $page->update(
true,
true);
1210 $this->obj_trans->delete();
1220 $this->obj_trans->removeLanguage($a_lang);
1221 $this->obj_trans->save();
1235 if (empty($a_title)) {
1236 $a_title =
"NO TITLE";
1239 $this->obj_trans->addLanguage($a_lang, $a_title, $a_desc, $a_lang_default,
true);
1240 $this->obj_trans->save();
1261 if (is_null($container_user_filter)) {
1270 $obj_ids = array_map(
function (
$i) {
1271 return $i[
"obj_id"];
1273 $filter_data = $container_user_filter->getData();
1274 if (is_array($filter_data)) {
1275 foreach ($filter_data as $key => $val) {
1276 if (count($obj_ids) == 0) {
1279 if (!in_array(substr($key, 0, 4), [
"adv_",
"std_"])) {
1285 $field_id = substr($key, 4);
1288 if (substr($key, 0, 4) ==
"std_") {
1293 "SELECT obj_id FROM object_data " .
1294 " WHERE " .
$db->in(
"obj_id", $obj_ids,
false,
"integer") .
1299 $result_obj_ids = [];
1300 while ($rec =
$db->fetchAssoc($set)) {
1301 $result_obj_ids[] = $rec[
"obj_id"];
1303 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1305 if (in_array($val, [1, 2])) {
1306 $online_where = ($val == 1)
1307 ?
" (offline <> " .
$db->quote(1,
"integer") .
" OR offline IS NULL) "
1308 :
" offline = " .
$db->quote(1,
"integer") .
" ";
1311 "SELECT obj_id FROM object_data " .
1312 " WHERE " .
$db->in(
"obj_id", $obj_ids,
false,
"integer") .
1313 " AND " . $online_where,
1317 $result_obj_ids = [];
1318 while ($rec =
$db->fetchAssoc($set)) {
1319 $result_obj_ids[] = $rec[
"obj_id"];
1321 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1327 "SELECT DISTINCT(obj_id) FROM obj_members m JOIN usr_data u ON (u.usr_id = m.usr_id) " .
1328 " WHERE " .
$db->in(
"m.obj_id", $obj_ids,
false,
"integer") .
1329 " AND " .
$db->like(
"u.lastname",
"text", $val) .
1330 " AND m.contact = %s",
1334 $result_obj_ids = [];
1335 while ($rec =
$db->fetchAssoc($set)) {
1336 $result_obj_ids[] = $rec[
"obj_id"];
1338 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1342 "SELECT DISTINCT(rbac_id) FROM il_meta_rights " .
1343 " WHERE " .
$db->in(
"rbac_id", $obj_ids,
false,
"integer") .
1344 " AND description = %s ",
1346 array(
'il_copyright_entry__' .
IL_INST_ID .
'__' . $val)
1348 $result_obj_ids = [];
1349 while ($rec =
$db->fetchAssoc($set)) {
1350 $result_obj_ids[] = $rec[
"rbac_id"];
1352 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1354 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
1355 include_once
'Services/Search/classes/class.ilQueryParser.php';
1357 #$query_parser->setCombination($this->options['title_ao']);
1359 $query_parser->parse();
1363 switch ($field_id) {
1367 $meta_search->setMode(
'title_description');
1370 $meta_search->setMode(
'keyword_all');
1373 $meta_search->setMode(
'contribute');
1378 $result = $meta_search->performSearch();
1384 $field->getADTDefinition(),
1388 $field_form->setElementId(
"query[" . $key .
"]");
1389 $field_form->validate();
1402 $field_form->getADT()->setSelections([$val - 1]);
1405 $adt = $field_form->getADT();
1407 $field_form->getADT()->setSelections([$val - 1]);
1409 $field_form->getADT()->setSelection($val - 1);
1413 $field_form->getADT()->setNumber((
int) $val);
1416 include_once
'Services/Search/classes/class.ilQueryParser.php';
1417 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
1420 $adv_md_search->setDefinition($field);
1421 $adv_md_search->setIdFilter(array(0));
1422 $adv_md_search->setSearchElement($field_form);
1423 $result = $adv_md_search->performSearch();
1428 $result_obj_ids = array_map(
1430 return $i[
"obj_id"];
1434 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1438 $objects = array_filter($objects,
function ($o) use ($obj_ids) {
1439 return in_array($o[
"obj_id"], $obj_ids);
1457 $legacy_types = [
"glo",
"wiki",
"qpl",
"book",
"dcl",
"prtt"];
1458 foreach ($legacy_types as
$type) {
1459 $lobjects = array_filter($objects,
function ($o) use (
$type) {
1460 return ($o[
"type"] ==
$type);
1462 $lobj_ids = array_map(
function (
$i) {
1463 return $i[
"obj_id"];
1477 foreach ($lobj_ids as $lid) {
1483 foreach ($lobj_ids as $lid) {
1491 foreach ($status as $obj_id => $online) {
1492 if ($val == 1 && !$online || $val == 2 && $online) {
1493 if (($key = array_search($obj_id, $obj_ids)) !==
false) {
1494 unset($obj_ids[$key]);
1496 } elseif (!in_array($obj_id, $obj_ids)) {
1497 $obj_ids[] = $obj_id;
An exception for terminatinating execution or to throw for unit testing.
error($a_errmsg)
set error message @access public
static getInstance()
Get singleton.
static getInstance($a_field_id, $a_type=null, string $language='')
Get definition instance by type.
static cloneSettingsOfBlock(string $block_type, int $block_id, int $new_block_id)
Clone block settings.
static getValidProviders($a_parent_ref_id, $a_parent_obj_id, $a_parent_obj_type)
Get all valid providers (for parent container)
Repos for classification session data.
const STD_FIELD_TUTORIAL_SUPPORT
const STD_FIELD_DESCRIPTION
const STD_FIELD_OBJECT_TYPE
const STD_FIELD_TITLE_DESCRIPTION
const STD_FIELD_COPYRIGHT
static _cloneSettings($a_old_id, $a_new_id)
Clone settings.
static _lookupSortMode($a_obj_id)
lookup sort mode
static _getInstance($a_obj_id)
get instance by obj_id
Container start objects page object.
setNewsTimeline($a_val)
Set news timeline.
isClassificationFilterActive()
Is classification filter active?
setObjectTranslation(ilObjectTranslation $obj_trans)
Get object translation.
const SORT_DIRECTION_DESC
deleteTranslation($a_lang)
Delete translation.
setNewsTimelineLandingPage($a_val)
Set news timline is landing page.
cloneDependencies($a_target_id, $a_copy_id)
Clone object dependencies (container sorting)
putInTree($a_parent_ref)
maybe this method should be in tree object!?role/rbac stuff
legacyOnlineFilter($obj_ids, $objects, $val)
Legacy online filter.
getGroupedObjTypes()
Get grouped repository object types.
cloneAllObject($session_id, $client_id, $new_type, $ref_id, $clone_source, $options, $soap_call=false, $a_submode=1)
clone all objects according to this container
getNewsTimeline()
Get news timeline.
getStyleSheetId()
get ID of assigned style sheet object
static _lookupContainerSetting($a_id, $a_keyword, $a_default_value=null)
Lookup a container setting.
static _exportContainerSettings(ilXmlWriter $a_xml, $a_obj_id)
static getCompleteDescriptions(array $objects)
overwrites description fields to long or short description in an assoc array keys needed (obj_id and ...
getNewsTimelineLandingPage()
Get news timline is landing page.
static _deleteContainerSettings($a_id, $a_keyword=null, $a_keyword_like=false)
const SORT_NEW_ITEMS_ORDER_ACTIVATION
getInitialSubitems()
Get initial subitems.
$news_timeline_auto_entries
getContainerDirectory()
Get the container directory.
createContainerDirectory()
Create directory for the container.
setHiddenFilesFound($a_hiddenfilesfound)
Set Found hidden files (set by getSubItems).
applyContainerUserFilter($objects, ilContainerUserFilter $container_user_filter=null)
Apply container user filter on objects.
addTranslation($a_title, $a_desc, $a_lang, $a_lang_default)
Add translation.
addAdditionalSubItemInformation(&$object)
Add additional information to sub item, e.g.
getSubItems( $a_admin_panel_enabled=false, $a_include_side_block=false, $a_get_single=0, \ilContainerUserFilter $container_user_filter=null)
Get subitems of container.
filteredSubtree()
Note grp/crs currently allow to filter in their whole subtrees Catetories only their direct childs.
static _getContainerSettings($a_id)
const SORT_NEW_ITEMS_ORDER_TITLE
getHiddenFilesFound()
Get Found hidden files (set by getSubItems).
setStyleSheetId($a_style_id)
set ID of assigned style sheet object
const SORT_NEW_ITEMS_ORDER_CREATION
static _getContainerDirectory($a_id)
Get the container directory.
static _writeContainerSetting($a_id, $a_keyword, $a_value)
const SORT_NEW_ITEMS_POSITION_BOTTOM
$recommended_content_manager
getObjectTranslation()
Get object translation.
__construct($a_id=0, $a_reference=true)
Constructor @access public.
setNewsBlockActivated($a_val)
Set news block activated.
setUseNews($a_val)
Set use news.
getOrderType()
Get order type default implementation.
setNewsTimelineAutoEntries($a_val)
Set news timeline auto entries.
const SORT_NEW_ITEMS_POSITION_TOP
getNewsBlockActivated()
Get news block activated.
gotItems()
Check whether we got any items.
getNewsTimelineAutoEntries()
Get news timeline auto entries.
removeTranslations()
Remove all translations of container.
getViewMode()
Get container view mode.
enablePageEditing()
Check whether page editing is allowed for container.
getUseNews()
Get use news.
isNewsTimelineEffective()
Is news timeline effective?
isNewsTimelineLandingPageEffective()
Is news timeline landing page effective?
readContainerSettings()
Read container settings.
static _allocateCopyId()
Allocate a copy for further entries.
static _getInstance($a_copy_id)
Get instance of copy wizard options.
static getLogger($a_component_id)
Get component logger.
Membership notification settings.
static _lookupOnlineStatus($a_ids)
Check wether booking pool is online (legacy version)
static _lookupOnline($a_id)
Check wether datacollection is online.
static _isFileHidden($a_file_name)
Returns true, if a file with the specified name, is usually hidden from the user.
static _lookupOnlineStatus($a_ids)
Check wether learning module is online (legacy version)
static fixContainerItemGroupRefsAfterCloning($a_source_container, $a_copy_id)
Fix container item group references after a container has been cloned.
static _lookupOnlineStatus($a_ids)
Check wether booking pool is online (legacy version)
static isOnline($a_obj_id)
returns the objects's ONline status
static _lookupStandard($a_id)
Lookup standard flag.
static lookupObjectStyle($a_obj_id)
Lookup object style.
static writeStyleUsage($a_obj_id, $a_style_id)
Write style usage.
static _lookupOnlineStatus($a_ids)
Check wether learning module is online (legacy version)
const SUBMODE_CONTENT_ONLY
static getInstanceByObjId($a_obj_id, $stop_on_error=true)
get an instance of an Ilias object by object id
static getInstance($a_obj_id)
Preloader for object list GUIs.
static _getAdvancedMDSearchInstance($query_parser)
get advanced meta data search instance
static _getAdvancedSearchInstance($query_parser)
get reference of ilFulltextAdvancedSearch
Class handles translation mode for an object.
static getInstance($a_obj_id)
Get instance.
Class ilObject Basic functions for all objects.
getType()
get object type @access public
static _lookupObjId($a_id)
getRefId()
get reference id @access public
getLongDescription()
get object long description (stored in object_description)
getDescription()
get object description
getId()
get object id @access public
static getLongDescriptions(array $a_obj_ids)
Get long description data.
static _lookupType($a_id, $a_reference=false)
lookup object type
getTitle()
get object title @access public
static getInstance($a_parent_type, $a_id=0, $a_old_nr=0, $a_lang="-")
Get page object instance.
static _exists($a_parent_type, $a_id, $a_lang="", $a_no_cache=false)
Checks whether page exists.
Recommended content manager (business logic)
static _duplicate($a_session_id)
Duplicate session.
static ilClone($sid, $copy_identifier)
static getWebspaceDir($mode="filesystem")
get webspace directory
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
static shortenText( $a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...
xmlEndTag($tag)
Writes an endtag.
xmlData($data, $encode=true, $escape=true)
Writes data.
xmlStartTag($tag, $attrs=null, $empty=false, $encode=true, $escape=true)
Writes a starttag.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc
foreach($_POST as $key=> $value) $res