public static function accumulateRoughcutEntryList($list, $desired_roughcut_id = null)
 {
     $entry_id_list = array();
     foreach ($list as $roughcut_entry) {
         $id = $roughcut_entry->getEntryId();
         $roughcut_id = $roughcut_entry->getRoughcutId();
         if ($desired_roughcut_id != null && $desired_roughcut_id != $roughcut_id) {
             continue;
         }
         if ($roughcut_entry->getOpType() == self::ROUGHCUT_ENTRY_OP_TYPE_ADD) {
             $entry_id_list[] = $id;
         } elseif ($roughcut_entry->getOpType() == self::ROUGHCUT_ENTRY_OP_TYPE_REMOVE) {
             kArray::removeFromArray($entry_id_list, $id);
         }
     }
     return $entry_id_list;
 }
예제 #2
0
 public static function updatePending(DOMDocument &$xml_doc, $entry_id, $add)
 {
     // get the current list from xml
     list($already_pending, $already_pending_arr) = self::getPending($xml_doc);
     // manipulate the array
     if ($add) {
         kArray::addToArray($already_pending_arr, $entry_id, true);
     } else {
         // remove from array
         kArray::removeFromArray($already_pending_arr, $entry_id);
     }
     if (count($already_pending_arr) > 0) {
         $already_pending = implode(",", $already_pending_arr);
     } else {
         $already_pending = "";
     }
     // set the updated list in the xml
     $metadata = kXml::getFirstElement($xml_doc, "MetaData");
     $should_save = kXml::setChildElement($xml_doc, $metadata, "Pending", $already_pending, true);
     $timestamp = empty($already_pending) ? "" : time();
     kXml::setChildElement($xml_doc, $metadata, self::LAST_PENDING_TIMESTAMP_ELEM_NAME, $timestamp, true);
     return $should_save;
 }