/**
  * function addColumnData
  * <pre>
  * adds a row entry in this XML object.
  * </pre>
  * @param $heading [STRING] the row label 
  * @param $fieldName [STRING] the row id value
  * @return [void]
  */
 function addColumnData($heading, $fieldName)
 {
     $xmlRow = new XMLObject(XMLObject_ColumnList::XML_NODE_COL);
     $xmlRow->addElement(XMLObject_ColumnList::XML_ELEMENT_HEADING, $heading);
     $xmlRow->addElement(XMLObject_ColumnList::XML_ELEMENT_FIELDNAME, $fieldName);
     $this->addXMLObject($xmlRow);
 }
 /**
  * function addRowData
  * <pre>
  * adds a row entry in this XML object.
  * </pre>
  * @param $label [STRING] the row label 
  * @param $id [STRING] the row id value
  * @return [void]
  */
 function addRowData($label, $id)
 {
     $xmlRow = new XMLObject(XMLObject_RowList::XML_NODE_ROW);
     $xmlRow->addElement(XMLObject_RowList::XML_ELEMENT_NAME, $label);
     $xmlRow->addElement(XMLObject_RowList::XML_ELEMENT_VALUE, $id);
     $this->addXMLObject($xmlRow);
 }
 /**
  * function addLink
  * <pre>
  * Adds a link item to the menu
  * </pre>
  * @param $label [STRING] The label to display for the link.
  * @param $link [STRING] The actual HREF link 
  * @return [void]
  */
 function addLink($label, $link)
 {
     $xmlObject = new XMLObject(XMLObject_Menu::NODE_ITEM);
     $xmlObject->addElement(XMLObject_Menu::ITEM_TYPE, XMLObject_Menu::ITEM_TYPE_LINK);
     $xmlObject->addElement(XMLObject_Menu::ITEM_TYPE_LINK_LABEL, $label);
     $xmlObject->addElement(XMLObject_Menu::ITEM_TYPE_LINK_LINK, $link);
     $this->addXmlObject($xmlObject);
 }
 /**
  * function __construct
  * <pre>
  * iniitalizes this object
  * </pre>
  * @param $name [STRING] the form item's name
  * @param $value [STRING] the form item's value
  * @param $error [STRING] the form item's error 
  * @return [void]
  */
 function __construct($name, $value, $error)
 {
     parent::__construct(XMLObject_FormItem::XML_NODE_FORMITEM);
     $this->addElement(XMLObject_FormItem::XML_ELEMENT_NAME, $name);
     $this->addElement(XMLObject_FormItem::XML_ELEMENT_VALUE, $value);
     $this->addElement(XMLObject_FormItem::XML_ELEMENT_ERROR, $error);
 }
 /**
  * function __construct
  * <pre>
  * loads a specific application by it's key.
  * </pre>
  * @param $db [OBJECT] The db connection for the site
  * @param $viewer [OBJECT] The viewer object
  * @param $appKey [STRING] The identifying Key for the application
  * @return [void]
  */
 function __construct($viewer, $appID = null)
 {
     // pass the root node name to the parent constructor
     parent::__construct(XMLObject_CMSApps::XML_NODE_APP);
     // store the db & viewer objects
     $this->db = new Database_Site();
     $this->db->connectToDB(SITE_DB_NAME, SITE_DB_PATH, SITE_DB_USER, SITE_DB_PWORD);
     $this->viewer =& $viewer;
     // if an appID is provided then
     if (!is_null($appID)) {
         // Load this app
         $this->appID = $appID;
         $this->loadApp($this->appID);
     }
 }
 /**
  * function __construct
  * <pre>
  * [classConstructor Description]
  * </pre>
  * <pre><code>
  * [Put PseudoCode Here]
  * </code></pre>
  * @param $seriesKey [STRING] The unique Label Key of this Label Data
  * @return [void]
  */
 function __construct($seriesKey = '')
 {
     parent::__construct(XMLObject_Multilingual_Series::NODE_SITE_ROOT);
     // set the list of field names to manage
     $fieldNames = 'series_key';
     $this->fieldList = explode(',', $fieldNames);
     $this->pageList = array();
     $this->seriesKey = $seriesKey;
     // setup DB object
     $this->db = new Database_Site();
     $this->db->connectToDB(SITE_DB_NAME, SITE_DB_PATH, SITE_DB_USER, SITE_DB_PWORD);
     // if a series Key is provided then load the data
     if ($this->seriesKey != '') {
         $this->loadData();
     }
 }
 /**
  * function __construct
  * <pre>
  * [classConstructor Description]
  * </pre>
  * <pre><code>
  * [Put PseudoCode Here]
  * </code></pre>
  * @param $seriesID [STRING] The Page ID this Label is linked to
  * @param $pageKey [STRING] The unique Label Key of this Label Data
  * @return [void]
  */
 function __construct($seriesID = '', $pageKey = '')
 {
     parent::__construct(XMLObject_Multilingual_Page::NODE_PAGE_ROOT);
     // set the list of field names to manage
     $fieldNames = 'page_key';
     $this->fieldList = explode(',', $fieldNames);
     $this->labelsList = array();
     $this->seriesID = $seriesID;
     $this->pageKey = $pageKey;
     // setup DB object
     $this->db = new Database_Site();
     $this->db->connectToDB(SITE_DB_NAME, SITE_DB_PATH, SITE_DB_USER, SITE_DB_PWORD);
     // if a seriesID & pageKey were provided then load the data...
     if ($this->seriesID != '' && $this->pageKey != '') {
         $this->loadData();
     }
 }
 /**
  * function getLabelXML
  * <pre>
  * Prepares all the currently held labels into an XML output.
  * </pre>
  * @return [STRING]
  */
 function getLabelXML()
 {
     $xmlList = new XMLObject(XMLObject_MultilingualManager::XML_NODE_LABELLIST);
     foreach ($this->labels as $key => $value) {
         $label = $this->getLabel($key, $this->languageID);
         $xmlList->addElement('label', $label, array('key' => $key));
     }
     return $xmlList->getXML();
 }
 /** 
  * function getXML
  *
  * Generates an XML document from the list of applicants.
  *
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  *
  * @return [STRING] Returns an XML formatted string.
  */
 function getXML($isHeaderIncluded = true, $rootNodeName = LanguageLabelList::XML_NODE_NAME)
 {
     $xmlObject = new XMLObject($rootNodeName);
     $this->resultSet->setFirst();
     while ($item = $this->resultSet->getNext(new RowLabelBridge_LanguageLabelManager(-1, $this->languageID, $this->multiLingualManager))) {
         $xmlObject->addXMLObject($item->getXMLObject());
     }
     // end while
     return $xmlObject->getXML($isHeaderIncluded);
 }
 /**
  * function addHiddenData
  * <pre>
  * Stores a hidden data item in the object
  * </pre>
  * @param $name [STRING] the name of the hidden data item
  * @param $value [STRING] the value of the hidden data item
  * @return [void]
  */
 function addHiddenData($name, $value)
 {
     $xmlItem = new XMLObject(XMLObject_AdminBox::XML_NODE_HIDDEN);
     $xmlItem->addElement(XMLObject_AdminBox::XML_ELEMENT_HIDDEN_NAME, $name);
     $xmlItem->addElement(XMLObject_AdminBox::XML_ELEMENT_HIDDEN_VALUE, $value);
     $this->hiddenData->addXmlObject($xmlItem);
 }
  <sensitivity>public</sensitivity>
  <product-id>Horde::Kolab</product-id>
  <display-name>Another lista</display-name>
  <member>
    <display-name>Another  User</display-name>
    <smtp-address>other@debian-vm.local</smtp-address>
    <uid>a2cfdc52365ef429042413bf7717dc85</uid>
  </member>
  <member>
    <display-name>Sample A. User Jr.</display-name>
    <smtp-address>sample@debian-vm.local</smtp-address>
    <uid>f538c7e9ad5a63e4452b7db3bc291231</uid>
  </member>
</distribution-list>
EOL;
$xo = new XMLObject();
$dl = new DistList($xo->readDistList($dlxml, kolabobject::KolabV2));
echo $dl->uid() . "\n\n";
$ml = $dl->members();
for ($i = 0; $i < $ml->size(); $i++) {
    $m = $ml->get($i);
    echo "Member [" . $m->type() . "]: " . $m->uid() . "; " . $m->email() . "\n";
}
$dl2 = new DistList();
$ml = new vectorcontactref();
$m1 = new ContactReference(ContactReference::UidReference, 'some-uid-value');
$ml->push($m1);
$m2 = new ContactReference(ContactReference::EmailReference, 'sample@localhost');
$ml->push($m2);
$dl2->setMembers($ml);
echo $xo->writeDistList($dl2, kolabobject::KolabV2);
Example #12
0
 function prepareDisplayData()
 {
     // set the page's Template to the Login Template
     $this->setPageTemplate(PAGE_TEMPLATE_LOGIN);
     // Compile Login Form Data as XML
     $formData = new XMLObject('PageContent');
     $formData->addElement('formAction', $this->getCallBack(moduleLogin::MODE_SUBMIT));
     $formData->addElement('pathToRoot', $this->moduleRootPath);
     $formData->addElement('errorMessage', $this->errorMessages);
     $formData->addElement('form_username', moduleLogin::FORM_USERID);
     $formData->addElement('form_password', moduleLogin::FORM_PASSWORD);
     $formData->addElement('username', $this->userID);
     $formData->addElement('password', $this->passWord);
     $xmlData = $formData->getXML();
     $template = new Template($this->moduleRootPath . 'templates/');
     $template->setXML('pageContent', $xmlData);
     $content = $template->fetch(PAGE_LOGIN_TEMPLATE);
     // Finally store HTML content as this page's content Item
     $this->addElement(XMLObject_PageContent::NODE_CONTENT, $content);
 }
Example #13
0
 /** 
  * function getXML
  *
  * Generates an XML document from the list of applicants.
  *
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  *
  * @return [STRING] Returns an XML formatted string.
  */
 function getXML($isHeaderIncluded = true, $rootNodeName = '')
 {
     if ($rootNodeName == '') {
         $rootNodeName = $this->xmlNodeName;
     }
     $xmlObject = new XMLObject($rootNodeName);
     // if given datamanager is of type MultiTableManager then
     if (is_a($this->searchManager, 'MultiTableManager')) {
         // echo 'Is a MultiTableManager<br/>';
         $this->resultSet->setFirst();
         while ($this->resultSet->moveNext()) {
             //                   $row = $this->resultSet->getCurrentRow();
             //                  echo 'The row is<pre>'.print_r($row,true).'</pre>';
             $this->searchManager->loadFromArray($this->resultSet->getCurrentRow());
             $skipIndividualManagers = true;
             //                  $xml = $this->searchManager->getXMLObject(true,'',$skipIndividualManagers);
             //                  echo 'The XML is <pre>'.print_r($xml,true).'</pre>';
             $xmlObject->addXMLObject($this->searchManager->getXMLObject(true, '', $skipIndividualManagers));
         }
     } else {
         // echo 'Is not a MultiTableManager<br/>';
         // else
         $this->resultSet->setFirst();
         while ($item = $this->resultSet->getNext(new $this->searchClassName())) {
             $xmlObject->addXMLObject($item->getXMLObject());
         }
         // end while
     }
     // end if (is_a() )
     return $xmlObject->getXML($isHeaderIncluded);
 }
 /**
  * function loadPage
  * <pre>
  * load the page zones and applications given a pageID.
  * </pre>
  * @param $pageID [INTEGER] Unique PageID of the page to load.
  */
 function loadPage($pageID)
 {
     // now get a list of zones for this page
     $sql = 'SELECT DISTINCT pageapp_zone FROM ' . SITE_DB_NAME . '.' . XMLObject_CMSPageApp::DB_TABLE_PAGEAPP . ' WHERE page_id=' . $pageID;
     // for each zone
     $this->db->runSQL($sql);
     while ($row = $this->db->retrieveRow()) {
         // store in this->zones
         $this->zones[] = $row['pageapp_zone'];
     }
     // Create a generic App Object.
     $currentApp = new XMLObject_CMSApps($this->viewer);
     // for each zone
     for ($zoneIndx = 0; $zoneIndx < count($this->zones); $zoneIndx++) {
         // Create a new zone XML Object
         $currentZone = new XMLObject(XMLObject_CMSPageApp::XML_NODE_ZONE);
         $currentZone->addAttribute('name', $this->zones[$zoneIndx]);
         // get all the applications in the current zone
         $sql = 'SELECT * FROM ' . SITE_DB_NAME . '.' . XMLObject_CMSPageApp::DB_TABLE_PAGEAPP . ' WHERE page_id=' . $pageID . ' AND pageapp_zone="' . $this->zones[$zoneIndx] . '" ORDER BY pageapp_order';
         // for each application
         $this->db->runSQL($sql);
         while ($row = $this->db->retrieveRow()) {
             // Load Application
             $currentApp->loadApp($row['app_id']);
             // Store Application in current Zone
             $currentZone->addElement($currentApp->getNodeName(), $currentApp->getValues());
         }
         // end while
         // Now store current Zone in this object
         $this->addElement($currentZone->getNodeName(), $currentZone->getValues());
     }
     // end For Each Zone
 }
Example #15
0
 /**
  * function getHTML
  * <pre>
  * This method returns the HTML data generated by this object.
  * </pre>
  * @return [STRING] HTML Display data.
  */
 function getHTML()
 {
     // Uncomment the following line if you want to create a template
     // tailored for this page:
     $path = $this->pathModuleRoot . 'templates/';
     // Otherwise use the standard Templates for the site:
     //$path = SITE_PATH_TEMPLATES;
     /*
      * Update any label tags ...
      */
     // example:
     // $name = $user->getName();
     // $this->labels->setLabelTag( '[Title]', '[userName]', $name);
     // do the join
     // campuses
     $campusManager = new RowManager_CampusManager();
     $campusManager->setSortOrder('campus_desc');
     $multiTableManager = new MultiTableManager();
     $multiTableManager->addRowManager($campusManager);
     // prcs
     $prcManager = new RowManager_PRCManager();
     $multiTableManager->addRowManager($prcManager, new JoinPair($campusManager->getJoinOnCampusID(), $prcManager->getJoinOnCampusID()));
     // semester
     $semesterManager = new RowManager_SemesterManager();
     // TODO update the semester
     $semesterManager->setSemesterID(1);
     $multiTableManager->addRowManager($semesterManager, new JoinPair($prcManager->getJoinOnSemesterID(), $prcManager->getJoinOnSemesterID()));
     // prc method
     $prcMethodManager = new RowManager_PrcMethodManager();
     $multiTableManager->addRowManager($prcMethodManager, new JoinPair($prcManager->getJoinOnPrcMethodID(), $prcMethodManager->getJoinOnPrcMethodID()));
     // get ready to make the xml
     $xmlObject = new XMLObject();
     // HEADER
     //$reportInfoXMLObject = new XMLObject('PRC_REPORT');
     //$xmlObject->addXMLObject( $reportInfoXMLObject );
     // END HEADER
     // BODY
     $bodyXMLObject = new XMLObject('PRC_FOR_SEMESTER');
     // construct the iterator
     $list = new ListIterator($multiTableManager);
     $list->setFirst();
     while ($list->moveNext()) {
         $itemXMLObject = $list->getCurrentRowXMLObject(false, 'IndividualPRC');
         // Finally add this row into the bigger picture
         $bodyXMLObject->addXMLObject($itemXMLObject);
     }
     // multiTableManager->moveNext()
     $xmlObject->addXMLObject($bodyXMLObject);
     $xmlDoc = new DOMDocument();
     $xmlDoc->loadXML($xmlObject->getXML(false, 'PRCReport'));
     $numBytesWritten = $xmlDoc->save($this->pathModuleRoot . 'prcReport.xml');
     // echo 'Written '.$numBytesWritten.' bytes';
     // save the xml data onto the server
     // return $xmlDoc->saveXML();
     // ------- PART 2 --------
     // WEEKLY STATS
     $multiTableManager = new MultiTableManager();
     $weeklyManager = new RowManager_WeeklyReportManager();
     $multiTableManager->addRowManager($weeklyManager);
     $campusManager = new RowManager_CampusManager();
     $campusManager->setSortOrder('campus_desc');
     $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $weeklyManager->getJoinOnCampusID()));
     $weekManager = new RowManager_WeekManager();
     $multiTableManager->addRowManager($weekManager, new JoinPair($weekManager->getJoinOnWeekID(), $weeklyManager->getJoinOnWeekID()));
     $staffManager = new RowManager_StaffManager();
     $multiTableManager->addRowManager($staffManager, new JoinPair($weeklyManager->getJoinOnStaffID(), $staffManager->getJoinOnStaffID()));
     $personManager = new RowManager_PersonManager();
     $multiTableManager->addRowManager($personManager, new JoinPair($personManager->getJoinOnPersonID(), $staffManager->getJoinOnPersonID()));
     // get ready to make the xml
     $xmlObject = new XMLObject();
     // HEADER
     //$reportInfoXMLObject = new XMLObject('PRC_REPORT');
     //$xmlObject->addXMLObject( $reportInfoXMLObject );
     // END HEADER
     // BODY
     $bodyXMLObject = new XMLObject('WEEKLY_FOR_SEMESTER');
     // construct the iterator
     $list = new ListIterator($multiTableManager);
     $list->setFirst();
     while ($list->moveNext()) {
         $itemXMLObject = $list->getCurrentRowXMLObject(false, 'IndividualWeek');
         // Finally add this row into the bigger picture
         $bodyXMLObject->addXMLObject($itemXMLObject);
     }
     // multiTableManager->moveNext()
     $xmlObject->addXMLObject($bodyXMLObject);
     $xmlDoc = new DOMDocument();
     $xmlDoc->loadXML($xmlObject->getXML(false, 'Report'));
     $numBytesWritten = $xmlDoc->save($this->pathModuleRoot . 'weeklyReport.xml');
     // echo 'Written '.$numBytesWritten.' bytes';
     // save the xml data onto the server
     // return $xmlDoc->saveXML();
     // ------- PART 3 --------
     $multiTableManager = new MultiTableManager();
     $campusStatsManager = new RowManager_MoreStatsManager();
     $multiTableManager->addRowManager($campusStatsManager);
     $campusManager = new RowManager_CampusManager();
     $campusManager->setSortOrder('campus_desc');
     $multiTableManager->addRowManager($campusManager, new JoinPair($campusManager->getJoinOnCampusID(), $campusStatsManager->getJoinOnCampusID()));
     $weekManager = new RowManager_WeekManager();
     $multiTableManager->addRowManager($weekManager, new JoinPair($campusStatsManager->getJoinOnWeekID(), $weekManager->getJoinOnWeekID()));
     $expTypeManager = new RowManager_ExposureTypeManager();
     $multiTableManager->addRowManager($expTypeManager, new JoinPair($campusStatsManager->getJoinOnExpTypeID(), $expTypeManager->getJoinOnExpTypeID()));
     $count = 0;
     // get ready to make the xml
     $xmlObject = new XMLObject();
     // HEADER
     //$reportInfoXMLObject = new XMLObject('PRC_REPORT');
     //$xmlObject->addXMLObject( $reportInfoXMLObject );
     // END HEADER
     // BODY
     $bodyXMLObject = new XMLObject('CAMPUS_REPORT');
     // construct the iterator
     $list = new ListIterator($multiTableManager);
     $list->setFirst();
     while ($list->moveNext()) {
         $itemXMLObject = $list->getCurrentRowXMLObject(false, 'Activity');
         $count++;
         // Finally add this row into the bigger picture
         $bodyXMLObject->addXMLObject($itemXMLObject);
     }
     // multiTableManager->moveNext()
     echo 'the count is [' . $count . ']<br/>';
     $xmlObject->addXMLObject($bodyXMLObject);
     $xmlDoc = new DOMDocument();
     $xmlDoc->loadXML($xmlObject->getXML(false, 'Report'));
     $numBytesWritten = $xmlDoc->save($this->pathModuleRoot . 'campusReport.xml');
     // echo 'Written '.$numBytesWritten.' bytes';
     // save the xml data onto the server
     // return $xmlDoc->saveXML();
     // ---------------
     // OK DONE!
     // NOTE:  this parent method prepares the $this->template with the
     // common Display data.
     $this->prepareTemplate($path);
     // uncomment this line if you are creating a template for this page
     $templateName = 'page_Reports.php';
     // otherwise use the generic site template
     //$templateName = '';
     return $this->template->fetch($templateName);
 }
 /** 
  * function getXMLObject
  * <pre>
  * Generates an XML Object from the object's Values array.
  * NOTE: I'm overridding the parent method due to special case where
  * the dataManager & labelManager share the same field name (dataManager's
  * primary key). 
  * </pre>
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  *
  * @return [OBJECT] XMLObject
  */
 function getXMLObject($isHeaderIncluded = true, $rootNodeName = '')
 {
     // use member root node name if one is not provided.
     if ($rootNodeName == '') {
         $rootNodeName = $this->xmlNodeName;
     }
     // NOTE: Big picture here, is to make the two seperate XML
     // descriptions to be 1 blended description.
     // get the XML objects of the dataManager & labelManager
     $dataManagerXMLObj = $this->dataManager->getXMLObject();
     $labelManagerXMLObj = $this->labelManager->getXMLObject();
     // Get their values as Arrays
     $dataManagerValues = $dataManagerXMLObj->getValues();
     $labelManagerValues = $labelManagerXMLObj->getValues();
     // NOTE:
     // in this case, labelManager contains the dataManager's primary key
     // as the foreign key.  In our application we need both values. So
     // here we rename the labelManager's foreign key instance to
     // 'viewerLanguage_id'
     $combinedValues = $dataManagerValues;
     foreach ($labelManagerValues as $xmlElement) {
         $key = $xmlElement->getName();
         if ($key == 'language_id') {
             $xmlElement->setName('viewerLanguage_id');
         }
         $combinedValues[] = $xmlElement;
     }
     // create new XML Object for output
     $xmlObject = new XMLObject($rootNodeName);
     // set those combined values as this Blended XML object
     $xmlObject->setValues($combinedValues);
     return $xmlObject;
 }
Example #17
0
 /** 
  * function getXMLObject
  *
  * Generates an XML Object from the object's Values array.
  *
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  *
  * @return [OBJECT] Returns an XMLObject.
  */
 function getXMLObject($isHeaderIncluded = true, $rootNodeName = '')
 {
     // use member root node name if one is not provided.
     if ($rootNodeName == '') {
         $rootNodeName = $this->xmlNodeName;
     }
     $xmlObject = new XMLObject($rootNodeName);
     // for each possible field this object manages ...
     for ($indx = 0; $indx < count($this->fields); $indx++) {
         $key = $this->fields[$indx];
         // if value exists
         if (isset($this->values[$key])) {
             // echo 'Value ['.$key.'] Exists<br/>';
             $xmlObject->addElement($key, $this->values[$key]);
         } else {
             // echo 'Value ['.$key.'] does NOT Exist<br/>';
             $xmlObject->addElement($key, '');
         }
     }
     return $xmlObject;
 }
 /** 
  * function getXMLObject
  *
  * Generates an XML Object from the object's Values array.
  *
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  *
  * @return [OBJECT] Returns an XMLObject.
  */
 function getXMLObject($isHeaderIncluded = true, $rootNodeName = '')
 {
     $xmlObject = new XMLObject($rootNodeName);
     // for each possible field this object manages ...
     for ($indx = 0; $indx < count($this->fields); $indx++) {
         $key = $this->fields[$indx];
         // if value exists
         if (isset($this->values[$key])) {
             $xmlObject->addElement($key, $this->values[$key]);
         } else {
             $xmlObject->addElement($key, '');
         }
     }
     return $xmlObject;
 }
 /** 
  * function getXMLObject
  * <pre>
  * Generates an XML Object from the object's Values array.
  * </pre>
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  * @param $skipManagers [BOOLEAN] Whether to skip reading individual manager values in favour of overall values
  *
  * @return [OBJECT] XMLObject
  */
 function getXMLObject($isHeaderIncluded = true, $rootNodeName = '', $skipManagers = false)
 {
     // use member root node name if one is not provided.
     if ($rootNodeName == '') {
         $rootNodeName = $this->xmlNodeName;
     }
     // NOTE: Big picture here, is to make the individual XML values from
     // the XMLObjects and combine them into 1 XMLObject for a unified
     // XML result.
     // for each rowManager in list
     $combinedValues = array();
     // only use overall result values, NOT values from individual managers (which has problems with LEFT JOINs)
     if ($skipManagers == true) {
         $combinedValues = $this->getArrayOfValues($skipManagers);
     } else {
         //         echo "ROwManager = <pre>".print_r($this->rowManagerList,true)."</pre>";
         for ($indx = 0; $indx < count($this->rowManagerList); $indx++) {
             // pull out XMLValues array
             $valuesArray = $this->rowManagerList[$indx]->getArrayOfValues();
             //              echo 'The XML values<pre>'.print_r($valuesArray,true).'</pre>';
             // combine them into 1 array of Values
             $combinedValues = array_merge($combinedValues, $valuesArray);
         }
         //         echo 'Combined<pre>'.print_r($combinedValues,true).'</pre>';
         // exit;
     }
     // create new XML Object for output
     $xmlObject = new XMLObject($rootNodeName);
     // set those combined values as this Blended XML object
     foreach ($combinedValues as $key => $value) {
         $xmlObject->addElement($key, $value);
     }
     return $xmlObject;
 }
Example #20
0
 /** 
  * function getXML
  *
  * Generates an XML document from the list of applicants.
  *
  * @param $isHeaderIncluded [BOOL] Determines if we include the '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  *
  * @return [STRING] Returns an XML formatted string.
  */
 function getXML($isHeaderIncluded = true, $rootNodeName = LanguageList::XML_NODE_NAME)
 {
     $xmlObject = new XMLObject($rootNodeName);
     $this->resultSet->setFirst();
     while ($item = $this->resultSet->getNext(new RowManager_LanguageManager())) {
         $xmlObject->addXMLObject($item->getXMLObject());
     }
     // end while
     return $xmlObject->getXML($isHeaderIncluded);
 }
 /**
  * function loadData
  * <pre>
  * gathers the label data from the DB
  * </pre>
  * @return [void]
  */
 function loadData()
 {
     // build sql for gathering data
     //       $fieldNames = str_replace('label_moddate','FROM_UNIXTIME(label_moddate) as label_moddate', $this->fieldNames);
     $sql = 'SELECT * FROM ';
     $sql .= SITE_DB_NAME . '.' . XMLObject_MultilingualManager::DB_TABLE_TRANSLATION;
     $sql .= ' WHERE label_id="' . $this->labelID . '"';
     $this->db->runSQL($sql);
     // for each label
     while ($row = $this->db->retrieveRow()) {
         // create new XML Object
         $currentLabel = new XMLObject(XMLObject_Multilingual_Translation::NODE_TRANSLATION);
         // load Values into XML Object
         for ($indx = 0; $indx < count($this->fieldList); $indx++) {
             $fieldName = $this->fieldList[$indx];
             $currentLabel->addElement($fieldName, $row[$fieldName]);
         }
         // store XML Object into array
         $this->labelsList[] = $currentLabel;
     }
     // next label
     // Add Each Label entry to this element
     for ($indx = 0; $indx < count($this->labelsList); $indx++) {
         $this->addXmlObject($this->labelsList[$indx]);
     }
     // next Label
 }
 /**
  * function getLabelXML
  * <pre>
  * Prepares all the currently held labels into an XML output.
  * </pre>
  * @return [STRING]
  */
 function getLabelXML()
 {
     $xmlList = new XMLObject(RowManager_MultilingualLabelManager::XML_NODE_NAME);
     $labelKey = RowManager_MultilingualLabelManager::XML_ELEMENT_NAME;
     foreach ($this->labels as $key => $value) {
         $label = $this->getLabel($key, $this->languageID);
         $xmlList->addElement($labelKey, $label, array('key' => $key));
     }
     //echo $xmlList->getXML();
     return $xmlList->getXML();
 }
 /** 
  * function getXML
  * <pre>
  * Generates an XML document from the object's Values array.
  * </pre>
  * @param $isHeaderIncluded [BOOL] Determines if we include the 
  * '<?xml version="1.0"?>' header.
  * @param $rootNodeName [STRING] The XML root node name.
  * @return [STRING] Returns an XML formatted string.
  */
 function getXML($isHeaderIncluded = true, $rootNodeName = '')
 {
     // Prepare This object to generate it's XML output.
     // first store this objects values in a copy.
     $valuesCopy = $this->xmlValues;
     // include css list as an element
     $this->addXmlObject($this->cssList);
     // include script list as an element
     $this->addXmlObject($this->scriptList);
     // include navbar data as an element
     //	   $this->addXmlObject( $this->navBar );
     $cacheData = $this->navBar->getCache();
     $cacheData = str_replace($this->navBar->getPathToRootTag(), $this->pathToRoot, $cacheData);
     $this->addElement(XMLObject_PageContent::NODE_NAVBAR, $cacheData);
     // include body list as an element
     $this->addXmlObject($this->bodyList);
     // include Menu as an element
     $this->addXmlObject($this->pageMenu);
     // set the page's path to Root
     $this->addElement(XMLObject_PageContent::ELEMENT_PATH_ROOT, $this->pathToRoot);
     // set the page's title
     $this->addElement(XMLObject_PageContent::NODE_PAGE_TITLE, $this->pageTitle);
     // set the page's title
     $this->addElement(XMLObject_PageContent::NODE_WINDOW_TITLE, $this->windowTitle);
     // set the page's Header Image
     $this->addElement(XMLObject_PageContent::NODE_HEADER_IMAGE, $this->pageHeaderImage);
     // set the page's pageCallBack value
     $this->addElement(XMLObject_PageContent::NODE_PAGE_CALLBACK, $this->pageCallBack);
     // Now call the parent getXML to return the XML
     $returnValue = parent::getXML($isHeaderIncluded, $rootNodeName);
     // Now restore the values array to their original values.
     $this->xmlValues = $valuesCopy;
     return $returnValue;
 }