$min_entry_date = $req_params['min_entry_date']; $skip = $req_params['skip']; $subdomain = empty($service['subdomain']) ? '' : '?subdomain=' . $service['subdomain']; $auth_key = empty($service['auth_key']) ? '' : '?key=' . $service['auth_key']; $pfif_uri = $service['post_url'] . $auth_key; $at_subdomain = " at subdomain {$subdomain} "; $p = new Pfif(); $p->setService($service_name, $service); $repos->start_harvest('scheduled', 'out'); print "\n\nExport started to " . $service['post_url'] . " at " . date("Y-m-d H:i:s") . "\n"; $local_date = local_date($min_entry_date); $loaded = $p->loadFromDatabase($local_date, null, 0, $skip); print "Exporting original records after {$local_date}.\n"; if ($loaded > 0) { // Export records $xml = $p->storeInXML(false, true); if ($xml != null) { $fh = fopen('cronpfif.xml', 'w'); $charstowrite = strlen($xml); $written = fwrite($fh, $xml, $charstowrite); fclose($fh); $post_status = $p->postToService($xml); // Person and note counts are in $_SESSION['pfif_info']. if ($post_status == -1) { update_harvest_log($repos, $req_params, 'error'); print "Export failed.\n"; } else { update_harvest_log($repos, $req_params, 'completed'); // Parse XML response. $response = @new SimpleXMLElement($post_status); $written = $response->write[0]->written;
} else { $loaded = $p->loadNotesFromXML($pfif_uri); } if ($loaded > 0) { print "Loaded {$loaded} XML records. "; if ($is_scheduled) { // Output to database for production if ($is_person) { $stored = $p->storePersonsInDatabase(); } else { $stored = $p->storeNotesInDatabase(); } print "Stored {$stored} records.\n"; } else { // Output to file for test/debug. (This leverages export functionality.) $xml = $p->storeInXML(false); // non-embedded format //print $xml; $logfile_name = 'crontest_' . $service_name . '.xml'; $fh = fopen($logfile_name, 'a+'); $charstowrite = strlen($xml); $written = fwrite($fh, $xml, $charstowrite); fclose($fh); print "wrote {$written} of {$charstowrite} characters to {$logfile_name}\n"; } // Note: For tests, only last_entry_date is saved. (No skip, etc.) update_harvest_log($repos, $req_params, 'completed'); } else { if ($loaded == -1) { pfif_error_log("Import failed from repository {$service_name} at " . date("Y-m-d H:i:s") . "\n"); } else {