include changes for website block -- CRM-16877
authorjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Fri, 4 Sep 2015 07:14:06 +0000 (12:44 +0530)
committerjitendrapurohit <jitendra.purohit@webaccessglobal.com>
Fri, 4 Sep 2015 07:14:06 +0000 (12:44 +0530)
CRM/Contact/BAO/Contact.php
CRM/Contact/Form/Contact.php
CRM/Contact/Form/Inline/Website.php
CRM/Core/BAO/Website.php

index c3658b59c95b39350a35f7915bbc83e7a37efa15..a972eb461ec269be586157f01691b4d88e199a38 100644 (file)
@@ -365,6 +365,9 @@ class CRM_Contact_BAO_Contact extends CRM_Contact_DAO_Contact {
     foreach ($blocks as $name => $value) {
       $contact->$name = $value;
     }
+    if (!empty($params['updateBlankLocInfo'])) {
+      $skipDelete = TRUE;
+    }
 
     //add website
     CRM_Core_BAO_Website::create($params['website'], $contact->id, $skipDelete);
index b0d5294eaa2fbc5c441fba45bc178716a1067a9a..5374d0ee44766028f8e139b7a3bbaa5aaafde9db 100644 (file)
@@ -988,7 +988,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
       $parseStatusMsg = self::parseAddressStatusMsg($parseResult);
     }
 
-    $blocks = array('address', 'email', 'phone', 'im', 'openid');
+    $blocks = array('email', 'phone', 'im', 'openid', 'address', 'website');
     foreach ($blocks as $block) {
       if (!empty($this->_preEditValues[$block]) && is_array($this->_preEditValues[$block])) {
         foreach ($this->_preEditValues[$block] as $count => $value) {
index 2265e20cbf9ec0acfc6d80a6c54a8279c2c65727..042bb74495c75beed45748bc18d8f1dbcc8f5c91 100644 (file)
@@ -122,6 +122,11 @@ class CRM_Contact_Form_Inline_Website extends CRM_Contact_Form_Inline {
   public function postProcess() {
     $params = $this->exportValues();
 
+    foreach ($this->_websites as $count => $value) {
+      if (!empty($value['id']) && isset($params['website'][$count])) {
+        $params['website'][$count]['id'] = $value['id'];
+      }
+    }
     // Process / save websites
     CRM_Core_BAO_Website::create($params['website'], $this->_contactId, TRUE);
 
index 0ea8c530122453aff85b981a61808375448ec43c..df47e975cc0f04b21a399be3e3bbc09607ed396d 100644 (file)
@@ -77,35 +77,20 @@ class CRM_Core_BAO_Website extends CRM_Core_DAO_Website {
 
     $ids = self::allWebsites($contactID);
     foreach ($params as $key => $values) {
-      $websiteId = CRM_Utils_Array::value('id', $values);
-      if ($websiteId) {
-        if (array_key_exists($websiteId, $ids)) {
-          unset($ids[$websiteId]);
-        }
-        else {
-          unset($values['id']);
-        }
-      }
-
-      if (empty($values['id']) &&
-        is_array($ids) && !empty($ids)
-      ) {
+      if (empty($values['id']) && is_array($ids) && !empty($ids)) {
         foreach ($ids as $id => $value) {
-          if (($value['website_type_id'] == $values['website_type_id']) && !empty($values['url'])) {
+          if (($value['website_type_id'] == $values['website_type_id'])) {
             $values['id'] = $id;
-            unset($ids[$id]);
-            break;
           }
         }
       }
-      $values['contact_id'] = $contactID;
       if (!empty($values['url'])) {
+        $values['contact_id'] = $contactID;
         self::add($values);
       }
-    }
-
-    if ($skipDelete && !empty($ids)) {
-      self::del(array_keys($ids));
+      elseif ($skipDelete && !empty($values['id'])) {
+        self::del(array($values['id']));
+      }
     }
   }