public function doExecute()
 {
     $arrSaved = array();
     $arrMatch = array();
     $objData = new Xerxes_DataMap();
     // find all of the xerxes records
     $objRecords = $this->request->getData("//xerxes_record", null, "DOMNodeList");
     if ($objRecords->length > 0) {
         foreach ($objRecords as $objXerxesRecord) {
             $strResultSet = "";
             $strRecordNumber = "";
             $objResultSet = $objXerxesRecord->getElementsByTagName("result_set")->item(0);
             $objRecordNumber = $objXerxesRecord->getElementsByTagName("record_number")->item(0);
             if ($objResultSet != null) {
                 $strResultSet = $objResultSet->nodeValue;
             }
             if ($objRecordNumber != null) {
                 $strRecordNumber = $objRecordNumber->nodeValue;
             }
             if ($strRecordNumber != "" && $strResultSet != "") {
                 // see if it's listed in session as being saved
                 if (Xerxes_Helper::isMarkedSaved($strResultSet, $strRecordNumber)) {
                     $key = Xerxes_Helper::savedRecordKey($strResultSet, $strRecordNumber);
                     $id = $_SESSION['resultsSaved'][$key]['xerxes_record_id'];
                     array_push($arrSaved, $id);
                     $arrMatch[$id] = $strResultSet . ":" . $strRecordNumber;
                 }
             }
         }
         if (count($arrSaved) == 0) {
             return 0;
         }
         // fetch all the saved records on this page in one query to the database
         $arrResults = $objData->getRecordsByID($arrSaved);
         if (count($arrResults) == 0) {
             return 0;
         } else {
             $objXml = new DOMDocument();
             $objXml->loadXML("<saved_records />");
             foreach ($arrResults as $objSavedRecord) {
                 // id
                 $objSavedRecordXml = $objXml->createElement("saved");
                 $objSavedRecordXml->setAttribute("id", $arrMatch[$objSavedRecord->id]);
                 $objIDXml = $objXml->createElement("id", $objSavedRecord->id);
                 $objSavedRecordXml->appendChild($objIDXml);
                 // labels
                 foreach ($objSavedRecord->tags as $tag) {
                     $objTagXml = $objXml->createElement("tag", Xerxes_Framework_Parser::escapeXml($tag));
                     $objSavedRecordXml->appendChild($objTagXml);
                 }
                 $objXml->documentElement->appendChild($objSavedRecordXml);
             }
             $this->request->addDocument($objXml);
             return 1;
         }
     }
 }
示例#2
0
 protected function isMarkedSaved($strResultSet, $strRecordNumber)
 {
     return Xerxes_Helper::isMarkedSaved($strResultSet, $strRecordNumber);
 }