4require_once(
"./Services/COPage/classes/class.ilPCGrid.php");
5require_once(
"./Services/COPage/classes/class.ilPCGridCell.php");
6require_once(
"./Services/COPage/classes/class.ilPageContentGUI.php");
27 public function __construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id =
"")
31 $this->ctrl =
$DIC->ctrl();
32 $ilToolbar =
$DIC->toolbar();
33 $ilTabs =
$DIC->tabs();
35 $this->toolbar = $ilToolbar;
36 $this->tabs = $ilTabs;
37 parent::__construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id);
46 $next_class = $this->ctrl->getNextClass($this);
49 $cmd = $this->ctrl->getCmd();
51 switch ($next_class) {
67 if ($this->ctrl->getCmd() ==
"create") {
68 $form->setValuesByPost();
70 $this->tpl->setContent(
$form->getHTML());
81 $form = $this->initForm();
82 $this->getFormValues(
$form);
84 $this->tpl->setContent(
$html);
94 include_once(
"./Services/Form/classes/class.ilPropertyFormGUI.php");
96 $form->setFormAction($this->ctrl->getFormAction($this));
97 $form->setTitle($this->lng->txt(
"cont_ed_insert_grid"));
98 $form->setDescription($this->lng->txt(
"cont_ed_insert_grid_info"));
101 $ni =
new ilNumberInputGUI($this->lng->txt(
"cont_grid_nr_cells"),
"number_of_cells");
102 $ni->setMaxLength(2);
107 $sh->setTitle($this->lng->txt(
"cont_ed_grid_col_width"));
108 $sh->setInfo($this->lng->txt(
"cont_ed_grid_col_width_info"));
116 $si->setInfo($this->lng->txt(
"cont_grid_width_" .
$s .
"_info"));
122 $form->addCommandButton(
"create_grid", $this->lng->txt(
"save"));
123 $form->addCommandButton(
"cancelCreate", $this->lng->txt(
"cancel"));
134 if (
$form->checkInput()) {
136 $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
138 for (
$i = 0;
$i < (int)
$_POST[
"number_of_cells"];
$i++) {
142 $this->updated = $this->pg_obj->update();
144 if ($this->updated ===
true) {
151 $form->setValuesByPost();
152 $this->tpl->setContent(
$form->getHTML());
161 $this->pg_obj->stripHierIDs();
162 $this->pg_obj->addHierIDs();
163 $this->ctrl->setParameter($this,
"hier_id", $this->content_obj->readHierId());
164 $this->ctrl->setParameter($this,
"pc_id", $this->content_obj->readPCId());
165 $this->content_obj->setHierId($this->content_obj->readHierId());
166 $this->
setHierId($this->content_obj->readHierId());
167 $this->content_obj->setPCId($this->content_obj->readPCId());
181 $this->toolbar->addButton(
182 $this->lng->txt(
"cont_add_cell"),
183 $this->ctrl->getLinkTarget($this,
"addCell")
187 $this->tabs->activateTab(
"settings");
188 include_once(
"./Services/COPage/classes/class.ilPCGridCellTableGUI.php");
190 $this->tpl->setContent($table_gui->getHTML());
198 if (is_array(
$_POST[
"position"])) {
200 $this->content_obj->savePositions($positions);
202 $this->updated = $this->pg_obj->update();
203 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
204 $this->ctrl->redirect($this,
"edit");
212 $this->content_obj->addCell(
"",
"",
"",
"");
213 $this->updated = $this->pg_obj->update();
215 ilUtil::sendSuccess($this->lng->txt(
"cont_added_cell"),
true);
216 $this->ctrl->redirect($this,
"edit");
226 if (!is_array(
$_POST[
"tid"]) || count(
$_POST[
"tid"]) == 0) {
228 $this->ctrl->redirect($this,
"edit");
230 include_once(
"./Services/Utilities/classes/class.ilConfirmationGUI.php");
232 $cgui->setFormAction($this->ctrl->getFormAction($this));
233 $cgui->setHeaderText($this->lng->txt(
"cont_grid_cell_confirm_deletion"));
234 $cgui->setCancel($this->lng->txt(
"cancel"),
"cancelCellDeletion");
235 $cgui->setConfirm($this->lng->txt(
"delete"),
"deleteCells");
237 foreach (
$_POST[
"tid"] as $k =>
$i) {
238 $id = explode(
":", $k);
239 $id = explode(
"_",
$id[0]);
240 $cgui->addItem(
"tid[]", $k, $this->lng->txt(
"cont_grid_cell") .
" " .
$id[count(
$id) - 1]);
243 $this->tpl->setContent($cgui->getHTML());
252 $this->ctrl->redirect($this,
"edit");
262 if (is_array(
$_POST[
"tid"])) {
263 foreach (
$_POST[
"tid"] as $tid) {
264 $ids = explode(
":", $tid);
265 $this->content_obj->deleteGridCell($ids[0], $ids[1]);
268 $this->updated = $this->pg_obj->update();
270 $ilCtrl->redirect($this,
"edit");
279 $this->tabs->setBackTarget(
280 $this->lng->txt(
"pg"),
281 $this->ctrl->getParentReturn($this)
286 $this->lng->txt(
"settings"),
287 $this->ctrl->getLinkTarget($this,
"edit")
300 $this->content_obj->saveWidths($width_s, $width_m, $width_l, $width_xl);
302 if (is_array(
$_POST[
"position"])) {
304 $this->content_obj->savePositions($positions);
306 $this->updated = $this->pg_obj->update();
307 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
308 $this->ctrl->redirect($this,
"edit");
An exception for terminatinating execution or to throw for unit testing.
Confirmation screen class.
Responsive Grid UI class.
confirmCellDeletion()
Confirm cell deletion.
create()
Create new grid element.
editProperties()
Edit grid cells.
cancelCellDeletion()
Cancel cell deletion.
executeCommand()
Execute command.
initCreationForm()
Init creation form.
saveCells()
Save cell properties.
deleteCells()
Delete Cells.
saveCellData()
Save tabs properties in db and return to page edit screen.
__construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id="")
Constructor.
afterCreation()
After creation processing.
static getSizes()
Get sizes.
static getWidths()
Get widths.
User Interface for Editing of Page Content Objects (Paragraphs, Tables, ...)
displayValidationError()
display validation errors
setHierId($a_hier_id)
get hierarchical id in dom object
static sendInfo($a_info="", $a_keep=false)
Send Info Message to Screen.
static stripSlashesArray($a_arr, $a_strip_html=true, $a_allow="")
Strip slashes from array.
if(!array_key_exists('StateId', $_REQUEST)) $id
if(isset($_POST['submit'])) $form