Do not look contact in buildForm hook when there is no logged in user.
[org.fsf.memberdashboard.git] / memberdashboard.php
index a8890f0f9d86b501c58fa4f73c26f92b3c067158..8f969f1a05fd810f4636a2c39e1099e3c9f91049 100644 (file)
@@ -147,16 +147,13 @@ function memberdashboard_civicrm_post($op, $objectName, $objectId, &$objectRef)
           'name' => 'memberdashboard_button_api_password',
           'group' => MEMBERDASHBOARD_SETTINGS_GROUP
         ));
-        $params = http_build_query(array(
-          'contact_id' => $contactId,
-          'date' => $joinDate
-        ));
 
         if(!empty($apiUrl) && !empty($user) && !empty($password)) {
+          $url = "$apiUrl?contact_id=" . $contactId . "&date=" . $joinDate;
           $curl = curl_init();
           curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
           curl_setopt($curl, CURLOPT_USERPWD, "$user:$password");
-          curl_setopt($curl, CURLOPT_URL, "$apiUrl?$params");
+          curl_setopt($curl, CURLOPT_URL, $url);
           curl_exec($curl);
         }
       }
@@ -167,3 +164,15 @@ function memberdashboard_civicrm_post($op, $objectName, $objectId, &$objectRef)
     }
   }
 }
+
+function memberdashboard_civicrm_buildForm($formName, &$form) {
+  // Hack to fix state select box in 4.4.x
+  if($formName == 'CRM_Profile_Form_Edit') {
+    $contactId = CRM_Core_Session::singleton()->get('userID');
+    if($concactId) {
+      $contact = civicrm_api3('contact', 'getsingle', array( 'id' => $contactId ));
+      $defaults['state_province-Primary'] = $contact['state_province_id'];
+      $form->setDefaults($defaults);
+    }
+  }
+}