Contacts: Added option to skip or replace Google contacts previously imported.

This commit is contained in:
Nate Jones
2014-11-27 02:28:47 +00:00
parent 77281ced54
commit ecfea148d7
3 changed files with 104 additions and 17 deletions

View File

@@ -66,11 +66,47 @@ if ($_POST['a'] == 'import') {
//iterate selected contact ids, insert contact into database
$contacts_imported = 0;
$contacts_skipped = 0;
$contacts_replaced = 0;
if (sizeof($import_ids) > 0) {
$import_ids = array_unique($import_ids);
foreach ($import_ids as $contact_id) {
//check for duplicate contact (already exists, previously imported, etc)
$sql = "select contact_uuid from v_contact_settings ";
$sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' ";
$sql .= "and contact_setting_category = 'google' ";
$sql .= "and contact_setting_subcategory = 'id' ";
$sql .= "and contact_setting_value = '".$contact_id."' ";
$sql .= "and contact_setting_enabled = 'true' ";
$prep_statement = $db->prepare($sql);
$prep_statement->execute();
$result = $prep_statement->fetch(PDO::FETCH_ASSOC);
if ($result['contact_uuid'] != '') {
$duplicate_exists = true;
$duplicate_contact_uuid = $result['contact_uuid'];
}
else {
$duplicate_exists = false;
}
unset($sql, $prep_statement, $result);
//skip importing contact
if ($duplicate_exists && $_POST['import_duplicates'] == 'skip') {
$contacts_skipped++;
continue;
}
//replace contact (delete before inserts below)
else if ($duplicate_exists && $_POST['import_duplicates'] == 'replace') {
$contact_uuid = $duplicate_contact_uuid;
$included = true;
require_once "contact_delete.php";
unset($contact_uuid, $duplicate_contact_uuid);
$contacts_replaced++;
}
//extract contact record from array using contact id
$contact = $_SESSION['contact_auth']['google'][$contact_id];
@@ -288,7 +324,10 @@ if ($_POST['a'] == 'import') {
}
$_SESSION["message"] = $text['message-contacts_imported']." ".$contacts_imported;
$message = $text['message-contacts_imported']." ".$contacts_imported;
if ($contacts_replaced > 0) { $message .= " (".$text['message_contacts_imported_replaced']." ".$contacts_replaced.")"; }
if ($contacts_skipped > 0) { $message .= ", ".$text['message_contacts_imported_skipped']." ".$contacts_skipped; }
$_SESSION["message"] = $message;
header("Location: contacts.php");
exit;
@@ -436,6 +475,20 @@ echo $text['description-shared_import']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-import_duplicates']."\n";
echo "</td>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' style='width: 150px;' name='import_duplicates'>\n";
echo " <option value='skip'>".$text['option-import_duplicates_skip']."</option>\n";
echo " <option value='replace'>".$text['option-import_duplicates_replace']."</option>\n";
echo " </select>\n";
echo "<br />\n";
echo $text['description-import_duplicates']."\n";
echo "</td>\n";
echo "</tr>\n";
echo "</table>";
echo "<br><br>";