Fix Soft credit personal note ton limit to 255 characters (DB limit).
authoreileen <emcnaughton@wikimedia.org>
Mon, 30 Apr 2018 02:47:08 +0000 (14:47 +1200)
committereileen <emcnaughton@wikimedia.org>
Mon, 30 Apr 2018 22:54:15 +0000 (10:54 +1200)
Note that some special characters can still cause it to spill over but that will affect other fields too & we
should consider a bigger fix if we need to.

Also fixed deprecation notices

CRM/Contribute/Form/Contribution/Confirm.php
CRM/Contribute/Form/Contribution/Main.php
CRM/Core/Form.php
CRM/PCP/BAO/PCP.php
CRM/PCP/Form/Campaign.php
CRM/PCP/Page/PCPInfo.php

index e72a6843f1129a7642eccc200d8a3f332b1cf932..17a0bd2f92bbd99c4d34af27924ccf03209e82b6 100644 (file)
@@ -1279,11 +1279,12 @@ class CRM_Contribute_Form_Contribution_Confirm extends CRM_Contribute_Form_Contr
     $params = array('id' => $contributionSoft->pcp_id);
     CRM_Core_DAO::commonRetrieve('CRM_PCP_DAO_PCP', $params, $pcpInfo);
     $ownerNotifyID = CRM_Core_DAO::getFieldValue('CRM_PCP_DAO_PCPBlock', $pcpInfo['pcp_block_id'], 'owner_notify_id');
+    $ownerNotifyOption = CRM_Core_PseudoConstant::getName('CRM_PCP_DAO_PCPBlock', 'owner_notify_id', $ownerNotifyID);
 
-    if ($ownerNotifyID != CRM_Core_OptionGroup::getValue('pcp_owner_notify', 'no_notifications', 'name') &&
-        (($ownerNotifyID == CRM_Core_OptionGroup::getValue('pcp_owner_notify', 'owner_chooses', 'name') &&
+    if ($ownerNotifyOption != 'no_notifications' &&
+        (($ownerNotifyOption == 'owner_chooses' &&
         CRM_Core_DAO::getFieldValue('CRM_PCP_DAO_PCP', $contributionSoft->pcp_id, 'is_notify')) ||
-        $ownerNotifyID == CRM_Core_OptionGroup::getValue('pcp_owner_notify', 'all_owners', 'name'))) {
+        $ownerNotifyOption == 'all_owners')) {
       $pcpInfoURL = CRM_Utils_System::url('civicrm/pcp/info',
         "reset=1&id={$contributionSoft->pcp_id}",
         TRUE, NULL, FALSE, TRUE
index ba43dcceacfaca538c5ebb904e43b9a50d5836e3..da9214d221194f09085473c995870d3e5d37bd8d 100644 (file)
@@ -484,7 +484,7 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu
         $this->addGroup($elements, 'pcp_is_anonymous', NULL, '&nbsp;&nbsp;&nbsp;');
 
         $this->add('text', 'pcp_roll_nickname', ts('Name'), array('maxlength' => 30));
-        $this->add('textarea', 'pcp_personal_note', ts('Personal Note'), array('style' => 'height: 3em; width: 40em;'));
+        $this->addField('pcp_personal_note', array('entity' => 'ContributionSoft', 'context' => 'create', 'style' => 'height: 3em; width: 40em;'));
       }
     }
     if (empty($this->_values['fee']) && empty($this->_ccid)) {
index 13bc59e3396a756315823a0339a8aae3a7659f1b..d6abdc7b3ecc0a901c080d36ae12829aa4e8691d 100644 (file)
@@ -1475,6 +1475,9 @@ class CRM_Core_Form extends HTML_QuickForm_Page {
         //Set default columns and rows for textarea.
         $props['rows'] = isset($props['rows']) ? $props['rows'] : 4;
         $props['cols'] = isset($props['cols']) ? $props['cols'] : 60;
+        if (!$props['maxlength'] && isset($fieldSpec['length'])) {
+          $props['maxlength'] = $fieldSpec['length'];
+        }
         return $this->add('textarea', $name, $label, $props, $required);
 
       case 'Select Date':
index b771766617d1aca642dce22fd1ca1c4ad04ddcb0..215ac06c459314775ef030ba3b197cb8ecd076c5 100644 (file)
@@ -453,7 +453,7 @@ WHERE pcp.id = %1 AND cc.contribution_status_id =1 AND cc.is_test = 0";
       $page->_defaults['pcp_is_anonymous'] = 0;
 
       $page->add('text', 'pcp_roll_nickname', ts('Name'), array('maxlength' => 30));
-      $page->add('textarea', "pcp_personal_note", ts('Personal Note'), array('style' => 'height: 3em; width: 40em;'));
+      $page->addField('pcp_personal_note', array('entity' => 'ContributionSoft', 'context' => 'create', 'style' => 'height: 3em; width: 40em;'));
     }
     else {
       $page->assign('is_honor_roll', FALSE);
@@ -477,8 +477,6 @@ WHERE pcp.id = %1 AND cc.contribution_status_id =1 AND cc.is_test = 0";
       return FALSE;
     }
 
-    $approvedId = CRM_Core_OptionGroup::getValue('pcp_status', 'Approved', 'name');
-
     $pcpStatus = CRM_Core_OptionGroup::values("pcp_status");
 
     $params = array('id' => $pcpId);
@@ -507,12 +505,13 @@ WHERE pcp.id = %1 AND cc.contribution_status_id =1 AND cc.is_test = 0";
 
     // define redirect url back to contrib page or event if needed
     $url = CRM_Utils_System::url($urlBase, "reset=1&id={$pcpBlock['entity_id']}", FALSE, NULL, FALSE, TRUE);
+    $currentPCPStatus = CRM_Core_PseudoConstant::getName('CRM_PCP_BAO_PCP', 'status_id', $pcpInfo['status_id']);
 
     if ($pcpBlock['target_entity_id'] != $entity['id']) {
       $statusMessage = ts('This page is not related to the Personal Campaign Page you have just visited. However you can still make a contribution here.');
       CRM_Core_Error::statusBounce($statusMessage, $url);
     }
-    elseif ($pcpInfo['status_id'] != $approvedId) {
+    elseif ($currentPCPStatus !== 'Approved') {
       $statusMessage = ts('The Personal Campaign Page you have just visited is currently %1. However you can still support the campaign here.', array(1 => $pcpStatus[$pcpInfo['status_id']]));
       CRM_Core_Error::statusBounce($statusMessage, $url);
     }
index 32c83eafc66555a74cb39c3a46c401154fdbf273..ffaa85a5db44ae56e8f5dc883cbd2e7d9aa48c82 100644 (file)
@@ -140,7 +140,7 @@ class CRM_PCP_Form_Campaign extends CRM_Core_Form {
     else {
       $owner_notification_option = CRM_PCP_BAO_PCP::getOwnerNotificationId($this->controller->get('component_page_id'), $this->_component ? $this->_component : 'contribute');
     }
-    if ($owner_notification_option == CRM_Core_OptionGroup::getValue('pcp_owner_notify', 'owner_chooses', 'name')) {
+    if ($owner_notification_option == CRM_Core_PseudoConstant::getKey('CRM_PCP_BAO_PCPBlock', 'owner_notify_id', 'owner_chooses')) {
       $this->assign('owner_notification_option', TRUE);
       $this->addElement('checkbox', 'is_notify', ts('Notify me via email when someone donates to my page'), NULL);
     }
index d3cea84eab9f7bbd3e3cef451d5ec2e8b95fd067..db32123a94cc0d046ee62d06ea731dfc0917ff8b 100644 (file)
@@ -77,7 +77,7 @@ class CRM_PCP_Page_PCPInfo extends CRM_Core_Page {
     $this->assign('pcp', $pcpInfo);
 
     $pcpStatus = CRM_Core_OptionGroup::values("pcp_status");
-    $approvedId = CRM_Core_OptionGroup::getValue('pcp_status', 'Approved', 'name');
+    $approvedId = CRM_Core_PseudoConstant::getKey('CRM_PCP_BAO_PCP', 'status_id', 'Approved');
 
     // check if PCP is created by anonymous user
     $anonymousPCP = CRM_Utils_Request::retrieve('ap', 'Boolean', $this);