4define(
"IL_FM_POSITIVE", 1);
5define(
"IL_FM_NEGATIVE", 2);
170 global
$ilias, $objDefinition;
172 if (!isset($a_target) or !is_string($a_target))
174 $this->
ilias->raiseError(get_class($this).
"::Constructor(): No target given!",$this->
ilias->error_obj->WARNING);
178 $devtypes = $objDefinition->getDevModeAll();
180 if (count($devtypes > 0))
185 foreach ($devtypes as $type)
192 $this->output = array();
193 $this->expanded = array();
194 $this->target = $a_target;
195 $this->target_get =
'ref_id';
196 $this->frame_target =
"content";
197 $this->order_column =
"title";
198 $this->tree =
new ilTree(ROOT_FOLDER_ID);
199 $this->tree->initLangCode();
200 $this->expand_target =
$_SERVER[
"PATH_INFO"];
201 $this->rbac_check =
true;
202 $this->output_icons =
true;
203 $this->expand_variable =
"expand";
205 $this->post_sort=
true;
207 $this->highlighted =
"";
208 $this->show_minus =
true;
210 $this->asnch_expanding =
false;
240 $this->asnch_expanding = $a_val;
250 return $this->asnch_expanding;
262 $this->counter = $a_number;
272 $this->title = $a_val;
282 $this->textwidth = $a_length;
291 return $this->textwidth;
313 #$this->tree = new ilTree(ROOT_FOLDER_ID,$a_root_id);
314 $this->root_id = $a_root_id;
326 return $this->root_id ==
null ?
327 $this->tree->getRootId() :
338 $this->order_column = $a_column;
348 if ($a_direction ==
"desc")
350 $this->order_direction = $a_direction;
354 $this->order_direction =
"asc";
365 if (!isset($a_target_get) or !is_string($a_target_get))
367 $this->
ilias->raiseError(get_class($this).
"::setTargetGet(): No target given!",$this->
ilias->error_obj->WARNING);
370 $this->target_get = $a_target_get;
380 if (!isset($a_params_get) or !is_array($a_params_get))
382 $this->
ilias->raiseError(get_class($this).
"::setTargetGet(): No target given!",$this->
ilias->error_obj->WARNING);
385 foreach ($a_params_get as $key => $val)
387 $str .=
"&".$key.
"=".$val;
390 $this->params_get = $str;
402 $this->expand_target = $a_exp_target;
412 $this->up_frame = $a_up_frame;
413 $this->up_script = $a_up_script;
414 $this->up_params = $a_params;
423 $this->highlighted = $a_id;
433 $this->rbac_check = $a_check;
443 $this->expand_variable = $a_var_name;
453 $this->output_icons = $a_icons;
467 $this->is_clickable[
$a_type] =
"";
471 $this->is_clickable[
$a_type] =
"n";
479 if (!$this->rbac_check)
484 $ilBench->start(
"Explorer",
"setOutput_isVisible");
485 $visible = $rbacsystem->checkAccess(
'visible',$a_ref_id);
486 $ilBench->stop(
"Explorer",
"setOutput_isVisible");
498 $this->tree_lead = $a_val;
508 return $this->tree_lead;
524 if ($this->is_clickable[
$a_type] ==
"n")
540 $this->post_sort = $a_sort;
550 $this->filter_mode = $a_mode;
571 $this->use_standard_frame = $a_val;
592 return $this->tree->getChilds($a_parent_id, $this->order_column);
604 function setOutput($a_parent_id, $a_depth = 1,$a_obj_id = 0, $a_highlighted_subtree =
false)
606 global $rbacadmin, $rbacsystem,
$ilBench;
608#echo 'ParentId: '.$a_parent_id.' depth: '.$a_depth.' obj_id: '.$a_obj_id;
610 if (!isset($a_parent_id))
612 $this->
ilias->raiseError(get_class($this).
"::setOutput(): No node_id given!",$this->
ilias->error_obj->WARNING);
615 if ($this->
showChilds($a_parent_id,$a_obj_id))
627 if ($this->
forceExpanded($a_parent_id) && !in_array($a_parent_id, $this->expanded))
629 $this->expanded[] = $a_parent_id;
632 if (count($objects) > 0)
635 $tab = ++$a_depth - 2;
636 if ($this->post_sort)
638 $objects = $this->
sortNodes($objects,$a_obj_id);
641 foreach ($objects as $key => $object)
650 if ($this->filtered ==
false or $this->
checkFilter($object[
"type"]) ==
false)
652 if ($this->
isVisible($object[
'child'],$object[
'type']))
654 $ilBench->start(
"Explorer",
"setOutput_setFormatOptions");
655 #echo 'CHILD getIndex() '.$object['child'].' parent: '.$this->getRoot();
656 if ($object[
"child"] != $this->
getRoot())
658 $parent_index = $this->
getIndex($object);
660 $this->format_options[
"$this->counter"][
"parent"] = $object[
"parent"];
661 $this->format_options[
"$this->counter"][
"child"] = $object[
"child"];
662 $this->format_options[
"$this->counter"][
"title"] = $object[
"title"];
663 $this->format_options[
"$this->counter"][
"type"] = $object[
"type"];
664 $this->format_options[
"$this->counter"][
"obj_id"] = $object[
"obj_id"];
665 $this->format_options[
"$this->counter"][
"desc"] =
"obj_".$object[
"type"];
666 $this->format_options[
"$this->counter"][
"depth"] =
$tab;
667 $this->format_options[
"$this->counter"][
"container"] =
false;
668 $this->format_options[
"$this->counter"][
"visible"] =
true;
669 $this->format_options[
"$this->counter"][
"highlighted_subtree"] = $a_highlighted_subtree;
672 for ($i = 0; $i <
$tab; ++$i)
674 $this->format_options[
"$this->counter"][
"tab"][] =
'blank';
678 if ($parent_index == 0)
680 if (!$this->expand_all and !in_array($object[
"parent"], $this->expanded))
682 $this->expanded[] = $object[
"parent"];
687 if ($object[
"child"] != $this->
getRoot() and ((!$this->expand_all and !in_array($object[
"parent"],$this->expanded))
688 or !$this->format_options[
"$parent_index"][
"visible"]))
695 if ($this->format_options[
"$this->counter"][
"visible"])
700 $this->format_options[
"$this->counter"][
"visible"] =
false;
705 if ($object[
"child"] != $this->
getRoot())
707 $this->format_options[
"$parent_index"][
"container"] =
true;
709 if ($this->expand_all or in_array($object[
"parent"],$this->expanded))
714 $this->format_options[
"$parent_index"][
"tab"][(
$tab-2)] =
'forceexp';
718 $this->format_options[
"$parent_index"][
"tab"][(
$tab-2)] =
'minus';
723 $this->format_options[
"$parent_index"][
"tab"][(
$tab-2)] =
'plus';
729 $ilBench->stop(
"Explorer",
"setOutput_setFormatOptions");
732 if ($this->expand_all or in_array($object[
"parent"],$this->expanded) or ($object[
"parent"] == 0)
735 $highlighted_subtree = ($a_highlighted_subtree ||
736 ($object[
"child"] == $this->highlighted))
741 $this->
setOutput($object[
"child"],$a_depth,$object[
'obj_id'], $highlighted_subtree);
780 $this->tree->getMaximumDepth();
794 $ilBench->start(
"Explorer",
"getOutput");
796 $this->format_options[0][
"tab"] = array();
800 for ($i=0;$i<$depth;++$i)
805 include_once(
"./Services/YUI/classes/class.ilYuiUtil.php");
807 $tpl->addJavaScript(
"./Services/UIComponent/Explorer/js/ilExplorer.js");
813 $tpl_tree =
new ilTemplate(
"tpl.tree.html",
true,
true,
"Services/UIComponent/Explorer");
816 if ((
$_GET[
"ict"] ||
$_POST[
"collapseAll"] !=
"" ||
$_POST[
"expandAll"] !=
"") && $this->up_frame !=
"")
818 $tpl_tree->setCurrentBlock(
"updater");
819 $tpl_tree->setVariable(
"UPDATE_FRAME", $this->up_frame);
820 $tpl_tree->setVariable(
"UPDATE_SCRIPT", $this->up_script);
821 if (is_array($this->up_params))
824 foreach ($this->up_params as $p)
826 $up_str.= $lim.
"'".$p.
"'";
829 $tpl_tree->setVariable(
"UPDATE_PARAMS", $up_str);
831 $tpl_tree->parseCurrentBlock();
835 foreach ($this->format_options as $key =>
$options)
851 if (
$options[
"visible"] and $key != 0)
864 $ilBench->stop(
"Explorer",
"getOutput");
866 $tpl_tree->setVariable(
"TREE_LEAD",
"");
867 if ($this->tree_lead !=
"")
869 $tpl_tree->setCurrentBlock(
"tree_lead");
870 $tpl_tree->setVariable(
"TREE_LEAD", $this->tree_lead);
871 $tpl_tree->parseCurrentBlock();
873 if ($this->
getId() !=
"")
875 $tpl_tree->setVariable(
"TREE_ID",
'id="'.$this->
getId().
'_tree"');
878 $html = $tpl_tree->get();
882 $mtpl =
new ilTemplate(
"tpl.main.html",
true,
true);
884 $mtpl->setVariable(
"BODY_CLASS",
"il_Explorer");
885 $mtpl->addBlockFile(
"CONTENT",
"content",
"tpl.explorer.html");
888 $mtpl->setVariable(
"TXT_EXPLORER_HEADER", $this->
getTitle());
890 if ($this->
getId() !=
"")
892 $mtpl->setVariable(
"ID",
'id="'.$this->
getId().
'"');
895 $mtpl->setCurrentBlock(
"content");
896 $mtpl->setVariable(
"EXPLORER",
$html);
897 $mtpl->setVariable(
"EXP_REFRESH",
$lng->txt(
"refresh"));
898 $mtpl->parseCurrentBlock();
899 $html = $mtpl->get();
912 if ($a_item_depth < $a_cur_depth)
915 for ($i = 0; $i < ($a_cur_depth - $a_item_depth); $i++)
917 $a_tpl_tree->touchBlock(
"end_list_item");
918 $a_tpl_tree->touchBlock(
"element");
920 $a_tpl_tree->touchBlock(
"end_list");
921 $a_tpl_tree->touchBlock(
"element");
924 else if ($a_item_depth == $a_cur_depth)
927 $a_tpl_tree->touchBlock(
"end_list_item");
928 $a_tpl_tree->touchBlock(
"element");
938 if ($a_item_depth > $a_cur_depth)
941 if ($a_item_depth > 1)
943 $a_tpl_tree->touchBlock(
"start_list");
947 $a_tpl_tree->touchBlock(
"start_list_no_indent");
949 $a_tpl_tree->touchBlock(
"element");
951 $a_tpl_tree->touchBlock(
"start_list_item");
952 $a_tpl_tree->touchBlock(
"element");
957 $a_tpl_tree->touchBlock(
"start_list_item");
958 $a_tpl_tree->touchBlock(
"element");
985 if (!isset($a_node_id) or !is_array($a_option))
987 $this->
ilias->raiseError(get_class($this).
"::formatObject(): Missing parameter or wrong datatype! ".
988 "node_id: ".$a_node_id.
" options:".var_dump($a_option),$this->
ilias->error_obj->WARNING);
992 foreach ((array) $a_option[
"tab"] as $picture)
994 if ($picture ==
'plus')
996 $tpl->setCurrentBlock(
"expander");
997 $tpl->setVariable(
"EXP_DESC",
$lng->txt(
"collapsed"));
998 $tpl->setVariable(
"LINK_NAME", $a_node_id);
1001 $target = $this->
createTarget(
'+',$a_node_id, $a_option[
"highlighted_subtree"]);
1002 $tpl->setVariable(
"LINK_TARGET_EXPANDER",
$target);
1007 $tpl->setVariable(
"ONCLICK_TARGET_EXPANDER",
" onclick=\"return il.Explorer.refresh('tree_div', '".
$target.
"');\"");
1008 $tpl->setVariable(
"LINK_TARGET_EXPANDER",
"#");
1010 $tpl->setVariable(
"IMGPATH", $this->
getImage(
"browser/plus.png"));
1011 $tpl->parseCurrentBlock();
1015 if ($picture ==
'forceexp')
1017 $tpl->setCurrentBlock(
"expander");
1018 $tpl->setVariable(
"EXP_DESC",
$lng->txt(
"expanded"));
1020 $tpl->setVariable(
"LINK_NAME", $a_node_id);
1021 $tpl->setVariable(
"LINK_TARGET_EXPANDER",
$target);
1022 $tpl->setVariable(
"IMGPATH", $this->
getImage(
"browser/forceexp.png"));
1023 $tpl->parseCurrentBlock();
1027 if ($picture ==
'minus' && $this->show_minus)
1029 $tpl->setCurrentBlock(
"expander");
1030 $tpl->setVariable(
"EXP_DESC",
$lng->txt(
"expanded"));
1031 $tpl->setVariable(
"LINK_NAME", $a_node_id);
1034 $target = $this->
createTarget(
'-',$a_node_id, $a_option[
"highlighted_subtree"]);
1035 $tpl->setVariable(
"LINK_TARGET_EXPANDER",
$target);
1040 $tpl->setVariable(
"ONCLICK_TARGET_EXPANDER",
" onclick=\"return il.Explorer.refresh('tree_div', '".
$target.
"');\"");
1041 $tpl->setVariable(
"LINK_TARGET_EXPANDER",
"#");
1043 $tpl->setVariable(
"IMGPATH", $this->
getImage(
"browser/minus.png"));
1044 $tpl->parseCurrentBlock();
1052 $tpl->setCurrentBlock(
"blank");
1053 $tpl->setVariable(
"BLANK_PATH", $this->
getImage(
"browser/blank.png"));
1054 $tpl->parseCurrentBlock();
1057 if ($this->output_icons)
1059 $tpl->setCurrentBlock(
"icon");
1060 $tpl->setVariable(
"ICON_IMAGE" , $this->
getImage(
"icon_".$a_option[
"type"].
".svg", $a_option[
"type"], $a_obj_id));
1062 $tpl->setVariable(
"TARGET_ID" ,
"iconid_".$a_node_id);
1063 $this->iconList[] =
"iconid_".$a_node_id;
1064 $tpl->setVariable(
"TXT_ALT_IMG",
1065 $this->
getImageAlt($lng->txt(
"icon").
" ".
$lng->txt($a_option[
"desc"]), $a_option[
"type"], $a_obj_id));
1066 $tpl->parseCurrentBlock();
1069 if(strlen($sel = $this->
buildSelect($a_node_id,$a_option[
'type'])))
1071 $tpl->setCurrentBlock(
'select');
1072 $tpl->setVariable(
'OBJ_SEL',$sel);
1073 $tpl->parseCurrentBlock();
1076 if ($this->
isClickable($a_option[
"type"], $a_node_id,$a_obj_id))
1078 $tpl->setCurrentBlock(
"link");
1086 if ($style_class !=
"")
1088 $tpl->setVariable(
"A_CLASS",
' class="'.$style_class.
'" ' );
1091 if (($onclick = $this->
buildOnClick($a_node_id, $a_option[
"type"], $a_option[
"title"])) !=
"")
1093 $tpl->setVariable(
"ONCLICK",
"onClick=\"$onclick\"");
1098 $this->
buildTitle($a_option[
"title"], $a_node_id, $a_option[
"type"]),
1099 $this->textwidth,
true));
1101 $this->
buildDescription($a_option[
"description"], $a_node_id, $a_option[
"type"]), $this->textwidth,
true));
1102 $frame_target = $this->
buildFrameTarget($a_option[
"type"], $a_node_id, $a_option[
"obj_id"]);
1103 if ($frame_target !=
"")
1105 $tpl->setVariable(
"TARGET",
" target=\"".$frame_target.
"\"");
1107 $tpl->parseCurrentBlock();
1111 $tpl->setCurrentBlock(
"text");
1113 $this->
buildTitle($a_option[
"title"], $a_node_id, $a_option[
"type"]), $this->textwidth,
true));
1115 $this->
buildDescription($a_option[
"desc"], $a_node_id, $a_option[
"type"]), $this->textwidth,
true));
1116 $tpl->parseCurrentBlock();
1119 $tpl->setCurrentBlock(
"list_item");
1120 $tpl->parseCurrentBlock();
1121 $tpl->touchBlock(
"element");
1137 return $a_default_text;
1145 if ($a_id == $this->highlighted)
1147 return "il_HighlightedNode";
1157 $target = (strpos($this->target,
"?") ===
false)
1159 : $this->target.
"&";
1160 return $target.$this->target_get.
"=".$a_node_id.$this->params_get;
1201 return $this->frame_target;
1214 if (!isset(
$a_type) or !is_string(
$a_type) or !isset($a_node_id))
1216 $this->
ilias->raiseError(get_class($this).
"::createTarget(): Missing parameter or wrong datatype! ".
1217 "type: ".
$a_type.
" node_id:".$a_node_id,$this->ilias->error_obj->WARNING);
1223 $a_node_id =
$a_type ==
'+' ? $a_node_id : -(int) $a_node_id;
1225 $sep = (is_int(strpos($this->expand_target,
"?")))
1230 $ict_str = ($a_highlighted_subtree || $this->highlighted ==
"")
1235 $ict_str.=
"&cmdMode=asynch";
1239 return $this->expand_target.$sep.$this->expand_variable.
"=".$a_node_id.$this->params_get.$ict_str.
"#".abs($a_node_id);
1243 return $this->expand_target.$sep.$this->expand_variable.
"=".$a_node_id.$this->params_get.$ict_str;
1255 $this->frame_target = $a_target;
1265 for ($i = 0; $i < count($this->format_options); ++$i)
1267 if ($this->format_options[$i][
"depth"] == $a_depth+1
1268 and !$this->format_options[$i][
"container"]
1269 and $this->format_options[$i][
"depth"] != 1)
1271 $this->format_options[$i][
"tab"][
"$a_depth"] =
"quer";
1274 if ($this->format_options[$i][
"depth"] == $a_depth+2)
1276 if ($this->
is_in_array($i+1,$this->format_options[$i][
"depth"]))
1278 $this->format_options[$i][
"tab"][
"$a_depth"] =
"winkel";
1282 $this->format_options[$i][
"tab"][
"$a_depth"] =
"ecke";
1286 if ($this->format_options[$i][
"depth"] > $a_depth+2)
1290 $this->format_options[$i][
"tab"][
"$a_depth"] =
"hoch";
1305 for ($i=$a_start;$i<count($this->format_options);++$i)
1307 if ($this->format_options[$i][
"depth"] < $a_depth)
1312 if ($this->format_options[$i][
"depth"] == $a_depth)
1328 if(!is_array($this->format_options))
1333 foreach ($this->format_options as $key => $value)
1335 if (($value[
"child"] == $a_data[
"parent"]))
1343 #$this->ilias->raiseError(get_class($this)."::getIndex(): Error in tree. No index found!",$this->ilias->error_obj->FATAL);
1356 if (is_array($this->filter))
1359 foreach ($this->filter as $item)
1361 if ($item == $a_item)
1371 $this->filter = array();
1373 if ($is_present == 0)
1375 $this->filter[] = $a_item;
1390 if (is_array($this->filter))
1395 foreach ($this->filter as $item)
1397 if ($item != $a_item)
1407 $this->filter = $tmp;
1433 if(!is_array(
$_SESSION[$this->expand_variable]))
1438 if ($a_node_id > 0 && !in_array($a_node_id,
$_SESSION[$this->expand_variable]))
1440 array_push(
$_SESSION[$this->expand_variable],$a_node_id);
1445 $key = array_keys(
$_SESSION[$this->expand_variable],-(
int) $a_node_id);
1446 unset(
$_SESSION[$this->expand_variable][$key[0]]);
1459 $this->expand_all = (bool) $a_mode;
1460 $this->show_minus = $a_show_minus;
1471 $this->filtered = $a_bool;
1483 if (is_array($this->filter))
1485 if (in_array($a_item, $this->filter))
1517 foreach ($a_nodes as $key => $node)
1519 if ($node[
"type"] ==
"adm")
1528 isset($match) ? array_splice($a_nodes,$match,1) :
"";
1530 $a_nodes =
ilUtil::sortArray($a_nodes,$this->order_column,$this->order_direction);
1533 isset ($match) ? array_push($a_nodes,$adm_node) :
"";
An exception for terminatinating execution or to throw for unit testing.
Class ilExplorer class for explorer view in admin frame.
setTargetGet($a_target_get)
set the varname in Get-string @access public
getNodeStyleClass($a_id, $a_type)
get style class for node
highlightNode($a_id)
set highlighted node
handleListEndTags(&$a_tpl_tree, $a_cur_depth, $a_item_depth)
handle list end tags ( and )
getFilterMode()
get filter mode
setAsynchExpanding($a_val)
Set asynch expanding.
__construct($a_target)
Constructor @access public.
handleListStartTags(&$a_tpl_tree, $a_cur_depth, $a_item_depth)
handle list start tags (
showChilds($a_parent_id)
determines wether the childs of an object should be shown or not note: this standard implementation a...
setExpand($a_node_id)
set the expand option this value is stored in a SESSION variable to save it different view (lo view,...
getUseStandardFrame()
Get use standard explorer frame.
setSessionExpandVariable($a_var_name="expand")
set name of expand session variable
addFilter($a_item)
adds item to the filter @access public
setRoot($a_root_id)
Set root node.
buildOnClick($a_node_id, $a_type, $a_title)
get onclick event handling (may be overwritten by derived classes)
initItemCounter($a_number)
Init item counter.
sortNodes($a_nodes, $a_parent_obj_id)
sort nodes and put adm object to the end of sorted array @access private
buildSelect($a_node_id, $a_type)
standard implementation for adding an option select box between image and title
is_in_array($a_start, $a_depth)
DESCRIPTION MISSING @access private.
checkFilter($a_item)
check if item is in filter @access private
setPostSort($a_sort)
process post sorting
setOutput($a_parent_id, $a_depth=1, $a_obj_id=0, $a_highlighted_subtree=false)
Creates output for explorer view in admin menue recursive method @access public.
setParamsGet($a_params_get)
set additional params to be passed in Get-string @access public
setExpandTarget($a_exp_target)
target script for expand icons
setTitleLength($a_length)
Set max title length.
outputIcons($a_icons)
output icons
setOrderDirection($a_direction)
set the order direction @access public
setTitle($a_val)
Set title.
setClickable($a_type, $a_clickable)
(de-)activates links for a certain object type
setFilterMode($a_mode=IL_FM_NEGATIVE)
set filter mode
getTreeLead()
Get tree leading content.
getOutput()
Creates output recursive method @access public.
getIndex($a_data)
get index of format_options array from specific ref_id,parent_id @access private
getImageAlt($a_default_text, $a_type="", $a_obj_id="")
get image alt text
setFrameTarget($a_target)
set target frame or not frame?
createLines($a_depth)
Creates lines for explorer view @access private.
modifyChilds($a_parent_id, $a_objects)
setFrameUpdater($a_up_frame, $a_up_script, $a_params="")
Set Explorer Updater.
forceExpandAll($a_mode, $a_show_minus=true)
force expandAll.
formatObject($tpl, $a_node_id, $a_option, $a_obj_id=0)
Creates output recursive method @access private.
checkPermissions($a_check)
check permissions via rbac
getImage($a_name, $a_type="", $a_obj_id="")
get image path (may be overwritten by derived classes)
setUseStandardFrame($a_val)
Set use standard frame.
getChildsOfNode($a_parent_id)
Get childs of node.
formatHeader($tpl, $a_obj_id, $a_option)
Creates output for header (is empty here but can be overwritten in derived classes)
delFilter($a_item)
removes item from the filter @access public
setTreeLead($a_val)
Set tree leading content.
buildFrameTarget($a_type, $a_child=0, $a_obj_id=0)
get frame target (may be overwritten by derived classes)
getAsynchExpanding()
Get asynch expanding.
getTitleLength()
Get max title length.
setFiltered($a_bool)
active/deactivate the filter @access public
createTarget($a_type, $a_node_id, $a_highlighted_subtree=false, $a_append_anch=true)
Creates Get Parameter @access private.
isVisible($a_ref_id, $a_type)
forceExpanded($a_obj_id)
force expansion of node
isClickable($a_type, $a_ref_id=0)
check if links for certain object type are activated
setOrderColumn($a_column)
set the order column @access public
buildTitle($a_title, $a_id, $a_type)
standard implementation for title, may be overwritten by derived classes
buildDescription($a_desc, $a_id, $a_type)
standard implementation for description, may be overwritten by derived classes
buildLinkTarget($a_node_id, $a_type)
get link target (may be overwritten by derived classes)
getMaximumTreeDepth()
Get maximum tree depth.
special template class to simplify handling of ITX/PEAR
Tree class data representation in hierachical trees using the Nested Set Model with Gaps by Joe Celco...
static shortenText($a_str, $a_len, $a_dots=false, $a_next_blank=false, $a_keep_extension=false)
shorten a string to given length.
static sortArray($array, $a_array_sortby, $a_array_sortorder=0, $a_numeric=false, $a_keep_keys=false)
sortArray
static getStyleSheetLocation($mode="output", $a_css_name="", $a_css_location="")
get full style sheet file name (path inclusive) of current user
static getImagePath($img, $module_path="", $mode="output", $offline=false)
get image path (for images located in a template directory)
static initConnection()
Init YUI Connection module.
redirection script todo: (a better solution should control the processing via a xml file)
if(!is_array($argv)) $options
if((!isset($_SERVER['DOCUMENT_ROOT'])) OR(empty($_SERVER['DOCUMENT_ROOT']))) $_SERVER['DOCUMENT_ROOT']