4require_once(
"./Services/COPage/classes/class.ilPCFileList.php");
5require_once(
"./Services/COPage/classes/class.ilPageContentGUI.php");
49 public function __construct(&$a_pg_obj, &$a_content_obj, $a_hier_id, $a_pc_id =
"")
53 $this->
user = $DIC->user();
54 $this->tabs =
$DIC->tabs();
55 $this->ctrl =
$DIC->ctrl();
56 $this->tpl =
$DIC[
"tpl"];
57 $this->tree =
$DIC->repositoryTree();
58 $this->lng =
$DIC->language();
59 $this->toolbar =
$DIC->toolbar();
61 parent::__construct($a_pg_obj, $a_content_obj, $a_hier_id, $a_pc_id);
62 $this->
setCharacteristics(array(
"FileListItem" => $this->lng->txt(
"cont_FileListItem")));
71 $next_class = $this->ctrl->getNextClass($this);
76 $cmd = $this->ctrl->getCmd();
78 switch ($next_class) {
90 public function insert($a_form =
null)
95 if (
$_GET[
"subCmd"] ==
"insertNew") {
96 $_SESSION[
"cont_file_insert"] =
"insertNew";
98 if (
$_GET[
"subCmd"] ==
"insertFromRepository") {
99 $_SESSION[
"cont_file_insert"] =
"insertFromRepository";
101 if (
$_GET[
"subCmd"] ==
"insertFromWorkspace") {
102 $_SESSION[
"cont_file_insert"] =
"insertFromWorkspace";
104 if ((
$_GET[
"subCmd"] ==
"") &&
$_SESSION[
"cont_file_insert"] !=
"") {
108 switch (
$_GET[
"subCmd"]) {
109 case "insertFromWorkspace":
113 case "insertFromRepository":
123 $ilTabs->setSubTabActive(
"cont_new_file");
127 if ($a_form !=
null) {
132 $this->tpl->setContent(
$form->getHTML());
146 $ilTabs->setSubTabActive(
"cont_file_from_repository");
151 $this->tpl->setContent(
$form->getHTML());
163 if ($a_cmd ==
"insert") {
169 $ilTabs->setSubTabActive(
"cont_file_from_repository");
170 $ilCtrl->setParameter($this,
"subCmd",
"insertFromRepository");
172 include_once(
"./Services/COPage/classes/class.ilPCFileItemFileSelectorGUI.php");
180 if (!$exp->handleCommand()) {
181 $tpl->setContent($exp->getHTML());
196 if ($a_cmd ==
"insert") {
202 $ilTabs->setSubTabActive(
"cont_file_from_workspace");
204 include_once(
"./Services/PersonalWorkspace/classes/class.ilWorkspaceExplorerGUI.php");
206 $ilCtrl->setParameter($this,
"subCmd",
"selectFile");
207 $exp->setCustomLinkTarget(
$ilCtrl->getLinkTarget($this, $a_cmd));
208 $ilCtrl->setParameter($this,
"subCmd",
"insertFromWorkspace");
209 $exp->setTypeWhiteList(array(
"wsrt",
"wfld",
"file"));
210 $exp->setSelectableTypes(array(
"file"));
211 if ($exp->handleCommand()) {
214 $tpl->setContent($exp->getHTML());
222 include_once(
"./Modules/File/classes/class.ilObjFile.php");
224 $mode = (
$_POST[
"file_ref_id"] !=
"")
228 if (!
$form->checkInput()) {
229 $form->setValuesByPost();
235 if (substr(
$_POST[
"file_ref_id"], 0, 4) ==
"wsp_") {
239 elseif (
$_POST[
"file_ref_id"] == 0) {
241 $fileObj->setType(
"file");
242 $fileObj->setTitle($_FILES[
"file"][
"name"]);
243 $fileObj->setDescription(
"");
244 $fileObj->setFileName($_FILES[
"file"][
"name"]);
245 $fileObj->setFileType($_FILES[
"file"][
"type"]);
246 $fileObj->setFileSize($_FILES[
"file"][
"size"]);
247 $fileObj->setMode(
"filelist");
250 $fileObj->createDirectory();
251 $fileObj->raiseUploadError(
false);
252 $fileObj->getUploadFile(
253 $_FILES[
"file"][
"tmp_name"],
254 $_FILES[
"file"][
"name"]
265 $this->content_obj->create($this->pg_obj, $this->hier_id, $this->pc_id);
267 $this->content_obj->appendItem(
269 $fileObj->getFileName(),
270 $fileObj->getFileType()
273 $this->updated = $this->pg_obj->update();
274 if ($this->updated ===
true) {
275 $this->ctrl->returnToParent($this,
"jump" . $this->hier_id);
289 $this->tpl->setContent(
$form->getHTML());
303 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
306 if ($a_mode !=
"add_file") {
309 $ti->setMaxLength(80);
314 require_once(
"Services/MetaData/classes/class.ilMDLanguageItem.php");
321 if (in_array($a_mode, array(
"create",
"add_file"))) {
324 $fi->setRequired(
true);
326 } elseif (in_array($a_mode, array(
"select_file"))) {
330 if (isset(
$_GET[
"file_ref_id"])) {
331 include_once(
"./Modules/File/classes/class.ilObjFile.php");
333 if (is_object($file_obj)) {
336 $hi->setValue((
int)
$_GET[
"file_ref_id"]);
339 $ne->setValue($file_obj->getTitle());
341 } elseif (isset(
$_GET[
"fl_wsp_id"])) {
343 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
345 $node =
$tree->getNodeData((
int)
$_GET[
"fl_wsp_id"]);
347 include_once(
"./Modules/File/classes/class.ilObjFile.php");
348 $file_obj =
new ilObjFile($node[
"obj_id"],
false);
349 if (is_object($file_obj)) {
352 $hi->setValue(
"wsp_" . (
int) $node[
"obj_id"]);
355 $ne->setValue($file_obj->getTitle());
357 $this->tpl->parseCurrentBlock();
366 $ti->setValue($this->content_obj->getListTitle());
367 $si->setValue($this->content_obj->getLanguage());
368 $form->addCommandButton(
"saveProperties",
$lng->txt(
"save"));
369 $form->addCommandButton(
"cancelUpdate",
$lng->txt(
"cancel"));
370 $form->setTitle(
$lng->txt(
"cont_edit_file_list_properties"));
378 $s_lang =
$ilUser->getLanguage();
380 $si->setValue($s_lang);
381 $form->addCommandButton(
"create_flst",
$lng->txt(
"save"));
382 $form->addCommandButton(
"cancelCreate",
$lng->txt(
"cancel"));
383 $form->setTitle(
$lng->txt(
"cont_insert_file_list"));
387 $form->addCommandButton(
"insertNewFileItem",
$lng->txt(
"save"));
388 $form->addCommandButton(
"editFiles",
$lng->txt(
"cancel"));
389 $form->setTitle(
$lng->txt(
"cont_insert_file_item"));
404 $this->content_obj->setListTitle(
408 $this->updated = $this->pg_obj->update();
409 if ($this->updated ===
true) {
410 $this->ctrl->returnToParent($this,
"jump" . $this->hier_id);
412 $this->pg_obj->addHierIDs();
429 $ilToolbar->addButton(
430 $lng->txt(
"cont_add_file"),
431 $ilCtrl->getLinkTarget($this,
"addFileItem")
434 include_once(
"./Services/COPage/classes/class.ilPCFileListTableGUI.php");
436 $tpl->setContent($table_gui->getHTML());
452 $ilCtrl->setParameter($this,
"subCmd",
"insertNew");
453 $ilTabs->addSubTabTarget(
455 $ilCtrl->getLinkTarget($this, $cmd),
459 $ilCtrl->setParameter($this,
"subCmd",
"insertFromRepository");
460 $ilTabs->addSubTabTarget(
461 "cont_file_from_repository",
462 $ilCtrl->getLinkTarget($this, $cmd),
465 $ilCtrl->setParameter($this,
"subCmd",
"");
467 if (!
$ilSetting->get(
"disable_personal_workspace") &&
469 $ilCtrl->setParameter($this,
"subCmd",
"insertFromWorkspace");
470 $ilTabs->addSubTabTarget(
471 "cont_file_from_workspace",
472 $ilCtrl->getLinkTarget($this, $cmd),
475 $ilCtrl->setParameter($this,
"subCmd",
"");
478 $ilTabs->setBackTarget(
480 $this->ctrl->getParentReturn($this)
484 "cont_ed_edit_files",
485 $ilCtrl->getLinkTarget($this,
"editFiles"),
492 $ilCtrl->getLinkTarget($this,
"edit"),
507 $files = $this->content_obj->getFileList();
520 $ilCtrl->redirectByClass(
"ilpcfileitemgui",
"newItemAfter");
522 $ilCtrl->redirect($this,
"newFileItem");
533 if (is_array(
$_POST[
"fid"])) {
535 foreach (
$_POST[
"fid"] as $k => $v) {
538 $this->content_obj->deleteFileItems($ids);
540 $this->updated = $this->pg_obj->update();
541 $ilCtrl->redirect($this,
"editFiles");
551 if (is_array(
$_POST[
"position"])) {
552 $this->content_obj->savePositions(
$_POST[
"position"]);
554 $this->updated = $this->pg_obj->update();
555 $ilCtrl->redirect($this,
"editFiles");
565 if (is_array(
$_POST[
"position"])) {
566 $this->content_obj->savePositions(
$_POST[
"position"]);
568 if (is_array(
$_POST[
"class"])) {
569 $this->content_obj->saveStyleClasses(
$_POST[
"class"]);
571 $this->updated = $this->pg_obj->update();
572 $ilCtrl->redirect($this,
"editFiles");
583 $classes = $this->content_obj->getAllClasses();
584 if (count($chars) > 1) {
587 foreach ($classes as $class) {
588 if ($class !=
"" && $class !=
"FileListItem") {
611 if (
$_GET[
"subCmd"] ==
"insertNew") {
612 $_SESSION[
"cont_file_insert"] =
"insertNew";
614 if (
$_GET[
"subCmd"] ==
"insertFromRepository") {
615 $_SESSION[
"cont_file_insert"] =
"insertFromRepository";
617 if (
$_GET[
"subCmd"] ==
"insertFromWorkspace") {
618 $_SESSION[
"cont_file_insert"] =
"insertFromWorkspace";
620 if ((
$_GET[
"subCmd"] ==
"") &&
$_SESSION[
"cont_file_insert"] !=
"") {
624 switch (
$_GET[
"subCmd"]) {
625 case "insertFromWorkspace":
629 case "insertFromRepository":
639 $ilTabs->setSubTabActive(
"cont_new_file");
644 $this->tpl->setContent(
$form->getHTML());
657 if (isset(
$_GET[
"fl_wsp_id"])) {
659 include_once
"Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php";
661 $node =
$tree->getNodeData(
$_GET[
"fl_wsp_id"]);
663 include_once(
"./Modules/File/classes/class.ilObjFile.php");
664 $file_obj =
new ilObjFile($node[
"obj_id"],
false);
667 elseif ($a_file_ref_id == 0) {
672 include_once(
"./Modules/File/classes/class.ilObjFile.php");
673 $file_obj =
new ilObjFile($a_file_ref_id);
675 if (is_object($file_obj)) {
676 $this->content_obj->appendItem(
678 $file_obj->getTitle(),
679 $file_obj->getFileType()
681 $this->updated = $this->pg_obj->update();
682 if ($this->updated ===
true) {
684 $this->ctrl->redirect($this,
"editFiles");
688 $_GET[
"subCmd"] =
"-";
699 if ($_FILES[
"file"][
"name"] ==
"") {
700 $_GET[
"subCmd"] =
"-";
709 include_once(
"./Modules/File/classes/class.ilObjFile.php");
711 $fileObj->setType(
"file");
712 $fileObj->setTitle($_FILES[
"file"][
"name"]);
713 $fileObj->setDescription(
"");
714 $fileObj->setFileName($_FILES[
"file"][
"name"]);
715 $fileObj->setFileType($_FILES[
"file"][
"type"]);
716 $fileObj->setFileSize($_FILES[
"file"][
"size"]);
717 $fileObj->setMode(
"filelist");
719 $fileObj->raiseUploadError(
false);
721 $fileObj->createDirectory();
722 $fileObj->getUploadFile(
723 $_FILES[
"file"][
"tmp_name"],
724 $_FILES[
"file"][
"name"]
742 $this->ctrl->getParentReturn($this),
748 $ilCtrl->setParameter($this,
"subCmd",
"insertNew");
749 $ilTabs->addSubTabTarget(
751 $ilCtrl->getLinkTarget($this, $a_cmd),
755 $ilCtrl->setParameter($this,
"subCmd",
"insertFromRepository");
756 $ilTabs->addSubTabTarget(
757 "cont_file_from_repository",
758 $ilCtrl->getLinkTarget($this, $a_cmd),
761 $ilCtrl->setParameter($this,
"subCmd",
"");
763 if (!
$ilSetting->get(
"disable_personal_workspace") &&
765 $ilCtrl->setParameter($this,
"subCmd",
"insertFromWorkspace");
766 $ilTabs->addSubTabTarget(
767 "cont_file_from_workspace",
768 $ilCtrl->getLinkTarget($this, $a_cmd),
771 $ilCtrl->setParameter($this,
"subCmd",
"");
An exception for terminatinating execution or to throw for unit testing.
This class represents a non editable value in a property form.
Select files for file list.
insertFromRepository($a_cmd="insert")
Insert file from repository.
executeCommand()
execute command
insert($a_form=null)
insert new file list form
setTabs($a_create=true)
Set Tabs.
addFileItem()
Add file item.
insertFromWorkspace($a_cmd="insert")
Insert file from personal workspace.
newFileItem()
New file item (called, if there is no file item in an existing)
__construct(&$a_pg_obj, &$a_content_obj, $a_hier_id, $a_pc_id="")
Constructor @access public.
setItemTabs($a_cmd="")
output tabs
initEditForm($a_mode="edit")
Init edit form.
savePositions()
Save positions of file items.
savePositionsAndClasses()
Save positions of file items and style classes.
checkStyleSelection()
Checks whether style selection shoudl be available or not.
saveProperties()
save table properties in db and return to page edit screen
edit()
edit properties form
create()
create new file list in dom and update page in db
deleteFileItem()
Delete file items from list.
createFileItem()
insert new file item
insertNewFileItem($a_file_ref_id=0)
insert new file item after another item
TableGUI class for file list.
User Interface for Editing of Page Content Objects (Paragraphs, Tables, ...)
getCharacteristicsOfCurrentStyle($a_type)
Get characteristics of current style.
displayValidationError()
display validation errors
getCharacteristics()
Get characteristics.
setCharacteristics($a_chars)
Set Characteristics.
This class represents a text property in a property form.
static sendFailure($a_info="", $a_keep=false)
Send Failure Message to Screen.
static stripSlashes($a_str, $a_strip_html=true, $a_allow="")
strip slashes if magic qoutes is enabled
Explorer for selecting a personal workspace item.
Tree handler for personal workspace.
if(isset($_POST['submit'])) $form