ILIAS  Release_3_10_x_branch Revision 61812
 All Data Structures Namespaces Files Functions Variables Groups Pages
ilObjectXMLWriter Class Reference

XML writer class. More...

+ Inheritance diagram for ilObjectXMLWriter:
+ Collaboration diagram for ilObjectXMLWriter:

Public Member Functions

 ilObjectXMLWriter ()
 constructor
 setUserId ($a_id)
 getUserId ()
 enableOperations ($a_status)
 enabledOperations ()
 setObjects ($objects)
 __getObjects ()
 start ()
 getXML ()
 __appendObject (&$object)
 __appendOperations ($a_ref_id, $a_type)
 __appendPath ($refid)
 __buildHeader ()
 __buildFooter ()
 __getAccessInfo (&$object, $ref_id)
- Public Member Functions inherited from ilXmlWriter
 ilXmlWriter ($version="1.0", $outEnc="utf-8", $inEnc="utf-8")
 constructor
 _ilXmlWriter ()
 destructor public
 xmlSetDtdDef ($dtdDef)
 Sets dtd definition.
 xmlSetStSheet ($stSheet)
 Sets stylesheet.
 xmlSetGenCmt ($genCmt)
 Sets generated comment.
 _xmlEscapeData ($data)
 Escapes reserved characters.
 xmlEncodeData ($data)
 Encodes text from input encoding into output encoding.
 xmlFormatData ($data)
 Indents text for better reading.
 xmlFormatElement ($array)
 Callback function for xmlFormatData; do not invoke directly.
 xmlHeader ()
 Writes xml header public.
 xmlStartTag ($tag, $attrs=NULL, $empty=FALSE, $encode=TRUE, $escape=TRUE)
 Writes a starttag.
 xmlEndTag ($tag)
 Writes an endtag.
 xmlComment ($comment)
 Writes a comment.
 xmlData ($data, $encode=TRUE, $escape=TRUE)
 Writes data.
 xmlElement ($tag, $attrs=NULL, $data=Null, $encode=TRUE, $escape=TRUE)
 Writes a basic element (no children, just textual content)
 xmlDumpFile ($file, $format=TRUE)
 Dumps xml document from memory into a file.
 xmlDumpMem ($format=TRUE)
 Returns xml document from memory.
 appendXML ($a_str)
 append xml string to document
 xmlClear ()
 clears xmlStr public

Static Public Member Functions

static appendPathToObject ($writer, $refid)

Data Fields

 $ilias
 $xml
 $enable_operations = false
 $objects = array()
 $user_id = 0
- Data Fields inherited from ilXmlWriter
 $xmlStr
 $version
 $outEnc
 $inEnc
 $dtdDef = ""
 $stSheet = ""
 $genCmt = "Generated by ILIAS XmlWriter"

Detailed Description

XML writer class.

Class to simplify manual writing of xml documents. It only supports writing xml sequentially, because the xml document is saved in a string with no additional structure information. The author is responsible for well-formedness and validity of the xml document.

Author
Stefan Meyer smeye.nosp@m.r@da.nosp@m.tabay.nosp@m..de
Version
Id:
class.ilObjectXMLWriter.php 16393 2008-04-15 15:49:47Z rkuester

Definition at line 40 of file class.ilObjectXMLWriter.php.

Member Function Documentation

ilObjectXMLWriter::__appendObject ( $object)

Definition at line 122 of file class.ilObjectXMLWriter.php.

References $ref_id, __appendOperations(), __appendPath(), __getAccessInfo(), ilObject\_getAllReferences(), ilXmlWriter\xmlElement(), ilXmlWriter\xmlEndTag(), and ilXmlWriter\xmlStartTag().

Referenced by start().

{
global $tree, $rbacreview;
$id = $object->getId();
if ($object->getType() == "role" && $rbacreview->isRoleDeleted($id))
{
return;
}
$attrs = array('type' => $object->getType(),
'obj_id' => $id);
$this->xmlStartTag('Object',$attrs);
$this->xmlElement('Title',null,$object->getTitle());
$this->xmlElement('Description',null,$object->getDescription());
$this->xmlElement('Owner',null,$object->getOwner());
$this->xmlElement('CreateDate',null,$object->getCreateDate());
$this->xmlElement('LastUpdate',null,$object->getLastUpdateDate());
$this->xmlElement('ImportId',null,$object->getImportId());
foreach(ilObject::_getAllReferences($object->getId()) as $ref_id)
{
if (!$tree->isInTree($ref_id))
continue;
$attr = array('ref_id' => $ref_id, 'parent_id'=> $tree->getParentId(intval($ref_id)));
$attr['accessInfo'] = $this->__getAccessInfo($object,$ref_id);
$this->xmlStartTag('References',$attr);
$this->__appendOperations($ref_id,$object->getType());
$this->__appendPath ($ref_id);
$this->xmlEndTag('References');
}
$this->xmlEndTag('Object');
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjectXMLWriter::__appendOperations (   $a_ref_id,
  $a_type 
)

Definition at line 159 of file class.ilObjectXMLWriter.php.

References enabledOperations(), and ilXmlWriter\xmlElement().

Referenced by __appendObject().

{
global $ilAccess,$rbacreview;
if($this->enabledOperations())
{
$ops = $rbacreview->getOperationsOnTypeString($a_type);
if (is_array($ops))
{
foreach($ops as $ops_id)
{
$operation = $rbacreview->getOperation($ops_id);
if(count ($operation) && $ilAccess->checkAccessOfUser($this->getUserId(),$operation['operation'],'view',$a_ref_id))
{
$this->xmlElement('Operation',null,$operation['operation']);
}
}
}
}
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjectXMLWriter::__appendPath (   $refid)

Definition at line 183 of file class.ilObjectXMLWriter.php.

References appendPathToObject().

Referenced by __appendObject().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjectXMLWriter::__buildFooter ( )

Definition at line 196 of file class.ilObjectXMLWriter.php.

References ilXmlWriter\xmlEndTag().

Referenced by start().

{
$this->xmlEndTag('Objects');
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjectXMLWriter::__buildHeader ( )

Definition at line 187 of file class.ilObjectXMLWriter.php.

References ilXmlWriter\xmlHeader(), ilXmlWriter\xmlSetDtdDef(), ilXmlWriter\xmlSetGenCmt(), and ilXmlWriter\xmlStartTag().

Referenced by start().

{
$this->xmlSetDtdDef("<!DOCTYPE Objects PUBLIC \"-//ILIAS//DTD ILIAS Repositoryobjects//EN\" \"".ILIAS_HTTP_PATH."/xml/ilias_object_3_10.dtd\">");
$this->xmlSetGenCmt("Export of ILIAS objects");
$this->xmlHeader();
$this->xmlStartTag("Objects");
return true;
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjectXMLWriter::__getAccessInfo ( $object,
  $ref_id 
)

Definition at line 201 of file class.ilObjectXMLWriter.php.

References $ref_id, and getUserId().

Referenced by __appendObject().

{
global $ilAccess;
include_once 'Services/AccessControl/classes/class.ilAccessHandler.php';
$ilAccess->checkAccessOfUser($this->getUserId(),'read','view',$ref_id,$object->getType(),$object->getId());
if(!$info = $ilAccess->getInfo())
{
return 'granted';
}
else
{
return $info[0]['type'];
}
}

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

ilObjectXMLWriter::__getObjects ( )

Definition at line 92 of file class.ilObjectXMLWriter.php.

Referenced by start().

{
return $this->objects ? $this->objects : array();
}

+ Here is the caller graph for this function:

static ilObjectXMLWriter::appendPathToObject (   $writer,
  $refid 
)
static

Definition at line 220 of file class.ilObjectXMLWriter.php.

References $lng.

Referenced by __appendPath(), and ilSoapRoleObjectXMLWriter\start().

{
global $tree, $lng;
$items = $tree->getPathFull($refid);
$writer->xmlStartTag("Path");
foreach ($items as $item) {
if ($item["ref_id"] == $refid)
continue;
if ($item["type"] == "root")
{
$item["title"] = $lng->txt("repository");
}
$writer->xmlElement("Element", array("ref_id" => $item["ref_id"], "type" => $item["type"]), $item["title"]);
}
$writer->xmlEndTag("Path");
}

+ Here is the caller graph for this function:

ilObjectXMLWriter::enabledOperations ( )

Definition at line 82 of file class.ilObjectXMLWriter.php.

References $enable_operations.

Referenced by __appendOperations().

+ Here is the caller graph for this function:

ilObjectXMLWriter::enableOperations (   $a_status)

Definition at line 75 of file class.ilObjectXMLWriter.php.

{
$this->enable_operations = $a_status;
return true;
}
ilObjectXMLWriter::getUserId ( )

Definition at line 70 of file class.ilObjectXMLWriter.php.

References $user_id.

Referenced by __getAccessInfo().

{
}

+ Here is the caller graph for this function:

ilObjectXMLWriter::getXML ( )

Definition at line 115 of file class.ilObjectXMLWriter.php.

References ilXmlWriter\xmlDumpMem().

{
return $this->xmlDumpMem(FALSE);
}

+ Here is the call graph for this function:

ilObjectXMLWriter::ilObjectXMLWriter ( )

constructor

Parameters
stringxml version
stringoutput encoding
stringinput encoding public

Definition at line 56 of file class.ilObjectXMLWriter.php.

References $ilias, and ilXmlWriter\ilXmlWriter().

{
global $ilias,$ilUser;
$this->ilias =& $ilias;
$this->user_id = $ilUser->getId();
}

+ Here is the call graph for this function:

ilObjectXMLWriter::setObjects (   $objects)

Definition at line 87 of file class.ilObjectXMLWriter.php.

References $objects.

{
$this->objects = $objects;
}
ilObjectXMLWriter::setUserId (   $a_id)

Definition at line 66 of file class.ilObjectXMLWriter.php.

{
$this->user_id = $a_id;
}
ilObjectXMLWriter::start ( )

Definition at line 97 of file class.ilObjectXMLWriter.php.

References __appendObject(), __buildFooter(), __buildHeader(), and __getObjects().

{
/*if(!count($objects = $this->__getObjects()))
{
return false;
}*/
$this->__buildHeader();
foreach($this->__getObjects() as $object)
{
$this->__appendObject($object);
}
$this->__buildFooter();
return true;
}

+ Here is the call graph for this function:

Field Documentation

ilObjectXMLWriter::$enable_operations = false

Definition at line 45 of file class.ilObjectXMLWriter.php.

Referenced by enabledOperations().

ilObjectXMLWriter::$ilias

Definition at line 42 of file class.ilObjectXMLWriter.php.

Referenced by ilObjectXMLWriter().

ilObjectXMLWriter::$objects = array()

Definition at line 46 of file class.ilObjectXMLWriter.php.

Referenced by setObjects().

ilObjectXMLWriter::$user_id = 0

Definition at line 47 of file class.ilObjectXMLWriter.php.

Referenced by getUserId().

ilObjectXMLWriter::$xml

Definition at line 44 of file class.ilObjectXMLWriter.php.


The documentation for this class was generated from the following file: