public static function updateRoughcut($roughcut_id, $roughcut_version, $roughcut_kshow_id, $entry_id_list) { /* $roughcut_id = $roughcut->getId(); $roughcut_version = $roughcut->getVersion(); $roughcut_kshow_id = $roughcut->getKshowId(); */ $roughcut_entry_list = roughcutEntryPeer::retrievByRoughcutId($roughcut_id); $existing_entry_list = self::accumulateRoughcutEntryList($roughcut_entry_list); // echo "entry_id_list: " . print_r ( $entry_id_list , true ) . "\n"; // echo "existing_entry_list: " . print_r ( $existing_entry_list , true ) . "\n"; $to_add = array(); $to_remove = array(); // find all the new ones foreach ($entry_id_list as $new_entry_id) { if (!in_array($new_entry_id, $existing_entry_list)) { // ignore duplicates if (!in_array($new_entry_id, $to_add)) { self::updateRoughcutEntry($roughcut_id, $roughcut_version, $roughcut_kshow_id, $new_entry_id, self::ROUGHCUT_ENTRY_OP_TYPE_ADD); $to_add[] = $new_entry_id; } } } // find all the ones that no longer exist foreach ($existing_entry_list as $existing_entry_id) { if (!in_array($existing_entry_id, $entry_id_list)) { // ignore duplicates if (!in_array($existing_entry_id, $to_remove)) { self::updateRoughcutEntry($roughcut_id, $roughcut_version, $roughcut_kshow_id, $existing_entry_id, self::ROUGHCUT_ENTRY_OP_TYPE_REMOVE); $to_remove[] = $existing_entry_id; } } } // echo "add: " . print_r ( $to_add , true ) . "\n"; // echo "delete: " . print_r ( $to_remove , true ) . "\n"; KalturaLog::log("roughcutEntry::updateRoughcut\nadded: [" . implode(",", $to_add) . "] removed: [" . implode(",", $to_add) . "]"); }