XML writer class. More...
Inheritance diagram for ilCourseXMLWriter:
Collaboration diagram for ilCourseXMLWriter:Public Member Functions | |
| ilCourseXMLWriter (&$course_obj) | |
| constructor | |
| start () | |
| getXML () | |
| modifyExportIdentifier ($a_tag, $a_param, $a_value) | |
| __buildHeader () | |
| __buildMetaData () | |
| __buildAdmin () | |
| __buildTutor () | |
| __buildMember () | |
| __buildSubscriber () | |
| __buildWaitingList () | |
| __buildSetting () | |
| __buildObject ($a_parent_id) | |
| __buildFooter () | |
| setAttachUsers ($value) | |
| write access to attach user property, if set to false no users will be attached. | |
Private Member Functions | |
| __buildAdvancedMetaData () | |
| Build advanced meta data. | |
Private Attributes | |
| $ilias | |
| $xml | |
| $course_obj | |
| $attach_users = true | |
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.
Definition at line 40 of file class.ilCourseXMLWriter.php.
| ilCourseXMLWriter::__buildAdmin | ( | ) |
Definition at line 142 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
$this->course_obj->initCourseMemberObject();
foreach($this->course_obj->members_obj->getAdmins() as $id)
{
$attr['id'] = 'il_'.$this->ilias->getSetting('inst_id').'_usr_'.$id;
$attr['notification'] = ($this->course_obj->members_obj->isNotificationEnabled($id)) ? 'Yes' : 'No';
$attr['passed'] = $this->course_obj->members_obj->hasPassed($id) ? 'Yes' : 'No';
$this->xmlStartTag('Admin',$attr);
$this->xmlEndTag('Admin');
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildAdvancedMetaData | ( | ) | [private] |
Build advanced meta data.
private
Definition at line 136 of file class.ilCourseXMLWriter.php.
References ilAdvancedMDValues::_appendXMLByObjId().
Referenced by start().
{
include_once('Services/AdvancedMetaData/classes/class.ilAdvancedMDValues.php');
ilAdvancedMDValues::_appendXMLByObjId($this,$this->course_obj->getId());
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildFooter | ( | ) |
Definition at line 387 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlEndTag().
Referenced by start().
{
$this->xmlEndTag('Course');
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildHeader | ( | ) |
Definition at line 107 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlHeader(), ilXmlWriter::xmlSetDtdDef(), ilXmlWriter::xmlSetGenCmt(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
$this->xmlSetDtdDef("<!DOCTYPE Course PUBLIC \"-//ILIAS//DTD Course//EN\" \"".ILIAS_HTTP_PATH."/xml/ilias_course_3_8.dtd\">");
$this->xmlSetGenCmt("Export of ILIAS course ". $this->course_obj->getId()." of installation ".$this->ilias->getSetting('inst_id').".");
$this->xmlHeader();
$attrs["exportVersion"] = $this->EXPORT_VERSION;
$attrs["id"] = "il_".$this->ilias->getSetting('inst_id').'_crs_'.$this->course_obj->getId();
$this->xmlStartTag("Course", $attrs);
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildMember | ( | ) |
Definition at line 173 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
$this->course_obj->initCourseMemberObject();
foreach($this->course_obj->members_obj->getMembers() as $id)
{
$attr['id'] = 'il_'.$this->ilias->getSetting('inst_id').'_usr_'.$id;
$attr['blocked'] = ($this->course_obj->members_obj->isBlocked($id)) ? 'Yes' : 'No';
$attr['passed'] = $this->course_obj->members_obj->hasPassed($id) ? 'Yes' : 'No';
$this->xmlStartTag('Member',$attr);
$this->xmlEndTag('Member');
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildMetaData | ( | ) |
Definition at line 119 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::appendXML().
Referenced by start().
{
include_once 'Services/MetaData/classes/class.ilMD2XML.php';
$md2xml = new ilMD2XML($this->course_obj->getId(),$this->course_obj->getId(),'crs');
$md2xml->startExport();
$this->appendXML($md2xml->getXML());
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildObject | ( | $ | a_parent_id | ) |
Definition at line 349 of file class.ilCourseXMLWriter.php.
References ilObjectFactory::getInstanceByRefId(), ilXmlWriter::xmlElement(), ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
{
$this->course_obj->initCourseItemObject();
$this->course_obj->items_obj->setParentId($a_parent_id);
foreach($this->course_obj->items_obj->getAllItems() as $item)
{
if(!$tmp_obj =& ilObjectFactory::getInstanceByRefId($item['child'],false))
{
continue;
}
$attr = array();
$attr['id'] = 'il_'.$this->ilias->getSetting('inst_id').'_'.$tmp_obj->getType().'_'.$item['child'];
$attr['type'] = $tmp_obj->getType();
$attr['Unlimited'] = $item['activation_unlimited'] ? 1 : 0;
$attr['Position'] = $item['position'];
$this->xmlStartTag('Object',$attr);
$this->xmlElement('Title',null,$item['title']);
$this->xmlElement('Description',null,$item['description']);
$this->xmlElement('Start',null,$item['activation_start']);
$this->xmlElement('End',null,$item['activation_end']);
if($item['type'] == 'file')
{
$this->xmlElement('FileType',null,$tmp_obj->getFileType());
}
$this->__buildObject($item['child']);
$this->xmlEndTag('Object');
unset($tmp_obj);
}
}
Here is the call graph for this function:| ilCourseXMLWriter::__buildSetting | ( | ) |
Definition at line 225 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlElement(), ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
$this->xmlStartTag('Settings');
// Availability
$this->xmlStartTag('Availability');
if($this->course_obj->getOfflineStatus())
{
$this->xmlElement('NotAvailable');
}
elseif($this->course_obj->getActivationUnlimitedStatus())
{
$this->xmlElement('Unlimited');
}
else
{
$this->xmlStartTag('TemporarilyAvailable');
$this->xmlElement('Start',null,$this->course_obj->getActivationStart());
$this->xmlElement('End',null,$this->course_obj->getActivationEnd());
$this->xmlEndTag('TemporarilyAvailable');
}
$this->xmlEndTag('Availability');
// Syllabus
$this->xmlElement('Syllabus',null,$this->course_obj->getSyllabus());
$this->xmlElement('ImportantInformation',null,$this->course_obj->getImportantInformation());
// Contact
$this->xmlStartTag('Contact');
$this->xmlElement('Name',null,$this->course_obj->getContactName());
$this->xmlElement('Responsibility',null,$this->course_obj->getContactResponsibility());
$this->xmlElement('Phone',null,$this->course_obj->getContactPhone());
$this->xmlElement('Email',null,$this->course_obj->getContactEmail());
$this->xmlElement('Consultation',null,$this->course_obj->getContactConsultation());
$this->xmlEndTag('Contact');
// Registration
$attr = array();
if($this->course_obj->getSubscriptionType() == IL_CRS_SUBSCRIPTION_CONFIRMATION)
{
$attr['registrationType'] = 'Confirmation';
}
elseif($this->course_obj->getSubscriptionType() == IL_CRS_SUBSCRIPTION_DIRECT)
{
$attr['registrationType'] = 'Direct';
}
else
{
$attr['registrationType'] = 'Password';
}
$attr['maxMembers'] = $this->course_obj->getSubscriptionMaxMembers();
$attr['notification'] = $this->course_obj->getSubscriptionNotify() ? 'Yes' : 'No';
$attr['waitingList'] = $this->course_obj->enabledWaitingList() ? 'Yes' : 'No';
$this->xmlStartTag('Registration',$attr);
if($this->course_obj->getSubscriptionLimitationType() == IL_CRS_SUBSCRIPTION_DEACTIVATED)
{
$this->xmlElement('Disabled');
}
elseif($this->course_obj->getSubscriptionLimitationType() == IL_CRS_SUBSCRIPTION_UNLIMITED)
{
$this->xmlElement('Unlimited');
}
else
{
$this->xmlStartTag('TemporarilyAvailable');
$this->xmlElement('Start',null,$this->course_obj->getSubscriptionStart());
$this->xmlElement('End',null,$this->course_obj->getSubscriptionEnd());
$this->xmlEndTag('TemporarilyAvailable');
}
if(strlen($pwd = $this->course_obj->getSubscriptionPassword()))
{
$this->xmlElement('Password',null,$pwd);
}
$this->xmlEndTag('Registration');
// Sort
$attr = array();
if($this->course_obj->getOrderType() == IL_CRS_SORT_MANUAL)
{
$attr['type'] = 'Manual';
}
elseif($this->course_obj->getOrderType() == IL_CRS_SORT_TITLE)
{
$attr['type'] = 'Title';
}
else
{
$attr['type'] = 'Activation';
}
$this->xmlElement('Sort',$attr);
// Archives
$attr = array();
if($this->course_obj->getViewMode() != IL_CRS_VIEW_ARCHIVE)
{
$attr['Access'] = 'Disabled';
}
elseif($this->course_obj->getViewMode() == IL_CRS_VIEW_ARCHIVE)
{
$attr['Access'] = 'Read';
}
if($this->course_obj->getArchiveType() == IL_CRS_ARCHIVE_DOWNLOAD)
{
$attr['Access'] = 'Download';
}
$this->xmlStartTag('Archive',$attr);
$this->xmlElement('Start',null,$this->course_obj->getArchiveStart());
$this->xmlElement('End',null,$this->course_obj->getArchiveEnd());
$this->xmlEndTag('Archive');
$this->xmlEndTag('Settings');
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildSubscriber | ( | ) |
Definition at line 189 of file class.ilCourseXMLWriter.php.
References $data, ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
$this->course_obj->initCourseMemberObject();
foreach($this->course_obj->members_obj->getSubscribers() as $id)
{
$data = $this->course_obj->members_obj->getSubscriberData($id);
$attr['id'] = 'il_'.$this->ilias->getSetting('inst_id').'_usr_'.$id;
$attr['subscriptionTime'] = $data['time'];
$this->xmlStartTag('Subscriber',$attr);
$this->xmlEndTag('Subscriber');
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildTutor | ( | ) |
Definition at line 158 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
$this->course_obj->initCourseMemberObject();
foreach($this->course_obj->members_obj->getTutors() as $id)
{
$attr['id'] = 'il_'.$this->ilias->getSetting('inst_id').'_usr_'.$id;
$attr['notification'] = ($this->course_obj->members_obj->isNotificationEnabled($id)) ? 'Yes' : 'No';
$attr['passed'] = $this->course_obj->members_obj->hasPassed($id) ? 'Yes' : 'No';
$this->xmlStartTag('Tutor',$attr);
$this->xmlEndTag('Tutor');
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::__buildWaitingList | ( | ) |
Definition at line 206 of file class.ilCourseXMLWriter.php.
References $data, ilXmlWriter::xmlEndTag(), and ilXmlWriter::xmlStartTag().
Referenced by start().
{
include_once 'Modules/Course/classes/class.ilCourseWaitingList.php';
$waiting_list = new ilCourseWaitingList($this->course_obj->getId());
foreach($waiting_list->getAllUsers() as $data)
{
$attr['id'] = 'il_'.$this->ilias->getSetting('inst_id').'_usr_'.$data['usr_id'];
$attr['position'] = $data['position'];
$attr['subscriptionTime'] = $data['time'];
$this->xmlStartTag('WaitingList',$attr);
$this->xmlEndTag('WaitingList');
}
return true;
}
Here is the call graph for this function:
Here is the caller graph for this function:| ilCourseXMLWriter::getXML | ( | ) |
Definition at line 89 of file class.ilCourseXMLWriter.php.
References ilXmlWriter::xmlDumpMem().
{
#var_dump("<pre>", htmlentities($this->xmlDumpMem()),"<pre>");
return $this->xmlDumpMem(false);
}
Here is the call graph for this function:| ilCourseXMLWriter::ilCourseXMLWriter | ( | &$ | course_obj | ) |
constructor
| string | xml version | |
| string | output encoding | |
| string | input encoding public |
Definition at line 56 of file class.ilCourseXMLWriter.php.
References $course_obj, $ilias, and ilXmlWriter::ilXmlWriter().
{
global $ilias;
parent::ilXmlWriter();
$this->EXPORT_VERSION = "2";
$this->ilias =& $ilias;
$this->course_obj =& $course_obj;
}
Here is the call graph for this function:| ilCourseXMLWriter::modifyExportIdentifier | ( | $ | a_tag, | |
| $ | a_param, | |||
| $ | a_value | |||
| ) |
Definition at line 96 of file class.ilCourseXMLWriter.php.
{
if ($a_tag == "Identifier" && $a_param == "Entry")
{
$a_value = "il_".$this->ilias->getSetting('inst_id')."_crs_".$this->course_obj->getId();
}
return $a_value;
}
| ilCourseXMLWriter::setAttachUsers | ( | $ | value | ) |
write access to attach user property, if set to false no users will be attached.
| unknown_type | $value |
Definition at line 397 of file class.ilCourseXMLWriter.php.
{
$this->attach_users = $value ? true : false;
}
| ilCourseXMLWriter::start | ( | ) |
Definition at line 68 of file class.ilCourseXMLWriter.php.
References __buildAdmin(), __buildAdvancedMetaData(), __buildFooter(), __buildHeader(), __buildMember(), __buildMetaData(), __buildSetting(), __buildSubscriber(), __buildTutor(), and __buildWaitingList().
{
$this->__buildHeader();
$this->__buildMetaData();
$this->__buildAdvancedMetaData();
if ($this->attach_users)
{
$this->__buildAdmin();
$this->__buildTutor();
$this->__buildMember();
}
$this->__buildSubscriber();
$this->__buildWaitingList();
$this->__buildSetting();
#$this->__buildObject($this->course_obj->getRefId());
$this->__buildFooter();
}
Here is the call graph for this function:ilCourseXMLWriter::$attach_users = true [private] |
Definition at line 46 of file class.ilCourseXMLWriter.php.
ilCourseXMLWriter::$course_obj [private] |
Definition at line 45 of file class.ilCourseXMLWriter.php.
Referenced by ilCourseXMLWriter().
ilCourseXMLWriter::$ilias [private] |
Definition at line 42 of file class.ilCourseXMLWriter.php.
Referenced by ilCourseXMLWriter().
ilCourseXMLWriter::$xml [private] |
Definition at line 44 of file class.ilCourseXMLWriter.php.
1.7.1