27require_once
"./Services/Object/classes/class.ilObject.php";
135 $this->db =
$DIC->database();
136 $this->log =
$DIC[
"ilLog"];
137 $this->access =
$DIC->access();
138 $this->
error = $DIC[
"ilErr"];
139 $this->rbacsystem =
$DIC->rbac()->system();
140 $this->tree =
$DIC->repositoryTree();
141 $this->
user = $DIC->user();
142 $this->obj_definition =
$DIC[
"objDefinition"];
145 $this->setting =
$DIC[
"ilSetting"];
147 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
149 if ($this->
getId() > 0) {
180 $cont_dir = $webspace_dir .
"/container_data";
181 if (!is_dir($cont_dir)) {
184 $obj_dir = $cont_dir .
"/obj_" . $this->
getId();
185 if (!is_dir($obj_dir)) {
217 $this->hiddenfilesfound = $a_hiddenfilesfound;
235 return $this->style_id;
243 $this->style_id = $a_style_id;
253 $this->news_timeline = $a_val;
273 $this->news_timeline_auto_entries = $a_val;
293 $this->news_timeline_landing_page = $a_val;
303 return $this->news_timeline_landing_page;
346 $this->news_block_activated = $a_val;
356 return $this->news_block_activated;
366 $this->use_news = $a_val;
376 return $this->use_news;
393 $q =
"SELECT * FROM container_settings WHERE " .
394 " id = " .
$ilDB->quote($a_id,
'integer') .
" AND " .
395 " keyword = " .
$ilDB->quote($a_keyword,
'text');
396 $set =
$ilDB->query($q);
399 if (isset($rec[
'value'])) {
400 return $rec[
"value"];
402 if ($a_default_value ===
null) {
405 return $a_default_value;
419 $query =
"DELETE FROM container_settings WHERE " .
420 "id = " .
$ilDB->quote($a_id,
'integer') .
" " .
421 "AND keyword = " .
$ilDB->quote($a_keyword,
'text');
425 $log->debug(
"Write container setting, id: " . $a_id .
", keyword: " . $a_keyword .
", value: " . $a_value);
427 $query =
"INSERT INTO container_settings (id, keyword, value) VALUES (" .
428 $ilDB->quote($a_id,
'integer') .
", " .
429 $ilDB->quote($a_keyword,
'text') .
", " .
430 $ilDB->quote($a_value,
'text') .
444 $sql =
"SELECT * FROM container_settings WHERE " .
445 " id = " .
$ilDB->quote($a_id,
'integer');
446 $set =
$ilDB->query($sql);
447 while ($row =
$ilDB->fetchAssoc($set)) {
448 $res[$row[
"keyword"]] = $row[
"value"];
464 $sql =
"DELETE FROM container_settings WHERE " .
465 " id = " .
$ilDB->quote($a_id,
'integer');
467 if (!$a_keyword_like) {
468 $sql .=
" AND keyword = " .
$ilDB->quote($a_keyword,
"text");
470 $sql .=
" AND " .
$ilDB->like(
"keyword",
"text", $a_keyword);
473 $ilDB->manipulate($sql);
480 if (
sizeof($settings)) {
483 foreach ($settings as $keyword => $value) {
485 if (stristr($keyword,
"icon")) {
512 public function cloneObject($a_target_id, $a_copy_id = 0, $a_omit_tree =
false)
515 $new_obj = parent::cloneObject($a_target_id, $a_copy_id, $a_omit_tree);
518 include_once(
"./Services/Object/classes/class.ilObjectTranslation.php");
520 $ot->copy($new_obj->getId());
522 include_once(
'./Services/Container/classes/class.ilContainerSortingSettings.php');
523 #18624 - copy all sorting settings
527 include_once(
"./Services/Container/classes/class.ilContainerPage.php");
533 $orig_page->copy($new_obj->getId(),
"cont", $new_obj->getId());
537 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
542 $new_id = $style_obj->ilClone();
543 $new_obj->setStyleSheetId($new_id);
551 include_once(
"./Services/Container/classes/class.ilContainerStartObjectsPage.php");
557 $orig_page->copy($new_obj->getId(),
"cstr", $new_obj->getId());
561 foreach (self::_getContainerSettings($this->
getId()) as $keyword => $value) {
572 $mom_noti->cloneSettings($new_obj->getRefId());
589 parent::cloneDependencies($a_target_id, $a_copy_id);
591 include_once(
'./Services/Container/classes/class.ilContainerSorting.php');
595 ilContainer::fixInternalLinksAfterCopy($a_target_id, $a_copy_id, $this->
getRefId());
598 include_once(
"./Modules/ItemGroup/classes/class.ilObjItemGroup.php");
601 include_once(
'Services/Object/classes/class.ilObjectLP.php');
603 $collection = $olp->getCollectionInstance();
605 $collection->cloneCollection($a_target_id, $a_copy_id);
629 include_once(
'./Services/Link/classes/class.ilLink.php');
630 include_once(
'Services/CopyWizard/classes/class.ilCopyWizardOptions.php');
641 $wizard_options->saveOwner(
$ilUser->getId());
642 $wizard_options->saveRoot($clone_source);
645 $wizard_options->initContainer($clone_source,
$ref_id);
647 foreach ($options as $source_id => $option) {
648 $wizard_options->addEntry($source_id, $option);
650 $wizard_options->read();
651 $wizard_options->storeTree($clone_source);
653 include_once
'./Services/Object/classes/class.ilObjectCopyGUI.php';
657 $wizard_options->read();
658 $wizard_options->dropFirstNode();
659 $wizard_options->appendMapping($clone_source,
$ref_id);
667 include_once
'Services/WebServices/SOAP/classes/class.ilSoapClient.php';
670 $soap_client->setResponseTimeout(5);
671 $soap_client->enableWSDL(
true);
673 $ilLog->write(__METHOD__ .
': Trying to call Soap client...');
674 if ($soap_client->init()) {
676 $res = $soap_client->call(
'ilClone', array($new_session_id .
'::' .
$client_id, $copy_id));
679 $wizard_options->disableSOAP();
680 $wizard_options->read();
681 include_once(
'./webservice/soap/include/inc.soap_functions.php');
685 'copy_id' => $copy_id,
686 'ref_id' => (
int)
$res
695 public function delete()
698 if (!parent::delete()) {
702 $this->obj_trans->delete();
725 $this->order_type = $a_value;
737 $id = get_class($class_provider);
738 $current = $repo->getValueForProvider(
$id);
768 $objects =
$tree->getSubTree(
$tree->getNodeData($this->getRefId()));
784 $a_admin_panel_enabled =
false,
785 $a_include_side_block =
false,
792 if (is_array($this->items[(
int) $a_admin_panel_enabled][(
int) $a_include_side_block]) &&
794 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
804 $id = get_class($class_provider);
805 $current = $repo->getValueForProvider(
$id);
807 $class_provider->setSelection($current);
808 $filtered = $class_provider->getFilteredObjects();
809 $objects = array_filter($objects,
function (
$i) use ($filtered) {
810 return (is_array($filtered) && in_array(
$i[
"obj_id"], $filtered));
822 $all_ref_ids = array();
824 if (!self::$data_preloaded) {
825 include_once(
"./Services/Object/classes/class.ilObjectListGUIPreloader.php");
829 include_once(
'Services/Container/classes/class.ilContainerSorting.php');
834 include_once
'./Modules/Session/classes/class.ilEventItems.php';
838 foreach ($objects as $key => $object) {
839 if ($a_get_single > 0 && $object[
"child"] != $a_get_single) {
844 if (
$objDefinition->getDevMode($object[
"type"]) || $object[
"type"] ==
"adm"
845 || $object[
"type"] ==
"rolf") {
855 if (in_array($object[
'type'], array(
'file',
'fold',
'cat'))) {
856 include_once
'Modules/File/classes/class.ilObjFileAccess.php';
859 if (!$a_admin_panel_enabled) {
867 if (!self::$data_preloaded) {
868 $preloader->addItem($object[
"obj_id"], $object[
"type"], $object[
"child"]);
872 if (in_array($object[
'ref_id'], $event_items) && !$classification_filter_active) {
877 if (!$a_include_side_block &&
$objDefinition->isSideBlock($object[
'type'])) {
881 $all_ref_ids[] = $object[
"child"];
885 if (!self::$data_preloaded) {
886 $preloader->preload();
889 self::$data_preloaded =
true;
892 foreach ($objects as $key => $object) {
894 if (!in_array($object[
"child"], $all_ref_ids)) {
901 $type = $object[
"type"];
907 $this->items[
$type][$key] = $object;
909 $this->items[
"_all"][$key] = $object;
910 if ($object[
"type"] !=
"sess") {
911 $this->items[
"_non_sess"][$key] = $object;
914 $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block]
915 = $sort->sortItems($this->items);
917 return $this->items[(int) $a_admin_panel_enabled][(
int) $a_include_side_block];
925 if (is_array($this->items[
"_all"]) && count($this->items[
"_all"]) > 0) {
948 if (empty($this->type_grps)) {
951 return $this->type_grps;
962 if (
$ilSetting->get(
"enable_cat_page_edit")) {
976 $ret = parent::create();
985 $lng->getDefaultLanguage(),
990 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
995 $log->debug(
"Create Container, id: " . $this->
getId());
1000 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
1012 parent::putInTree($a_parent_ref);
1015 if (self::_lookupContainerSetting(
ilObject::_lookupObjId($a_parent_ref),
"hide_header_icon_and_title")) {
1028 $ret = parent::update();
1031 $trans->setDefaultTitle($this->
getTitle());
1035 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1039 $log->debug(
"Update Container, id: " . $this->
getId());
1044 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
1063 include_once(
"./Services/Container/classes/class.ilContainerSortingSettings.php");
1066 include_once(
"./Services/Style/Content/classes/class.ilObjStyleSheet.php");
1084 include_once(
"./Services/Object/classes/class.ilObjectServiceSettingsGUI.php");
1088 $this->setting->get(
'block_activated_news',
true)
1106 $ilObjDataCache =
$DIC[
"ilObjDataCache"];
1108 $short_desc =
$ilSetting->get(
"rep_shorten_description");
1109 $short_desc_max_length =
$ilSetting->get(
"rep_shorten_description_length");
1110 if (!$short_desc || $short_desc_max_length > 0) {
1113 foreach ($objects as $key => $object) {
1114 $objects[$key][
"description"] =
ilUtil::shortenText($object[
"description"], $short_desc_max_length,
true);
1120 foreach ($objects as $key => $object) {
1121 $obj_ids[] = $object[
"obj_id"];
1123 if (
sizeof($obj_ids)) {
1125 foreach ($objects as $key => $object) {
1127 if ($ilObjDataCache->isTranslatedDescription($object[
"obj_id"])) {
1128 $long_desc[$object[
"obj_id"]] = $object[
"description"];
1130 if ($short_desc && $short_desc_max_length) {
1133 $objects[$key][
"description"] =
$long_desc[$object[
"obj_id"]];
1147 protected static function fixInternalLinksAfterCopy($a_target_id, $a_copy_id, $a_source_ref_id)
1155 include_once(
"./Services/Container/classes/class.ilContainerPage.php");
1157 include_once(
"./Services/CopyWizard/classes/class.ilCopyWizardOptions.php");
1159 $mapping = $cwo->getMappings();
1163 $pg->handleRepositoryLinksOnCopy($mapping, $a_source_ref_id);
1164 $pg->update(
true,
true);
1167 foreach ($mapping as $old_ref_id => $new_ref_id) {
1168 if (!is_numeric($old_ref_id) || !is_numeric($new_ref_id)) {
1175 $file = $loc .
'/class.' . $class .
'.php';
1177 if (is_file($file)) {
1179 $coll =
new $class();
1184 $page->handleRepositoryLinksOnCopy($mapping, $a_source_ref_id);
1185 $page->update(
true,
true);
1197 $this->obj_trans->delete();
1207 $this->obj_trans->removeLanguage($a_lang);
1208 $this->obj_trans->save();
1222 if (empty($a_title)) {
1223 $a_title =
"NO TITLE";
1226 $this->obj_trans->addLanguage($a_lang, $a_title, $a_desc, $a_lang_default,
true);
1227 $this->obj_trans->save();
1248 if (is_null($container_user_filter)) {
1257 $obj_ids = array_map(
function (
$i) {
1258 return $i[
"obj_id"];
1260 $filter_data = $container_user_filter->getData();
1261 foreach ($filter_data as $key => $val) {
1262 if (count($obj_ids) == 0) {
1265 if (!in_array(substr($key, 0, 4), [
"adv_",
"std_"])) {
1271 $field_id = substr($key, 4);
1274 if (substr($key, 0, 4) ==
"std_") {
1279 "SELECT obj_id FROM object_data " .
1280 " WHERE " .
$db->in(
"obj_id", $obj_ids,
false,
"integer") .
1285 $result_obj_ids = [];
1286 while ($rec =
$db->fetchAssoc($set)) {
1287 $result_obj_ids[] = $rec[
"obj_id"];
1289 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1291 if (in_array($val, [1,2])) {
1292 $online_where = ($val == 1)
1293 ?
" (offline <> " .
$db->quote(1,
"integer") .
" OR offline IS NULL) "
1294 :
" offline = " .
$db->quote(1,
"integer") .
" ";
1297 "SELECT obj_id FROM object_data " .
1298 " WHERE " .
$db->in(
"obj_id", $obj_ids,
false,
"integer") .
1299 " AND " . $online_where,
1303 $result_obj_ids = [];
1304 while ($rec =
$db->fetchAssoc($set)) {
1305 $result_obj_ids[] = $rec[
"obj_id"];
1307 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1313 "SELECT DISTINCT(obj_id) FROM obj_members m JOIN usr_data u ON (u.usr_id = m.usr_id) " .
1314 " WHERE " .
$db->in(
"m.obj_id", $obj_ids,
false,
"integer") .
1315 " AND " .
$db->like(
"u.lastname",
"text", $val) .
1316 " AND m.contact = %s",
1320 $result_obj_ids = [];
1321 while ($rec =
$db->fetchAssoc($set)) {
1322 $result_obj_ids[] = $rec[
"obj_id"];
1324 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1328 "SELECT DISTINCT(rbac_id) FROM il_meta_rights " .
1329 " WHERE " .
$db->in(
"rbac_id", $obj_ids,
false,
"integer") .
1330 " AND description = %s ",
1332 array(
'il_copyright_entry__' . IL_INST_ID .
'__' . $val)
1334 $result_obj_ids = [];
1335 while ($rec =
$db->fetchAssoc($set)) {
1336 $result_obj_ids[] = $rec[
"rbac_id"];
1338 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1340 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
1341 include_once
'Services/Search/classes/class.ilQueryParser.php';
1343 #$query_parser->setCombination($this->options['title_ao']);
1345 $query_parser->parse();
1349 switch ($field_id) {
1353 $meta_search->setMode(
'title_description');
1356 $meta_search->setMode(
'keyword_all');
1359 $meta_search->setMode(
'contribute');
1364 $result = $meta_search->performSearch();
1369 $field_form =
ilADTFactory::getInstance()->getSearchBridgeForDefinitionInstance($field->getADTDefinition(),
true,
false);
1370 $field_form->setElementId(
"query[" . $key .
"]");
1371 $field_form->validate();
1381 $field_form->getADT()->setSelections([$val]);
1384 $adt = $field_form->getADT();
1386 $field_form->getADT()->setSelections([$val]);
1388 $field_form->getADT()->setSelection($val);
1392 include_once
'Services/Search/classes/class.ilQueryParser.php';
1393 include_once
'Services/Search/classes/class.ilObjectSearchFactory.php';
1396 $adv_md_search->setDefinition($field);
1397 $adv_md_search->setIdFilter(array(0));
1398 $adv_md_search->setSearchElement($field_form);
1399 $result = $adv_md_search->performSearch();
1404 $result_obj_ids = array_map(
1406 return $i[
"obj_id"];
1410 $obj_ids = array_intersect($obj_ids, $result_obj_ids);
1413 $objects = array_filter($objects,
function ($o) use ($obj_ids) {
1414 return in_array($o[
"obj_id"], $obj_ids);
1432 $legacy_types = [
"glo",
"wiki",
"qpl",
"book",
"dcl",
"prtt"];
1433 foreach ($legacy_types as
$type) {
1434 $lobjects = array_filter($objects,
function($o) use (
$type) {
1435 return ($o[
"type"] ==
$type);
1437 $lobj_ids = array_map(
function(
$i){
1438 return $i[
"obj_id"];
1452 foreach ($lobj_ids as $lid) {
1458 foreach ($lobj_ids as $lid) {
1466 foreach($status as $obj_id => $online) {
1467 if ($val == 1 && !$online || $val == 2 && $online) {
1468 if (($key = array_search($obj_id, $obj_ids)) !==
false) {
1469 unset($obj_ids[$key]);
1471 }
else if (!in_array($obj_id, $obj_ids)) {
1472 $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)
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 _getItemsOfContainer($a_ref_id)
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