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; }
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; }