17include_once 
'./Services/Xml/classes/class.ilSaxParser.php';
 
   18include_once 
'Modules/File/classes/class.ilFileException.php';
 
   19include_once 
'Services/Utilities/classes/class.ilFileUtils.php';
 
   88                parent::ilSaxParser();
 
   92                $this->result = 
false;
 
  103                $this->importDirectory = $a_val;
 
  113                return $this->importDirectory;
 
  123                xml_set_object($a_xml_parser,$this);
 
  124                xml_set_element_handler($a_xml_parser,
'handlerBeginTag',
'handlerEndTag');
 
  125                xml_set_character_data_handler($a_xml_parser,
'handlerCharacterData');
 
  146                            if (isset($a_attribs[
"obj_id"]))
 
  149                               if ($this->obj_id != -1 && (
int) $read_obj_id != -1 && (
int) $this->obj_id != (
int) $read_obj_id)
 
  154                if (isset($a_attribs[
"type"]))
 
  156                                        $this->file->setFileType($a_attribs[
"type"]);
 
  158                   $this->file->setVersion($this->file->getVersion() + 1);
 
  163                            $this->isReadingFile = 
true;
 
  164#echo $a_attribs["mode"];
 
  165                            if (isset($a_attribs[
"mode"]))
 
  167                                if($a_attribs[
"mode"] == 
"GZIP")
 
  169                        if (!function_exists(
"gzread"))
 
  174                                        elseif ($a_attribs[
"mode"] == 
"ZLIB")
 
  176                        if (!function_exists(
"gzuncompress"))
 
  181                                        elseif ($a_attribs[
"mode"] == 
"COPY")
 
  186                                        elseif($a_attribs[
'mode'] == 
'REST')
 
  205            $this->cdata = trim($this->cdata);
 
  207                $GLOBALS[
'ilLog']->write(__METHOD__.
': '.$this->cdata);
 
  212                              $this->result = 
true;    
 
  215                            if (strlen($this->cdata) == 0)
 
  218                            $this->file->setFilename(basename(self::normalizeRelativePath($this->cdata)));
 
  219                            $this->file->setTitle($this->cdata);
 
  223                            $this->file->setTitle(trim($this->cdata));
 
  226                            $this->file->setDescription(trim($this->cdata));
 
  229                            $this->file->setRating((
bool)$this->cdata);
 
  232                                $GLOBALS[
'ilLog']->write($this->mode);
 
  233                                $this->isReadingFile = 
false;
 
  242                                        include_once 
'./Services/WebServices/Rest/classes/class.ilRestFileStorage.php';
 
  244                                        $this->tmpFilename = $storage->getStoredFilePath(self::normalizeRelativePath($this->cdata));
 
  249                                        $this->tmpFilename = $baseDecodedFilename;
 
  264                                                unlink ($baseDecodedFilename);
 
  272                                                unlink ($baseDecodedFilename);
 
  276                                                $this->tmpFilename = $baseDecodedFilename;
 
  280                                $this->file->setFileSize(filesize($this->tmpFilename)); 
 
  283                                if(!$this->file->getFileType())
 
  287                                        #$ilLog->write(__METHOD__.': Trying to detect mime type...'); 
  288                                        include_once(
'./Services/Utilities/classes/class.ilFileUtils.php');
 
  314                        $handle = fopen($this->tmpFilename, 
"a");
 
  315                                fwrite ($handle, $a_data);
 
  318                                $this->cdata .= $a_data;
 
  329                if (filesize ($this->tmpFilename) == 0) {
 
  333                $filedir = $this->file->getDirectory($this->file->getVersion());
 
  335                if (!is_dir($filedir))
 
  337                        $this->file->createDirectory();
 
  341                $filename = $filedir.
"/".$this->file->getFileName();
 
  346                return rename($this->tmpFilename, 
$filename);
 
  359                require_once(
"./Services/History/classes/class.ilHistory.php");
 
  360                                ilHistory::_createEntry($this->file->getId(), 
"replace", $this->file->getFilename().
",".$this->file->getVersion());
 
  361                                $this->file->addNewsNotification(
"file_updated");       
 
  374            return $this->result > 0;
 
  393                while (preg_match(
'#\p{C}+|^\./#u', 
$path)) {
 
  394                        $path = preg_replace(
'#\p{C}+|^\./#u', 
'', 
$path);
 
  398                foreach (explode(
'/', 
$path) as $part) {
 
  412                return implode(
'/', $parts);
 
Class to report exception.
static $ID_DEFLATE_METHOD_MISMATCH
static $DECOMPRESSION_FAILED
fastGunzip($in, $out)
fast uncompressing the file with the zlib-extension without memory consumption
static _lookupMimeType($a_file)
fastBase64Decode($filein, $fileout)
Exercise XML Parser which completes/updates a given file by an xml string.
getImportDirectory()
Get import directory.
setHandlers($a_xml_parser)
set event handlers
setFileContents()
update file according to filename and version, does not update history has to be called after (!...
updateFileContents()
update file according to filename and version and create history entry has to be called after (!...
handlerEndTag($a_xml_parser, $a_name)
handler for end of element
handlerBeginTag($a_xml_parser, $a_name, $a_attribs)
handler for begin of element
static $CONTENT_ZLIB_COMPRESSED
setImportDirectory($a_val)
Set import directory.
start()
starts parsing an changes object by side effect.
handlerCharacterData($a_xml_parser, $a_data)
handler for character data
ilFileXMLParser(& $file, $a_xml_data, $obj_id=-1, $mode=0)
Constructor.
static $CONTENT_GZ_COMPRESSED
static $CONTENT_NOT_COMPRESSED
static normalizeRelativePath($path)
Normalize relative directories in a path.
_createEntry($a_obj_id, $a_action, $a_info_params="", $a_obj_type="", $a_user_comment="", $a_update_last=false)
Creates a new history entry for an object.
Base class for sax-based expat parsing extended classes need to overwrite the method setHandlers and ...
setXMLContent($a_xml_content)
startParsing()
stores xml data in array
static ilTempnam()
Create a temporary file in an ILIAS writable directory.
static __extractId($ilias_id, $inst_id)
extract ref id from role title, e.g.
static makeDir($a_dir)
creates a new directory and inherits all filesystem permissions of the parent directory You may pass ...