6require_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");
 
  250    public static function afterPageUpdate($a_page, DOMDocument $a_domdoc, $a_xml, $a_creation)
 
  252        if (!$a_page->getImportMode()) {
 
  254            include_once(
"./Modules/File/classes/class.ilObjFile.php");
 
  256                $a_page->getParentType() . 
":pg",
 
  259                $a_page->getLanguage()
 
  263            foreach ($file_ids as $file) {      
 
  266                    $usages = $file_obj->getUsages();
 
  267                    if (count($usages) == 0) {  
 
  268                        if ($file_obj->getMode() == 
"filelist") {               
 
  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);
 
  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()
 
  341        $xpath = 
new DOMXPath($a_domdoc);
 
  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;
 
  352        $xpath = 
new DOMXPath($a_domdoc);
 
  353        $nodes = $xpath->query(
"//IntLink[@Type='File']");
 
  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;
 
An exception for terminatinating execution or to throw for unit testing.
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,...
static _getFilesOfObject($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
get all files of an object
static _saveUsage($a_file_id, $a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
save usage
static _deleteAllUsages($a_type, $a_id, $a_usage_hist_nr=0, $a_usage_lang="-")
static delete all usages of
static _exists($a_id, $a_reference=false, $a_type=null)
checks if an object exists in object_data@access public
static _lookupType($a_id, $a_reference=false)
lookup object type
static afterPageHistoryEntry($a_page, DOMDocument $a_old_domdoc, $a_old_xml, $a_old_nr)
After page history entry has been created.
appendItem($a_id, $a_location, $a_format)
static getLangVars()
Get lang vars needed for editing.
create(&$a_pg_obj, $a_hier_id, $a_pc_id="")
static collectFileItems($a_page, $a_domdoc)
Get all file items that are used within the page.
setNode($a_node)
Set xml node of page content.
static beforePageDelete($a_page)
Before page is being deleted.
getAllClasses()
Get all style classes.
static afterPageUpdate($a_page, DOMDocument $a_domdoc, $a_xml, $a_creation)
After page has been updated (or created)
saveStyleClasses($a_class)
Save style classes of file items.
savePositions($a_pos)
Save positions of file items.
deleteFileItems($a_ids)
Delete file items.
init()
Init page content component.
static saveFileUsage($a_page, $a_domdoc, $a_old_nr=0)
Save file usages.
getFileList()
Get list of files.
setListTitle($a_title, $a_language)
createPageContentNode($a_set_this_node=true)
Create page content node (always use this method first when adding a new element)
setType($a_type)
Set Type.
if(!array_key_exists('StateId', $_REQUEST)) $id