Public Member Functions | Data Fields

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)
 __buildHeader ()
 __buildFooter ()
 __getAccessInfo (&$object, $ref_id)

Data Fields

 $ilias
 $xml
 $enable_operations = false
 $objects = array()
 $user_id = 0

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 <smeyer@databay.de>
Version:
Id:
class.ilObjectXMLWriter.php 13191 2007-02-03 19:13:19Z 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 $id, $ref_id, $tree, __appendOperations(), __getAccessInfo(), ilObject::_getAllReferences(), ilXmlWriter::xmlElement(), ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().

Referenced by start().

        {

          global $tree;

          $id = $object->getId();

                $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)
                {
                        $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->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 153 of file class.ilObjectXMLWriter.php.

References $ops, $ops_id, $rbacreview, 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($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::__buildFooter (  ) 

Definition at line 188 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 177 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_7.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 193 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:

ilObjectXMLWriter::enabledOperations (  ) 

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

Referenced by __appendOperations().

        {
                return $this->enable_operations;
        }

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.

Referenced by __getAccessInfo().

        {
                return $this->user_id;
        }

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:
string xml version
string output encoding
string input encoding public

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

References $ilias, and ilXmlWriter::ilXmlWriter().

        {
                global $ilias,$ilUser;

                parent::ilXmlWriter();

                $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 $objects, __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.

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(), and start().

ilObjectXMLWriter::$user_id = 0

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

ilObjectXMLWriter::$xml

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


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