6 require_once(
"./Services/COPage/classes/class.ilPageContent.php");
32 parent::setNode($a_node);
33 $this->list_node = $a_node->first_child();
36 public function create(&$a_pg_obj, $a_hier_id, $a_pc_id =
"")
40 $this->list_node = $this->dom->create_element(
"FileList");
41 $this->list_node = $this->node->append_child($this->list_node);
54 public function appendItem($a_id, $a_location, $a_format)
57 $new_item = $this->dom->create_element(
"FileItem");
58 $new_item = $this->list_node->append_child($new_item);
61 $id_node = $this->dom->create_element(
"Identifier");
62 $id_node = $new_item->append_child($id_node);
63 $id_node->set_attribute(
"Catalog",
"ILIAS");
64 $id_node->set_attribute(
"Entry",
"il__file_" . $a_id);
67 $loc_node = $this->dom->create_element(
"Location");
68 $loc_node = $new_item->append_child($loc_node);
69 $loc_node->set_attribute(
"Type",
"LocalFile");
70 $loc_node->set_content($a_location);
73 $form_node = $this->dom->create_element(
"Format");
74 $form_node = $new_item->append_child($form_node);
75 $form_node->set_content($a_format);
86 array(
"Language" => $a_language)
92 $chlds = $this->list_node->child_nodes();
93 for (
$i = 0;
$i < count($chlds);
$i++) {
94 if ($chlds[
$i]->node_name() ==
"Title") {
95 return $chlds[
$i]->get_content();
103 $chlds = $this->list_node->child_nodes();
104 for (
$i = 0;
$i < count($chlds);
$i++) {
105 if ($chlds[
$i]->node_name() ==
"Title") {
106 return $chlds[
$i]->get_attribute(
"Language");
120 $childs = $this->list_node->child_nodes();
121 for (
$i = 0;
$i < count($childs);
$i++) {
122 if ($childs[
$i]->node_name() ==
"FileItem") {
124 $pc_id = $childs[
$i]->get_attribute(
"PCID");
125 $hier_id = $childs[
$i]->get_attribute(
"HierId");
126 $class = $childs[
$i]->get_attribute(
"Class");
129 $id_node = $childs[
$i]->first_child();
130 if ($id_node->node_name() ==
"Identifier") {
131 $entry = $id_node->get_attribute(
"Entry");
132 if (substr($entry, 0, 9) ==
"il__file_") {
133 $id = substr($entry, 9);
136 $files[] = array(
"entry" => $entry,
"id" =>
$id,
137 "pc_id" => $pc_id,
"hier_id" =>
$hier_id,
153 $childs = $this->list_node->child_nodes();
155 for (
$i = 0;
$i < count($childs);
$i++) {
156 if ($childs[
$i]->node_name() ==
"FileItem") {
158 $pc_id = $childs[
$i]->get_attribute(
"PCID");
159 $hier_id = $childs[
$i]->get_attribute(
"HierId");
161 if (in_array(
$hier_id .
":" . $pc_id, $a_ids)) {
162 $childs[
$i]->unlink($childs[
$i]);
176 $childs = $this->list_node->child_nodes();
178 for (
$i = 0;
$i < count($childs);
$i++) {
179 if ($childs[
$i]->node_name() ==
"FileItem") {
181 $pc_id = $childs[
$i]->get_attribute(
"PCID");
182 $hier_id = $childs[
$i]->get_attribute(
"HierId");
184 $childs[
$i]->unlink($childs[
$i]);
188 foreach ($a_pos as $k => $v) {
189 if (is_object(
$nodes[$k])) {
190 $nodes[$k] = $this->list_node->append_child(
$nodes[$k]);
203 $childs = $this->list_node->child_nodes();
205 for (
$i = 0;
$i < count($childs);
$i++) {
206 if ($childs[
$i]->node_name() ==
"FileItem") {
207 $classes[$childs[
$i]->get_attribute(
"HierId") .
":" .
208 $childs[
$i]->get_attribute(
"PCID")] = $childs[
$i]->get_attribute(
"Class");
221 $childs = $this->list_node->child_nodes();
222 for (
$i = 0;
$i < count($childs);
$i++) {
223 if ($childs[
$i]->node_name() ==
"FileItem") {
224 $childs[
$i]->set_attribute(
226 $a_class[$childs[
$i]->get_attribute(
"HierId") .
":" .
227 $childs[
$i]->get_attribute(
"PCID")]
239 return array(
"ed_edit_files",
"ed_insert_filelist",
"pc_flist");
252 if (!$a_page->getImportMode()) {
254 include_once(
"./Modules/File/classes/class.ilObjFile.php");
256 $a_page->getParentType() .
":pg",
259 $a_page->getLanguage()
261 self::saveFileUsage($a_page, $a_domdoc);
263 foreach ($file_ids as $file) {
266 $usages = $file_obj->getUsages();
267 if (count($usages) == 0) {
268 if ($file_obj->getMode() ==
"filelist") {
284 $files = self::collectFileItems($a_page, $a_page->getDomDoc());
287 include_once(
"./Modules/File/classes/class.ilObjFile.php");
289 $a_page->getParentType() .
":pg",
292 $a_page->getLanguage()
295 include_once(
"./Modules/File/classes/class.ilObjFile.php");
296 foreach (
$files as $file_id) {
298 $file_obj =
new ilObjFile($file_id,
false);
314 self::saveFileUsage($a_page, $a_old_domdoc, $a_old_nr);
322 $file_ids = self::collectFileItems($a_page, $a_domdoc);
323 include_once(
"./Modules/File/classes/class.ilObjFile.php");
325 foreach ($file_ids as $file_id) {
328 $a_page->getParentType() .
":pg",
331 $a_page->getLanguage()
342 $nodes = $xpath->query(
'//FileItem/Identifier');
345 $id_arr = explode(
"_", $node->getAttribute(
"Entry"));
346 $file_id = $id_arr[count($id_arr) - 1];
347 if ($file_id > 0 && ($id_arr[1] ==
"" || $id_arr[1] == IL_INST_ID || $id_arr[1] == 0)) {
348 $file_ids[$file_id] = $file_id;
353 $nodes = $xpath->query(
"//IntLink[@Type='File']");
354 foreach (
$nodes as $node) {
355 $t = $node->getAttribute(
"Target");
356 if (substr(
$t, 0, 9) ==
"il__dfile") {
357 $id_arr = explode(
"_",
$t);
358 $file_id = $id_arr[count($id_arr) - 1];
359 $file_ids[$file_id] = $file_id;
getAllClasses()
Get all style classes.
static saveFileUsage($a_page, $a_domdoc, $a_old_nr=0)
Save file usages.
static getLangVars()
Get lang vars needed for editing.
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data
if(!array_key_exists('StateId', $_REQUEST)) $id
init()
Init page content component.
static _deleteAllUsages($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
static delete all usages of
setType($a_type)
Set Type.
getFileList()
Get list of files.
static beforePageDelete($a_page)
Before page is being deleted.
deleteFileItems($a_ids)
Delete file items.
setListTitle($a_title, $a_language)
static afterPageUpdate($a_page, DOMDocument $a_domdoc, $a_xml, $a_creation)
After page has been updated (or created)
create(&$a_pg_obj, $a_hier_id, $a_pc_id="")
static afterPageHistoryEntry($a_page, DOMDocument $a_old_domdoc, $a_old_xml, $a_old_nr)
After page history entry has been created.
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
static _saveUsage($a_file_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
save usage
static _getFilesOfObject($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
get all files of an object
static _lookupType($a_id, $a_reference=false)
lookup object type
saveStyleClasses($a_class)
Save style classes of file items.
createPageContentNode($a_set_this_node=true)
Create page content node (always use this method first when adding a new element) ...
appendItem($a_id, $a_location, $a_format)
static setFirstOptionalElement( $doc, $parent_node, $a_node_name, $a_successors, $a_content, $a_attributes, $a_remove_childs=true)
searches for an element $a_node_name within the childs of $parent_node if no node is found...
savePositions($a_pos)
Save positions of file items.