CRM-16119: Fix incorrect usages of ts().
[civicrm-core.git] / CRM / Contact / Form / Contact.php
index c79406edaf914e195d10bb320d54b217f995aedf..d7c4aacab9e3ccd2a39e098cc61db61f97aee71b 100644 (file)
@@ -23,7 +23,7 @@
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  *
 class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
   /**
-   * The contact type of the form
+   * The contact type of the form.
    *
    * @var string
    */
   public $_contactType;
 
   /**
-   * The contact type of the form
+   * The contact type of the form.
    *
    * @var string
    */
@@ -65,14 +65,14 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   public $_contactId;
 
   /**
-   * The default group id passed in via the url
+   * The default group id passed in via the url.
    *
    * @var int
    */
   public $_gid;
 
   /**
-   * The default tag id passed in via the url
+   * The default tag id passed in via the url.
    *
    * @var int
    */
@@ -86,7 +86,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   protected $_dedupeButtonName;
 
   /**
-   * Name of optional save duplicate button
+   * Name of optional save duplicate button.
    *
    * @var string
    */
@@ -104,7 +104,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
   public $_customValueCount;
   /**
-   * The array of greetings with option group and filed names
+   * The array of greetings with option group and filed names.
    *
    * @var array
    */
@@ -116,7 +116,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   public $_parseStreetAddress;
 
   /**
-   * Check contact has a subtype or not
+   * Check contact has a subtype or not.
    */
   public $_isContactSubType;
 
@@ -128,7 +128,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   public $_preEditValues;
 
   /**
-   * Build all the data structures needed to build the form
+   * Build all the data structures needed to build the form.
    *
    * @return void
    */
@@ -138,6 +138,9 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
     $this->_dedupeButtonName = $this->getButtonName('refresh', 'dedupe');
     $this->_duplicateButtonName = $this->getButtonName('upload', 'duplicate');
 
+    CRM_Core_Resources::singleton()
+      ->addStyleFile('civicrm', 'css/contactSummary.css', 2, 'html-header');
+
     $session = CRM_Core_Session::singleton();
     if ($this->_action == CRM_Core_Action::ADD) {
       // check for add contacts permissions
@@ -149,8 +152,9 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         $this, TRUE, NULL, 'REQUEST'
       );
       if (!in_array($this->_contactType,
-          array('Individual', 'Household', 'Organization')
-        )) {
+        array('Individual', 'Household', 'Organization')
+      )
+      ) {
         CRM_Core_Error::statusBounce(ts('Could not get a contact id and/or contact type'));
       }
 
@@ -161,7 +165,8 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
       if (
         $this->_contactSubType &&
-        !(CRM_Contact_BAO_ContactType::isExtendsContactType($this->_contactSubType, $this->_contactType, TRUE))) {
+        !(CRM_Contact_BAO_ContactType::isExtendsContactType($this->_contactSubType, $this->_contactType, TRUE))
+      ) {
         CRM_Core_Error::statusBounce(ts("Could not get a valid contact subtype for contact type '%1'", array(1 => $this->_contactType)));
       }
 
@@ -174,7 +179,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         FALSE, NULL, 'GET'
       );
       $typeLabel = CRM_Contact_BAO_ContactType::contactTypePairs(TRUE, $this->_contactSubType ?
-        $this->_contactSubType : $this->_contactType
+          $this->_contactSubType : $this->_contactType
       );
       $typeLabel = implode(' / ', $typeLabel);
 
@@ -189,9 +194,9 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
       }
 
       if ($this->_contactId) {
-        $defaults          = array();
-        $params            = array('id' => $this->_contactId);
-        $returnProperities = array('id', 'contact_type', 'contact_sub_type', 'modified_date');
+        $defaults = array();
+        $params = array('id' => $this->_contactId);
+        $returnProperities = array('id', 'contact_type', 'contact_sub_type', 'modified_date', 'is_deceased');
         CRM_Core_DAO::commonRetrieve('CRM_Contact_DAO_Contact', $params, $defaults, $returnProperities);
 
         if (empty($defaults['id'])) {
@@ -208,6 +213,9 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         }
 
         $displayName = CRM_Contact_BAO_Contact::displayName($this->_contactId);
+        if ($defaults['is_deceased']) {
+          $displayName .= '  <span class="crm-contact-deceased">(deceased)</span>';
+        }
         $displayName = ts('Edit %1', array(1 => $displayName));
 
         // Check if this is default domain contact CRM-10482
@@ -431,7 +439,6 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
     //set address block defaults
     CRM_Contact_Form_Edit_Address::setDefaultValues($defaults, $this);
 
-
     if (!empty($defaults['image_URL'])) {
       list($imageWidth, $imageHeight) = getimagesize(CRM_Utils_String::unstupifyUrl($defaults['image_URL']));
       list($imageThumbWidth, $imageThumbHeight) = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight);
@@ -452,7 +459,6 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   /**
    * Do the set default related to location type id,
    * primary location,  default country
-   *
    */
   public function blockSetDefaults(&$defaults) {
     $locationTypeKeys = array_filter(array_keys(CRM_Core_PseudoConstant::get('CRM_Core_DAO_Address', 'location_type_id')), 'is_int');
@@ -471,8 +477,8 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
     // get default phone and im provider id.
     $defPhoneTypeId = key(CRM_Core_OptionGroup::values('phone_type', FALSE, FALSE, FALSE, ' AND is_default = 1'));
     $defIMProviderId = key(CRM_Core_OptionGroup::values('instant_messenger_service',
-        FALSE, FALSE, FALSE, ' AND is_default = 1'
-      ));
+      FALSE, FALSE, FALSE, ' AND is_default = 1'
+    ));
     $defWebsiteTypeId = key(CRM_Core_OptionGroup::values('website_type',
       FALSE, FALSE, FALSE, ' AND is_default = 1'
     ));
@@ -498,11 +504,10 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         // make we require one primary block, CRM-5505
         if ($updateMode) {
           if (!$hasPrimary) {
-            $hasPrimary =
-              CRM_Utils_Array::value(
-                'is_primary',
-                CRM_Utils_Array::value($instance, $defaults[$name])
-              );
+            $hasPrimary = CRM_Utils_Array::value(
+              'is_primary',
+              CRM_Utils_Array::value($instance, $defaults[$name])
+            );
           }
           continue;
         }
@@ -550,7 +555,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * This function is used to add the rules (mainly global rules) for form.
+   * add the rules (mainly global rules) for form.
    * All local rules are added near the element
    *
    * @return void
@@ -579,7 +584,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * Global validation rules for the form
+   * Global validation rules for the form.
    *
    * @param array $fields
    *   Posted values of the form.
@@ -588,7 +593,8 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
    * @param int $contactId
    *   Contact id if doing update.
    *
-   * @return bool $primaryID email/openId@static
+   * @return bool
+   *   email/openId
    */
   public static function formRule($fields, &$errors, $contactId = NULL) {
     $config = CRM_Core_Config::singleton();
@@ -639,7 +645,10 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
               $hasPrimary[] = $instance;
               if (!$primaryID &&
                 in_array($name, array(
-                  'email', 'openid')) && !empty($blockValues[$name])) {
+                  'email',
+                  'openid',
+                )) && !empty($blockValues[$name])
+              ) {
                 $primaryID = $blockValues[$name];
               }
             }
@@ -650,9 +659,9 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
           }
 
           if ($name == 'openid' && !empty($blockValues[$name])) {
-            $oid         = new CRM_Core_DAO_OpenID();
+            $oid = new CRM_Core_DAO_OpenID();
             $oid->openid = $openIds[$instance] = CRM_Utils_Array::value($name, $blockValues);
-            $cid         = isset($contactId) ? $contactId : 0;
+            $cid = isset($contactId) ? $contactId : 0;
             if ($oid->find(TRUE) && ($oid->contact_id != $cid)) {
               $errors["{$name}[$instance][openid]"] = ts('%1 already exist.', array(1 => $blocks['OpenID']));
             }
@@ -702,7 +711,9 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
         if (!empty($invalidStreetNumbers)) {
           $first = $invalidStreetNumbers[0];
-          foreach ($invalidStreetNumbers as & $num) $num = CRM_Contact_Form_Contact::ordinalNumber($num);
+          foreach ($invalidStreetNumbers as & $num) {
+            $num = CRM_Contact_Form_Contact::ordinalNumber($num);
+          }
           $errors["address[$first][street_number]"] = ts('The street number you entered for the %1 address block(s) is not in an expected format. Street numbers may include numeric digit(s) followed by other characters. You can still enter the complete street address (unparsed) by clicking "Edit Complete Street Address".', array(1 => implode(', ', $invalidStreetNumbers)));
         }
       }
@@ -712,7 +723,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * Build the form object
+   * Build the form object.
    *
    * @return void
    */
@@ -726,8 +737,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
     if ($this->_action == CRM_Core_Action::UPDATE) {
       $deleteExtra = ts('Are you sure you want to delete contact image.');
       $deleteURL = array(
-        CRM_Core_Action::DELETE =>
-        array(
+        CRM_Core_Action::DELETE => array(
           'name' => ts('Delete Contact Image'),
           'url' => 'civicrm/contact/image',
           'qs' => 'reset=1&cid=%%id%%&action=delete',
@@ -859,7 +869,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
     $params = $this->controller->exportValues($this->_name);
 
     $group = CRM_Utils_Array::value('group', $params);
-    if ($group && is_array($group)) {
+    if (!empty($group) && is_array($group)) {
       unset($params['group']);
       foreach ($group as $key => $value) {
         $params['group'][$value] = 1;
@@ -900,7 +910,8 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
     if (isset($params['contact_id'])) {
       // process membership status for deceased contact
-      $deceasedParams = array('contact_id' => CRM_Utils_Array::value('contact_id', $params),
+      $deceasedParams = array(
+        'contact_id' => CRM_Utils_Array::value('contact_id', $params),
         'is_deceased' => CRM_Utils_Array::value('is_deceased', $params, FALSE),
         'deceased_date' => CRM_Utils_Array::value('deceased_date', $params, NULL),
       );
@@ -943,11 +954,11 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
     // process shared contact address.
     CRM_Contact_BAO_Contact_Utils::processSharedAddress($params['address']);
 
-    if (!array_key_exists('TagsAndGroups', $this->_editOptions)) {
+    if (!array_key_exists('TagsAndGroups', $this->_editOptions) && !empty($params['group'])) {
       unset($params['group']);
     }
 
-    if (!empty($params['contact_id']) && ($this->_action & CRM_Core_Action::UPDATE)) {
+    if (!empty($params['contact_id']) && ($this->_action & CRM_Core_Action::UPDATE) && !empty($params['group'])) {
       // figure out which all groups are intended to be removed
       $contactGroupList = CRM_Contact_BAO_GroupContact::getContactGroup($params['contact_id'], 'Added');
       if (is_array($contactGroupList)) {
@@ -1055,20 +1066,28 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * Is there any real significant data in the hierarchical location array
+   * Is there any real significant data in the hierarchical location array.
    *
    * @param array $fields
    *   The hierarchical value representation of this location.
    *
-   * @return boolean true if data exists, false otherwise
-   * @static
+   * @return bool
+   *   true if data exists, false otherwise
    */
   public static function blockDataExists(&$fields) {
     if (!is_array($fields)) {
       return FALSE;
     }
 
-    static $skipFields = array('location_type_id', 'is_primary', 'phone_type_id', 'provider_id', 'country_id', 'website_type_id', 'master_id');
+    static $skipFields = array(
+      'location_type_id',
+      'is_primary',
+      'phone_type_id',
+      'provider_id',
+      'country_id',
+      'website_type_id',
+      'master_id',
+    );
     foreach ($fields as $name => $value) {
       $skipField = FALSE;
       foreach ($skipFields as $skip) {
@@ -1099,7 +1118,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * That checks for duplicate contacts
+   * That checks for duplicate contacts.
    *
    * @param array $fields
    *   Fields array which are submitted.
@@ -1108,7 +1127,6 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
    *   Contact id.
    * @param string $contactType
    *   Contact type.
-   *
    */
   public static function checkDuplicateContacts(&$fields, &$errors, $contactID, $contactType) {
     // if this is a forced save, ignore find duplicate rule
@@ -1121,12 +1139,21 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         $contactLinks = CRM_Contact_BAO_Contact_Utils::formatContactIDSToLinks($ids, TRUE, TRUE, $contactID);
 
         $duplicateContactsLinks = '<div class="matching-contacts-found">';
-        $duplicateContactsLinks .= ts('One matching contact was found. ', array('count' => count($contactLinks['rows']), 'plural' => '%count matching contacts were found.<br />'));
+        $duplicateContactsLinks .= ts('One matching contact was found. ', array(
+            'count' => count($contactLinks['rows']),
+            'plural' => '%count matching contacts were found.<br />',
+          ));
         if ($contactLinks['msg'] == 'view') {
-          $duplicateContactsLinks .= ts('You can View the existing contact', array('count' => count($contactLinks['rows']), 'plural' => 'You can View the existing contacts'));
+          $duplicateContactsLinks .= ts('You can View the existing contact', array(
+              'count' => count($contactLinks['rows']),
+              'plural' => 'You can View the existing contacts',
+            ));
         }
         else {
-          $duplicateContactsLinks .= ts('You can View or Edit the existing contact', array('count' => count($contactLinks['rows']), 'plural' => 'You can View or Edit the existing contacts'));
+          $duplicateContactsLinks .= ts('You can View or Edit the existing contact', array(
+              'count' => count($contactLinks['rows']),
+              'plural' => 'You can View or Edit the existing contacts',
+            ));
         }
         if ($contactLinks['msg'] == 'merge') {
           // We should also get a merge link if this is for an existing contact
@@ -1157,8 +1184,6 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
         $errors['_qf_default'] = $duplicateContactsLinks;
 
-
-
         // let smarty know that there are duplicates
         $template = CRM_Core_Smarty::singleton();
         $template->assign('isDuplicate', 1);
@@ -1171,7 +1196,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * Use the form name to create the tpl file name
+   * Use the form name to create the tpl file name.
    *
    * @return string
    */
@@ -1192,10 +1217,11 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
    * This function either parse street address in to child
    * elements or build street address from child elements.
    *
-   * @param $params
-   *   Array of key value consist of address blocks.
+   * @param array $params
+   *   of key value consist of address blocks.
    *
-   * @return array $parseSuccess as array of sucess/fails for each address block@static
+   * @return array
+   *   as array of sucess/fails for each address block
    */
   public function parseAddress(&$params) {
     $parseSuccess = $parsedFields = array();
@@ -1209,7 +1235,10 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
       $buildStreetAddress = FALSE;
       $parseFieldName = 'street_address';
       foreach (array(
-        'street_number', 'street_name', 'street_unit') as $fld) {
+                 'street_number',
+                 'street_name',
+                 'street_unit',
+               ) as $fld) {
         if (!empty($address[$fld])) {
           $parseFieldName = 'street_number';
           $buildStreetAddress = TRUE;
@@ -1238,9 +1267,15 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
         $streetAddress = NULL;
         foreach (array(
-          'street_number', 'street_number_suffix', 'street_name', 'street_unit') as $fld) {
+                   'street_number',
+                   'street_number_suffix',
+                   'street_name',
+                   'street_unit',
+                 ) as $fld) {
           if (in_array($fld, array(
-            'street_name', 'street_unit'))) {
+            'street_name',
+            'street_unit',
+          ))) {
             $streetAddress .= ' ';
           }
           $streetAddress .= CRM_Utils_Array::value($fld, $address);
@@ -1278,10 +1313,11 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
    * Check parse result and if some address block fails then this
    * function return the status message for all address blocks.
    *
-   * @param $parseResult
+   * @param array $parseResult
    *   An array of address blk instance and its status.
    *
-   * @return null|string $statusMsg   string status message for all address blocks.@static
+   * @return null|string
+   *   $statusMsg   string status message for all address blocks.
    */
   public static function parseAddressStatusMsg($parseResult) {
     $statusMsg = NULL;
@@ -1309,11 +1345,11 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
    * Convert normal number to ordinal number format.
    * like 1 => 1st, 2 => 2nd and so on...
    *
-   * @param $number
-   *   Int number to convert in to ordinal number.
+   * @param int $number
+   *   number to convert in to ordinal number.
    *
-   * @return ordinal number for given number.
-   * @static
+   * @return string
+   *   ordinal number for given number.
    */
   public static function ordinalNumber($number) {
     if (empty($number)) {
@@ -1343,22 +1379,24 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
   }
 
   /**
-   * Update membership status to deceased
+   * Update membership status to deceased.
    * function return the status message for updated membership.
    *
-   * @param $deceasedParams
-   *   Array having contact id and deceased value.
+   * @param array $deceasedParams
+   *   having contact id and deceased value.
    *
-   * @return null|string $updateMembershipMsg string  status message for updated membership.
+   * @return null|string
+   *   $updateMembershipMsg string  status message for updated membership.
    */
   public function updateMembershipStatus($deceasedParams) {
     $updateMembershipMsg = NULL;
-    $contactId           = CRM_Utils_Array::value('contact_id', $deceasedParams);
-    $deceasedDate        = CRM_Utils_Array::value('deceased_date', $deceasedParams);
+    $contactId = CRM_Utils_Array::value('contact_id', $deceasedParams);
+    $deceasedDate = CRM_Utils_Array::value('deceased_date', $deceasedParams);
 
     // process to set membership status to deceased for both active/inactive membership
     if ($contactId &&
-      $this->_contactType == 'Individual' && !empty($deceasedParams['is_deceased'])) {
+      $this->_contactType == 'Individual' && !empty($deceasedParams['is_deceased'])
+    ) {
 
       $session = CRM_Core_Session::singleton();
       $userId = $session->get('userID');
@@ -1366,7 +1404,6 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
         $userId = $contactId;
       }
 
-
       // get deceased status id
       $allStatus = CRM_Member_PseudoConstant::membershipStatus();
       $deceasedStatusId = array_search('Deceased', $allStatus);
@@ -1385,7 +1422,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
       $dao->whereAdd("status_id != $deceasedStatusId");
       $dao->find();
       $activityTypes = CRM_Core_PseudoConstant::activityType(TRUE, FALSE, FALSE, 'name');
-      $allStatus     = CRM_Member_PseudoConstant::membershipStatus();
+      $allStatus = CRM_Member_PseudoConstant::membershipStatus();
       $memCount = 0;
       while ($dao->fetch()) {
         // update status to deceased (for both active/inactive membership )
@@ -1405,7 +1442,6 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
           'max_related' => $dao->max_related,
         );
 
-
         CRM_Member_BAO_MembershipLog::add($membershipLog, CRM_Core_DAO::$_nullArray);
 
         //create activity when membership status is changed
@@ -1438,4 +1474,5 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form {
 
     return $updateMembershipMsg;
   }
+
 }