26 protected \ILIAS\HTTP\Services
$http;
37 $this->main_tpl =
$DIC->ui()->mainTemplate();
38 $this->
lng = $DIC->language();
39 $this->
ctrl = $DIC->ctrl();
40 $this->
tabs = $DIC->tabs();
43 $this->tool_context =
$DIC->globalScreen()->tool()->context();
44 $this->
http = $DIC->http();
49 if ($a_mode ===
"create") {
50 return $this->
lng->txt(
"cont_ed_insert_dtab");
52 return $this->
lng->txt(
"cont_table_properties");
64 $next_class = $this->
ctrl->getNextClass($this);
67 $cmd = $this->
ctrl->getCmd();
69 switch ($next_class) {
86 public function update(
bool $a_redirect =
true): void
92 $cell = $this->request->getArrayArray(
"cell");
93 if (is_array($cell)) {
94 foreach ($cell as $i => $row) {
96 foreach ($row as $j => $cell) {
100 $this->content_obj->getLanguage()
107 $this->updated = $this->content_obj->setData(
$data);
109 if ($this->updated !==
true) {
114 $this->updated = $this->pg_obj->update();
117 $this->main_tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
118 $this->
ctrl->redirect($this,
"editData");
130 if ($this->request->getString(
"cancel_update") !=
"") {
132 $this->
ctrl->returnToParent($this,
"jump" . $this->hier_id);
137 $post = $this->
http->request()->getParsedBody();
138 foreach (
$post as $k => $content) {
139 if (substr($k, 0, 5) !=
"cell_") {
145 $p1 = strpos($div,
'>');
146 $div = substr($div, $p1 + 1);
147 $div =
"<div class='ilc_text_block_TableContent'>" . $div;
149 if ($text ===
false) {
150 $ilCtrl->returnToParent($this,
"jump" . $this->hier_id);
152 $text = $text[
"text"];
156 $this->content_obj->getLanguage(),
163 $id = explode(
"_", $k);
168 $this->updated = $this->content_obj->setData(
$data);
170 if ($this->updated !==
true) {
175 $this->updated = $this->pg_obj->update();
177 $tab_cmd_id = $this->request->getInt(
"tab_cmd_id");
178 $tab_cmd_type = $this->request->getString(
"tab_cmd_type");
179 $tab_cmd = $this->request->getString(
"tab_cmd");
183 $this->pg_obj->addHierIDs();
185 if ($tab_cmd !=
"") {
186 $cell_hier_id = ($tab_cmd_type ==
"col")
187 ? $this->hier_id .
"_1_" . ($tab_cmd_id + 1)
188 : $this->hier_id .
"_" . ($tab_cmd_id + 1) .
"_1";
189 $cell_obj = $this->pg_obj->getContentObject($cell_hier_id);
190 if (is_object($cell_obj)) {
191 $cell_obj->$tab_cmd();
192 $ret = $this->pg_obj->update();
194 $this->main_tpl->setOnScreenMessage(
'failure', $ret[0][1],
true);
201 $this->main_tpl->setOnScreenMessage(
'success',
$lng->
txt(
"msg_obj_modified"),
true);
203 if ($this->request->getString(
"save_return") !=
"") {
204 $this->
ctrl->returnToParent($this,
"jump" . $this->hier_id);
206 $this->
ctrl->redirect($this,
"editData");
226 $this->pg_obj->stripHierIDs();
227 $this->pg_obj->addHierIDs();
228 $ilCtrl->
setParameter($this,
"hier_id", $this->content_obj->readHierId());
229 $ilCtrl->setParameter($this,
"pc_id", $this->content_obj->readPCId());
230 $ilCtrl->redirect($this,
"editData");
241 $this->pg_obj->addHierIDs();
243 $type = $this->request->getString(
"type");
244 $action = $this->request->getString(
"action");
245 $id = $this->request->getInt(
"id");
247 $cell_hier_id = ($type ==
"col")
248 ? $this->hier_id .
"_1_" . (
$id + 1)
249 : $this->hier_id .
"_" . (
$id + 1) .
"_1";
250 $cell_obj = $this->pg_obj->getContentObject($cell_hier_id);
251 if (is_object($cell_obj)) {
252 $cell_obj->$action();
253 $this->edit_repo->setPageError($this->pg_obj->update());
255 $ilCtrl->redirect($this,
"editData");
261 public function setTabs(
string $data_tab_txt_key =
""): void
263 parent::setTabs(
"cont_ed_edit_data");
268 $cmd = $this->
ctrl->getCmd();
269 if ($cmd ==
"update") {
273 $this->content_obj->getCellText($i, $j),
280 $this->content_obj->readPCId() .
"_" . $i .
"_" . $j
285 $s_text = str_replace(
"{",
"{", $s_text);
286 $s_text = str_replace(
"}",
"}", $s_text);
293 $a_seleted_value =
"";
304 for ($i = 1; $i <= 20; $i++) {
310 $cols->setOptions($nr);
316 $rows->setOptions($nr);
322 $this->
lng->txt(
"cont_table_style"),
328 if (is_object($this->content_obj)) {
329 if ((
$chars[$a_seleted_value] ??
"") ==
"" && ($this->content_obj->getClass() !=
"")) {
331 array($this->content_obj->getClass() => $this->content_obj->getClass()),
337 foreach (
$chars as $k => $char) {
338 if (strpos($k,
":") > 0) {
339 $t = explode(
":", $k);
340 $html = $this->style->lookupTemplatePreview($t[1]) .
'<div style="clear:both;" class="small">' . $char .
"</div>";
342 $html =
'<table class="ilc_table_' . $k .
'"><tr><td class="small">' .
343 $char .
'</td></tr></table>';
346 $options[$k] = $char;
349 $char_prop->setOptions($options);
350 $char_prop->setValue(
"StandardTable");
367 $a_seleted_value =
"";
368 $ilCtrl = $this->ctrl;
370 $ilUser = $this->user;
373 $form->setFormAction($ilCtrl->getFormAction($this));
374 $form->setShowTopButtons(
false);
375 $form->setTitle($this->getFormTitle(
"edit"));
379 $this->
lng->txt(
"cont_table_style"),
382 $chars = $this->getCharacteristics();
383 $templates = $this->getTemplateOptions();
384 $chars = array_merge($templates, $chars);
385 if (is_object($this->content_obj)) {
386 if (($chars[$a_seleted_value] ??
"") ==
"" && ($this->content_obj->getClass() !=
"")) {
387 $chars = array_merge(
388 array($this->content_obj->getClass() => $this->content_obj->getClass()),
394 foreach ($chars as $k => $char) {
395 if (strpos($k,
":") > 0) {
396 $t = explode(
":", $k);
397 $html = $this->style->lookupTemplatePreview($t[1]) .
'<div style="clear:both;" class="small">' . $char .
"</div>";
399 $html =
'<table class="ilc_table_' . $k .
'"><tr><td class="small">' .
400 $char .
'</td></tr></table>';
403 $options[$k] = $char;
405 $char_prop->setOptions($options);
406 if (count($chars) > 1) {
407 if ($this->content_obj->getTemplate() !==
"") {
410 $this->content_obj->getTemplate();
412 $val = $this->content_obj->getClass();
414 $char_prop->setValue($val);
415 $form->addItem($char_prop);
420 if ($this->content_obj->getHeaderRows() > 0) {
421 $cb->setChecked(
true);
431 $a_seleted_value =
"";
432 $ilCtrl = $this->ctrl;
434 $ilUser = $this->user;
437 $form->setFormAction($ilCtrl->getFormAction($this));
438 $form->setShowTopButtons(
false);
439 $form->setTitle($this->getFormTitle(
"create"));
446 $import_data->setInfo($this->
lng->txt(
"cont_table_import_info"));
447 $import_data->setRows(8);
448 $import_data->setCols(50);
449 $form->addItem($import_data);
453 $this->
lng->txt(
"cont_table_style"),
454 "import_characteristic"
456 $chars = $this->getCharacteristics();
457 $templates = $this->getTemplateOptions();
458 $chars = array_merge($templates, $chars);
459 if (is_object($this->content_obj)) {
460 if (($chars[$a_seleted_value] ??
"") ==
"" && ($this->content_obj->getClass() !=
"")) {
461 $chars = array_merge(
462 array($this->content_obj->getClass() => $this->content_obj->getClass()),
468 foreach ($chars as $k => $char) {
469 if (strpos($k,
":") > 0) {
470 $t = explode(
":", $k);
471 $html = $this->style->lookupTemplatePreview($t[1]) .
'<div style="clear:both;" class="small">' . $char .
"</div>";
473 $html =
'<table class="ilc_table_' . $k .
'"><tr><td class="small">' .
474 $char .
'</td></tr></table>';
477 $options[$k] = $char;
479 if (count($chars) > 1) {
480 $char_prop->setOptions($options);
481 $char_prop->setValue(
"StandardTable");
482 $form->addItem($char_prop);
490 $form->addCommandButton(
"create",
$lng->txt(
"save"));
491 $form->addCommandButton(
"cancelCreate",
$lng->txt(
"cancel"));
499 $ilCtrl = $this->
ctrl;
501 $ilUser = $this->user;
504 $form->setFormAction($ilCtrl->getFormAction($this));
505 $form->setShowTopButtons(
false);
506 $form->setTitle($this->
lng->txt(
"cont_cell_properties"));
511 $this->
lng->txt(
"cont_style"),
515 $this->setBasicTableCellStyles();
516 $this->getCharacteristicsOfCurrentStyle([
"table_cell"]);
517 $chars = $this->getCharacteristics();
518 $options = array_merge(array(
"" => $this->
lng->txt(
"none")), $chars);
519 foreach ($options as $k => $option) {
520 $html =
'<table border="0" cellspacing="0" cellpadding="0"><tr><td class="ilc_table_cell_' . $k .
'">' .
521 $option .
'</td></tr></table>';
525 if (count($options) > 1) {
526 $style->setOptions($options);
527 $style_cb->addSubItem($style);
528 $form->addItem($style_cb);
533 $ti->setMaxLength(20);
535 $width_cb->addSubItem($ti);
536 $form->addItem($width_cb);
541 "" =>
$lng->txt(
"default"),
542 "Left" =>
$lng->txt(
"cont_left"),
543 "Center" =>
$lng->txt(
"cont_center"),
544 "Right" =>
$lng->txt(
"cont_right")
547 $si->setOptions($options);
548 $al_cb->addSubItem($si);
549 $form->addItem($al_cb);
$id
plugin.php for ilComponentBuildPluginInfoObjectiveTest::testAddPlugins
setParameter(object $a_gui_obj, string $a_parameter, $a_value)
@inheritDoc
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...
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...
getCellContent(int $i, int $j)
ILIAS HTTP Services $http
getNewTableObject()
Get new table object.
afterCreation()
After creation processing.
tableAction()
Perform operation on table (adding, moving, deleting rows/cols)
__construct(ilPageObject $a_pg_obj, ?ilPageContent $a_content_obj, string $a_hier_id, string $a_pc_id="")
update(bool $a_redirect=true)
Update table data in dom and update page in db.
getFormTitle(string $a_mode="edit")
setTabs(string $data_tab_txt_key="")
Set tabs.
ilGlobalTemplateInterface $main_tpl
updateJS()
Update via JavaScript.
executeCommand()
execute command
static xml2outputJS(string $s_text)
Prepare content for js output.
static xml2output(string $a_text, bool $a_wysiwyg=false, bool $a_replace_lists=true, bool $unmask=true)
Converts xml from DB to output in edit textarea.
static handleAjaxContentPost(string $text)
Post input2xml handling of ajax content.
static _input2xml(string $a_text, string $a_lang, bool $a_wysiwyg=false, bool $a_handle_lists=true)
Converts user input to xml User input comes as bb code information, e.g.
static handleAjaxContent(string $a_content)
Handle ajax content.
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
getTemplateOptions(string $a_type="")
Get table templates.
editData()
Edit data of table.
getCharacteristicsOfCurrentStyle(array $a_type)
Get characteristics of current style and call setCharacteristics, if style is given.
setCharacteristics(array $a_chars)
Content object of ilPageObject (see ILIAS DTD).
Class ilPageObject Handles PageObjects of ILIAS Learning Modules (see ILIAS DTD)
This class represents a text area property in a property form.
This class represents a text property in a property form.
static stripSlashes(string $a_str, bool $a_strip_html=true, string $a_allow="")
static http()
Fetches the global http state from ILIAS.
__construct(Container $dic, ilPlugin $plugin)
@inheritDoc