30 protected \ILIAS\COPage\Xsl\XslManager
$xsl;
43 $this->
tabs = $DIC->tabs();
44 $this->
ctrl = $DIC->ctrl();
45 $this->
lng = $DIC->language();
46 $this->tpl = $DIC[
"tpl"];
47 $this->
user = $DIC->user();
50 $this->tool_context = $DIC->globalScreen()->tool()->context();
51 $this->xsl = $DIC->copage()->internal()->domain()->xsl();
52 $this->pc_definition = $DIC
58 $this->dom_util = $DIC->copage()->internal()->domain()->domUtil();
64 "Cell3" =>
"Cell3",
"Cell4" =>
"Cell4"));
75 $next_class = $this->
ctrl->getNextClass($this);
78 $cmd = $this->
ctrl->getCmd();
80 switch ($next_class) {
89 string $data_tab_txt_key =
"" 95 $ilTabs->setBackTarget(
102 $ilTabs->setBackTarget(
104 (string) $this->
ctrl->getParentReturn($this)
107 if ($data_tab_txt_key ==
"") {
108 $data_tab_txt_key =
"cont_table_edit_cells";
113 $ilCtrl->getLinkTarget($this,
"editData"),
119 "cont_table_properties",
120 $ilCtrl->getLinkTarget($this,
"editProperties"),
126 "cont_table_cell_properties",
127 $ilCtrl->getLinkTarget($this,
"editCellStyle"),
138 $ilTabs->addSubTabTarget(
140 $ilCtrl->getLinkTarget($this,
"editCellStyle"),
145 $ilTabs->addSubTabTarget(
147 $ilCtrl->getLinkTarget($this,
"editCellWidth"),
152 $ilTabs->addSubTabTarget(
154 $ilCtrl->getLinkTarget($this,
"editCellAlignment"),
159 $ilTabs->addSubTabTarget(
161 $ilCtrl->getLinkTarget($this,
"editCellSpan"),
169 return parent::getTemplateOptions(
"table");
174 $this->
ctrl->redirect($this,
"editData");
186 $html = $this->
form->getHTML();
187 $html .=
"<br />" . $this->renderTable(
"");
193 if ($a_mode ===
"create") {
194 return $this->
lng->txt(
"cont_insert_table");
196 return $this->
lng->txt(
"cont_table_properties");
200 string $a_mode =
"edit" 202 $a_seleted_value =
"";
208 $this->
form->setFormAction($ilCtrl->getFormAction($this));
211 if ($a_mode ==
"create") {
213 for ($i = 1; $i <= 20; $i++) {
221 $this->
form->addItem($cols);
227 $this->
form->addItem($rows);
233 $width->setMaxLength(6);
234 $this->
form->addItem($width);
260 $this->
lng->txt(
"cont_characteristic_table"),
265 $chars = array_merge($templates, $chars);
266 if (is_object($this->content_obj)) {
267 if (($chars[$a_seleted_value] ??
"") ==
"" && ($this->content_obj->getClass() !=
"")) {
268 $chars = array_merge(
269 array($this->content_obj->getClass() => $this->content_obj->getClass()),
275 foreach ($chars as $k => $char) {
276 if (strpos($k,
":") > 0) {
277 $t = explode(
":", $k);
278 $html = $this->style->lookupTemplatePreview($t[1]) .
'<div style="clear:both;" class="small">' . $char .
"</div>";
280 $html =
'<table class="ilc_table_' . $k .
'"><tr><td class="small">' .
281 $char .
'</td></tr></table>';
284 $options[$k] = $char;
286 $char_prop->setOptions($options);
287 $char_prop->setValue(
"StandardTable");
288 $this->
form->addItem($char_prop);
291 for ($i = 0; $i <= 3; $i++) {
299 $this->
form->addItem($rh);
305 $this->
form->addItem($rf);
311 $this->
form->addItem($ch);
317 $this->
form->addItem($cf);
319 if ($a_mode ==
"create") {
322 $this->
lng->txt(
"cont_first_row_style"),
328 $options = array_merge(array(
"" => $this->
lng->txt(
"none")), $chars);
329 $fr_style->setOptions($options);
331 $fr_style->setValue(
"");
332 $this->
form->addItem($fr_style);
336 $align_opts = array(
"Left" =>
$lng->
txt(
"cont_left"),
337 "Right" =>
$lng->
txt(
"cont_right"),
"Center" =>
$lng->
txt(
"cont_center"),
338 "LeftFloat" =>
$lng->
txt(
"cont_left_float"),
339 "RightFloat" =>
$lng->
txt(
"cont_right_float"));
342 $align->setValue(
"Center");
343 $this->
form->addItem($align);
347 $caption->setSize(60);
348 $this->
form->addItem($caption);
351 $ca_opts = array(
"top" =>
$lng->
txt(
"cont_top"),
352 "bottom" =>
$lng->
txt(
"cont_bottom"));
354 $this->
lng->txt(
"cont_align"),
358 $caption->addSubItem($ca);
361 if ($a_mode ==
"create") {
365 $import->addOption($op);
366 $op2 =
new ilRadioOption($this->
lng->txt(
"cont_spreadsheet_table"),
"spreadsheet");
369 $import_data->setRows(8);
370 $import_data->setCols(50);
373 $import->addOption($op2);
374 $import->setValue(
"html");
375 $this->
form->addItem($import);
382 $s_lang = $ilUser->getLanguage();
385 foreach ($this->lom_services->dataHelper()->getAllLanguages() as $language) {
386 $languages[$language->value()] = $language->presentableLabel();
390 $language->setValue($s_lang);
391 $this->
form->addItem($language);
393 if ($a_mode ==
"create") {
394 $this->
form->addCommandButton(
"create",
$lng->
txt(
"save"));
395 $this->
form->addCommandButton(
"cancelCreate",
$lng->
txt(
"cancel"));
397 $this->
form->addCommandButton(
"saveProperties",
$lng->
txt(
"save"));
398 $this->
form->addCommandButton(
"editData",
$lng->
txt(
"close"));
405 $values[
"width"] = $this->content_obj->getWidth();
409 $values[
"row_header"] = $this->content_obj->getHeaderRows();
410 $values[
"row_footer"] = $this->content_obj->getFooterRows();
411 $values[
"col_header"] = $this->content_obj->getHeaderCols();
412 $values[
"col_footer"] = $this->content_obj->getFooterCols();
413 if ($this->content_obj->getTemplate() !=
"") {
414 $values[
"characteristic"] =
"t:" .
416 $this->content_obj->getTemplate();
418 $values[
"characteristic"] = $this->content_obj->getClass();
420 $values[
"align"] = $this->content_obj->getHorizontalAlign();
421 $values[
"caption"] = $this->content_obj->getCaption();
422 $values[
"cap_align"] = $this->content_obj->getCaptionAlign();
423 $values[
"language"] = $this->content_obj->getLanguage();
425 $this->
form->setValuesByArray($values);
427 $ca = $this->
form->getItemByPostVar(
"cap_align");
428 $ca->setValue($this->content_obj->getCaptionAlign());
431 public function renderTable(
432 string $a_mode =
"table_edit",
433 string $a_submode =
"" 436 $tab_node = $this->content_obj->getDomNode();
437 $tab_node->setAttribute(
"Enabled",
"True");
438 $content = $this->dom_util->dump($tab_node);
440 $trans = $this->pg_obj->getLanguageVariablesXML();
441 $mobs = $this->pg_obj->getMultimediaXML();
449 $content = $content . $mobs . $trans . $template_xml;
458 !$this->pg_obj->getPageConfig()->getPreventHTMLUnmasking(),
465 string $a_mode =
"table_edit",
466 string $a_submode =
"",
473 $ilUser = $DIC->user();
474 $xsl = $DIC->copage()->internal()->domain()->xsl();
475 $pc_definition = $DIC->copage()->internal()->domain()->pc()->definition();
477 $content =
"<dummy>" . $content .
"</dummy>";
481 $params = array(
'mode' => $a_mode,
482 'webspace_path' => $wb_path,
'enlarge_path' => $enlarge_path);
483 $output = $xsl->process($content,
$params);
487 $output = str_replace(
"<",
"<", $output);
488 $output = str_replace(
">",
">", $output);
489 $output = str_replace(
"&",
"&", $output);
492 if ($a_mode ==
"table_edit" && !is_null($a_table_obj)) {
493 switch ($a_submode) {
513 if (isset($page_object)) {
514 $defs = $pc_definition->getPCDefinitions();
515 foreach ($defs as $def) {
516 $pc_class = $def[
"pc_class"];
517 $pc_obj =
new $pc_class($page_object);
520 $output = $pc_obj->modifyPageContentPostXsl($output,
"presentation",
false);
536 $lng = $DIC->language();
540 foreach ($classes as $k => $v) {
544 if (substr($v, 0, 4) ==
"ilc_") {
548 '<input type="checkbox" value="1"' .
549 ' name="target[' . $k .
']">' .
'</input> ' . $v;
551 $a_output = str_replace(
"{{{{{TableEdit;" . $k .
"}}}}}",
$check, $a_output);
565 $lng = $DIC->language();
569 foreach ($classes as $k => $v) {
574 '<input type="checkbox" value="1"' .
575 ' name="target[' . $k .
']">' .
'</input> ' . $v;
577 $a_output = str_replace(
"{{{{{TableEdit;" . $k .
"}}}}}",
$check, $a_output);
591 $lng = $DIC->language();
595 foreach ($widths as $k => $v) {
597 '<input class="small" type="text" size="5" maxlength="10"' .
598 ' name="width[' . $k .
']" value="' . $v .
'">' .
'</input>';
600 $a_output = str_replace(
"{{{{{TableEdit;" . $k .
"}}}}}",
$check, $a_output);
614 $lng = $DIC->language();
618 foreach ($spans as $k => $v) {
620 $selects =
'<div style="white-space:nowrap;">' .
$lng->
txt(
"cont_colspan") .
": " .
621 '<select class="small" name="colspan[' . $k .
']">';
622 for ($i = 1; $i <= $v[
"max_x"] - $v[
"x"] + 1; $i++) {
623 $sel_str = ($i == $v[
"colspan"])
624 ?
'selected="selected"' 626 $selects .=
'<option value="' . $i .
'" ' . $sel_str .
'>' . $i .
'</option>';
628 $selects .=
"</select></div>";
631 $selects .=
'<div style="margin-top:3px; white-space:nowrap;">' .
$lng->
txt(
"cont_rowspan") .
": " .
632 '<select class="small" name="rowspan[' . $k .
']">';
633 for ($i = 1; $i <= $v[
"max_y"] - $v[
"y"] + 1; $i++) {
634 $sel_str = ($i == $v[
"rowspan"])
635 ?
'selected="selected"' 637 $selects .=
'<option value="' . $i .
'" ' . $sel_str .
'>' . $i .
'</option>';
639 $selects .=
"</select></div>";
641 $a_output = str_replace(
"{{{{{TableEdit;" . $k .
"}}}}}", $selects, $a_output);
656 $ilTabs->setSubTabActive(
"cont_style");
661 $form->
setTitle($this->
lng->txt(
"cont_table_cell_properties"));
665 $this->
lng->txt(
"cont_style"),
671 $options = array_merge(array(
"" => $this->
lng->txt(
"none")),
$chars);
672 $style->setOptions($options);
682 $html .=
"<br />" . $this->renderTable(
"table_edit",
"style") .
"</form>";
696 $ilTabs->setSubTabActive(
"cont_width");
697 $ilTabs->setTabActive(
"cont_table_cell_properties");
699 $ctpl =
new ilTemplate(
"tpl.table_cell_properties.html",
true,
true,
"components/ILIAS/COPage");
700 $ctpl->setVariable(
"BTN_NAME",
"setWidths");
701 $ctpl->setVariable(
"BTN_TEXT",
$lng->
txt(
"cont_save_widths"));
702 $ctpl->setVariable(
"FORMACTION", $ilCtrl->getFormAction($this));
704 $html = $ctpl->get();
705 $html .=
"<br />" . $this->renderTable(
"table_edit",
"width") .
"</form>";
719 $ilTabs->setSubTabActive(
"cont_span");
720 $ilTabs->setTabActive(
"cont_table_cell_properties");
722 $ctpl =
new ilTemplate(
"tpl.table_cell_properties.html",
true,
true,
"components/ILIAS/COPage");
723 $ctpl->setVariable(
"BTN_NAME",
"setSpans");
724 $ctpl->setVariable(
"BTN_TEXT",
$lng->
txt(
"cont_save_spans"));
725 $ctpl->setVariable(
"FORMACTION", $ilCtrl->getFormAction($this));
727 $html = $ctpl->get();
728 $html .=
"<br />" . $this->renderTable(
"table_edit",
"span") .
"</form>";
739 $target = $this->request->getStringArray(
"target");
740 if (count($target)) {
741 foreach ($target as $k => $value) {
743 $cid = explode(
":", $k);
744 $this->content_obj->setTDClass(
746 $this->request->getString(
"style"),
752 $this->updated = $this->pg_obj->update();
753 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
754 $this->
ctrl->redirect($this,
"editCellStyle");
764 $widths = $this->request->getStringArray(
"width");
765 if (count($widths) > 0) {
766 foreach ($widths as $k => $width) {
767 $cid = explode(
":", $k);
768 $this->content_obj->setTDWidth(
775 $this->updated = $this->pg_obj->update();
776 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
777 $this->
ctrl->redirect($this,
"editCellWidth");
787 $colspans = $this->request->getStringArray(
"colspan");
788 $rowspans = $this->request->getStringArray(
"rowspan");
791 if (count($colspans) > 0) {
792 foreach ($colspans as $k => $span) {
794 $rs[$k] = $rowspans[$k];
796 $this->content_obj->setTDSpans($cs, $rs);
798 $this->updated = $this->pg_obj->update();
799 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
800 $this->
ctrl->redirect($this,
"editCellSpan");
809 $this->
form->checkInput();
812 $caption = $this->
form->getInput(
"caption");
813 $caption = str_replace(
"&",
"&", $caption);
814 $caption = str_replace(
"<",
"<", $caption);
815 $caption = str_replace(
">",
">", $caption);
817 $this->content_obj->setLanguage($this->
form->getInput(
"language"));
818 $this->content_obj->setWidth($this->
form->getInput(
"width"));
822 $this->content_obj->setHorizontalAlign($this->
form->getInput(
"align"));
823 $this->content_obj->setHeaderRows($this->
form->getInput(
"row_header"));
824 $this->content_obj->setHeaderCols($this->
form->getInput(
"col_header"));
825 $this->content_obj->setFooterRows($this->
form->getInput(
"row_footer"));
826 $this->content_obj->setFooterCols($this->
form->getInput(
"col_footer"));
827 if (strpos($this->
form->getInput(
"characteristic"),
":") > 0) {
828 $t = explode(
":", $this->
form->getInput(
"characteristic"));
829 $this->content_obj->setTemplate($t[2]);
830 $this->content_obj->setClass(
"");
832 $this->content_obj->setClass($this->
form->getInput(
"characteristic"));
833 $this->content_obj->setTemplate(
"");
835 $this->content_obj->setCaption(
837 $this->
form->getInput(
"cap_align")
847 $this->updated = $this->pg_obj->update();
848 if ($this->updated ===
true) {
849 $this->tpl->setOnScreenMessage(
'success', $this->
lng->txt(
"msg_obj_modified"),
true);
850 $this->
ctrl->redirect($this,
"editProperties");
852 $this->pg_obj->addHierIDs();
859 $this->content_obj->setHorizontalAlign(
"Right");
865 $this->content_obj->setHorizontalAlign(
"Left");
871 $this->content_obj->setHorizontalAlign(
"Center");
877 $this->content_obj->setHorizontalAlign(
"LeftFloat");
883 $this->content_obj->setHorizontalAlign(
"RightFloat");
893 $html = $this->
form->getHTML();
908 $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
911 $this->
form->checkInput();
913 $import_table = trim($this->
form->getInput(
"import_table"));
916 if (!empty($import_table)) {
917 switch ($this->
form->getInput(
"import_type")) {
922 $this->content_obj->importSpreadsheet($this->
form->getInput(
"language"), $import_table);
926 $this->content_obj->addRows(
927 $this->
form->getInput(
"nr_rows"),
928 $this->
form->getInput(
"nr_cols")
934 $frtype = $this->
form->getInput(
"first_row_style");
936 $this->content_obj->setFirstRowStyle($frtype);
939 $this->updated = $this->pg_obj->update();
941 if ($this->updated ===
true) {
950 $this->
ctrl->returnToParent($this,
"jump" . $this->hier_id);
968 $ilTabs->setSubTabActive(
"cont_alignment");
969 $ilTabs->setTabActive(
"cont_table_cell_properties");
974 $form->
setTitle($this->
lng->txt(
"cont_table_cell_properties"));
979 "Left" =>
$lng->
txt(
"cont_left"),
980 "Center" =>
$lng->
txt(
"cont_center"),
981 "Right" =>
$lng->
txt(
"cont_right")
993 $html .=
"<br />" . $this->renderTable(
"table_edit",
"alignment") .
"</form>";
1004 $targets = $this->request->getStringArray(
"target");
1005 if (count($targets) > 0) {
1006 foreach ($targets as $k => $value) {
1008 $cid = explode(
":", $k);
1009 $this->content_obj->setTDAlignment(
1011 $this->request->getString(
"alignment"),
1017 $this->updated = $this->pg_obj->update();
1018 $this->tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
1020 $this->
ctrl->redirect($this,
"editCellAlignment");
1033 $this->tpl->addJavaScript(
"assets/js/AdvancedSelectionList.js");
1035 $this->tpl->setContent($this->getEditDataTable(
true));
1038 public function getEditDataTable(
bool $initial =
false):
string 1045 $dtpl =
new ilTemplate(
"tpl.tabledata2.html",
true,
true,
"components/ILIAS/COPage");
1046 $dtpl->setVariable(
"FORMACTION", $this->
ctrl->getFormAction($this,
"tableAction"));
1047 $dtpl->setVariable(
"HIERID", $this->hier_id);
1048 $dtpl->setVariable(
"PCID", $this->pc_id);
1049 $class = $pc_tab->getClass();
1050 if ($class ===
"") {
1051 $class =
"StandardTable";
1053 $template_classes = [];
1054 if ($this->
getStyleId() > 0 && $pc_tab->getTemplate() !=
"") {
1057 $template_classes = $style->getTemplateClasses(
$id);
1058 if ($template_classes[
"table"] !==
"") {
1059 $class = $template_classes[
"table"];
1062 $dtpl->setVariable(
"TABLE_CLASS",
"ilc_table" . $class);
1066 $ilCtrl->getFormAction($this,
"updateJS")
1072 $nodes = $this->dom_util->path($this->dom,
$path);
1074 $total_rows = count($nodes);
1075 foreach ($nodes as $node) {
1076 $path2 =
"//PageContent[@HierId='" . $this->
getHierId() .
"']" .
1077 "/Table/TableRow[$i+1]/TableData";
1078 $nodes2 = $this->dom_util->path($this->dom, $path2);
1081 $total_cols = count($nodes2);
1083 foreach ($nodes2 as $node2) {
1085 $dtpl->touchBlock(
"empty_td");
1088 $move_forward =
false;
1089 $move_backward =
false;
1091 if (count($nodes2) == 1) {
1094 $move_forward =
true;
1096 } elseif ($j == (count($nodes2) - 1)) {
1097 $move_backward =
true;
1099 $move_forward =
true;
1100 $move_backward =
true;
1102 $dtpl->setCurrentBlock(
"col_icon");
1103 $dtpl->setVariable(
"NR_COLUMN", $j + 1);
1104 $dtpl->setVariable(
"PCID_COLUMN", $node2->getAttribute(
"PCID"));
1106 $dtpl->parseCurrentBlock();
1109 $dtpl->setCurrentBlock(
"row");
1110 $dtpl->parseCurrentBlock();
1114 foreach ($nodes2 as $node2) {
1118 if (count($nodes) == 1) {
1119 $move_type =
"none";
1121 $move_type =
"forward";
1123 } elseif ($i == (count($nodes) - 1)) {
1124 $move_type =
"backward";
1126 $move_type =
"both";
1128 $dtpl->setCurrentBlock(
"row_icon");
1129 $dtpl->setVariable(
"NR_ROW", $i + 1);
1130 $dtpl->setVariable(
"PCID_ROW", $node2->getAttribute(
"PCID"));
1131 $dtpl->setVariable(
"ROW_CAPTION", $i + 1);
1132 $dtpl->parseCurrentBlock();
1136 if ($node2->getAttribute(
"Hidden") !=
"Y") {
1138 $dtpl->touchBlock(
"cell_type");
1143 $dtpl->setCurrentBlock(
"cell");
1145 $dtpl->setVariable(
"PAR_TA_NAME",
"cell[" . $i .
"][" . $j .
"]");
1146 $dtpl->setVariable(
"PAR_TA_ID",
"cell_" . $i .
"_" . $j);
1147 $dtpl->setVariable(
"PAR_ROW", (
string) $i);
1148 $dtpl->setVariable(
"PAR_COLUMN", (
string) $j);
1156 $dtpl->setVariable(
"CELL_TAG",
"td");
1159 $node_class = $node2->getAttribute(
"Class");
1160 $class = $this->getCellClass(
1168 if ($class !==
"") {
1169 $dtpl->setVariable(
"CELL_CLASS",
"ilc_table_cell_" . $class);
1177 $cs = $node2->getAttribute(
"ColSpan");
1178 $width = (
int) $node2->getAttribute(
"Width");
1179 $rs = $node2->getAttribute(
"RowSpan");
1181 $dtpl->setVariable(
"WIDTH", $width);
1183 $align = (string) $node2->getAttribute(
"HorizontalAlign");
1184 if ($align !==
"") {
1185 $dtpl->setVariable(
"ALIGN", $align);
1187 $dtpl->setVariable(
"HEIGHT",
"80");
1189 $dtpl->setVariable(
"COLSPAN",
'colspan="' . $cs .
'"');
1193 $dtpl->setVariable(
"ROWSPAN",
'rowspan="' . $rs .
'"');
1196 $dtpl->parseCurrentBlock();
1200 $dtpl->setCurrentBlock(
"row");
1201 $dtpl->parseCurrentBlock();
1204 $dtpl->setVariable(
"TXT_ACTION", $this->
lng->txt(
"cont_table"));
1207 $dtpl->setCurrentBlock(
"int_link_prep");
1211 $ilCtrl->getLinkTargetByClass(
1212 array(
"ilpageeditorgui",
"ilinternallinkgui"),
1220 $dtpl->parseCurrentBlock();
1222 $html = $dtpl->get();
1230 protected function getCellClass(
1234 array $template_classes,
1244 if (($template_classes[
"even_row"] ??
"") !==
"") {
1246 $class = $template_classes[
"even_row"];
1250 if (($template_classes[
"odd_row"] ??
"") !==
"") {
1252 $class = $template_classes[
"odd_row"];
1256 if (($template_classes[
"even_col"] ??
"") !==
"") {
1258 $class = $template_classes[
"even_col"];
1262 if (($template_classes[
"odd_col"] ??
"") !==
"") {
1264 $class = $template_classes[
"odd_col"];
1268 if (($template_classes[
"row_foot"] ??
"") !==
"") {
1269 if ($i + $pc_tab->getFooterRows() >= $total_rows) {
1270 $class = $template_classes[
"row_foot"];
1274 if (($template_classes[
"col_foot"] ??
"") !==
"") {
1275 if ($j + $pc_tab->getFooterCols() >= $total_cols) {
1276 $class = $template_classes[
"col_foot"];
1280 if (($template_classes[
"row_head"] ??
"") !==
"") {
1281 if ($i < $pc_tab->getHeaderRows()) {
1282 $class = $template_classes[
"row_head"];
1286 if (($template_classes[
"col_head"] ??
"") !==
"") {
1287 if ($j < $pc_tab->getHeaderCols()) {
1288 $class = $template_classes[
"col_head"];
1292 if ($class ===
"") {
1293 if ($i < $pc_tab->getHeaderRows()) {
1294 $class =
"StandardHeader";
1298 if ($class ===
"") {
1299 $class =
"StandardCell1";
1303 if ($node_class !==
"") {
1304 $class = $node_class;
1314 $chr = ($nr - 1) % $base;
1315 $cap = chr($chr + 65) . $cap;
1316 $nr = ($nr - 1 - $chr) / $base;
1323 $tab_node = $this->content_obj->getDomNode();
1328 foreach ($tab_node->firstChild->childNodes as $child) {
1331 foreach ($child->childNodes as $child2) {
1333 foreach ($child2->childNodes as $cell_content_node) {
1334 $content .= $this->dom_util->dump($cell_content_node);
1342 $trans = $this->pg_obj->getLanguageVariablesXML();
1343 $mobs = $this->pg_obj->getMultimediaXML();
1351 $content = $content . $mobs . $trans . $template_xml;
1355 !$this->pg_obj->getPageConfig()->getPreventHTMLUnmasking(),
1370 $ilUser = $DIC->user();
1371 $content =
"<dummy>" . $content .
"</dummy>";
1375 $params = array(
'webspace_path' => $wb_path,
'enlarge_path' => $enlarge_path);
1376 $output = $this->xsl->process($content,
$params);
1380 $output = str_replace(
"<",
"<", $output);
1381 $output = str_replace(
">",
">", $output);
1382 $output = str_replace(
"&",
"&", $output);
1386 if (isset($page_object)) {
1387 $defs = $this->pc_definition->getPCDefinitions();
1388 foreach ($defs as $def) {
1389 $pc_class = $def[
"pc_class"];
1390 $pc_obj =
new $pc_class($page_object);
1393 $output = $pc_obj->modifyPageContentPostXsl((
string) $output,
"presentation",
false);
static getWebspaceDir(string $mode="filesystem")
get webspace directory
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
editData()
Edit data of table.
ilPageContent $content_obj
renderCell( $content, $unmask=true, $page_object=null)
Static render table function.
static getInitHTML(string $a_url)
Get initialisation HTML to use internal link editing.
getCharacteristicsOfCurrentStyle(array $a_type)
Get characteristics of current style and call setCharacteristics, if style is given.
static _renderTable(string $content, string $a_mode="table_edit", string $a_submode="", ilPCTable $a_table_obj=null, bool $unmask=true, ilPageObject $page_object=null)
setAlignment()
Set cell alignments.
initPropertiesForm(string $a_mode="edit")
__construct(ilPageObject $a_pg_obj, ?ilPageContent $a_content_obj, string $a_hier_id, string $a_pc_id="")
static _lookupTemplateIdByName(int $a_style_id, string $a_name)
Lookup table template preview.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
txt(string $a_topic, string $a_default_lang_fallback_mod="")
gets the text for a given topic if the topic is not in the list, the topic itself with "-" will be re...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
if(! $DIC->user() ->getId()||!ilLTIConsumerAccess::hasCustomProviderCreationAccess()) $params
setCellPropertiesSubTabs()
ILIAS COPage PC PCDefinition $pc_definition
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
setStyles()
Set cell styles.
static _addStyleCheckboxes(string $a_output, ilPCTable $a_table)
Add style checkboxes in edit mode.
setCharacteristics(array $a_chars)
create()
create new table in dom and update page in db
Content object of ilPageObject (see ILIAS DTD).
static _addSpanInputs(string $a_output, ilPCTable $a_table)
Add span inputs.
User Interface for Editing of Page Content Objects (Paragraphs, Tables, ...)
setContent(string $a_html)
Sets content for standard template.
setBasicTableCellStyles()
getTemplateXML()
Get table template xml.
static _addAlignmentCheckboxes(string $a_output, ilPCTable $a_table)
Add alignment checkboxes in edit mode.
Class ilPageObject Handles PageObjects of ILIAS Learning Modules (see ILIAS DTD)
getFormTitle(string $a_mode="edit")
static getBaseContentStylePath()
ilGlobalTemplateInterface $tpl
static getImagePath(string $image_name, string $module_path="", string $mode="output", bool $offline=false)
get image path (for images located in a template directory)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
ILIAS COPage Dom DomUtil $dom_util
getColumnCaption(int $nr)
getEditorScriptTag(string $form_pc_id="", string $form_cname="")
getAllCellWidths()
Get all cell widths.
saveProperties()
save table properties in db and return to page edit screen
form( $class_path, string $cmd, string $submit_caption="")
getAllCellSpans()
Get all cell spans.
setTabs(string $data_tab_txt_key="")
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
__construct(Container $dic, ilPlugin $plugin)
getTemplateOptions(string $a_type="")
This class represents a text area property in a property form.
ILIAS COPage Xsl XslManager $xsl
setProperties()
Set properties from input form.
static _addWidthInputs(string $a_output, ilPCTable $a_table)
Add width inputs.
static _lookupType(int $id, bool $reference=false)
getAllCellClasses()
Get all cell classes.
setWidths()
Set cell widths.
getPropertiesFormValues()
setSpans()
Set cell spans.
getCellContent(int $i, int $j)