diff --git a/civicrm.php b/civicrm.php index 49570b3c2020ca380c126ab7c54043e84cdb8fe6..67ac8a2bcec4b59e840cf3d9f396c0740efc9769 100644 --- a/civicrm.php +++ b/civicrm.php @@ -2,7 +2,7 @@ /** * Plugin Name: CiviCRM * Description: CiviCRM - Growing and Sustaining Relationships - * Version: 5.65.2 + * Version: 5.66.0 * Requires at least: 4.9 * Requires PHP: 7.3 * Author: CiviCRM LLC @@ -36,7 +36,7 @@ if (!defined('ABSPATH')) { } // Set version here: changing it forces Javascript and CSS to reload. -define('CIVICRM_PLUGIN_VERSION', '5.65.2'); +define('CIVICRM_PLUGIN_VERSION', '5.66.0'); // Store reference to this file. if (!defined('CIVICRM_PLUGIN_FILE')) { @@ -1423,11 +1423,11 @@ class CiviCRM_For_WordPress { * * @since 4.6 * - * @return array $argdata Array containing request arguments and request string. + * @return array{args: array, argString: string} */ public function get_request_args() { - $argString = NULL; + $argString = ''; $args = []; // Get path from query vars. diff --git a/civicrm/CRM/ACL/BAO/ACL.php b/civicrm/CRM/ACL/BAO/ACL.php index ab6495a15777f0f293fc709606ac304ac4d6e7bc..dd39cce679044acdf7af6c3515f87e85c8451bf8 100644 --- a/civicrm/CRM/ACL/BAO/ACL.php +++ b/civicrm/CRM/ACL/BAO/ACL.php @@ -222,31 +222,13 @@ SELECT count( a.id ) * @return null|string */ public static function whereClause($type, &$tables, &$whereTables, $contactID = NULL) { - $acls = CRM_ACL_BAO_Cache::build($contactID); $whereClause = NULL; $allInclude = $allExclude = FALSE; $clauses = []; - if (!empty($acls)) { - $aclKeys = array_keys($acls); - $aclKeys = implode(',', $aclKeys); - $orderBy = 'a.object_id'; - if (array_key_exists('priority', CRM_ACL_BAO_ACL::getSupportedFields())) { - $orderBy .= ',a.priority'; - } - $query = " -SELECT a.operation, a.object_id,a.deny - FROM civicrm_acl_cache c, civicrm_acl a - WHERE c.acl_id = a.id - AND a.is_active = 1 - AND a.object_table = 'civicrm_group' - AND a.id IN ( $aclKeys ) -ORDER BY {$orderBy} -"; - - $dao = CRM_Core_DAO::executeQuery($query); - + $dao = self::getOrderedActiveACLs($contactID, 'civicrm_group'); + if ($dao !== NULL) { // do an or of all the where clauses u see $ids = $excludeIds = []; while ($dao->fetch()) { @@ -277,9 +259,12 @@ ORDER BY {$orderBy} $ids = []; $clauses[] = self::getGroupClause($excludeIds, 'NOT IN'); } - if (!empty($ids)) { + if (!empty($ids) && !$allInclude) { $clauses[] = self::getGroupClause($ids, 'IN'); } + elseif ($allInclude && empty($excludeIds)) { + $clauses[] = ' ( 1 ) '; + } } if (!empty($clauses)) { @@ -451,54 +436,73 @@ ORDER BY {$orderBy} */ protected static function loadPermittedIDs(int $contactID, string $tableName, int $type, $allGroups): array { $ids = []; - $acls = CRM_ACL_BAO_Cache::build($contactID); - $aclKeys = array_keys($acls); - $aclKeys = implode(',', $aclKeys); - $orderBy = 'a.object_id'; - if (array_key_exists('priority', CRM_ACL_BAO_ACL::getSupportedFields())) { - $orderBy .= ',a.priority'; - } - $query = " -SELECT a.operation,a.object_id,a.deny - FROM civicrm_acl_cache c, civicrm_acl a - WHERE c.acl_id = a.id - AND a.is_active = 1 - AND a.object_table = %1 - AND a.id IN ( $aclKeys ) -ORDER BY {$orderBy} -"; - $params = [1 => [$tableName, 'String']]; - $dao = CRM_Core_DAO::executeQuery($query, $params); - while ($dao->fetch()) { - if ($dao->object_id) { - if (self::matchType($type, $dao->operation)) { - if (!$dao->deny) { - $ids[] = $dao->object_id; - } - else { - $ids = array_diff($ids, [$dao->object_id]); + $dao = self::getOrderedActiveACLs($contactID, $tableName); + if ($dao !== NULL) { + while ($dao->fetch()) { + if ($dao->object_id) { + if (self::matchType($type, $dao->operation)) { + if (!$dao->deny) { + $ids[] = $dao->object_id; + } + else { + $ids = array_diff($ids, [$dao->object_id]); + } } } - } - else { - // this user has got the permission for all objects of this type - // check if the type matches - if (self::matchType($type, $dao->operation)) { - if (!$dao->deny) { - foreach ($allGroups as $id => $dontCare) { - $ids[] = $id; + else { + // this user has got the permission for all objects of this type + // check if the type matches + if (self::matchType($type, $dao->operation)) { + if (!$dao->deny) { + foreach ($allGroups as $id => $dontCare) { + $ids[] = $id; + } + } + else { + $ids = array_diff($ids, array_keys($allGroups)); } - } - else { - $ids = array_diff($ids, array_keys($allGroups)); } } - break; } } return $ids; } + /** + * Execute a query to find active ACLs for a contact, ordered by priority (if supported) and object ID. + * The query returns the 'operation', 'object_id' and 'deny' properties. + * Returns NULL if CRM_ACL_BAO_Cache::build (effectively, CRM_ACL_BAO_ACL::getAllByContact) + * returns no ACLs (active or not) for the contact. + * + * @param string $contactID + * @param string $tableName + * @return NULL|CRM_Core_DAO|object + */ + private static function getOrderedActiveACLs(string $contactID, string $tableName) { + $dao = NULL; + $acls = CRM_ACL_BAO_Cache::build($contactID); + if (!empty($acls)) { + $aclKeys = array_keys($acls); + $aclKeys = implode(',', $aclKeys); + $orderBy = 'a.object_id'; + if (array_key_exists('priority', CRM_ACL_BAO_ACL::getSupportedFields())) { + $orderBy = "a.priority, $orderBy"; + } + $query = " +SELECT a.operation, a.object_id, a.deny + FROM civicrm_acl_cache c, civicrm_acl a + WHERE c.acl_id = a.id + AND a.is_active = 1 + AND a.object_table = %1 + AND a.id IN ({$aclKeys}) +ORDER BY {$orderBy} +"; + $params = [1 => [$tableName, 'String']]; + $dao = CRM_Core_DAO::executeQuery($query, $params); + } + return $dao; + } + private static function getGroupClause(array $groupIDs, string $operation): string { $ids = implode(',', $groupIDs); $query = " diff --git a/civicrm/CRM/ACL/DAO/ACL.php b/civicrm/CRM/ACL/DAO/ACL.php index 388d638e1d69b3c92d8d60f379ecb1415f3bbfde..0a9b48d468695d736a440e0c03f19bb633e402ed 100644 --- a/civicrm/CRM/ACL/DAO/ACL.php +++ b/civicrm/CRM/ACL/DAO/ACL.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/ACL/ACL.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:cccf24b98d7147b2f5e237fcb0a54295) + * (GenCodeChecksum:56266204b43a487af7bf9963d23e0556) */ /** @@ -378,7 +378,7 @@ class CRM_ACL_DAO_ACL extends CRM_Core_DAO { ], 'pseudoconstant' => [ 'callback' => 'CRM_ACL_BAO_ACL::getObjectIdOptions', - 'prefetch' => 'false', + 'prefetch' => 'disabled', ], 'add' => '1.6', ], diff --git a/civicrm/CRM/ACL/Form/ACL.php b/civicrm/CRM/ACL/Form/ACL.php index 2c5264794d8cceb5e66844dbc43f9c552845291f..b4f52a7c746af7d61d21f8c6585d191f82fce5c4 100644 --- a/civicrm/CRM/ACL/Form/ACL.php +++ b/civicrm/CRM/ACL/Form/ACL.php @@ -151,7 +151,7 @@ class CRM_ACL_Form_ACL extends CRM_Admin_Form { $event = [ '-1' => ts('- select event -'), '0' => ts('All Events'), - ] + CRM_Event_PseudoConstant::event(NULL, FALSE, "( is_template IS NULL OR is_template != 1 )"); + ] + CRM_Event_PseudoConstant::event(NULL, FALSE, "is_template = 0"); $this->add('select', 'group_id', ts('Group'), $group); $this->add('select', 'custom_group_id', ts('Custom Data'), $customGroup); diff --git a/civicrm/CRM/ACL/Page/ACL.php b/civicrm/CRM/ACL/Page/ACL.php index da80cd79df0dddaa59dee5efb89c2de72406bad5..4f14e4461637efbdfdba38b427d8ac67db869938 100644 --- a/civicrm/CRM/ACL/Page/ACL.php +++ b/civicrm/CRM/ACL/Page/ACL.php @@ -115,6 +115,9 @@ class CRM_ACL_Page_ACL extends CRM_Core_Page_Basic { $acl[$dao->id]['object'] = $event[$acl[$dao->id]['object_id']] ?? NULL; $acl[$dao->id]['object_name'] = ts('Event'); break; + + default: + $acl[$dao->id]['object'] = $acl[$dao->id]['object_name'] = NULL; } // form all action links diff --git a/civicrm/CRM/Activity/ActionMapping.php b/civicrm/CRM/Activity/ActionMapping.php index 5d2f337d721cae99f91aa32b408ee7f3d948d696..3f472bbc89b818accace6ef3439a761421f2038b 100644 --- a/civicrm/CRM/Activity/ActionMapping.php +++ b/civicrm/CRM/Activity/ActionMapping.php @@ -32,12 +32,21 @@ class CRM_Activity_ActionMapping extends \Civi\ActionSchedule\MappingBase { return self::ACTIVITY_MAPPING_ID; } + public function getName(): string { + return 'activity_type'; + } + public function getEntityName(): string { return 'Activity'; } - public function getValueHeader(): string { - return ts('Activity Type'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + $spec->getFieldByName('entity_value') + ->setLabel(ts('Activity Type')); + $spec->getFieldByName('entity_status') + ->setLabel(ts('Activity Status')); + $spec->getFieldByName('recipient') + ->setLabel(ts('Recipients')); } public function getValueLabels(): array { @@ -47,20 +56,26 @@ class CRM_Activity_ActionMapping extends \Civi\ActionSchedule\MappingBase { return $activityTypes; } - public function getStatusHeader(): string { - return ts('Activity Status'); - } - - public function getStatusLabels($value): array { + public function getStatusLabels(?array $entityValue): array { return CRM_Core_PseudoConstant::activityStatus(); } - public function getDateFields(): array { + public function getDateFields(?array $entityValue = NULL): array { return [ 'activity_date_time' => ts('Activity Date'), ]; } + public static function getLimitToOptions(): array { + return [ + [ + 'id' => 1, + 'name' => 'limit', + 'label' => ts('Recipients'), + ], + ]; + } + /** * Get a list of recipient types. * @@ -71,8 +86,8 @@ class CRM_Activity_ActionMapping extends \Civi\ActionSchedule\MappingBase { * array(string $value => string $label). * Ex: array('assignee' => 'Activity Assignee'). */ - public function getRecipientTypes(): array { - return \CRM_Core_OptionGroup::values('activity_contacts'); + public static function getRecipientTypes(): array { + return \CRM_Core_OptionGroup::values('activity_contacts') + parent::getRecipientTypes(); } /** @@ -93,7 +108,7 @@ class CRM_Activity_ActionMapping extends \Civi\ActionSchedule\MappingBase { $selectedValues = (array) \CRM_Utils_Array::explodePadded($schedule->entity_value); $selectedStatuses = (array) \CRM_Utils_Array::explodePadded($schedule->entity_status); - $query = \CRM_Utils_SQL_Select::from("{$this->getEntityTable()} e")->param($defaultParams); + $query = \CRM_Utils_SQL_Select::from("civicrm_activity e")->param($defaultParams); $query['casAddlCheckFrom'] = 'civicrm_activity e'; $query['casContactIdField'] = 'r.contact_id'; $query['casEntityIdField'] = 'e.id'; diff --git a/civicrm/CRM/Activity/BAO/Activity.php b/civicrm/CRM/Activity/BAO/Activity.php index 3d7993b5fbffd1aad10dd13c87ae69a096cb7091..37ece7b6fdd6d898112d23053b717a521e888a7f 100644 --- a/civicrm/CRM/Activity/BAO/Activity.php +++ b/civicrm/CRM/Activity/BAO/Activity.php @@ -922,7 +922,7 @@ class CRM_Activity_BAO_Activity extends CRM_Activity_DAO_Activity { $details = "-ALTERNATIVE ITEM 0-\n{$html}{$additionalDetails}\n-ALTERNATIVE ITEM 1-\n{$text}{$additionalDetails}\n-ALTERNATIVE END-\n"; } else { - $details = $html ? $html : $text; + $details = $html ?: $text; $details .= $additionalDetails; } @@ -1703,7 +1703,7 @@ WHERE activity.id IN ($activityIds)"; 'parent_id' ); - $parentActivities[$activityId] = $parentId ? $parentId : FALSE; + $parentActivities[$activityId] = $parentId ?: FALSE; } return $parentActivities[$activityId]; diff --git a/civicrm/CRM/Activity/DAO/Activity.php b/civicrm/CRM/Activity/DAO/Activity.php index 544e93db8eb4c36beaf20138c34856dfecb45174..dd50f905e477396786ecb98578e40168c357e9fe 100644 --- a/civicrm/CRM/Activity/DAO/Activity.php +++ b/civicrm/CRM/Activity/DAO/Activity.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Activity/Activity.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:5e64c1c4489e9c640f15d3a4877f7331) + * (GenCodeChecksum:ffa034666119a99fd35c5cf8955b8ecc) */ /** @@ -890,7 +890,7 @@ class CRM_Activity_DAO_Activity extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Activity/Selector/Activity.php b/civicrm/CRM/Activity/Selector/Activity.php index f94cbead18d5b29738bf1393105f80647d791025..f8682ae5a7baa29a027a136fc2010e1eb074666b 100644 --- a/civicrm/CRM/Activity/Selector/Activity.php +++ b/civicrm/CRM/Activity/Selector/Activity.php @@ -244,6 +244,7 @@ class CRM_Activity_Selector_Activity extends CRM_Core_Selector_Base implements C 'url' => '#', 'extra' => 'onclick="javascript:fileOnCase( \'file\', \'%%id%%\', null, this ); return false;"', 'title' => ts('File on Case'), + 'weight' => 50, ], ]; } diff --git a/civicrm/CRM/Activity/Tokens.php b/civicrm/CRM/Activity/Tokens.php index 79ff0ff0ada48b17c7cebe584e2df81cf4fb7fd6..714c26fa0acb7e6bd3ba3b5ae3e5f93ad94a134a 100644 --- a/civicrm/CRM/Activity/Tokens.php +++ b/civicrm/CRM/Activity/Tokens.php @@ -37,7 +37,7 @@ class CRM_Activity_Tokens extends CRM_Core_EntityTokens { * @inheritDoc */ public function alterActionScheduleQuery(MailingQueryEvent $e): void { - if ($e->mapping->getEntityTable() !== $this->getExtendableTableName()) { + if ($e->mapping->getEntityTable($e->actionSchedule) !== $this->getExtendableTableName()) { return; } diff --git a/civicrm/CRM/Admin/Form.php b/civicrm/CRM/Admin/Form.php index 1b85dbb9867875dc0a27fecae9006b3e2562f401..873aa2961ad0d5576e72c1e57556db62a64004d0 100644 --- a/civicrm/CRM/Admin/Form.php +++ b/civicrm/CRM/Admin/Form.php @@ -41,6 +41,12 @@ class CRM_Admin_Form extends CRM_Core_Form { */ protected $_BAOName; + /** + * Whether to use the legacy `retrieve` method or APIv4 to load values. + * @var string + */ + protected $retrieveMethod = 'retrieve'; + /** * Explicitly declare the form context. */ @@ -139,18 +145,25 @@ class CRM_Admin_Form extends CRM_Core_Form { } /** - * Retrieve entity from the database. - * - * TODO: Add flag to allow forms to opt-in to using API::get instead of BAO::retrieve + * Retrieve entity from the database using legacy retrieve method (default) or APIv4. * * @return array */ protected function retrieveValues(): array { $this->_values = []; if (isset($this->_id) && CRM_Utils_Rule::positiveInteger($this->_id)) { - $params = ['id' => $this->_id]; - // FIXME: `retrieve` function is deprecated :( - $this->_BAOName::retrieve($params, $this->_values); + if ($this->retrieveMethod === 'retrieve') { + $params = ['id' => $this->_id]; + $this->_BAOName::retrieve($params, $this->_values); + } + elseif ($this->retrieveMethod === 'api4') { + $this->_values = civicrm_api4($this->getDefaultEntity(), 'get', [ + 'where' => [['id', '=', $this->_id]], + ])->single(); + } + else { + throw new CRM_Core_Exception("Unknown retrieve method '$this->retrieveMethod' in " . get_class($this)); + } } return $this->_values; } diff --git a/civicrm/CRM/Admin/Form/Job.php b/civicrm/CRM/Admin/Form/Job.php index 78583aec7f5988de4b0e12fce7159c2ab41a6339..7942b1a75031ab51c820325fa9865e5a00ef7694 100644 --- a/civicrm/CRM/Admin/Form/Job.php +++ b/civicrm/CRM/Admin/Form/Job.php @@ -19,7 +19,6 @@ * Class for configuring jobs. */ class CRM_Admin_Form_Job extends CRM_Admin_Form { - public $_id = NULL; /** * @var bool @@ -146,23 +145,20 @@ class CRM_Admin_Form_Job extends CRM_Admin_Form { * @throws CRM_Core_Exception */ public static function formRule($fields) { - $errors = []; - require_once 'api/api.php'; - - /** @var \Civi\API\Kernel $apiKernel */ - $apiKernel = \Civi::service('civi_api_kernel'); - $apiRequest = \Civi\API\Request::create($fields['api_entity'], $fields['api_action'], ['version' => 3]); try { + $apiParams = CRM_Core_BAO_Job::parseParameters($fields['parameters']); + /** @var \Civi\API\Kernel $apiKernel */ + $apiKernel = \Civi::service('civi_api_kernel'); + $apiRequest = \Civi\API\Request::create($fields['api_entity'], $fields['api_action'], $apiParams); $apiKernel->resolve($apiRequest); } catch (\Civi\API\Exception\NotImplementedException $e) { $errors['api_action'] = ts('Given API command is not defined.'); } - - if (!empty($errors)) { - return $errors; + catch (CRM_Core_Exception $e) { + $errors['parameters'] = ts('Parameters must be formatted as key=value on separate lines'); } return empty($errors) ? TRUE : $errors; @@ -247,7 +243,7 @@ class CRM_Admin_Form_Job extends CRM_Admin_Form { $dao->api_entity = $values['api_entity']; $dao->api_action = $values['api_action']; $dao->description = $values['description']; - $dao->is_active = CRM_Utils_Array::value('is_active', $values, 0); + $dao->is_active = $values['is_active'] ?? 0; // CRM-17686 $ts = strtotime($values['scheduled_run_date']); @@ -297,4 +293,13 @@ class CRM_Admin_Form_Job extends CRM_Admin_Form { return $name . ' (' . $entity . '.' . $action . ')'; } + /** + * Override parent to do nothing - since we don't use this array. + * + * @return array + */ + protected function retrieveValues(): array { + return []; + } + } diff --git a/civicrm/CRM/Admin/Form/MailSettings.php b/civicrm/CRM/Admin/Form/MailSettings.php index 0ecbb0fe17c288ec3efa7ca08cd3276393508c72..acdc5744da432a3b96cc925146dd96aa2c8e537a 100644 --- a/civicrm/CRM/Admin/Form/MailSettings.php +++ b/civicrm/CRM/Admin/Form/MailSettings.php @@ -85,10 +85,28 @@ class CRM_Admin_Form_MailSettings extends CRM_Admin_Form { 0 => ts('Email-to-Activity Processing'), ]; $this->add('select', 'is_default', ts('Used For?'), $usedfor); + + $activityTypes = + [CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Inbound Email') => 'Inbound Email'] + + [CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Email') => 'Email'] + + CRM_Core_PseudoConstant::ActivityType(FALSE); + $this->add('select', 'activity_type_id', ts('Activity Type'), + $activityTypes, + TRUE, + ['class' => 'crm-select2 required'] + ); $this->addField('activity_status', ['placeholder' => FALSE]); + CRM_Campaign_BAO_Campaign::addCampaign($this); $this->add('checkbox', 'is_non_case_email_skipped', ts('Skip emails which do not have a Case ID or Case hash')); $this->add('checkbox', 'is_contact_creation_disabled_if_no_match', ts('Do not create new contacts when filing emails')); + + $emailRecipients = ['from' => 'From', 'to' => 'To', 'cc' => 'CC', 'bcc' => 'BCC']; + $this->add('select', 'activity_source', ts('Activity Source'), $emailRecipients, TRUE, ['class' => 'crm-select2 required']); + $this->add('select', 'activity_targets', ts('Activity Targets'), $emailRecipients, FALSE, ['class' => 'crm-select2', 'multiple' => TRUE]); + $this->add('select', 'activity_assignees', ts('Activity Assignees'), $emailRecipients, FALSE, ['class' => 'crm-select2', 'multiple' => TRUE]); + + $this->add('checkbox', 'is_active', ts('Enabled')); } /** @@ -108,12 +126,15 @@ class CRM_Admin_Form_MailSettings extends CRM_Admin_Form { public function setDefaultValues() { $defaults = parent::setDefaultValues(); - // Set activity status to "Completed" by default. - if ($this->_action != CRM_Core_Action::DELETE && - (!$this->_id || !CRM_Core_DAO::getFieldValue('CRM_Core_BAO_MailSettings', $this->_id, 'activity_status')) - ) { - $defaults['activity_status'] = 'Completed'; - } + $defaults['is_ssl'] = $defaults['is_ssl'] ?? TRUE; + $defaults['is_default'] = $defaults['is_default'] ?? 0; + $defaults['activity_type_id'] = $defaults['activity_type_id'] ?? + CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Inbound Email'); + $defaults['activity_status'] = $defaults['activity_status'] ?? 'Completed'; + $defaults['activity_source'] = $defaults['activity_source'] ?? 'from'; + $defaults['activity_targets'] = $defaults['activity_targets'] ?? 'to,cc,bcc'; + $defaults['activity_assignees'] = $defaults['activity_assignees'] ?? 'from'; + $defaults['is_active'] = $defaults['is_active'] ?? TRUE; return $defaults; } @@ -173,6 +194,12 @@ class CRM_Admin_Form_MailSettings extends CRM_Admin_Form { 'activity_status', 'is_non_case_email_skipped', 'is_contact_creation_disabled_if_no_match', + 'activity_type_id', + 'campaign_id', + 'activity_source', + 'activity_targets', + 'activity_assignees', + 'is_active', ]; $params = []; @@ -182,6 +209,7 @@ class CRM_Admin_Form_MailSettings extends CRM_Admin_Form { 'is_ssl', 'is_non_case_email_skipped', 'is_contact_creation_disabled_if_no_match', + 'is_active', ])) { $params[$f] = CRM_Utils_Array::value($f, $formValues, FALSE); } diff --git a/civicrm/CRM/Admin/Form/PaymentProcessor.php b/civicrm/CRM/Admin/Form/PaymentProcessor.php index 0b32bcfc54194f60dc3cf63a85583db08bdb820b..5c9831b470c941dbead0370a0c8ff1c27b855ddc 100644 --- a/civicrm/CRM/Admin/Form/PaymentProcessor.php +++ b/civicrm/CRM/Admin/Form/PaymentProcessor.php @@ -248,10 +248,6 @@ class CRM_Admin_Form_PaymentProcessor extends CRM_Admin_Form { $errors['_qf_default'] = ts('You must have at least the test or live section filled'); } - if (!empty($errors)) { - return $errors; - } - return empty($errors) ? TRUE : $errors; } diff --git a/civicrm/CRM/Admin/Form/RelationshipType.php b/civicrm/CRM/Admin/Form/RelationshipType.php index 391b52304c47b7324bd2094c0f78cf5e99b69e82..ce43206171550aec7e192bf3e5fdf03968528fae 100644 --- a/civicrm/CRM/Admin/Form/RelationshipType.php +++ b/civicrm/CRM/Admin/Form/RelationshipType.php @@ -159,8 +159,8 @@ class CRM_Admin_Form_RelationshipType extends CRM_Admin_Form { $params['contact_type_a'] = $cTypeA[0]; $params['contact_type_b'] = $cTypeB[0]; - $params['contact_sub_type_a'] = $cTypeA[1] ? $cTypeA[1] : 'null'; - $params['contact_sub_type_b'] = $cTypeB[1] ? $cTypeB[1] : 'null'; + $params['contact_sub_type_a'] = $cTypeA[1] ?: 'null'; + $params['contact_sub_type_b'] = $cTypeB[1] ?: 'null'; if (!strlen(trim($params['label_b_a'] ?? ''))) { $params['label_b_a'] = $params['label_a_b'] ?? NULL; diff --git a/civicrm/CRM/Admin/Form/ScheduleReminders.php b/civicrm/CRM/Admin/Form/ScheduleReminders.php index 7c242bf8e98c8091c3a97fd0f7fcc80813190caf..6b76ffa22c0ed770f933617c416a555624fb6e3b 100644 --- a/civicrm/CRM/Admin/Form/ScheduleReminders.php +++ b/civicrm/CRM/Admin/Form/ScheduleReminders.php @@ -18,36 +18,10 @@ use Civi\Token\TokenProcessor; /** - * This class generates form components for Scheduling Reminders. + * ActionSchedule (aka Scheduled Reminder) create/edit/delete form. */ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { - protected $_compId; - - /** - * @var CRM_Core_DAO_ActionSchedule - */ - private $_actionSchedule; - - /** - * @var int|string|null - */ - private $_mappingID; - - /** - * @return mixed - */ - public function getComponentID() { - return $this->_compId; - } - - /** - * @param mixed $compId - */ - public function setComponentID($compId): void { - $this->_compId = $compId; - } - /** * @return string */ @@ -56,236 +30,153 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { } /** - * Build the form object. - * - * @throws \CRM_Core_Exception + * Because `CRM_Mailing_BAO_Mailing::commonCompose` uses different fieldNames than `CRM_Core_DAO_ActionSchedule`. + * @var array */ - public function buildQuickForm(): void { - parent::buildQuickForm(); - $this->_mappingID = $mappingID = NULL; - $providersCount = CRM_SMS_BAO_Provider::activeProviderCount(); - $this->setContext(); - $isEvent = $this->getContext() === 'event'; + private static $messageFieldMap = [ + 'text_message' => 'body_text', + 'html_message' => 'body_html', + 'sms_text_message' => 'sms_body_text', + 'template' => 'msg_template_id', + 'SMStemplate' => 'sms_template_id', + ]; - if ($isEvent) { - $this->setComponentID(CRM_Utils_Request::retrieve('compId', 'Integer', $this)); - if (!CRM_Event_BAO_Event::checkPermission((int) $this->getComponentID(), CRM_Core_Permission::EDIT)) { + /** + * @throws \CRM_Core_Exception + */ + public function preProcess() { + parent::preProcess(); + // Pre-selected mapping_id and entity_value for embedded forms + if (CRM_Utils_Request::retrieve('mapping_id', 'Alphanumeric', $this, FALSE, NULL, 'GET')) { + $this->_values['mapping_id'] = $this->get('mapping_id'); + } + if (CRM_Utils_Request::retrieve('entity_value', 'CommaSeparatedIntegers', $this, FALSE, NULL, 'GET')) { + $this->_values['entity_value'] = explode(',', $this->get('entity_value')); + } + if (!empty($this->_values['mapping_id'])) { + $mapping = CRM_Core_BAO_ActionSchedule::getMapping($this->_values['mapping_id']); + $this->setPageTitle(ts('%1 Reminder', [1 => $mapping->getLabel()])); + } + // Allow pre-selected mapping to check its own permissions + if (!CRM_Core_Permission::check('administer CiviCRM data')) { + if (empty($mapping) || !$mapping->checkAccess($this->_values['entity_value'] ?? [])) { throw new CRM_Core_Exception(ts('You do not have permission to access this page.')); } } - elseif (!CRM_Core_Permission::check('administer CiviCRM')) { - throw new CRM_Core_Exception(ts('You do not have permission to access this page.')); - } + } - if ($this->_action & (CRM_Core_Action::DELETE)) { - $reminderName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_ActionSchedule', $this->_id, 'title'); - $this->assign('reminderName', $reminderName); + public function buildQuickForm(): void { + parent::buildQuickForm(); + + if ($this->getAction() == CRM_Core_Action::DELETE) { + $this->assign('reminderName', $this->_values['title']); return; } - elseif ($this->_action & (CRM_Core_Action::UPDATE)) { - $this->_mappingID = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_ActionSchedule', $this->_id, 'mapping_id'); - } - if ($isEvent) { - $isTemplate = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->getComponentID(), 'is_template'); - $this->_mappingID = $isTemplate ? CRM_Event_ActionMapping::EVENT_TPL_MAPPING_ID : CRM_Event_ActionMapping::EVENT_NAME_MAPPING_ID; - } - if (!empty($_POST) && !empty($_POST['entity']) && empty($this->getContext())) { - $mappingID = $_POST['entity'][0]; - } - elseif ($this->_mappingID) { - $mappingID = $this->_mappingID; - if ($isEvent) { - $this->add('hidden', 'mappingID', $mappingID); + // Select fields whose option lists either control or are controlled by another field + $dynamicSelectFields = [ + 'mapping_id' => [], + 'entity_value' => [], + 'entity_status' => [], + 'recipient' => ['class' => 'twelve', 'placeholder' => ts('None')], + 'limit_to' => ['class' => 'twelve', 'placeholder' => ts('None')], + 'start_action_date' => ['class' => 'twelve'], + 'end_date' => ['class' => 'twelve'], + 'recipient_listing' => [], + ]; + // Load dynamic metadata based on current values + // Get values from submission (if rebuilding due to form errors) or saved reminder (in update mode) or preselected values from the preProcess fn. + $fieldMeta = Civi\Api4\ActionSchedule::getFields(FALSE) + ->setValues($this->_submitValues ?: $this->_values) + ->setAction('create') + ->setLoadOptions(['id', 'label', 'icon']) + ->addWhere('name', 'IN', array_keys($dynamicSelectFields)) + ->execute() + ->indexBy('name'); + $controlFields = []; + + // Add dynamic select fields + foreach ($fieldMeta as $field) { + $attr = $dynamicSelectFields[$field['name']] + ['multiple' => !empty($field['input_attrs']['multiple']), 'placeholder' => ts('Select')]; + if (!empty($field['input_attrs']['control_field'])) { + $controlFields[] = $attr['controlField'] = $field['input_attrs']['control_field']; } + $this->add('select2', $field['name'], $field['label'], $field['options'] ?: [], !empty($field['required']), $attr); } - $this->add( - 'text', - 'title', - ts('Title'), - CRM_Core_DAO::getAttribute('CRM_Core_DAO_ActionSchedule', 'title'), - TRUE - ); - - $mappings = CRM_Core_BAO_ActionSchedule::getMappings(); - $selectedMapping = $mappings[$mappingID ?: 1]; - $entityRecipientLabels = $selectedMapping->getRecipientTypes() + CRM_Core_BAO_ActionSchedule::getAdditionalRecipients(); - $this->assign('entityMapping', json_encode( - CRM_Utils_Array::collectMethod('getEntityTable', $mappings) - )); - $this->assign('recipientMapping', json_encode( - array_combine(array_keys($entityRecipientLabels), array_keys($entityRecipientLabels)) - )); - - if (!$this->getContext()) { - $sel = &$this->add( - 'hierselect', - 'entity', - ts('Entity'), - [ - 'name' => 'entity[0]', - 'style' => 'vertical-align: top;', - ] - ); - $sel->setOptions([ - CRM_Utils_Array::collectMethod('getLabel', $mappings), - CRM_Core_BAO_ActionSchedule::getAllEntityValueLabels(), - CRM_Core_BAO_ActionSchedule::getAllEntityStatusLabels(), - ]); - - if (is_a($sel->_elements[1], 'HTML_QuickForm_select')) { - // make second selector a multi-select - - $sel->_elements[1]->setMultiple(TRUE); - $sel->_elements[1]->setSize(5); - } + // Javascript will reload metadata when these fields are changed + $this->assign('controlFields', array_values(array_unique($controlFields))); - if (is_a($sel->_elements[2], 'HTML_QuickForm_select')) { - // make third selector a multi-select - - $sel->_elements[2]->setMultiple(TRUE); - $sel->_elements[2]->setSize(5); - } + // These 2 are preselected if form is embedded + if ($this->get('entity_value')) { + $this->getElement('entity_value')->freeze(); } - else { - $mapping = CRM_Core_BAO_ActionSchedule::getMapping($this->_mappingID); - $options = $mapping->getStatusLabels($this->getComponentID()); - $attributes = ['multiple' => TRUE, 'class' => 'crm-select2 huge', 'placeholder' => $mapping->getStatusHeader()]; - $this->add('select', 'entity', ts('Recipient(s)'), $options, TRUE, $attributes); + if ($this->get('mapping_id') || $this->getAction() == CRM_Core_Action::UPDATE) { + $this->getElement('mapping_id')->freeze(); } - $this->assign('context', $this->getContext()); + // Pre-assigned mapping_id will cause the field to be hidden by the tpl + $this->assign('mappingId', $this->get('mapping_id')); - //reminder_interval - $this->add('number', 'start_action_offset', ts('When (trigger date)'), ['class' => 'six', 'min' => 0]); - $this->addRule('start_action_offset', ts('Value should be a positive number'), 'positiveInteger'); + // Units fields will be pluralized by javascript + $this->addField('start_action_unit', ['placeholder' => FALSE])->setAttribute('class', 'crm-form-select'); + $this->addField('repetition_frequency_unit', ['placeholder' => FALSE])->setAttribute('class', 'crm-form-select'); + $this->addField('end_frequency_unit', ['placeholder' => FALSE])->setAttribute('class', 'crm-form-select'); + // Data for js pluralization + $this->assign('recurringFrequencyOptions', [ + 'plural' => CRM_Utils_Array::makeNonAssociative(CRM_Core_SelectValues::getRecurringFrequencyUnits(2)), + 'single' => CRM_Utils_Array::makeNonAssociative(CRM_Core_SelectValues::getRecurringFrequencyUnits()), + ]); - $isActive = ts('Scheduled Reminder Active'); - $recordActivity = ts('Record activity for automated email'); + $this->addField('title', [], TRUE); + $this->addField('absolute_date', [], FALSE, FALSE); + $this->addField('start_action_offset', ['class' => 'four']); + $this->addField('start_action_condition', ['placeholder' => FALSE])->setAttribute('class', 'crm-form-select'); + $this->addField('record_activity', ['type' => 'advcheckbox']); + $this->addField('is_repeat', ['type' => 'advcheckbox']); + $this->addField('repetition_frequency_interval', ['label' => ts('Every'), 'class' => 'four']); + $this->addField('end_frequency_interval', ['label' => ts('Until'), 'class' => 'four']); + $this->addField('end_action', ['placeholder' => FALSE])->setAttribute('class', 'crm-form-select'); + $this->addField('effective_start_date', ['label' => ts('Effective From')], FALSE, FALSE); + $this->addField('effective_end_date', ['label' => ts('To')], FALSE, FALSE); + $this->addField('is_active', ['type' => 'advcheckbox']); + $this->addAutocomplete('recipient_manual', ts('Manual Recipients'), ['select' => ['multiple' => TRUE]]); + $this->addAutocomplete('group_id', ts('Group'), ['entity' => 'Group', 'select' => ['minimumInputLength' => 0]]); + + // From email address (optional, defaults to domain email) + $domainDefault = CRM_Core_BAO_Domain::getNameAndEmail(TRUE); + $this->addField('from_name', ['placeholder' => $domainDefault[0] ?? '', 'class' => 'big']); + $this->addField('from_email', ['placeholder' => $domainDefault[1] ?? '', 'class' => 'big']); + + // Relative/absolute date toggle (not a real field, just a widget for the form) + $this->add('select', 'absolute_or_relative_date', ts('When (trigger date)'), ['relative' => ts('Relative Date'), 'absolute' => ts('Choose Date')], TRUE); + + // SMS-only fields + $providersCount = CRM_SMS_BAO_Provider::activeProviderCount(); + $this->assign('sms', $providersCount); if ($providersCount) { - $this->assign('sms', $providersCount); - $recordActivity = ts('Record activity for automated email or SMS'); - $options = CRM_Core_OptionGroup::values('msg_mode'); - $this->add('select', 'mode', ts('Send as'), $options); - - $providers = CRM_SMS_BAO_Provider::getProviders(NULL, NULL, TRUE, 'is_default desc'); - - $providerSelect = []; - foreach ($providers as $provider) { - $providerSelect[$provider['id']] = $provider['title']; - } - $this->add('select', 'sms_provider_id', ts('SMS Provider'), $providerSelect, TRUE); - } - - foreach (CRM_Core_SelectValues::getRecurringFrequencyUnits() as $val => $label) { - $freqUnitsDisplay[$val] = ts('%1(s)', [1 => $label]); - } - - $this->add('datepicker', 'absolute_date', ts('Start Date'), [], FALSE, ['time' => FALSE]); - - //reminder_frequency - $this->add('select', 'start_action_unit', ts('Frequency'), $freqUnitsDisplay, TRUE); - - $condition = [ - 'before' => ts('before'), - 'after' => ts('after'), - ]; - //reminder_action - $this->add('select', 'start_action_condition', ts('Action Condition'), $condition); - - $this->add('select', 'start_action_date', ts('Date Field'), $selectedMapping->getDateFields(), TRUE); - - $this->addElement('checkbox', 'record_activity', $recordActivity); - - $this->addElement('checkbox', 'is_repeat', ts('Repeat'), - NULL, ['onchange' => "return showHideByValue('is_repeat',true,'repeatFields','table-row','radio',false);"] - ); - - $this->add('select', 'repetition_frequency_unit', ts('every'), $freqUnitsDisplay); - $this->add('number', 'repetition_frequency_interval', ts('every'), ['class' => 'six', 'min' => 0]); - $this->addRule('repetition_frequency_interval', ts('Value should be a positive number'), 'positiveInteger'); - - $this->add('select', 'end_frequency_unit', ts('until'), $freqUnitsDisplay); - $this->add('number', 'end_frequency_interval', ts('until'), ['class' => 'six', 'min' => 0]); - $this->addRule('end_frequency_interval', ts('Value should be a positive number'), 'positiveInteger'); - - $this->add('select', 'end_action', ts('Repetition Condition'), $condition, TRUE); - $this->add('select', 'end_date', ts('Date Field'), $selectedMapping->getDateFields(), TRUE); - - $this->add('text', 'from_name', ts('From Name')); - $this->add('text', 'from_email', ts('From Email')); - - $this->add('datepicker', 'effective_start_date', ts('Effective start date'), [], FALSE); - $this->add('datepicker', 'effective_end_date', ts('Effective end date'), [], FALSE); - - $recipientListingOptions = []; - - $limitOptions = ['' => ts('Neither')] + CRM_Core_BAO_ActionSchedule::buildOptions('limit_to'); - - $recipientLabels = ['activity' => ts('Recipients'), 'other' => ts('Limit or Add Recipients')]; - $this->assign('recipientLabels', $recipientLabels); - - $this->add('select', 'limit_to', ts('Limit Options'), $limitOptions, FALSE, ['onChange' => "showHideByValue('limit_to','','recipient', 'select','select',true);"]); - - $this->add('select', 'recipient', $recipientLabels['other'], $entityRecipientLabels, - FALSE, ['onchange' => "showHideByValue('recipient','manual','recipientManual','table-row','select',false); showHideByValue('recipient','group','recipientGroup','table-row','select',false);"] - ); - - if (!empty($this->_submitValues['recipient_listing'])) { - if ($this->getContext()) { - $recipientListingOptions = CRM_Core_BAO_ActionSchedule::getRecipientListing($this->_mappingID, $this->_submitValues['recipient']); - } - else { - $recipientListingOptions = CRM_Core_BAO_ActionSchedule::getRecipientListing($_POST['entity'][0], $_POST['recipient']); - } - } - elseif (!empty($this->_values['recipient_listing'])) { - $recipientListingOptions = CRM_Core_BAO_ActionSchedule::getRecipientListing($this->_values['mapping_id'], $this->_values['recipient']); + $this->addField('mode', ['placeholder' => FALSE, 'option_url' => FALSE], TRUE)->setAttribute('class', 'crm-form-select'); + $this->addField('sms_provider_id'); } - $this->add('select', 'recipient_listing', ts('Recipient Roles'), $recipientListingOptions, FALSE, - ['multiple' => TRUE, 'class' => 'crm-select2 huge', 'placeholder' => TRUE]); - - $this->addEntityRef('recipient_manual_id', ts('Manual Recipients'), ['multiple' => TRUE, 'create' => TRUE]); - - $this->add('select', 'group_id', ts('Group'), - CRM_Core_PseudoConstant::nestedGroup(), FALSE, ['class' => 'crm-select2 huge'] - ); - - // multilingual only options + // Multilingual-only fields $multilingual = CRM_Core_I18n::isMultilingual(); + $this->assign('multilingual', $multilingual); if ($multilingual) { - $smarty = CRM_Core_Smarty::singleton(); - $smarty->assign('multilingual', $multilingual); - - $languages = CRM_Core_I18n::languages(TRUE); - $languageFilter = $languages + [CRM_Core_I18n::NONE => ts('Contacts with no preferred language')]; - $element = $this->add('select', 'filter_contact_language', ts('Recipients language'), $languageFilter, FALSE, - ['multiple' => TRUE, 'class' => 'crm-select2', 'placeholder' => TRUE]); - - $communicationLanguage = [ - '' => ts('System default language'), - CRM_Core_I18n::AUTO => ts('Follow recipient preferred language'), - ]; - $communicationLanguage = $communicationLanguage + $languages; - $this->add('select', 'communication_language', ts('Communication language'), $communicationLanguage); + $this->addField('filter_contact_language', ['placeholder' => ts('Any language')]); + $this->addField('communication_language', ['placeholder' => 'System default language']); } + // Message fields + $this->addField('subject'); CRM_Mailing_BAO_Mailing::commonCompose($this); - $this->add('text', 'subject', ts('Subject'), - CRM_Core_DAO::getAttribute('CRM_Core_DAO_ActionSchedule', 'subject') - ); - - $this->add('checkbox', 'is_active', $isActive); - $this->addFormRule([__CLASS__, 'formRule'], $this); - - $this->setPageTitle(ts('Scheduled Reminder')); } /** * Global form rule. * - * @param array $fields + * @param array $values * The input form values. * @param array $files * @param CRM_Admin_Form_ScheduleReminders $self @@ -295,129 +186,70 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { * @throws \CRM_Core_Exception * @throws \Civi\API\Exception\UnauthorizedException */ - public static function formRule(array $fields, $files, $self) { + public static function formRule(array $values, $files, $self) { $errors = []; - if ((array_key_exists(1, $fields['entity']) && $fields['entity'][1][0] === 0) || - (array_key_exists(2, $fields['entity']) && $fields['entity'][2][0] == 0) - ) { - $errors['entity'] = ts('Please select appropriate value'); - } - - $mode = $fields['mode'] ?? FALSE; - if (!empty($fields['is_active']) && - CRM_Utils_System::isNull($fields['subject']) && (!$mode || $mode !== 'SMS') - ) { - $errors['subject'] = ts('Subject is a required field.'); - } - if (!empty($fields['is_active']) && - CRM_Utils_System::isNull(trim(strip_tags($fields['html_message']))) && (!$mode || $mode !== 'SMS') - ) { - $errors['html_message'] = ts('The HTML message is a required field.'); - } - - if (!empty($mode) && ($mode === 'SMS' || $mode === 'User_Preference') && !empty($fields['is_active']) && - CRM_Utils_System::isNull(trim(strip_tags($fields['sms_text_message']))) - ) { - $errors['sms_text_message'] = ts('The SMS message is a required field.'); - } - - if (empty($self->getContext()) && CRM_Utils_System::isNull($fields['entity'][1] ?? NULL)) { - $errors['entity'] = ts('Please select entity value'); - } - - if (!CRM_Utils_System::isNull($fields['absolute_date']) && !CRM_Utils_System::isNull($fields['start_action_offset'])) { - $errors['absolute_date'] = ts('Only an absolute date or a relative date or time can be entered, not both.'); - } - if (!CRM_Utils_System::isNull($fields['absolute_date'])) { - if ($fields['absolute_date'] < date('Y-m-d')) { - $errors['absolute_date'] = ts('Absolute date cannot be earlier than the current time.'); + $values = self::normalizeFormValues($values); + $fieldMeta = Civi\Api4\ActionSchedule::getFields(FALSE) + ->setValues($values) + ->setAction('create') + ->execute() + ->indexBy('name'); + + foreach ($fieldMeta as $fieldName => $fieldInfo) { + $fieldValue = $values[$fieldName] ?? NULL; + $formFieldName = array_search($fieldName, self::$messageFieldMap) ?: $fieldName; + // TODO: This snippet could be an api action e.g. `civicrm_api4('ActionSchedule', 'validate'...)` + if ($fieldValue === NULL || $fieldValue === '' || $fieldValue === []) { + if ( + (!empty($fieldInfo['required']) && !isset($fieldInfo['default_value'])) || + (!empty($fieldInfo['required_if']) && \Civi\Api4\Generic\AbstractAction::evaluateCondition($fieldInfo['required_if'], ['values' => $values])) + ) { + $errors[$formFieldName] = ts('%1 is a required field.', [1 => $fieldInfo['label']]); + } } - } - else { - if (CRM_Utils_System::isNull($fields['start_action_offset'])) { - $errors['start_action_offset'] = ts('Start Action Offset must be filled in or Absolute Date set'); + elseif (empty($fieldInfo['input_attrs']['multiple']) && is_array($fieldValue) && count($fieldValue) > 1) { + $errors[$formFieldName] = ts('Please select only 1 %1.', [1 => $fieldInfo['label']]); } } - if (!CRM_Utils_Rule::email($fields['from_email']) && (!$mode || $mode != 'SMS')) { - $errors['from_email'] = ts('Please enter a valid email address.'); - } - $recipientKind = [ - 'participant_role' => [ - 'name' => 'participant role', - 'target_id' => 'recipient_listing', - ], - 'manual' => [ - 'name' => 'recipient', - 'target_id' => 'recipient_manual_id', - ], - ]; - if ($fields['limit_to'] && array_key_exists($fields['recipient'], $recipientKind) && empty($fields[$recipientKind[$fields['recipient']]['target_id']])) { - $errors[$recipientKind[$fields['recipient']]['target_id']] = ts('If "Also include" or "Limit to" are selected, you must specify at least one %1', [1 => $recipientKind[$fields['recipient']]['name']]); - } - //CRM-21523 - if (!empty($fields['is_repeat']) && - (empty($fields['repetition_frequency_interval']) || ($fields['end_frequency_interval'] == NULL)) - ) { - $errors['is_repeat'] = ts('If you are enabling repetition you must indicate the frequency and ending term.'); + // Suppress irrelevant error messages depending on chosen date mode + if ($values['absolute_or_relative_date'] === 'absolute') { + unset($errors['start_action_offset'], $errors['start_action_unit'], $errors['start_action_condition'], $errors['start_action_date']); } - - $self->_actionSchedule = $self->parseActionSchedule($fields); - if ($self->_actionSchedule->mapping_id) { - $mapping = CRM_Core_BAO_ActionSchedule::getMapping($self->_actionSchedule->mapping_id); - CRM_Utils_Array::extend($errors, $mapping->validateSchedule($self->_actionSchedule)); + else { + unset($errors['absolute_date']); } - return empty($errors) ? TRUE : $errors; + return $errors ?: TRUE; } /** * @return array */ public function setDefaultValues() { + $defaults = $this->_values ?? []; if ($this->_action & CRM_Core_Action::ADD) { $defaults['is_active'] = 1; - $defaults['mode'] = 'Email'; $defaults['record_activity'] = 1; - $defaults['start_action_unit'] = 'hour'; } else { - $defaults = $this->_values; - $entityValue = explode(CRM_Core_DAO::VALUE_SEPARATOR, CRM_Utils_Array::value('entity_value', $defaults)); - $entityStatus = explode(CRM_Core_DAO::VALUE_SEPARATOR, CRM_Utils_Array::value('entity_status', $defaults)); - if (empty($this->getContext())) { - $defaults['entity'][0] = $defaults['mapping_id'] ?? NULL; - $defaults['entity'][1] = $entityValue; - $defaults['entity'][2] = $entityStatus; - } - else { - $defaults['entity'] = $entityStatus; + // Set values for the fields added by CRM_Mailing_BAO_Mailing::commonCompose + foreach (self::$messageFieldMap as $messageFieldName => $actionScheduleFieldName) { + $defaults[$messageFieldName] = $defaults[$actionScheduleFieldName] ?? NULL; } + $defaults['absolute_or_relative_date'] = !empty($defaults['absolute_date']) ? 'absolute' : 'relative'; - $recipientListing = $defaults['recipient_listing'] ?? NULL; - if ($recipientListing) { - $defaults['recipient_listing'] = explode(CRM_Core_DAO::VALUE_SEPARATOR, - $recipientListing - ); - } - $defaults['text_message'] = $defaults['body_text'] ?? NULL; - $defaults['html_message'] = $defaults['body_html'] ?? NULL; - $defaults['sms_text_message'] = $defaults['sms_body_text'] ?? NULL; - $defaults['template'] = $defaults['msg_template_id'] ?? NULL; - $defaults['SMStemplate'] = $defaults['sms_template_id'] ?? NULL; - if (!empty($defaults['group_id'])) { - $defaults['recipient'] = 'group'; - } - elseif (!empty($defaults['recipient_manual'])) { - $defaults['recipient'] = 'manual'; - $defaults['recipient_manual_id'] = $defaults['recipient_manual']; - } - $contactLanguage = $defaults['filter_contact_language'] ?? NULL; - if ($contactLanguage) { - $defaults['filter_contact_language'] = explode(CRM_Core_DAO::VALUE_SEPARATOR, $contactLanguage); + // This is weird - the form used to nullify `recipient` if it was 'group' or 'manual', + // but I see no good reason for doing that. + if (empty($defaults['recipient'])) { + if (!empty($defaults['group_id'])) { + $defaults['recipient'] = 'group'; + } + elseif (!empty($defaults['recipient_manual'])) { + $defaults['recipient'] = 'manual'; + } } } - return $defaults; } @@ -428,198 +260,74 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { if ($this->_action & CRM_Core_Action::DELETE) { CRM_Core_BAO_ActionSchedule::deleteRecord(['id' => $this->_id]); CRM_Core_Session::setStatus(ts('Selected Reminder has been deleted.'), ts('Record Deleted'), 'success'); - if ($this->getContext() === 'event' && $this->getComponentID()) { - $url = CRM_Utils_System::url('civicrm/event/manage/reminder', - "reset=1&action=browse&id=" . $this->getComponentID() . "&component=" . $this->getContext() . "&setTab=1" - ); - $session = CRM_Core_Session::singleton(); - $session->pushUserContext($url); - } return; } $values = $this->controller->exportValues($this->getName()); - if (empty($this->_actionSchedule)) { - $bao = $this->parseActionSchedule($values)->save(); - } - else { - $bao = $this->_actionSchedule->save(); + if ($this->_action & CRM_Core_Action::UPDATE) { + $values['id'] = $this->_id; } + $values = self::normalizeFormValues($values); + self::saveMessageTemplates($values); + + $bao = CRM_Core_BAO_ActionSchedule::writeRecord($values); + // we need to set this on the form so that hooks can identify the created entity $this->set('id', $bao->id); - $status = ts("Your new Reminder titled %1 has been saved.", - [1 => "<strong>{$values['title']}</strong>"] - ); + $status = ts('Reminder "%1" has been saved.', [1 => $values['title']]); - if ($this->_action) { - if ($this->_action & CRM_Core_Action::UPDATE) { - $status = ts("Your Reminder titled %1 has been updated.", - [1 => "<strong>{$values['title']}</strong>"] - ); - } - - if ($this->getContext() === 'event' && $this->getComponentID()) { - $url = CRM_Utils_System::url('civicrm/event/manage/reminder', "reset=1&action=browse&id=" . $this->getComponentID() . "&component=" . $this->getContext() . "&setTab=1"); - $session = CRM_Core_Session::singleton(); - $session->pushUserContext($url); - } - } CRM_Core_Session::setStatus($status, ts('Saved'), 'success'); } - /** - * FIXME: This function shouldn't exist. It takes an overcomplicated form - * and maps the wonky form values to the bao object to be saved. - * - * @param array $values - * - * @return CRM_Core_DAO_ActionSchedule - * @throws \CRM_Core_Exception - * @throws \Civi\API\Exception\UnauthorizedException - */ - public function parseActionSchedule($values) { - $params = []; - - $keys = [ - 'title', - 'subject', - 'absolute_date', - 'group_id', - 'limit_to', - 'mode', - 'sms_provider_id', - 'from_name', - 'from_email', - ]; - foreach ($keys as $key) { - $params[$key] = $values[$key] ?? NULL; - } - - // set boolean fields to false if not set. - foreach (['record_activity', 'is_repeat', 'is_active'] as $boolFieldName) { - $params[$boolFieldName] = $values[$boolFieldName] ?? 0; - } - - $moreKeys = [ - 'start_action_offset', - 'start_action_unit', - 'start_action_condition', - 'start_action_date', - 'repetition_frequency_unit', - 'repetition_frequency_interval', - 'end_frequency_unit', - 'end_frequency_interval', - 'end_action', - 'end_date', - 'effective_end_date', - 'effective_start_date', - ]; - - if (empty($params['absolute_date'])) { - $params['absolute_date'] = 'null'; - } - foreach ($moreKeys as $mkey) { - if ($params['absolute_date'] !== 'null' && CRM_Utils_String::startsWith($mkey, 'start_action')) { - $params[$mkey] = 'null'; - continue; + private static function normalizeFormValues(array $values): array { + // Ensure multivalued fields are formatted as an array + $serialized = \Civi\Api4\ActionSchedule::getFields(FALSE) + ->addWhere('serialize', 'IS NOT EMPTY') + ->execute()->column('name'); + foreach ($serialized as $fieldName) { + if (isset($values[$fieldName]) && is_string($values[$fieldName])) { + $values[$fieldName] = explode(',', $values[$fieldName]); } - $params[$mkey] = $values[$mkey] ?? NULL; } - $params['body_text'] = $values['text_message'] ?? NULL; - $params['sms_body_text'] = $values['sms_text_message'] ?? NULL; - $params['body_html'] = $values['html_message'] ?? NULL; - - if (($values['recipient'] ?? NULL) === 'manual') { - $params['recipient_manual'] = $values['recipient_manual_id'] ?? NULL; - $params['group_id'] = $params['recipient'] = $params['recipient_listing'] = 'null'; - } - elseif (($values['recipient'] ?? NULL) === 'group') { - $params['group_id'] = $values['group_id']; - $params['recipient_manual'] = $params['recipient'] = $params['recipient_listing'] = 'null'; - } - elseif (isset($values['recipient_listing']) && !empty($values['limit_to']) && !CRM_Utils_System::isNull($values['recipient_listing'])) { - $params['recipient'] = $values['recipient'] ?? NULL; - $params['recipient_listing'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, - CRM_Utils_Array::value('recipient_listing', $values) - ); - $params['group_id'] = $params['recipient_manual'] = 'null'; + // Absolute or relative date + if ($values['absolute_or_relative_date'] === 'absolute') { + $values['start_action_offset'] = $values['start_action_unit'] = $values['start_action_condition'] = $values['start_action_date'] = NULL; } else { - $params['recipient'] = $values['recipient'] ?? NULL; - $params['group_id'] = $params['recipient_manual'] = $params['recipient_listing'] = 'null'; + $values['absolute_date'] = NULL; } - if (!empty($this->_mappingID) && !empty($this->getComponentID())) { - $params['mapping_id'] = $this->_mappingID; - $params['entity_value'] = $this->getComponentID(); - $params['entity_status'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, $values['entity']); - } - else { - $params['mapping_id'] = $values['entity'][0]; - if ($params['mapping_id'] == 1) { - $params['limit_to'] = 1; - } - - $entity_value = CRM_Utils_Array::value(1, $values['entity'], []); - $entity_status = CRM_Utils_Array::value(2, $values['entity'], []); - $params['entity_value'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, $entity_value); - $params['entity_status'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, $entity_status); - } - - if (empty($values['is_repeat'])) { - $params['repetition_frequency_unit'] = 'null'; - $params['repetition_frequency_interval'] = 'null'; - $params['end_frequency_unit'] = 'null'; - $params['end_frequency_interval'] = 'null'; - $params['end_action'] = 'null'; - $params['end_date'] = 'null'; - } - - // multilingual options - $params['filter_contact_language'] = CRM_Utils_Array::value('filter_contact_language', $values, []); - $params['filter_contact_language'] = implode(CRM_Core_DAO::VALUE_SEPARATOR, $params['filter_contact_language']); - $params['communication_language'] = $values['communication_language'] ?? NULL; - - if ($this->_action & CRM_Core_Action::UPDATE) { - $params['id'] = $this->_id; - } - elseif ($this->_action & CRM_Core_Action::ADD) { - // we do this only once, so name never changes - $params['name'] = CRM_Utils_String::munge($params['title'], '_', 64); + // Convert values for the fields added by CRM_Mailing_BAO_Mailing::commonCompose + foreach (self::$messageFieldMap as $messageFieldName => $actionScheduleFieldName) { + $values[$actionScheduleFieldName] = $values[$messageFieldName] ?? NULL; } + return $values; + } - $modePrefixes = ['Mail' => NULL, 'SMS' => 'SMS']; + /** + * Add or update message templates (for both email & sms, according to mode) + * + * @param array $params + * @throws CRM_Core_Exception + */ + private static function saveMessageTemplates(array &$params): void { + $mode = $params['mode'] ?? 'Email'; + $modePrefixes = ['msg' => '', 'sms' => 'SMS']; - if ($params['mode'] === 'Email' || empty($params['sms_provider_id'])) { - unset($modePrefixes['SMS']); + if ($mode === 'Email' || empty($params['sms_provider_id'])) { + unset($modePrefixes['sms']); } - elseif ($params['mode'] === 'SMS') { - unset($modePrefixes['Mail']); + elseif ($mode === 'SMS') { + unset($modePrefixes['msg']); } - //TODO: handle postprocessing of SMS and/or Email info based on $modePrefixes - - $composeFields = [ - 'template', - 'saveTemplate', - 'updateTemplate', - 'saveTemplateName', - ]; $msgTemplate = NULL; - //mail template is composed - - foreach ($modePrefixes as $prefix) { - $composeParams = []; - foreach ($composeFields as $key) { - $key = $prefix . $key; - if (!empty($values[$key])) { - $composeParams[$key] = $values[$key]; - } - } - if (!empty($composeParams[$prefix . 'updateTemplate'])) { + foreach ($modePrefixes as $mode => $prefix) { + // Update existing template + if (!empty($params[$prefix . 'updateTemplate']) && !empty($params[$prefix . 'template'])) { $templateParams = ['is_active' => TRUE]; if ($prefix === 'SMS') { $templateParams += [ @@ -634,12 +342,13 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { 'msg_subject' => $params['subject'], ]; } - $templateParams['id'] = $values[$prefix . 'template']; + $templateParams['id'] = $params[$prefix . 'template']; $msgTemplate = CRM_Core_BAO_MessageTemplate::add($templateParams); } - if (!empty($composeParams[$prefix . 'saveTemplate'])) { + // Save new template + if (!empty($params[$prefix . 'saveTemplate'])) { $templateParams = ['is_active' => TRUE]; if ($prefix === 'SMS') { $templateParams += [ @@ -654,32 +363,15 @@ class CRM_Admin_Form_ScheduleReminders extends CRM_Admin_Form { 'msg_subject' => $params['subject'], ]; } - $templateParams['msg_title'] = $composeParams[$prefix . 'saveTemplateName']; + $templateParams['msg_title'] = $params[$prefix . 'saveTemplateName']; $msgTemplate = CRM_Core_BAO_MessageTemplate::add($templateParams); } - if ($prefix === 'SMS') { - if (isset($msgTemplate->id)) { - $params['sms_template_id'] = $msgTemplate->id; - } - else { - $params['sms_template_id'] = $values['SMStemplate'] ?? NULL; - } - } - else { - if (isset($msgTemplate->id)) { - $params['msg_template_id'] = $msgTemplate->id; - } - else { - $params['msg_template_id'] = $values['template'] ?? NULL; - } + if (isset($msgTemplate->id)) { + $params[$mode . '_template_id'] = $msgTemplate->id; } } - - $actionSchedule = new CRM_Core_DAO_ActionSchedule(); - $actionSchedule->copyValues($params); - return $actionSchedule; } /** diff --git a/civicrm/CRM/Admin/Page/AJAX.php b/civicrm/CRM/Admin/Page/AJAX.php index 9d0c9ca2cb4beeff98d788d1900900d231be631e..0cc9bbbb8ced4ebc70047d47711373d8facb170d 100644 --- a/civicrm/CRM/Admin/Page/AJAX.php +++ b/civicrm/CRM/Admin/Page/AJAX.php @@ -279,62 +279,6 @@ class CRM_Admin_Page_AJAX { CRM_Core_Page_AJAX::returnJsonResponse($ret); } - /** - * Get a list of mappings. - * - * This appears to be only used by scheduled reminders. - */ - public static function mappingList() { - if (empty($_GET['mappingID'])) { - CRM_Utils_JSON::output(['status' => 'error', 'error_msg' => 'required params missing.']); - } - - $mapping = CRM_Core_BAO_ActionSchedule::getMapping($_GET['mappingID']); - $dateFieldLabels = $mapping ? $mapping->getDateFields() : []; - - // The UX here is quirky -- for "Activity" types, there's a simple drop "Recipients" - // dropdown which is always displayed. For other types, the "Recipients" drop down is - // conditional upon the weird isLimit ('Limit To / Also Include / Neither') dropdown. - $noThanksJustKidding = !$_GET['isLimit']; - if ($mapping instanceof CRM_Activity_ActionMapping || !$noThanksJustKidding) { - $entityRecipientLabels = $mapping ? ($mapping->getRecipientTypes() + CRM_Core_BAO_ActionSchedule::getAdditionalRecipients()) : []; - } - else { - $entityRecipientLabels = CRM_Core_BAO_ActionSchedule::getAdditionalRecipients(); - } - $recipientMapping = array_combine(array_keys($entityRecipientLabels), array_keys($entityRecipientLabels)); - - $output = [ - 'sel4' => CRM_Utils_Array::makeNonAssociative($dateFieldLabels), - 'sel5' => CRM_Utils_Array::makeNonAssociative($entityRecipientLabels), - 'recipientMapping' => $recipientMapping, - ]; - - CRM_Utils_JSON::output($output); - } - - /** - * (Scheduled Reminders) Get the list of possible recipient filters. - * - * Ex: GET /civicrm/ajax/recipientListing?mappingID=contribpage&recipientType= - */ - public static function recipientListing() { - $mappingID = filter_input(INPUT_GET, 'mappingID', FILTER_VALIDATE_REGEXP, [ - 'options' => [ - 'regexp' => '/^[a-zA-Z0-9_\-]+$/', - ], - ]); - $recipientType = filter_input(INPUT_GET, 'recipientType', FILTER_VALIDATE_REGEXP, [ - 'options' => [ - 'regexp' => '/^[a-zA-Z0-9_\-]+$/', - ], - ]); - - CRM_Utils_JSON::output([ - 'recipients' => CRM_Utils_Array::makeNonAssociative(CRM_Core_BAO_ActionSchedule::getRecipientListing($mappingID, $recipientType)), - ]); - } - /** * Outputs one branch in the tag tree * diff --git a/civicrm/CRM/Admin/Page/APIExplorer.php b/civicrm/CRM/Admin/Page/APIExplorer.php index a7b25539008ef3c810f16e0b238afd4fc8475f33..02f1d6cef43d71fd8066905a4ff5159d26e9f9ae 100644 --- a/civicrm/CRM/Admin/Page/APIExplorer.php +++ b/civicrm/CRM/Admin/Page/APIExplorer.php @@ -20,29 +20,6 @@ */ class CRM_Admin_Page_APIExplorer extends CRM_Core_Page { - /** - * Return unique paths for checking for examples. - * @return array - */ - private static function uniquePaths() { - // Ensure that paths with trailing slashes are properly dealt with - $paths = explode(PATH_SEPARATOR, get_include_path()); - foreach ($paths as $id => $rawPath) { - $pathParts = explode(DIRECTORY_SEPARATOR, $rawPath); - foreach ($pathParts as $partId => $part) { - if (empty($part)) { - unset($pathParts[$partId]); - } - } - $newRawPath = implode(DIRECTORY_SEPARATOR, $pathParts); - if ($newRawPath != $rawPath) { - $paths[$id] = DIRECTORY_SEPARATOR . $newRawPath; - } - } - $paths = array_unique($paths); - return $paths; - } - /** * Run page. * @@ -57,23 +34,6 @@ class CRM_Admin_Page_APIExplorer extends CRM_Core_Page { $this->assign('operators', CRM_Core_DAO::acceptedSQLOperators()); - // List example directories - // use get_include_path to ensure that extensions are captured. - $examples = []; - $paths = self::uniquePaths(); - foreach ($paths as $path) { - $dir = \CRM_Utils_File::addTrailingSlash($path) . 'api' . DIRECTORY_SEPARATOR . 'v3' . DIRECTORY_SEPARATOR . 'examples'; - if (\CRM_Utils_File::isDir($dir)) { - foreach (scandir($dir) as $item) { - if ($item && strpos($item, '.') === FALSE && array_search($item, $examples) === FALSE) { - $examples[] = $item; - } - } - } - } - sort($examples); - $this->assign('examples', $examples); - return parent::run(); } @@ -87,44 +47,6 @@ class CRM_Admin_Page_APIExplorer extends CRM_Core_Page { return 'civicrm/api'; } - /** - * AJAX callback to fetch examples. - */ - public static function getExampleFile() { - if (!empty($_GET['entity']) && strpos($_GET['entity'], '.') === FALSE) { - $examples = []; - $paths = self::uniquePaths(); - foreach ($paths as $path) { - $dir = \CRM_Utils_File::addTrailingSlash($path) . 'api' . DIRECTORY_SEPARATOR . 'v3' . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $_GET['entity']; - if (\CRM_Utils_File::isDir($dir)) { - foreach (scandir($dir) as $item) { - $item = str_replace('.ex.php', '', $item); - if ($item && strpos($item, '.') === FALSE) { - $examples[] = ['key' => $item, 'value' => $item]; - } - } - } - } - CRM_Utils_JSON::output($examples); - } - if (!empty($_GET['file']) && strpos($_GET['file'], '.') === FALSE) { - $paths = self::uniquePaths(); - $fileFound = FALSE; - foreach ($paths as $path) { - $fileName = \CRM_Utils_File::addTrailingSlash($path) . 'api' . DIRECTORY_SEPARATOR . 'v3' . DIRECTORY_SEPARATOR . 'examples' . DIRECTORY_SEPARATOR . $_GET['file'] . '.ex.php'; - if (!$fileFound && file_exists($fileName)) { - $fileFound = TRUE; - echo file_get_contents($fileName); - } - } - if (!$fileFound) { - echo "Not found."; - } - CRM_Utils_System::civiExit(); - } - CRM_Utils_System::permissionDenied(); - } - /** * Ajax callback to display code docs. */ diff --git a/civicrm/CRM/Admin/Page/ContactType.php b/civicrm/CRM/Admin/Page/ContactType.php index 526b11194c740c75b042bd0bd36abeaa564fee9f..2766cb4ae3676420722a74cfc2cd894745b2e153 100644 --- a/civicrm/CRM/Admin/Page/ContactType.php +++ b/civicrm/CRM/Admin/Page/ContactType.php @@ -71,6 +71,7 @@ class CRM_Admin_Page_ContactType extends CRM_Core_Page_Basic { 'ContactType', $value['id'] ); + $rows[$key] = array_merge(['class' => ''], $rows[$key]); } $this->assign('rows', $rows); } diff --git a/civicrm/CRM/Admin/Page/EventTemplate.php b/civicrm/CRM/Admin/Page/EventTemplate.php index c373135e635af01c710ac26fd5d5caa52b51b97b..77ee19f553b20df755e4cd14b9b232ad97c7d1db 100644 --- a/civicrm/CRM/Admin/Page/EventTemplate.php +++ b/civicrm/CRM/Admin/Page/EventTemplate.php @@ -52,12 +52,14 @@ class CRM_Admin_Page_EventTemplate extends CRM_Core_Page_Basic { 'url' => 'civicrm/event/manage/settings', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit Event Template'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/event/manage', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Event Template'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Admin/Page/Extensions.php b/civicrm/CRM/Admin/Page/Extensions.php index e845def26c48cee53d55c67016f7e8362ab9061f..d04ad328eb65a4ea1f91a47e9d565ed8e0104a42 100644 --- a/civicrm/CRM/Admin/Page/Extensions.php +++ b/civicrm/CRM/Admin/Page/Extensions.php @@ -66,6 +66,7 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/extensions', 'qs' => 'action=add&id=%%id%%&key=%%key%%', 'title' => ts('Install'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADD), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), @@ -73,24 +74,28 @@ class CRM_Admin_Page_Extensions extends CRM_Core_Page_Basic { 'qs' => 'action=enable&id=%%id%%&key=%%key%%', 'ref' => 'enable-action', 'title' => ts('Enable'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'url' => 'civicrm/admin/extensions', 'qs' => 'action=disable&id=%%id%%&key=%%key%%', 'title' => ts('Disable'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Uninstall'), 'url' => 'civicrm/admin/extensions', 'qs' => 'action=delete&id=%%id%%&key=%%key%%', 'title' => ts('Uninstall Extension'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Download'), 'url' => 'civicrm/admin/extensions', 'qs' => 'action=update&id=%%id%%&key=%%key%%', 'title' => ts('Download Extension'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], ]; } diff --git a/civicrm/CRM/Admin/Page/Job.php b/civicrm/CRM/Admin/Page/Job.php index 005b38f5ee177fe13e51a5469fc13ba5de90810f..f8a1a10171909dce2bcd15d490a235e136115705 100644 --- a/civicrm/CRM/Admin/Page/Job.php +++ b/civicrm/CRM/Admin/Page/Job.php @@ -51,40 +51,47 @@ class CRM_Admin_Page_Job extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/joblog', 'qs' => 'jid=%%id%%&reset=1', 'title' => ts('See log entries for this Scheduled Job'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::VIEW => [ 'name' => ts('Execute'), 'url' => 'civicrm/admin/job/edit', 'qs' => 'action=view&id=%%id%%&reset=1', 'title' => ts('Execute Scheduled Job Now'), + 'weight' => -15, ], CRM_Core_Action::UPDATE => [ 'name' => ts('Edit'), 'url' => 'civicrm/admin/job/edit', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit Scheduled Job'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Scheduled Job'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Scheduled Job'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/job/edit', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Scheduled Job'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::COPY => [ 'name' => ts('Copy'), 'url' => 'civicrm/admin/job/edit', 'qs' => 'action=copy&id=%%id%%', 'title' => ts('Copy Scheduled Job'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::COPY), ], ]; } diff --git a/civicrm/CRM/Admin/Page/MailSettings.php b/civicrm/CRM/Admin/Page/MailSettings.php index 8495f708e5fd766838c0276757b7fd388bce49db..e4b27ab05e57a1ba9224fdffed9e8d7853b4bc8a 100644 --- a/civicrm/CRM/Admin/Page/MailSettings.php +++ b/civicrm/CRM/Admin/Page/MailSettings.php @@ -36,7 +36,6 @@ class CRM_Admin_Page_MailSettings extends CRM_Core_Page_Basic { * Browse all mail settings. */ public function browse() { - //get all mail settings. $allMailSettings = []; $mailSetting = new CRM_Core_DAO_MailSettings(); @@ -45,20 +44,19 @@ class CRM_Admin_Page_MailSettings extends CRM_Core_Page_Basic { //multi-domain support for mail settings. CRM-5244 $mailSetting->domain_id = CRM_Core_Config::domainID(); - //find all mail settings. $mailSetting->find(); while ($mailSetting->fetch()) { //replace protocol value with name $mailSetting->protocol = $allProtocols[$mailSetting->protocol] ?? NULL; CRM_Core_DAO::storeValues($mailSetting, $allMailSettings[$mailSetting->id]); - //form all action links $action = array_sum(array_keys($this->links())); - // disallow the DELETE action for the default set of settings if ($mailSetting->is_default) { - $action &= ~CRM_Core_Action::DELETE; + $action -= CRM_Core_Action::DELETE; + $action -= CRM_Core_Action::DISABLE; } + $action -= ($mailSetting->is_active) ? CRM_Core_Action::ENABLE : CRM_Core_Action::DISABLE; //add action links. $allMailSettings[$mailSetting->id]['action'] = CRM_Core_Action::formLink(self::links(), $action, diff --git a/civicrm/CRM/Admin/Page/MessageTemplates.php b/civicrm/CRM/Admin/Page/MessageTemplates.php index a2af7ea9ab13df2320e8038b39ef77ea0dfa1b2d..1de19bfc7e09e5d7f9d86dfd41364e719388785c 100644 --- a/civicrm/CRM/Admin/Page/MessageTemplates.php +++ b/civicrm/CRM/Admin/Page/MessageTemplates.php @@ -90,22 +90,26 @@ class CRM_Admin_Page_MessageTemplates extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/messageTemplates/add', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit this message template'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable this message template'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable this message template'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/messageTemplates', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete this message template'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::REVERT => [ 'name' => ts('Revert to Default'), @@ -113,12 +117,15 @@ class CRM_Admin_Page_MessageTemplates extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/messageTemplates', 'qs' => 'action=revert&id=%%id%%&selectedChild=workflow', 'title' => ts('Revert this workflow message template to the system default'), + 'weight' => 110, ], CRM_Core_Action::VIEW => [ 'name' => ts('View Default'), 'url' => 'civicrm/admin/messageTemplates', 'qs' => 'action=view&id=%%orig_id%%&reset=1', 'title' => ts('View the system default for this workflow message template'), + // Not the standard view weight as it's not really a standard view action. + 'weight' => 120, ], ]; } diff --git a/civicrm/CRM/Admin/Page/Options.php b/civicrm/CRM/Admin/Page/Options.php index 93f30fc18fa0b416fc7968dc6067cda2ee988b62..19954130e2505d3bf46608eff249dd20f426cc8b 100644 --- a/civicrm/CRM/Admin/Page/Options.php +++ b/civicrm/CRM/Admin/Page/Options.php @@ -157,26 +157,30 @@ class CRM_Admin_Page_Options extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/options/' . self::$_gName, 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit %1', [1 => self::$_gName]), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable %1', [1 => self::$_gName]), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable %1', [1 => self::$_gName]), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/options/' . self::$_gName, 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete %1 Type', [1 => self::$_gName]), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; - if (self::$_gName == 'custom_search') { + if (self::$_gName === 'custom_search') { $runLink = [ CRM_Core_Action::FOLLOWUP => [ 'name' => ts('Run'), @@ -184,6 +188,7 @@ class CRM_Admin_Page_Options extends CRM_Core_Page_Basic { 'qs' => 'reset=1&csid=%%value%%', 'title' => ts('Run %1', [1 => self::$_gName]), 'class' => 'no-popup', + 'weight' => 10, ], ]; self::$_links = $runLink + self::$_links; diff --git a/civicrm/CRM/Admin/Page/ScheduleReminders.php b/civicrm/CRM/Admin/Page/ScheduleReminders.php index c6a3415ebbe7ab9061292b95c7f1a1fb4d39458c..ed73fb9c46ddef27b46aad8c142ab340fc52c61a 100644 --- a/civicrm/CRM/Admin/Page/ScheduleReminders.php +++ b/civicrm/CRM/Admin/Page/ScheduleReminders.php @@ -72,12 +72,6 @@ class CRM_Admin_Page_ScheduleReminders extends CRM_Core_Page_Basic { * @throws \CRM_Core_Exception */ public function browse($action = NULL) { - //CRM-16777: Do not permit access to user, for page 'Administer->Communication->Schedule Reminder', - //when do not have 'administer CiviCRM' permission. - if (!CRM_Core_Permission::check('administer CiviCRM')) { - CRM_Core_Error::statusBounce(ts('You do not have permission to access this page.')); - } - // Get list of configured reminders $reminderList = CRM_Core_BAO_ActionSchedule::getList(); @@ -100,9 +94,11 @@ class CRM_Admin_Page_ScheduleReminders extends CRM_Core_Page_Basic { 'ActionSchedule', $format['id'] ); + $format = array_merge(['class' => ''], $format); } $this->assign('rows', $reminderList); + $this->assign('addNewLink', $this->getLinkPath('add')); } } diff --git a/civicrm/CRM/Api4/Page/AJAX.php b/civicrm/CRM/Api4/Page/AJAX.php index 650641b07e1528679ceb1f2238d9786f96b3b7d6..dee72c6f70ed0bbc27f41b5906f875f12a3bb7ba 100644 --- a/civicrm/CRM/Api4/Page/AJAX.php +++ b/civicrm/CRM/Api4/Page/AJAX.php @@ -134,8 +134,9 @@ class CRM_Api4_Page_AJAX extends CRM_Core_Page { $statusMap = [ \Civi\API\Exception\UnauthorizedException::class => 403, ]; + $status = $statusMap[get_class($e)] ?? 500; // Send error code (but don't overwrite success code if there are multiple calls and one was successful) - $this->httpResponseCode = $this->httpResponseCode ?: ($statusMap[get_class($e)] ?? 500); + $this->httpResponseCode = $this->httpResponseCode ?: $status; if (CRM_Core_Permission::check('view debug output')) { $response['error_code'] = $e->getCode(); $response['error_message'] = $e->getMessage(); @@ -165,6 +166,7 @@ class CRM_Api4_Page_AJAX extends CRM_Core_Page { 'exception' => $e, ]); } + $response['status'] = $status; } return $response; } diff --git a/civicrm/CRM/Api4/Page/Api4Explorer.php b/civicrm/CRM/Api4/Page/Api4Explorer.php index 0b03bc97258030c3ae189cc9cafbfc427b8e441e..7f4ef621226d328927ae9e4b1b88f129ae4cd637 100644 --- a/civicrm/CRM/Api4/Page/Api4Explorer.php +++ b/civicrm/CRM/Api4/Page/Api4Explorer.php @@ -30,6 +30,7 @@ class CRM_Api4_Page_Api4Explorer extends CRM_Core_Page { 'docs' => \Civi\Api4\Utils\ReflectionUtils::parseDocBlock($apiDoc->getDocComment()), 'functions' => CoreUtil::getSqlFunctions(), 'authxEnabled' => $extensions->isActiveModule('authx'), + 'suffixes' => \Civi\Api4\Utils\FormattingUtil::$pseudoConstantSuffixes, 'restUrl' => rtrim(CRM_Utils_System::url('civicrm/ajax/api4/CRMAPI4ENTITY/CRMAPI4ACTION', NULL, TRUE, NULL, FALSE, TRUE), '/'), ]; Civi::resources() diff --git a/civicrm/CRM/Badge/Page/Layout.php b/civicrm/CRM/Badge/Page/Layout.php index 6fb0068d52862bed3f2d761a103cf6bcd3379b7e..d0f31935e5bc34c23fc49a5e5e7023ba62f5b3e0 100644 --- a/civicrm/CRM/Badge/Page/Layout.php +++ b/civicrm/CRM/Badge/Page/Layout.php @@ -51,22 +51,26 @@ class CRM_Badge_Page_Layout extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/badgelayout', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit Badge Layout'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Badge Layout'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Badge Layout'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/badgelayout', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Badge Layout'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Campaign/BAO/Campaign.php b/civicrm/CRM/Campaign/BAO/Campaign.php index 44de734813ced20f3daeb9ee8d944e3737d13e14..b8d6b1c4c6a12b8a966a7228b5c569dfb1e22188 100644 --- a/civicrm/CRM/Campaign/BAO/Campaign.php +++ b/civicrm/CRM/Campaign/BAO/Campaign.php @@ -370,7 +370,7 @@ INNER JOIN civicrm_option_group grp ON ( campaign_type.option_group_id = grp.id if (array_key_exists('is_active', $params)) { $active = "( campaign.is_active = 1 )"; if (!empty($params['is_active'])) { - $active = "( campaign.is_active = 0 OR campaign.is_active IS NULL )"; + $active = "campaign.is_active = 0"; } $where[] = $active; } diff --git a/civicrm/CRM/Campaign/BAO/Query.php b/civicrm/CRM/Campaign/BAO/Query.php index 50fb3e589029ee6979bedbbe4ec5171aa141f162..cde52e31722c3f81b345108fada56b35a1ec8ac1 100644 --- a/civicrm/CRM/Campaign/BAO/Query.php +++ b/civicrm/CRM/Campaign/BAO/Query.php @@ -176,7 +176,7 @@ class CRM_Campaign_BAO_Query { case 'campaign_search_voter_for': if (in_array($value, ['release', 'interview'])) { - $query->_where[$grouping][] = '(civicrm_activity.is_deleted = 0 OR civicrm_activity.is_deleted IS NULL)'; + $query->_where[$grouping][] = 'civicrm_activity.is_deleted = 0'; } return; @@ -468,13 +468,21 @@ INNER JOIN civicrm_custom_group grp on fld.custom_group_id = grp.id if ($searchVoterFor == 'reserve') { $operator = 'NOT IN'; //filter out recontact survey contacts. - $recontactInterval = CRM_Core_DAO::getFieldValue('CRM_Campaign_DAO_Survey', - $surveyId, 'recontact_interval' + $optionGroupId = CRM_Core_DAO::getFieldValue('CRM_Campaign_DAO_Survey', + $surveyId, 'result_id' ); - $recontactInterval = CRM_Utils_String::unserialize($recontactInterval); + if ($optionGroupId) { + // Lookup intervals which are stored in option_value.filter column. + // FIXME: Keyed by label because civicrm_activity.result unfortunately stores the option_value.label! + $recontactInterval = \Civi\Api4\OptionValue::get(FALSE) + ->addSelect('label', 'filter') + ->addWhere('option_group_id', '=', $optionGroupId) + ->execute() + ->indexBy('label')->column('filter'); + } if ($surveyId && - is_array($recontactInterval) && - !empty($recontactInterval) + !empty($recontactInterval) && + is_array($recontactInterval) ) { $voterIds = []; foreach ($voterActValues as $values) { diff --git a/civicrm/CRM/Campaign/BAO/Survey.php b/civicrm/CRM/Campaign/BAO/Survey.php index b81761be8a0a53dc175f5dbbd986cd1a64055399..5f9ee274931a5a0d2180f1b800cf430511eae933 100644 --- a/civicrm/CRM/Campaign/BAO/Survey.php +++ b/civicrm/CRM/Campaign/BAO/Survey.php @@ -503,7 +503,7 @@ INNER JOIN civicrm_activity_contact activityTarget INNER JOIN civicrm_activity_contact activityAssignment ON ( activityAssignment.activity_id = activity.id AND activityAssignment.record_type_id = $assigneeID ) WHERE activity.source_record_id = %1 - AND ( activity.is_deleted IS NULL OR activity.is_deleted = 0 ) "; + AND activity.is_deleted = 0 "; if (!empty($interviewerId)) { $query .= "AND activityAssignment.contact_id = %2 "; $params[2] = [$interviewerId, 'Integer']; @@ -598,7 +598,7 @@ INNER JOIN civicrm_activity_contact activityAssignment INNER JOIN civicrm_contact contact_a ON ( activityTarget.contact_id = contact_a.id ) WHERE activity.source_record_id = %1 AND activity.activity_type_id = %2 - AND ( activity.is_deleted IS NULL OR activity.is_deleted = 0 ) + AND activity.is_deleted = 0 $whereClause"; $params = [ diff --git a/civicrm/CRM/Campaign/DAO/CampaignGroup.php b/civicrm/CRM/Campaign/DAO/CampaignGroup.php index a5482ebce115b4fc4b9d9070ca493e8c331ccd2e..ba4bb2bb6270c983b66816f8d1e667b18680c203 100644 --- a/civicrm/CRM/Campaign/DAO/CampaignGroup.php +++ b/civicrm/CRM/Campaign/DAO/CampaignGroup.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Campaign/CampaignGroup.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:5d72f04bf39ff20651ca6e1f59a3fd26) + * (GenCodeChecksum:a33ba39795de9f821cfb90cbe83db039) */ /** @@ -167,7 +167,7 @@ class CRM_Campaign_DAO_CampaignGroup extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.3', ], diff --git a/civicrm/CRM/Campaign/DAO/Survey.php b/civicrm/CRM/Campaign/DAO/Survey.php index 7acaf692e8468910b7a7ed96f8bb7401186483c0..cbf590c943706a627aee9872c05e84481c565526 100644 --- a/civicrm/CRM/Campaign/DAO/Survey.php +++ b/civicrm/CRM/Campaign/DAO/Survey.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Campaign/Survey.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:79c05054f18c94059ec35314ea6bbef6) + * (GenCodeChecksum:754f9a2e62e86ff340afea563b561dec) */ /** @@ -81,15 +81,6 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO { */ public $activity_type_id; - /** - * Recontact intervals for each status. - * - * @var string|null - * (SQL type: text) - * Note that values will be retrieved from the database as a string. - */ - public $recontact_interval; - /** * Script instructions for volunteers to use for the survey. * @@ -343,7 +334,7 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.3', ], @@ -375,29 +366,6 @@ class CRM_Campaign_DAO_Survey extends CRM_Core_DAO { ], 'add' => '3.3', ], - 'recontact_interval' => [ - 'name' => 'recontact_interval', - 'type' => CRM_Utils_Type::T_TEXT, - 'title' => ts('Follow up Interval'), - 'description' => ts('Recontact intervals for each status.'), - 'rows' => 20, - 'cols' => 80, - 'usage' => [ - 'import' => FALSE, - 'export' => FALSE, - 'duplicate_matching' => FALSE, - 'token' => FALSE, - ], - 'where' => 'civicrm_survey.recontact_interval', - 'table_name' => 'civicrm_survey', - 'entity' => 'Survey', - 'bao' => 'CRM_Campaign_BAO_Survey', - 'localizable' => 0, - 'html' => [ - 'type' => 'TextArea', - ], - 'add' => '3.3', - ], 'instructions' => [ 'name' => 'instructions', 'type' => CRM_Utils_Type::T_TEXT, diff --git a/civicrm/CRM/Campaign/Form/Petition/Signature.php b/civicrm/CRM/Campaign/Form/Petition/Signature.php index 2c13088366147b52f541b55aa8b953c483c12f93..aed16cd246300809ee64e7d2502b557a570b387f 100644 --- a/civicrm/CRM/Campaign/Form/Petition/Signature.php +++ b/civicrm/CRM/Campaign/Form/Petition/Signature.php @@ -116,6 +116,13 @@ class CRM_Campaign_Form_Petition_Signature extends CRM_Core_Form { protected $_image_URL; + /** + * Prevent double clicks from creating duplicate or blank records. + * + * @var bool + */ + public $submitOnce = TRUE; + /** */ public function __construct() { diff --git a/civicrm/CRM/Campaign/Form/Survey/Main.php b/civicrm/CRM/Campaign/Form/Survey/Main.php index 72fc38c7c1616ba9dfcf71a4077660a842097e2c..2aca9a250b68fe0ac710810da7769bb80b17931a 100644 --- a/civicrm/CRM/Campaign/Form/Survey/Main.php +++ b/civicrm/CRM/Campaign/Form/Survey/Main.php @@ -83,18 +83,6 @@ class CRM_Campaign_Form_Survey_Main extends CRM_Campaign_Form_Survey { $defaults = $this->_values; - if ($this->_surveyId) { - - if (!empty($defaults['result_id']) && !empty($defaults['recontact_interval'])) { - - $resultId = $defaults['result_id']; - $recontactInterval = CRM_Utils_String::unserialize($defaults['recontact_interval']); - - unset($defaults['recontact_interval']); - $defaults['option_group_id'] = $resultId; - } - } - if (!isset($defaults['is_active'])) { $defaults['is_active'] = 1; } diff --git a/civicrm/CRM/Campaign/Form/Survey/Results.php b/civicrm/CRM/Campaign/Form/Survey/Results.php index c7054f570fa8da48864b376abffc91ff5402fa70..27121645e8b63534e775372dd82ebe96c452dbf0 100644 --- a/civicrm/CRM/Campaign/Form/Survey/Results.php +++ b/civicrm/CRM/Campaign/Form/Survey/Results.php @@ -343,7 +343,6 @@ class CRM_Campaign_Form_Survey_Results extends CRM_Campaign_Form_Survey { $resultSetOptGrpId = $params['option_group_id']; } - $recontactInterval = []; if ($updateResultSet) { $optionValue = new CRM_Core_DAO_OptionValue(); $optionValue->option_group_id = $resultSetOptGrpId; @@ -372,6 +371,7 @@ class CRM_Campaign_Form_Survey_Results extends CRM_Campaign_Form_Survey { $optionValue->value = trim($v); $optionValue->weight = $params['option_weight'][$k]; $optionValue->is_active = 1; + $optionValue->filter = $params['option_interval'][$k]; if (!empty($params['default_option']) && $params['default_option'] == $k @@ -381,14 +381,9 @@ class CRM_Campaign_Form_Survey_Results extends CRM_Campaign_Form_Survey { $optionValue->save(); - // using is_numeric since 0 is a valid value for option_interval - if (is_numeric($params['option_interval'][$k])) { - $recontactInterval[$optionValue->label] = $params['option_interval'][$k]; - } } } - $params['recontact_interval'] = serialize($recontactInterval); $survey = CRM_Campaign_BAO_Survey::create($params); // create report if required. @@ -397,7 +392,7 @@ class CRM_Campaign_Form_Survey_Results extends CRM_Campaign_Form_Survey { $activityStatus = array_flip($activityStatus); $this->_params = [ 'name' => "survey_{$survey->id}", - 'title' => $params['report_title'] ? $params['report_title'] : $this->_values['title'], + 'title' => $params['report_title'] ?: $this->_values['title'], 'status_id_op' => 'eq', // reserved status 'status_id_value' => $activityStatus['Scheduled'], diff --git a/civicrm/CRM/Campaign/Form/Survey/TabHeader.php b/civicrm/CRM/Campaign/Form/Survey/TabHeader.php index e7bfd2fa569f1c9c8a74e6cb800578f572985416..2856c09a3e7abf7a68b98790095df2a9a3e8a47c 100644 --- a/civicrm/CRM/Campaign/Form/Survey/TabHeader.php +++ b/civicrm/CRM/Campaign/Form/Survey/TabHeader.php @@ -137,7 +137,7 @@ class CRM_Campaign_Form_Survey_TabHeader { } } - $current = $current ? $current : 'main'; + $current = $current ?: 'main'; return $current; } @@ -166,7 +166,7 @@ class CRM_Campaign_Form_Survey_TabHeader { } } - $next = $next ? $next : 'main'; + $next = $next ?: 'main'; return $next; } diff --git a/civicrm/CRM/Campaign/Page/AJAX.php b/civicrm/CRM/Campaign/Page/AJAX.php index fc667ded8b8c8b5015d9fd87ecdd23dec9f9639f..f5e857c2d358896cab0ea618b9c55b4ebffe96a4 100644 --- a/civicrm/CRM/Campaign/Page/AJAX.php +++ b/civicrm/CRM/Campaign/Page/AJAX.php @@ -91,27 +91,14 @@ class CRM_Campaign_Page_AJAX { $id = CRM_Utils_Request::retrieve('option_group_id', 'Integer', CRM_Core_DAO::$_nullObject, FALSE, NULL, 'POST'); $status = 'fail'; - $opValues = []; if ($id) { - $groupParams['id'] = $id; - CRM_Core_OptionValue::getValues($groupParams, $opValues); - } - - $surveyId = CRM_Utils_Request::retrieve('survey_id', 'Integer', CRM_Core_DAO::$_nullObject, FALSE, NULL, 'POST'); - if ($surveyId) { - $survey = new CRM_Campaign_DAO_Survey(); - $survey->id = $surveyId; - $survey->result_id = $id; - if ($survey->find(TRUE)) { - if ($survey->recontact_interval) { - $recontactInterval = CRM_Utils_String::unserialize($survey->recontact_interval); - foreach ($opValues as $opValId => $opVal) { - if (is_numeric($recontactInterval[$opVal['label']])) { - $opValues[$opValId]['interval'] = $recontactInterval[$opVal['label']]; - } - } - } + $opValues = \Civi\Api4\OptionValue::get(FALSE) + ->addWhere('option_group_id', '=', $id) + ->addOrderBy('weight') + ->execute()->indexBy('id'); + foreach ($opValues as $id => $value) { + $opValues[$id]['interval'] = $value['filter']; } } diff --git a/civicrm/CRM/Case/BAO/Case.php b/civicrm/CRM/Case/BAO/Case.php index 00aad654ae6addaf6fe9d4ee172199f609f45c30..aaa7fab22b65c1307a8f880b651890e372dff3c2 100644 --- a/civicrm/CRM/Case/BAO/Case.php +++ b/civicrm/CRM/Case/BAO/Case.php @@ -1902,7 +1902,7 @@ HERESQL; $whereClause = "mainCase.id = %2"; if ($excludeDeleted) { - $whereClause .= " AND ( relAct.is_deleted = 0 OR relAct.is_deleted IS NULL )"; + $whereClause .= " AND relAct.is_deleted = 0"; } $query = " @@ -1945,7 +1945,7 @@ HERESQL; $whereClause = 'relCase.id IN ( ' . implode(',', $relatedCaseIds) . ' )'; if ($excludeDeleted) { - $whereClause .= " AND ( relCase.is_deleted = 0 OR relCase.is_deleted IS NULL )"; + $whereClause .= " AND relCase.is_deleted = 0"; } //filter for permissioned cases. diff --git a/civicrm/CRM/Case/DAO/Case.php b/civicrm/CRM/Case/DAO/Case.php index 70afd42baef1019c1e04b3f3d40a251f03c03e51..08d048818b67526a1d01a8dcb961be7e1adb1fcb 100644 --- a/civicrm/CRM/Case/DAO/Case.php +++ b/civicrm/CRM/Case/DAO/Case.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Case/Case.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:64f4fa789f0b49013001698acf6c7463) + * (GenCodeChecksum:83be6db09d4f5220f74ccc72149dcab6) */ /** @@ -357,6 +357,7 @@ class CRM_Case_DAO_Case extends CRM_Core_DAO { 'localizable' => 0, 'html' => [ 'type' => 'Select', + 'controlField' => 'case_type_id', ], 'pseudoconstant' => [ 'optionGroupName' => 'case_status', diff --git a/civicrm/CRM/Case/Form/DeleteClient.php b/civicrm/CRM/Case/Form/DeleteClient.php new file mode 100644 index 0000000000000000000000000000000000000000..c7614416ea0150b5304589378a45215f5d478a62 --- /dev/null +++ b/civicrm/CRM/Case/Form/DeleteClient.php @@ -0,0 +1,130 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ +use Civi\Api4\CaseContact; + +/** + * + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + */ + +/** + * This class assigns the current case to another client. + */ +class CRM_Case_Form_DeleteClient extends CRM_Core_Form { + + /** + * case ID + * @var int + */ + protected $id; + + /** + * Client ID + * @var int + */ + protected $cid; + + /** + * Return ContactId + * @var int + */ + protected $returnContactId; + + /** + * Build all the data structures needed to build the form. + */ + public function preProcess() { + $this->cid = CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE); + $this->id = CRM_Utils_Request::retrieve('id', 'Positive', $this, TRUE); + $this->returnContactId = CRM_Utils_Request::retrieve('rcid', 'Positive', $this, TRUE); + $context = CRM_Utils_Request::retrieve('context', 'Alphanumeric', $this); + + //get current client name. + $this->assign('currentClientName', CRM_Contact_BAO_Contact::displayName($this->cid)); + $this->assign('id', $this->id); + + //set the context. + $url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&force=1&cid={$this->cid}&selectedChild=case"); + if ($context == 'search') { + $qfKey = CRM_Utils_Request::retrieve('key', 'String', $this); + //validate the qfKey + $urlParams = 'force=1'; + if (CRM_Utils_Rule::qfKey($qfKey)) { + $urlParams .= "&qfKey=$qfKey"; + } + $url = CRM_Utils_System::url('civicrm/case/search', $urlParams); + } + elseif ($context == 'dashboard') { + $url = CRM_Utils_System::url('civicrm/case', 'reset=1'); + } + elseif (in_array($context, [ + 'dashlet', + 'dashletFullscreen', + ])) { + $url = CRM_Utils_System::url('civicrm/dashboard', 'reset=1'); + } + $session = CRM_Core_Session::singleton(); + $session->pushUserContext($url); + $caseContacts = CaseContact::get()->addWhere('case_id', '=', $this->id)->execute(); + if (count($caseContacts) === 1) { + CRM_Core_Error::statusBounce(ts('Cannot Remove Client from case as is the only client on the case'), $url); + } + } + + /** + * Build the form object. + */ + public function buildQuickForm() { + $this->add('hidden', 'id', $this->id); + $this->add('hidden', 'contact_id', $this->cid); + $this->addButtons([ + [ + 'type' => 'submit', + 'name' => ts('Remove Client from Case'), + ], + [ + 'type' => 'cancel', + 'name' => ts('Cancel'), + ], + ]); + + // This form may change the url structure so should not submit via ajax + $this->preventAjaxSubmit(); + } + + /** + * Process the form. + */ + public function postProcess() { + $params = $this->controller->exportValues($this->_name); + civicrm_api3('CaseContact', 'get', [ + 'case_id' => $params['id'], + 'contact_id' => $params['contact_id'], + 'api.case_contact.delete' => ['id' => "\$value.id"], + ]); + civicrm_api3('Activity', 'create', [ + 'activity_type_id' => 'Case Client Removed', + 'subject' => ts('Case Client Removed'), + 'source_contact_id' => CRM_Core_Session::getLoggedInContactID(), + 'case_id' => $params['id'], + 'target_contact_id' => $params['contact_id'], + ]); + + // user context + $url = CRM_Utils_System::url('civicrm/contact/view/case', + "reset=1&action=view&cid={$this->returnContactId}&id={$params['id']}&show=1" + ); + CRM_Utils_System::redirect($url); + + } + +} diff --git a/civicrm/CRM/Case/Info.php b/civicrm/CRM/Case/Info.php index 5269af7a2d05d62ec260cf48912411438ba92dc5..bd4037ceff6ce13e9c7b8c3fe42742cb7a61c7cc 100644 --- a/civicrm/CRM/Case/Info.php +++ b/civicrm/CRM/Case/Info.php @@ -51,20 +51,6 @@ class CRM_Case_Info extends CRM_Core_Component_Info { return $result; } - /** - * @inheritDoc - * @return array - * @throws CRM_Core_Exception - */ - public function getManagedEntities() { - $entities = array_merge( - CRM_Case_ManagedEntities::createManagedCaseTypes(), - CRM_Case_ManagedEntities::createManagedActivityTypes(CRM_Case_XMLRepository::singleton(), CRM_Core_ManagedEntities::singleton()), - CRM_Case_ManagedEntities::createManagedRelationshipTypes(CRM_Case_XMLRepository::singleton(), CRM_Core_ManagedEntities::singleton()) - ); - return $entities; - } - /** * @inheritDoc * @param bool $getAllUnconditionally diff --git a/civicrm/CRM/Case/xml/Menu/Case.xml b/civicrm/CRM/Case/xml/Menu/Case.xml index 91348e1c9a3d7e27a2e7028d4f0d4e250a2c13b1..28d716afa68d35b40ed0d6fd92b16c811dd69705 100644 --- a/civicrm/CRM/Case/xml/Menu/Case.xml +++ b/civicrm/CRM/Case/xml/Menu/Case.xml @@ -141,4 +141,9 @@ <title>Email</title> <page_callback>CRM_Case_Form_Task_Email</page_callback> </item> + <item> + <path>civicrm/contact/view/case/deleteClient</path> + <title>Remove Client</title> + <page_callback>CRM_Case_Form_DeleteClient</page_callback> + </item> </menu> diff --git a/civicrm/CRM/Contact/ActionMapping.php b/civicrm/CRM/Contact/ActionMapping.php index 281da12a2f918e3d727f6f9497113d0ace62eaa4..ca2788fadab3c05858560f6a0b5ea5fce21413b2 100644 --- a/civicrm/CRM/Contact/ActionMapping.php +++ b/civicrm/CRM/Contact/ActionMapping.php @@ -28,12 +28,22 @@ class CRM_Contact_ActionMapping extends \Civi\ActionSchedule\MappingBase { return self::CONTACT_MAPPING_ID; } + public function getName(): string { + return 'contact'; + } + public function getEntityName(): string { return 'Contact'; } - public function getValueHeader(): string { - return ts('Date Field'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + $spec->getFieldByName('entity_value') + ->setLabel(ts('Date Field')) + ->setInputAttr('multiple', FALSE); + $spec->getFieldByName('entity_status') + ->setLabel(ts('Annual Options')) + ->setInputAttr('multiple', FALSE) + ->setRequired(TRUE); } public function getValueLabels(): array { @@ -51,15 +61,11 @@ class CRM_Contact_ActionMapping extends \Civi\ActionSchedule\MappingBase { return $dateFields; } - public function getStatusHeader(): string { - return ts('Annual Options'); - } - - public function getStatusLabels($value): array { + public function getStatusLabels(?array $entityValue): array { return CRM_Core_OptionGroup::values('contact_date_reminder_options'); } - public function getDateFields(): array { + public function getDateFields(?array $entityValue = NULL): array { return [ 'date_field' => ts('Date Field'), ]; @@ -71,30 +77,6 @@ class CRM_Contact_ActionMapping extends \Civi\ActionSchedule\MappingBase { 'modified_date', ]; - /** - * Determine whether a schedule based on this mapping is sufficiently - * complete. - * - * @param \CRM_Core_DAO_ActionSchedule $schedule - * @return array - * Array (string $code => string $message). - * List of error messages. - */ - public function validateSchedule($schedule): array { - $errors = []; - if (CRM_Utils_System::isNull($schedule->entity_value) || $schedule->entity_value === '0') { - $errors['entity'] = ts('Please select a specific date field.'); - } - elseif (count(CRM_Utils_Array::explodePadded($schedule->entity_value)) > 1) { - $errors['entity'] = ts('You may only select one contact field per reminder'); - } - elseif (CRM_Utils_System::isNull($schedule->entity_status) || $schedule->entity_status === '0') { - $errors['entity'] = ts('Please select whether the reminder is sent each year.'); - } - - return $errors; - } - /** * Generate a query to locate recipients who match the given * schedule. @@ -113,14 +95,14 @@ class CRM_Contact_ActionMapping extends \Civi\ActionSchedule\MappingBase { $selectedValues = (array) \CRM_Utils_Array::explodePadded($schedule->entity_value); $selectedStatuses = (array) \CRM_Utils_Array::explodePadded($schedule->entity_status); - // FIXME: This assumes that $values only has one field, but UI shows multiselect. - // Properly supporting multiselect would require total rewrite of this function. + // Only one value is allowed for this mapping type. + // The form and API both enforce this, so this error should never happen. if (count($selectedValues) != 1 || !isset($selectedValues[0])) { throw new \CRM_Core_Exception("Error: Scheduled reminders may only have one contact field."); } elseif (in_array($selectedValues[0], $this->contactDateFields)) { $dateDBField = $selectedValues[0]; - $query = \CRM_Utils_SQL_Select::from("{$this->getEntityTable()} e")->param($defaultParams); + $query = \CRM_Utils_SQL_Select::from('civicrm_contact e')->param($defaultParams); $query->param([ 'casAddlCheckFrom' => 'civicrm_contact e', 'casContactIdField' => 'e.id', diff --git a/civicrm/CRM/Contact/BAO/Contact.php b/civicrm/CRM/Contact/BAO/Contact.php index f1de7ae4a08c310565e51bb1b41df5592988af33..def524162266db3614b0329953ae425ed1400e3f 100644 --- a/civicrm/CRM/Contact/BAO/Contact.php +++ b/civicrm/CRM/Contact/BAO/Contact.php @@ -1136,7 +1136,7 @@ WHERE civicrm_contact.id = " . CRM_Utils_Type::escape($id, 'Integer'); // retrieve contact id in case of Profile context $id = CRM_Utils_Request::retrieve('id', 'Positive'); $formName = $pcp ? 'CRM_PCP_Form_PCPAccount' : ($cid ? 'CRM_Contact_Form_Contact' : 'CRM_Profile_Form_Edit'); - $cid = $cid ? $cid : $id; + $cid = $cid ?: $id; if ($action & CRM_Core_Action::DELETE) { if (CRM_Utils_Request::retrieve('confirmed', 'Boolean')) { // $controller is not used at all but we need the CRM_Core_Controller object as in it's constructor diff --git a/civicrm/CRM/Contact/BAO/Contact/Utils.php b/civicrm/CRM/Contact/BAO/Contact/Utils.php index 7e151c35e274d3aa69f852d321fe18126afd6e89..2b972e77f37fb6739f5c7016b774f2276bc2bc6a 100644 --- a/civicrm/CRM/Contact/BAO/Contact/Utils.php +++ b/civicrm/CRM/Contact/BAO/Contact/Utils.php @@ -148,12 +148,12 @@ WHERE id IN ( $idString ) } if (!$hash) { - if ($entityType == 'contact') { + if ($entityType === 'contact') { $hash = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', $entityId, 'hash' ); } - elseif ($entityType == 'mailing') { + elseif ($entityType === 'mailing') { $hash = CRM_Core_DAO::getFieldValue('CRM_Mailing_DAO_Mailing', $entityId, 'hash' ); diff --git a/civicrm/CRM/Contact/BAO/Group.php b/civicrm/CRM/Contact/BAO/Group.php index 17bedf4a4d6821e1ca6ed5e690a8177658ca892b..e39077b4db394dd0e4ec1bbee50f6f518ee98517 100644 --- a/civicrm/CRM/Contact/BAO/Group.php +++ b/civicrm/CRM/Contact/BAO/Group.php @@ -315,9 +315,8 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { public function addSelectWhereClause() { $clauses = []; if (!CRM_Core_Permission::check([['edit all contacts', 'view all contacts']])) { - $allGroups = CRM_Core_PseudoConstant::allGroup(NULL, FALSE); - $allowedGroups = \CRM_ACL_API::group(CRM_ACL_API::VIEW, NULL, 'civicrm_group', $allGroups); - $groupsIn = $allowedGroups ? implode(',', $allowedGroups) : '0'; + $allowedGroups = CRM_Core_Permission::group(NULL, FALSE); + $groupsIn = $allowedGroups ? implode(',', array_keys($allowedGroups)) : '0'; $clauses['id'][] = "IN ($groupsIn)"; } CRM_Utils_Hook::selectWhereClause($this, $clauses); @@ -631,17 +630,10 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { */ protected static function flushCaches() { CRM_Utils_System::flushCache(); - $staticCaches = [ - 'CRM_Core_PseudoConstant' => 'groups', - 'CRM_ACL_API' => 'group_permission', - 'CRM_ACL_BAO_ACL' => 'permissioned_groups', - 'CRM_Contact_BAO_Group' => 'permission_clause', - ]; - foreach ($staticCaches as $class => $key) { - if (isset(Civi::$statics[$class][$key])) { - unset(Civi::$statics[$class][$key]); - } - } + unset(Civi::$statics['CRM_Core_PseudoConstant']['groups']); + unset(Civi::$statics['CRM_ACL_API']); + unset(Civi::$statics['CRM_ACL_BAO_ACL']['permissioned_groups']); + unset(Civi::$statics['CRM_Contact_BAO_Group']['permission_clause']); } /** @@ -1025,6 +1017,12 @@ class CRM_Contact_BAO_Group extends CRM_Contact_DAO_Group { // CRM-16905 - Sort by count cannot be done with sql if (!empty($params['sort']) && strpos($params['sort'], 'count') === 0) { usort($values, function($a, $b) { + if ($a['count'] === 'unknown') { + return -1; + } + if ($b['count'] === 'unknown') { + return 1; + } return $a['count'] - $b['count']; }); if (strpos($params['sort'], 'desc')) { diff --git a/civicrm/CRM/Contact/BAO/GroupContactCache.php b/civicrm/CRM/Contact/BAO/GroupContactCache.php index f29a78274659d7ab677a1deb3d3d503c74cb0ad8..8d30ca73c596e273c82546b601826f13f437da84 100644 --- a/civicrm/CRM/Contact/BAO/GroupContactCache.php +++ b/civicrm/CRM/Contact/BAO/GroupContactCache.php @@ -82,7 +82,7 @@ AND ( )"; if (!$includeHiddenGroups) { - $query .= "AND (g.is_hidden = 0 OR g.is_hidden IS NULL)"; + $query .= "AND g.is_hidden = 0"; } if (!empty($groupIDClause)) { @@ -431,7 +431,7 @@ SELECT gc.group_id, gc.contact_id, g.title, g.children, g.description FROM civicrm_group_contact_cache gc INNER JOIN civicrm_group g ON g.id = gc.group_id WHERE gc.contact_id = $contactID - AND (g.is_hidden = 0 OR g.is_hidden IS NULL) + AND g.is_hidden = 0 ORDER BY gc.contact_id, g.children "; diff --git a/civicrm/CRM/Contact/BAO/Query.php b/civicrm/CRM/Contact/BAO/Query.php index 98d891c5e73f4ae2fb127cb138ff44a68780b214..8642c163bc60a137a02a434177cd16a34ea3ca0b 100644 --- a/civicrm/CRM/Contact/BAO/Query.php +++ b/civicrm/CRM/Contact/BAO/Query.php @@ -1579,11 +1579,7 @@ class CRM_Contact_BAO_Query { * 4 => null * ); * - * There are some examples of the syntax in - * https://github.com/civicrm/civicrm-core/tree/master/api/v3/examples/Relationship - * * More notes at CRM_Core_DAO::createSQLFilter - * * and a list of supported operators in CRM_Core_DAO * * @param array $formValues @@ -6137,7 +6133,6 @@ AND displayRelType.is_active = 1 if (!empty($value['table'])) { $regex = "/({$value['table']}\.|{$name})/"; if (preg_match($regex, $sort)) { - $this->_elemnt[$value['element']] = 1; $this->_select[$value['element']] = $value['select']; $this->_pseudoConstantsSelect[$name]['sorting'] = 1; $present[$value['table']] = $value['join']; diff --git a/civicrm/CRM/Contact/BAO/Relationship.php b/civicrm/CRM/Contact/BAO/Relationship.php index eb45476e8684930f9f362576603f662b5e3653e8..6405520474f77eacfaaaaa8600bf7595a3a8e884 100644 --- a/civicrm/CRM/Contact/BAO/Relationship.php +++ b/civicrm/CRM/Contact/BAO/Relationship.php @@ -2040,7 +2040,7 @@ AND cc.sort_name LIKE '%$name%'"; */ public static function isCurrentEmployerNeedingToBeCleared($params, $relationshipId, $updatedRelTypeID = NULL) { $existingTypeID = (int) CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Relationship', $relationshipId, 'relationship_type_id'); - $updatedRelTypeID = $updatedRelTypeID ? $updatedRelTypeID : $existingTypeID; + $updatedRelTypeID = $updatedRelTypeID ?: $existingTypeID; $currentEmployerID = (int) civicrm_api3('Contact', 'getvalue', ['return' => 'current_employer_id', 'id' => $params['contact_id_a']]); if ($currentEmployerID !== (int) $params['contact_id_b'] || !self::isRelationshipTypeCurrentEmployer($existingTypeID)) { @@ -2274,4 +2274,25 @@ SELECT count(*) } } + /** + * @param string $entityName + * @param string $action + * @param array $record + * @param int $userID + * @return bool + * @see CRM_Core_DAO::checkAccess + */ + public static function _checkAccess(string $entityName, string $action, array $record, int $userID): bool { + // Delegate relationship permissions to contacts a & b + foreach (['a', 'b'] as $ab) { + if (empty($record["contact_id_$ab"]) && !empty($record['id'])) { + $record["contact_id_$ab"] = CRM_Core_DAO::getFieldValue(__CLASS__, $record['id'], "contact_id_$ab"); + } + if (!\Civi\Api4\Utils\CoreUtil::checkAccessDelegated('Contact', 'update', ['id' => $record["contact_id_$ab"]], $userID)) { + return FALSE; + } + } + return TRUE; + } + } diff --git a/civicrm/CRM/Contact/DAO/Contact.php b/civicrm/CRM/Contact/DAO/Contact.php index e4794d7b5fa003611b24f0ed86691b079a2d6fc7..edae63298bead15a245862c0f8e020cc701684af 100644 --- a/civicrm/CRM/Contact/DAO/Contact.php +++ b/civicrm/CRM/Contact/DAO/Contact.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Contact/Contact.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:7cbc554ead9281e6c0ce8b7865056777) + * (GenCodeChecksum:4066902548c1bc5ba4358b9e0195a3fa) */ /** @@ -728,6 +728,7 @@ class CRM_Contact_DAO_Contact extends CRM_Core_DAO { 'serialize' => self::SERIALIZE_SEPARATOR_BOOKEND, 'html' => [ 'type' => 'Select', + 'controlField' => 'contact_type', ], 'pseudoconstant' => [ 'table' => 'civicrm_contact_type', diff --git a/civicrm/CRM/Contact/DAO/Group.php b/civicrm/CRM/Contact/DAO/Group.php index 44f8d410e8d06ae581ecf51994ac407ca84c1cd6..eaf99bed2985833db089bf3d032e72698ef62b1d 100644 --- a/civicrm/CRM/Contact/DAO/Group.php +++ b/civicrm/CRM/Contact/DAO/Group.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Contact/Group.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:34853e01e303b4fe9111665cc7eb0fb5) + * (GenCodeChecksum:81bebe4ba76713e7fb6a39e7710634a4) */ /** @@ -641,7 +641,7 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO { 'keyColumn' => 'id', 'labelColumn' => 'title', 'nameColumn' => 'name', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '2.1', ], @@ -671,7 +671,7 @@ class CRM_Contact_DAO_Group extends CRM_Core_DAO { 'keyColumn' => 'id', 'labelColumn' => 'title', 'nameColumn' => 'name', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'readonly' => TRUE, 'add' => '2.1', diff --git a/civicrm/CRM/Contact/Form/Contact.php b/civicrm/CRM/Contact/Form/Contact.php index 486bf3b7dada89a1bf5ea1dc1f9d6baa5678cea7..b1395a93c85cbf53a3ee099dcc085b43e7817dc8 100644 --- a/civicrm/CRM/Contact/Form/Contact.php +++ b/civicrm/CRM/Contact/Form/Contact.php @@ -312,8 +312,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { // also keep the convention. $this->assign('contactId', $this->_contactId); - // location blocks. - CRM_Contact_Form_Location::preProcess($this); + $this->preProcessLocation(); // retain the multiple count custom fields value if (!empty($_POST['hidden_custom'])) { @@ -375,6 +374,28 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { $this->assign('paramSubType', $paramSubType ?? ''); } + private function preProcessLocation() { + $blockName = CRM_Utils_Request::retrieve('block', 'String'); + $additionalblockCount = CRM_Utils_Request::retrieve('count', 'Positive'); + + $this->assign('addBlock', FALSE); + if ($blockName && $additionalblockCount) { + $this->assign('addBlock', TRUE); + $this->assign('blockName', $blockName); + $this->assign('blockId', $additionalblockCount); + $this->set($blockName . '_Block_Count', $additionalblockCount); + } + + $this->assign('className', 'CRM_Contact_Form_Contact'); + + // get address sequence. + if (!$addressSequence = $this->get('addressSequence')) { + $addressSequence = CRM_Core_BAO_Address::addressSequence(); + $this->set('addressSequence', $addressSequence); + } + $this->assign('addressSequence', $addressSequence); + } + /** * Set default values for the form. * @@ -538,7 +559,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { */ public function addRules() { // skip adding formRules when custom data is build - if ($this->_addBlockName || ($this->_action & CRM_Core_Action::DELETE)) { + if ($this->isAjaxMode() || ($this->_action & CRM_Core_Action::DELETE)) { return; } @@ -558,6 +579,38 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { } } + /** + * Is the form being run in an ajax overload way. + * + * Overloading of existing forms to return ajax forms is an anti-pattern. We + * have removed it in some places (eg, the Payment_Form) & added separate paths. + * + * If someone does separate this out, care needs to be taken to ensure that fields added in the ajax mode + * are also added to the parent form, when separating them. ie it is important to check the + * ajax-loaded fields are in the forms values retrieved from quick form as + * quick form will filter out POST values that have not been added to the + * quick form object.. + * + * @return bool + */ + public function isAjaxMode(): bool { + return (bool) $this->getAjaxBlockName(); + } + + /** + * Get the name of any overload block being used. + * + * This would either be 'CustomData' or a location entity + * (Phone, Address, Email, etc). + * + * @return string + * @noinspection PhpDocMissingThrowsInspection + * @noinspection PhpUnhandledExceptionInspection + */ + public function getAjaxBlockName(): string { + return (string) (CRM_Utils_Request::retrieve('type', 'String') ? 'CustomData' : CRM_Utils_Request::retrieve('block', 'String')); + } + /** * Global validation rules for the form. * @@ -719,8 +772,8 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { */ public function buildQuickForm() { //load form for child blocks - if ($this->_addBlockName) { - $className = 'CRM_Contact_Form_Edit_' . $this->_addBlockName; + if ($this->isAjaxMode()) { + $className = 'CRM_Contact_Form_Edit_' . $this->getAjaxBlockName(); return $className::buildQuickForm($this); } @@ -798,7 +851,7 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { // build location blocks. CRM_Contact_Form_Edit_Lock::buildQuickForm($this); - CRM_Contact_Form_Location::buildQuickForm($this); + $this->buildLocationForm(); // add attachment $this->addField('image_URL', ['maxlength' => '255', 'label' => ts('Browse/Upload Image'), 'accept' => 'image/png, image/jpeg, image/gif']); @@ -862,6 +915,67 @@ class CRM_Contact_Form_Contact extends CRM_Core_Form { $this->addButtons($buttons); } + private function buildLocationForm(): void { + // required for subsequent AJAX requests. + $ajaxRequestBlocks = []; + $generateAjaxRequest = 0; + + //build 1 instance of all blocks, without using ajax ... + foreach ($this->_blocks as $blockName => $label) { + $name = strtolower($blockName); + + $instances = [1]; + if (!empty($_POST[$name]) && is_array($_POST[$name])) { + $instances = array_keys($_POST[$name]); + } + elseif (!empty($this->_values[$name]) && is_array($this->_values[$name])) { + $instances = array_keys($this->_values[$name]); + } + + foreach ($instances as $instance) { + if ($instance == 1) { + $this->assign('addBlock', FALSE); + $this->assign('blockId', $instance); + } + else { + //we are going to build other block instances w/ AJAX + $generateAjaxRequest++; + $ajaxRequestBlocks[$blockName][$instance] = TRUE; + } + switch ($blockName) { + case 'Email': + // setDefaults uses this to tell which instance + $this->set('Email_Block_Count', $instance); + CRM_Contact_Form_Edit_Email::buildQuickForm($this, $instance); + // Only display the signature fields if this contact has a CMS account + // because they can only send email if they have access to the CRM + $ufID = $this->_contactId && CRM_Core_BAO_UFMatch::getUFId($this->_contactId); + $this->assign('isAddSignatureFields', (bool) $ufID); + if ($ufID) { + $this->add('textarea', "email[$instance][signature_text]", ts('Signature (Text)'), + ['rows' => 2, 'cols' => 40] + ); + $this->add('wysiwyg', "email[$instance][signature_html]", ts('Signature (HTML)'), + ['rows' => 2, 'cols' => 40] + ); + } + break; + + default: + // @todo This pattern actually adds complexity compared to filling out a switch statement + // for the limited number of blocks - as we also have to receive the block count + $this->set($blockName . '_Block_Count', $instance); + $formName = 'CRM_Contact_Form_Edit_' . $blockName; + $formName::buildQuickForm($this); + } + } + } + + //assign to generate AJAX request for building extra blocks. + $this->assign('generateAjaxRequest', $generateAjaxRequest); + $this->assign('ajaxRequestBlocks', $ajaxRequestBlocks); + } + /** * Form submission of new/edit contact is processed. */ diff --git a/civicrm/CRM/Contact/Form/Domain.php b/civicrm/CRM/Contact/Form/Domain.php index 42121b0371367431f75928962b8df53228bcec11..24d6bf693bc3921c336b2e94dc7c4225028a6dc3 100644 --- a/civicrm/CRM/Contact/Form/Domain.php +++ b/civicrm/CRM/Contact/Form/Domain.php @@ -73,7 +73,6 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { $this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE, 'view' ); - CRM_Contact_Form_Location::preProcess($this); } /** @@ -121,6 +120,7 @@ class CRM_Contact_Form_Domain extends CRM_Core_Form { $this->addField('description', ['label' => ts('Description'), 'size' => 30]); //build location blocks. + $this->assign('addressSequence', CRM_Core_BAO_Address::addressSequence()); CRM_Contact_Form_Edit_Address::buildQuickForm($this, 1); CRM_Contact_Form_Edit_Email::buildQuickForm($this, 1); CRM_Contact_Form_Edit_Phone::buildQuickForm($this, 1); diff --git a/civicrm/CRM/Contact/Form/Edit/CustomData.php b/civicrm/CRM/Contact/Form/Edit/CustomData.php index 4e4830145363d03ced9918da65fccf5d64850a44..9593b39278aa7de19473bb2b6cecdaed02c74bdd 100644 --- a/civicrm/CRM/Contact/Form/Edit/CustomData.php +++ b/civicrm/CRM/Contact/Form/Edit/CustomData.php @@ -31,9 +31,8 @@ class CRM_Contact_Form_Edit_CustomData { $customDataType = CRM_Utils_Request::retrieve('type', 'String'); if ($customDataType) { - $form->_addBlockName = 'CustomData'; - $form->assign("addBlock", TRUE); - $form->assign("blockName", $form->_addBlockName); + $form->assign('addBlock', TRUE); + $form->assign('blockName', 'CustomData'); } CRM_Custom_Form_CustomData::preProcess($form, NULL, NULL, NULL, diff --git a/civicrm/CRM/Contact/Form/Location.php b/civicrm/CRM/Contact/Form/Location.php index 222cd29f9ace08fee3990b18f037b5cb700372f8..53bbd87d58caeeea0b8fa31b7674089cbc8775bc 100644 --- a/civicrm/CRM/Contact/Form/Location.php +++ b/civicrm/CRM/Contact/Form/Location.php @@ -13,52 +13,19 @@ * * @package CRM * @copyright CiviCRM LLC https://civicrm.org/licensing + * + * @deprecated in CiviCRM 5.66, will be removed around CiviCRM 5.76. */ class CRM_Contact_Form_Location { - /** - * Set variables up before form is built. - * - * @param CRM_Core_Form $form - */ - public static function preProcess($form) { - $form->_addBlockName = CRM_Utils_Request::retrieve('block', 'String'); - $additionalblockCount = CRM_Utils_Request::retrieve('count', 'Positive'); - - $form->assign('addBlock', FALSE); - if ($form->_addBlockName && $additionalblockCount) { - $form->assign('addBlock', TRUE); - $form->assign('blockName', $form->_addBlockName); - $form->assign('blockId', $additionalblockCount); - $form->set($form->_addBlockName . '_Block_Count', $additionalblockCount); - } - - if (is_a($form, 'CRM_Event_Form_ManageEvent_Location') - || is_a($form, 'CRM_Contact_Form_Domain')) { - $form->_blocks = [ - 'Address' => ts('Address'), - 'Email' => ts('Email'), - 'Phone' => ts('Phone'), - ]; - } - - $form->assign('blocks', $form->_blocks); - $form->assign('className', CRM_Utils_System::getClassName($form)); - - // get address sequence. - if (!$addressSequence = $form->get('addressSequence')) { - $addressSequence = CRM_Core_BAO_Address::addressSequence(); - $form->set('addressSequence', $addressSequence); - } - $form->assign('addressSequence', $addressSequence); - } - /** * Build the form object. * + * @deprecated in CiviCRM 5.66, will be removed around CiviCRM 5.76. * @param CRM_Core_Form $form */ public static function buildQuickForm(&$form) { + CRM_Core_Error::deprecatedFunctionWarning('internal core function, take a copy'); // required for subsequent AJAX requests. $ajaxRequestBlocks = []; $generateAjaxRequest = 0; diff --git a/civicrm/CRM/Contact/Form/Search/Builder.php b/civicrm/CRM/Contact/Form/Search/Builder.php index 2996b1f8d74177f6e3e8db257f80f289342e36a9..c65dc87d0c73628a89ab6c159094bd641e7c5fc7 100644 --- a/civicrm/CRM/Contact/Form/Search/Builder.php +++ b/civicrm/CRM/Contact/Form/Search/Builder.php @@ -917,12 +917,12 @@ class CRM_Contact_Form_Search_Builder extends CRM_Contact_Form_Search { $jsSet = TRUE; - if (CRM_Utils_Array::value($i, CRM_Utils_Array::value($x, $mappingOperator))) { - $defaults["operator[$x][$i]"] = $mappingOperator[$x][$i] ?? NULL; + if (!empty($mappingOperator[$x][$i])) { + $defaults["operator[$x][$i]"] = $mappingOperator[$x][$i]; } if (isset($mappingValue[$x][$i])) { - $defaults["value[$x][$i]"] = $mappingValue[$x][$i] ?? NULL; + $defaults["value[$x][$i]"] = $mappingValue[$x][$i]; } } } diff --git a/civicrm/CRM/Contact/Form/Task/EmailTrait.php b/civicrm/CRM/Contact/Form/Task/EmailTrait.php index 04a1b7bd575ec4a753c05ebdbe9ddeaf7af828d8..1755bbc2327fc4e39b31b4874d94189993b3bcd3 100644 --- a/civicrm/CRM/Contact/Form/Task/EmailTrait.php +++ b/civicrm/CRM/Contact/Form/Task/EmailTrait.php @@ -838,7 +838,7 @@ trait CRM_Contact_Form_Task_EmailTrait { $details = "-ALTERNATIVE ITEM 0-\n{$html}{$additionalDetails}\n-ALTERNATIVE ITEM 1-\n{$text}{$additionalDetails}\n-ALTERNATIVE END-\n"; } else { - $details = $html ? $html : $text; + $details = $html ?: $text; $details .= $additionalDetails; } diff --git a/civicrm/CRM/Contact/Form/Task/SaveSearch.php b/civicrm/CRM/Contact/Form/Task/SaveSearch.php index 8901ee49a4dc31329b5fd35b7ff7a6b9aeb80947..0014e0347965cf38c36004cb64c0fe26daf68f17 100644 --- a/civicrm/CRM/Contact/Form/Task/SaveSearch.php +++ b/civicrm/CRM/Contact/Form/Task/SaveSearch.php @@ -54,6 +54,9 @@ class CRM_Contact_Form_Task_SaveSearch extends CRM_Contact_Form_Task { $modeValue = CRM_Contact_Form_Search::getModeValue(CRM_Utils_Array::value('component_mode', $values, CRM_Contact_BAO_Query::MODE_CONTACTS)); $className = $modeValue['taskClassName']; $this->_task = $values['task'] ?? NULL; + + // Add group custom data + CRM_Custom_Form_CustomData::preProcess($this, NULL, NULL, 1, 'Group'); } /** @@ -105,6 +108,9 @@ class CRM_Contact_Form_Task_SaveSearch extends CRM_Contact_Form_Task { CRM_Group_Form_Edit::buildParentGroups($this); CRM_Group_Form_Edit::buildGroupOrganizations($this); + // Build custom data + CRM_Custom_Form_CustomData::buildQuickForm($this); + // get the group id for the saved search $groupID = NULL; if (isset($this->_id)) { @@ -210,6 +216,8 @@ class CRM_Contact_Form_Task_SaveSearch extends CRM_Contact_Form_Task { $params['id'] = CRM_Contact_BAO_SavedSearch::getName($this->_id, 'id'); } + $params['custom'] = CRM_Core_BAO_CustomField::postProcess($formValues, $this->_id, 'Group'); + $group = CRM_Contact_BAO_Group::create($params); // Update mapping with the name and description of the group. @@ -242,6 +250,7 @@ class CRM_Contact_Form_Task_SaveSearch extends CRM_Contact_Form_Task { if (empty($defaults['parents'])) { $defaults['parents'] = CRM_Core_BAO_Domain::getGroupId(); } + $defaults += CRM_Custom_Form_CustomData::setDefaultValues($this); return $defaults; } diff --git a/civicrm/CRM/Contact/Page/View/Note.php b/civicrm/CRM/Contact/Page/View/Note.php index ae4a3514886228df3a1cccf27b6ec71beb1adba2..8375a276060120105924222f3f74f0dc2069b362 100644 --- a/civicrm/CRM/Contact/Page/View/Note.php +++ b/civicrm/CRM/Contact/Page/View/Note.php @@ -50,10 +50,10 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { /** * called when action is browse. */ - public function browse() { + public function browse(): void { $note = new CRM_Core_DAO_Note(); $note->entity_table = 'civicrm_contact'; - $note->entity_id = $this->_contactId; + $note->entity_id = $this->getContactID(); $note->orderBy('modified_date desc'); @@ -80,7 +80,7 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { $action, [ 'id' => $note->id, - 'cid' => $this->_contactId, + 'cid' => $this->getContactID(), ], ts('more'), FALSE, @@ -123,7 +123,7 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { ); $this->assign('commentAction', $commentAction); - $this->ajaxResponse['tabCount'] = CRM_Contact_BAO_Contact::getCountComponent('note', $this->_contactId); + $this->ajaxResponse['tabCount'] = CRM_Contact_BAO_Contact::getCountComponent('note', $this->getContactID()); } /** @@ -135,8 +135,9 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { // set the userContext stack $session = CRM_Core_Session::singleton(); + $contactID = $this->getContactID(); $url = CRM_Utils_System::url('civicrm/contact/view', - 'action=browse&selectedChild=note&cid=' . $this->_contactId + 'action=browse&selectedChild=note&cid=' . $contactID ); $session->pushUserContext($url); @@ -250,6 +251,7 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { 'url' => 'civicrm/contact/view/note', 'qs' => 'action=add&reset=1&cid=%%cid%%&parentId=%%id%%&selectedChild=note', 'title' => ts('Add Comment'), + 'weight' => -5, ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), @@ -266,7 +268,7 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { * * @return array[] */ - public static function commentLinks() { + public static function commentLinks(): array { return [ CRM_Core_Action::VIEW => [ 'name' => ts('View'), @@ -292,4 +294,18 @@ class CRM_Contact_Page_View_Note extends CRM_Core_Page { ]; } + /** + * Get the relevant contact ID. + * + * @api supported to be accessed from outside of core. + * + * @return int + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocMissingThrowsInspection + */ + public function getContactID(): int { + return (int) CRM_Utils_Request::retrieve('cid', 'Positive', $this, TRUE); + } + } diff --git a/civicrm/CRM/Contact/Page/View/Summary.php b/civicrm/CRM/Contact/Page/View/Summary.php index 170ad5692adb10e198f97ada17d672f38f17a053..585bf193fcb849b6f489767f948ce13dc7791057 100644 --- a/civicrm/CRM/Contact/Page/View/Summary.php +++ b/civicrm/CRM/Contact/Page/View/Summary.php @@ -140,6 +140,8 @@ class CRM_Contact_Page_View_Summary extends CRM_Contact_Page_View { 'email_greeting_custom' => '', 'addressee_custom' => '', 'communication_style_display' => '', + 'email_greeting_display' => '', + 'postal_greeting_display' => '', // for Demographics.tpl 'age' => ['y' => '', 'm' => ''], 'birth_date' => '', diff --git a/civicrm/CRM/Contact/Tokens.php b/civicrm/CRM/Contact/Tokens.php index 97d87b2d93b12646f8a62510a4982b1bb2cb682b..232f8661a13893347346449b027cca81c254811d 100644 --- a/civicrm/CRM/Contact/Tokens.php +++ b/civicrm/CRM/Contact/Tokens.php @@ -641,6 +641,7 @@ class CRM_Contact_Tokens extends CRM_Core_EntityTokens { 'type' => 'calculated', 'options' => NULL, 'data_type' => 'String', + 'input_type' => NULL, 'audience' => 'user', ], 'employer_id.display_name' => [ @@ -659,6 +660,7 @@ class CRM_Contact_Tokens extends CRM_Core_EntityTokens { 'api_v3' => 'world_region', 'options' => NULL, 'data_type' => 'String', + 'input_type' => 'Text', 'advertised_name' => 'world_region', 'audience' => 'user', ], @@ -669,6 +671,7 @@ class CRM_Contact_Tokens extends CRM_Core_EntityTokens { 'type' => 'Field', 'options' => NULL, 'data_type' => 'String', + 'input_type' => 'Text', 'audience' => 'sysadmin', ], // this gets forced out if we specify individual fields @@ -678,6 +681,7 @@ class CRM_Contact_Tokens extends CRM_Core_EntityTokens { 'type' => 'Field', 'options' => NULL, 'data_type' => 'String', + 'input_type' => 'Text', 'audience' => 'sysadmin', ], ]; diff --git a/civicrm/CRM/Contribute/ActionMapping.php b/civicrm/CRM/Contribute/ActionMapping.php index ed5aaaa631862aed5152e40121772c1bab25dc9a..625fc1af586e023aecc2bd7f43841b759ef170b9 100644 --- a/civicrm/CRM/Contribute/ActionMapping.php +++ b/civicrm/CRM/Contribute/ActionMapping.php @@ -24,22 +24,23 @@ abstract class CRM_Contribute_ActionMapping extends \Civi\ActionSchedule\Mapping return 'Contribution'; } - public function getStatusHeader(): string { - return ts('Contribution Status'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + $spec->getFieldByName('entity_status') + ->setLabel(ts('Contribution Status')); } /** * Get a list of status options. * - * @param string|int $value + * @param array|null $entityValue * @return array * @throws CRM_Core_Exception */ - public function getStatusLabels($value): array { + public function getStatusLabels(?array $entityValue): array { return CRM_Contribute_BAO_Contribution::buildOptions('contribution_status_id', 'get', []); } - public function getDateFields(): array { + public function getDateFields(?array $entityValue = NULL): array { return [ 'receive_date' => ts('Receive Date'), 'cancel_date' => ts('Cancel Date'), diff --git a/civicrm/CRM/Contribute/ActionMapping/ByPage.php b/civicrm/CRM/Contribute/ActionMapping/ByPage.php index f332d6f1e90a329acd5c2d7b26b6119ff9ffb482..5cf73dbbb1c0be124f7cff888e3c65adbfd4973d 100644 --- a/civicrm/CRM/Contribute/ActionMapping/ByPage.php +++ b/civicrm/CRM/Contribute/ActionMapping/ByPage.php @@ -23,7 +23,7 @@ class CRM_Contribute_ActionMapping_ByPage extends CRM_Contribute_ActionMapping { /** * @return string */ - public function getId() { + public function getName(): string { return 'contribpage'; } @@ -36,13 +36,10 @@ class CRM_Contribute_ActionMapping_ByPage extends CRM_Contribute_ActionMapping { return ts('Contribution Page'); } - /** - * Get a printable label to use as the header on the 'value' filter. - * - * @return string - */ - public function getValueHeader(): string { - return ts('Contribution Page'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + parent::modifySpec($spec); + $spec->getFieldByName('entity_value') + ->setLabel(ts('Contribution Page')); } /** diff --git a/civicrm/CRM/Contribute/ActionMapping/ByType.php b/civicrm/CRM/Contribute/ActionMapping/ByType.php index 2cab15f81854b152b1a76c0d822f07177da15cc4..39d8c516548d41f669d3c8cac1ef1737f23ebc78 100644 --- a/civicrm/CRM/Contribute/ActionMapping/ByType.php +++ b/civicrm/CRM/Contribute/ActionMapping/ByType.php @@ -23,7 +23,7 @@ class CRM_Contribute_ActionMapping_ByType extends CRM_Contribute_ActionMapping { /** * @return string */ - public function getId() { + public function getName(): string { return 'contribtype'; } @@ -36,13 +36,12 @@ class CRM_Contribute_ActionMapping_ByType extends CRM_Contribute_ActionMapping { return ts('Contribution Type'); } - /** - * Get a printable label to use as the header on the 'value' filter. - * - * @return string - */ - public function getValueHeader(): string { - return ts('Financial Type'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + parent::modifySpec($spec); + $spec->getFieldByName('entity_value') + ->setLabel(ts('Financial Type')); + $spec->getFieldByName('recipient_listing') + ->setRequired($spec->getValue('limit_to') && $spec->getValue('recipient') === 'soft_credit_type'); } /** @@ -67,10 +66,10 @@ class CRM_Contribute_ActionMapping_ByType extends CRM_Contribute_ActionMapping { * array(string $value => string $label). * Ex: array('assignee' => 'Activity Assignee'). */ - public function getRecipientTypes(): array { - return [ - 'soft_credit_type' => ts('Soft Credit Role'), - ]; + public static function getRecipientTypes(): array { + $types = parent::getRecipientTypes(); + $types['soft_credit_type'] = ts('Soft Credit Role'); + return $types; } /** diff --git a/civicrm/CRM/Contribute/BAO/Contribution.php b/civicrm/CRM/Contribute/BAO/Contribution.php index c164c36fb56447d8781c97708a328986c7058661..928eb3a83d15a1229e4dd392882e0eae2734c171 100644 --- a/civicrm/CRM/Contribute/BAO/Contribution.php +++ b/civicrm/CRM/Contribute/BAO/Contribution.php @@ -1029,6 +1029,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution im 'class' => 'medium-popup', 'qs' => "reset=1&id=%%id%%&contribution_id=%%contribution_id%%", 'title' => ts('Edit Payment'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], ]; $paymentEditLink = CRM_Core_Action::formLink( @@ -1152,7 +1153,7 @@ class CRM_Contribute_BAO_Contribution extends CRM_Contribute_DAO_Contribution im INNER JOIN civicrm_contact contact ON ( contact.id = c.contact_id ) $financialTypeACLJoin WHERE $whereCond - AND ( is_test = 0 OR is_test IS NULL ) + AND is_test = 0 AND contact.is_deleted = 0 GROUP BY currency "; @@ -2063,7 +2064,10 @@ LEFT JOIN civicrm_contribution contribution ON ( componentPayment.contribution_ LEFT JOIN civicrm_participant p ON pp.participant_id = p.id LEFT JOIN civicrm_membership m ON m.id = mp.membership_id LEFT JOIN civicrm_pledge_payment pgp ON pgp.contribution_id = c.id - WHERE c.id = $contributionId"; + WHERE c.id = $contributionId + -- only get the primary recipient + AND (p.registered_by_id IS NULL OR p.registered_by_id = 0) + "; $dao = CRM_Core_DAO::executeQuery($query); $componentDetails = []; @@ -2498,22 +2502,17 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac * messages * @throws \CRM_Core_Exception */ - public function composeMessageArray(&$input, &$ids, &$values, $returnMessageText = TRUE) { + public function composeMessageArray($input, $ids, $values = [], $returnMessageText = TRUE) { $ids = array_merge(self::getComponentDetails($this->id), $ids); if (empty($ids['contact']) && isset($this->contact_id)) { $ids['contact'] = $this->contact_id; } - - if (empty($this->_component)) { - if (!empty($ids['event'])) { - $this->_component = 'event'; - } - else { - $this->_component = $input['component'] ?? 'contribute'; - } + if (!empty($ids['event'])) { + $this->_component = 'event'; + } + else { + $this->_component = 'contribute'; } - // @todo remove strtolower - check consistency - $this->_component = strtolower($this->_component); // If the object is not fully populated then make sure it is - this is a more about legacy paths & cautious // refactoring than anything else, and has unit test coverage. @@ -2535,9 +2534,11 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac $this->loadRelatedObjects($paymentProcessorID, $ids); $paymentProcessor = $this->_relatedObjects['paymentProcessor'] ?? NULL; + $eventID = isset($ids['event']) ? (int) $ids['event'] : NULL; + $participantID = isset($ids['participant']) ? (int) $ids['participant'] : NULL; //not really sure what params might be passed in but lets merge em into values - $values = array_merge($this->_gatherMessageValues($input, $values, $ids), $values); + $values = array_merge($this->_gatherMessageValues($values, $eventID, $participantID), $values); $values['is_email_receipt'] = !$returnMessageText; foreach (['receipt_date', 'cc_receipt', 'bcc_receipt', 'receipt_from_name', 'receipt_from_email', 'receipt_text', 'pay_later_receipt'] as $fld) { if (!empty($input[$fld])) { @@ -2571,7 +2572,6 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac } if ($this->_component === 'event') { - $eventID = $this->_relatedObjects['participant']->event_id; $eventParams = ['id' => $eventID]; $values['event'] = []; @@ -2612,7 +2612,7 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac } return CRM_Event_BAO_Event::sendMail($ids['contact'], $values, - $this->_relatedObjects['participant']->id, $this->is_test, $returnMessageText + $participantID, $this->is_test, $returnMessageText ); } else { @@ -2688,16 +2688,14 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac * as part of CRM-9996 refactoring as a step towards simplifying the composeMessage function * Values related to the contribution in question are gathered * - * @param array $input - * Input into function (probably from payment processor). * @param array $values - * @param array $ids - * The set of ids related to the input. + * @param int|null $eventID + * @param int|null $participantID * * @return array * @throws \CRM_Core_Exception */ - public function _gatherMessageValues($input, &$values, $ids = []) { + public function _gatherMessageValues($values, ?int $eventID, ?int $participantID) { // set display address of contributor $values['billingName'] = ''; if ($this->address_id) { @@ -2773,11 +2771,11 @@ INNER JOIN civicrm_activity ON civicrm_activity_contact.activity_id = civicrm_ac ); // if this is onbehalf of contribution then set related contact if (!empty($relatedContact['individual_id'])) { - $values['related_contact'] = $ids['related_contact'] = $relatedContact['individual_id']; + $values['related_contact'] = $relatedContact['individual_id']; } } else { - $values = array_merge($values, $this->loadEventMessageTemplateParams((int) $ids['event'], (int) $this->_relatedObjects['participant']->id, $this->id)); + $values = array_merge($values, $this->loadEventMessageTemplateParams($eventID, $participantID, $this->id)); } $groupTree = CRM_Core_BAO_CustomGroup::getTree('Contribution', NULL, $this->id); @@ -4311,6 +4309,7 @@ LIMIT 1;"; 'is_refund' => 0, ], 'extra' => '', + 'weight' => 0, ]; if (CRM_Core_Config::isEnabledBackOfficeCreditCardPayments()) { @@ -4328,6 +4327,7 @@ LIMIT 1;"; 'mode' => 'live', ], 'extra' => '', + 'weight' => 0, ]; } if ($contributionStatus !== 'Pending') { @@ -4344,6 +4344,7 @@ LIMIT 1;"; 'is_refund' => 1, ], 'extra' => '', + 'weight' => 0, ]; } diff --git a/civicrm/CRM/Contribute/BAO/Contribution/Utils.php b/civicrm/CRM/Contribute/BAO/Contribution/Utils.php index c14439d7ab29c032d6ea1f6c228e45d5c81bceb4..6a6996ff0579c3fcd38b38919a22e08b3922ae1d 100644 --- a/civicrm/CRM/Contribute/BAO/Contribution/Utils.php +++ b/civicrm/CRM/Contribute/BAO/Contribution/Utils.php @@ -40,7 +40,7 @@ class CRM_Contribute_BAO_Contribution_Utils { FROM civicrm_contribution AS contrib INNER JOIN civicrm_contact AS contact ON ( contact.id = contrib.contact_id ) WHERE contrib.contact_id = contact.id - AND ( contrib.is_test = 0 OR contrib.is_test IS NULL ) + AND contrib.is_test = 0 AND contrib.contribution_status_id = 1 AND date_format(contrib.receive_date,'%Y') = %1 AND contact.is_deleted = 0 @@ -83,7 +83,7 @@ INNER JOIN civicrm_contact AS contact ON ( contact.id = contrib.contact_id ) {$yearClause} FROM civicrm_contribution AS contrib INNER JOIN civicrm_contact contact ON ( contact.id = contrib.contact_id ) - WHERE ( contrib.is_test = 0 OR contrib.is_test IS NULL ) + WHERE contrib.is_test = 0 AND contrib.contribution_status_id = 1 AND contact.is_deleted = 0 GROUP BY contribYear diff --git a/civicrm/CRM/Contribute/BAO/Query.php b/civicrm/CRM/Contribute/BAO/Query.php index ac6ea213b47266d6c5df222db622da5b37bea939..1abf33ef4feedbac630c094363b35edd356cf595 100644 --- a/civicrm/CRM/Contribute/BAO/Query.php +++ b/civicrm/CRM/Contribute/BAO/Query.php @@ -985,7 +985,7 @@ class CRM_Contribute_BAO_Query extends CRM_Core_BAO_Query { ] ); - $form->addField('financial_trxn_card_type_id', ['entity' => 'FinancialTrxn', 'name' => 'card_type_id', 'action' => 'get']); + $form->addField('financial_trxn_card_type_id', ['entity' => 'FinancialTrxn', 'name' => 'card_type_id', 'action' => 'get', 'label' => ts('Card Type')]); $form->add('text', 'financial_trxn_pan_truncation', ts('Card Number'), [ 'size' => 5, diff --git a/civicrm/CRM/Contribute/DAO/Contribution.php b/civicrm/CRM/Contribute/DAO/Contribution.php index 6fc472c9b29f45db8789212cb6fcf5d5d8cc5d7d..6751a2386797caea4cdb0cd73fa9326b76451b79 100644 --- a/civicrm/CRM/Contribute/DAO/Contribution.php +++ b/civicrm/CRM/Contribute/DAO/Contribution.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Contribute/Contribution.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:4816aa376fc64fa748237d9eb9b68e01) + * (GenCodeChecksum:f62008d2fa8bae5fcc90e9fa11cf9591) */ /** @@ -291,7 +291,7 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO { /** * Total tax amount of this contribution. * - * @var float|string|null + * @var float|string * (SQL type: decimal(20,2)) * Note that values will be retrieved from the database as a string. */ @@ -1103,7 +1103,7 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], @@ -1138,6 +1138,7 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_MONEY, 'title' => ts('Tax Amount'), 'description' => ts('Total tax amount of this contribution.'), + 'required' => TRUE, 'precision' => [ 20, 2, @@ -1153,6 +1154,7 @@ class CRM_Contribute_DAO_Contribution extends CRM_Core_DAO { 'headerPattern' => '/tax(.?am(ou)?nt)?/i', 'dataPattern' => '/^\d+(\.\d{2})?$/', 'export' => TRUE, + 'default' => '0', 'table_name' => 'civicrm_contribution', 'entity' => 'Contribution', 'bao' => 'CRM_Contribute_BAO_Contribution', diff --git a/civicrm/CRM/Contribute/DAO/ContributionPage.php b/civicrm/CRM/Contribute/DAO/ContributionPage.php index bf312769510dc8e39689034d4f291624dd56687e..7ce4c8cc85111db8e714e32602587dd6b576510c 100644 --- a/civicrm/CRM/Contribute/DAO/ContributionPage.php +++ b/civicrm/CRM/Contribute/DAO/ContributionPage.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Contribute/ContributionPage.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:7d36798b74d9cf8912d4b23b5abe2fc8) + * (GenCodeChecksum:84e81e764d43c0d0116ae54d90a18a84) */ /** @@ -904,6 +904,8 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_TEXT, 'title' => ts('Pay Later Receipt'), 'description' => ts('The receipt sent to the user instead of the normal receipt text'), + 'rows' => 8, + 'cols' => 60, 'usage' => [ 'import' => FALSE, 'export' => FALSE, @@ -915,6 +917,9 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO { 'entity' => 'ContributionPage', 'bao' => 'CRM_Contribute_BAO_ContributionPage', 'localizable' => 1, + 'html' => [ + 'type' => 'RichTextEditor', + ], 'add' => '2.0', ], 'is_partial_payment' => [ @@ -1503,7 +1508,7 @@ class CRM_Contribute_DAO_ContributionPage extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Contribute/DAO/ContributionRecur.php b/civicrm/CRM/Contribute/DAO/ContributionRecur.php index 21d7c21f09eaad0604f3d603386c9260e029cc51..013862e7e03eed5b28e4e92965b0ff88ab63d7a7 100644 --- a/civicrm/CRM/Contribute/DAO/ContributionRecur.php +++ b/civicrm/CRM/Contribute/DAO/ContributionRecur.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Contribute/ContributionRecur.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:f633ecacb25c131d5a07f8c30a169204) + * (GenCodeChecksum:d12951f50f11d6868ebb04fe6f3d9707) */ /** @@ -1018,7 +1018,7 @@ class CRM_Contribute_DAO_ContributionRecur extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '4.1', ], diff --git a/civicrm/CRM/Contribute/Form/AbstractEditPayment.php b/civicrm/CRM/Contribute/Form/AbstractEditPayment.php index 90b2fe152257dd066f0ec7a12ec45c14357655ae..b9ff55e169882bb33325a82a6e2f0eba8b15676b 100644 --- a/civicrm/CRM/Contribute/Form/AbstractEditPayment.php +++ b/civicrm/CRM/Contribute/Form/AbstractEditPayment.php @@ -262,12 +262,7 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task { * @throws \CRM_Core_Exception */ public function preProcess() { - $this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this); - if (empty($this->_contactID) && !empty($this->_id) && $this->entity) { - $this->_contactID = civicrm_api3($this->entity, 'getvalue', ['id' => $this->_id, 'return' => 'contact_id']); - } - $this->assign('contactID', $this->_contactID); - CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $this->_contactID]); + $this->assignContactID(); $this->_action = CRM_Utils_Request::retrieve('action', 'String', $this, FALSE, 'add'); $this->_mode = empty($this->_mode) ? CRM_Utils_Request::retrieve('mode', 'Alphanumeric', $this) : $this->_mode; $this->assign('isBackOffice', $this->isBackOffice); @@ -275,6 +270,24 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task { $this->assignPaymentRelatedVariables(); } + /** + * Get the contact ID in use. + * + * Ideally override this as appropriate to the form. + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocSignatureIsNotCompleteInspection + */ + public function getContactID():?int { + if ($this->_contactID === NULL) { + $this->_contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this); + if (empty($this->_contactID) && !empty($this->_id) && $this->entity) { + $this->_contactID = civicrm_api3($this->entity, 'getvalue', ['id' => $this->_id, 'return' => 'contact_id']); + } + } + return $this->_contactID ? (int) $this->_contactID : NULL; + } + /** * @param int $id */ @@ -410,82 +423,6 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task { return $submittedValues['currency'] ?? $this->_values['currency'] ?? CRM_Core_Config::singleton()->defaultCurrency; } - public function preProcessPledge() { - //get the payment values associated with given pledge payment id OR check for payments due. - $this->_pledgeValues = []; - if ($this->_ppID) { - $payParams = ['id' => $this->_ppID]; - - CRM_Pledge_BAO_PledgePayment::retrieve($payParams, $this->_pledgeValues['pledgePayment']); - $this->_pledgeID = $this->_pledgeValues['pledgePayment']['pledge_id'] ?? NULL; - $paymentStatusID = $this->_pledgeValues['pledgePayment']['status_id'] ?? NULL; - $this->_id = $this->_pledgeValues['pledgePayment']['contribution_id'] ?? NULL; - - //get all status - $allStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); - if (!($paymentStatusID == array_search('Pending', $allStatus) || $paymentStatusID == array_search('Overdue', $allStatus))) { - CRM_Core_Error::statusBounce(ts("Pledge payment status should be 'Pending' or 'Overdue'.")); - } - - //get the pledge values associated with given pledge payment. - - $ids = []; - $pledgeParams = ['id' => $this->_pledgeID]; - CRM_Pledge_BAO_Pledge::getValues($pledgeParams, $this->_pledgeValues, $ids); - $this->assign('ppID', $this->_ppID); - } - else { - // Not making a pledge payment, so if adding a new contribution we should check if pledge payment(s) are due for this contact so we can alert the user. CRM-5206 - if (isset($this->_contactID)) { - $contactPledges = CRM_Pledge_BAO_Pledge::getContactPledges($this->_contactID); - - if (!empty($contactPledges)) { - $payments = $paymentsDue = NULL; - $multipleDue = FALSE; - foreach ($contactPledges as $key => $pledgeId) { - $payments = CRM_Pledge_BAO_PledgePayment::getOldestPledgePayment($pledgeId); - if ($payments) { - if ($paymentsDue) { - $multipleDue = TRUE; - break; - } - else { - $paymentsDue = $payments; - } - } - } - if ($multipleDue) { - // Show link to pledge tab since more than one pledge has a payment due - $pledgeTab = CRM_Utils_System::url('civicrm/contact/view', - "reset=1&force=1&cid={$this->_contactID}&selectedChild=pledge" - ); - CRM_Core_Session::setStatus(ts('This contact has pending or overdue pledge payments. <a href="%1">Click here to view their Pledges tab</a> and verify whether this contribution should be applied as a pledge payment.', [1 => $pledgeTab]), ts('Notice'), 'alert'); - } - elseif ($paymentsDue) { - // Show user link to oldest Pending or Overdue pledge payment - $ppAmountDue = CRM_Utils_Money::format($payments['amount'], $payments['currency']); - $ppSchedDate = CRM_Utils_Date::customFormat(CRM_Core_DAO::getFieldValue('CRM_Pledge_DAO_PledgePayment', $payments['id'], 'scheduled_date')); - if ($this->_mode) { - $ppUrl = CRM_Utils_System::url('civicrm/contact/view/contribution', - "reset=1&action=add&cid={$this->_contactID}&ppid={$payments['id']}&context=pledge&mode=live" - ); - } - else { - $ppUrl = CRM_Utils_System::url('civicrm/contact/view/contribution', - "reset=1&action=add&cid={$this->_contactID}&ppid={$payments['id']}&context=pledge" - ); - } - CRM_Core_Session::setStatus(ts('This contact has a pending or overdue pledge payment of %2 which is scheduled for %3. <a href="%1">Click here to enter a pledge payment</a>.', [ - 1 => $ppUrl, - 2 => $ppAmountDue, - 3 => $ppSchedDate, - ]), ts('Notice'), 'alert'); - } - } - } - } - } - /** * @param array $submittedValues * @@ -620,7 +557,7 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task { $fields["email-{$this->_bltID}"] = 1; } - list($hasBillingField, $addressParams) = CRM_Contribute_BAO_Contribution::getPaymentProcessorReadyAddressParams($this->_params, $this->_bltID); + [$hasBillingField, $addressParams] = CRM_Contribute_BAO_Contribution::getPaymentProcessorReadyAddressParams($this->_params, $this->_bltID); $fields = $this->formatParamsForPaymentProcessor($fields); if ($hasBillingField) { @@ -735,13 +672,19 @@ class CRM_Contribute_Form_AbstractEditPayment extends CRM_Contact_Form_Task { } protected function assignContactEmailDetails() { - if ($this->_contactID) { - list($this->userDisplayName, $this->userEmail) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactID); - if (empty($this->userDisplayName)) { - $this->userDisplayName = civicrm_api3('contact', 'getvalue', ['id' => $this->_contactID, 'return' => 'display_name']); + if ($this->getContactID()) { + [$displayName, $this->userEmail] = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->getContactID()); + if (!$displayName) { + $displayName = civicrm_api3('contact', 'getvalue', ['id' => $this->getContactID(), 'return' => 'display_name']); } - $this->assign('displayName', $this->userDisplayName); + $this->assign('displayName', $displayName); } } + protected function assignContactID(): void { + $this->assign('contactID', $this->getContactID()); + CRM_Core_Resources::singleton() + ->addVars('coreForm', ['contact_id' => (int) $this->getContactID()]); + } + } diff --git a/civicrm/CRM/Contribute/Form/AdditionalInfo.php b/civicrm/CRM/Contribute/Form/AdditionalInfo.php index 2d451f782ce0a1ff86eb6560740e242491130b45..86b0e9457265cd61d5915ec975c646b6178a6e93 100644 --- a/civicrm/CRM/Contribute/Form/AdditionalInfo.php +++ b/civicrm/CRM/Contribute/Form/AdditionalInfo.php @@ -255,7 +255,7 @@ class CRM_Contribute_Form_AdditionalInfo { $noteID = []; if ($contributionNoteID) { $noteID = ["id" => $contributionNoteID]; - $noteParams['note'] = $noteParams['note'] ? $noteParams['note'] : "null"; + $noteParams['note'] = $noteParams['note'] ?: "null"; } CRM_Core_BAO_Note::add($noteParams, $noteID); } diff --git a/civicrm/CRM/Contribute/Form/AdditionalPayment.php b/civicrm/CRM/Contribute/Form/AdditionalPayment.php index bbf41548d04678cf51f46d47e6e6cfae868a9b72..de5821dc04f30b4cb92a7b6008f363582ef1cb39 100644 --- a/civicrm/CRM/Contribute/Form/AdditionalPayment.php +++ b/civicrm/CRM/Contribute/Form/AdditionalPayment.php @@ -368,11 +368,11 @@ class CRM_Contribute_Form_AdditionalPayment extends CRM_Contribute_Form_Abstract $session = CRM_Core_Session::singleton(); // we need to retrieve email address - if ($this->_context == 'standalone' && !empty($this->_params['is_email_receipt'])) { - list($this->userDisplayName, + if ($this->_context === 'standalone' && !empty($this->_params['is_email_receipt'])) { + list($displayName, $this->userEmail ) = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactId); - $this->assign('displayName', $this->userDisplayName); + $this->assign('displayName', $displayName); } $this->_params['amount'] = $this->_params['total_amount']; diff --git a/civicrm/CRM/Contribute/Form/Contribution.php b/civicrm/CRM/Contribute/Form/Contribution.php index b1f3a66511b41c8992c95a7c350fc67222165fdc..b35e3d1f224a383f14db0627aa59403f48b5d42d 100644 --- a/civicrm/CRM/Contribute/Form/Contribution.php +++ b/civicrm/CRM/Contribute/Form/Contribution.php @@ -330,6 +330,82 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP } } + private function preProcessPledge(): void { + //get the payment values associated with given pledge payment id OR check for payments due. + $this->_pledgeValues = []; + if ($this->_ppID) { + $payParams = ['id' => $this->_ppID]; + + CRM_Pledge_BAO_PledgePayment::retrieve($payParams, $this->_pledgeValues['pledgePayment']); + $this->_pledgeID = $this->_pledgeValues['pledgePayment']['pledge_id'] ?? NULL; + $paymentStatusID = $this->_pledgeValues['pledgePayment']['status_id'] ?? NULL; + $this->_id = $this->_pledgeValues['pledgePayment']['contribution_id'] ?? NULL; + + //get all status + $allStatus = CRM_Contribute_PseudoConstant::contributionStatus(NULL, 'name'); + if (!($paymentStatusID == array_search('Pending', $allStatus) || $paymentStatusID == array_search('Overdue', $allStatus))) { + CRM_Core_Error::statusBounce(ts("Pledge payment status should be 'Pending' or 'Overdue'.")); + } + + //get the pledge values associated with given pledge payment. + + $ids = []; + $pledgeParams = ['id' => $this->_pledgeID]; + CRM_Pledge_BAO_Pledge::getValues($pledgeParams, $this->_pledgeValues, $ids); + $this->assign('ppID', $this->_ppID); + } + else { + // Not making a pledge payment, so if adding a new contribution we should check if pledge payment(s) are due for this contact so we can alert the user. CRM-5206 + if (isset($this->_contactID)) { + $contactPledges = CRM_Pledge_BAO_Pledge::getContactPledges($this->_contactID); + + if (!empty($contactPledges)) { + $payments = $paymentsDue = NULL; + $multipleDue = FALSE; + foreach ($contactPledges as $key => $pledgeId) { + $payments = CRM_Pledge_BAO_PledgePayment::getOldestPledgePayment($pledgeId); + if ($payments) { + if ($paymentsDue) { + $multipleDue = TRUE; + break; + } + else { + $paymentsDue = $payments; + } + } + } + if ($multipleDue) { + // Show link to pledge tab since more than one pledge has a payment due + $pledgeTab = CRM_Utils_System::url('civicrm/contact/view', + "reset=1&force=1&cid={$this->_contactID}&selectedChild=pledge" + ); + CRM_Core_Session::setStatus(ts('This contact has pending or overdue pledge payments. <a href="%1">Click here to view their Pledges tab</a> and verify whether this contribution should be applied as a pledge payment.', [1 => $pledgeTab]), ts('Notice'), 'alert'); + } + elseif ($paymentsDue) { + // Show user link to oldest Pending or Overdue pledge payment + $ppAmountDue = CRM_Utils_Money::format($payments['amount'], $payments['currency']); + $ppSchedDate = CRM_Utils_Date::customFormat(CRM_Core_DAO::getFieldValue('CRM_Pledge_DAO_PledgePayment', $payments['id'], 'scheduled_date')); + if ($this->_mode) { + $ppUrl = CRM_Utils_System::url('civicrm/contact/view/contribution', + "reset=1&action=add&cid={$this->_contactID}&ppid={$payments['id']}&context=pledge&mode=live" + ); + } + else { + $ppUrl = CRM_Utils_System::url('civicrm/contact/view/contribution', + "reset=1&action=add&cid={$this->_contactID}&ppid={$payments['id']}&context=pledge" + ); + } + CRM_Core_Session::setStatus(ts('This contact has a pending or overdue pledge payment of %2 which is scheduled for %3. <a href="%1">Click here to enter a pledge payment</a>.', [ + 1 => $ppUrl, + 2 => $ppAmountDue, + 3 => $ppSchedDate, + ]), ts('Notice'), 'alert'); + } + } + } + } + } + /** * Set default values. * @@ -542,7 +618,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP } $this->set('priceSetId', $this->_priceSetId); - CRM_Price_BAO_PriceSet::buildPriceSet($this); + CRM_Price_BAO_PriceSet::buildPriceSet($this, 'contribution', FALSE); // get only price set form elements. if ($getOnlyPriceSetElements) { @@ -579,18 +655,17 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP $defaults['hidden_AdditionalDetail'] = 1; } - $paneNames = []; if (empty($this->_payNow)) { - $paneNames[ts('Additional Details')] = 'AdditionalDetail'; - } - - //Add Premium pane only if Premium is exists. - $dao = new CRM_Contribute_DAO_Product(); - $dao->is_active = 1; + $allPanes = [ts('Additional Details') => $this->generatePane('AdditionalDetail', $defaults)]; + //Add Premium pane only if Premium is exists. + $dao = new CRM_Contribute_DAO_Product(); + $dao->is_active = 1; - if ($dao->find(TRUE) && empty($this->_payNow)) { - $paneNames[ts('Premium Information')] = 'Premium'; + if ($dao->find(TRUE)) { + $allPanes[ts('Premium Information')] = $this->generatePane('Premium', $defaults); + } } + $this->assign('allPanes', $allPanes ?: []); $this->payment_instrument_id = $defaults['payment_instrument_id'] ?? $this->getDefaultPaymentInstrumentId(); CRM_Core_Payment_Form::buildPaymentForm($this, $this->_paymentProcessor, FALSE, TRUE, $this->payment_instrument_id); @@ -614,13 +689,8 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP } $this->addPaymentProcessorSelect(FALSE, $buildRecurBlock); - foreach ($paneNames as $name => $type) { - $allPanes[$name] = $this->generatePane($type, $defaults); - } - $qfKey = $this->controller->_key; $this->assign('qfKey', $qfKey); - $this->assign('allPanes', $allPanes); $this->addFormRule(['CRM_Contribute_Form_Contribution', 'formRule'], $this); $this->assign('formType', $this->_formType); @@ -1380,8 +1450,7 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP * This appears to mean 'there is a pane to show'. * * @param string $type - * Type of Pane - this is generally used to determine the function name used to build it - * - e.g CreditCard, AdditionalDetail + * Type of Pane - only options are AdditionalDetail or Premium * @param array $defaults * * @return array @@ -1395,16 +1464,9 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP $urlParams .= "&mode={$this->_mode}"; } - $open = 'false'; - if ($type == 'CreditCard' || - $type == 'DirectDebit' - ) { - $open = 'true'; - } - $pane = [ 'url' => CRM_Utils_System::url('civicrm/contact/view/contribution', $urlParams), - 'open' => $open, + 'open' => 'false', 'id' => $type, ]; @@ -1415,18 +1477,9 @@ class CRM_Contribute_Form_Contribution extends CRM_Contribute_Form_AbstractEditP $this->assign('showAdditionalInfo', TRUE); $pane['open'] = 'true'; } - - if ($type == 'CreditCard' || $type == 'DirectDebit') { - // @todo would be good to align tpl name with form name... - // @todo document why this hidden variable is required. - $this->add('hidden', 'hidden_' . $type, 1); - return $pane; - } - else { - $additionalInfoFormFunction = 'build' . $type; - CRM_Contribute_Form_AdditionalInfo::$additionalInfoFormFunction($this); - return $pane; - } + $additionalInfoFormFunction = 'build' . $type; + CRM_Contribute_Form_AdditionalInfo::$additionalInfoFormFunction($this); + return $pane; } /** diff --git a/civicrm/CRM/Contribute/Form/Contribution/Main.php b/civicrm/CRM/Contribute/Form/Contribution/Main.php index 0505ba536c6d6dfd43aa2f619c4ace152c2b1d49..38f9126f70cfe26282a587fd32c4b41b3d4de98a 100644 --- a/civicrm/CRM/Contribute/Form/Contribution/Main.php +++ b/civicrm/CRM/Contribute/Form/Contribution/Main.php @@ -1235,11 +1235,6 @@ class CRM_Contribute_Form_Contribution_Main extends CRM_Contribute_Form_Contribu // Would be nice to someday understand the point of this set. $this->set('is_pay_later', $params['is_pay_later']); - // assign pay later stuff - $this->_params['is_pay_later'] = $params['is_pay_later']; - $this->assign('is_pay_later', $params['is_pay_later']); - $this->assign('pay_later_text', $params['is_pay_later'] ? $this->_values['pay_later_text'] : NULL); - $this->assign('pay_later_receipt', ($params['is_pay_later'] && isset($this->_values['pay_later_receipt'])) ? $this->_values['pay_later_receipt'] : NULL); if ($this->_membershipBlock && $this->_membershipBlock['is_separate_payment'] && !empty($params['separate_amount'])) { $this->set('amount', $params['separate_amount']); diff --git a/civicrm/CRM/Contribute/Form/ContributionBase.php b/civicrm/CRM/Contribute/Form/ContributionBase.php index 36422a48f3b8fcb083f630d3e254c782fb27f152..b1972d0060e95dc5e65f1ba3b2067832d2ec24ce 100644 --- a/civicrm/CRM/Contribute/Form/ContributionBase.php +++ b/civicrm/CRM/Contribute/Form/ContributionBase.php @@ -138,8 +138,6 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { */ public $_contactID; - protected $_userID; - /** * The Membership ID for membership renewal * @@ -293,9 +291,6 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { } $this->_emailExists = $this->get('emailExists'); - // this was used prior to the cleverer this_>getContactID - unsure now - $this->_userID = CRM_Core_Session::getLoggedInContactID(); - $this->_contactID = $this->_membershipContactID = $this->getContactID(); $this->getRenewalMembershipID(); @@ -307,7 +302,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { $this->_defaultMemTypeId = $membership->membership_type_id; if ($membership->contact_id != $this->_contactID) { $validMembership = FALSE; - $organizations = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->_userID, NULL, NULL, 'Organization'); + $organizations = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->getAuthenticatedContactID(), NULL, NULL, 'Organization'); if (!empty($organizations) && array_key_exists($membership->contact_id, $organizations)) { $this->_membershipContactID = $membership->contact_id; $this->assign('membershipContactID', $this->_membershipContactID); @@ -320,8 +315,8 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { if ($membershipType->find(TRUE)) { // CRM-14051 - membership_type.relationship_type_id is a CTRL-A padded string w one or more ID values. // Convert to comma separated list. - $inheritedRelTypes = implode(CRM_Utils_Array::explodePadded($membershipType->relationship_type_id), ','); - $permContacts = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->_userID, $membershipType->relationship_type_id); + $inheritedRelTypes = implode(',', CRM_Utils_Array::explodePadded($membershipType->relationship_type_id)); + $permContacts = CRM_Contact_BAO_Relationship::getPermissionedContacts($this->getAuthenticatedContactID(), $membershipType->relationship_type_id); if (array_key_exists($membership->contact_id, $permContacts)) { $this->_membershipContactID = $membership->contact_id; $validMembership = TRUE; @@ -1094,7 +1089,7 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { */ public function overrideExtraTemplateFileName() { $fileName = $this->checkTemplateFileExists('extra.'); - return $fileName ? $fileName : parent::overrideExtraTemplateFileName(); + return $fileName ?: parent::overrideExtraTemplateFileName(); } /** @@ -1122,8 +1117,11 @@ class CRM_Contribute_Form_ContributionBase extends CRM_Core_Form { ]; $validUser = FALSE; - if ($this->_userID && - $this->_userID == $pledgeValues['contact_id'] + // @todo - override getRequestedContactID to add in checking pledge values, then + // getContactID will do all this. + $userID = CRM_Core_Session::getLoggedInContactID(); + if ($userID && + $userID == $pledgeValues['contact_id'] ) { //check for authenticated user. $validUser = TRUE; diff --git a/civicrm/CRM/Contribute/Form/ContributionPage/TabHeader.php b/civicrm/CRM/Contribute/Form/ContributionPage/TabHeader.php index c103759321bc4fd732c7510c1e55c95f7ef451cc..1344cbb441ef814bde40f17fb0f1ce12d49e73ec 100644 --- a/civicrm/CRM/Contribute/Form/ContributionPage/TabHeader.php +++ b/civicrm/CRM/Contribute/Form/ContributionPage/TabHeader.php @@ -179,7 +179,7 @@ class CRM_Contribute_Form_ContributionPage_TabHeader { } } - $current = $current ? $current : 'settings'; + $current = $current ?: 'settings'; return $current; } diff --git a/civicrm/CRM/Contribute/Page/ContributionPage.php b/civicrm/CRM/Contribute/Page/ContributionPage.php index 0ebc82cfcde138af847afa1782c4c9d5d3a3db76..89de378665002e442f54f76cdae761060a6df39b 100644 --- a/civicrm/CRM/Contribute/Page/ContributionPage.php +++ b/civicrm/CRM/Contribute/Page/ContributionPage.php @@ -67,16 +67,19 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'qs' => 'action=copy&gid=%%id%%', 'title' => ts('Make a Copy of CiviCRM Contribution Page'), 'extra' => 'onclick = "return confirm(\'' . $copyExtra . '\');"', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::COPY), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'title' => ts('Disable'), 'ref' => 'crm-enable-disable', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), @@ -84,6 +87,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'qs' => 'action=delete&reset=1&id=%%id%%', 'title' => ts('Delete Custom Field'), 'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } @@ -108,6 +112,8 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'settings', 'qs' => $urlParams, 'uniqueName' => 'settings', + // This needs to be lower than Membership Settings since otherwise the order doesn't make sense. + 'weight' => -20, ], CRM_Core_Action::UPDATE => [ 'name' => ts('Contribution Amounts'), @@ -115,6 +121,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'amount', 'qs' => $urlParams, 'uniqueName' => 'amount', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::VIEW => [ 'name' => ts('Membership Settings'), @@ -122,6 +129,8 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'membership', 'qs' => $urlParams, 'uniqueName' => 'membership', + // This should come after Title + 'weight' => 0, ], CRM_Core_Action::EXPORT => [ 'name' => ts('Thank-you and Receipting'), @@ -129,6 +138,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'thankyou', 'qs' => $urlParams, 'uniqueName' => 'thankyou', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::EXPORT), ], CRM_Core_Action::BASIC => [ 'name' => ts('Tell a Friend'), @@ -136,6 +146,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'friend', 'qs' => $urlParams, 'uniqueName' => 'friend', + 'weight' => 10, ], CRM_Core_Action::PROFILE => [ 'name' => ts('Include Profiles'), @@ -143,6 +154,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'custom', 'qs' => $urlParams, 'uniqueName' => 'custom', + 'weight' => 20, ], CRM_Core_Action::MAP => [ 'name' => ts('Contribution Widget'), @@ -150,6 +162,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'widget', 'qs' => $urlParams, 'uniqueName' => 'widget', + 'weight' => 30, ], CRM_Core_Action::FOLLOWUP => [ 'name' => ts('Premiums'), @@ -157,6 +170,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'premium', 'qs' => $urlParams, 'uniqueName' => 'premium', + 'weight' => 40, ], CRM_Core_Action::ADVANCED => [ 'name' => ts('Personal Campaign Pages'), @@ -164,6 +178,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString . 'pcp', 'qs' => $urlParams, 'uniqueName' => 'pcp', + 'weight' => 50, ], ]; $context = [ @@ -193,6 +208,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'qs' => $urlParams, 'fe' => TRUE, 'uniqueName' => 'live_page', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::RENEW), ], CRM_Core_Action::PREVIEW => [ 'name' => ts('Test-drive'), @@ -202,6 +218,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { // Addresses https://lab.civicrm.org/dev/core/issues/658 'fe' => TRUE, 'uniqueName' => 'test_drive', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::PREVIEW), ], ]; } @@ -233,6 +250,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString, 'qs' => "{$urlParams}&receive_date_low={$monthDate}&receive_date_high={$now}", 'uniqueName' => 'current_month_to_date', + 'weight' => 10, ], CRM_Core_Action::REVERT => [ 'name' => ts('Fiscal Year-To-Date'), @@ -240,6 +258,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString, 'qs' => "{$urlParams}&receive_date_low={$yearDate}&receive_date_high={$yearNow}", 'uniqueName' => 'fiscal_year_to_date', + 'weight' => 20, ], CRM_Core_Action::BROWSE => [ 'name' => ts('Cumulative'), @@ -247,6 +266,7 @@ class CRM_Contribute_Page_ContributionPage extends CRM_Core_Page { 'url' => $urlString, 'qs' => "{$urlParams}", 'uniqueName' => 'cumulative', + 'weight' => 30, ], ]; } diff --git a/civicrm/CRM/Contribute/Page/Tab.php b/civicrm/CRM/Contribute/Page/Tab.php index 4755a44e419a4142a546eaf1342fa368d2489fd2..641bb6ee4f01c5d95cdb01fab45715d133b8a9f7 100644 --- a/civicrm/CRM/Contribute/Page/Tab.php +++ b/civicrm/CRM/Contribute/Page/Tab.php @@ -55,7 +55,7 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { 'title' => ts('View Recurring Payment'), 'url' => 'civicrm/contact/view/contributionrecur', 'qs' => "reset=1&id=%%crid%%&cid=%%cid%%&context={$context}", - 'weight' => -20, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], ]; @@ -77,6 +77,7 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { 'title' => ts('Edit Recurring Payment'), 'url' => 'civicrm/contribute/updaterecur', 'qs' => "reset=1&action=update&crid=%%crid%%&cid=%%cid%%&context={$context}", + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ]; } @@ -85,6 +86,7 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { 'title' => ts('Cancel'), 'url' => 'civicrm/contribute/unsubscribe', 'qs' => 'reset=1&crid=%%crid%%&cid=%%cid%%&context=' . $context, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ]; if ($paymentProcessorObj->supports('UpdateSubscriptionBillingInfo')) { @@ -93,6 +95,7 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { 'title' => ts('Change Billing Details'), 'url' => 'civicrm/contribute/updatebilling', 'qs' => "reset=1&crid=%%crid%%&cid=%%cid%%&context={$context}", + 'weight' => 110, ]; } if (!empty($templateContribution['id']) && $paymentProcessorObj->supportsEditRecurringContribution()) { @@ -103,6 +106,7 @@ class CRM_Contribute_Page_Tab extends CRM_Core_Page { 'title' => ts('View Template Contribution'), 'url' => 'civicrm/contact/view/contribution', 'qs' => "reset=1&id={$templateContribution['id']}&cid=%%cid%%&action=view&context={$context}&force_create_template=1", + 'weight' => 120, ]; } diff --git a/civicrm/CRM/Contribute/Selector/Search.php b/civicrm/CRM/Contribute/Selector/Search.php index 53a2488e024aa6a0647d0788407144877fd4642c..fc755d92d838fe2c5128df8a9445a287c422869e 100644 --- a/civicrm/CRM/Contribute/Selector/Search.php +++ b/civicrm/CRM/Contribute/Selector/Search.php @@ -413,9 +413,10 @@ class CRM_Contribute_Selector_Search extends CRM_Core_Selector_Base implements C 'url' => 'civicrm/contact/view/contribution', 'qs' => 'reset=1&action=update&id=%%id%%&cid=%%cid%%&context=%%cxt%%&mode=live', 'title' => ts('Pay with Credit Card'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADD), ]; } - elseif (($row['contribution_status_name'] ?? NULL) == 'Pending') { + elseif (($row['contribution_status_name'] ?? NULL) === 'Pending') { $row['contribution_status'] .= ' (' . ts('Incomplete Transaction') . ')'; } @@ -433,7 +434,7 @@ class CRM_Contribute_Selector_Search extends CRM_Core_Selector_Base implements C if (in_array($row['contribution_status_name'], ['Partially paid', 'Pending refund']) || $isPayLater) { $buttonName = ts('Record Payment'); - if ($row['contribution_status_name'] == 'Pending refund') { + if ($row['contribution_status_name'] === 'Pending refund') { $buttonName = ts('Record Refund'); } elseif (CRM_Core_Config::isEnabledBackOfficeCreditCardPayments()) { @@ -442,6 +443,7 @@ class CRM_Contribute_Selector_Search extends CRM_Core_Selector_Base implements C 'url' => 'civicrm/payment/add', 'qs' => 'reset=1&id=%%id%%&cid=%%cid%%&action=add&component=contribution&mode=live', 'title' => ts('Submit Credit Card payment'), + 'weight' => 30, ]; } $links[CRM_Core_Action::ADD] = [ @@ -449,6 +451,7 @@ class CRM_Contribute_Selector_Search extends CRM_Core_Selector_Base implements C 'url' => 'civicrm/payment', 'qs' => 'reset=1&id=%%id%%&cid=%%cid%%&action=add&component=contribution', 'title' => $buttonName, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADD), ]; } $links = $links + CRM_Contribute_Task::getContextualLinks($row); diff --git a/civicrm/CRM/Contribute/Task.php b/civicrm/CRM/Contribute/Task.php index 52434ccba35f9fed35907f5dc24e4019ccb52432..3fa495d8524444877e1a1cbffdc15f8e13010c6d 100644 --- a/civicrm/CRM/Contribute/Task.php +++ b/civicrm/CRM/Contribute/Task.php @@ -50,11 +50,13 @@ class CRM_Contribute_Task extends CRM_Core_Task { 'title' => ts('Delete contributions'), 'class' => 'CRM_Contribute_Form_Task_Delete', 'result' => FALSE, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], self::TASK_PRINT => [ 'title' => ts('Print selected rows'), 'class' => 'CRM_Contribute_Form_Task_Print', 'result' => FALSE, + 'weight' => 10, ], self::TASK_EXPORT => [ 'title' => ts('Export contributions'), @@ -63,6 +65,7 @@ class CRM_Contribute_Task extends CRM_Core_Task { 'CRM_Contribute_Export_Form_Map', ], 'result' => FALSE, + 'weight' => 20, ], self::BATCH_UPDATE => [ 'title' => ts('Update multiple contributions'), @@ -71,6 +74,7 @@ class CRM_Contribute_Task extends CRM_Core_Task { 'CRM_Contribute_Form_Task_Batch', ], 'result' => TRUE, + 'weight' => 30, ], self::TASK_EMAIL => [ 'title' => ts('Email - send now (to %1 or less)', [ @@ -79,11 +83,13 @@ class CRM_Contribute_Task extends CRM_Core_Task { ]), 'class' => 'CRM_Contribute_Form_Task_Email', 'result' => TRUE, + 'weight' => 40, ], self::UPDATE_STATUS => [ 'title' => ts('Record payments for contributions'), 'class' => 'CRM_Contribute_Form_Task_Status', 'result' => TRUE, + 'weight' => 50, ], self::PDF_RECEIPT => [ 'title' => ts('Receipts - print or email'), @@ -96,6 +102,7 @@ class CRM_Contribute_Task extends CRM_Core_Task { 'icon' => 'fa-envelope-o', 'filters' => ['contribution_status_id' => [CRM_Core_PseudoConstant::getKey('CRM_Contribute_BAO_Contribution', 'contribution_status_id', 'Completed')]], 'is_single_mode' => TRUE, + 'weight' => 60, ], self::PDF_THANKYOU => [ 'title' => ts('Thank-you letters - print or email'), @@ -106,11 +113,13 @@ class CRM_Contribute_Task extends CRM_Core_Task { 'name' => ts('Send Letter'), 'is_single_mode' => TRUE, 'title_single_mode' => ts('Thank-you letter - print or email'), + 'weight' => 70, ], self::PDF_INVOICE => [ 'title' => ts('Invoices - print or email'), 'class' => 'CRM_Contribute_Form_Task_Invoice', 'result' => FALSE, + 'weight' => 80, ], ]; diff --git a/civicrm/CRM/Contribute/Tokens.php b/civicrm/CRM/Contribute/Tokens.php index 39f87b123100060bf0efa8e31535b25f2e798a22..5af208998fcdee01146d84a1869a06ff7819ac66 100644 --- a/civicrm/CRM/Contribute/Tokens.php +++ b/civicrm/CRM/Contribute/Tokens.php @@ -10,6 +10,7 @@ +--------------------------------------------------------------------+ */ +use Civi\Api4\ContributionPage; use Civi\Api4\ContributionRecur; /** @@ -55,9 +56,26 @@ class CRM_Contribute_Tokens extends CRM_Core_EntityTokens { */ protected function getRelatedTokens(): array { $tokens = []; - if (!in_array('ContributionRecur', array_keys(\Civi::service('action_object_provider')->getEntities()))) { + // Check to make sure CiviContribute is enabled, just in case it remains registered. Eventually this will be moved to the CiviContribute extension + // and this check can hopefully be removed (as long as caching on enable / disable doesn't explode our brains and / or crash the site). + if (!array_key_exists('Contribution', \Civi::service('action_object_provider')->getEntities())) { return $tokens; } + // Ideally we would derive this from 'usage' - but it looks like adding the usage data + // was quite a bit of work & didn't leave the energy to implement - esp expose for + // where clauses (also, it feels like 'hidden+token' would be a good usage. + $tokenList = ['frontend_title', 'pay_later_text', 'pay_later_receipt', 'is_share', 'receipt_text']; + $contributionPageTokens = ContributionPage::getFields(FALSE)->addWhere('name', 'IN', $tokenList)->execute(); + foreach ($contributionPageTokens as $contributionPageToken) { + $tokens['contribution_page_id.' . $contributionPageToken['name']] = [ + 'title' => $contributionPageToken['title'], + 'name' => 'contribution_page_id.' . $contributionPageToken['name'], + 'type' => 'mapped', + 'data_type' => $contributionPageToken['data_type'], + 'input_type' => $contributionPageToken['input_type'], + 'audience' => $contributionPageToken['name'] === 'is_share' ? 'hidden' : 'user', + ]; + } $hiddenTokens = ['modified_date', 'create_date', 'trxn_id', 'invoice_id', 'is_test', 'payment_token_id', 'payment_processor_id', 'payment_instrument_id', 'cycle_day', 'installments', 'processor_id', 'next_sched_contribution_date', 'failure_count', 'failure_retry_date', 'auto_renew', 'is_email_receipt', 'contribution_status_id']; $contributionRecurFields = ContributionRecur::getFields(FALSE)->setLoadOptions(TRUE)->execute(); foreach ($contributionRecurFields as $contributionRecurField) { @@ -67,6 +85,7 @@ class CRM_Contribute_Tokens extends CRM_Core_EntityTokens { 'type' => 'mapped', 'options' => $contributionRecurField['options'] ?? NULL, 'data_type' => $contributionRecurField['data_type'], + 'input_type' => $contributionRecurField['input_type'], 'audience' => in_array($contributionRecurField['name'], $hiddenTokens) ? 'hidden' : 'user', ]; } diff --git a/civicrm/CRM/Contribute/WorkflowMessage/ContributionInvoiceReceipt.php b/civicrm/CRM/Contribute/WorkflowMessage/ContributionInvoiceReceipt.php index e18907027dc0ed1142664b0dabb6cb321d6810ea..c11d6f32f297739fc54cb8527455318591b43237 100644 --- a/civicrm/CRM/Contribute/WorkflowMessage/ContributionInvoiceReceipt.php +++ b/civicrm/CRM/Contribute/WorkflowMessage/ContributionInvoiceReceipt.php @@ -23,16 +23,4 @@ class CRM_Contribute_WorkflowMessage_ContributionInvoiceReceipt extends GenericW public const WORKFLOW = 'contribution_invoice_receipt'; - /** - * Specify any tokens that should be exported as smarty variables. - * - * @todo it might be that this should be moved to the trait as we - * we work through these. - * - * @param array $export - */ - protected function exportExtraTokenContext(array &$export): void { - $export['smartyTokenAlias']['currency'] = 'contribution.currency'; - } - } diff --git a/civicrm/CRM/Contribute/WorkflowMessage/ContributionTrait.php b/civicrm/CRM/Contribute/WorkflowMessage/ContributionTrait.php index 433ef71d672129e1f0971777f65817edde3b921a..81e32f49b42362874eadd9b4cacf540842fe7ac5 100644 --- a/civicrm/CRM/Contribute/WorkflowMessage/ContributionTrait.php +++ b/civicrm/CRM/Contribute/WorkflowMessage/ContributionTrait.php @@ -219,4 +219,14 @@ trait CRM_Contribute_WorkflowMessage_ContributionTrait { $export['isShowTax'] = (bool) Civi::settings()->get('invoicing'); } + /** + * Specify any tokens that should be exported as smarty variables. + * + * @param array $export + */ + protected function exportExtraTokenContext(array &$export): void { + $export['smartyTokenAlias']['currency'] = 'contribution.currency'; + $export['smartyTokenAlias']['taxTerm'] = 'domain.tax_term'; + } + } diff --git a/civicrm/CRM/Core/Action.php b/civicrm/CRM/Core/Action.php index cb6ae64fc8dc7b40782606e45c0638f5657e91b7..faa335682fc84fe215e54a14411702316c99a8cc 100644 --- a/civicrm/CRM/Core/Action.php +++ b/civicrm/CRM/Core/Action.php @@ -315,7 +315,7 @@ class CRM_Core_Action { $url = []; usort($seqLinks, static function ($a, $b) { - return (int) ((int) ($a['weight'] ?? 0) > (int) ($b['weight'] ?? 0)); + return (int) ((int) ($a['weight']) > (int) ($b['weight'])); }); foreach ($seqLinks as $i => $link) { diff --git a/civicrm/CRM/Core/BAO/ActionSchedule.php b/civicrm/CRM/Core/BAO/ActionSchedule.php index 76936efb65d758d4ee7da6c222365999ffafed41..df6f784ded8246f208dcc05e83c771f6730894e1 100644 --- a/civicrm/CRM/Core/BAO/ActionSchedule.php +++ b/civicrm/CRM/Core/BAO/ActionSchedule.php @@ -16,6 +16,7 @@ */ use Civi\ActionSchedule\Event\MappingRegisterEvent; +use Civi\ActionSchedule\MappingBase; use Civi\Core\HookInterface; /** @@ -34,7 +35,14 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule implements $event = \Civi::dispatcher() ->dispatch('civi.actionSchedule.getMappings', new MappingRegisterEvent()); - Civi::$statics[__CLASS__]['mappings'] = $event->getMappings(); + // Filter out mappings from disabled components. + // TODO: we could move the mapping classes into their respective + // component-extensions and this would happen automatically. + // Civi::$statics[__CLASS__]['mappings'] = $event->getMappings(); + $allEntities = \Civi\Api4\Entity::get(FALSE)->execute()->column('name'); + Civi::$statics[__CLASS__]['mappings'] = array_filter($event->getMappings(), function($mapping) use ($allEntities) { + return in_array($mapping->getEntityName(), $allEntities, TRUE); + }); } if (isset($filters['id'])) { CRM_Core_Error::deprecatedWarning('Use "getMapping" to retrieve a single mapping by id instead of passing a filter to "GetMappings".'); @@ -44,21 +52,33 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule implements } /** - * @param string|int $identifier - * Name of the mapping e.g. 'contribpage' or CRM_Contact_ActionMapping::CONTACT_MAPPING_ID + * @param string|int $mappingId + * Id of the mapping e.g. 'contribpage' or CRM_Contact_ActionMapping::CONTACT_MAPPING_ID * * @return \Civi\ActionSchedule\MappingInterface|NULL */ - public static function getMapping($identifier) { - return self::getMappings()[$identifier] ?? NULL; + public static function getMapping($mappingId) { + return self::getMappings()[$mappingId] ?? NULL; } /** * Provides the pseudoconstant list for `mapping_id` field. - * @return array + * @return array[] */ public static function getMappingOptions(): array { - return CRM_Utils_Array::collectMethod('getLabel', self::getMappings()); + $mappings = []; + foreach (self::getMappings() as $mapping) { + $mappings[] = [ + 'id' => $mapping->getId(), + 'name' => $mapping->getName(), + 'label' => $mapping->getLabel(), + 'icon' => \Civi\Api4\Utils\CoreUtil::getInfoItem($mapping->getEntityName(), 'icon'), + ]; + } + usort($mappings, function($m1, $m2) { + return strnatcasecmp($m1['label'], $m2['label']); + }); + return $mappings; } /** @@ -67,10 +87,38 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule implements */ public static function getEntityValueOptions(string $fieldName, array $params): array { $values = self::fillValues($params['values'], ['mapping_id']); - if (!$values['mapping_id']) { - return []; - } - return self::getMapping($values['mapping_id'])->getValueLabels(); + $mapping = self::getMapping($values['mapping_id']); + return $mapping ? $mapping->getValueLabels() : []; + } + + /** + * Provides pseudoconstant list for `limit_to` field. + * @return array|null + */ + public static function getLimitToOptions(string $fieldName, array $params): ?array { + $values = self::fillValues($params['values'], ['mapping_id']); + $mapping = self::getMapping($values['mapping_id']); + return $mapping ? $mapping::getLimitToOptions() : MappingBase::getLimitToOptions(); + } + + /** + * Provides pseudoconstant list for `recipient` field. + * @return array|null + */ + public static function getRecipientOptions(string $fieldName, array $params): ?array { + $values = self::fillValues($params['values'], ['mapping_id']); + $mapping = self::getMapping($values['mapping_id']); + return $mapping ? $mapping::getRecipientTypes() : MappingBase::getRecipientTypes(); + } + + /** + * Provides pseudoconstant list for `recipient_listing` field. + * @return array|null + */ + public static function getRecipientListingOptions(string $fieldName, array $params): ?array { + $values = self::fillValues($params['values'], ['mapping_id', 'recipient']); + $mapping = self::getMapping($values['mapping_id']); + return $mapping ? $mapping->getRecipientListing($values['recipient']) : []; } /** @@ -79,10 +127,8 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule implements */ public static function getEntityStatusOptions(string $fieldName, array $params): array { $values = self::fillValues($params['values'], ['mapping_id', 'entity_value']); - if (!$values['mapping_id']) { - return []; - } - return self::getMapping($values['mapping_id'])->getStatusLabels($values['entity_value']); + $mapping = self::getMapping($values['mapping_id']); + return $mapping ? $mapping->getStatusLabels($values['entity_value']) : []; } /** @@ -91,10 +137,8 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule implements */ public static function getActionDateOptions(string $fieldName, array $params): array { $values = self::fillValues($params['values'], ['mapping_id', 'entity_value']); - if (!$values['mapping_id']) { - return []; - } - return self::getMapping($values['mapping_id'])->getDateFields($values['entity_value']); + $mapping = self::getMapping($values['mapping_id']); + return $mapping ? $mapping->getDateFields($values['entity_value']) : []; } /** @@ -109,45 +153,27 @@ class CRM_Core_BAO_ActionSchedule extends CRM_Core_DAO_ActionSchedule implements } /** - * For each entity, get a list of entity-value labels. - * + * Provides pseudoconstant list for `filter_contact_language`. * @return array - * Ex: $entityValueLabels[$mappingId][$valueId] = $valueLabel. - * @throws CRM_Core_Exception */ - public static function getAllEntityValueLabels() { - $entityValueLabels = []; - foreach (CRM_Core_BAO_ActionSchedule::getMappings() as $mapping) { - $entityValueLabels[$mapping->getId()] = $mapping->getValueLabels(); - $valueLabel = ['- ' . strtolower($mapping->getValueHeader()) . ' -']; - $entityValueLabels[$mapping->getId()] = $valueLabel + $entityValueLabels[$mapping->getId()]; - } - return $entityValueLabels; + public static function getFilterContactLanguageOptions(): array { + $languages = CRM_Core_I18n::languages(TRUE); + return $languages + [CRM_Core_I18n::NONE => ts('Contacts with no preferred language')]; } /** - * For each entity, get a list of entity-status labels. - * + * Provides pseudoconstant list for `communication_language`. * @return array - * Ex: $entityValueLabels[$mappingId][$valueId][$statusId] = $statusLabel. - */ - public static function getAllEntityStatusLabels() { - $entityValueLabels = self::getAllEntityValueLabels(); - $entityStatusLabels = []; - foreach (CRM_Core_BAO_ActionSchedule::getMappings() as $mapping) { - $statusLabel = ['- ' . strtolower($mapping->getStatusHeader()) . ' -']; - $entityStatusLabels[$mapping->getId()] = $entityValueLabels[$mapping->getId()]; - foreach ($entityStatusLabels[$mapping->getId()] as $kkey => & $vval) { - $vval = $statusLabel + $mapping->getStatusLabels($kkey); - } - } - return $entityStatusLabels; + */ + public static function getCommunicationLanguageOptions(): array { + $languages = CRM_Core_I18n::languages(TRUE); + return [CRM_Core_I18n::AUTO => ts('Follow recipient preferred language')] + $languages; } /** * Retrieve list of Scheduled Reminders. * - * @param \Civi\ActionSchedule\Mapping|null $filterMapping + * @param \Civi\ActionSchedule\MappingInterface|null $filterMapping * Filter by the schedule's mapping type. * @param int $filterValue * Filter by the schedule's entity_value. @@ -203,7 +229,7 @@ FROM civicrm_action_schedule cas explode(CRM_Core_DAO::VALUE_SEPARATOR, $dao->entityValueIds) )); $list[$dao->id]['status'] = implode(', ', CRM_Utils_Array::subset( - $filterMapping->getStatusLabels($dao->entityValueIds), + $filterMapping->getStatusLabels($list[$dao->id]['entity_value']), explode(CRM_Core_DAO::VALUE_SEPARATOR, $dao->entityStatusIds) )); $list[$dao->id]['is_repeat'] = $dao->is_repeat; @@ -234,9 +260,29 @@ FROM civicrm_action_schedule cas */ public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event) { if (in_array($event->action, ['create', 'edit'])) { - if (isset($event->params['limit_to']) && in_array($event->params['limit_to'], [0, '0', FALSE], TRUE)) { + $values =& $event->params; + if (isset($values['limit_to']) && in_array($values['limit_to'], [0, '0', FALSE], TRUE)) { CRM_Core_Error::deprecatedWarning('Deprecated value "0" is no longer a valid option for ActionSchedule.limit_to; changed to "2".'); - $event->params['limit_to'] = 2; + $values['limit_to'] = 2; + } + $recipient = $values['recipient'] ?? NULL; + if ($recipient && $recipient !== 'group') { + $values['group_id'] = ''; + } + elseif ($recipient && $recipient !== 'manual') { + $values['recipient_manual'] = ''; + } + if ($recipient === 'group' || $recipient === 'manual') { + $values['recipient_listing'] = ''; + } + // When repeat is disabled, wipe all related fields + if (isset($values['is_repeat']) && !$values['is_repeat']) { + $values['repetition_frequency_unit'] = ''; + $values['repetition_frequency_interval'] = ''; + $values['end_frequency_unit'] = ''; + $values['end_frequency_interval'] = ''; + $values['end_action'] = ''; + $values['end_date'] = ''; } } } @@ -431,17 +477,11 @@ FROM civicrm_action_schedule cas } /** - * @param int $mappingID - * @param $recipientType - * - * @return array + * @deprecated */ public static function getRecipientListing($mappingID, $recipientType) { - $mapping = CRM_Core_BAO_ActionSchedule::getMapping($mappingID); - if (!$mapping) { - return []; - } - return $mapping->getRecipientListing($recipientType); + CRM_Core_Error::deprecatedFunctionWarning('getRecipientListingOptions'); + return self::getRecipientListingOptions('recipient_listing', ['values' => ['mapping_id' => $mappingID, 'recipient' => $recipientType]]); } /** @@ -489,7 +529,7 @@ FROM civicrm_action_schedule cas protected static function createMailingActivity($tokenRow, $mapping, $contactID, $entityID, $caseID) { $session = CRM_Core_Session::singleton(); - if ($mapping->getEntityTable() == 'civicrm_membership') { + if ($mapping->getEntityName() === 'Membership') { // @todo - not required with api $activityTypeID = CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Membership Renewal Reminder'); @@ -534,7 +574,7 @@ FROM civicrm_action_schedule cas 'casActionScheduleId' => $actionSchedule->id, 'casMailingJoinType' => ($actionSchedule->limit_to == 2) ? 'LEFT JOIN' : 'INNER JOIN', 'casMappingId' => $mapping->getId(), - 'casMappingEntity' => $mapping->getEntityTable(), + 'casMappingEntity' => $mapping->getEntityTable($actionSchedule), 'casEntityJoinExpr' => 'e.id = IF(reminder.entity_table = "civicrm_contact", reminder.contact_id, reminder.entity_id)', ]); @@ -715,12 +755,10 @@ FROM civicrm_action_schedule cas } /** - * Get the list of generic recipient types supported by all entities/mappings. - * - * @return array - * array(mixed $value => string $label). + * @deprecated */ public static function getAdditionalRecipients(): array { + CRM_Core_Error::deprecatedFunctionWarning('APIv4 getFields'); return [ 'manual' => ts('Choose Recipient(s)'), 'group' => ts('Select Group'), diff --git a/civicrm/CRM/Core/BAO/Country.php b/civicrm/CRM/Core/BAO/Country.php index d81958f09dbe21f1e890088812926787c5a5bc84..8d53a8bf8ac2e7c1dd41bde193a2576b88b6659e 100644 --- a/civicrm/CRM/Core/BAO/Country.php +++ b/civicrm/CRM/Core/BAO/Country.php @@ -174,7 +174,7 @@ class CRM_Core_BAO_Country extends CRM_Core_DAO_Country { public static function defaultCurrencySymbol($defaultCurrency = NULL) { static $cachedSymbol = NULL; if (!$cachedSymbol || $defaultCurrency) { - $currency = $defaultCurrency ? $defaultCurrency : Civi::settings()->get('defaultCurrency'); + $currency = $defaultCurrency ?: Civi::settings()->get('defaultCurrency'); if ($currency) { $currencySymbols = CRM_Core_PseudoConstant::get('CRM_Contribute_DAO_Contribution', 'currency', [ 'labelColumn' => 'symbol', diff --git a/civicrm/CRM/Core/BAO/CustomField.php b/civicrm/CRM/Core/BAO/CustomField.php index 8c7f3d0aa9ee2a74c5a3f88348140fc6d69ed4af..c40de2cb86f9d26e808b2f9a8d8431ff0077d21a 100644 --- a/civicrm/CRM/Core/BAO/CustomField.php +++ b/civicrm/CRM/Core/BAO/CustomField.php @@ -1060,17 +1060,14 @@ class CRM_Core_BAO_CustomField extends CRM_Core_DAO_CustomField { $fieldAttributes['api']['fieldName'] = $field->getEntity() . '.' . $groupName . '.' . $field->name; $element = $qf->addAutocomplete($elementName, $label, $fieldAttributes, $useRequired && !$search); } + // Autocomplete for field with option values else { - // FIXME: This won't work with customFieldOptions hook - $fieldAttributes += [ - 'entity' => 'OptionValue', - 'placeholder' => $placeholder, - 'multiple' => $search ? TRUE : !empty($field->serialize), - 'api' => [ - 'params' => ['option_group_id' => $field->option_group_id, 'is_active' => 1], - ], - ]; - $element = $qf->addEntityRef($elementName, $label, $fieldAttributes, $useRequired && !$search); + $fieldAttributes['entity'] = 'OptionValue'; + $fieldAttributes['placeholder'] = $placeholder; + $fieldAttributes['api']['fieldName'] = $field->getEntity() . '.' . $groupName . '.' . $field->name; + $fieldAttributes['select']['multiple'] = $search ? TRUE : !empty($field->serialize); + $fieldAttributes['select']['minimumInputLength'] = 0; + $element = $qf->addAutocomplete($elementName, $label, $fieldAttributes, $useRequired && !$search); } $qf->assign('customUrls', $customUrls); @@ -2782,7 +2779,7 @@ WHERE cf.id = %1 AND cg.is_multiple = 1"; return TRUE; } // Do this before the "Select" string search because date fields have a "Select Date" html_type - // and contactRef fields have an "Autocomplete-Select" html_type - contacts are an FK not an option list. + // and entityRef fields have an "Autocomplete-Select" html_type - references are an FK not an option list. if (in_array($field['data_type'], ['EntityReference', 'ContactReference', 'Date'])) { return FALSE; } diff --git a/civicrm/CRM/Core/BAO/CustomGroup.php b/civicrm/CRM/Core/BAO/CustomGroup.php index e7b561a07c8dfc6bbed2fab2c67dfe17b96aaf62..44973b7ace033dd588d8920a59b14fa10541f892 100644 --- a/civicrm/CRM/Core/BAO/CustomGroup.php +++ b/civicrm/CRM/Core/BAO/CustomGroup.php @@ -837,6 +837,7 @@ ORDER BY civicrm_custom_group.weight, 'qs' => 'reset=1&id=%%id%%&eid=%%eid%%&fid=%%fid%%&action=delete&fcs=%%fcs%%', 'extra' => 'onclick = "if (confirm( \'' . $deleteExtra . '\' ) ) this.href+=\'&confirmed=1\'; else return false;"', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; $customValue['deleteURL'] = CRM_Core_Action::formLink($deleteURL, diff --git a/civicrm/CRM/Core/BAO/Discount.php b/civicrm/CRM/Core/BAO/Discount.php index 2b63fd5c363519dd86d60f8cc561622fce525e9f..c0f29cfccd061b58b739203cc4736a2bae50ea34 100644 --- a/civicrm/CRM/Core/BAO/Discount.php +++ b/civicrm/CRM/Core/BAO/Discount.php @@ -78,11 +78,32 @@ class CRM_Core_BAO_Discount extends CRM_Core_DAO_Discount { $dao->entity_table = $entityTable; $dao->find(); while ($dao->fetch()) { - $optionGroupIDs[$dao->id] = $dao->price_set_id; + $optionGroupIDs[$dao->id] = (int) $dao->price_set_id; } return $optionGroupIDs; } + public static function buildOptions($fieldName, $context = NULL, $values = []) { + // Special logic for fields whose options depend on context or properties + if ($fieldName === 'price_set_id' && !empty($values['entity_table']) && !empty($values['entity_id'])) { + $priceSetIds = self::getOptionGroup($values['entity_id'], $values['entity_table']); + $params = ['condition' => ['id IN (' . implode(',', $priceSetIds) . ')']]; + return CRM_Core_PseudoConstant::get(__CLASS__, $fieldName, $params, $context); + } + return parent::buildOptions($fieldName, $context, $values); + } + + /** + * Whitelist of possible values for the entity_table field + * + * @return array + */ + public static function entityTables(): array { + return [ + 'civicrm_event' => ts('Event'), + ]; + } + /** * Determine in which discount set the registration date falls. * diff --git a/civicrm/CRM/Core/BAO/Domain.php b/civicrm/CRM/Core/BAO/Domain.php index 1462718c86cccf0a3a94b02256356d55a876b41d..548baffdc68a0f0347cc24be915d9ca9eabfc6fc 100644 --- a/civicrm/CRM/Core/BAO/Domain.php +++ b/civicrm/CRM/Core/BAO/Domain.php @@ -273,7 +273,7 @@ class CRM_Core_BAO_Domain extends CRM_Core_DAO_Domain { $title, 'id', 'title', TRUE ); } - return $groupID ? $groupID : FALSE; + return $groupID ?: FALSE; } /** diff --git a/civicrm/CRM/Core/BAO/Job.php b/civicrm/CRM/Core/BAO/Job.php index 57b1691aa1eafa0e0d9740f51d38c3a033b41607..cbf3b2e81843a1ddd9c5f3701527922b9529d2f6 100644 --- a/civicrm/CRM/Core/BAO/Job.php +++ b/civicrm/CRM/Core/BAO/Job.php @@ -117,4 +117,25 @@ class CRM_Core_BAO_Job extends CRM_Core_DAO_Job { return $copy; } + /** + * Parse multi-line `$parameters` string into an array + * + * @param string|null $parameters + * @return array + * @throws CRM_Core_Exception + */ + public static function parseParameters(?string $parameters): array { + $result = ['version' => 3]; + $lines = $parameters ? explode("\n", $parameters) : []; + + foreach ($lines as $line) { + $pair = explode("=", $line); + if ($pair === FALSE || count($pair) !== 2 || !trim($pair[0]) || trim($pair[1]) === '') { + throw new CRM_Core_Exception('Malformed API parameters in scheduled job'); + } + $result[trim($pair[0])] = trim($pair[1]); + } + return $result; + } + } diff --git a/civicrm/CRM/Core/CodeGen/I18n.php b/civicrm/CRM/Core/CodeGen/I18n.php index 3d3ecc1bcf410fd3f81a75d94c205508c0d3662f..2f71133ba4b22e3314db4c428d32a3be52d0122a 100644 --- a/civicrm/CRM/Core/CodeGen/I18n.php +++ b/civicrm/CRM/Core/CodeGen/I18n.php @@ -22,7 +22,7 @@ class CRM_Core_CodeGen_I18n extends CRM_Core_CodeGen_BaseTask { file_put_contents('../install/langs.php', "<?php \$langs = " . var_export($langs, TRUE) . ";"); } - public function generateSchemaStructure() { + public function generateSchemaStructure(): void { echo "Generating CRM_Core_I18n_SchemaStructure...\n"; $columns = []; $indices = []; @@ -36,10 +36,15 @@ class CRM_Core_CodeGen_I18n extends CRM_Core_CodeGen_BaseTask { continue; } foreach ($table['fields'] as $field) { - $required = $field['required'] ? ' NOT NULL' : ''; - $default = $field['default'] ? ' DEFAULT ' . $field['default'] : ''; - $comment = $field['comment'] ? " COMMENT '" . $field['comment'] . "'" : ''; if ($field['localizable']) { + $required = $field['required'] ? ' NOT NULL' : ''; + // The setting of default `''` for required fields is a workaround + // that makes it work similar to turning off STRICT_TRANS_TABLES, but + // means that the database cannot enforce required fields since this + // definition is not the same as "required". Ideally, required fields + // would be included in every INSERT statement. + $default = $field['default'] ? ' DEFAULT ' . $field['default'] : ($field['required'] ? " DEFAULT '' " : ''); + $comment = $field['comment'] ? " COMMENT '" . $field['comment'] . "'" : ''; $columns[$table['name']][$field['name']] = $field['sqlType'] . $required . $default . $comment; $widgets[$table['name']][$field['name']] = $field['widget']; } diff --git a/civicrm/CRM/Core/CodeGen/Specification.php b/civicrm/CRM/Core/CodeGen/Specification.php index c26671270e1c32e81d692948f3133585beef2766..e64367f97b6f766e93263c92e8dbf766ecab4e53 100644 --- a/civicrm/CRM/Core/CodeGen/Specification.php +++ b/civicrm/CRM/Core/CodeGen/Specification.php @@ -421,6 +421,8 @@ class CRM_Core_CodeGen_Specification { 'formatType', 'label', 'controlField', + 'min', + 'max', /* Fixme: prior to CRM-13497 these were in a flat structure // CRM-13497 moved them to be nested within 'html' but there's no point // making that change in the DAOs right now since we are in the process of @@ -432,7 +434,7 @@ class CRM_Core_CodeGen_Specification { ]; $field['html'] = []; foreach ($validOptions as $htmlOption) { - if (!empty($fieldXML->html->$htmlOption)) { + if (isset($fieldXML->html->$htmlOption) && $fieldXML->html->$htmlOption !== '') { $field['html'][$htmlOption] = $this->value($htmlOption, $fieldXML->html); } } @@ -495,6 +497,10 @@ class CRM_Core_CodeGen_Specification { if (!isset($field['pseudoconstant']['optionEditPath']) && !empty($field['pseudoconstant']['optionGroupName'])) { $field['pseudoconstant']['optionEditPath'] = 'civicrm/admin/options/' . $field['pseudoconstant']['optionGroupName']; } + // Set suffixes if explicitly declared + if (!empty($fieldXML->pseudoconstant->suffixes)) { + $field['pseudoconstant']['suffixes'] = explode(',', $this->value('suffixes', $fieldXML->pseudoconstant)); + } // For now, fields that have option lists that are not in the db can simply // declare an empty pseudoconstant tag and we'll add this placeholder. // That field's BAO::buildOptions fn will need to be responsible for generating the option list diff --git a/civicrm/CRM/Core/Component/Info.php b/civicrm/CRM/Core/Component/Info.php index 640f3e26d290e562418dbc48b5d05312e6658ba3..037b3cea0eb3e395acf3863edea59186309a5925 100644 --- a/civicrm/CRM/Core/Component/Info.php +++ b/civicrm/CRM/Core/Component/Info.php @@ -139,17 +139,6 @@ abstract class CRM_Core_Component_Info { */ abstract public function getInfo(); - /** - * Get a list of entities to register via API. - * - * @return array - * list of entities; same format as CRM_Utils_Hook::managedEntities(&$entities) - * @see CRM_Utils_Hook::managedEntities - */ - public function getManagedEntities() { - return []; - } - /** * Provides permissions that are unwise for Anonymous Roles to have. * diff --git a/civicrm/CRM/Core/Config.php b/civicrm/CRM/Core/Config.php index 66e59e42648ee6b6853ec624b66b9f1f2d4b6c85..55093d36133d816c606c92b923ccd1713e23ab4d 100644 --- a/civicrm/CRM/Core/Config.php +++ b/civicrm/CRM/Core/Config.php @@ -345,6 +345,11 @@ class CRM_Core_Config extends CRM_Core_Config_MagicMerge { CRM_Core_DAO::executeQuery($query); } + // Clear the Redis prev-next cache, if there is one. + // Since we truncated the civicrm_cache table it is logical to also remove + // the same from the Redis cache here. + \Civi::service('prevnext')->deleteItem(); + // also delete all the import and export temp tables self::clearTempTables(); } diff --git a/civicrm/CRM/Core/DAO.php b/civicrm/CRM/Core/DAO.php index 27cb3b417cd7a00b70c9333026ef97e7d66f002f..ad06001e7498b109e80f960375ff686fbf1d88d5 100644 --- a/civicrm/CRM/Core/DAO.php +++ b/civicrm/CRM/Core/DAO.php @@ -3365,6 +3365,7 @@ SELECT contact_id * Given an incomplete record, attempt to fill missing field values from the database */ public static function fillValues(array $existingValues, $fieldsToRetrieve): array { + $entityFields = static::getSupportedFields(); $idField = static::$_primaryKey[0]; // Ensure primary key is set $existingValues += [$idField => NULL]; @@ -3378,25 +3379,25 @@ SELECT contact_id } $idValue = $existingValues[$idField] ?? NULL; foreach ($fieldsToRetrieve as $fieldName) { + $fieldMeta = $entityFields[$fieldName] ?? ['type' => NULL]; if (!array_key_exists($fieldName, $existingValues)) { - $fieldMeta = static::getSupportedFields()[$fieldName] ?? ['type' => NULL]; $existingValues[$fieldName] = NULL; if ($idValue) { $existingValues[$fieldName] = self::getFieldValue(static::class, $idValue, $fieldName, $idField); } - if (isset($existingValues[$fieldName])) { - if (!empty($fieldMeta['serialize'])) { - self::unSerializeField($existingValues[$fieldName], $fieldMeta['serialize']); - } - elseif ($fieldMeta['type'] === CRM_Utils_Type::T_BOOLEAN) { - $existingValues[$fieldName] = (bool) $existingValues[$fieldName]; - } - elseif ($fieldMeta['type'] === CRM_Utils_Type::T_INT) { - $existingValues[$fieldName] = (int) $existingValues[$fieldName]; - } - elseif ($fieldMeta['type'] === CRM_Utils_Type::T_FLOAT) { - $existingValues[$fieldName] = (float) $existingValues[$fieldName]; - } + } + if (isset($existingValues[$fieldName])) { + if (!empty($fieldMeta['serialize']) && !is_array($existingValues[$fieldName])) { + $existingValues[$fieldName] = self::unSerializeField($existingValues[$fieldName], $fieldMeta['serialize']); + } + elseif ($fieldMeta['type'] === CRM_Utils_Type::T_BOOLEAN) { + $existingValues[$fieldName] = (bool) $existingValues[$fieldName]; + } + elseif ($fieldMeta['type'] === CRM_Utils_Type::T_INT) { + $existingValues[$fieldName] = (int) $existingValues[$fieldName]; + } + elseif ($fieldMeta['type'] === CRM_Utils_Type::T_FLOAT) { + $existingValues[$fieldName] = (float) $existingValues[$fieldName]; } } } diff --git a/civicrm/CRM/Core/DAO/ActionSchedule.php b/civicrm/CRM/Core/DAO/ActionSchedule.php index ad145d3843625e1fc4a765c054e2d06d974fafda..f75590e0648baa0d2bde4f3fcf435416b3d62658 100644 --- a/civicrm/CRM/Core/DAO/ActionSchedule.php +++ b/civicrm/CRM/Core/DAO/ActionSchedule.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/ActionSchedule.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:98aa9bf4539e598e9d7d0d5da203717d) + * (GenCodeChecksum:7cd61559377e23d6ad4c833616f22a12) */ /** @@ -59,7 +59,7 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { /** * Name of the action(reminder) * - * @var string|null + * @var string * (SQL type: varchar(64)) * Note that values will be retrieved from the database as a string. */ @@ -436,7 +436,7 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { * Whether to return the plural version of the title. */ public static function getEntityTitle($plural = FALSE) { - return $plural ? ts('Action Schedules') : ts('Action Schedule'); + return $plural ? ts('Scheduled Reminders') : ts('Scheduled Reminder'); } /** @@ -492,6 +492,7 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_STRING, 'title' => ts('Name'), 'description' => ts('Name of the action(reminder)'), + 'required' => TRUE, 'maxlength' => 64, 'size' => CRM_Utils_Type::BIG, 'usage' => [ @@ -505,6 +506,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Text', + ], 'add' => '3.4', ], 'title' => [ @@ -525,6 +529,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Text', + ], 'add' => '3.4', ], 'recipient' => [ @@ -546,7 +553,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ - 'label' => ts("Recipient"), + 'type' => 'Select', + 'label' => ts("Limit or Add Recipients"), + 'controlField' => 'mapping_id', + ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_BAO_ActionSchedule::getRecipientOptions', ], 'add' => '3.4', ], @@ -567,10 +579,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ - 'label' => ts("Limit To"), + 'type' => 'Select', + 'label' => ts("Limit/Add"), + 'controlField' => 'mapping_id', ], 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::getLimitToValues', + 'callback' => 'CRM_Core_BAO_ActionSchedule::getLimitToOptions', ], 'add' => '4.4', ], @@ -650,7 +664,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ + 'type' => 'Number', 'label' => ts("Start Action Offset"), + 'min' => '0', ], 'add' => '3.4', ], @@ -701,7 +717,11 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ - 'label' => ts("Start Action condition"), + 'type' => 'Select', + 'label' => ts("Start Condition"), + ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_SelectValues::beforeAfter', ], 'add' => '3.4', ], @@ -801,7 +821,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ + 'type' => 'Number', 'label' => ts("Repetition Frequency Interval"), + 'min' => '0', ], 'add' => '3.4', ], @@ -851,7 +873,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ + 'type' => 'Number', 'label' => ts("End Frequency Interval"), + 'min' => '0', ], 'add' => '3.4', ], @@ -874,7 +898,11 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ - 'label' => ts("End Action"), + 'type' => 'Select', + 'label' => ts("End Condition"), + ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_SelectValues::beforeAfter', ], 'add' => '3.4', ], @@ -949,6 +977,10 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'serialize' => self::SERIALIZE_COMMA, + 'html' => [ + 'type' => 'EntityRef', + 'label' => ts("Manual Recipients"), + ], 'add' => '3.4', ], 'recipient_listing' => [ @@ -969,6 +1001,15 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'serialize' => self::SERIALIZE_SEPARATOR_TRIMMED, + 'html' => [ + 'type' => 'Select', + 'label' => ts("Recipient Roles"), + 'controlField' => 'recipient', + ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_BAO_ActionSchedule::getRecipientListingOptions', + ], 'add' => '4.1', ], 'body_text' => [ @@ -987,6 +1028,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'TextArea', + ], 'add' => '3.4', ], 'body_html' => [ @@ -1005,6 +1049,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'RichTextEditor', + ], 'add' => '3.4', ], 'sms_body_text' => [ @@ -1023,6 +1070,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'TextArea', + ], 'add' => '4.5', ], 'subject' => [ @@ -1043,12 +1093,15 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Text', + ], 'add' => '3.4', ], 'record_activity' => [ 'name' => 'record_activity', 'type' => CRM_Utils_Type::T_BOOLEAN, - 'title' => ts('Record Activity for Reminder?'), + 'title' => ts('Record Activity'), 'description' => ts('Record Activity for this reminder?'), 'required' => TRUE, 'usage' => [ @@ -1063,6 +1116,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'CheckBox', + ], 'add' => '3.4', ], 'mapping_id' => [ @@ -1089,6 +1145,11 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { ], 'pseudoconstant' => [ 'callback' => 'CRM_Core_BAO_ActionSchedule::getMappingOptions', + 'suffixes' => [ + 'name', + 'label', + 'icon', + ], ], 'add' => '3.4', ], @@ -1117,7 +1178,7 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'table' => 'civicrm_group', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], @@ -1181,6 +1242,10 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Select Date', + 'formatType' => 'activityDate', + ], 'add' => '4.1', ], 'from_name' => [ @@ -1201,6 +1266,10 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Text', + 'label' => ts("From Name"), + ], 'add' => '4.5', ], 'from_email' => [ @@ -1221,6 +1290,10 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Email', + 'label' => ts("From Email"), + ], 'add' => '4.5', ], 'mode' => [ @@ -1271,6 +1344,9 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'type' => 'Select', 'label' => ts("SMS Provider"), ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_SelectValues::smsProvider', + ], 'add' => '4.5', ], 'used_for' => [ @@ -1314,8 +1390,13 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'serialize' => self::SERIALIZE_SEPARATOR_TRIMMED, 'html' => [ - 'label' => ts("Filter Contact Language"), + 'type' => 'Select', + 'label' => ts("Recipients Language"), + ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_BAO_ActionSchedule::getFilterContactLanguageOptions', ], 'add' => '4.7', ], @@ -1338,8 +1419,12 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, 'html' => [ + 'type' => 'Select', 'label' => ts("Communication Language"), ], + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_BAO_ActionSchedule::getCommunicationLanguageOptions', + ], 'add' => '4.7', ], 'action_schedule_created_date' => [ @@ -1405,6 +1490,10 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Select Date', + 'formatType' => 'activityDate', + ], 'add' => '5.34', ], 'action_schedule_effective_end_date' => [ @@ -1425,6 +1514,10 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { 'entity' => 'ActionSchedule', 'bao' => 'CRM_Core_BAO_ActionSchedule', 'localizable' => 0, + 'html' => [ + 'type' => 'Select Date', + 'formatType' => 'activityDate', + ], 'add' => '5.34', ], ]; @@ -1496,7 +1589,17 @@ class CRM_Core_DAO_ActionSchedule extends CRM_Core_DAO { * @return array */ public static function indices($localize = TRUE) { - $indices = []; + $indices = [ + 'UI_name' => [ + 'name' => 'UI_name', + 'field' => [ + 0 => 'name', + ], + 'localizable' => FALSE, + 'unique' => TRUE, + 'sig' => 'civicrm_action_schedule::1::name', + ], + ]; return ($localize && !empty($indices)) ? CRM_Core_DAO_AllCoreTables::multilingualize(__CLASS__, $indices) : $indices; } diff --git a/civicrm/CRM/Core/DAO/Address.php b/civicrm/CRM/Core/DAO/Address.php index d6daae72270248c4c85feb113280e198bcecad3f..c70f36ea36b914376d625a0b2444b059994b249e 100644 --- a/civicrm/CRM/Core/DAO/Address.php +++ b/civicrm/CRM/Core/DAO/Address.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/Address.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:93cff77485ca748e88906bcb5d61bf22) + * (GenCodeChecksum:7fed80f6afc84e71f18055294868044d) */ /** @@ -789,6 +789,10 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO { 'keyColumn' => 'id', 'labelColumn' => 'name', 'abbrColumn' => 'abbreviation', + 'suffixes' => [ + 'label', + 'abbr', + ], ], 'add' => '1.1', ], @@ -820,6 +824,10 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO { 'keyColumn' => 'id', 'labelColumn' => 'name', 'abbrColumn' => 'abbreviation', + 'suffixes' => [ + 'label', + 'abbr', + ], ], 'add' => '1.1', ], @@ -926,6 +934,10 @@ class CRM_Core_DAO_Address extends CRM_Core_DAO { 'labelColumn' => 'name', 'nameColumn' => 'iso_code', 'abbrColumn' => 'iso_code', + 'suffixes' => [ + 'label', + 'abbr', + ], ], 'add' => '1.1', ], diff --git a/civicrm/CRM/Core/DAO/CustomGroup.php b/civicrm/CRM/Core/DAO/CustomGroup.php index af79e781f750ca9403e236094aabc46025460c4b..17c0bd8922083298320d11e707a183e5d19dd9d2 100644 --- a/civicrm/CRM/Core/DAO/CustomGroup.php +++ b/civicrm/CRM/Core/DAO/CustomGroup.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/CustomGroup.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:7bcb3484fe1ff4d97feddb0d2ad981ec) + * (GenCodeChecksum:7a53822fedde32eeb1089f09654a2d88) */ /** @@ -380,6 +380,11 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO { ], 'pseudoconstant' => [ 'callback' => 'CRM_Core_BAO_CustomGroup::getCustomGroupExtendsOptions', + 'suffixes' => [ + 'name', + 'label', + 'grouping', + ], ], 'add' => '1.1', ], @@ -406,6 +411,11 @@ class CRM_Core_DAO_CustomGroup extends CRM_Core_DAO { ], 'pseudoconstant' => [ 'callback' => 'CRM_Core_BAO_CustomGroup::getExtendsEntityColumnIdOptions', + 'suffixes' => [ + 'name', + 'label', + 'grouping', + ], ], 'add' => '2.2', ], diff --git a/civicrm/CRM/Core/DAO/Discount.php b/civicrm/CRM/Core/DAO/Discount.php index 1d9810753e9a6de99cfa4141037f35370f38462f..d9d44b82fadd9326ff883d4af539a827ab79eacb 100644 --- a/civicrm/CRM/Core/DAO/Discount.php +++ b/civicrm/CRM/Core/DAO/Discount.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/Discount.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:63b35b634e2bbd8e56e55e87c7d06f91) + * (GenCodeChecksum:83144959b102b14625522e9fae8dd8d8) */ /** @@ -42,7 +42,7 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO { /** * physical tablename for entity being joined to discount, e.g. civicrm_event * - * @var string|null + * @var string * (SQL type: varchar(64)) * Note that values will be retrieved from the database as a string. */ @@ -154,6 +154,7 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_STRING, 'title' => ts('Entity Table'), 'description' => ts('physical tablename for entity being joined to discount, e.g. civicrm_event'), + 'required' => TRUE, 'maxlength' => 64, 'size' => CRM_Utils_Type::BIG, 'usage' => [ @@ -167,6 +168,9 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO { 'entity' => 'Discount', 'bao' => 'CRM_Core_BAO_Discount', 'localizable' => 0, + 'pseudoconstant' => [ + 'callback' => 'CRM_Core_BAO_Discount::entityTables', + ], 'add' => '2.1', ], 'entity_id' => [ @@ -210,6 +214,7 @@ class CRM_Core_DAO_Discount extends CRM_Core_DAO { 'html' => [ 'type' => 'Select', 'label' => ts("Price Set"), + 'controlField' => 'entity_id', ], 'pseudoconstant' => [ 'table' => 'civicrm_price_set', diff --git a/civicrm/CRM/Core/DAO/EntityTag.php b/civicrm/CRM/Core/DAO/EntityTag.php index c099f7b3832e358a131ffed2772de0f85ac57b45..3f57d572bdecb9825380674732ec5df88f4ad08b 100644 --- a/civicrm/CRM/Core/DAO/EntityTag.php +++ b/civicrm/CRM/Core/DAO/EntityTag.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/EntityTag.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:abace77d8add308d67ba45fa73c2f249) + * (GenCodeChecksum:2fccc138a26fe391325fd641c891cd91) */ /** @@ -195,6 +195,7 @@ class CRM_Core_DAO_EntityTag extends CRM_Core_DAO { 'html' => [ 'type' => 'Select', 'label' => ts("Tag"), + 'controlField' => 'entity_table', ], 'pseudoconstant' => [ 'table' => 'civicrm_tag', diff --git a/civicrm/CRM/Core/DAO/MailSettings.php b/civicrm/CRM/Core/DAO/MailSettings.php index 545ad74151c5831680fff65ebef7d4cf758846c2..3b621dcafdf39c38ff0caf282adbf94046e352e5 100644 --- a/civicrm/CRM/Core/DAO/MailSettings.php +++ b/civicrm/CRM/Core/DAO/MailSettings.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/MailSettings.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:2e7847f2338745c805f4d8c8939ac511) + * (GenCodeChecksum:7d9b4af7c9e04acac0e734ce036ea527) */ /** @@ -193,6 +193,60 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO { */ public $is_contact_creation_disabled_if_no_match; + /** + * Ignored for bounce processing, only for email-to-activity + * + * @var bool|string + * (SQL type: tinyint) + * Note that values will be retrieved from the database as a string. + */ + public $is_active; + + /** + * Implicit FK to civicrm_option_value where option_group = activity_type + * + * @var int|string|null + * (SQL type: int unsigned) + * Note that values will be retrieved from the database as a string. + */ + public $activity_type_id; + + /** + * Foreign key to the Campaign. + * + * @var int|string|null + * (SQL type: int unsigned) + * Note that values will be retrieved from the database as a string. + */ + public $campaign_id; + + /** + * Which email recipient to add as the activity source (from, to, cc, bcc). + * + * @var string|null + * (SQL type: varchar(4)) + * Note that values will be retrieved from the database as a string. + */ + public $activity_source; + + /** + * Which email recipients to add as the activity targets (from, to, cc, bcc). + * + * @var string|null + * (SQL type: varchar(16)) + * Note that values will be retrieved from the database as a string. + */ + public $activity_targets; + + /** + * Which email recipients to add as the activity assignees (from, to, cc, bcc). + * + * @var string|null + * (SQL type: varchar(16)) + * Note that values will be retrieved from the database as a string. + */ + public $activity_assignees; + /** * Class constructor. */ @@ -221,6 +275,7 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO { if (!isset(Civi::$statics[__CLASS__]['links'])) { Civi::$statics[__CLASS__]['links'] = static::createReferenceColumns(__CLASS__); Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'domain_id', 'civicrm_domain', 'id'); + Civi::$statics[__CLASS__]['links'][] = new CRM_Core_Reference_Basic(self::getTableName(), 'campaign_id', 'civicrm_campaign', 'id'); CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'links_callback', Civi::$statics[__CLASS__]['links']); } return Civi::$statics[__CLASS__]['links']; @@ -607,6 +662,155 @@ class CRM_Core_DAO_MailSettings extends CRM_Core_DAO { ], 'add' => '5.31', ], + 'is_active' => [ + 'name' => 'is_active', + 'type' => CRM_Utils_Type::T_BOOLEAN, + 'title' => ts('Enabled?'), + 'description' => ts('Ignored for bounce processing, only for email-to-activity'), + 'required' => TRUE, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_mail_settings.is_active', + 'default' => '1', + 'table_name' => 'civicrm_mail_settings', + 'entity' => 'MailSettings', + 'bao' => 'CRM_Core_BAO_MailSettings', + 'localizable' => 0, + 'html' => [ + 'type' => 'CheckBox', + ], + 'add' => '5.66', + ], + 'activity_type_id' => [ + 'name' => 'activity_type_id', + 'type' => CRM_Utils_Type::T_INT, + 'title' => ts('Activity Type'), + 'description' => ts('Implicit FK to civicrm_option_value where option_group = activity_type'), + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_mail_settings.activity_type_id', + 'table_name' => 'civicrm_mail_settings', + 'entity' => 'MailSettings', + 'bao' => 'CRM_Core_BAO_MailSettings', + 'localizable' => 0, + 'html' => [ + 'type' => 'Select', + ], + 'pseudoconstant' => [ + 'optionGroupName' => 'activity_type', + 'optionEditPath' => 'civicrm/admin/options/activity_type', + ], + 'add' => '5.66', + ], + 'campaign_id' => [ + 'name' => 'campaign_id', + 'type' => CRM_Utils_Type::T_INT, + 'title' => ts('Campaign ID'), + 'description' => ts('Foreign key to the Campaign.'), + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_mail_settings.campaign_id', + 'default' => NULL, + 'table_name' => 'civicrm_mail_settings', + 'entity' => 'MailSettings', + 'bao' => 'CRM_Core_BAO_MailSettings', + 'localizable' => 0, + 'FKClassName' => 'CRM_Campaign_DAO_Campaign', + 'html' => [ + 'type' => 'EntityRef', + 'label' => ts("Campaign"), + ], + 'pseudoconstant' => [ + 'table' => 'civicrm_campaign', + 'keyColumn' => 'id', + 'labelColumn' => 'title', + 'prefetch' => 'FALSE', + ], + 'add' => '5.66', + ], + 'activity_source' => [ + 'name' => 'activity_source', + 'type' => CRM_Utils_Type::T_STRING, + 'title' => ts('Activity Source'), + 'description' => ts('Which email recipient to add as the activity source (from, to, cc, bcc).'), + 'maxlength' => 4, + 'size' => CRM_Utils_Type::FOUR, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_mail_settings.activity_source', + 'table_name' => 'civicrm_mail_settings', + 'entity' => 'MailSettings', + 'bao' => 'CRM_Core_BAO_MailSettings', + 'localizable' => 0, + 'html' => [ + 'type' => 'Select', + ], + 'add' => '5.66', + ], + 'activity_targets' => [ + 'name' => 'activity_targets', + 'type' => CRM_Utils_Type::T_STRING, + 'title' => ts('Activity Targets'), + 'description' => ts('Which email recipients to add as the activity targets (from, to, cc, bcc).'), + 'maxlength' => 16, + 'size' => CRM_Utils_Type::TWELVE, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_mail_settings.activity_targets', + 'table_name' => 'civicrm_mail_settings', + 'entity' => 'MailSettings', + 'bao' => 'CRM_Core_BAO_MailSettings', + 'localizable' => 0, + 'serialize' => self::SERIALIZE_COMMA, + 'html' => [ + 'type' => 'Select', + ], + 'add' => '5.66', + ], + 'activity_assignees' => [ + 'name' => 'activity_assignees', + 'type' => CRM_Utils_Type::T_STRING, + 'title' => ts('Activity Assignees'), + 'description' => ts('Which email recipients to add as the activity assignees (from, to, cc, bcc).'), + 'maxlength' => 16, + 'size' => CRM_Utils_Type::TWELVE, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_mail_settings.activity_assignees', + 'table_name' => 'civicrm_mail_settings', + 'entity' => 'MailSettings', + 'bao' => 'CRM_Core_BAO_MailSettings', + 'localizable' => 0, + 'serialize' => self::SERIALIZE_COMMA, + 'html' => [ + 'type' => 'Select', + ], + 'add' => '5.66', + ], ]; CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']); } diff --git a/civicrm/CRM/Core/DAO/UserJob.php b/civicrm/CRM/Core/DAO/UserJob.php index 9917b6b120c0a40a1603a5d375845d5939efa9e5..bde39eeef262719fd04ac1de020001ccd9c52e6f 100644 --- a/civicrm/CRM/Core/DAO/UserJob.php +++ b/civicrm/CRM/Core/DAO/UserJob.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Core/UserJob.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:290ce6f8908a1dfc1590534029171f41) + * (GenCodeChecksum:03487d9109a74e0f60ee656055d205f7) */ /** @@ -395,6 +395,11 @@ class CRM_Core_DAO_UserJob extends CRM_Core_DAO { ], 'pseudoconstant' => [ 'callback' => 'CRM_Core_BAO_UserJob::getTypes', + 'suffixes' => [ + 'name', + 'label', + 'url', + ], ], 'add' => '5.50', ], diff --git a/civicrm/CRM/Core/EntityTokens.php b/civicrm/CRM/Core/EntityTokens.php index 1fb8bcebc57ae78b3fe5fc25477d06cc4add4f74..908937cea0c4167623529aecb06ea12e53a042b3 100644 --- a/civicrm/CRM/Core/EntityTokens.php +++ b/civicrm/CRM/Core/EntityTokens.php @@ -138,6 +138,9 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber { Civi::log()->info('invalid date token'); } } + if ($this->isHTMLTextField($field)) { + return $row->format('text/html')->tokens($entity, $field, (string) $fieldValue); + } $row->format('text/plain')->tokens($entity, $field, (string) $fieldValue); } @@ -362,8 +365,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber { public function checkActive(TokenProcessor $processor) { return ((!empty($processor->context['actionMapping']) // This makes the 'schema context compulsory - which feels accidental - // since recent discu - && $processor->context['actionMapping']->getEntityTable()) || in_array($this->getEntityIDField(), $processor->context['schema'])) && in_array($this->getApiEntityName(), array_keys(\Civi::service('action_object_provider')->getEntities())); + && $processor->context['actionMapping']->getEntityName()) || in_array($this->getEntityIDField(), $processor->context['schema'])) && in_array($this->getApiEntityName(), array_keys(\Civi::service('action_object_provider')->getEntities())); } /** @@ -372,7 +374,7 @@ class CRM_Core_EntityTokens extends AbstractTokenSubscriber { * @param \Civi\ActionSchedule\Event\MailingQueryEvent $e */ public function alterActionScheduleQuery(MailingQueryEvent $e): void { - if ($e->mapping->getEntityTable() !== $this->getExtendableTableName()) { + if ($e->mapping->getEntityTable($e->actionSchedule) !== $this->getExtendableTableName()) { return; } $e->query->select('e.id AS tokenContext_' . $this->getEntityIDField()); diff --git a/civicrm/CRM/Core/Error.php b/civicrm/CRM/Core/Error.php index 5e6b349e574ccd59dfbbbcb2bbfd5e1660d0210b..fd6ae04c147503d78ff4fa7651fc103a02a093f4 100644 --- a/civicrm/CRM/Core/Error.php +++ b/civicrm/CRM/Core/Error.php @@ -468,46 +468,57 @@ class CRM_Core_Error extends PEAR_ErrorStack { * * @param string $name name of debug section * @param mixed $variable reference to variables that we need a trace of - * @param bool $log should we log or return the output - * @param bool $html whether to generate a HTML-escaped output + * @param bool $log + * - TRUE: log to error_log and echo one of: everything / a code / nothing, depending on permissions. + * - FALSE: only return the output as a string. Nothing to error_log or echo. + * @param bool $html whether to HTML-escape output (typically use TRUE unless you know your $variable is safe) * @param bool $checkPermission should we check permissions before displaying output - * useful when we die during initialization and permissioning - * subsystem is not initialized - CRM-13765 + * useful when we die during initialization and permissioning + * subsystem is not initialized - CRM-13765 * * @return string * the generated output + * + * @deprecated prefer Civi::log(). + * @see https://github.com/civicrm/civicrm-core/pull/27138 */ public static function debug($name, $variable = NULL, $log = TRUE, $html = TRUE, $checkPermission = TRUE) { - $error = self::singleton(); - if ($variable === NULL) { $variable = $name; $name = NULL; } $out = print_r($variable, TRUE); - $prefix = NULL; - if ($html) { - $out = htmlspecialchars($out); - if ($name) { - $prefix = "<p>$name</p>"; - } - $out = "{$prefix}<p><pre>$out</pre></p><p></p>"; + $outHTML = htmlspecialchars($out); + + if ($name) { + $outHTML = "<p>" . htmlspecialchars($name) . "</p><p><pre>$outHTML</pre></p>"; + $out = "$name:\n$out"; } - else { - if ($name) { - $prefix = "$name:\n"; + + if ($log) { + // Log the output to error_log with a unique reference. + $unique = substr(md5(random_bytes(32)), 0, 12); + error_log("errorID:$unique\n$out"); + + if (!$checkPermission) { + // Permission system inactive, only emit a reference to content in logfile + echo "Critical error. Please see server logs for errorID:$unique"; + } + else { + if (CRM_Core_Permission::check('view debug output')) { + // We are outputting to the browser. + echo $html ? $outHTML : $out; + } + else { + // No permission; show nothing visible, but include the error in an HTML + // comment in case a dev wants to inspect. + echo $html ? "<!-- critical error reference $unique -->" : ''; + } } - $out = "{$prefix}$out\n"; - } - if ( - $log && - (!$checkPermission || CRM_Core_Permission::check('view debug output')) - ) { - echo $out; } - return $out; + return $html ? $outHTML : $out; } /** diff --git a/civicrm/CRM/Core/Form.php b/civicrm/CRM/Core/Form.php index e671b3f8b6dba0bb7ea1e18aaf2f5b8bb446e11e..88968b816ff0a4eba9a145f6cf4af2b39c36d8aa 100644 --- a/civicrm/CRM/Core/Form.php +++ b/civicrm/CRM/Core/Form.php @@ -114,17 +114,6 @@ class CRM_Core_Form extends HTML_QuickForm_Page { */ protected $_paymentProcessorID; - /** - * Is pay later enabled for the form. - * - * As part of trying to consolidate various payment pages we store processors here & have functions - * at this level to manage them. An alternative would be to have a separate Form that is inherited - * by all forms that allow payment processing. - * - * @var int - */ - protected $_is_pay_later_enabled; - /** * The renderer used for this form * @@ -132,18 +121,6 @@ class CRM_Core_Form extends HTML_QuickForm_Page { */ protected $_renderer; - /** - * An array to hold a list of datefields on the form - * so that they can be converted to ISO in a consistent manner - * - * @var array - * - * e.g on a form declare $_dateFields = array( - * 'receive_date' => array('default' => 'now'), - * ); - */ - protected $_dateFields = []; - /** * Cache the smarty template for efficiency reasons * @@ -198,6 +175,16 @@ class CRM_Core_Form extends HTML_QuickForm_Page { */ protected $exportedValues = []; + /** + * The contact ID that has been authenticated and can be used for checking permissions. + * + * It could be a combination of cid in the url plus a checksum or the logged in user. + * Importantly it can be used to run permission checks on. + * + * @var int + */ + private $authenticatedContactID; + /** * @return string */ @@ -479,7 +466,7 @@ class CRM_Core_Form extends HTML_QuickForm_Page { // Fudge some extra types that quickform doesn't support $inputType = $type; if ($type == 'wysiwyg' || in_array($type, self::$html5Types)) { - $attributes = ($attributes ? $attributes : []) + ['class' => '']; + $attributes = ($attributes ?: []) + ['class' => '']; $attributes['class'] = ltrim($attributes['class'] . " crm-form-$type"); if ($type == 'wysiwyg' && isset($attributes['preset'])) { $attributes['data-preset'] = $attributes['preset']; @@ -490,8 +477,14 @@ class CRM_Core_Form extends HTML_QuickForm_Page { // Like select but accepts rich array data (with nesting, colors, icons, etc) as option list. if ($inputType == 'select2') { $type = 'text'; - $options = $attributes; - $attributes = ($extra ? $extra : []) + ['class' => '']; + $options = []; + foreach ($attributes as $option) { + // Transform options from api4.getFields format + $option['text'] = $option['text'] ?? $option['label']; + unset($option['label']); + $options[] = $option; + } + $attributes = ($extra ?: []) + ['class' => '']; $attributes['class'] = ltrim($attributes['class'] . " crm-select2 crm-form-select2"); $attributes['data-select-params'] = json_encode(['data' => $options, 'multiple' => !empty($attributes['multiple'])]); unset($attributes['multiple']); @@ -1381,7 +1374,7 @@ class CRM_Core_Form extends HTML_QuickForm_Page { */ public function &addRadio($name, $title, $values, $attributes = [], $separator = NULL, $required = FALSE, $optionAttributes = []) { $options = []; - $attributes = $attributes ? $attributes : []; + $attributes = $attributes ?: []; $allowClear = !empty($attributes['allowClear']); unset($attributes['allowClear']); $attributes['id_suffix'] = $name; @@ -1825,6 +1818,9 @@ class CRM_Core_Form extends HTML_QuickForm_Page { $widget = $widget == 'Select2' ? $widget : 'Select'; $props['multiple'] = CRM_Utils_Array::value('multiple', $props, TRUE); } + elseif (!empty($fieldSpec['serialize'])) { + $props['multiple'] = TRUE; + } // Add data for popup link. $canEditOptions = CRM_Core_Permission::check('administer CiviCRM'); @@ -2388,66 +2384,119 @@ class CRM_Core_Form extends HTML_QuickForm_Page { } /** - * Get contact if for a form object. Prioritise - * - cid in URL if 0 (on behalf on someoneelse) - * (@todo consider setting a variable if onbehalf for clarity of downstream 'if's - * - logged in user id if it matches the one in the cid in the URL - * - contact id validated from a checksum from a checksum - * - cid from the url if the caller has ACL permission to view - * - fallback is logged in user (or ? NULL if no logged in user) (@todo wouldn't 0 be more intuitive?) + * Get contact iD for a form object. + * + * This checks the requestedContactID and returns it if + * - it is the number 0 (relevant for online contribution & event forms). + * - it is the logged in user + * - it is validated by a checksum in the url. + * - it is a contact that the logged in user has permission to view + * + * Failing that it returns the logged in user, if any. This is may be useful + * for users taking actions from their contact dashboard (although usually one + * of the variants above would be hit). * * @return NULL|int + * + * @throws \CRM_Core_Exception */ protected function setContactID() { - $tempID = CRM_Utils_Request::retrieve('cid', 'Positive', $this); - if (isset($this->_params) && !empty($this->_params['select_contact_id'])) { - $tempID = $this->_params['select_contact_id']; - } - if (isset($this->_params, $this->_params[0]) && !empty($this->_params[0]['select_contact_id'])) { - // event form stores as an indexed array, contribution form not so much... - $tempID = $this->_params[0]['select_contact_id']; - } + $requestedContactID = $this->getRequestedContactID(); // force to ignore the authenticated user - if ($tempID === '0' || $tempID === 0) { + if ($requestedContactID === 0) { // we set the cid on the form so that this will be retained for the Confirm page // in the multi-page form & prevent us returning the $userID when this is called // from that page // we don't really need to set it when $tempID is set because the params have that stored $this->set('cid', 0); - CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $tempID]); - return (int) $tempID; - } - - $userID = CRM_Core_Session::getLoggedInContactID(); - - if (!is_null($tempID) && $tempID === $userID) { - CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $tempID]); - return (int) $userID; + CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => $requestedContactID]); + return (int) $requestedContactID; } - //check if this is a checksum authentication - $userChecksum = CRM_Utils_Request::retrieve('cs', 'String', $this); - if ($userChecksum) { - //check for anonymous user. - $validUser = CRM_Contact_BAO_Contact_Utils::validChecksum($tempID, $userChecksum); - if ($validUser) { - CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $tempID]); - CRM_Core_Resources::singleton()->addVars('coreForm', ['checksum' => $userChecksum]); - return $tempID; + if ($requestedContactID === $this->getAuthenticatedContactID()) { + CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => $requestedContactID]); + // Check if this is a checksum authentication. + if ($this->getAuthenticatedCheckSumContactID()) { + CRM_Core_Resources::singleton()->addVars('coreForm', ['checksum' => CRM_Utils_Request::retrieve('cs', 'String', $this)]); } + return $requestedContactID; } + // check if user has permission, CRM-12062 - elseif ($tempID && CRM_Contact_BAO_Contact_Permission::allow($tempID)) { - CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $tempID]); - return $tempID; + if ($requestedContactID && CRM_Contact_BAO_Contact_Permission::allow($requestedContactID)) { + CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $requestedContactID]); + return $requestedContactID; } + $userID = CRM_Core_Session::getLoggedInContactID(); if (is_numeric($userID)) { CRM_Core_Resources::singleton()->addVars('coreForm', ['contact_id' => (int) $userID]); } return is_numeric($userID) ? $userID : NULL; } + /** + * Get the contact ID that has been requested (via url or form value). + * + * Ideally the forms would override this so only the cid in the url + * would be checked in the shared form function. + * + * @return int + * @throws \CRM_Core_Exception + */ + public function getRequestedContactID(): ?int { + if (isset($this->_params) && !empty($this->_params['select_contact_id'])) { + return (int) $this->_params['select_contact_id']; + } + if (isset($this->_params, $this->_params[0]) && !empty($this->_params[0]['select_contact_id'])) { + // Event form stores as an indexed array, contribution form not so much... + return (int) $this->_params[0]['select_contact_id']; + } + $urlContactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this); + return is_numeric($urlContactID) ? (int) $urlContactID : NULL; + } + + /** + * Get the authenticated contact ID. + * + * This is either + * - a contact ID authenticated by checksum + * - the logged in user + * - 0 for none. + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @return int + * + * @throws \CRM_Core_Exception + */ + public function getAuthenticatedContactID() : int { + if ($this->authenticatedContactID === NULL) { + $this->authenticatedContactID = $this->getAuthenticatedCheckSumContactID(); + if (!$this->authenticatedContactID) { + $this->authenticatedContactID = (int) CRM_Core_Session::getLoggedInContactID(); + } + } + return $this->authenticatedContactID; + } + + /** + * Get the contact ID authenticated as a valid by checksum. + * + * @return int + * @throws \CRM_Core_Exception + */ + protected function getAuthenticatedCheckSumContactID(): int { + $requestedContactID = $this->getRequestedContactID(); + $userChecksum = CRM_Utils_Request::retrieve('cs', 'String', $this); + if ($userChecksum && CRM_Contact_BAO_Contact_Utils::validChecksum($requestedContactID, $userChecksum)) { + return $requestedContactID; + } + return 0; + } + /** * Get the contact id that the form is being submitted for. * diff --git a/civicrm/CRM/Core/Form/RecurringEntity.php b/civicrm/CRM/Core/Form/RecurringEntity.php index 181f7cc14077d1012ce19e3c5f1d37e993d5f114..6390726a755f03cb287224ba0f5c831656acdead 100644 --- a/civicrm/CRM/Core/Form/RecurringEntity.php +++ b/civicrm/CRM/Core/Form/RecurringEntity.php @@ -349,6 +349,7 @@ class CRM_Core_Form_RecurringEntity { CRM_Core_BAO_ActionSchedule::deleteRecord($params); unset($params['id']); } + $dbParams['name'] = 'repeat_' . $params['used_for'] . '_' . $params['entity_id']; $actionScheduleObj = CRM_Core_BAO_ActionSchedule::writeRecord($dbParams); //exclude dates @@ -392,7 +393,7 @@ class CRM_Core_Form_RecurringEntity { } } - //Set type for API + // FIXME: This is the worst way possible to convert a table name to an api entity name $apiEntityType = explode("_", $type); if (!empty($apiEntityType[1])) { $apiType = $apiEntityType[1]; @@ -403,10 +404,11 @@ class CRM_Core_Form_RecurringEntity { if (!empty(CRM_Core_BAO_RecurringEntity::$_recurringEntityHelper[$params['entity_table']]['pre_delete_func']) && !empty(CRM_Core_BAO_RecurringEntity::$_recurringEntityHelper[$params['entity_table']]['helper_class']) ) { - $preDeleteResult = call_user_func_array(CRM_Core_BAO_RecurringEntity::$_recurringEntityHelper[$params['entity_table']]['pre_delete_func'], [$params['entity_id']]); - if (!empty($preDeleteResult)) { - call_user_func([CRM_Core_BAO_RecurringEntity::$_recurringEntityHelper[$params['entity_table']]['helper_class'], $preDeleteResult]); - } + // FIXME: This calls `CRM_Event_Form_ManageEvent_Repeat::checkRegistrationForEvents` + // which then sets the static variable `CRM_Core_BAO_RecurringEntity::$_entitiesToBeDeleted` + // which is then accessed below and used to delete events with no registrations. + // I can't think of a worse way to pass a variable back from a function. + call_user_func_array(CRM_Core_BAO_RecurringEntity::$_recurringEntityHelper[$params['entity_table']]['pre_delete_func'], [$params['entity_id']]); } //Ready to execute delete on entities if it has delete function set if (!empty(CRM_Core_BAO_RecurringEntity::$_recurringEntityHelper[$params['entity_table']]['delete_func']) && diff --git a/civicrm/CRM/Core/Form/Renderer.php b/civicrm/CRM/Core/Form/Renderer.php index f85323feeafcbdf78e2e80ec5dd775d63d2c5593..92e23e7a505e533825a9fb5a29b15c3d72f9694f 100644 --- a/civicrm/CRM/Core/Form/Renderer.php +++ b/civicrm/CRM/Core/Form/Renderer.php @@ -165,16 +165,20 @@ class CRM_Core_Form_Renderer extends HTML_QuickForm_Renderer_ArraySmarty { } } - $class = $element->getAttribute('class'); + $class = $element->getAttribute('class') ?? ''; $type = $element->getType(); if (!$class) { if ($type == 'text' || $type == 'password') { $size = $element->getAttribute('size'); if (!empty($size)) { - $class = self::$_sizeMapper[$size] ?? NULL; + $class = self::$_sizeMapper[$size] ?? ''; } } } + // When select2 is an <input> it requires comma-separated values instead of an array + if (in_array($type, ['text', 'hidden']) && str_contains($class, 'crm-select2') && is_array($element->getValue())) { + $element->setValue(implode(',', $element->getValue())); + } if ($type == 'select' && $element->getAttribute('multiple')) { $type = 'multiselect'; diff --git a/civicrm/CRM/Core/I18n.php b/civicrm/CRM/Core/I18n.php index 7484564f5bf50c4609b2f7946817671fedcb95ca..2c789e152ec8aff1bcae61dba59c53974a66c6cf 100644 --- a/civicrm/CRM/Core/I18n.php +++ b/civicrm/CRM/Core/I18n.php @@ -774,7 +774,7 @@ class CRM_Core_I18n { */ public static function getLocale() { global $tsLocale; - return $tsLocale ? $tsLocale : 'en_US'; + return $tsLocale ?: 'en_US'; } /** diff --git a/civicrm/CRM/Core/I18n/SchemaStructure.php b/civicrm/CRM/Core/I18n/SchemaStructure.php index 87ca894a09b437b75e95c418228dd9cd9b766f69..672da8d722c1457c19e0b4dd27f20355e5c34a6d 100644 --- a/civicrm/CRM/Core/I18n/SchemaStructure.php +++ b/civicrm/CRM/Core/I18n/SchemaStructure.php @@ -30,7 +30,7 @@ class CRM_Core_I18n_SchemaStructure { if (!$result) { $result = [ 'civicrm_location_type' => [ - 'display_name' => "varchar(64) NOT NULL COMMENT 'Location Type Display Name.'", + 'display_name' => "varchar(64) NOT NULL DEFAULT '' COMMENT 'Location Type Display Name.'", ], 'civicrm_option_group' => [ 'title' => "varchar(255) COMMENT 'Option Group title.'", @@ -58,7 +58,7 @@ class CRM_Core_I18n_SchemaStructure { 'label' => "varchar(128) COMMENT 'Label for Membership Status'", ], 'civicrm_survey' => [ - 'title' => "varchar(255) NOT NULL COMMENT 'Title of the Survey.'", + 'title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Title of the Survey.'", 'instructions' => "text COMMENT 'Script instructions for volunteers to use for the survey.'", 'thankyou_title' => "varchar(255) COMMENT 'Title for Thank-you page (header title tag, and display at the top of the page).'", 'thankyou_text' => "text COMMENT 'text and html allowed. displayed above result on success page'", @@ -67,7 +67,7 @@ class CRM_Core_I18n_SchemaStructure { 'label' => "varchar(255) COMMENT 'localized label for display of this status type'", ], 'civicrm_case_type' => [ - 'title' => "varchar(64) NOT NULL COMMENT 'Natural language name for Case Type'", + 'title' => "varchar(64) NOT NULL DEFAULT '' COMMENT 'Natural language name for Case Type'", 'description' => "varchar(255) COMMENT 'Description of the Case Type'", ], 'civicrm_tell_friend' => [ @@ -78,27 +78,27 @@ class CRM_Core_I18n_SchemaStructure { 'thankyou_text' => "text COMMENT 'Thank you message displayed on success page.'", ], 'civicrm_custom_group' => [ - 'title' => "varchar(64) NOT NULL COMMENT 'Friendly Name.'", + 'title' => "varchar(64) NOT NULL DEFAULT '' COMMENT 'Friendly Name.'", 'help_pre' => "text COMMENT 'Description and/or help text to display before fields in form.'", 'help_post' => "text COMMENT 'Description and/or help text to display after fields in form.'", ], 'civicrm_custom_field' => [ - 'label' => "varchar(255) NOT NULL COMMENT 'Text for form field label (also friendly name for administering this custom property).'", + 'label' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Text for form field label (also friendly name for administering this custom property).'", 'help_pre' => "text COMMENT 'Description and/or help text to display before this field.'", 'help_post' => "text COMMENT 'Description and/or help text to display after this field.'", ], 'civicrm_option_value' => [ - 'label' => "varchar(512) NOT NULL COMMENT 'Option string as displayed to users - e.g. the label in an HTML OPTION tag.'", + 'label' => "varchar(512) NOT NULL DEFAULT '' COMMENT 'Option string as displayed to users - e.g. the label in an HTML OPTION tag.'", 'description' => "text COMMENT 'Optional description.'", ], 'civicrm_group' => [ - 'title' => "varchar(255) NOT NULL COMMENT 'Name of Group.'", - 'frontend_title' => "varchar(255) NOT NULL COMMENT 'Alternative public title for this Group.'", + 'title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of Group.'", + 'frontend_title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Alternative public title for this Group.'", 'frontend_description' => "text DEFAULT NULL COMMENT 'Alternative public description of the group.'", ], 'civicrm_contribution_page' => [ - 'title' => "varchar(255) NOT NULL COMMENT 'Contribution Page title. For top of page display'", - 'frontend_title' => "varchar(255) NOT NULL COMMENT 'Contribution Page Public title'", + 'title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Contribution Page title. For top of page display'", + 'frontend_title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Contribution Page Public title'", 'intro_text' => "text COMMENT 'Text and html allowed. Displayed below title.'", 'pay_later_text' => "text COMMENT 'The text displayed to the user in the main form'", 'pay_later_receipt' => "text COMMENT 'The receipt sent to the user instead of the normal receipt text'", @@ -112,16 +112,16 @@ class CRM_Core_I18n_SchemaStructure { 'footer_text' => "text COMMENT 'Text and html allowed. Displayed at the bottom of the first page of the contribution wizard.'", ], 'civicrm_product' => [ - 'name' => "varchar(255) NOT NULL COMMENT 'Required product/premium name'", + 'name' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Required product/premium name'", 'description' => "text COMMENT 'Optional description of the product/premium.'", 'options' => "text COMMENT 'Store comma-delimited list of color, size, etc. options for the product.'", ], 'civicrm_payment_processor' => [ - 'title' => "varchar(255) NOT NULL COMMENT 'Name of processor when shown to CiviCRM administrators.'", - 'frontend_title' => "varchar(255) NOT NULL COMMENT 'Name of processor when shown to users making a payment.'", + 'title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of processor when shown to CiviCRM administrators.'", + 'frontend_title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of processor when shown to users making a payment.'", ], 'civicrm_membership_type' => [ - 'name' => "varchar(128) NOT NULL COMMENT 'Name of Membership Type'", + 'name' => "varchar(128) NOT NULL DEFAULT '' COMMENT 'Name of Membership Type'", 'description' => "varchar(255) COMMENT 'Description of Membership Type'", ], 'civicrm_membership_block' => [ @@ -131,7 +131,7 @@ class CRM_Core_I18n_SchemaStructure { 'renewal_text' => "text COMMENT 'Text to display for member renewal'", ], 'civicrm_price_set' => [ - 'title' => "varchar(255) NOT NULL COMMENT 'Displayed title for the Price Set.'", + 'title' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Displayed title for the Price Set.'", 'help_pre' => "text COMMENT 'Description and/or help text to display before fields in form.'", 'help_post' => "text COMMENT 'Description and/or help text to display after fields in form.'", ], @@ -139,7 +139,7 @@ class CRM_Core_I18n_SchemaStructure { 'label' => "varchar(255) COMMENT 'dashlet title'", ], 'civicrm_uf_group' => [ - 'title' => "varchar(64) NOT NULL COMMENT 'Form title.'", + 'title' => "varchar(64) NOT NULL DEFAULT '' COMMENT 'Form title.'", 'frontend_title' => "varchar(64) COMMENT 'Profile Form Public title'", 'help_pre' => "text COMMENT 'Description and/or help text to display before fields in form.'", 'help_post' => "text COMMENT 'Description and/or help text to display after fields in form.'", @@ -149,10 +149,10 @@ class CRM_Core_I18n_SchemaStructure { 'civicrm_uf_field' => [ 'help_post' => "text COMMENT 'Description and/or help text to display after this field.'", 'help_pre' => "text COMMENT 'Description and/or help text to display before this field.'", - 'label' => "varchar(255) NOT NULL COMMENT 'To save label for fields.'", + 'label' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'To save label for fields.'", ], 'civicrm_price_field' => [ - 'label' => "varchar(255) NOT NULL COMMENT 'Text for form field label (also friendly name for administering this field).'", + 'label' => "varchar(255) NOT NULL DEFAULT '' COMMENT 'Text for form field label (also friendly name for administering this field).'", 'help_pre' => "text COMMENT 'Description and/or help text to display before this field.'", 'help_post' => "text COMMENT 'Description and/or help text to display after this field.'", ], @@ -447,7 +447,9 @@ class CRM_Core_I18n_SchemaStructure { 'type' => "Text", ], 'pay_later_receipt' => [ - 'type' => "Text", + 'type' => "RichTextEditor", + 'rows' => "8", + 'cols' => "60", ], 'initial_amount_label' => [ 'label' => "Initial Amount Label", diff --git a/civicrm/CRM/Core/Invoke.php b/civicrm/CRM/Core/Invoke.php index 83e9e721bccc9ca4ea6e2d870b6fc64c441ffb0f..64c1f77460568817579a40178fd8de605c74d36a 100644 --- a/civicrm/CRM/Core/Invoke.php +++ b/civicrm/CRM/Core/Invoke.php @@ -207,6 +207,9 @@ class CRM_Core_Invoke { self::registerPharHandler(); $config = CRM_Core_Config::singleton(); + + // WISHLIST: if $item is a web-service route, swap prepend to $civicrm_url_defaults + if ($config->userFramework == 'Joomla' && $item) { $config->userFrameworkURLVar = 'task'; diff --git a/civicrm/CRM/Core/Lock.php b/civicrm/CRM/Core/Lock.php index f72c655d59ff88a5cfc0afef3603539392e4292f..129e5db5998db8e34c11964ca20601a4f8cddaf6 100644 --- a/civicrm/CRM/Core/Lock.php +++ b/civicrm/CRM/Core/Lock.php @@ -175,7 +175,7 @@ class CRM_Core_Lock implements \Civi\Core\Lock\LockInterface { $query = "SELECT GET_LOCK( %1, %2 )"; $params = [ 1 => [$this->_id, 'String'], - 2 => [$timeout ? $timeout : $this->_timeout, 'Integer'], + 2 => [$timeout ?: $this->_timeout, 'Integer'], ]; $res = CRM_Core_DAO::singleValueQuery($query, $params); if ($res) { diff --git a/civicrm/CRM/Core/ManagedEntities.php b/civicrm/CRM/Core/ManagedEntities.php index 52e8d1c0c4b9c5b8a2c7cc9ee0e6fbdaf92ccc9c..0c16cb264469cb95aa10885ec33a668552dd2679 100644 --- a/civicrm/CRM/Core/ManagedEntities.php +++ b/civicrm/CRM/Core/ManagedEntities.php @@ -523,16 +523,18 @@ class CRM_Core_ManagedEntities { */ protected function getDeclarations($modules = NULL): array { $declarations = []; - // Exclude components if given a module name. - if (!$modules || $modules === ['civicrm']) { - foreach (CRM_Core_Component::getEnabledComponents() as $component) { - $declarations = array_merge($declarations, $component->getManagedEntities()); - } - } CRM_Utils_Hook::managed($declarations, $modules); $this->validate($declarations); - foreach (array_keys($declarations) as $name) { - $declarations[$name] += ['name' => $name]; + // FIXME: Some well-meaning developer added this a long time ago to support associative arrays + // that use the array index as the declaration name. But it probably never worked, because by the time it gets to this point, + // lots of implementations of `hook_civicrm_managed()` would have run `$declarations = array_merge($declarations, [...])` + // which would have reset the indexes. + // Adding a noisy deprecation notice for now, then we should remove this block: + foreach ($declarations as $index => $declaration) { + if (empty($declaration['name'])) { + CRM_Core_Error::deprecatedWarning(sprintf('Managed entity "%s" declared by extension "%s" without a name.', $index, $declaration['module'])); + $declarations[$index] += ['name' => $index]; + } } return $declarations; } diff --git a/civicrm/CRM/Core/Menu.php b/civicrm/CRM/Core/Menu.php index d22073f07b03dbc56c8f8a90c357b1cadb1b1df7..2a23ee2053279b11a4e43688699c1941744eb6e4 100644 --- a/civicrm/CRM/Core/Menu.php +++ b/civicrm/CRM/Core/Menu.php @@ -280,6 +280,44 @@ class CRM_Core_Menu { self::buildAdminLinks($menu); } + /** + * Determine whether a route should canonically use a frontend or backend UI. + * + * @param string $path + * Ex: 'civicrm/contribute/transact' + * @return bool + * TRUE if the route is marked with 'is_public=1'. + * @internal + * We may wish to revise the metadata to allow more distinctions. In that case, `isPublicRoute()` + * would probably get replaced by something else. + */ + public static function isPublicRoute(string $path): bool { + // A page-view may include hundreds of links - so don't hit DB for every link. Use cache. + // In default+demo builds, the list of public routes is much smaller than the list of + // private routes (roughly 1:10; ~50 entries vs ~450 entries). Cache the smaller list. + $cache = Civi::cache('long'); + $index = $cache->get('PublicRouteIndex'); + if ($index === NULL) { + $routes = CRM_Core_DAO::executeQuery('SELECT id, path FROM civicrm_menu WHERE is_public = 1') + ->fetchMap('id', 'path'); + if (empty($routes)) { + Civi::log()->warning('isPublicRoute() should not be called before the menu has been built.'); + return FALSE; + } + $index = array_fill_keys(array_values($routes), TRUE); + $cache->set('PublicRouteIndex', $index); + } + + $parts = explode('/', $path); + while (count($parts) > 1) { + if (isset($index[implode('/', $parts)])) { + return TRUE; + } + array_pop($parts); + } + return FALSE; + } + /** * This function recomputes menu from xml and populates civicrm_menu. * @@ -291,6 +329,7 @@ class CRM_Core_Menu { $query = 'TRUNCATE civicrm_menu'; CRM_Core_DAO::executeQuery($query); } + Civi::cache('long')->delete('PublicRouteIndex'); $menuArray = self::items($truncate); self::build($menuArray); @@ -522,7 +561,7 @@ class CRM_Core_Menu { 'id', 'name' ); } - $menu[$path]['component_id'] = $componentId ? $componentId : NULL; + $menu[$path]['component_id'] = $componentId ?: NULL; $cache[$compPath] = $menu[$path]['component_id']; } } diff --git a/civicrm/CRM/Core/Page/AJAX/Location.php b/civicrm/CRM/Core/Page/AJAX/Location.php index 2faae46bf279650cfd9fefafd6ff0744abd47e1c..0e47c0a46600d4dea37ab0fb9fe44548aa162f53 100644 --- a/civicrm/CRM/Core/Page/AJAX/Location.php +++ b/civicrm/CRM/Core/Page/AJAX/Location.php @@ -226,7 +226,7 @@ class CRM_Core_Page_AJAX_Location { } $fld = "address[1][{$element}]"; $value = $location['address'][1][$element] ?? NULL; - $value = $value ? $value : ""; + $value = $value ?: ""; $result[str_replace([ '][', '[', @@ -244,7 +244,7 @@ class CRM_Core_Page_AJAX_Location { for ($i = 1; $i < 3; $i++) { $fld = "{$block}[{$i}][{$element}]"; $value = $location[$block][$i][$element] ?? NULL; - $value = $value ? $value : ""; + $value = $value ?: ""; $result[str_replace([ '][', '[', diff --git a/civicrm/CRM/Core/Page/Basic.php b/civicrm/CRM/Core/Page/Basic.php index 93a62940748756828803273061db6de5ed1bc511..355e764841a450783a6229c8ccd9bb14a7bd2cfb 100644 --- a/civicrm/CRM/Core/Page/Basic.php +++ b/civicrm/CRM/Core/Page/Basic.php @@ -451,4 +451,16 @@ abstract class CRM_Core_Page_Basic extends CRM_Core_Page { return []; } + /** + * Get the menu path corresponding to an action on this entity + * + * @param string $linkAction + * e.g. "view" + * @return string|null + * e.g. "civicrm/activity?reset=1&action=view&id=[id]" + */ + public function getLinkPath(string $linkAction): ?string { + return $this->getBAOName()::getEntityPaths()[$linkAction] ?? NULL; + } + } diff --git a/civicrm/CRM/Core/Payment/PayPalIPN.php b/civicrm/CRM/Core/Payment/PayPalIPN.php index 369e4c176ae527dc170349ca760b84569c28de3e..23be16e1afd08038501836e257282391c55a30ff 100644 --- a/civicrm/CRM/Core/Payment/PayPalIPN.php +++ b/civicrm/CRM/Core/Payment/PayPalIPN.php @@ -308,7 +308,7 @@ class CRM_Core_Payment_PayPalIPN extends CRM_Core_Payment_BaseIPN { ]; foreach ($lookup as $name => $paypalName) { $value = $this->retrieve($paypalName, 'String', FALSE); - $input[$name] = $value ? $value : NULL; + $input[$name] = $value ?: NULL; } $input['is_test'] = $this->retrieve('test_ipn', 'Integer', FALSE); diff --git a/civicrm/CRM/Core/Payment/PayPalProIPN.php b/civicrm/CRM/Core/Payment/PayPalProIPN.php index 5b039d3b41360f47031426c631fbe5a859832ae0..2106e136d4253109d4b07323a0f785c8aec85552 100644 --- a/civicrm/CRM/Core/Payment/PayPalProIPN.php +++ b/civicrm/CRM/Core/Payment/PayPalProIPN.php @@ -480,7 +480,7 @@ class CRM_Core_Payment_PayPalProIPN extends CRM_Core_Payment_BaseIPN { ]; foreach ($lookup as $name => $paypalName) { $value = $this->retrieve($paypalName, 'String', FALSE); - $input[$name] = $value ? $value : NULL; + $input[$name] = $value ?: NULL; } $input['is_test'] = $this->retrieve('test_ipn', 'Integer', FALSE); diff --git a/civicrm/CRM/Core/Permission.php b/civicrm/CRM/Core/Permission.php index 4bcdf5eda3b7a91e910af8beb9901c1c119a812e..64a7db180bdfd1a8d1979d2783c1c9114807679c 100644 --- a/civicrm/CRM/Core/Permission.php +++ b/civicrm/CRM/Core/Permission.php @@ -996,9 +996,6 @@ class CRM_Core_Permission { 'get' => [], // managed by _civicrm_api3_check_edit_permissions 'update' => [], - 'getquick' => [ - ['access CiviCRM', 'access AJAX API'], - ], 'duplicatecheck' => [ 'access CiviCRM', ], diff --git a/civicrm/CRM/Core/Permission/Base.php b/civicrm/CRM/Core/Permission/Base.php index ac9fbea5499a180a5f14699cb3ba6b48460c97e0..2ecb7e553daa73ab448a0275f5b0cca40ae88146 100644 --- a/civicrm/CRM/Core/Permission/Base.php +++ b/civicrm/CRM/Core/Permission/Base.php @@ -143,14 +143,14 @@ class CRM_Core_Permission_Base { public function group($groupType = NULL, $excludeHidden = TRUE) { $userId = CRM_Core_Session::getLoggedInContactID(); $domainId = CRM_Core_Config::domainID(); - if (!isset(Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId])) { - Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId] = Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId] = []; + if (!isset(Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId])) { + Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId] = Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId] = []; } - $groupKey = $groupType ? $groupType : 'all'; + $groupKey = $groupType ?: 'all'; - if (!isset(Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) { - Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = []; + if (!isset(Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) { + Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = []; $groups = CRM_Core_PseudoConstant::allGroup($groupType, $excludeHidden); @@ -159,21 +159,21 @@ class CRM_Core_Permission_Base { // immediately rather than dilute it further $this->_editAdminUser = $this->_viewAdminUser = TRUE; $this->_editPermission = $this->_viewPermission = TRUE; - Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = $groups; - Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = $groups; - return Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]; + Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = $groups; + Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = $groups; + return Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]; } elseif ($this->check('view all contacts')) { $this->_viewAdminUser = TRUE; $this->_viewPermission = TRUE; - Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = $groups; + Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey] = $groups; } $ids = CRM_ACL_API::group(CRM_Core_Permission::VIEW, NULL, 'civicrm_group', $groups); if (!empty($ids)) { foreach (array_values($ids) as $id) { - $title = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $id, 'title'); - Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey][$id] = $title; + $title = $groups[$id] ?? CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $id, 'title'); + Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey][$id] = $title; $this->_viewPermission = TRUE; } } @@ -181,16 +181,16 @@ class CRM_Core_Permission_Base { $ids = CRM_ACL_API::group(CRM_Core_Permission::EDIT, NULL, 'civicrm_group', $groups); if (!empty($ids)) { foreach (array_values($ids) as $id) { - $title = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $id, 'title'); - Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey][$id] = $title; - Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey][$id] = $title; + $title = $groups[$id] ?? CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Group', $id, 'title'); + Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey][$id] = $title; + Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey][$id] = $title; $this->_editPermission = TRUE; $this->_viewPermission = TRUE; } } } - return Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]; + return Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]; } /** @@ -209,7 +209,7 @@ class CRM_Core_Permission_Base { public function groupClause($type, &$tables, &$whereTables) { $userId = CRM_Core_Session::getLoggedInContactID(); $domainId = CRM_Core_Config::domainID(); - if (!isset(Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId])) { + if (!isset(Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId])) { $this->group(); } @@ -219,18 +219,18 @@ class CRM_Core_Permission_Base { if ($this->_editAdminUser) { $clause = ' ( 1 ) '; } - elseif (empty(Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) { + elseif (empty(Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) { $clause = ' ( 0 ) '; } else { $clauses = []; - $groups = implode(', ', Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]); - $clauses[] = ' ( civicrm_group_contact.group_id IN ( ' . implode(', ', array_keys(Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) . " ) AND civicrm_group_contact.status = 'Added' ) "; + $groups = implode(', ', Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]); + $clauses[] = ' ( civicrm_group_contact.group_id IN ( ' . implode(', ', array_keys(Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) . " ) AND civicrm_group_contact.status = 'Added' ) "; $tables['civicrm_group_contact'] = 1; $whereTables['civicrm_group_contact'] = 1; // foreach group that is potentially a saved search, add the saved search clause - foreach (array_keys(Civi::$statics[__CLASS__]['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]) as $id) { + foreach (array_keys(Civi::$statics['CRM_ACL_API']['editPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]) as $id) { $group = new CRM_Contact_DAO_Group(); $group->id = $id; if ($group->find(TRUE) && $group->saved_search_id) { @@ -250,13 +250,13 @@ class CRM_Core_Permission_Base { if ($this->_viewAdminUser) { $clause = ' ( 1 ) '; } - elseif (empty(Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) { + elseif (empty(Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) { $clause = ' ( 0 ) '; } else { $clauses = []; - $groups = implode(', ', Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]); - $clauses[] = ' civicrm_group.id IN (' . implode(', ', array_keys(Civi::$statics[__CLASS__]['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) . " ) "; + $groups = implode(', ', Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey]); + $clauses[] = ' civicrm_group.id IN (' . implode(', ', array_keys(Civi::$statics['CRM_ACL_API']['viewPermissionedGroups_' . $domainId . '_' . $userId][$groupKey])) . " ) "; $tables['civicrm_group'] = 1; $whereTables['civicrm_group'] = 1; $clause = ' ( ' . implode(' OR ', $clauses) . ' ) '; diff --git a/civicrm/CRM/Core/PrevNextCache/Redis.php b/civicrm/CRM/Core/PrevNextCache/Redis.php index 5b70cf74dc56af007e2022328911a85d50ed0751..0295db9dc27085cf6f42313a22b21c421a8f2417 100644 --- a/civicrm/CRM/Core/PrevNextCache/Redis.php +++ b/civicrm/CRM/Core/PrevNextCache/Redis.php @@ -23,7 +23,7 @@ */ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { - const TTL = 21600; + private const TTL = 21600; /** * @var Redis @@ -45,16 +45,34 @@ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { $this->prefix .= \CRM_Utils_Cache::DELIMITER . 'prevnext' . \CRM_Utils_Cache::DELIMITER; } + /** + * Get the time-to-live. + * + * This is likely to be made configurable in future. + * + * @return int + */ + public function getTTL() : int { + return self::TTL; + } + public function fillWithSql($cacheKey, $sql, $sqlParams = []) { $dao = CRM_Core_DAO::executeQuery($sql, $sqlParams, FALSE); [$allKey, $dataKey, , $maxScore] = $this->initCacheKey($cacheKey); - + $first = TRUE; while ($dao->fetch()) { [, $entity_id, $data] = array_values($dao->toArray()); $maxScore++; $this->redis->zAdd($allKey, $maxScore, $entity_id); + if ($first) { + $this->redis->expire($allKey, $this->getTTL()); + } $this->redis->hSet($dataKey, $entity_id, $data); + if ($first) { + $this->redis->expire($dataKey, $this->getTTL()); + } + $first = FALSE; } return TRUE; @@ -62,11 +80,18 @@ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { public function fillWithArray($cacheKey, $rows) { [$allKey, $dataKey, , $maxScore] = $this->initCacheKey($cacheKey); - + $first = TRUE; foreach ($rows as $row) { $maxScore++; $this->redis->zAdd($allKey, $maxScore, $row['entity_id1']); + if ($first) { + $this->redis->expire($allKey, $this->getTTL()); + } $this->redis->hSet($dataKey, $row['entity_id1'], $row['data']); + if ($first) { + $this->redis->expire($dataKey, $this->getTTL()); + } + $first = FALSE; } return TRUE; @@ -82,14 +107,19 @@ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { $selKey = $this->key($cacheKey, 'sel'); if ($action === 'select') { + $first = TRUE; foreach ((array) $ids as $id) { $score = $this->redis->zScore($allKey, $id); $this->redis->zAdd($selKey, $score, $id); + if ($first) { + $this->redis->expire($selKey, $this->getTTL()); + } + $first = FALSE; } } elseif ($action === 'unselect' && $ids === NULL) { $this->redis->del($selKey); - $this->redis->expire($selKey, self::TTL); + $this->redis->expire($selKey, $this->getTTL()); } elseif ($action === 'unselect' && $ids !== NULL) { foreach ((array) $ids as $id) { @@ -112,16 +142,14 @@ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { } return [$cacheKey => $result]; } - elseif ($action === 'getall') { + if ($action === 'getall') { $result = []; foreach ($this->redis->zRange($allKey, 0, -1) as $entity_id) { $result[$entity_id] = 1; } return [$cacheKey => $result]; } - else { - throw new \CRM_Core_Exception("Unrecognized action: $action"); - } + throw new \CRM_Core_Exception("Unrecognized action: $action"); } public function getPositions($cacheKey, $id1) { @@ -173,9 +201,12 @@ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { } elseif ($id !== NULL && $cacheKey !== NULL) { // Delete a specific contact, within a specific cache. - $this->redis->zRem($this->key($cacheKey, 'all'), $id); - $this->redis->zRem($this->key($cacheKey, 'sel'), $id); - $this->redis->hDel($this->key($cacheKey, 'data'), $id); + $deleted = $this->redis->zRem($this->key($cacheKey, 'all'), $id); + if ($deleted) { + // If they were in the 'all' key they might be in the more specific 'sel' and 'data' keys. + $this->redis->zRem($this->key($cacheKey, 'sel'), $id); + $this->redis->hDel($this->key($cacheKey, 'data'), $id); + } } elseif ($id !== NULL && $cacheKey === NULL) { // Delete a specific contact, across all prevnext caches. @@ -228,10 +259,6 @@ class CRM_Core_PrevNextCache_Redis implements CRM_Core_PrevNextCache_Interface { $selKey = $this->key($cacheKey, 'sel'); $dataKey = $this->key($cacheKey, 'data'); - $this->redis->expire($allKey, self::TTL); - $this->redis->expire($dataKey, self::TTL); - $this->redis->expire($selKey, self::TTL); - $maxScore = 0; foreach ($this->redis->zRange($allKey, -1, -1, TRUE) as $lastElem => $lastScore) { $maxScore = $lastScore; diff --git a/civicrm/CRM/Core/PseudoConstant.php b/civicrm/CRM/Core/PseudoConstant.php index 2caae6d9c393883f72f4f52f28b4d18e96d7481e..4a86234f1f837fc7b9964b93c44428b2c00103cf 100644 --- a/civicrm/CRM/Core/PseudoConstant.php +++ b/civicrm/CRM/Core/PseudoConstant.php @@ -803,7 +803,7 @@ WHERE id = %1"; */ public static function allGroup($groupType = NULL, $excludeHidden = TRUE) { $condition = CRM_Contact_BAO_Group::groupTypeCondition($groupType, $excludeHidden); - $groupKey = ($groupType ? $groupType : 'null') . !empty($excludeHidden); + $groupKey = ($groupType ?: 'null') . !empty($excludeHidden); if (!isset(Civi::$statics[__CLASS__]['groups']['allGroup'][$groupKey])) { self::populate(Civi::$statics[__CLASS__]['groups']['allGroup'][$groupKey], 'CRM_Contact_DAO_Group', FALSE, 'title', 'is_active', $condition); @@ -1533,7 +1533,7 @@ WHERE id = %1 } // Filter domain specific options if (in_array('domain_id', $availableFields)) { - $wheres[] = 'domain_id = ' . CRM_Core_Config::domainID() . ' OR domain_id is NULL'; + $wheres[] = '(domain_id = ' . CRM_Core_Config::domainID() . ' OR domain_id is NULL)'; } $queryParams = [ 1 => [$params['keyColumn'], 'MysqlColumnNameOrAlias'], diff --git a/civicrm/CRM/Core/ScheduledJob.php b/civicrm/CRM/Core/ScheduledJob.php index 6fac4e195c870e447f82db6c6483f980fb487f09..34cfd57bcf8b3b867e10a52b7018fe3e27ef1554 100644 --- a/civicrm/CRM/Core/ScheduledJob.php +++ b/civicrm/CRM/Core/ScheduledJob.php @@ -18,10 +18,24 @@ */ class CRM_Core_ScheduledJob { + /** + * @var int + * @deprecated + */ public $version = 3; + /** + * @var int + */ + public $id; + public $name = NULL; + /** + * @var string + */ + public $parameters = ''; + public $apiParams = []; public $remarks = []; @@ -30,31 +44,16 @@ class CRM_Core_ScheduledJob { * @param array $params */ public function __construct($params) { + // Fixme - setting undeclared class properties! foreach ($params as $name => $param) { $this->$name = $param; } - // version is set to 3 by default - if different number - // defined in params, it's replaced later on, however, - // it's practically useles, since it seems none of api v2 - // will work properly in cron job setup. It might become - // useful when/if api v4 starts to emerge and will need - // testing in the cron job setup. To permanenty require - // hardcoded api version, it's enough to move below line - // under following if block. - $this->apiParams = ['version' => $this->version]; - - if (!empty($this->parameters)) { - $lines = explode("\n", $this->parameters); - - foreach ($lines as $line) { - $pair = explode("=", $line); - if ($pair === FALSE || count($pair) != 2 || trim($pair[0]) == '' || trim($pair[1]) == '') { - $this->remarks[] .= 'Malformed parameters!'; - break; - } - $this->apiParams[trim($pair[0])] = trim($pair[1]); - } + try { + $this->apiParams = CRM_Core_BAO_Job::parseParameters($this->parameters); + } + catch (CRM_Core_Exception $e) { + $this->remarks[] = $e->getMessage(); } } @@ -137,7 +136,4 @@ class CRM_Core_ScheduledJob { return ($now >= $nextTime); } - public function __destruct() { - } - } diff --git a/civicrm/CRM/Core/SelectValues.php b/civicrm/CRM/Core/SelectValues.php index 0ecdede8c0f0a10a466870d496caa461db477dc2..0573b1a8a1f161d16bbd1b56cc8f3fa2ef11f1a6 100644 --- a/civicrm/CRM/Core/SelectValues.php +++ b/civicrm/CRM/Core/SelectValues.php @@ -488,6 +488,19 @@ class CRM_Core_SelectValues { return $addr; } + public static function smsProvider(): array { + $providers = CRM_SMS_BAO_Provider::getProviders(NULL, NULL, TRUE, 'is_default desc, title'); + $result = []; + foreach ($providers as $provider) { + $result[] = [ + 'id' => $provider['id'], + 'name' => $provider['name'], + 'label' => $provider['title'], + ]; + } + return $result; + } + /** * Different type of Mailing Tokens. * @@ -1105,28 +1118,34 @@ class CRM_Core_SelectValues { $includeEmail = civicrm_api3('setting', 'getvalue', ['name' => 'includeEmailInName', 'group' => 'Search Preferences']); $options = [ 'sort_name' => $includeEmail ? ts('Name/Email') : ts('Name'), - 'contact_id' => ts('Contact ID'), + 'id' => ts('Contact ID'), 'external_identifier' => ts('External ID'), 'first_name' => ts('First Name'), 'last_name' => ts('Last Name'), - 'email' => ts('Email'), - 'phone_numeric' => ts('Phone'), - 'street_address' => ts('Street Address'), - 'city' => ts('City'), - 'postal_code' => ts('Postal Code'), + 'email_primary.email' => ts('Email'), + 'phone_primary.phone_numeric' => ts('Phone'), + 'address_primary.street_address' => ts('Street Address'), + 'address_primary.city' => ts('City'), + 'address_primary.postal_code' => ts('Postal Code'), 'job_title' => ts('Job Title'), ]; - $custom = civicrm_api3('CustomField', 'get', [ - 'return' => ['name', 'label', 'custom_group_id.title'], - 'custom_group_id.extends' => ['IN' => array_merge(['Contact'], CRM_Contact_BAO_ContactType::basicTypes())], - 'data_type' => ['NOT IN' => ['ContactReference', 'Date', 'File']], - 'custom_group_id.is_active' => 1, - 'is_active' => 1, - 'is_searchable' => 1, - 'options' => ['sort' => ['custom_group_id.weight', 'weight'], 'limit' => 0], + $custom = civicrm_api4('CustomField', 'get', [ + 'checkPermissions' => FALSE, + 'select' => ['name', 'label', 'custom_group_id.name', 'custom_group_id.title', 'option_group_id'], + 'where' => [ + ['custom_group_id.extends', 'IN', array_merge(['Contact'], CRM_Contact_BAO_ContactType::basicTypes())], + ['data_type', 'NOT IN', ['ContactReference', 'Date', 'File']], + ['custom_group_id.is_active', '=', TRUE], + ['is_active', '=', TRUE], + ['is_searchable', '=', TRUE], + ], + 'orderBy' => [ + 'custom_group_id.weight' => 'ASC', + 'weight' => 'ASC', + ], ]); - foreach ($custom['values'] as $field) { - $options['custom_' . $field['name']] = $field['custom_group_id.title'] . ': ' . $field['label']; + foreach ($custom as $field) { + $options[$field['custom_group_id.name'] . '.' . $field['name'] . ($field['option_group_id'] ? ':label' : '')] = $field['custom_group_id.title'] . ': ' . $field['label']; } return $options; } @@ -1193,6 +1212,13 @@ class CRM_Core_SelectValues { ]; } + public static function beforeAfter() { + return [ + 'before' => ts('Before'), + 'after' => ts('After'), + ]; + } + /** * Columns from the option_value table which may or may not be used by each option_group. * @@ -1229,24 +1255,4 @@ class CRM_Core_SelectValues { return $options; } - /** - * Limit-to options for schedule reminders. - * - * @return array - */ - public static function getLimitToValues(): array { - return [ - [ - 'id' => 1, - 'name' => 'limit', - 'label' => ts('Limit to'), - ], - [ - 'id' => 2, - 'name' => 'add', - 'label' => ts('Also include'), - ], - ]; - } - } diff --git a/civicrm/CRM/Core/Selector/Controller.php b/civicrm/CRM/Core/Selector/Controller.php index a3723979b13ed11a013c9d7a24041bbfbb9cd9d0..c2cc8d196aa6c8b3324329107c682b5f1da398e2 100644 --- a/civicrm/CRM/Core/Selector/Controller.php +++ b/civicrm/CRM/Core/Selector/Controller.php @@ -183,8 +183,8 @@ class CRM_Core_Selector_Controller { public function __construct($object, $pageID, $sortID, $action, $store = NULL, $output = self::TEMPLATE, $prefix = NULL, $case = NULL) { $this->_object = $object; - $this->_pageID = $pageID ? $pageID : 1; - $this->_sortID = $sortID ? $sortID : NULL; + $this->_pageID = $pageID ?: 1; + $this->_sortID = $sortID ?: NULL; $this->_action = $action; $this->_store = $store; $this->_output = $output; diff --git a/civicrm/CRM/Core/Session.php b/civicrm/CRM/Core/Session.php index 3f0011cc78cc8ddfa7689226d19e8db1064fa33c..5f5f46589e7cf0c9122c528a0acdf36e92133752 100644 --- a/civicrm/CRM/Core/Session.php +++ b/civicrm/CRM/Core/Session.php @@ -207,18 +207,18 @@ class CRM_Core_Session { } /** - * Store the variable with the value in the session scope. - * - * This function takes a name, value pair and stores this - * in the session scope. Not sure what happens if we try - * to store complex objects in the session. I suspect it - * is supported but we need to verify this - * + * Store a name-value pair in the session scope. * * @param string $name * Name of the variable. * @param mixed $value - * Value of the variable. + * Value of the variable. It is safe to use scalar values here, as well as + * arrays whose leaf nodes are scalar values. Instances of built-in classes + * like DateTime may be safe, although the retrieved objects will be copies + * of the ones saved here. Instances of custom classes (such as those + * defined in CiviCRM core or extension code) will probably not be rebuilt + * correctly on retrieval. Resources and other special variable types are + * not safe to use. References will be dereferenced. * @param string $prefix * A string to prefix the keys in the session with. */ @@ -325,7 +325,7 @@ class CRM_Core_Session { $ts = $this->get($name, 'timer'); if (!$ts || $ts < time() - $expire) { $this->set($name, time(), 'timer'); - return $ts ? $ts : 'not set'; + return $ts ?: 'not set'; } return FALSE; } @@ -502,7 +502,7 @@ class CRM_Core_Session { 'text' => $text, 'title' => $title, 'type' => $type, - 'options' => $options ? $options : NULL, + 'options' => $options ?: NULL, ]; } } diff --git a/civicrm/CRM/Core/Smarty/plugins/block.url.php b/civicrm/CRM/Core/Smarty/plugins/block.url.php new file mode 100644 index 0000000000000000000000000000000000000000..71814af2a1b1fbb3c772913d6f91f250314b1580 --- /dev/null +++ b/civicrm/CRM/Core/Smarty/plugins/block.url.php @@ -0,0 +1,60 @@ +<?php + +/** + * Generate a URL. This is thin wrapper for the Civi::url() helper. + * + * @see Civi::url() + * + * Ex: Generate a backend URL. + * {url}backend://civicrm/admin?reset=1{/url} + * + * Ex: Generate a backend URL. Assign it to a Smarty variable. + * {url assign=tmpVar}backend://civicrm/admin?reset=1{/url} + * + * Ex: Generate a backend URL. Set optional flags: (t)ext, (s)sl, (a)bsolute. + * {url flags=tsa}backend://civicrm/admin?reset=1{/url} + * + * Ex: Generate a URL in the current (active) routing scheme. Add named variables. (Values are escaped). + * {url verb="Eat" target="Apples and bananas"}//civicrm/fruit?method=[verb]&data=[target]{/url} + * + * Ex: As above, but use numerical variables. + * {url 1="Eat" 2="Apples and bananas"}//civicrm/fruit?method=[1]&data=[2]{/url} + * + * Ex: Generate a URL. Add some pre-escaped variables using Smarty {$foo}. + * {assign var=myEscapedAction value="Eat"} + * {assign var=myEscapedData value="Apples+and+bananas"} + * {url}//civicrm/fruit?method={$myEscapedAction}&data={$myEscapedData}{/url} + * + * @param array $params + * The following parameters have specific meanings: + * - "assign" (string) - Assign output to a Smarty variable + * - "flags" (string) - List of options, as per `Civi::url(...$flags)` + * All other parameters will be passed-through as variables for the URL. + * @param string $text + * Contents of block. + * @param CRM_Core_Smarty $smarty + * The Smarty object. + * @return string + */ +function smarty_block_url($params, $text, &$smarty) { + if ($text === NULL) { + return NULL; + } + + $flags = 'h' . ($params['flags'] ?? ''); + $assign = $params['assign'] ?? NULL; + unset($params['flags'], $params['assign']); + + $url = (string) Civi::url($text, $flags)->addVars($params); + + // This could be neat, but see discussion in CRM_Core_Smarty_plugins_UrlTest for why it's currently off. + // $url->setVarsCallback([$smarty, 'get_template_vars']); + + if ($assign !== NULL) { + $smarty->assign([$assign => $url]); + return ''; + } + else { + return $url; + } +} diff --git a/civicrm/CRM/Core/Smarty/plugins/function.crmSqlData.php b/civicrm/CRM/Core/Smarty/plugins/function.crmSqlData.php new file mode 100644 index 0000000000000000000000000000000000000000..3336fdd0397fb4ca4a78ec361776d7b591a12386 --- /dev/null +++ b/civicrm/CRM/Core/Smarty/plugins/function.crmSqlData.php @@ -0,0 +1,68 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +/** + * + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + */ + +/** + * Evaluate a `*.sqldata.php` file. + * + * @param array $params + * 'file' => Glob expression pointing to 0+ files + * 'exclude' => Regex of files to exclude + * @param CRM_Core_Smarty $smarty + * @return string + * The generated SQL + * @internal + */ +function smarty_function_crmSqlData($params, &$smarty) { + if ($smarty->security) { + throw new \CRM_Core_Exception("crmSqlData not allowed in secure mode"); + // In theory, there's nothing actually wrong with running in secure more. We just don't need it. + // If that changes, then be sure to double-check that the file-name sanitization is good. + } + + $civicrmDir = dirname(__DIR__, 4); + $files = glob($civicrmDir . DIRECTORY_SEPARATOR . $params['file']); + if (!empty($params['exclude'])) { + $files = preg_grep($params['exclude'], $files, PREG_GREP_INVERT); + } + foreach ($files as $file) { + if (!CRM_Utils_File::isChildPath($civicrmDir . DIRECTORY_SEPARATOR . 'sql', $file) || !str_ends_with($file, '.sqldata.php') ||!file_exists($file)) { + throw new \CRM_Core_Exception("Invalid sqldata file: $file"); + } + } + + $items = []; + $classes = []; + foreach ($files as $file) { + /** @var CRM_Core_CodeGen_AbstractSqlData $sqlData */ + $sqlData = include $file; + $items[] = $sqlData; + $classes[get_class($sqlData)] = 1; + } + + if (count($items) > 1) { + if (count($classes) > 1) { + throw new \CRM_Core_Exception("Can only batch-load sqldata files with same type. (Batch: " . $params['file'] . ')'); + } + uasort($items, [array_keys($classes)[0], 'compare']); + } + + $result = ''; + foreach ($items as $item) { + $result .= $item->toSQL(); + } + return $result; +} diff --git a/civicrm/CRM/Core/xml/Menu/Admin.xml b/civicrm/CRM/Core/xml/Menu/Admin.xml index 6eb998424ae5401217cc337a19ccf8eeb57d832f..9d7d5f4c093d2a190392bc79a2bfb89d97ed2c13 100644 --- a/civicrm/CRM/Core/xml/Menu/Admin.xml +++ b/civicrm/CRM/Core/xml/Menu/Admin.xml @@ -295,7 +295,7 @@ <desc>Schedule Reminders.</desc> <page_callback>CRM_Admin_Page_ScheduleReminders</page_callback> <access_callback>1</access_callback> - <access_arguments>administer CiviCRM data;edit all events</access_arguments> + <access_arguments>administer CiviCRM data</access_arguments> <adminGroup>Communications</adminGroup> <weight>40</weight> </item> @@ -598,10 +598,8 @@ <path>civicrm/admin/job/add</path> <title>Add Scheduled Job</title> <desc>Add a periodially running task.</desc> - <page_callback>CRM_Admin_Page_Job</page_callback> + <page_callback>CRM_Admin_Form_Job</page_callback> <access_arguments>access CiviCRM,administer CiviCRM system</access_arguments> - <adminGroup>System Settings</adminGroup> - <weight>1371</weight> </item> <item> <path>civicrm/admin/job/edit</path> @@ -705,16 +703,6 @@ <title>Price Field Options</title> <page_callback>CRM_Price_Page_Option</page_callback> </item> - <item> - <path>civicrm/ajax/mapping</path> - <page_callback>CRM_Admin_Page_AJAX::mappingList</page_callback> - <access_arguments>administer CiviCRM,access CiviCRM</access_arguments> - </item> - <item> - <path>civicrm/ajax/recipientListing</path> - <page_callback>CRM_Admin_Page_AJAX::recipientListing</page_callback> - <access_arguments>access CiviEvent,access CiviCRM</access_arguments> - </item> <item> <path>civicrm/admin/sms/provider</path> <title>Sms Providers</title> diff --git a/civicrm/CRM/Core/xml/Menu/Misc.xml b/civicrm/CRM/Core/xml/Menu/Misc.xml index 96584fc654f20746b84324e76b8564cbbd88d525..222e7ece8f2005a066e99de3b017518152841460 100644 --- a/civicrm/CRM/Core/xml/Menu/Misc.xml +++ b/civicrm/CRM/Core/xml/Menu/Misc.xml @@ -107,11 +107,6 @@ <access_arguments>access CiviCRM</access_arguments> <title>CiviCRM API v3</title> </item> - <item> - <path>civicrm/ajax/apiexample</path> - <page_callback>CRM_Admin_Page_APIExplorer::getExampleFile</page_callback> - <access_arguments>access CiviCRM</access_arguments> - </item> <item> <path>civicrm/ajax/apidoc</path> <page_callback>CRM_Admin_Page_APIExplorer::getDoc</page_callback> @@ -141,6 +136,7 @@ <path>civicrm/asset/builder</path> <page_callback>\Civi\Core\AssetBuilder::pageRun</page_callback> <access_arguments>*always allow*</access_arguments> + <is_public>1</is_public> </item> <item> <path>civicrm/contribute/ajax/tableview</path> diff --git a/civicrm/CRM/Custom/Form/DeleteGroup.php b/civicrm/CRM/Custom/Form/DeleteGroup.php index 1fed29e919ce7be5faa53b40d85ddcd8edd0a244..1c498a21264f1a4eace08cdc5b1cf0080900d8f0 100644 --- a/civicrm/CRM/Custom/Form/DeleteGroup.php +++ b/civicrm/CRM/Custom/Form/DeleteGroup.php @@ -48,14 +48,13 @@ class CRM_Custom_Form_DeleteGroup extends CRM_Core_Form { CRM_Core_BAO_CustomGroup::retrieve($params, $defaults); $this->_title = $defaults['title']; - //check wheter this contain any custom fields + //check if this contains any custom fields $customField = new CRM_Core_DAO_CustomField(); $customField->custom_group_id = $this->_id; if ($customField->find(TRUE)) { - CRM_Core_Session::setStatus(ts("The Group '%1' cannot be deleted! You must Delete all custom fields in this group prior to deleting the group.", [1 => $this->_title]), ts('Deletion Error'), 'error'); - $url = CRM_Utils_System::url('civicrm/admin/custom/group', "reset=1"); - CRM_Utils_System::redirect($url); + CRM_Core_Error::statusBounce(ts("The Group '%1' cannot be deleted! You must Delete all custom fields in this group prior to deleting the group.", [1 => $this->_title]), + CRM_Utils_System::url('civicrm/admin/custom/group', "reset=1")); return TRUE; } $this->assign('title', $this->_title); diff --git a/civicrm/CRM/Custom/Page/AJAX.php b/civicrm/CRM/Custom/Page/AJAX.php index 5ddbb19ccd19426f7f86ceef8cdd57c72ddf884e..2deb349df6cc18b7e615b9a8c9daf976bdddef96 100644 --- a/civicrm/CRM/Custom/Page/AJAX.php +++ b/civicrm/CRM/Custom/Page/AJAX.php @@ -93,7 +93,7 @@ class CRM_Custom_Page_AJAX { /** * Get list of Multi Record Fields. */ - public static function getMultiRecordFieldList() { + public static function getMultiRecordFieldList(): void { $params = CRM_Core_Page_AJAX::defaultSortAndPagerParams(0, 10); $params['cid'] = CRM_Utils_Type::escape($_GET['cid'], 'Integer'); @@ -118,7 +118,7 @@ class CRM_Custom_Page_AJAX { $obj->_DTparams['sort'] = $params['sortBy']; } - list($fields, $attributes) = $obj->browse(); + [$fields, $attributes] = $obj->browse(); // format params and add class attributes $fieldList = []; diff --git a/civicrm/CRM/Custom/Page/Group.php b/civicrm/CRM/Custom/Page/Group.php index 0c336c490128dc75dfb73b0f83c1fd82d3a08a42..231d6fea62fe80c2def4e2ca4dabc34628f03325 100644 --- a/civicrm/CRM/Custom/Page/Group.php +++ b/civicrm/CRM/Custom/Page/Group.php @@ -48,34 +48,40 @@ class CRM_Custom_Page_Group extends CRM_Core_Page { 'url' => 'civicrm/admin/custom/group/field', 'qs' => 'reset=1&action=browse&gid=%%id%%', 'title' => ts('View and Edit Custom Fields'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::BROWSE), ], CRM_Core_Action::PREVIEW => [ 'name' => ts('Preview'), 'url' => 'civicrm/admin/custom/group/preview', 'qs' => 'reset=1&gid=%%id%%', 'title' => ts('Preview Custom Data Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::PREVIEW), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Settings'), 'url' => 'civicrm/admin/custom/group/edit', 'qs' => 'action=update&reset=1&id=%%id%%', 'title' => ts('Edit Custom Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Custom Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Custom Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/custom/group/delete', 'qs' => 'reset=1&id=%%id%%', 'title' => ts('Delete Custom Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Event/ActionMapping.php b/civicrm/CRM/Event/ActionMapping.php index 424090141c024e4afb6ab54c6e3d06f9ca66e38a..94507944380876ddbf5dfdba02793395d4707288 100644 --- a/civicrm/CRM/Event/ActionMapping.php +++ b/civicrm/CRM/Event/ActionMapping.php @@ -28,21 +28,22 @@ abstract class CRM_Event_ActionMapping extends \Civi\ActionSchedule\MappingBase return 'Participant'; } - public function getStatusHeader(): string { - return ts('Participant Status'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + $spec->getFieldByName('entity_value') + ->setLabel($this->getLabel()); + $spec->getFieldByName('entity_status') + ->setLabel(ts('Participant Status')); + $spec->getFieldByName('recipient') + ->setLabel(ts('Recipients')); + $spec->getFieldByName('recipient_listing') + ->setRequired($spec->getValue('recipient') === 'participant_role'); } - public function getStatusLabels($value): array { + public function getStatusLabels(?array $entityValue): array { return CRM_Event_PseudoConstant::participantStatus(NULL, NULL, 'label'); } - /** - * Get a list of available date fields. - * - * @return array - * Array(string $fieldName => string $fieldLabel). - */ - public function getDateFields(): array { + public function getDateFields(?array $entityValue = NULL): array { return [ 'start_date' => ts('Event Start'), 'end_date' => ts('Event End'), @@ -51,6 +52,37 @@ abstract class CRM_Event_ActionMapping extends \Civi\ActionSchedule\MappingBase ]; } + public static function getLimitToOptions(): array { + // Events only support "limit", not "add". + return CRM_Utils_Array::findAll(parent::getLimitToOptions(), ['name' => 'limit']); + } + + /** + * Check access to event when the ScheduledReminder form is embedded on an event page + * + * @param array $entityValue + * An array of event ids + * @return bool + */ + public function checkAccess(array $entityValue): bool { + if (!$entityValue) { + return FALSE; + } + // This field is technically multivalued. In reality it should only ever contain one value, + // (because a ScheduledReminder form can only be embedded on one event page at a time) + // but since it's an array, a loop seems appropriate. + foreach ($entityValue as $eventId) { + $access = \Civi\Api4\Event::checkAccess() + ->setAction('update') + ->addValue('id', $eventId) + ->execute()->first()['access']; + if (!$access) { + return FALSE; + } + } + return TRUE; + } + /** * Get a list of recipient types. * @@ -61,8 +93,9 @@ abstract class CRM_Event_ActionMapping extends \Civi\ActionSchedule\MappingBase * array(string $value => string $label). * Ex: array('assignee' => 'Activity Assignee'). */ - public function getRecipientTypes(): array { - return \CRM_Core_OptionGroup::values('event_contacts', FALSE, FALSE, FALSE, NULL, 'label', TRUE, FALSE, 'name'); + public static function getRecipientTypes(): array { + $types = \CRM_Core_OptionGroup::values('event_contacts', FALSE, FALSE, FALSE, NULL, 'label', TRUE, FALSE, 'name'); + return $types + parent::getRecipientTypes(); } /** @@ -105,7 +138,7 @@ abstract class CRM_Event_ActionMapping extends \Civi\ActionSchedule\MappingBase $selectedValues = (array) \CRM_Utils_Array::explodePadded($schedule->entity_value); $selectedStatuses = (array) \CRM_Utils_Array::explodePadded($schedule->entity_status); - $query = \CRM_Utils_SQL_Select::from("{$this->getEntityTable()} e")->param($defaultParams); + $query = \CRM_Utils_SQL_Select::from('civicrm_participant e')->param($defaultParams); $query['casAddlCheckFrom'] = 'civicrm_event r'; $query['casContactIdField'] = 'e.contact_id'; $query['casEntityIdField'] = 'e.id'; diff --git a/civicrm/CRM/Event/ActionMapping/ByEvent.php b/civicrm/CRM/Event/ActionMapping/ByEvent.php index ddb8107245b415a01db8bd498b9b8c2ce7e4e47e..e5489630b8eab9a76a46b7aacff1193928dd16b9 100644 --- a/civicrm/CRM/Event/ActionMapping/ByEvent.php +++ b/civicrm/CRM/Event/ActionMapping/ByEvent.php @@ -19,12 +19,16 @@ class CRM_Event_ActionMapping_ByEvent extends CRM_Event_ActionMapping { return self::EVENT_NAME_MAPPING_ID; } + public function getName(): string { + return 'event_id'; + } + public function getLabel(): string { - return ts('Event Name'); + return ts('Event'); } public function getValueLabels(): array { - return CRM_Event_PseudoConstant::event(NULL, FALSE, "( is_template IS NULL OR is_template != 1 )"); + return CRM_Event_PseudoConstant::event(NULL, FALSE, "is_template = 0"); } } diff --git a/civicrm/CRM/Event/ActionMapping/ByTemplate.php b/civicrm/CRM/Event/ActionMapping/ByTemplate.php index 7ee4744d1c9850cea8efc1c378e8f816d5e3ceeb..229cbeeed6992c0fd78f6a185f54be59cd51611e 100644 --- a/civicrm/CRM/Event/ActionMapping/ByTemplate.php +++ b/civicrm/CRM/Event/ActionMapping/ByTemplate.php @@ -19,6 +19,10 @@ class CRM_Event_ActionMapping_ByTemplate extends CRM_Event_ActionMapping { return self::EVENT_TPL_MAPPING_ID; } + public function getName(): string { + return 'event_template'; + } + public function getLabel(): string { return ts('Event Template'); } diff --git a/civicrm/CRM/Event/ActionMapping/ByType.php b/civicrm/CRM/Event/ActionMapping/ByType.php index fdba67d9e62b8eadca31441affa00d71e6cb8d50..78641ad8cf5dfc11b6234e3a2425793165c7a2da 100644 --- a/civicrm/CRM/Event/ActionMapping/ByType.php +++ b/civicrm/CRM/Event/ActionMapping/ByType.php @@ -19,6 +19,10 @@ class CRM_Event_ActionMapping_ByType extends CRM_Event_ActionMapping { return self::EVENT_TYPE_MAPPING_ID; } + public function getName(): string { + return 'event_type'; + } + public function getLabel(): string { return ts('Event Type'); } @@ -27,4 +31,8 @@ class CRM_Event_ActionMapping_ByType extends CRM_Event_ActionMapping { return CRM_Event_PseudoConstant::eventType(); } + public function checkAccess(array $entityValue): bool { + return FALSE; + } + } diff --git a/civicrm/CRM/Event/BAO/Event.php b/civicrm/CRM/Event/BAO/Event.php index 7f45b9ae4a52edfb5fff51c995bceecd1a74f49e..f2a5e6dee730e45ed8c40d273a8d03b6bb837f15 100644 --- a/civicrm/CRM/Event/BAO/Event.php +++ b/civicrm/CRM/Event/BAO/Event.php @@ -268,7 +268,7 @@ class CRM_Event_BAO_Event extends CRM_Event_DAO_Event implements \Civi\Core\Hook $query = " SELECT `id`, `title`, `start_date` FROM `civicrm_event` -WHERE ( civicrm_event.is_template IS NULL OR civicrm_event.is_template = 0 )"; +WHERE ( civicrm_event.is_template = 0 )"; if (!empty($id)) { $op = is_array($id) ? 'IN' : '='; @@ -363,8 +363,8 @@ WHERE ( civicrm_event.is_template IS NULL OR civicrm_event.is_template = 0 )"; SELECT count(id) as total_events FROM civicrm_event WHERE civicrm_event.is_active = 1 AND - ( civicrm_event.is_template IS NULL OR civicrm_event.is_template = 0) AND - civicrm_event.start_date >= DATE_SUB( NOW(), INTERVAL 7 day ) + civicrm_event.is_template = 0 AND + (civicrm_event.start_date >= DATE_SUB(NOW(), INTERVAL 7 day) OR (civicrm_event.end_date IS NOT NULL AND civicrm_event.end_date >= NOW())) $validEventIDs"; $dao = CRM_Core_DAO::executeQuery($query); @@ -373,9 +373,7 @@ WHERE civicrm_event.is_active = 1 AND $eventSummary['total_events'] = $dao->total_events; } - if (empty($eventSummary) || - $dao->total_events == 0 - ) { + if (empty($eventSummary['total_events'])) { return $eventSummary; } @@ -425,8 +423,8 @@ LEFT JOIN civicrm_tell_friend ON ( civicrm_tell_friend.entity_id = civicrm_even LEFT JOIN civicrm_pcp_block ON ( civicrm_pcp_block.entity_id = civicrm_event.id AND civicrm_pcp_block.entity_table = 'civicrm_event') LEFT JOIN civicrm_recurring_entity ON ( civicrm_event.id = civicrm_recurring_entity.entity_id AND civicrm_recurring_entity.entity_table = 'civicrm_event' ) WHERE civicrm_event.is_active = 1 AND - ( civicrm_event.is_template IS NULL OR civicrm_event.is_template = 0) AND - civicrm_event.start_date >= DATE_SUB( NOW(), INTERVAL 7 day ) + civicrm_event.is_template = 0 AND + (civicrm_event.start_date >= DATE_SUB(NOW(), INTERVAL 7 day) OR (civicrm_event.end_date IS NOT NULL AND civicrm_event.end_date >= NOW())) $validEventIDs ORDER BY civicrm_event.start_date ASC $event_summary_limit @@ -579,7 +577,7 @@ $event_summary_limit $countedRoles = CRM_Event_PseudoConstant::participantRole(NULL, 'filter = 1'); $nonCountedRoles = CRM_Event_PseudoConstant::participantRole(NULL, '( filter = 0 OR filter IS NULL )'); $countedStatus = CRM_Event_PseudoConstant::participantStatus(NULL, 'is_counted = 1'); - $nonCountedStatus = CRM_Event_PseudoConstant::participantStatus(NULL, '( is_counted = 0 OR is_counted IS NULL )'); + $nonCountedStatus = CRM_Event_PseudoConstant::participantStatus(NULL, 'is_counted = 0'); $countedStatusANDRoles = array_merge($countedStatus, $countedRoles); $nonCountedStatusANDRoles = array_merge($nonCountedStatus, $nonCountedRoles); @@ -827,7 +825,7 @@ LEFT JOIN civicrm_option_value ON ( civicrm_event.event_type_id = civicrm_option_value.value AND civicrm_option_value.option_group_id = %1 ) WHERE civicrm_event.is_active = 1 - AND (is_template = 0 OR is_template IS NULL) + AND is_template = 0 {$publicCondition} {$dateCondition}"; @@ -1271,7 +1269,7 @@ WHERE civicrm_event.is_active = 1 * Add the custom fields OR array of participant's profile info. * * @param int $id - * @param string $name + * @param string $name eg. customPre or additionalCustomPost to denote the profile location. * @param int $cid * @param \CRM_Core_Smarty $template * @param int $participantId @@ -1378,9 +1376,7 @@ WHERE civicrm_event.is_active = 1 while ($grp->fetch()) { $grpTitles[] = $grp->title; } - if (!empty($grpTitles) && - CRM_Utils_Array::value('title', CRM_Utils_Array::value('group', $fields)) - ) { + if (!empty($grpTitles) && !empty($fields['group']['title'])) { $values[$fields['group']['title']] = implode(', ', $grpTitles); } unset($fields['group']); @@ -1443,22 +1439,15 @@ WHERE civicrm_event.is_active = 1 } } - if (count($val)) { - $template->assign($name, $val); - } - - if (count($groupTitles)) { - $template->assign($name . '_grouptitle', $groupTitles); - } + $template->assign($name, $val); + $template->assign($name . '_grouptitle', $groupTitles); //return if we only require array of participant's info. if ($returnResults) { - if (count($val)) { + if ($val) { return [$val, $groupTitles]; } - else { - return NULL; - } + return NULL; } } @@ -2055,66 +2044,68 @@ WHERE ce.loc_block_id = $locBlockId"; * * @param int $eventId * @param int $permissionType + * @param int $userId * * @return bool|array * Whether the user has permission for this event (or if eventId=NULL an array of permissions) * @throws \CRM_Core_Exception */ - public static function checkPermission(int $eventId, $permissionType = CRM_Core_Permission::VIEW) { + public static function checkPermission(int $eventId, $permissionType = CRM_Core_Permission::VIEW, $userId = NULL) { + $userId = $userId ?? CRM_Core_Session::getLoggedInContactID(); switch ($permissionType) { case CRM_Core_Permission::EDIT: // We also set the cached "view" permission to TRUE if "edit" is TRUE - if (isset(Civi::$statics[__CLASS__]['permission']['edit'][$eventId])) { - return Civi::$statics[__CLASS__]['permission']['edit'][$eventId]; + if (isset(Civi::$statics[__CLASS__]["perm_$userId"]['edit'][$eventId])) { + return Civi::$statics[__CLASS__]["perm_$userId"]['edit'][$eventId]; } - Civi::$statics[__CLASS__]['permission']['edit'][$eventId] = FALSE; + Civi::$statics[__CLASS__]["perm_$userId"]['edit'][$eventId] = FALSE; [$allEvents, $createdEvents] = self::checkPermissionGetInfo($eventId); // Note: for a multisite setup, a user with edit all events, can edit all events // including those from other sites - if (($permissionType == CRM_Core_Permission::EDIT) && CRM_Core_Permission::check('edit all events')) { - Civi::$statics[__CLASS__]['permission']['edit'][$eventId] = TRUE; - Civi::$statics[__CLASS__]['permission']['view'][$eventId] = TRUE; + if (($permissionType == CRM_Core_Permission::EDIT) && CRM_Core_Permission::check('edit all events', $userId)) { + Civi::$statics[__CLASS__]["perm_$userId"]['edit'][$eventId] = TRUE; + Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId] = TRUE; } - elseif (in_array($eventId, CRM_ACL_API::group(CRM_Core_Permission::EDIT, NULL, 'civicrm_event', $allEvents, $createdEvents))) { - Civi::$statics[__CLASS__]['permission']['edit'][$eventId] = TRUE; - Civi::$statics[__CLASS__]['permission']['view'][$eventId] = TRUE; + elseif (in_array($eventId, CRM_ACL_API::group(CRM_Core_Permission::EDIT, $userId, 'civicrm_event', $allEvents, $createdEvents))) { + Civi::$statics[__CLASS__]["perm_$userId"]['edit'][$eventId] = TRUE; + Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId] = TRUE; } - return Civi::$statics[__CLASS__]['permission']['edit'][$eventId]; + return Civi::$statics[__CLASS__]["perm_$userId"]['edit'][$eventId]; case CRM_Core_Permission::VIEW: - if (isset(Civi::$statics[__CLASS__]['permission']['view'][$eventId])) { - return Civi::$statics[__CLASS__]['permission']['view'][$eventId]; + if (isset(Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId])) { + return Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId]; } - Civi::$statics[__CLASS__]['permission']['view'][$eventId] = FALSE; + Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId] = FALSE; [$allEvents, $createdEvents] = self::checkPermissionGetInfo($eventId); - if (CRM_Core_Permission::check('access CiviEvent')) { - if (in_array($eventId, CRM_ACL_API::group(CRM_Core_Permission::VIEW, NULL, 'civicrm_event', $allEvents, array_keys($createdEvents)))) { + if (CRM_Core_Permission::check('access CiviEvent', $userId)) { + if (in_array($eventId, CRM_ACL_API::group(CRM_Core_Permission::VIEW, $userId, 'civicrm_event', $allEvents, array_keys($createdEvents)))) { // User created this event so has permission to view it - return Civi::$statics[__CLASS__]['permission']['view'][$eventId] = TRUE; + return Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId] = TRUE; } - if (CRM_Core_Permission::check('view event participants')) { + if (CRM_Core_Permission::check('view event participants', $userId)) { // User has permission to view all events // use case: allow "view all events" but NOT "edit all events" // so for a normal site allow users with these two permissions to view all events AND // at the same time also allow any hook to override if needed. - if (in_array($eventId, CRM_ACL_API::group(CRM_Core_Permission::VIEW, NULL, 'civicrm_event', $allEvents, array_keys($allEvents)))) { - Civi::$statics[__CLASS__]['permission']['view'][$eventId] = TRUE; + if (in_array($eventId, CRM_ACL_API::group(CRM_Core_Permission::VIEW, $userId, 'civicrm_event', $allEvents, array_keys($allEvents)))) { + Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId] = TRUE; } } } - return Civi::$statics[__CLASS__]['permission']['view'][$eventId]; + return Civi::$statics[__CLASS__]["perm_$userId"]['view'][$eventId]; case CRM_Core_Permission::DELETE: - if (isset(Civi::$statics[__CLASS__]['permission']['delete'][$eventId])) { - return Civi::$statics[__CLASS__]['permission']['delete'][$eventId]; + if (isset(Civi::$statics[__CLASS__]["perm_$userId"]['delete'][$eventId])) { + return Civi::$statics[__CLASS__]["perm_$userId"]['delete'][$eventId]; } - Civi::$statics[__CLASS__]['permission']['delete'][$eventId] = FALSE; - if (CRM_Core_Permission::check('delete in CiviEvent')) { - Civi::$statics[__CLASS__]['permission']['delete'][$eventId] = TRUE; + Civi::$statics[__CLASS__]["perm_$userId"]['delete'][$eventId] = FALSE; + if (CRM_Core_Permission::check('delete in CiviEvent', $userId)) { + Civi::$statics[__CLASS__]["perm_$userId"]['delete'][$eventId] = TRUE; } - return Civi::$statics[__CLASS__]['permission']['delete'][$eventId]; + return Civi::$statics[__CLASS__]["perm_$userId"]['delete'][$eventId]; default: return FALSE; @@ -2205,6 +2196,35 @@ WHERE ce.loc_block_id = $locBlockId"; return Civi::$statics[__CLASS__]['permissions']; } + /** + * @param string $entityName + * @param string $action + * @param array $record + * @param int $userID + * @return bool + * @see CRM_Core_DAO::checkAccess + */ + public static function _checkAccess(string $entityName, string $action, array $record, $userID): bool { + switch ($action) { + case 'create': + return CRM_Core_Permission::check('access CiviEvent', $userID); + + case 'get': + $actionType = CRM_Core_Permission::VIEW; + break; + + case 'delete': + $actionType = CRM_Core_Permission::DELETE; + break; + + default: + $actionType = CRM_Core_Permission::EDIT; + break; + } + + return self::checkPermission($record['id'], $actionType, $userID); + } + /** * Build From Email as the combination of all the email ids of the logged in user, * the domain email id and the email id configured for the event diff --git a/civicrm/CRM/Event/BAO/Participant.php b/civicrm/CRM/Event/BAO/Participant.php index 18915d84e83e246c43c321d32b9c0e7416e91ac4..64768f27e0ffe3fe98b8f13aec855372a8e5a825 100644 --- a/civicrm/CRM/Event/BAO/Participant.php +++ b/civicrm/CRM/Event/BAO/Participant.php @@ -356,7 +356,7 @@ class CRM_Event_BAO_Participant extends CRM_Event_DAO_Participant implements \Ci $where = [' event.id = %1 ']; if (!$considerTestParticipant) { - $where[] = ' ( participant.is_test = 0 OR participant.is_test IS NULL ) '; + $where[] = ' participant.is_test = 0 '; } // Only count Participant Roles with the "Counted?" flag. @@ -511,7 +511,7 @@ SELECT event.event_full_text, $isTestClause = NULL; if (!$considerTestParticipants) { - $isTestClause = ' AND ( participant.is_test IS NULL OR participant.is_test = 0 )'; + $isTestClause = ' AND participant.is_test = 0 '; } $skipParticipantClause = NULL; @@ -1858,7 +1858,7 @@ WHERE civicrm_participant.contact_id = {$contactID} AND return $details; } // Verify participant status is one that can be self-cancelled - if (!in_array($details['status'], ['Registered', 'Pending from pay later', 'On waitlist'])) { + if (!in_array($details['status'], ['Registered', 'Pending from pay later', 'On waitlist', 'Pending from incomplete transaction'])) { $details['eligible'] = FALSE; $details['ineligible_message'] = ts('You cannot transfer or cancel your registration for %1 as you are not currently registered for this event.', [1 => $eventTitle]); return $details; diff --git a/civicrm/CRM/Event/DAO/Event.php b/civicrm/CRM/Event/DAO/Event.php index ffe17d4337419108fb7400230f6e4fdaa0916be4..2d6e3fa421d3d270f243970ae24129f908082d21 100644 --- a/civicrm/CRM/Event/DAO/Event.php +++ b/civicrm/CRM/Event/DAO/Event.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Event/Event.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:bdb38b76e64a2eeac5c2f214aabad598) + * (GenCodeChecksum:80eed9bb6b3badce7199dd8da7f3f14b) */ /** @@ -2216,7 +2216,7 @@ class CRM_Event_DAO_Event extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Event/DAO/Participant.php b/civicrm/CRM/Event/DAO/Participant.php index e25c471dd3fbea23ac0fc0ac8a6c5aa287b02ff3..dee37a6c534d465493ec7e3c8172ef3e1350d4cc 100644 --- a/civicrm/CRM/Event/DAO/Participant.php +++ b/civicrm/CRM/Event/DAO/Participant.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Event/Participant.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:2cc6fce620624d08af9f5f0739a81392) + * (GenCodeChecksum:3faebf0fa49dd7b3bf527bd082dd1fb7) */ /** @@ -685,7 +685,7 @@ class CRM_Event_DAO_Participant extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Event/Form/EventFees.php b/civicrm/CRM/Event/Form/EventFees.php index 8031bb5fa81bb05e2e21c10790cd39d8ef8b6e39..5ef84b3c581c0121a07587de6f148994a670b071 100644 --- a/civicrm/CRM/Event/Form/EventFees.php +++ b/civicrm/CRM/Event/Form/EventFees.php @@ -66,6 +66,9 @@ class CRM_Event_Form_EventFees { if (!empty($details[$form->_eventId]['financial_type_id'])) { $defaults[$form->_pId]['financial_type_id'] = $details[$form->_eventId]['financial_type_id']; } + if (!empty($details[$form->_eventId]['confirm_email_text'])) { + $defaults[$form->_pId]['receipt_text'] = $details[$form->_eventId]['confirm_email_text']; + } } if ($form->_pId) { @@ -93,11 +96,6 @@ class CRM_Event_Form_EventFees { } else { $defaults[$form->_pId]['send_receipt'] = (strtotime(CRM_Utils_Array::value('start_date', $details[$form->_eventId])) >= time()) ? 1 : 0; - if ($form->_eventId && !empty($details[$form->_eventId]['confirm_email_text'])) { - //set receipt text - $defaults[$form->_pId]['receipt_text'] = $details[$form->_eventId]['confirm_email_text']; - } - $defaults[$form->_pId]['receive_date'] = date('Y-m-d H:i:s'); } diff --git a/civicrm/CRM/Event/Form/ManageEvent.php b/civicrm/CRM/Event/Form/ManageEvent.php index 6eed43ce9d306d1f597d1830719d7d2aca2250f7..f496bdc6704a84891157804df6125d01a0383a08 100644 --- a/civicrm/CRM/Event/Form/ManageEvent.php +++ b/civicrm/CRM/Event/Form/ManageEvent.php @@ -95,13 +95,9 @@ class CRM_Event_Form_ManageEvent extends CRM_Core_Form { $this->assign('action', $this->_action); - $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE, NULL, 'GET'); - if ($this->_id) { + if ($this->getEventID()) { $this->_isRepeatingEvent = CRM_Core_BAO_RecurringEntity::getParentFor($this->_id, 'civicrm_event'); $this->assign('eventId', $this->_id); - if (!empty($this->_addBlockName) && empty($this->_addProfileBottom) && empty($this->_addProfileBottomAdd)) { - $this->add('hidden', 'id', $this->_id); - } $this->_single = TRUE; $eventInfo = \Civi\Api4\Event::get(FALSE) @@ -166,11 +162,7 @@ class CRM_Event_Form_ManageEvent extends CRM_Core_Form { $this->_templateId = (int) CRM_Utils_Request::retrieve('template_id', 'Integer', $this); - //Is a repeating event - if ($this->_isRepeatingEvent) { - $isRepeatingEntity = TRUE; - $this->assign('isRepeatingEntity', $isRepeatingEntity); - } + $this->assign('isRepeatingEntity', $this->_isRepeatingEvent); // CRM-16776 - show edit/copy/create buttons for Profiles if user has required permission. $ufGroups = CRM_Core_PseudoConstant::get('CRM_Core_DAO_UFField', 'uf_group_id'); @@ -191,35 +183,28 @@ class CRM_Event_Form_ManageEvent extends CRM_Core_Form { // Set Done button URL and breadcrumb. Templates go back to Manage Templates, // otherwise go to Manage Event for new event or ManageEventEdit if event if exists. - $breadCrumb = []; if (!$this->_isTemplate) { + $breadCrumb = ['title' => ts('Manage Events')]; if ($this->_id) { - $this->_doneUrl = CRM_Utils_System::url(CRM_Utils_System::currentPath(), + $breadCrumb['url'] = CRM_Utils_System::url(CRM_Utils_System::currentPath(), "action=update&reset=1&id={$this->_id}" ); } else { - $this->_doneUrl = CRM_Utils_System::url('civicrm/event/manage', + $breadCrumb['url'] = CRM_Utils_System::url('civicrm/event/manage', 'reset=1' ); - $breadCrumb = [ - [ - 'title' => ts('Manage Events'), - 'url' => $this->_doneUrl, - ], - ]; } + CRM_Utils_System::appendBreadCrumb([$breadCrumb]); } else { - $this->_doneUrl = CRM_Utils_System::url('civicrm/admin/eventTemplate', 'reset=1'); - $breadCrumb = [ + CRM_Utils_System::appendBreadCrumb([ [ 'title' => ts('Manage Event Templates'), - 'url' => $this->_doneUrl, + 'url' => CRM_Utils_System::url('civicrm/admin/eventTemplate', 'reset=1'), ], - ]; + ]); } - CRM_Utils_System::appendBreadCrumb($breadCrumb); } /** @@ -400,4 +385,15 @@ class CRM_Event_Form_ManageEvent extends CRM_Core_Form { CRM_UF_Page_ProfileEditor::registerSchemas(['IndividualModel', 'ParticipantModel']); } + /** + * @return int|null + * @throws \CRM_Core_Exception + */ + public function getEventID() { + if (!$this->_id) { + $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this, FALSE, NULL, 'GET'); + } + return $this->_id ? (int) $this->_id : NULL; + } + } diff --git a/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php b/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php index ae762f2a829726f79ff7ba72e6e086447ccf87cb..9743f45c45662c6356fcd06321c386d2abee63b6 100644 --- a/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php +++ b/civicrm/CRM/Event/Form/ManageEvent/EventInfo.php @@ -14,6 +14,8 @@ * @copyright CiviCRM LLC https://civicrm.org/licensing */ +use Civi\Api4\Event; + /** * This class generates form components for processing Event. */ @@ -23,28 +25,19 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { * Event type. * @var int */ - protected $_eventType = NULL; + protected $_eventType; /** * Set variables up before form is built. + * + * @throws \CRM_Core_Exception */ - public function preProcess() { + public function preProcess(): void { parent::preProcess(); $this->setSelectedChild('settings'); - $entityID = $this->_id ?: $this->_templateId; - if ($entityID) { - $this->assign('entityID', $entityID); - $eventType = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', - $entityID, - 'event_type_id' - ); - } - else { - $eventType = 'null'; - } - - $showLocation = FALSE; + $entityID = $this->getEventID() ?: $this->_templateId; + $this->assign('eventID', $entityID); // when custom data is included in this page if (!empty($_POST['hidden_custom'])) { $this->set('type', 'Event'); @@ -61,7 +54,9 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { /** * Set default values for the form. * - * For edit/view mode he default values are retrieved from the database. + * For edit/view mode the default values are retrieved from the database. + * + * @return array */ public function setDefaultValues() { $defaults = parent::setDefaultValues(); @@ -71,26 +66,26 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { $this->assign('customDataSubType', $defaults['event_type_id']); } - $this->_showHide = new CRM_Core_ShowHideBlocks(); + $showHideBlocks = new CRM_Core_ShowHideBlocks(); // Show waitlist features or event_full_text if max participants set if (!empty($defaults['max_participants'])) { - $this->_showHide->addShow('id-waitlist'); + $showHideBlocks->addShow('id-waitlist'); if (!empty($defaults['has_waitlist'])) { - $this->_showHide->addShow('id-waitlist-text'); - $this->_showHide->addHide('id-event_full'); + $showHideBlocks->addShow('id-waitlist-text'); + $showHideBlocks->addHide('id-event_full'); } else { - $this->_showHide->addHide('id-waitlist-text'); - $this->_showHide->addShow('id-event_full'); + $showHideBlocks->addHide('id-waitlist-text'); + $showHideBlocks->addShow('id-event_full'); } } else { - $this->_showHide->addHide('id-event_full'); - $this->_showHide->addHide('id-waitlist'); - $this->_showHide->addHide('id-waitlist-text'); + $showHideBlocks->addHide('id-event_full'); + $showHideBlocks->addHide('id-waitlist'); + $showHideBlocks->addHide('id-waitlist-text'); } - $this->_showHide->addToTemplate(); + $showHideBlocks->addToTemplate(); $this->assign('elemType', 'table-row'); $this->assign('description', CRM_Utils_Array::value('description', $defaults)); @@ -106,8 +101,10 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { /** * Build the form object. + * + * @throws \CRM_Core_Exception */ - public function buildQuickForm() { + public function buildQuickForm(): void { //need to assign custom data type and subtype to the template $this->assign('customDataType', 'Event'); if ($this->_eventType) { @@ -123,7 +120,7 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { } if ($this->_action & CRM_Core_Action::ADD) { - $eventTemplates = \Civi\Api4\Event::get(FALSE) + $eventTemplates = Event::get(FALSE) ->addWhere('is_template', '=', TRUE) ->addWhere('is_active', '=', TRUE) ->execute() @@ -254,7 +251,7 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { $url = 'civicrm/event/manage/location'; $urlParams = "action=update&reset=1&id={$event->id}"; // special case for 'Save and Done' consistency. - if ($this->controller->getButtonName('submit') == '_qf_EventInfo_upload_done') { + if ('_qf_EventInfo_upload_done' === $this->controller->getButtonName('submit')) { $url = 'civicrm/event/manage'; $urlParams = 'reset=1'; CRM_Core_Session::setStatus(ts("'%1' information has been saved.", @@ -273,7 +270,7 @@ class CRM_Event_Form_ManageEvent_EventInfo extends CRM_Event_Form_ManageEvent { * * @return string */ - public function getTitle() { + public function getTitle(): string { return ts('Event Information and Settings'); } diff --git a/civicrm/CRM/Event/Form/ManageEvent/Location.php b/civicrm/CRM/Event/Form/ManageEvent/Location.php index e6a30e61e6f2dce8c01cc33dbb7bc1af8c488d00..90faa0cc98ebf328312c332793ff183818021450 100644 --- a/civicrm/CRM/Event/Form/ManageEvent/Location.php +++ b/civicrm/CRM/Event/Form/ManageEvent/Location.php @@ -32,14 +32,6 @@ class CRM_Event_Form_ManageEvent_Location extends CRM_Event_Form_ManageEvent { */ protected $locationBlock; - /** - * How many locationBlocks should we display? - * - * @var int - * @const - */ - const LOCATION_BLOCKS = 1; - /** * The variable, for storing the location array * @@ -83,7 +75,7 @@ class CRM_Event_Form_ManageEvent_Location extends CRM_Event_Form_ManageEvent { } //location blocks. - CRM_Contact_Form_Location::preProcess($this); + $this->assign('addressSequence', CRM_Core_BAO_Address::addressSequence()); } /** diff --git a/civicrm/CRM/Event/Form/ManageEvent/Repeat.php b/civicrm/CRM/Event/Form/ManageEvent/Repeat.php index 591060786284713f56184818c5baee45ddefe756..f84c3de49420d86c849ae529644e556daf4a3a28 100644 --- a/civicrm/CRM/Event/Form/ManageEvent/Repeat.php +++ b/civicrm/CRM/Event/Form/ManageEvent/Repeat.php @@ -26,19 +26,12 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { */ protected $_parentEventEndDate = NULL; - /** - * @return int - */ - protected function getEventId() { - return $this->_id; - } - public function preProcess() { parent::preProcess(); $this->setSelectedChild('repeat'); - $this->assign('currentEventId', $this->getEventId()); + $this->assign('currentEventId', $this->getEventID()); - $checkParentExistsForThisId = CRM_Core_BAO_RecurringEntity::getParentFor($this->getEventId(), 'civicrm_event'); + $checkParentExistsForThisId = CRM_Core_BAO_RecurringEntity::getParentFor($this->getEventID(), 'civicrm_event'); //If this ID has parent, send parent id if ($checkParentExistsForThisId) { /** @@ -73,7 +66,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { } } - $parentEventParams = ['id' => $this->getEventId()]; + $parentEventParams = ['id' => $this->getEventID()]; $parentEventValues = []; $parentEventReturnProperties = ['start_date', 'end_date']; $parentEventAttributes = CRM_Core_DAO::commonRetrieve('CRM_Event_DAO_Event', $parentEventParams, $parentEventValues, $parentEventReturnProperties); @@ -92,7 +85,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { $defaults = []; //Always pass current event's start date by default - $defaults['repetition_start_date'] = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->getEventId(), 'start_date', 'id'); + $defaults['repetition_start_date'] = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->getEventID(), 'start_date', 'id'); $recurringEntityDefaults = CRM_Core_Form_RecurringEntity::setDefaultValues(); return array_merge($defaults, $recurringEntityDefaults); } @@ -101,8 +94,11 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { CRM_Core_Form_RecurringEntity::buildQuickForm($this); } + /** + * @throws \CRM_Core_Exception + */ public function postProcess() { - if ($this->getEventId()) { + if ($this->getEventID()) { $params = $this->controller->exportValues($this->_name); if ($this->_parentEventStartDate && $this->_parentEventEndDate) { $interval = CRM_Core_BAO_RecurringEntity::getInterval($this->_parentEventStartDate, $this->_parentEventEndDate); @@ -111,22 +107,22 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { $params['dateColumns'] = ['start_date']; $params['excludeDateRangeColumns'] = ['start_date', 'end_date']; $params['entity_table'] = 'civicrm_event'; - $params['entity_id'] = $this->getEventId(); + $params['entity_id'] = $this->getEventID(); // CRM-16568 - check if parent exist for the event. - $parentId = CRM_Core_BAO_RecurringEntity::getParentFor($this->getEventId(), 'civicrm_event'); + $parentId = CRM_Core_BAO_RecurringEntity::getParentFor($this->getEventID(), 'civicrm_event'); $params['parent_entity_id'] = !empty($parentId) ? $parentId : $params['entity_id']; //Unset event id unset($params['id']); $url = 'civicrm/event/manage/repeat'; - $urlParams = "action=update&reset=1&id={$this->getEventId()}&selectedChild=repeat"; + $urlParams = "action=update&reset=1&id={$this->getEventID()}&selectedChild=repeat"; $linkedEntities = [ [ 'table' => 'civicrm_price_set_entity', 'findCriteria' => [ - 'entity_id' => $this->getEventId(), + 'entity_id' => $this->getEventID(), 'entity_table' => 'civicrm_event', ], 'linkedColumns' => ['entity_id'], @@ -135,7 +131,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { [ 'table' => 'civicrm_uf_join', 'findCriteria' => [ - 'entity_id' => $this->getEventId(), + 'entity_id' => $this->getEventID(), 'entity_table' => 'civicrm_event', ], 'linkedColumns' => ['entity_id'], @@ -144,7 +140,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { [ 'table' => 'civicrm_tell_friend', 'findCriteria' => [ - 'entity_id' => $this->getEventId(), + 'entity_id' => $this->getEventID(), 'entity_table' => 'civicrm_event', ], 'linkedColumns' => ['entity_id'], @@ -153,7 +149,7 @@ class CRM_Event_Form_ManageEvent_Repeat extends CRM_Event_Form_ManageEvent { [ 'table' => 'civicrm_pcp_block', 'findCriteria' => [ - 'entity_id' => $this->getEventId(), + 'entity_id' => $this->getEventID(), 'entity_table' => 'civicrm_event', ], 'linkedColumns' => ['entity_id'], diff --git a/civicrm/CRM/Event/Form/ManageEvent/ScheduleReminders.php b/civicrm/CRM/Event/Form/ManageEvent/ScheduleReminders.php index 1af6314f122be5c4e855cfada0e498a248927e02..0c786bfb9f7bfea3a961b3290e7640eae8091347 100644 --- a/civicrm/CRM/Event/Form/ManageEvent/ScheduleReminders.php +++ b/civicrm/CRM/Event/Form/ManageEvent/ScheduleReminders.php @@ -30,10 +30,10 @@ class CRM_Event_Form_ManageEvent_ScheduleReminders extends CRM_Event_Form_Manage public function preProcess() { parent::preProcess(); $this->setSelectedChild('reminder'); - $setTab = CRM_Utils_Request::retrieve('setTab', 'Int', $this, FALSE, 0); $mapping = CRM_Core_BAO_ActionSchedule::getMapping($this->_isTemplate ? CRM_Event_ActionMapping::EVENT_TPL_MAPPING_ID : CRM_Event_ActionMapping::EVENT_NAME_MAPPING_ID); $reminderList = CRM_Core_BAO_ActionSchedule::getList($mapping, $this->_id); + $scheduleReminder = new CRM_Admin_Page_ScheduleReminders(); // Add action links to each of the reminders foreach ($reminderList as & $format) { $action = CRM_Core_Action::UPDATE + CRM_Core_Action::DELETE; @@ -43,10 +43,9 @@ class CRM_Event_Form_ManageEvent_ScheduleReminders extends CRM_Event_Form_Manage else { $action += CRM_Core_Action::ENABLE; } - $scheduleReminder = new CRM_Admin_Page_ScheduleReminders(); $links = $scheduleReminder->links(); - $links[CRM_Core_Action::DELETE]['qs'] .= "&context=event&compId={$this->_id}"; - $links[CRM_Core_Action::UPDATE]['qs'] .= "&context=event&compId={$this->_id}"; + $links[CRM_Core_Action::DELETE]['qs'] .= "&mapping_id={$mapping->getId()}&entity_value={$this->_id}"; + $links[CRM_Core_Action::UPDATE]['qs'] .= "&mapping_id={$mapping->getId()}&entity_value={$this->_id}"; $format['action'] = CRM_Core_Action::formLink( $links, $action, @@ -60,8 +59,7 @@ class CRM_Event_Form_ManageEvent_ScheduleReminders extends CRM_Event_Form_Manage } $this->assign('rows', $reminderList); - $this->assign('setTab', $setTab); - $this->assign('component', 'event'); + $this->assign('addNewLink', $scheduleReminder->getLinkPath('add') . "&mapping_id={$mapping->getId()}&entity_value={$this->_id}"); // Update tab "disabled" css class $this->ajaxResponse['tabValid'] = is_array($reminderList) && (count($reminderList) > 0); @@ -72,7 +70,8 @@ class CRM_Event_Form_ManageEvent_ScheduleReminders extends CRM_Event_Form_Manage * @return string */ public function getTemplateFileName() { - return 'CRM/Admin/Page/ScheduleReminders.tpl'; + $setTab = CRM_Utils_Request::retrieve('setTab', 'Int', NULL, FALSE, 0); + return $setTab ? 'CRM/Event/Form/ManageEvent/Tab.tpl' : 'CRM/Admin/Page/ScheduleReminders.tpl'; } } diff --git a/civicrm/CRM/Event/Form/ManageEvent/TabHeader.php b/civicrm/CRM/Event/Form/ManageEvent/TabHeader.php index af32097768d4b25fba4e0f32b3593370560e9663..8c159a7c397873bfce0414947fe08af7acc96e9d 100644 --- a/civicrm/CRM/Event/Form/ManageEvent/TabHeader.php +++ b/civicrm/CRM/Event/Form/ManageEvent/TabHeader.php @@ -227,7 +227,7 @@ WHERE e.id = %1 } } - $current = $current ? $current : 'settings'; + $current = $current ?: 'settings'; return $current; } diff --git a/civicrm/CRM/Event/Form/Participant.php b/civicrm/CRM/Event/Form/Participant.php index f463f1b8c35c73b204aca6a10e52911848eecc75..fc8c303ce9cc91bed585c2b9d1cb612e89e07a81 100644 --- a/civicrm/CRM/Event/Form/Participant.php +++ b/civicrm/CRM/Event/Form/Participant.php @@ -16,11 +16,15 @@ * @copyright CiviCRM LLC https://civicrm.org/licensing */ +use Civi\API\EntityLookupTrait; + /** * Back office participant form. */ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment { + use EntityLookupTrait; + /** * Participant ID - use getParticipantID. * @@ -46,17 +50,12 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment */ public $_values; - /** - * The values for the quickconfig for priceset. - * - * @var bool - */ - public $_quickConfig = NULL; - /** * Price Set ID, if the new price set method is used * * @var int + * + * @internal use getPriceSetID(). */ public $_priceSetId; @@ -213,7 +212,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment * * @var int */ - public $_paymentId = NULL; + public $_paymentId; /** * @var null @@ -287,18 +286,16 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment */ public function preProcess() { parent::preProcess(); - $this->_showFeeBlock = $_GET['eventId'] ?? NULL; - $this->assign('showFeeBlock', FALSE); $this->assign('feeBlockPaid', FALSE); // @todo eliminate this duplication. - $this->_contactId = $this->_contactID; + $this->_contactId = $this->getContactID(); $this->_eID = CRM_Utils_Request::retrieve('eid', 'Positive', $this); $this->_context = CRM_Utils_Request::retrieve('context', 'Alphanumeric', $this); $this->assign('context', $this->_context); - if ($this->_contactID) { - $this->setPageTitle(ts('Event Registration for %1', [1 => $this->userDisplayName])); + if ($this->getContactID()) { + $this->setPageTitle(ts('Event Registration for %1', [1 => $this->getContactValue('display_name')])); } else { $this->setPageTitle(ts('Event Registration')); @@ -332,13 +329,14 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment $this->assign('participantMode', $this->_mode); - $this->assign('showFeeBlock', $this->_showFeeBlock); - if ($this->_showFeeBlock) { - $isMonetary = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $this->_showFeeBlock, 'is_monetary'); - if ($isMonetary) { + $isOverloadFeesMode = $this->isOverloadFeesMode(); + $this->assign('showFeeBlock', $isOverloadFeesMode); + if ($isOverloadFeesMode) { + if (CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $_GET['eventId'], 'is_monetary')) { $this->assign('feeBlockPaid', TRUE); } - return CRM_Event_Form_EventFees::preProcess($this); + CRM_Event_Form_EventFees::preProcess($this); + return; } $this->assignUrlPath(); @@ -427,7 +425,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment * @throws \CRM_Core_Exception */ public function setDefaultValues(): array { - if ($this->_showFeeBlock) { + if ($this->isOverloadFeesMode()) { return CRM_Event_Form_EventFees::setDefaultValues($this); } @@ -524,8 +522,8 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment $this->_eventTypeId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Event', $eventID, 'event_type_id', 'id'); - $this->_discountId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->_id, 'discount_id'); - if ($this->_discountId) { + if ($this->getDiscountID()) { + // This doesn't seem used.... $this->set('discountId', $this->_discountId); } } @@ -575,6 +573,25 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment return $defaults[$this->_id]; } + /** + * Get a value for the contact being acted on in the form. + * + * This can be called from any point in the form flow and if + * the contact can not yet be determined it will return NULL. + * + * @throws \CRM_Core_Exception + */ + public function getContactValue($fieldName) { + if ($this->isDefined('Contact')) { + return $this->lookup('Contact', $fieldName); + } + if ($this->getContactID()) { + $this->define('Contact', 'Contact', ['id' => $this->getContactID()]); + return $this->lookup('Contact', $fieldName); + } + return NULL; + } + /** * Build the form object. * @@ -587,7 +604,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment $partiallyPaidStatusId = array_search('Partially paid', $participantStatuses); $this->assign('partiallyPaidStatusId', $partiallyPaidStatusId); - if ($this->_showFeeBlock) { + if ($this->isOverloadFeesMode()) { return $this->buildEventFeeForm($this); } @@ -631,7 +648,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment if ($this->_single) { $contactField = $this->addEntityRef('contact_id', ts('Participant'), ['create' => TRUE, 'api' => ['extra' => ['email']]], TRUE); - if ($this->_context != 'standalone') { + if ($this->_context !== 'standalone') { $contactField->freeze(); } } @@ -833,7 +850,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment // For single additions - show validation error if the contact has already been registered // for this event. if (($self->_action & CRM_Core_Action::ADD)) { - if ($self->_context == 'standalone') { + if ($self->_context === 'standalone') { $contactId = $values['contact_id'] ?? NULL; } else { @@ -936,9 +953,6 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment if (!empty($params['contact_id'])) { $this->_contactID = $this->_contactId = $params['contact_id']; } - if ($this->_priceSetId && $isQuickConfig = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_priceSetId, 'is_quick_config')) { - $this->_quickConfig = $isQuickConfig; - } if ($this->_id) { $params['id'] = $this->_id; @@ -970,7 +984,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment $userName = CRM_Core_Session::singleton()->getLoggedInContactDisplayName(); if ($this->_contactId) { - [$this->_contributorDisplayName, $this->_contributorEmail, $this->_toDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($this->_contactId); + [, $this->_contributorEmail, $this->_toDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($this->_contactId); } //modify params according to parameter used in create @@ -1223,7 +1237,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment foreach ($recordContribution as $f) { $contributionParams[$f] = $this->_params[$f] ?? NULL; - if ($f == 'trxn_id') { + if ($f === 'trxn_id') { $this->assign('trxn_id', $contributionParams[$f]); } } @@ -1312,10 +1326,10 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment ) { foreach ($this->_contactIds as $num => $contactID) { foreach ($this->_lineItem as $key => $value) { - if (is_array($value) && $value != 'skip') { + if (is_array($value) && $value !== 'skip') { foreach ($value as $lineKey => $line) { //10117 update the line items for participants if contribution amount is recorded - if ($this->_quickConfig && !empty($params['total_amount']) && + if ($this->isQuickConfig() && !empty($params['total_amount']) && ($params['status_id'] != array_search('Partially paid', $participantStatus)) ) { $line['unit_price'] = $line['line_total'] = $params['total_amount']; @@ -1350,7 +1364,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment } if (!empty($params['send_receipt'])) { - $result = $this->sendReceipts($params, $contributionParams['total_amount'], $customFields, $participants, $lineItem[0] ?? [], $additionalParticipantDetails); + $result = $this->sendReceipts($params, $customFields, $participants, $lineItem[0] ?? [], $additionalParticipantDetails ?? []); } // set the participant id if it is not set @@ -1390,9 +1404,9 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment protected function getStatusMsg(array $params, int $numberSent, int $numberNotSent, string $updateStatusMsg): string { $statusMsg = ''; if (($this->_action & CRM_Core_Action::UPDATE)) { - $statusMsg = ts('Event registration information for %1 has been updated.', [1 => $this->_contributorDisplayName]); + $statusMsg = ts('Event registration information for %1 has been updated.', [1 => $this->getContactValue('display_name')]); if (!empty($params['send_receipt']) && $numberSent) { - $statusMsg .= ' ' . ts('A confirmation email has been sent to %1', [1 => $this->_contributorEmail]); + $statusMsg .= ' ' . ts('A confirmation email has been sent to %1', [1 => $this->getContactValue('email_primary.email')]); } if ($updateStatusMsg) { @@ -1400,20 +1414,9 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment } } elseif ($this->_action & CRM_Core_Action::ADD) { - if ($this->_single) { - $statusMsg = ts('Event registration for %1 has been added.', [1 => $this->_contributorDisplayName]); - if (!empty($params['send_receipt']) && $numberSent) { - $statusMsg .= ' ' . ts('A confirmation email has been sent to %1.', [1 => $this->_contributorEmail]); - } - } - else { - $statusMsg = ts('Total Participant(s) added to event: %1.', [1 => count($this->_contactIds)]); - if ($numberNotSent > 0) { - $statusMsg .= ' ' . ts('Email has NOT been sent to %1 contact(s) - communication preferences specify DO NOT EMAIL OR valid Email is NOT present. ', [1 => $numberNotSent]); - } - elseif (isset($params['send_receipt'])) { - $statusMsg .= ' ' . ts('A confirmation email has been sent to ALL participants'); - } + $statusMsg = ts('Event registration for %1 has been added.', [1 => $this->getContactValue('display_name')]); + if (!empty($params['send_receipt']) && $numberSent) { + $statusMsg .= ' ' . ts('A confirmation email has been sent to %1.', [1 => $this->getContactValue('email_primary.email')]); } } return $statusMsg; @@ -1447,8 +1450,32 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment //retrieve custom information $form->_values = []; - CRM_Event_Form_Registration::initEventFee($form, $event['id'], FALSE); - CRM_Event_Form_Registration_Register::buildAmount($form, TRUE, $form->_discountId); + CRM_Event_Form_Registration::initEventFee($form, $event['id'], FALSE, $this->getPriceSetID()); + if ($form->_context === 'standalone' || $form->_context === 'participant') { + $discountedEvent = CRM_Core_BAO_Discount::getOptionGroup($event['id'], 'civicrm_event'); + if (is_array($discountedEvent)) { + foreach ($discountedEvent as $key => $discountedPriceSetID) { + $discountedPriceSet = CRM_Price_BAO_PriceSet::getSetDetail($discountedPriceSetID); + $discountedPriceSet = $discountedPriceSet[$discountedPriceSetID] ?? NULL; + $form->_values['discount'][$key] = $discountedPriceSet['fields'] ?? NULL; + $fieldID = key($form->_values['discount'][$key]); + // @todo - this may be unused. + $form->_values['discount'][$key][$fieldID]['name'] = CRM_Core_DAO::getFieldValue( + 'CRM_Price_DAO_PriceSet', + $discountedPriceSetID, + 'title' + ); + } + } + } + //if payment done, no need to build the fee block. + if (!empty($form->_paymentId)) { + //fix to display line item in update mode. + $form->assign('priceSet', $form->_priceSet ?? NULL); + } + else { + CRM_Event_Form_Registration_Register::buildAmount($form, TRUE, $form->getDiscountID(), $this->getPriceSetID()); + } $lineItem = []; $totalTaxAmount = 0; if (!CRM_Utils_System::isNull($form->_values['line_items'] ?? NULL)) { @@ -1511,7 +1538,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment // don't show transaction id in batch update mode $path = CRM_Utils_System::currentPath(); $form->assign('showTransactionId', FALSE); - if ($path != 'civicrm/contact/search/basic') { + if ($path !== 'civicrm/contact/search/basic') { $form->add('text', 'trxn_id', ts('Transaction ID')); $form->addRule('trxn_id', ts('Transaction ID already exists in Database.'), 'objectExists', ['CRM_Contribute_DAO_Contribution', $form->_eventId, 'trxn_id'] @@ -1550,9 +1577,9 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment $form->add('textarea', 'receipt_text', ts('Confirmation Message')); // Retrieve the name and email of the contact - form will be the TO for receipt email ( only if context is not standalone) - if ($form->_context != 'standalone') { - if ($form->_contactId) { - [$form->_contributorDisplayName, $form->_contributorEmail] = CRM_Contact_BAO_Contact_Location::getEmailDetails($form->_contactId); + if ($form->_context !== 'standalone') { + if ($form->getContactID()) { + [, $form->_contributorEmail] = CRM_Contact_BAO_Contact_Location::getEmailDetails($form->_contactId); $form->assign('email', $form->_contributorEmail); } else { @@ -1628,7 +1655,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment //lineitems with the financial type selected in form $submittedFinancialType = $params['financial_type_id'] ?? NULL; $isPaymentRecorded = $params['record_contribution'] ?? NULL; - if ($isPaymentRecorded && $this->_quickConfig && $submittedFinancialType) { + if ($isPaymentRecorded && $this->isQuickConfig() && $submittedFinancialType) { foreach ($lineItem[0] as &$values) { $values['financial_type_id'] = $submittedFinancialType; } @@ -1636,7 +1663,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment $params['fee_level'] = $params['amount_level']; $contributionParams['total_amount'] = $params['amount']; - if ($this->_quickConfig && !empty($params['total_amount']) && + if ($this->isQuickConfig() && !empty($params['total_amount']) && $params['status_id'] != array_search('Partially paid', $participantStatus) ) { $params['fee_amount'] = $params['total_amount']; @@ -1666,7 +1693,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment if (isset($participantCount)) { $this->assign('pricesetFieldsCount', $participantCount); } - $this->assign('lineItem', empty($lineItem[0]) || $this->_quickConfig ? FALSE : $lineItem); + $this->assign('lineItem', empty($lineItem[0]) || $this->isQuickConfig() ? FALSE : $lineItem); } else { $this->assign('amount_level', $params['amount_level']); @@ -1788,7 +1815,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment } $contribParams['is_test'] = 0; - if ($form->_action & CRM_Core_Action::PREVIEW || ($params['mode'] ?? NULL) == 'test') { + if ($form->_action & CRM_Core_Action::PREVIEW || ($params['mode'] ?? NULL) === 'test') { $contribParams['is_test'] = 1; } @@ -1937,7 +1964,7 @@ class CRM_Event_Form_Participant extends CRM_Contribute_Form_AbstractEditPayment */ protected function getParticipantValue($fieldName) { if (!$this->participantRecord) { - $this->participantRecord = civicrm_api3('Participant', 'getsingle', ['id' => $this->_id]); + $this->participantRecord = civicrm_api3('Participant', 'getsingle', ['id' => $this->getParticipantID()]); } return $this->participantRecord[$fieldName] ?? $this->participantRecord['participant_' . $fieldName]; } @@ -2102,7 +2129,6 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ /** * @param $params - * @param $total_amount * @param array $customFields * @param array $participants * @param $lineItem @@ -2111,7 +2137,7 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ * @return array * @throws \CRM_Core_Exception */ - protected function sendReceipts($params, $total_amount, array $customFields, array $participants, $lineItem, $additionalParticipantDetails): array { + protected function sendReceipts($params, array $customFields, array $participants, $lineItem, $additionalParticipantDetails): array { $sent = []; $notSent = []; $this->assign('module', 'Event Registration'); @@ -2132,10 +2158,9 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ ); } } - - $this->assign('totalAmount', $params['total_amount'] ?? $total_amount); - $this->assign('checkNumber', CRM_Utils_Array::value('check_number', $params)); } + + $this->assign('checkNumber', $params['check_number'] ?? NULL); if ($this->_mode) { $this->assignBillingName($params); $this->assign('address', CRM_Utils_Address::getFormattedBillingAddressFieldsFromParameters( @@ -2168,9 +2193,7 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ foreach ($this->_contactIds as $num => $contactID) { // Retrieve the name and email of the contact - this will be the TO for receipt email - [$this->_contributorDisplayName, $this->_contributorEmail, $this->_toDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($contactID); - - $this->_contributorDisplayName = ($this->_contributorDisplayName == ' ') ? $this->_contributorEmail : $this->_contributorDisplayName; + [, $this->_contributorEmail, $this->_toDoNotEmail] = CRM_Contact_BAO_Contact::getContactDetails($contactID); $waitStatus = CRM_Event_PseudoConstant::participantStatus(NULL, "class = 'Waiting'"); $waitingStatus = $waitStatus[$params['status_id']] ?? NULL; @@ -2185,6 +2208,16 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ $contributionID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', $participants[$num]->id, 'contribution_id', 'participant_id' ); + $totalAmount = 0; + if ($contributionID) { + // @todo - this should be temporary - we are looking to remove this variable from the template + // in favour of the {contribution.total_amount} token. + // In case this needs back-porting I have kept it as simple as possible. + $totalAmount = CRM_Core_DAO::getFieldValue('CRM_Contribute_DAO_Contribution', + $contributionID, 'id', 'total_amount' + ); + } + $this->assign('totalAmount', $params['total_amount'] ?? $totalAmount); $this->_id = $participants[$num]->id; if ($this->_isPaidEvent) { @@ -2218,9 +2251,6 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ $this->assign('taxTerm', $this->getSalesTaxTerm()); $this->assign('dataArray', $dataArray); } - if (!empty($additionalParticipantDetails)) { - $params['amount_level'] = preg_replace('//', '', $params['amount_level']) . ' - ' . $this->_contributorDisplayName; - } $eventAmount[$num] = [ 'label' => preg_replace('//', '', $params['amount_level']), @@ -2248,20 +2278,18 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ // and the do-not-email option is not checked for that contact if ($this->_contributorEmail and !$this->_toDoNotEmail) { $sendTemplateParams['from'] = $params['from_email_address']; - $sendTemplateParams['toName'] = $this->_contributorDisplayName; + $sendTemplateParams['toName'] = $this->getContactValue('display_name'); $sendTemplateParams['toEmail'] = $this->_contributorEmail; $sendTemplateParams['cc'] = $this->_fromEmails['cc'] ?? NULL; $sendTemplateParams['bcc'] = $this->_fromEmails['bcc'] ?? NULL; } //send email with pdf invoice - $template = CRM_Core_Smarty::singleton(); - $taxAmt = $template->get_template_vars('dataArray'); if (Civi::settings()->get('invoice_is_email_pdf')) { $sendTemplateParams['isEmailPdf'] = TRUE; $sendTemplateParams['contributionId'] = $contributionID; } - [$mailSent, $subject, $message, $html] = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams); + [$mailSent] = CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams); if ($mailSent) { $sent[] = $contactID; foreach ($participants as $ids => $values) { @@ -2279,4 +2307,105 @@ INNER JOIN civicrm_price_field_value value ON ( value.id = lineItem.price_field_ return ['sent' => count($sent), 'not_sent' => count($notSent)]; } + /** + * Get the discount ID. + * + * @return int|null + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @noinspection PhpDocMissingThrowsInspection + * @noinspection PhpUnhandledExceptionInspection + */ + public function getDiscountID(): ?int { + if ($this->_discountId === NULL) { + if ($this->getParticipantID()) { + $this->_discountId = (int) CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->getParticipantID(), 'discount_id'); + } + else { + $this->_discountId = (int) CRM_Core_BAO_Discount::findSet($this->getEventID(), 'civicrm_event'); + } + } + return $this->_discountId ?: NULL; + } + + /** + * Get the Price Set ID in use. + * + * @return int|null + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @noinspection PhpDocMissingThrowsInspection + * @noinspection PhpUnhandledExceptionInspection + */ + public function getPriceSetID(): ?int { + if ($this->_priceSetId === NULL) { + if ($this->getDiscountID()) { + $this->_priceSetId = (int) CRM_Core_DAO::getFieldValue('CRM_Core_BAO_Discount', $this->getDiscountID(), 'price_set_id'); + } + else { + $this->_priceSetId = (int) CRM_Price_BAO_PriceSet::getFor('civicrm_event', $this->getEventID()); + } + $this->set('priceSetId', $this->_priceSetId); + } + return $this->_priceSetId ?: NULL; + } + + /** + * Is the price set quick config. + * + * @return bool + */ + public function isQuickConfig(): bool { + return $this->getPriceSetID() && CRM_Price_BAO_PriceSet::isQuickConfig($this->getPriceSetID()); + } + + /** + * Is the form being accessed in overload fees mode. + * + * Overload fees mode is when we are accessing the same form for a different + * purpose - to load the fees via ajax. We have historically fixed this for + * some forms by creating a new form class to move the functionality to and + * updating the path to call that (e.g CRM_Financial_Form_Payment was historically + * split in this way). + * + * This is much cleaner but the trap to be + * aware of is that the fields must be added to the quick form. It does require + * a bit of UI testing to do this. For now, adding comment... + * + * @return bool + */ + protected function isOverloadFeesMode(): bool { + return (bool) ($_GET['eventId'] ?? NULL); + } + + /** + * Get the contact ID in use. + * + * Ideally override this as appropriate to the form. + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocSignatureIsNotCompleteInspection + */ + public function getContactID():?int { + if ($this->_contactID === NULL) { + if ($this->getSubmittedValue('contact_id')) { + $contactID = $this->getSubmittedValue('contact_id'); + } + else { + $contactID = CRM_Utils_Request::retrieve('cid', 'Positive', $this); + } + if (!$contactID && $this->getParticipantID()) { + $contactID = $this->getParticipantValue('contact_id'); + } + $this->_contactID = $contactID ? (int) $contactID : NULL; + } + return $this->_contactID; + } + } diff --git a/civicrm/CRM/Event/Form/ParticipantFeeSelection.php b/civicrm/CRM/Event/Form/ParticipantFeeSelection.php index c42cdc721ffe592aec1b0c232fabf2fb409345b8..7ad90dcc2a1f990219d74b791e6998ae694b6be6 100644 --- a/civicrm/CRM/Event/Form/ParticipantFeeSelection.php +++ b/civicrm/CRM/Event/Form/ParticipantFeeSelection.php @@ -124,7 +124,6 @@ class CRM_Event_Form_ParticipantFeeSelection extends CRM_Core_Form { $params = ['id' => $this->_participantId]; CRM_Event_BAO_Participant::getValues($params, $defaults, $ids); - $priceSetId = CRM_Price_BAO_PriceSet::getFor('civicrm_event', $this->_eventId); $priceSetValues = CRM_Event_Form_EventFees::setDefaultPriceSet($this->_participantId, $this->_eventId, FALSE); $priceFieldId = (array_keys($this->_values['fee'])); @@ -172,8 +171,8 @@ class CRM_Event_Form_ParticipantFeeSelection extends CRM_Core_Form { //retrieve custom information $this->_values = []; - CRM_Event_Form_Registration::initEventFee($this, $event['id'], $this->_action !== CRM_Core_Action::UPDATE); - CRM_Event_Form_Registration_Register::buildAmount($this, TRUE); + CRM_Event_Form_Registration::initEventFee($this, $event['id'], $this->_action !== CRM_Core_Action::UPDATE, $this->getPriceSetID()); + CRM_Event_Form_Registration_Register::buildAmount($this, TRUE, NULL, $this->getPriceSetID()); if (!CRM_Utils_System::isNull($this->_values['line_items'] ?? NULL)) { $lineItem[] = $this->_values['line_items']; @@ -225,6 +224,23 @@ class CRM_Event_Form_ParticipantFeeSelection extends CRM_Core_Form { $this->addFormRule(['CRM_Event_Form_ParticipantFeeSelection', 'formRule'], $this); } + /** + * Get the discount ID. + * + * @return int|null + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @noinspection PhpDocMissingThrowsInspection + * @noinspection PhpUnhandledExceptionInspection + */ + public function getDiscountID(): ?int { + $discountID = (int) CRM_Core_BAO_Discount::findSet($this->getEventID(), 'civicrm_event'); + return $discountID ?: NULL; + } + /** * @param $fields * @param $files @@ -390,4 +406,49 @@ class CRM_Event_Form_ParticipantFeeSelection extends CRM_Core_Form { CRM_Core_BAO_MessageTemplate::sendTemplate($sendTemplateParams); } + /** + * Get the event ID. + * + * This function is supported for use outside of core. + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @return int + * @throws \CRM_Core_Exception + */ + public function getEventID(): int { + if (!$this->_eventId) { + $this->_eventId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', $this->_participantId, 'event_id'); + } + return $this->_eventId; + } + + /** + * Get the price set ID for the event. + * + * @return int|null + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocMissingThrowsInspection + */ + public function getPriceSetID(): ?int { + if ($this->getDiscountID()) { + $priceSetID = CRM_Core_DAO::getFieldValue('CRM_Core_BAO_Discount', $this->getDiscountID(), 'price_set_id'); + } + else { + $priceSetID = CRM_Price_BAO_PriceSet::getFor('civicrm_event', $this->getEventID()); + } + // Currently some extensions, eg. civi-discount, might look for this. Once we can be + // sure all financial forms have the api-supported function `getPriceSetID` we can + // add some noise to attempts to get it & move people over. + $this->set('priceSetId', $priceSetID); + return $priceSetID; + } + } diff --git a/civicrm/CRM/Event/Form/ParticipantView.php b/civicrm/CRM/Event/Form/ParticipantView.php index bbb20b45ca316ca91db358e1aff19ee4f95428f4..03406163fb598d8ceb227c39a514fcc8aa23adf0 100644 --- a/civicrm/CRM/Event/Form/ParticipantView.php +++ b/civicrm/CRM/Event/Form/ParticipantView.php @@ -59,26 +59,22 @@ class CRM_Event_Form_ParticipantView extends CRM_Core_Form { $this->assign('componentId', $participantID); $this->assign('component', 'event'); - if ($parentParticipantId = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', - $participantID, 'registered_by_id' - ) - ) { - $parentHasPayment = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', - $parentParticipantId, 'id', 'participant_id' - ); - $this->assign('parentHasPayment', $parentHasPayment); - } + $parentParticipantID = CRM_Core_DAO::getFieldValue('CRM_Event_DAO_Participant', + $participantID, 'registered_by_id'); + $this->assign('parentHasPayment', !$parentParticipantID ? NULL : CRM_Core_DAO::getFieldValue('CRM_Event_DAO_ParticipantPayment', + $parentParticipantID, 'id', 'participant_id' + )); $statusId = CRM_Core_DAO::getFieldValue('CRM_Event_BAO_Participant', $participantID, 'status_id', 'id'); $status = CRM_Core_DAO::getFieldValue('CRM_Event_BAO_ParticipantStatusType', $statusId, 'name', 'id'); - if ($status == 'Transferred') { + if ($status === 'Transferred') { $transferId = CRM_Core_DAO::getFieldValue('CRM_Event_BAO_Participant', $participantID, 'transferred_to_contact_id', 'id'); $pid = CRM_Core_DAO::getFieldValue('CRM_Event_BAO_Participant', $transferId, 'id', 'contact_id'); $transferName = current(CRM_Contact_BAO_Contact::getContactDetails($transferId)); $this->assign('pid', $pid); $this->assign('transferId', $transferId); - $this->assign('transferName', $transferName); } + $this->assign('transferName', $transferName ?? NULL); // CRM-20879: Show 'Transfer or Cancel' option beside 'Change fee selection' // only if logged in user have 'edit event participants' permission and @@ -203,9 +199,7 @@ class CRM_Event_Form_ParticipantView extends CRM_Core_Form { if (Civi::settings()->get('invoicing')) { $this->assign('totalTaxAmount', $totalTaxAmount); } - if ($participantCount) { - $this->assign('pricesetFieldsCount', $participantCount); - } + $this->assign('pricesetFieldsCount', $participantCount); $this->assign('displayName', $displayName); // omitting contactImage from title for now since the summary overlay css doesn't work outside of our crm-container $this->setTitle(ts('View Event Registration for') . ' ' . $displayName); diff --git a/civicrm/CRM/Event/Form/Registration.php b/civicrm/CRM/Event/Form/Registration.php index ebde060eb3b352ec30687461524377f0852b88f4..79dfd821ee51c40081b0d4d886237d808c6be94d 100644 --- a/civicrm/CRM/Event/Form/Registration.php +++ b/civicrm/CRM/Event/Form/Registration.php @@ -297,8 +297,11 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { )); $this->assignPaymentProcessor($isPayLater); } - //init event fee. - self::initEventFee($this, $this->_eventId); + + $priceSetID = $this->getPriceSetID(); + if ($priceSetID) { + self::initEventFee($this, $this->_eventId, TRUE, $priceSetID); + } // get the profile ids $ufJoinParams = [ @@ -566,92 +569,20 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { /** * Initiate event fee. * - * @param CRM_Core_Form $form + * @param \CRM_Event_Form_Participant|\CRM_Event_Form_Registration|\CRM_Event_Form_ParticipantFeeSelection|\CRM_Event_Form_Task_Register $form * @param int $eventID * @param bool $doNotIncludeExpiredFields * See CRM-16456. + * @param int|null $priceSetId + * ID of the price set in use. * - * @throws Exception + * @throws \CRM_Core_Exception */ - public static function initEventFee(&$form, $eventID, $doNotIncludeExpiredFields = TRUE) { - // get price info - - // retrive all active price set fields. - $discountId = CRM_Core_BAO_Discount::findSet($eventID, 'civicrm_event'); - if (property_exists($form, '_discountId') && $form->_discountId) { - $discountId = $form->_discountId; - } - - if ($discountId) { - $priceSetId = CRM_Core_DAO::getFieldValue('CRM_Core_BAO_Discount', $discountId, 'price_set_id'); - } - else { - $priceSetId = CRM_Price_BAO_PriceSet::getFor('civicrm_event', $eventID); - } - self::initSet($form, $doNotIncludeExpiredFields, $priceSetId); - - if (property_exists($form, '_context') && ($form->_context == 'standalone' - || $form->_context == 'participant') - ) { - $discountedEvent = CRM_Core_BAO_Discount::getOptionGroup($eventID, 'civicrm_event'); - if (is_array($discountedEvent)) { - foreach ($discountedEvent as $key => $priceSetId) { - $priceSet = CRM_Price_BAO_PriceSet::getSetDetail($priceSetId); - $priceSet = $priceSet[$priceSetId] ?? NULL; - $form->_values['discount'][$key] = $priceSet['fields'] ?? NULL; - $fieldID = key($form->_values['discount'][$key]); - $form->_values['discount'][$key][$fieldID]['name'] = CRM_Core_DAO::getFieldValue( - 'CRM_Price_DAO_PriceSet', - $priceSetId, - 'title' - ); - } - } - } - $eventFee = $form->_values['fee'] ?? NULL; - if (!is_array($eventFee) || empty($eventFee)) { - $form->_values['fee'] = []; - } - - //fix for non-upgraded price sets.CRM-4256. - if (isset($form->_isPaidEvent)) { - $isPaidEvent = $form->_isPaidEvent; - } - else { - $isPaidEvent = $form->_values['event']['is_monetary'] ?? NULL; - } - if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus() - && !empty($form->_values['fee']) - ) { - foreach ($form->_values['fee'] as $k => $fees) { - foreach ($fees['options'] as $options) { - if (!CRM_Core_Permission::check('add contributions of type ' . CRM_Contribute_PseudoConstant::financialType($options['financial_type_id']))) { - unset($form->_values['fee'][$k]); - } - } - } - } - if ($isPaidEvent && empty($form->_values['fee'])) { - if (!in_array(CRM_Utils_System::getClassName($form), ['CRM_Event_Form_Participant', 'CRM_Event_Form_Task_Register'])) { - CRM_Core_Error::statusBounce(ts('No Fee Level(s) or Price Set is configured for this event.<br />Click <a href=\'%1\'>CiviEvent >> Manage Event >> Configure >> Event Fees</a> to configure the Fee Level(s) or Price Set for this event.', [1 => CRM_Utils_System::url('civicrm/event/manage/fee', 'reset=1&action=update&id=' . $form->_eventId)])); - } + public static function initEventFee(&$form, $eventID, $doNotIncludeExpiredFields, $priceSetId): void { + if (!$priceSetId) { + CRM_Core_Error::deprecatedWarning('this should not be reachable'); + return; } - } - - /** - * Initiate price set such that various non-BAO things are set on the form. - * - * This function is not really a BAO function so the location is misleading. - * - * @param CRM_Core_Form $form - * Form entity id. - * @param bool $doNotIncludeExpiredFields - * @param int $priceSetId - * Price Set ID - * - * @todo - removed unneeded code from previously-shared function - */ - private static function initSet($form, $doNotIncludeExpiredFields = FALSE, $priceSetId = NULL) { //check if price set is is_config if (is_numeric($priceSetId)) { if (CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $priceSetId, 'is_quick_config') && $form->getVar('_name') != 'Participant') { @@ -676,7 +607,6 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { $required = TRUE; } - $form->_priceSetId = $priceSetId; $priceSet = CRM_Price_BAO_PriceSet::getSetDetail($priceSetId, $required, $doNotIncludeExpiredFields); $form->_priceSet = $priceSet[$priceSetId] ?? NULL; $form->_values['fee'] = $form->_priceSet['fields'] ?? NULL; @@ -715,10 +645,37 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { if ($optionsMaxValueTotal) { $form->_priceSet['optionsMaxValueDetails'] = $optionsMaxValueDetails; } - - $form->set('priceSetId', $form->_priceSetId); $form->set('priceSet', $form->_priceSet); } + + $eventFee = $form->_values['fee'] ?? NULL; + if (!is_array($eventFee) || empty($eventFee)) { + $form->_values['fee'] = []; + } + + //fix for non-upgraded price sets.CRM-4256. + if (isset($form->_isPaidEvent)) { + $isPaidEvent = $form->_isPaidEvent; + } + else { + $isPaidEvent = $form->_values['event']['is_monetary'] ?? NULL; + } + if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus() + && !empty($form->_values['fee']) + ) { + foreach ($form->_values['fee'] as $k => $fees) { + foreach ($fees['options'] as $options) { + if (!CRM_Core_Permission::check('add contributions of type ' . CRM_Contribute_PseudoConstant::financialType($options['financial_type_id']))) { + unset($form->_values['fee'][$k]); + } + } + } + } + if ($isPaidEvent && empty($form->_values['fee'])) { + if (!in_array(CRM_Utils_System::getClassName($form), ['CRM_Event_Form_Participant', 'CRM_Event_Form_Task_Register'])) { + CRM_Core_Error::statusBounce(ts('No Fee Level(s) or Price Set is configured for this event.<br />Click <a href=\'%1\'>CiviEvent >> Manage Event >> Configure >> Event Fees</a> to configure the Fee Level(s) or Price Set for this event.', [1 => CRM_Utils_System::url('civicrm/event/manage/fee', 'reset=1&action=update&id=' . $form->_eventId)])); + } + } } /** @@ -892,7 +849,7 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { $participantParams['custom'] = []; foreach ($form->_params as $paramName => $paramValue) { if (strpos($paramName, 'custom_') === 0) { - list($customFieldID, $customValueID) = CRM_Core_BAO_CustomField::getKeyID($paramName, TRUE); + [$customFieldID, $customValueID] = CRM_Core_BAO_CustomField::getKeyID($paramName, TRUE); CRM_Core_BAO_CustomField::formatCustomField($customFieldID, $participantParams['custom'], $paramValue, 'Participant', $customValueID); } @@ -1152,7 +1109,7 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { */ public function getTemplateFileName() { $fileName = $this->checkTemplateFileExists(); - return $fileName ? $fileName : parent::getTemplateFileName(); + return $fileName ?: parent::getTemplateFileName(); } /** @@ -1162,7 +1119,7 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { */ public function overrideExtraTemplateFileName() { $fileName = $this->checkTemplateFileExists('extra.'); - return $fileName ? $fileName : parent::overrideExtraTemplateFileName(); + return $fileName ?: parent::overrideExtraTemplateFileName(); } /** @@ -1717,4 +1674,46 @@ class CRM_Event_Form_Registration extends CRM_Core_Form { ); } + /** + * Get the discount ID. + * + * @return int|null + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocMissingThrowsInspection + */ + protected function getDiscountID(): ?int { + $id = CRM_Core_BAO_Discount::findSet($this->getEventID(), 'civicrm_event'); + return $id ?: NULL; + } + + /** + * Get the price set ID for the event. + * + * @return int|null + * + * @api This function will not change in a minor release and is supported for + * use outside of core. This annotation / external support for properties + * is only given where there is specific test cover. + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocMissingThrowsInspection + */ + public function getPriceSetID(): ?int { + if ($this->_priceSetId === NULL) { + if ($this->getDiscountID()) { + $this->_priceSetId = (int) CRM_Core_DAO::getFieldValue('CRM_Core_BAO_Discount', $this->getDiscountID(), 'price_set_id'); + } + else { + $this->_priceSetId = (int) CRM_Price_BAO_PriceSet::getFor('civicrm_event', $this->getEventID()); + } + $this->set('priceSetId', $this->_priceSetId); + } + return $this->_priceSetId ?: NULL; + } + } diff --git a/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php b/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php index 46a64f7e5c461b3d9dcfa99a8b36d1371b338949..81ee3e4d0738828ae268eeecdbd652857b07168e 100644 --- a/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php +++ b/civicrm/CRM/Event/Form/Registration/AdditionalParticipant.php @@ -179,7 +179,7 @@ class CRM_Event_Form_Registration_AdditionalParticipant extends CRM_Event_Form_R $button = substr($this->controller->getButtonName(), -4); if ($this->_values['event']['is_monetary']) { - CRM_Event_Form_Registration_Register::buildAmount($this); + CRM_Event_Form_Registration_Register::buildAmount($this, TRUE, NULL, $this->_priceSetId); } //Add pre and post profiles on the form. @@ -673,6 +673,7 @@ class CRM_Event_Form_Registration_AdditionalParticipant extends CRM_Event_Form_R $params['amount'] = $this->_values['discount'][$discountId][$params['amount']]['value']; } elseif (empty($params['priceSetId'])) { + CRM_Core_Error::deprecatedWarning('unreachable code, prices set always passed as hidden field for monetary events'); $params['amount'] = $this->_values['fee'][$params['amount']]['value']; } else { diff --git a/civicrm/CRM/Event/Form/Registration/Register.php b/civicrm/CRM/Event/Form/Registration/Register.php index 36c86cbeabcbf0513caa40cdb05fcd368ecb0fb8..82321a0cdeb1c86da78fe99a9c153bd5f1e1e5da 100644 --- a/civicrm/CRM/Event/Form/Registration/Register.php +++ b/civicrm/CRM/Event/Form/Registration/Register.php @@ -34,13 +34,6 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration { protected $_waitlistMsg; protected $_requireApprovalMsg; - /** - * Deprecated parameter that we hope to remove. - * - * @var bool - */ - public $_quickConfig; - /** * Skip duplicate check. * @@ -427,7 +420,11 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration { // will only work until that is done. // https://github.com/civicrm/civicrm-core/pull/19151 $this->assign('moneyFormat', CRM_Utils_Money::format(1234.56)); - self::buildAmount($this); + // build amount only when needed, skip incase of event full and waitlisting is enabled + // and few other conditions check preProcess() + if (!$this->_noFees) { + self::buildAmount($this, TRUE, NULL, $this->_priceSetId); + } if (!$this->showPaymentOnConfirm) { CRM_Core_Payment_ProcessorForm::buildQuickForm($this); $this->addPaymentProcessorFieldsToForm(); @@ -543,25 +540,13 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration { * Form object. * @param bool $required * True if you want to add formRule. - * @param int $discountId + * @param int|null $discountId * Discount id for the event. + * @param int|null $priceSetID * * @throws \CRM_Core_Exception */ - public static function buildAmount(&$form, $required = TRUE, $discountId = NULL) { - // build amount only when needed, skip incase of event full and waitlisting is enabled - // and few other conditions check preProcess() - if (property_exists($form, '_noFees') && $form->_noFees) { - return; - } - - //if payment done, no need to build the fee block. - if (!empty($form->_paymentId)) { - //fix to display line item in update mode. - $form->assign('priceSet', $form->_priceSet ?? NULL); - return; - } - + public static function buildAmount(&$form, $required = TRUE, $discountId = NULL, $priceSetID = NULL) { $feeFields = $form->_values['fee'] ?? NULL; if (is_array($feeFields)) { @@ -594,15 +579,12 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration { $className = CRM_Utils_System::getClassName($form); //build the priceset fields. - if (isset($form->_priceSetId) && $form->_priceSetId) { + if ($priceSetID) { //format price set fields across option full. self::formatFieldsForOptionFull($form); - - if (!empty($form->_priceSet['is_quick_config'])) { - $form->_quickConfig = $form->_priceSet['is_quick_config']; - } - $form->add('hidden', 'priceSetId', $form->_priceSetId); + // This is probably not required now - normally loaded from event .... + $form->add('hidden', 'priceSetId', $priceSetID); // CRM-14492 Admin price fields should show up on event registration if user has 'administer CiviCRM' permissions $adminFieldVisible = FALSE; @@ -670,10 +652,11 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration { } } } - $form->_priceSet['id'] = $form->_priceSet['id'] ?? $form->_priceSetId; + $form->_priceSet['id'] = $form->_priceSet['id'] ?? $priceSetID; $form->assign('priceSet', $form->_priceSet); } else { + // Is this reachable? $eventFeeBlockValues = $elements = $elementJS = []; foreach ($form->_feeBlock as $fee) { if (is_array($fee)) { @@ -1060,6 +1043,7 @@ class CRM_Event_Form_Registration_Register extends CRM_Event_Form_Registration { $params['amount'] = $this->_values['discount'][$discountId][$params['amount']]['value']; } elseif (empty($params['priceSetId'])) { + CRM_Core_Error::deprecatedWarning('unreachable code price set is always set here - passed as a hidden field although we could just load...'); if (!empty($params['amount'])) { $params['amount'] = $this->_values['fee'][$params['amount']]['value']; } diff --git a/civicrm/CRM/Event/Form/SearchEvent.php b/civicrm/CRM/Event/Form/SearchEvent.php index 269eeb36507f56d3d4bdfbd2cec13de47c0cd533..297e971856cb3ca77461ab1ac5437c67dca2f48f 100644 --- a/civicrm/CRM/Event/Form/SearchEvent.php +++ b/civicrm/CRM/Event/Form/SearchEvent.php @@ -46,7 +46,7 @@ class CRM_Event_Form_SearchEvent extends CRM_Core_Form { */ public function buildQuickForm() { $this->add('text', 'title', ts('Event Name'), - [CRM_Core_DAO::getAttribute('CRM_Event_DAO_Event', 'title')] + CRM_Core_DAO::getAttribute('CRM_Event_DAO_Event', 'title') ); $this->addSelect('event_type_id', ['multiple' => TRUE, 'context' => 'search']); diff --git a/civicrm/CRM/Event/Form/Task/Register.php b/civicrm/CRM/Event/Form/Task/Register.php index 2b8d9a12f681833f92857d49275069192d7aaf18..e30f91265781f50997df8ffb46a3df865b62b865 100644 --- a/civicrm/CRM/Event/Form/Task/Register.php +++ b/civicrm/CRM/Event/Form/Task/Register.php @@ -154,6 +154,30 @@ class CRM_Event_Form_Task_Register extends CRM_Event_Form_Participant { CRM_Core_Session::setStatus($statusMsg, ts('Saved'), 'success'); } + /** + * Get status message + * + * @param array $params + * @param int $numberSent + * @param int $numberNotSent + * @param string $updateStatusMsg + * + * @return string + */ + protected function getStatusMsg(array $params, int $numberSent, int $numberNotSent, string $updateStatusMsg): string { + $statusMsg = ''; + if ($this->_action & CRM_Core_Action::ADD) { + $statusMsg = ts('Total Participant(s) added to event: %1.', [1 => count($this->_contactIds)]); + if ($numberNotSent > 0) { + $statusMsg .= ' ' . ts('Email has NOT been sent to %1 contact(s) - communication preferences specify DO NOT EMAIL OR valid Email is NOT present. ', [1 => $numberNotSent]); + } + elseif (isset($params['send_receipt'])) { + $statusMsg .= ' ' . ts('A confirmation email has been sent to ALL participants'); + } + } + return $statusMsg; + } + /** * Add local and global form rules. * diff --git a/civicrm/CRM/Event/Import/Parser/Participant.php b/civicrm/CRM/Event/Import/Parser/Participant.php index 27456bb4dbff46481245ef3e3300b293851c7280..d780e858bf48f939e74b31789d232109298c2501 100644 --- a/civicrm/CRM/Event/Import/Parser/Participant.php +++ b/civicrm/CRM/Event/Import/Parser/Participant.php @@ -21,14 +21,6 @@ class CRM_Event_Import_Parser_Participant extends CRM_Import_Parser { protected $_mapperKeys; - /** - * Array of successfully imported participants id's - * - * @var array - */ - protected $_newParticipants; - - protected $_fileName; /** @@ -147,8 +139,6 @@ class CRM_Event_Import_Parser_Participant extends CRM_Import_Parser { ]; CRM_Price_BAO_LineItem::syncLineItems($newParticipant->id, 'civicrm_participant', $newParticipant->fee_amount, $otherParams); } - - $this->_newParticipant[] = $newParticipant->id; $this->setImportStatus($rowNumber, 'IMPORTED', '', $newParticipant->id); return; } @@ -225,10 +215,6 @@ class CRM_Event_Import_Parser_Participant extends CRM_Import_Parser { throw new CRM_Core_Exception(ts('Unknown error')); } } - - if (!(is_array($newParticipant) && civicrm_error($newParticipant))) { - $this->_newParticipants[] = $newParticipant['id'] ?? NULL; - } } catch (CRM_Core_Exception $e) { $this->setImportStatus($rowNumber, 'ERROR', $e->getMessage()); @@ -237,15 +223,6 @@ class CRM_Event_Import_Parser_Participant extends CRM_Import_Parser { $this->setImportStatus($rowNumber, 'IMPORTED', '', $newParticipant['id']); } - /** - * Get the array of successfully imported Participation ids. - * - * @return array - */ - public function &getImportedParticipations() { - return $this->_newParticipants; - } - /** * Format values * diff --git a/civicrm/CRM/Event/Page/ManageEvent.php b/civicrm/CRM/Event/Page/ManageEvent.php index 1561f9f390b8fe52dec0c7863b7fff5f70c3f545..bee5e2ae2f14e53d8f76ac7b707d0d820a3f855b 100644 --- a/civicrm/CRM/Event/Page/ManageEvent.php +++ b/civicrm/CRM/Event/Page/ManageEvent.php @@ -59,17 +59,20 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Event'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Event'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => CRM_Utils_System::currentPath(), 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Event'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::COPY => [ 'name' => ts('Copy'), @@ -77,6 +80,7 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { 'qs' => 'reset=1&action=copy&id=%%id%%', 'extra' => 'onclick = "return confirm(\'' . $copyExtra . '\');"', 'title' => ts('Copy Event'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::COPY), ], ]; } @@ -91,6 +95,7 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { 'title' => ts('Register Participant'), 'url' => 'civicrm/participant/add', 'qs' => 'reset=1&action=add&context=standalone&eid=%%id%%', + 'weight' => -30, ], 'event_info' => [ 'name' => ts('Event Info'), @@ -98,6 +103,7 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { 'url' => 'civicrm/event/info', 'qs' => 'reset=1&id=%%id%%', 'fe' => TRUE, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], 'online_registration_test' => [ 'name' => ts('Registration (Test-drive)'), @@ -105,6 +111,7 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { 'url' => 'civicrm/event/register', 'qs' => 'reset=1&action=preview&id=%%id%%', 'fe' => TRUE, + 'weight' => 30, ], 'online_registration_live' => [ 'name' => ts('Registration (Live)'), @@ -112,6 +119,7 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { 'url' => 'civicrm/event/register', 'qs' => 'reset=1&id=%%id%%', 'fe' => TRUE, + 'weight' => 40, ], ]; } @@ -312,7 +320,7 @@ class CRM_Event_Page_ManageEvent extends CRM_Core_Page { $params = []; $whereClause = $this->whereClause($params, TRUE, $this->_force); // because is_template != 1 would be to simple - $whereClause .= ' AND (is_template = 0 OR is_template IS NULL)'; + $whereClause .= ' AND is_template = 0'; $this->pager($whereClause, $params); diff --git a/civicrm/CRM/Event/ParticipantTokens.php b/civicrm/CRM/Event/ParticipantTokens.php index 6df913b0ac2f5e508f66f175853f77f2180f38fe..1c5d00095080c70096e0d928b9bc72f267a6570e 100644 --- a/civicrm/CRM/Event/ParticipantTokens.php +++ b/civicrm/CRM/Event/ParticipantTokens.php @@ -54,7 +54,7 @@ class CRM_Event_ParticipantTokens extends CRM_Core_EntityTokens { public function alterActionScheduleQuery(\Civi\ActionSchedule\Event\MailingQueryEvent $e): void { // When targeting `civicrm_participant` records, we enable both `{participant.*}` (per usual) and the related `{event.*}`. parent::alterActionScheduleQuery($e); - if ($e->mapping->getEntityTable() === $this->getExtendableTableName()) { + if ($e->mapping->getEntityTable($e->actionSchedule) === $this->getExtendableTableName()) { $e->query->select('e.event_id AS tokenContext_eventId'); } } diff --git a/civicrm/CRM/Event/PseudoConstant.php b/civicrm/CRM/Event/PseudoConstant.php index ca1ad28386c2acadcdc307bafead5e4ba651b2a4..b8bd9f11a62bf664d5bfaadd9fefa3d55908f5ce 100644 --- a/civicrm/CRM/Event/PseudoConstant.php +++ b/civicrm/CRM/Event/PseudoConstant.php @@ -124,7 +124,7 @@ class CRM_Event_PseudoConstant extends CRM_Core_PseudoConstant { self::$participantStatus = []; } - $index = $cond ? $cond : 'No Condition'; + $index = $cond ?: 'No Condition'; $index = "{$index}_{$retColumn}"; if (empty(self::$participantStatus[$index])) { self::$participantStatus[$index] = []; @@ -183,7 +183,7 @@ class CRM_Event_PseudoConstant extends CRM_Core_PseudoConstant { * array reference of all participant roles if any */ public static function &participantRole($id = NULL, $cond = NULL) { - $index = $cond ? $cond : 'No Condition'; + $index = $cond ?: 'No Condition'; if (empty(self::$participantRole[$index])) { self::$participantRole[$index] = []; diff --git a/civicrm/CRM/Event/Selector/Search.php b/civicrm/CRM/Event/Selector/Search.php index b7f6967f6b4d30b68ca2c81ee85448c2c91e299d..9000dbbf90be52bd273a73d83a466c46cdee2ae2 100644 --- a/civicrm/CRM/Event/Selector/Search.php +++ b/civicrm/CRM/Event/Selector/Search.php @@ -354,12 +354,13 @@ class CRM_Event_Selector_Search extends CRM_Core_Selector_Base implements CRM_Co $row['checkbox'] = CRM_Core_Form::CB_PREFIX . $result->participant_id; $links = self::links($this->_key, $this->_context, $this->_compContext); - if ($statusTypes[$row['participant_status_id']] == 'Partially paid') { + if ($statusTypes[$row['participant_status_id']] === 'Partially paid') { $links[CRM_Core_Action::ADD] = [ 'name' => ts('Record Payment'), 'url' => 'civicrm/payment', 'qs' => 'reset=1&id=%%id%%&cid=%%cid%%&action=add&component=event', 'title' => ts('Record Payment'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADD), ]; if (CRM_Core_Config::isEnabledBackOfficeCreditCardPayments()) { $links[CRM_Core_Action::BASIC] = [ @@ -367,16 +368,18 @@ class CRM_Event_Selector_Search extends CRM_Core_Selector_Base implements CRM_Co 'url' => 'civicrm/payment/add', 'qs' => 'reset=1&id=%%id%%&cid=%%cid%%&action=add&component=event&mode=live', 'title' => ts('Submit Credit Card payment'), + 'weight' => 50, ]; } } - if ($statusTypes[$row['participant_status_id']] == 'Pending refund') { + if ($statusTypes[$row['participant_status_id']] === 'Pending refund') { $links[CRM_Core_Action::ADD] = [ 'name' => ts('Record Refund'), 'url' => 'civicrm/payment', 'qs' => 'reset=1&id=%%id%%&cid=%%cid%%&action=add&component=event', 'title' => ts('Record Refund'), + 'weight' => 60, ]; } @@ -391,6 +394,7 @@ class CRM_Event_Selector_Search extends CRM_Core_Selector_Base implements CRM_Co 'url' => 'civicrm/event/selfsvcupdate', 'qs' => 'reset=1&pid=%%id%%&is_backoffice=1&cs=' . CRM_Contact_BAO_Contact_Utils::generateChecksum($result->contact_id, NULL, 'inf'), 'title' => ts('Transfer or Cancel'), + 'weight' => 70, ]; } diff --git a/civicrm/CRM/Event/Tokens.php b/civicrm/CRM/Event/Tokens.php index 3bea3272913e19b66a8835397fb046b5118ec43f..286d56cbbfff8e4c0cf7051cd6019fcbf037548e 100644 --- a/civicrm/CRM/Event/Tokens.php +++ b/civicrm/CRM/Event/Tokens.php @@ -148,7 +148,7 @@ class CRM_Event_Tokens extends CRM_Core_EntityTokens { * @throws \CRM_Core_Exception */ public function evaluateToken(TokenRow $row, $entity, $field, $prefetch = NULL) { - $eventID = $this->getFieldValue($row, 'id'); + $eventID = (int) $this->getFieldValue($row, 'id'); if (array_key_exists($field, $this->getEventTokenValues($eventID))) { foreach ($this->getEventTokenValues($eventID)[$field] as $format => $value) { $row->format($format)->tokens($entity, $field, $value ?? ''); diff --git a/civicrm/CRM/Event/WorkflowMessage/ParticipantTrait.php b/civicrm/CRM/Event/WorkflowMessage/ParticipantTrait.php index a739ba168086486b11519ecd3594923375961f40..92d5409c3a55ba373743dda5d2f97ac4d75b581c 100644 --- a/civicrm/CRM/Event/WorkflowMessage/ParticipantTrait.php +++ b/civicrm/CRM/Event/WorkflowMessage/ParticipantTrait.php @@ -58,6 +58,17 @@ trait CRM_Event_WorkflowMessage_ParticipantTrait { */ public $participants; + /** + * The current participant (if there are multiple this is the one being emailed). + * + * This uses the same format as the participants array. + * + * @var array + * + * @scope tplParams as participant + */ + public $currentParticipant; + /** * Details of the participant contacts. * @@ -114,7 +125,7 @@ trait CRM_Event_WorkflowMessage_ParticipantTrait { $participantPayment = civicrm_api3('ParticipantPayment', 'get', ['participant_id' => $participantID])['values']; if (!empty($participantPayment)) { // no ts() since this should be rare - CRM_Core_Session::setStatus('There might be a data problem, contribution id could not be loaded from the line item'); + CRM_Core_Error::deprecatedWarning('There might be a data problem, contribution id could not be loaded from the line item'); $participantPayment = reset($participantPayment); $this->setContributionID((int) $participantPayment['contribution_id']); } @@ -173,6 +184,22 @@ trait CRM_Event_WorkflowMessage_ParticipantTrait { return $this->participant; } + /** + * Get the line items and tax information indexed by participant. + * + * We will likely add profile data to this too. This is so we can iterate through + * participants as the primary participant needs to show them all (and the others + * need to be able to filter). + * + * @return array + * @throws \CRM_Core_Exception + */ + public function getCurrentParticipant(): array { + // @todo - it is only because of some messed up tests which use + // the legacy testSubmit function we have ?? [] + return $this->getParticipants()[$this->participantID] ?? []; + } + /** * Get the line items and tax information indexed by participant. * diff --git a/civicrm/CRM/Extension/Container/Basic.php b/civicrm/CRM/Extension/Container/Basic.php index 6d6157c041aea5b60e2617d20e4dbe42a62b009f..5b76597a8cdc63a8dc29083a3c8dfbeed19c50b4 100644 --- a/civicrm/CRM/Extension/Container/Basic.php +++ b/civicrm/CRM/Extension/Container/Basic.php @@ -214,10 +214,11 @@ class CRM_Extension_Container_Basic implements CRM_Extension_Container_Interface $info = CRM_Extension_Info::loadFromFile($infoPath); } catch (CRM_Extension_Exception_ParseException $e) { - CRM_Core_Session::setStatus(ts('Parse error in extension: %1', [ - 1 => $e->getMessage(), + CRM_Core_Session::setStatus(ts('Parse error in extension %1: %2', [ + 1 => ltrim($relPath, '/'), + 2 => $e->getMessage(), ]), '', 'error'); - CRM_Core_Error::debug_log_message("Parse error in extension: " . $e->getMessage()); + CRM_Core_Error::debug_log_message("Parse error in extension " . ltrim($relPath, '/') . ": " . $e->getMessage()); continue; } $visible = TRUE; diff --git a/civicrm/CRM/Extension/Mapper.php b/civicrm/CRM/Extension/Mapper.php index 87211fc06203006a11df3329d8421b49db4a419d..53bca81722d7d34dd416345214c98641d2eba08d 100644 --- a/civicrm/CRM/Extension/Mapper.php +++ b/civicrm/CRM/Extension/Mapper.php @@ -452,10 +452,11 @@ class CRM_Extension_Mapper { $this->keyToInfo($key); } catch (CRM_Extension_Exception_ParseException $e) { - CRM_Core_Session::setStatus(ts('Parse error in extension: %1', [ - 1 => $e->getMessage(), + CRM_Core_Session::setStatus(ts('Parse error in extension %1: %2', [ + 1 => $key, + 2 => $e->getMessage(), ]), '', 'error'); - CRM_Core_Error::debug_log_message("Parse error in extension: " . $e->getMessage()); + CRM_Core_Error::debug_log_message("Parse error in extension " . $key . ": " . $e->getMessage()); continue; } } @@ -515,7 +516,7 @@ class CRM_Extension_Mapper { } /** - * Given te class, provides the template name. + * Given the class, provides the template name. * @todo consider multiple templates, support for one template for now * * @@ -576,10 +577,11 @@ class CRM_Extension_Mapper { $info = $this->keyToInfo($key); } catch (CRM_Extension_Exception_ParseException $e) { - CRM_Core_Session::setStatus(ts('Parse error in extension: %1', [ - 1 => $e->getMessage(), + CRM_Core_Session::setStatus(ts('Parse error in extension %1: %2', [ + 1 => $key, + 2 => $e->getMessage(), ]), '', 'error'); - CRM_Core_Error::debug_log_message("Parse error in extension: " . $e->getMessage()); + CRM_Core_Error::debug_log_message("Parse error in extension " . $key . ": " . $e->getMessage()); return NULL; } diff --git a/civicrm/CRM/Financial/BAO/Payment.php b/civicrm/CRM/Financial/BAO/Payment.php index 7b1d79ea60c256a68b0c1acc7baaa0342c923996..b9643f824389ef30893da63e9191b2e0a72f5005 100644 --- a/civicrm/CRM/Financial/BAO/Payment.php +++ b/civicrm/CRM/Financial/BAO/Payment.php @@ -96,12 +96,15 @@ class CRM_Financial_BAO_Payment { $trxn = CRM_Core_BAO_FinancialTrxn::create($paymentTrxnParams); if ($params['total_amount'] < 0 && !empty($params['cancelled_payment_id'])) { + // Payment was cancelled. Reverse the financial transactions. self::reverseAllocationsFromPreviousPayment($params, $trxn->id); } else { + // Record new "payment" (financial_trxn, financial_item, entity_financial_trxn etc). $salesTaxFinancialAccount = CRM_Contribute_BAO_Contribution::getSalesTaxFinancialAccounts(); + // Get all the lineitems and add financial_item information to them for the contribution on which we are recording a payment. $financialItems = LineItem::get(FALSE) - ->addSelect('tax_amount', 'price_field_value_id', 'financial_item.id', 'financial_item.status_id:name', 'financial_item.financial_account_id') + ->addSelect('tax_amount', 'price_field_value_id', 'financial_item.id', 'financial_item.status_id:name', 'financial_item.financial_account_id', 'financial_item.entity_id') ->addJoin( 'FinancialItem AS financial_item', 'INNER', @@ -112,6 +115,7 @@ class CRM_Financial_BAO_Payment { ->addOrderBy('financial_item.id', 'DESC') ->addWhere('contribution_id', '=', (int) $params['contribution_id'])->execute(); + // Loop through our list of payable lineitems foreach ($lineItems as $lineItem) { if ($lineItem['allocation'] === (float) 0) { continue; @@ -119,29 +123,33 @@ class CRM_Financial_BAO_Payment { $financialItemID = NULL; $currentFinancialItemStatus = NULL; foreach ($financialItems as $financialItem) { - // We check against price_field_value_id rather than line item - // id because that is what the code did previously - but it's - // unclear whether this is for good reason or bad coding. - if ($financialItem['price_field_value_id'] === (int) $lineItem['price_field_value_id'] + // $financialItems is a list of all lineitems for the contribution + // Loop through all of them and match on the first one which is not of type "Sales Tax". + if ($financialItem['financial_item.entity_id'] === (int) $lineItem['id'] && !in_array($financialItem['financial_item.financial_account_id'], $salesTaxFinancialAccount, TRUE) ) { $financialItemID = $financialItem['financial_item.id']; $currentFinancialItemStatus = $financialItem['financial_item.status_id:name']; + // We can break out of the loop because there will only be one lineitem=financial_item.entity_id. + break; } } if (!$financialItemID) { + // If we didn't find a lineitem that is NOT of type "Sales Tax" then create a new one. $financialItemID = self::getNewFinancialItemID($lineItem, $params['trxn_date'], $contribution['contact_id'], $paymentTrxnParams['currency']); } + // Now create an EntityFinancialTrxn record to link the new financial_trxn to the lineitem and mark it as paid. $eftParams = [ 'entity_table' => 'civicrm_financial_item', 'financial_trxn_id' => $trxn->id, 'entity_id' => $financialItemID, 'amount' => $lineItem['allocation'], ]; - civicrm_api3('EntityFinancialTrxn', 'create', $eftParams); - if ($currentFinancialItemStatus && 'Paid' !== $currentFinancialItemStatus) { + + if ($currentFinancialItemStatus && ('Paid' !== $currentFinancialItemStatus)) { + // Did the lineitem get fully paid? $newStatus = $lineItem['allocation'] < $lineItem['balance'] ? 'Partially paid' : 'Paid'; FinancialItem::update(FALSE) ->addValue('status_id:name', $newStatus) @@ -150,9 +158,12 @@ class CRM_Financial_BAO_Payment { } foreach ($financialItems as $financialItem) { - if ($financialItem['price_field_value_id'] === (int) $lineItem['price_field_value_id'] + // $financialItems is a list of all lineitems for the contribution + // Now we loop through all of them and match on the first one which IS of type "Sales Tax". + if ($financialItem['financial_item.entity_id'] === (int) $lineItem['id'] && in_array($financialItem['financial_item.financial_account_id'], $salesTaxFinancialAccount, TRUE) ) { + // If we find a "Sales Tax" lineitem we record a tax entry in entityFiancncialTrxn // @todo - this is expected to be broken - it should be fixed to // a) have the getPayableLineItems add the amount to allocate for tax // b) call EntityFinancialTrxn directly - per above. @@ -596,7 +607,7 @@ class CRM_Financial_BAO_Payment { /** * Reverse the entity financial transactions associated with the cancelled payment. * - * The reversals are linked to the new payemnt. + * The reversals are linked to the new payment. * * @param array $params * @param int $trxnID diff --git a/civicrm/CRM/Financial/Form/BatchTransaction.php b/civicrm/CRM/Financial/Form/BatchTransaction.php index e93585cb5669a5273981db82a0d105329c2980af..dee4265809c09cd5bb91f8566bb8fc9aa6751b78 100644 --- a/civicrm/CRM/Financial/Form/BatchTransaction.php +++ b/civicrm/CRM/Financial/Form/BatchTransaction.php @@ -74,7 +74,7 @@ class CRM_Financial_Form_BatchTransaction extends CRM_Contribute_Form_Search { * Build the form object. */ public function buildQuickForm() { - if ($this->_batchStatus == 'Closed') { + if ($this->_batchStatus === 'Closed') { $this->add('xbutton', 'export_batch', ts('Export Batch'), ['type' => 'submit']); } @@ -166,12 +166,14 @@ class CRM_Financial_Form_BatchTransaction extends CRM_Contribute_Form_Search { 'url' => 'civicrm/contact/view/contribution', 'qs' => 'reset=1&id=%%contid%%&cid=%%cid%%&action=view&context=contribution&selectedChild=contribute', 'title' => ts('View Contribution'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], 'assign' => [ 'name' => ts('Assign'), 'ref' => 'disable-action', 'title' => ts('Assign Transaction'), 'extra' => 'onclick = "assignRemove( %%id%%,\'' . 'assign' . '\' );"', + 'weight' => 50, ], ]; } diff --git a/civicrm/CRM/Financial/Page/AJAX.php b/civicrm/CRM/Financial/Page/AJAX.php index 7bab72bbd23e3c7b1598b29ab5b47525542ace4b..9dc74798b3b1a2b424c8312dd1b374ea69e78b9f 100644 --- a/civicrm/CRM/Financial/Page/AJAX.php +++ b/civicrm/CRM/Financial/Page/AJAX.php @@ -341,12 +341,12 @@ class CRM_Financial_Page_AJAX { while ($financialItem->fetch()) { $row[$financialItem->id] = []; foreach ($columnHeader as $columnKey => $columnValue) { - if ($financialItem->contact_sub_type && $columnKey == 'contact_type') { + if ($financialItem->contact_sub_type && $columnKey === 'contact_type') { $row[$financialItem->id][$columnKey] = $financialItem->contact_sub_type; continue; } $row[$financialItem->id][$columnKey] = $financialItem->$columnKey; - if ($columnKey == 'sort_name' && $financialItem->$columnKey && $financialItem->contact_id) { + if ($columnKey === 'sort_name' && $financialItem->$columnKey && $financialItem->contact_id) { $url = CRM_Utils_System::url('civicrm/contact/view', "reset=1&cid=" . $financialItem->contact_id); $row[$financialItem->id][$columnKey] = '<a href=' . $url . '>' . $financialItem->$columnKey . '</a>'; } diff --git a/civicrm/CRM/Financial/Page/BatchTransaction.php b/civicrm/CRM/Financial/Page/BatchTransaction.php index 381e5cdf21ef13512f04de0018c4c2a2aff82376..39f5606a2e5ab48acc82df73be98914fb155a07b 100644 --- a/civicrm/CRM/Financial/Page/BatchTransaction.php +++ b/civicrm/CRM/Financial/Page/BatchTransaction.php @@ -63,11 +63,13 @@ class CRM_Financial_Page_BatchTransaction extends CRM_Core_Page_Basic { 'url' => 'civicrm/contact/view/contribution', 'qs' => 'reset=1&id=%%contid%%&cid=%%cid%%&action=view&context=contribution&selectedChild=contribute', 'title' => ts('View Contribution'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], 'remove' => [ 'name' => ts('Remove'), 'title' => ts('Remove Transaction'), 'extra' => 'onclick = "removeFromBatch(%%id%%);"', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Financial/Page/FinancialAccount.php b/civicrm/CRM/Financial/Page/FinancialAccount.php index 16e7d6a187c8f6b975433d6582c3e0d478678171..a286705b2e61edc61a41355527a3d5473175f7fe 100644 --- a/civicrm/CRM/Financial/Page/FinancialAccount.php +++ b/civicrm/CRM/Financial/Page/FinancialAccount.php @@ -52,22 +52,26 @@ class CRM_Financial_Page_FinancialAccount extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/financial/financialAccount/edit', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/financial/financialAccount/edit', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Financial/Page/FinancialType.php b/civicrm/CRM/Financial/Page/FinancialType.php index 00b44d0c6db1f64ad664acbc4805a9eeb3dca84e..05484e8ef5f6796cff902c05e0177b84d5519876 100644 --- a/civicrm/CRM/Financial/Page/FinancialType.php +++ b/civicrm/CRM/Financial/Page/FinancialType.php @@ -52,28 +52,33 @@ class CRM_Financial_Page_FinancialType extends CRM_Core_Page_Basic { 'url' => 'civicrm/admin/financial/financialType/accounts', 'qs' => 'reset=1&action=browse&aid=%%id%%', 'title' => ts('Accounts'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Edit'), 'url' => 'civicrm/admin/financial/financialType/edit', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/financial/financialType/edit', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Financial Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Financial/Page/FinancialTypeAccount.php b/civicrm/CRM/Financial/Page/FinancialTypeAccount.php index 75b4d47e2bbb7c91af14a189e58da4b1e3fb3807..53ff637fcc22b4ecf7812e061f5872546aed6c2e 100644 --- a/civicrm/CRM/Financial/Page/FinancialTypeAccount.php +++ b/civicrm/CRM/Financial/Page/FinancialTypeAccount.php @@ -57,12 +57,14 @@ class CRM_Financial_Page_FinancialTypeAccount extends CRM_Core_Page { 'url' => 'civicrm/admin/financial/financialType/accounts', 'qs' => 'action=update&id=%%id%%&aid=%%aid%%&reset=1', 'title' => ts('Edit Financial Type Account'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/financial/financialType/accounts', 'qs' => 'action=delete&id=%%id%%&aid=%%aid%%', 'title' => ts('Delete Financial Type Account'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/Group/Form/Search.php b/civicrm/CRM/Group/Form/Search.php index 9a6d45cbcd6a06626b467bde127eae533c82de3d..2d83105928e0a3e1a9f6addf877ecde57129a0ee 100644 --- a/civicrm/CRM/Group/Form/Search.php +++ b/civicrm/CRM/Group/Form/Search.php @@ -35,11 +35,11 @@ class CRM_Group_Form_Search extends CRM_Core_Form { } public function buildQuickForm() { - $this->add('text', 'title', ts('Find'), + $this->add('text', 'title', ts('Group Name'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Group', 'title') ); - $this->add('text', 'created_by', ts('Created By'), + $this->add('text', 'created_by', ts('Created By (Name)'), CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Group', 'title') ); diff --git a/civicrm/CRM/Import/Form/MapField.php b/civicrm/CRM/Import/Form/MapField.php index ff1c6d0ca15e4e9235ebd4bf2994a591a63b5490..cf150e0f23de167302acbf57fe6c8efdbe7e0792 100644 --- a/civicrm/CRM/Import/Form/MapField.php +++ b/civicrm/CRM/Import/Form/MapField.php @@ -67,6 +67,11 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms { $this->assign('highlightedFields', $this->getHighlightedFields()); $this->assign('dataValues', array_values($this->getDataRows([], 2))); $this->_mapperFields = $this->getAvailableFields(); + $fieldMappings = $this->getFieldMappings(); + // Check if the import file headers match the selected import mappings, throw an error if it doesn't. + if (empty($_POST) && count($fieldMappings) > 0 && count($this->getColumnHeaders()) !== count($fieldMappings)) { + CRM_Core_Session::singleton()->setStatus(ts('The data columns in this import file appear to be different from the saved mapping. Please verify that you have selected the correct saved mapping before continuing.')); + } asort($this->_mapperFields); parent::preProcess(); } @@ -228,7 +233,7 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms { // Eventually we hope to phase out the use of the civicrm_mapping data & // just use UserJob and Import Templates (UserJob records with 'is_template' = 1 $mappedFieldData = $this->userJob['metadata']['import_mappings'][$columnNumber]; - $mappedField = array_intersect_key(array_fill_keys(['name', 'column_number', 'entity_data'], TRUE), $mappedFieldData); + $mappedField = array_intersect_key($mappedFieldData, array_fill_keys(['name', 'column_number', 'entity_data'], TRUE)); $mappedField['mapping_id'] = $mappingID; } else { @@ -296,9 +301,6 @@ abstract class CRM_Import_Form_MapField extends CRM_Import_Forms { ->execute() ->indexBy('column_number'); - if ((count($this->getColumnHeaders()) !== count($fieldMappings))) { - CRM_Core_Session::singleton()->setStatus(ts('The data columns in this import file appear to be different from the saved mapping. Please verify that you have selected the correct saved mapping before continuing.')); - } return (array) $fieldMappings; } return []; diff --git a/civicrm/CRM/Import/Parser.php b/civicrm/CRM/Import/Parser.php index f8ec36d4e4d92c92dbd96daf94a4e2f56bf14efe..7d327675e0a83ad6e5de1b0e84893400de8a09cd 100644 --- a/civicrm/CRM/Import/Parser.php +++ b/civicrm/CRM/Import/Parser.php @@ -1641,7 +1641,7 @@ abstract class CRM_Import_Parser implements UserJobInterface { $comparisonValue = $this->getComparisonValue($importedValue); return $options[$comparisonValue] ?? 'invalid_import_value'; } - if (!empty($fieldMetadata['FKClassName']) || !empty($fieldMetadata['pseudoconstant']['prefetch'])) { + if (!empty($fieldMetadata['FKClassName']) || ($fieldMetadata['pseudoconstant']['prefetch'] ?? NULL) === 'disabled') { // @todo - make this generic - for fields where getOptions doesn't fetch // getOptions does not retrieve these fields with high potential results if ($fieldName === 'event_id') { @@ -2219,7 +2219,9 @@ abstract class CRM_Import_Parser implements UserJobInterface { } //check if external identifier exists in database if ($contactID && $foundContact['id'] !== $contactID) { - throw new CRM_Core_Exception(ts('Existing external ID does not match the imported contact ID.'), CRM_Import_Parser::ERROR); + throw new CRM_Core_Exception( + ts('Imported external ID already belongs to an existing contact with a different contact ID than the imported contact ID or than the contact ID of the contact matched on the entity imported.'), + CRM_Import_Parser::ERROR); } return (int) $foundContact['id']; } diff --git a/civicrm/CRM/Logging/ReportDetail.php b/civicrm/CRM/Logging/ReportDetail.php index a8cb03d610b16c9f0eb4b8a8ebf076f517de65ba..8df6ec89e5b67b9c3efe3f21a77ac47a61bfb2a1 100644 --- a/civicrm/CRM/Logging/ReportDetail.php +++ b/civicrm/CRM/Logging/ReportDetail.php @@ -455,7 +455,7 @@ class CRM_Logging_ReportDetail extends CRM_Report_Form { unset($_POST['crmPID_B'], $_POST['crmPID']); } - $pageId = $pageId ? $pageId : 1; + $pageId = $pageId ?: 1; $offset = ($pageId - 1) * $rowCount; $offset = CRM_Utils_Type::escape($offset, 'Int'); diff --git a/civicrm/CRM/Mailing/BAO/MailingJob.php b/civicrm/CRM/Mailing/BAO/MailingJob.php index d8de39f04ca23a2fab5fc06d1f9721b236a2dacc..86252a9cf9b1965da0f75f776faa85202e2f1e8a 100644 --- a/civicrm/CRM/Mailing/BAO/MailingJob.php +++ b/civicrm/CRM/Mailing/BAO/MailingJob.php @@ -351,7 +351,7 @@ class CRM_Mailing_BAO_MailingJob extends CRM_Mailing_DAO_MailingJob { $transaction = new CRM_Core_Transaction(); - $job->split_job($offset); + $job->split_job((int) $offset, (int) $job->id, (int) $job->mailing_id, $job->scheduled_date); // Update the status of the parent job self::create(['id' => $job->id, 'start_date' => date('YmdHis'), 'status' => 'Running']); @@ -365,26 +365,27 @@ class CRM_Mailing_BAO_MailingJob extends CRM_Mailing_DAO_MailingJob { /** * Split the parent job into n number of child job based on an offset. * If null or 0 , we create only one child job + * * @param int $offset + * @param int $jobID + * @param int $mailingID + * @param string $scheduledDate + * + * @throws \Civi\Core\Exception\DBQueryException */ - public function split_job($offset = 200) { - $recipient_count = CRM_Mailing_BAO_MailingRecipients::mailingSize($this->mailing_id); - - $jobTable = CRM_Mailing_DAO_MailingJob::getTableName(); - - $dao = new CRM_Core_DAO(); - - $sql = " + private static function split_job(int $offset, int $jobID, int $mailingID, string $scheduledDate): void { + $recipient_count = CRM_Mailing_BAO_MailingRecipients::mailingSize($mailingID); + $sql = ' INSERT INTO civicrm_mailing_job (`mailing_id`, `scheduled_date`, `status`, `job_type`, `parent_id`, `job_offset`, `job_limit`) VALUES (%1, %2, %3, %4, %5, %6, %7) -"; +'; $params = [ - 1 => [$this->mailing_id, 'Integer'], - 2 => [$this->scheduled_date, 'String'], + 1 => [$mailingID, 'Integer'], + 2 => [$scheduledDate, 'String'], 3 => ['Scheduled', 'String'], 4 => ['child', 'String'], - 5 => [$this->id, 'Integer'], + 5 => [$jobID, 'Integer'], 6 => [0, 'Integer'], 7 => [$recipient_count, 'Integer'], ]; @@ -398,9 +399,9 @@ VALUES (%1, %2, %3, %4, %5, %6, %7) } else { // Creating 'child jobs' - $scheduled_unixtime = strtotime($this->scheduled_date); - for ($i = 0, $s = 0; $i < $recipient_count; $i = $i + $offset, $s++) { - $params[2][0] = date('Y-m-d H:i:s', $scheduled_unixtime + $s); + $scheduled_unix_time = strtotime($scheduledDate); + for ($i = 0, $s = 0; $i < $recipient_count; $i += $offset, $s++) { + $params[2][0] = date('Y-m-d H:i:s', $scheduled_unix_time + $s); $params[6][0] = $i; $params[7][0] = $offset; CRM_Core_DAO::executeQuery($sql, $params); diff --git a/civicrm/CRM/Mailing/DAO/Mailing.php b/civicrm/CRM/Mailing/DAO/Mailing.php index fd8055ccea5b61c0ca8d4330d4563622264a6a68..894028116b85d925e9afdcaaf17c0db83698dc16 100644 --- a/civicrm/CRM/Mailing/DAO/Mailing.php +++ b/civicrm/CRM/Mailing/DAO/Mailing.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Mailing/Mailing.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:b6497d273cd5ec8c044a5b60c6cd5fea) + * (GenCodeChecksum:7370dea62ce328244525bac141d7fb62) */ /** @@ -1363,7 +1363,7 @@ class CRM_Mailing_DAO_Mailing extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Mailing/Form/Unsubscribe.php b/civicrm/CRM/Mailing/Form/Unsubscribe.php index e5acb4192272690564319f06eb9950aa7694108c..cf17a06f0ace91fa5cc9b0646018033e59b9e0c3 100644 --- a/civicrm/CRM/Mailing/Form/Unsubscribe.php +++ b/civicrm/CRM/Mailing/Form/Unsubscribe.php @@ -66,6 +66,12 @@ class CRM_Mailing_Form_Unsubscribe extends CRM_Core_Form { list($displayName, $email) = CRM_Mailing_Event_BAO_MailingEventQueue::getContactInfo($queue_id); $this->assign('display_name', $displayName); + $nameMasked = ''; + $names = explode(' ', $displayName); + foreach ($names as $name) { + $nameMasked .= substr($name, 0, 2) . '***** '; + } + $this->assign('name_masked', $nameMasked); $emailMasked = CRM_Utils_String::maskEmail($email); $this->assign('email_masked', $emailMasked); $this->assign('email', $email); diff --git a/civicrm/CRM/Mailing/Page/Browse.php b/civicrm/CRM/Mailing/Page/Browse.php index eca527d5dce7df0d0db8b8c975f4a56e91fe64b7..6fd93bdfa0248e70163bfcd5f2a52e31e97de625 100644 --- a/civicrm/CRM/Mailing/Page/Browse.php +++ b/civicrm/CRM/Mailing/Page/Browse.php @@ -105,13 +105,13 @@ class CRM_Mailing_Page_Browse extends CRM_Core_Page { if (CRM_Core_Permission::check('access CiviMail')) { $archiveLinks = TRUE; } - if ($archiveLinks == TRUE) { - $this->assign('archiveLinks', $archiveLinks); - } + $this->assign('archiveLinks', $archiveLinks ?? FALSE); } /** * Run this page (figure out the action needed and perform it). + * + * @throws \CRM_Core_Exception */ public function run() { $this->preProcess(); @@ -122,19 +122,19 @@ class CRM_Mailing_Page_Browse extends CRM_Core_Page { = CRM_Utils_Request::retrieve('sortByCharacter', 'String', $this); // CRM-11920 "all" should set sortByCharacter to null, not empty string - if (strtolower($this->_sortByCharacter ?: '') == 'all' || !empty($_POST)) { + if (strtolower($this->_sortByCharacter ?: '') === 'all' || !empty($_POST)) { $this->_sortByCharacter = NULL; $this->set('sortByCharacter', NULL); } - if (($newArgs[3] ?? NULL) == 'unscheduled') { + if (($newArgs[3] ?? NULL) === 'unscheduled') { $this->_unscheduled = TRUE; } $this->set('unscheduled', $this->_unscheduled); $this->set('archived', $this->isArchived($newArgs)); - if (($newArgs[3] ?? NULL) == 'scheduled') { + if (($newArgs[3] ?? NULL) === 'scheduled') { $this->_scheduled = TRUE; } $this->set('scheduled', $this->_scheduled); @@ -243,7 +243,7 @@ class CRM_Mailing_Page_Browse extends CRM_Core_Page { if ($this->get('sms')) { $urlParams .= '&sms=1'; } - if (($newArgs[3] ?? NULL) == 'unscheduled') { + if (($newArgs[3] ?? NULL) === 'unscheduled') { $urlString .= '/unscheduled'; $urlParams .= '&scheduled=false'; $this->assign('unscheduled', TRUE); diff --git a/civicrm/CRM/Mailing/Page/Preview.php b/civicrm/CRM/Mailing/Page/Preview.php deleted file mode 100644 index 565388b0231c3aa2f118b9b09503ca697f57ae32..0000000000000000000000000000000000000000 --- a/civicrm/CRM/Mailing/Page/Preview.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ - -/** - * - * @package CRM - * @copyright CiviCRM LLC https://civicrm.org/licensing - */ - -/** - * a page for mailing preview - */ -class CRM_Mailing_Page_Preview extends CRM_Core_Page { - - /** - * Run this page (figure out the action needed and perform it). - */ - public function run() { - - $session = CRM_Core_Session::singleton(); - - $qfKey = CRM_Utils_Request::retrieve('qfKey', 'String', CRM_Core_DAO::$_nullObject, FALSE, 'text'); - $type = CRM_Utils_Request::retrieve('type', 'String', CRM_Core_DAO::$_nullObject, FALSE, 'text'); - - $options = []; - $session->getVars($options, "CRM_Mailing_Controller_Send_$qfKey"); - - // get the options if control come from search context, CRM-3711 - if (empty($options)) { - $session->getVars($options, "CRM_Contact_Controller_Search_$qfKey"); - } - - // FIXME: the below and CRM_Mailing_Form_Test::testMail() - // should be refactored - $fromEmail = NULL; - $mailing = new CRM_Mailing_BAO_Mailing(); - if (!empty($options)) { - $mailing->id = $options['mailing_id']; - $fromEmail = $options['from_email'] ?? NULL; - } - - $mailing->find(TRUE); - - CRM_Mailing_BAO_Mailing::tokenReplace($mailing); - - // get and format attachments - $attachments = CRM_Core_BAO_File::getEntityFile('civicrm_mailing', - $mailing->id - ); - - // get details of contact with token value including Custom Field Token Values.CRM-3734 - $returnProperties = $mailing->getReturnProperties(); - $params = ['contact_id' => $session->get('userID')]; - - [$details] = CRM_Utils_Token::getTokenDetails($params, - $returnProperties, - TRUE, TRUE, NULL, - $mailing->getFlattenedTokens(), - get_class($this) - ); - // $details is an array of [ contactID => contactDetails ] - $mime = &$mailing->compose(NULL, NULL, NULL, $session->get('userID'), $fromEmail, $fromEmail, - TRUE, $details[$session->get('userID')], $attachments - ); - - if ($type == 'html') { - CRM_Utils_System::setHttpHeader('Content-Type', 'text/html; charset=utf-8'); - print $mime->getHTMLBody(); - } - else { - CRM_Utils_System::setHttpHeader('Content-Type', 'text/plain; charset=utf-8'); - print $mime->getTXTBody(); - } - CRM_Utils_System::civiExit(); - } - -} diff --git a/civicrm/CRM/Mailing/Page/View.php b/civicrm/CRM/Mailing/Page/View.php index fb7caac10f3100dbaf0544ed3d55452c00f669e1..2f775981776dc181bea54951bf1c40f1f05f02f6 100644 --- a/civicrm/CRM/Mailing/Page/View.php +++ b/civicrm/CRM/Mailing/Page/View.php @@ -20,13 +20,6 @@ */ class CRM_Mailing_Page_View extends CRM_Core_Page { - /** - * Signal to Flexmailer that this version of the class is usable. - * - * @var bool - */ - const USES_MAILING_PREVIEW_API = 1; - protected $_mailingID; protected $_mailing; protected $_contactID; diff --git a/civicrm/CRM/Mailing/PseudoConstant.php b/civicrm/CRM/Mailing/PseudoConstant.php index cd8064400c7fc562d39420904a6e4641bbde25aa..ea347de44e21f69dd39bb97f0a5f78f1a1ec0934 100644 --- a/civicrm/CRM/Mailing/PseudoConstant.php +++ b/civicrm/CRM/Mailing/PseudoConstant.php @@ -135,7 +135,7 @@ class CRM_Mailing_PseudoConstant extends CRM_Core_PseudoConstant { * array reference of all mailing components */ public static function &component($type = NULL) { - $name = $type ? $type : 'ALL'; + $name = $type ?: 'ALL'; if (!self::$component || !array_key_exists($name, self::$component)) { if (!self::$component) { diff --git a/civicrm/CRM/Mailing/Selector/Browse.php b/civicrm/CRM/Mailing/Selector/Browse.php index 862ca2e446d556889770f844339272059e4e9ccc..d5cf043fb62f0b3fa0d792664afd224e5c3ff23c 100644 --- a/civicrm/CRM/Mailing/Selector/Browse.php +++ b/civicrm/CRM/Mailing/Selector/Browse.php @@ -238,12 +238,14 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul 'url' => 'civicrm/mailing/approve', 'qs' => 'mid=%%mid%%&reset=1', 'title' => ts('Approve/Reject Mailing'), + 'weight' => -50, ], CRM_Core_Action::VIEW => [ 'name' => ts('Report'), 'url' => 'civicrm/mailing/report', 'qs' => 'mid=%%mid%%&reset=1', 'title' => ts('View Mailing Report'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Cancel'), @@ -251,18 +253,21 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul 'qs' => 'action=disable&mid=%%mid%%&reset=1', 'extra' => 'onclick="if (confirm(\'' . $cancelExtra . '\')) this.href+=\'&confirmed=1\'; else return false;"', 'title' => ts('Cancel Mailing'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::PREVIEW => [ 'name' => ts('Continue'), 'url' => 'civicrm/mailing/send', 'qs' => 'mid=%%mid%%&continue=true&reset=1', 'title' => ts('Continue Mailing'), + 'weight' => 50, ], CRM_Core_Action::UPDATE => [ 'name' => ts('Copy'), 'url' => 'civicrm/mailing/send', 'qs' => 'mid=%%mid%%&reset=1', 'title' => ts('Copy Mailing'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), @@ -270,6 +275,7 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul 'qs' => 'action=delete&mid=%%mid%%&reset=1', 'extra' => 'onclick="if (confirm(\'' . $deleteExtra . '\')) this.href+=\'&confirmed=1\'; else return false;"', 'title' => ts('Delete Mailing'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::RENEW => [ 'name' => ts('Archive'), @@ -277,18 +283,21 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul 'qs' => 'action=renew&mid=%%mid%%&reset=1', 'extra' => 'onclick="if (confirm(\'' . $archiveExtra . '\')) this.href+=\'&confirmed=1\'; else return false;"', 'title' => ts('Archive Mailing'), + 'weight' => 110, ], CRM_Core_Action::REOPEN => [ 'name' => ts('Resume'), 'url' => 'civicrm/mailing/browse', 'qs' => 'action=reopen&mid=%%mid%%&reset=1', 'title' => ts('Resume mailing'), + 'weight' => 120, ], CRM_Core_Action::CLOSE => [ 'name' => ts('Pause'), 'url' => 'civicrm/mailing/browse', 'qs' => 'action=close&mid=%%mid%%&reset=1', 'title' => ts('Pause mailing'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::BROWSE), ], ]; } @@ -359,7 +368,7 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul $actionLinks[CRM_Core_Action::PREVIEW]['url'] = 'civicrm/sms/send'; } - if (!($row['status'] == 'Not scheduled') && !$row['sms_provider_id']) { + if (!($row['status'] === 'Not scheduled') && !$row['sms_provider_id']) { if ($allAccess || $showCreateLinks) { $actionMask = CRM_Core_Action::VIEW; } @@ -379,14 +388,14 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul ) { $actionMask |= CRM_Core_Action::DISABLE; - if ($row['status'] == "Paused") { + if ($row['status'] === "Paused") { $actionMask |= CRM_Core_Action::REOPEN; } else { $actionMask |= CRM_Core_Action::CLOSE; } } - if ($row['status'] == 'Scheduled' && + if ($row['status'] === 'Scheduled' && empty($row['approval_status_id']) ) { if ($workFlow && ($allAccess || $showApprovalLinks)) { @@ -429,6 +438,7 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul 'qs' => 'id=%%hashOrMid%%&reset=1', 'title' => ts('Public View'), 'fe' => TRUE, + 'weight' => 150, ]; $actionMask |= CRM_Core_Action::BROWSE; } @@ -439,9 +449,9 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul $actionMask, [ 'mid' => $row['id'], - 'hashOrMid' => $hash ? $hash : $row['id'], + 'hashOrMid' => $hash ?: $row['id'], ], - "more", + 'more', FALSE, $opString, "Mailing", @@ -582,7 +592,7 @@ LEFT JOIN civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul $clauses[] = "civicrm_mailing.is_archived = 1"; } else { - $clauses[] = "(civicrm_mailing.is_archived IS NULL OR civicrm_mailing.is_archived = 0)"; + $clauses[] = "civicrm_mailing.is_archived = 0"; } } diff --git a/civicrm/CRM/Mailing/xml/Menu/Mailing.xml b/civicrm/CRM/Mailing/xml/Menu/Mailing.xml index 5e6b7b474e7dde685aa439d5028bd68e82d8eab7..3067227861a18e9424177484b0a1f6e89d4d13ea 100644 --- a/civicrm/CRM/Mailing/xml/Menu/Mailing.xml +++ b/civicrm/CRM/Mailing/xml/Menu/Mailing.xml @@ -143,13 +143,6 @@ <is_public>true</is_public> <weight>660</weight> </item> - <item> - <path>civicrm/mailing/preview</path> - <title>Preview Mailing</title> - <page_callback>CRM_Mailing_Page_Preview</page_callback> - <access_arguments>access CiviMail;approve mailings;create mailings;schedule mailings</access_arguments> - <weight>670</weight> - </item> <item> <path>civicrm/mailing/report</path> <title>Mailing Report</title> diff --git a/civicrm/CRM/Member/ActionMapping.php b/civicrm/CRM/Member/ActionMapping.php index e81824d490a97d9b5a1a43e1ad525b3e726c89b0..ff62e653dcb0ae0f7d97595d8620c0468f85f6dd 100644 --- a/civicrm/CRM/Member/ActionMapping.php +++ b/civicrm/CRM/Member/ActionMapping.php @@ -27,38 +27,35 @@ class CRM_Member_ActionMapping extends \Civi\ActionSchedule\MappingBase { return self::MEMBERSHIP_TYPE_MAPPING_ID; } + public function getName(): string { + return 'membership_type'; + } + public function getEntityName(): string { return 'Membership'; } - public function getValueHeader(): string { - return ts('Membership Type'); + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + $spec->getFieldByName('entity_value') + ->setLabel(ts('Membership Type')); + $spec->getFieldByName('entity_status') + ->setLabel(ts('Auto Renew Options')); } public function getValueLabels(): array { return CRM_Member_PseudoConstant::membershipType(); } - public function getStatusHeader(): string { - return ts('Auto Renew Options'); - } - - public function getStatusLabels($value): array { - if ($value && \CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $value, 'auto_renew')) { - return \CRM_Core_OptionGroup::values('auto_renew_options'); - } - else { - return []; + public function getStatusLabels(?array $entityValue): array { + foreach ($entityValue ?? [] as $membershipType) { + if (\CRM_Core_DAO::getFieldValue('CRM_Member_DAO_MembershipType', $membershipType, 'auto_renew')) { + return \CRM_Core_OptionGroup::values('auto_renew_options'); + } } + return []; } - /** - * Get a list of available date fields. - * - * @return array - * Array(string $fieldName => string $fieldLabel). - */ - public function getDateFields(): array { + public function getDateFields(?array $entityValue = NULL): array { return [ 'join_date' => ts('Member Since'), 'start_date' => ts('Membership Start Date'), @@ -83,7 +80,7 @@ class CRM_Member_ActionMapping extends \Civi\ActionSchedule\MappingBase { $selectedValues = (array) \CRM_Utils_Array::explodePadded($schedule->entity_value); $selectedStatuses = (array) \CRM_Utils_Array::explodePadded($schedule->entity_status); - $query = \CRM_Utils_SQL_Select::from("{$this->getEntityTable()} e")->param($defaultParams); + $query = \CRM_Utils_SQL_Select::from('civicrm_membership e')->param($defaultParams); $query['casAddlCheckFrom'] = 'civicrm_membership e'; $query['casContactIdField'] = 'e.contact_id'; $query['casEntityIdField'] = 'e.id'; @@ -123,7 +120,7 @@ class CRM_Member_ActionMapping extends \Civi\ActionSchedule\MappingBase { // scheduling another kind of reminder might not expect members to be // excluded if they have status overrides. Ideally there would be some kind // of setting per reminder. - $query->where("( e.is_override IS NULL OR e.is_override = 0 )"); + $query->where("e.is_override = 0"); // FIXME: Similarly to overrides, excluding contacts who can't edit the // primary member makes sense in the context of renewals (see CRM-11342) but diff --git a/civicrm/CRM/Member/BAO/Membership.php b/civicrm/CRM/Member/BAO/Membership.php index f5d2bf8999933442b3b843defd57338c483c9f29..7d1ff70887e0c2fe05b6e080a4b949d31a8633e4 100644 --- a/civicrm/CRM/Member/BAO/Membership.php +++ b/civicrm/CRM/Member/BAO/Membership.php @@ -819,7 +819,7 @@ INNER JOIN civicrm_membership_type type ON ( type.id = membership.membership_ty $dao->is_test = $isTest; } else { - $dao->whereAdd('is_test IS NULL OR is_test = 0'); + $dao->whereAdd('is_test = 0'); } //avoid pending membership as current membership: CRM-3027 @@ -1027,7 +1027,7 @@ INNER JOIN civicrm_membership_type type ON ( type.id = membership.membership_ty $testClause = 'membership.is_test = 1'; if (!$isTest) { - $testClause = '( membership.is_test IS NULL OR membership.is_test = 0 )'; + $testClause = '( membership.is_test = 0 )'; } if (!self::$_signupActType || !self::$_renewalActType) { @@ -1686,7 +1686,7 @@ WHERE civicrm_membership.contact_id = civicrm_contact.id public static function getMembershipJoins($membershipTypeId, $startDate, $endDate, $isTest = 0) { $testClause = 'membership.is_test = 1'; if (!$isTest) { - $testClause = '( membership.is_test IS NULL OR membership.is_test = 0 )'; + $testClause = '( membership.is_test = 0 )'; } if (!self::$_signupActType) { self::_getActTypes(); @@ -1739,7 +1739,7 @@ INNER JOIN civicrm_contact contact ON ( contact.id = membership.contact_id AND public static function getMembershipRenewals($membershipTypeId, $startDate, $endDate, $isTest = 0) { $testClause = 'membership.is_test = 1'; if (!$isTest) { - $testClause = '( membership.is_test IS NULL OR membership.is_test = 0 )'; + $testClause = '( membership.is_test = 0 )'; } if (!self::$_renewalActType) { self::_getActTypes(); @@ -2282,7 +2282,7 @@ WHERE {$whereClause}"; self::processOverriddenUntilDateMembership($dao1); } - $query = $baseQuery . " AND (civicrm_membership.is_override = 0 OR civicrm_membership.is_override IS NULL) + $query = $baseQuery . " AND civicrm_membership.is_override = 0 AND {$membershipStatusClause} AND civicrm_membership.owner_membership_id IS NULL "; diff --git a/civicrm/CRM/Member/BAO/MembershipType.php b/civicrm/CRM/Member/BAO/MembershipType.php index 690279bd42954bcc670301010585d228efa28e39..0d686deacb7ad035be2a662dbe79f3d313611cdd 100644 --- a/civicrm/CRM/Member/BAO/MembershipType.php +++ b/civicrm/CRM/Member/BAO/MembershipType.php @@ -521,7 +521,12 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType implem $date = $membershipDetails->end_date; } $date = explode('-', $date); - // We have to add 1 day first in case it's the end of the month, then subtract afterwards + $year = $date[0]; + $month = $date[1]; + $day = $date[2]; + + // $logStartDate is used for the membership log only, except if the membership is monthly + // then we add 1 day first in case it's the end of the month, then subtract afterwards // eg. 2018-02-28 should renew to 2018-03-31, if we just added 1 month we'd get 2018-03-28 $logStartDate = date('Y-m-d', mktime(0, 0, 0, (double) $date[1], @@ -529,11 +534,6 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType implem (double) $date[0] )); - $date = explode('-', $logStartDate); - $year = $date[0]; - $month = $date[1]; - $day = $date[2]; - switch ($membershipTypeDetails['duration_unit']) { case 'year': //need to check if the upsell is from rolling to fixed and adjust accordingly @@ -548,6 +548,10 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType implem break; case 'month': + $date = explode('-', $logStartDate); + $year = $date[0]; + $month = $date[1]; + $day = $date[2] - 1; $month = $month + ($numRenewTerms * $membershipTypeDetails['duration_interval']); break; @@ -561,7 +565,7 @@ class CRM_Member_BAO_MembershipType extends CRM_Member_DAO_MembershipType implem else { $endDate = date('Y-m-d', mktime(0, 0, 0, $month, - $day - 1, + $day, $year )); } diff --git a/civicrm/CRM/Member/DAO/Membership.php b/civicrm/CRM/Member/DAO/Membership.php index ab3cfafbd57b60b07ed54832166f043cdce0f525..ffe034d2d683f7362d92d8aeaa86f16b773d9b18 100644 --- a/civicrm/CRM/Member/DAO/Membership.php +++ b/civicrm/CRM/Member/DAO/Membership.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Member/Membership.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:231656abeadb1c357ccd404b2c02b495) + * (GenCodeChecksum:607cc8bc4dd07d1a87529f923a421937) */ /** @@ -662,7 +662,7 @@ class CRM_Member_DAO_Membership extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Member/Form/Membership.php b/civicrm/CRM/Member/Form/Membership.php index 08ea8f2d635b0c4d69181975eb21a7ed6c3f68d7..c3e1daea7a5b2573de1e374e4cb21b2859f645dc 100644 --- a/civicrm/CRM/Member/Form/Membership.php +++ b/civicrm/CRM/Member/Form/Membership.php @@ -336,7 +336,7 @@ DESC limit 1"); } $this->set('priceSetId', $this->_priceSetId); - CRM_Price_BAO_PriceSet::buildPriceSet($this); + CRM_Price_BAO_PriceSet::buildPriceSet($this, 'membership', FALSE); $optionsMembershipTypes = []; foreach ($this->_priceSet['fields'] as $pField) { diff --git a/civicrm/CRM/Member/Page/MembershipType.php b/civicrm/CRM/Member/Page/MembershipType.php index ab117fef18bf7992251ae6897dae7ba24e15a36a..f68ca25da64929380a37ae9f381de6463add9c23 100644 --- a/civicrm/CRM/Member/Page/MembershipType.php +++ b/civicrm/CRM/Member/Page/MembershipType.php @@ -45,22 +45,26 @@ class CRM_Member_Page_MembershipType extends CRM_Core_Page { 'url' => 'civicrm/admin/member/membershipType/add', 'qs' => 'action=update&id=%%id%%&reset=1', 'title' => ts('Edit Membership Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Membership Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Membership Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/member/membershipType/add', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete Membership Type'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } @@ -86,9 +90,9 @@ class CRM_Member_Page_MembershipType extends CRM_Core_Page { /** * Browse all membership types. * - * @return void + * @throws \CRM_Core_Exception */ - public function browse() { + public function browse(): void { // Ensure an action is assigned, even null - since this page is overloaded for other uses // we need to avoid e-notices. $this->assign('action'); @@ -137,12 +141,6 @@ class CRM_Member_Page_MembershipType extends CRM_Core_Page { ); } } - if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus() && !CRM_Core_Permission::check('edit contributions of type ' . CRM_Contribute_PseudoConstant::financialType($type['financial_type_id']))) { - unset($links[CRM_Core_Action::UPDATE], $links[CRM_Core_Action::ENABLE], $links[CRM_Core_Action::DISABLE]); - } - if (CRM_Financial_BAO_FinancialType::isACLFinancialTypeStatus() && !CRM_Core_Permission::check('delete contributions of type ' . CRM_Contribute_PseudoConstant::financialType($type['financial_type_id']))) { - unset($links[CRM_Core_Action::DELETE]); - } // form all action links $action = array_sum(array_keys($this->links())); diff --git a/civicrm/CRM/Member/Selector/Search.php b/civicrm/CRM/Member/Selector/Search.php index 100f78ea02839e3ebdfce3c37afc4fa9186517c3..6de5c53dece04e2f8945689c8aa90badabf90b6f 100644 --- a/civicrm/CRM/Member/Selector/Search.php +++ b/civicrm/CRM/Member/Selector/Search.php @@ -220,12 +220,14 @@ class CRM_Member_Selector_Search extends CRM_Core_Selector_Base implements CRM_C 'url' => 'civicrm/contact/view/membership', 'qs' => 'reset=1&action=renew&id=%%id%%&cid=%%cid%%&context=%%cxt%%' . $extraParams, 'title' => ts('Renew Membership'), + 'weight' => 40, ], CRM_Core_Action::FOLLOWUP => [ 'name' => ts('Renew-Credit Card'), 'url' => 'civicrm/contact/view/membership', 'qs' => 'action=renew&reset=1&cid=%%cid%%&id=%%id%%&context=%%cxt%%&mode=live' . $extraParams, 'title' => ts('Renew Membership Using Credit Card'), + 'weight' => 50, ], ]; if (!$isPaymentProcessor || !$accessContribution) { diff --git a/civicrm/CRM/PCP/BAO/PCP.php b/civicrm/CRM/PCP/BAO/PCP.php index 9ceeb01f4b2a64d75edd67e2cfd8f900558cb190..72a059a708d7c7c1d62a65ce8430784055a28efc 100644 --- a/civicrm/CRM/PCP/BAO/PCP.php +++ b/civicrm/CRM/PCP/BAO/PCP.php @@ -14,7 +14,7 @@ * @package CRM * @copyright CiviCRM LLC https://civicrm.org/licensing */ -class CRM_PCP_BAO_PCP extends CRM_PCP_DAO_PCP { +class CRM_PCP_BAO_PCP extends CRM_PCP_DAO_PCP implements \Civi\Core\HookInterface { /** * The action links that we need to display for the browse screen. @@ -24,31 +24,29 @@ class CRM_PCP_BAO_PCP extends CRM_PCP_DAO_PCP { public static $_pcpLinks = NULL; /** - * Add or update either a Personal Campaign Page OR a PCP Block. - * - * @param array $params - * Values to create the pcp. - * - * @return object + * @deprecated + * @return CRM_PCP_DAO_PCP */ public static function create($params) { + CRM_Core_Error::deprecatedFunctionWarning('writeRecord'); + return self::writeRecord($params); + } - $dao = new CRM_PCP_DAO_PCP(); - $dao->copyValues($params); - - // ensure we set status_id since it is a not null field - // we should change the schema and allow this to be null - if (!$dao->id && !isset($dao->status_id)) { - $dao->status_id = 0; - } - - // set currency for CRM-1496 - if (!isset($dao->currency)) { - $dao->currency = CRM_Core_Config::singleton()->defaultCurrency; + /** + * Callback for hook_civicrm_pre(). + * + * @param \Civi\Core\Event\PreEvent $event + * + * @throws \CRM_Core_Exception + */ + public static function self_hook_civicrm_pre(\Civi\Core\Event\PreEvent $event): void { + if ($event->action === 'create') { + // For some reason `status_id` is allowed to be empty + // FIXME: Why? + $event->params['status_id'] = $event->params['status_id'] ?? 0; + // Supply default for `currency` + $event->params['currency'] = $event->params['currency'] ?? Civi::settings()->get('defaultCurrency'); } - - $dao->save(); - return $dao; } /** @@ -95,13 +93,13 @@ ORDER BY page_type, page_id'; $params = [1 => [$contactId, 'Integer']]; $pcpInfoDao = CRM_Core_DAO::executeQuery($query, $params); - $links = self::pcpLinks(); - $hide = $mask = array_sum(array_keys($links['all'])); $approved = CRM_Core_PseudoConstant::getKey('CRM_PCP_BAO_PCP', 'status_id', 'Approved'); $contactPCPPages = []; $pcpInfo = []; while ($pcpInfoDao->fetch()) { + $links = self::pcpLinks($pcpInfoDao->id); + $hide = $mask = array_sum(array_keys($links['all'])); $mask = $hide; if ($links) { $replace = [ @@ -276,6 +274,9 @@ WHERE pcp.id = %1 AND cc.contribution_status_id = %2 AND cc.is_test = 0"; * (reference) of action links */ public static function &pcpLinks($pcpId = NULL) { + if (!$pcpId) { + CRM_Core_Error::deprecatedWarning('pcpId should be provided to render links'); + } if (!(self::$_pcpLinks)) { $deleteExtra = ts('Are you sure you want to delete this Personal Campaign Page?') . '\n' . ts('This action cannot be undone.'); @@ -286,6 +287,7 @@ WHERE pcp.id = %1 AND cc.contribution_status_id = %2 AND cc.is_test = 0"; 'url' => 'civicrm/contribute/campaign', 'qs' => 'action=add&reset=1&pageId=%%pageId%%&component=%%pageComponent%%', 'title' => ts('Configure'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADD), ], ]; @@ -295,36 +297,42 @@ WHERE pcp.id = %1 AND cc.contribution_status_id = %2 AND cc.is_test = 0"; 'url' => 'civicrm/pcp/info', 'qs' => 'action=update&reset=1&id=%%pcpId%%&component=%%pageComponent%%', 'title' => ts('Configure'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DETACH => [ 'name' => ts('Tell Friends'), 'url' => 'civicrm/friend', 'qs' => 'eid=%%pcpId%%&blockId=%%pcpBlock%%&reset=1&pcomponent=pcp&component=%%pageComponent%%', 'title' => ts('Tell Friends'), + 'weight' => -15, ], CRM_Core_Action::VIEW => [ 'name' => ts('URL for this Page'), 'url' => 'civicrm/pcp/info', 'qs' => 'reset=1&id=%%pcpId%%&component=%%pageComponent%%', 'title' => ts('URL for this Page'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::BROWSE => [ 'name' => ts('Update Contact Information'), 'url' => 'civicrm/pcp/info', 'qs' => 'action=browse&reset=1&id=%%pcpId%%&component=%%pageComponent%%', 'title' => ts('Update Contact Information'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::BROWSE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'url' => 'civicrm/pcp', 'qs' => 'action=enable&reset=1&id=%%pcpId%%&component=%%pageComponent%%', 'title' => ts('Enable'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'url' => 'civicrm/pcp', 'qs' => 'action=disable&reset=1&id=%%pcpId%%&component=%%pageComponent%%', 'title' => ts('Disable'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), @@ -332,6 +340,7 @@ WHERE pcp.id = %1 AND cc.contribution_status_id = %2 AND cc.is_test = 0"; 'qs' => 'action=delete&reset=1&id=%%pcpId%%&component=%%pageComponent%%', 'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"', 'title' => ts('Delete'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; @@ -341,24 +350,12 @@ WHERE pcp.id = %1 AND cc.contribution_status_id = %2 AND cc.is_test = 0"; } /** - * Delete the campaign page. - * + * @deprecated * @param int $id - * Campaign page id. */ public static function deleteById($id) { - CRM_Utils_Hook::pre('delete', 'Campaign', $id); - - $transaction = new CRM_Core_Transaction(); - - // delete from pcp table - $pcp = new CRM_PCP_DAO_PCP(); - $pcp->id = $id; - $pcp->delete(); - - $transaction->commit(); - - CRM_Utils_Hook::post('delete', 'Campaign', $id, $pcp); + CRM_Core_Error::deprecatedFunctionWarning('deleteRecord'); + return self::deleteRecord(['id' => $id]); } /** diff --git a/civicrm/CRM/PCP/BAO/PCPBlock.php b/civicrm/CRM/PCP/BAO/PCPBlock.php index de88b23318491377c2f1358225723e8e9e7bae54..41b07aa03ccdec2a9e6bd82e5194266dbbd589f9 100644 --- a/civicrm/CRM/PCP/BAO/PCPBlock.php +++ b/civicrm/CRM/PCP/BAO/PCPBlock.php @@ -17,17 +17,12 @@ class CRM_PCP_BAO_PCPBlock extends CRM_PCP_DAO_PCPBlock { /** - * Create or update either a Personal Campaign Page OR a PCP Block. - * - * @param array $params - * + * @deprecated * @return CRM_PCP_DAO_PCPBlock */ public static function create($params) { - $dao = new CRM_PCP_DAO_PCPBlock(); - $dao->copyValues($params); - $dao->save(); - return $dao; + CRM_Core_Error::deprecatedFunctionWarning('writeRecord'); + return self::writeRecord($params); } } diff --git a/civicrm/CRM/PCP/Form/Campaign.php b/civicrm/CRM/PCP/Form/Campaign.php index a4b9ff69a472228eed2b3dbbad248e37dd82e7ce..59fc07b62a51a3fa44b875be1fee74ce42483ee4 100644 --- a/civicrm/CRM/PCP/Form/Campaign.php +++ b/civicrm/CRM/PCP/Form/Campaign.php @@ -227,7 +227,7 @@ class CRM_PCP_Form_Campaign extends CRM_Core_Form { $params['id'] = $this->_pageId; - $pcp = CRM_PCP_BAO_PCP::create($params); + $pcp = CRM_PCP_BAO_PCP::writeRecord($params); // add attachments as needed CRM_Core_BAO_File::formatAttachment($params, diff --git a/civicrm/CRM/PCP/Form/Contribute.php b/civicrm/CRM/PCP/Form/Contribute.php index c4c58270e3c5a8d523f067fe319799cabe134d08..19f4840996727f203ac029fd1d3ff453d4683375 100644 --- a/civicrm/CRM/PCP/Form/Contribute.php +++ b/civicrm/CRM/PCP/Form/Contribute.php @@ -151,7 +151,7 @@ class CRM_PCP_Form_Contribute extends CRM_Contribute_Form_ContributionPage { $params['is_approval_needed'] = CRM_Utils_Array::value('is_approval_needed', $params, FALSE); $params['is_tellfriend_enabled'] = CRM_Utils_Array::value('is_tellfriend_enabled', $params, FALSE); - CRM_PCP_BAO_PCPBlock::create($params); + CRM_PCP_BAO_PCPBlock::writeRecord($params); parent::endPostProcess(); } diff --git a/civicrm/CRM/PCP/Form/Event.php b/civicrm/CRM/PCP/Form/Event.php index 158e3ecf3493a059fb4e039ff55143e048f07f50..636968f8a05d9c5866356d62838c17c072e9a868 100644 --- a/civicrm/CRM/PCP/Form/Event.php +++ b/civicrm/CRM/PCP/Form/Event.php @@ -185,7 +185,7 @@ class CRM_PCP_Form_Event extends CRM_Event_Form_ManageEvent { $params['is_approval_needed'] = CRM_Utils_Array::value('is_approval_needed', $params, FALSE); $params['is_tellfriend_enabled'] = CRM_Utils_Array::value('is_tellfriend_enabled', $params, FALSE); - CRM_PCP_BAO_PCPBlock::create($params); + CRM_PCP_BAO_PCPBlock::writeRecord($params); // Update tab "disabled" css class $this->ajaxResponse['tabValid'] = !empty($params['is_active']); diff --git a/civicrm/CRM/PCP/Form/PCP.php b/civicrm/CRM/PCP/Form/PCP.php index ca2fb164279ca422e1984a87ed5701fe51551d01..5da4e043acad074df4d2eb48b3d7af36318dfb97 100644 --- a/civicrm/CRM/PCP/Form/PCP.php +++ b/civicrm/CRM/PCP/Form/PCP.php @@ -75,7 +75,7 @@ class CRM_PCP_Form_PCP extends CRM_Core_Form { switch ($this->_action) { case CRM_Core_Action::DELETE: case 'delete': - CRM_PCP_BAO_PCP::deleteById($this->_id); + CRM_PCP_BAO_PCP::deleteRecord(['id' => $this->_id]); CRM_Core_Session::setStatus(ts("The Campaign Page '%1' has been deleted.", [1 => $this->_title]), ts('Page Deleted'), 'success'); break; @@ -140,7 +140,7 @@ class CRM_PCP_Form_PCP extends CRM_Core_Form { 'event' => ts('Event'), ]; $contribPages = ['' => ts('- select -')] + CRM_Contribute_PseudoConstant::contributionPage(); - $eventPages = ['' => ts('- select -')] + CRM_Event_PseudoConstant::event(NULL, FALSE, "( is_template IS NULL OR is_template != 1 )"); + $eventPages = ['' => ts('- select -')] + CRM_Event_PseudoConstant::event(NULL, FALSE, "is_template = 0"); $this->addElement('select', 'status_id', ts('Status'), $status); $this->addElement('select', 'page_type', ts('Source Type'), $types); @@ -178,7 +178,7 @@ class CRM_PCP_Form_PCP extends CRM_Core_Form { */ public function postProcess() { if ($this->_action & CRM_Core_Action::DELETE) { - CRM_PCP_BAO_PCP::deleteById($this->_id); + CRM_PCP_BAO_PCP::deleteRecord(['id' => $this->_id]); CRM_Core_Session::setStatus(ts("The Campaign Page '%1' has been deleted.", [1 => $this->_title]), ts('Page Deleted'), 'success'); } else { diff --git a/civicrm/CRM/PCP/Page/PCP.php b/civicrm/CRM/PCP/Page/PCP.php index ce7d9bcb3c9e00b19039433affb1ab04cff80cac..2fb8c5f822c6abc02ed4da4ee7df219c7a8a4d83 100644 --- a/civicrm/CRM/PCP/Page/PCP.php +++ b/civicrm/CRM/PCP/Page/PCP.php @@ -213,7 +213,7 @@ class CRM_PCP_Page_PCP extends CRM_Core_Page_Basic { // although if target is contribution page this might not be correct. fixme? dgg $query = "SELECT id, title, start_date, end_date, registration_start_date, registration_end_date FROM civicrm_event - WHERE is_template IS NULL OR is_template != 1"; + WHERE is_template = 0"; $epages = CRM_Core_DAO::executeQuery($query); while ($epages->fetch()) { $pages['event'][$epages->id]['id'] = $epages->id; diff --git a/civicrm/CRM/PCP/Page/PCPInfo.php b/civicrm/CRM/PCP/Page/PCPInfo.php index c20e94e56c5d445e0b8b095146a7be9d59f0d021..18496ef20e599f59edacf2680c962df974633e30 100644 --- a/civicrm/CRM/PCP/Page/PCPInfo.php +++ b/civicrm/CRM/PCP/Page/PCPInfo.php @@ -211,7 +211,7 @@ class CRM_PCP_Page_PCPInfo extends CRM_Core_Page { } $this->assign('honor', $honor); - $this->assign('total', $totalAmount ? $totalAmount : '0.0'); + $this->assign('total', $totalAmount ?: '0.0'); $this->assign('achieved', $achieved <= 100 ? $achieved : 100); if ($achieved <= 100) { diff --git a/civicrm/CRM/Pledge/BAO/Pledge.php b/civicrm/CRM/Pledge/BAO/Pledge.php index c665dc2b1af1d753fc513ad0a9aa7601a60dc045..1279c56a33058cb859690e6ed9c031ec8f77641b 100644 --- a/civicrm/CRM/Pledge/BAO/Pledge.php +++ b/civicrm/CRM/Pledge/BAO/Pledge.php @@ -922,7 +922,7 @@ SELECT pledge.contact_id as contact_id, // 2. send acknowledgement mail if ($toEmail && !($doNotEmail || $onHold)) { // assign value to template - $template->assign('amount_paid', $details['amount_paid'] ? $details['amount_paid'] : 0); + $template->assign('amount_paid', $details['amount_paid'] ?: 0); $template->assign('next_payment', $details['scheduled_date']); $template->assign('amount_due', $details['amount_due']); $template->assign('checksumValue', $details['checksumValue']); diff --git a/civicrm/CRM/Pledge/DAO/Pledge.php b/civicrm/CRM/Pledge/DAO/Pledge.php index 024d82db913f3f5776ff0488ec60d40f00a391a4..e8d5012217d050b82670ea157c56e113235c8780 100644 --- a/civicrm/CRM/Pledge/DAO/Pledge.php +++ b/civicrm/CRM/Pledge/DAO/Pledge.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Pledge/Pledge.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:5a6d7ca8c7749e190b667bf47b1d024a) + * (GenCodeChecksum:91fbbe8481e26df491af63fd07594f20) */ /** @@ -819,6 +819,7 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO { 'localizable' => 0, 'html' => [ 'type' => 'Select', + 'label' => ts("Status"), ], 'pseudoconstant' => [ 'optionGroupName' => 'pledge_status', @@ -878,7 +879,7 @@ class CRM_Pledge_DAO_Pledge extends CRM_Core_DAO { 'table' => 'civicrm_campaign', 'keyColumn' => 'id', 'labelColumn' => 'title', - 'prefetch' => 'FALSE', + 'prefetch' => 'disabled', ], 'add' => '3.4', ], diff --git a/civicrm/CRM/Pledge/Form/Pledge.php b/civicrm/CRM/Pledge/Form/Pledge.php index 453818e92eb88e2294501a6fc8cbac3c150f3c4f..1da913341f8464becafb9207b514a9a0985c4c71 100644 --- a/civicrm/CRM/Pledge/Form/Pledge.php +++ b/civicrm/CRM/Pledge/Form/Pledge.php @@ -79,9 +79,9 @@ class CRM_Pledge_Form_Pledge extends CRM_Core_Form { return; } - $this->userDisplayName = $this->userEmail = NULL; + $displayName = $this->userEmail = NULL; if ($this->_contactID) { - [$this->userDisplayName, $this->userEmail] = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactID); + [$displayName, $this->userEmail] = CRM_Contact_BAO_Contact_Location::getEmailDetails($this->_contactID); } $this->setPageTitle(ts('Pledge')); diff --git a/civicrm/CRM/Price/BAO/PriceField.php b/civicrm/CRM/Price/BAO/PriceField.php index ba1b636649c12728fd328153c5145fc69c9c7a14..0fb1c2e609072b24205a93814868ef05b7ea1b3a 100644 --- a/civicrm/CRM/Price/BAO/PriceField.php +++ b/civicrm/CRM/Price/BAO/PriceField.php @@ -103,7 +103,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { for ($index = 1; $index <= $maxIndex; $index++) { if (array_key_exists('option_amount', $params) && array_key_exists($index, $params['option_amount']) && - (CRM_Utils_Array::value($index, CRM_Utils_Array::value('option_label', $params)) || !empty($params['is_quick_config'])) && + (!empty($params['option_label'][$index]) || !empty($params['is_quick_config'])) && !CRM_Utils_System::isNull($params['option_amount'][$index]) ) { $options = [ @@ -128,7 +128,7 @@ class CRM_Price_BAO_PriceField extends CRM_Price_DAO_PriceField { $options['is_default'] = !empty($defaultArray[$params['membership_type_id'][$index]]) ? $defaultArray[$params['membership_type_id'][$index]] : 0; } - if (CRM_Utils_Array::value($index, CRM_Utils_Array::value('option_financial_type_id', $params))) { + if (!empty($params['option_financial_type_id'][$index])) { $options['financial_type_id'] = $params['option_financial_type_id'][$index]; } elseif (!empty($params['financial_type_id'])) { diff --git a/civicrm/CRM/Price/BAO/PriceSet.php b/civicrm/CRM/Price/BAO/PriceSet.php index f2c2aa892fd69403a3e06a216b68312b8c41166a..f7ca2008191416098c557dbacb20e0afcc435f33 100644 --- a/civicrm/CRM/Price/BAO/PriceSet.php +++ b/civicrm/CRM/Price/BAO/PriceSet.php @@ -386,7 +386,7 @@ WHERE cpf.price_set_id = %1"; * @param int $setID * Price Set ID. * @param bool $required - * Appears to have no effect based on reading the code. + * Deprecated. * @param bool $doNotIncludeExpiredFields * Should only fields where today's date falls within the valid range be returned? * @@ -415,9 +415,6 @@ WHERE cpf.price_set_id = %1"; 'visibility_id', 'is_required', ]; - if ($required == TRUE) { - $priceFields[] = 'is_required'; - } // create select $select = 'SELECT ' . implode(',', $priceFields); @@ -458,7 +455,7 @@ AND ( expire_on IS NULL OR expire_on >= {$currentTime} ) $setTree[$setID]['fields'][$fieldID]['id'] = $fieldID; foreach ($priceFields as $field) { - if ($field == 'id' || is_null($dao->$field)) { + if ($field === 'id') { continue; } @@ -796,33 +793,23 @@ WHERE id = %1"; * * @param CRM_Core_Form $form * @param string|null $component + * @param bool $validFieldsOnly * * @return void + * @throws \CRM_Core_Exception */ - public static function buildPriceSet(&$form, $component = NULL) { + public static function buildPriceSet(&$form, $component = NULL, $validFieldsOnly = TRUE) { $priceSetId = $form->get('priceSetId'); if (!$priceSetId) { return; } - $validFieldsOnly = TRUE; $className = CRM_Utils_System::getClassName($form); - if (in_array($className, [ - 'CRM_Contribute_Form_Contribution', - 'CRM_Member_Form_Membership', - ])) { - $validFieldsOnly = FALSE; - } $priceSet = self::getSetDetail($priceSetId, TRUE, $validFieldsOnly); $form->_priceSet = $priceSet[$priceSetId] ?? NULL; $validPriceFieldIds = array_keys($form->_priceSet['fields']); - $form->_quickConfig = $quickConfig = 0; - if (CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $priceSetId, 'is_quick_config')) { - $quickConfig = 1; - } - - $form->assign('quickConfig', $quickConfig); + $form->assign('quickConfig', (int) CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $priceSetId, 'is_quick_config')); // Mark which field should have the auto-renew checkbox, if any. CRM-18305 if (!empty($form->_membershipTypeValues) && is_array($form->_membershipTypeValues)) { @@ -849,10 +836,6 @@ WHERE id = %1"; $form->_priceSet['id'] = $form->_priceSet['id'] ?? $priceSetId; $form->assign('priceSet', $form->_priceSet); - if ($className == 'CRM_Member_Form_Membership') { - $component = 'membership'; - } - if ($className == 'CRM_Contribute_Form_Contribution_Main') { $feeBlock = &$form->_values['fee']; } diff --git a/civicrm/CRM/Price/DAO/LineItem.php b/civicrm/CRM/Price/DAO/LineItem.php index 5d2c38134fee882399d72c71b70b0d9eded231c7..8a27c972f7020afa9f0eea152565a8ab1d1056de 100644 --- a/civicrm/CRM/Price/DAO/LineItem.php +++ b/civicrm/CRM/Price/DAO/LineItem.php @@ -6,7 +6,7 @@ * * Generated from xml/schema/CRM/Price/LineItem.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:c3718ec4bc3ea2ef523c5c0be917d207) + * (GenCodeChecksum:5ff7f8ccd9299fcbdb2b4e56ec0bc8a4) */ /** @@ -158,7 +158,7 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO { /** * tax of each item * - * @var float|string|null + * @var float|string * (SQL type: decimal(20,2)) * Note that values will be retrieved from the database as a string. */ @@ -550,6 +550,7 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_MONEY, 'title' => ts('Tax Amount'), 'description' => ts('tax of each item'), + 'required' => TRUE, 'precision' => [ 20, 2, @@ -565,6 +566,7 @@ class CRM_Price_DAO_LineItem extends CRM_Core_DAO { 'headerPattern' => '/tax(.?am(ou)?nt)?/i', 'dataPattern' => '/^\d+(\.\d{2})?$/', 'export' => TRUE, + 'default' => '0', 'table_name' => 'civicrm_line_item', 'entity' => 'LineItem', 'bao' => 'CRM_Price_BAO_LineItem', diff --git a/civicrm/CRM/Price/Page/Set.php b/civicrm/CRM/Price/Page/Set.php index 039952f44bca3a8b4c9a1c8b3d04d602ea17bf1f..860b6f9e08d60009334cb139081d6fb3e6e3c2e0 100644 --- a/civicrm/CRM/Price/Page/Set.php +++ b/civicrm/CRM/Price/Page/Set.php @@ -50,28 +50,33 @@ class CRM_Price_Page_Set extends CRM_Core_Page { 'url' => 'civicrm/admin/price/field', 'qs' => 'reset=1&action=browse&sid=%%sid%%', 'title' => ts('View and Edit Price Fields'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::PREVIEW => [ 'name' => ts('Preview'), 'url' => 'civicrm/admin/price/edit', 'qs' => 'action=preview&reset=1&sid=%%sid%%', 'title' => ts('Preview Price Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::PREVIEW), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Settings'), 'url' => 'civicrm/admin/price/edit', 'qs' => 'action=update&reset=1&sid=%%sid%%', 'title' => ts('Edit Price Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable Price Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable Price Set'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), @@ -79,6 +84,7 @@ class CRM_Price_Page_Set extends CRM_Core_Page { 'qs' => 'action=delete&reset=1&sid=%%sid%%', 'title' => ts('Delete Price Set'), 'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::COPY => [ 'name' => ts('Copy Price Set'), @@ -86,6 +92,7 @@ class CRM_Price_Page_Set extends CRM_Core_Page { 'qs' => 'action=copy&sid=%%sid%%', 'title' => ts('Make a Copy of Price Set'), 'extra' => 'onclick = "return confirm(\'' . $copyExtra . '\');"', + 'weight' => 120, ], ]; } diff --git a/civicrm/CRM/Profile/Form.php b/civicrm/CRM/Profile/Form.php index 9ba8bc0ee7ad3aa5c43828f74782a3c72e4a3093..247f41705b738eb360d1bd435c05c292af3015f5 100644 --- a/civicrm/CRM/Profile/Form.php +++ b/civicrm/CRM/Profile/Form.php @@ -492,7 +492,6 @@ class CRM_Profile_Form extends CRM_Core_Form { $page->run(); } } - $this->assign('multiRecordFieldListing', $multiRecordFieldListing); // is profile double-opt in? if (!empty($this->_fields['group']) && @@ -521,7 +520,7 @@ class CRM_Profile_Form extends CRM_Core_Form { CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm', 'reset=1')); } } - + $this->assign('multiRecordFieldListing', $multiRecordFieldListing ?? NULL); if (!is_array($this->_fields)) { CRM_Core_Session::setStatus(ts('This feature is not currently available.'), ts('Sorry'), 'error'); CRM_Utils_System::redirect(CRM_Utils_System::url('civicrm', 'reset=1')); @@ -770,7 +769,7 @@ class CRM_Profile_Form extends CRM_Core_Form { $return = TRUE; if (!$statusMessage) { $statusMessage = ts("This profile is configured for contact type '%1'. It cannot be used to edit contacts of other types.", - [1 => $profileSubType ? $profileSubType : $profileType]); + [1 => $profileSubType ?: $profileType]); } } } @@ -1367,7 +1366,7 @@ class CRM_Profile_Form extends CRM_Core_Form { */ public function getTemplateFileName() { $fileName = $this->checkTemplateFileExists(); - return $fileName ? $fileName : parent::getTemplateFileName(); + return $fileName ?: parent::getTemplateFileName(); } /** @@ -1378,7 +1377,7 @@ class CRM_Profile_Form extends CRM_Core_Form { */ public function overrideExtraTemplateFileName() { $fileName = $this->checkTemplateFileExists('extra.'); - return $fileName ? $fileName : parent::overrideExtraTemplateFileName(); + return $fileName ?: parent::overrideExtraTemplateFileName(); } /** diff --git a/civicrm/CRM/Profile/Page/Dynamic.php b/civicrm/CRM/Profile/Page/Dynamic.php index d17f37d43f3991dc7524743d308d2d5a0deda2fc..d6009aa02d802cffe134e3cf2180e7918e2aac42 100644 --- a/civicrm/CRM/Profile/Page/Dynamic.php +++ b/civicrm/CRM/Profile/Page/Dynamic.php @@ -420,7 +420,7 @@ class CRM_Profile_Page_Dynamic extends CRM_Core_Page { */ public function getTemplateFileName() { $fileName = $this->checkTemplateFileExists(); - return $fileName ? $fileName : parent::getTemplateFileName(); + return $fileName ?: parent::getTemplateFileName(); } /** @@ -431,7 +431,7 @@ class CRM_Profile_Page_Dynamic extends CRM_Core_Page { */ public function overrideExtraTemplateFileName() { $fileName = $this->checkTemplateFileExists('extra.'); - return $fileName ? $fileName : parent::overrideExtraTemplateFileName(); + return $fileName ?: parent::overrideExtraTemplateFileName(); } /** diff --git a/civicrm/CRM/Profile/Page/Listings.php b/civicrm/CRM/Profile/Page/Listings.php index 4ad6a75771ebad1f7c42a88671af7a3744beb569..9bfcebd6018911ab7b455e35a4c0360e9eabfddf 100644 --- a/civicrm/CRM/Profile/Page/Listings.php +++ b/civicrm/CRM/Profile/Page/Listings.php @@ -483,7 +483,7 @@ class CRM_Profile_Page_Listings extends CRM_Core_Page { */ public function getTemplateFileName() { $fileName = $this->checkTemplateFileExists(); - return $fileName ? $fileName : parent::getTemplateFileName(); + return $fileName ?: parent::getTemplateFileName(); } /** @@ -494,7 +494,7 @@ class CRM_Profile_Page_Listings extends CRM_Core_Page { */ public function overrideExtraTemplateFileName() { $fileName = $this->checkTemplateFileExists('extra.'); - return $fileName ? $fileName : parent::overrideExtraTemplateFileName(); + return $fileName ?: parent::overrideExtraTemplateFileName(); } } diff --git a/civicrm/CRM/Profile/Page/MultipleRecordFieldsListing.php b/civicrm/CRM/Profile/Page/MultipleRecordFieldsListing.php index dd521bd1d7c0d9fa1bcedda16cd3ec8d7cc682b7..00e507f139cd5e7a880c449462d717071944ede0 100644 --- a/civicrm/CRM/Profile/Page/MultipleRecordFieldsListing.php +++ b/civicrm/CRM/Profile/Page/MultipleRecordFieldsListing.php @@ -70,20 +70,23 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { $links[CRM_Core_Action::VIEW] = [ 'name' => ts('View'), 'title' => ts('View %1', [1 => $this->_customGroupTitle . ' record']), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ]; $links[CRM_Core_Action::UPDATE] = [ 'name' => ts('Edit'), 'title' => ts('Edit %1', [1 => $this->_customGroupTitle . ' record']), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ]; $links[CRM_Core_Action::DELETE] = [ 'name' => ts('Delete'), 'title' => ts('Delete %1', [1 => $this->_customGroupTitle . ' record']), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ]; // urls and queryStrings - if ($this->_pageViewType == 'profileDataView') { + if ($this->_pageViewType === 'profileDataView') { $links[CRM_Core_Action::VIEW]['url'] = 'civicrm/profile/view'; $links[CRM_Core_Action::VIEW]['qs'] = "reset=1&id=%%id%%&recordId=%%recordId%%&gid=%%gid%%&multiRecord={$view}"; @@ -94,7 +97,7 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { $links[CRM_Core_Action::DELETE]['qs'] = "reset=1&id=%%id%%&recordId=%%recordId%%&gid=%%gid%%&multiRecord={$delete}"; } - elseif ($this->_pageViewType == 'customDataView') { + elseif ($this->_pageViewType === 'customDataView') { // custom data specific view links $links[CRM_Core_Action::VIEW]['url'] = 'civicrm/contact/view/cd'; $links[CRM_Core_Action::VIEW]['qs'] = 'reset=1&gid=%%gid%%&cid=%%cid%%&recId=%%recId%%&cgcount=%%cgcount%%&multiRecordDisplay=single&mode=view'; @@ -110,6 +113,7 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { 'title' => ts('Copy %1', [1 => $this->_customGroupTitle . ' record']), 'url' => 'civicrm/contact/view/cd/edit', 'qs' => 'reset=1&type=%%type%%&groupID=%%groupID%%&entityID=%%entityID%%&cgcount=%%newCgCount%%&multiRecordDisplay=single©ValueId=%%cgcount%%&mode=copy', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::COPY), ]; } @@ -154,12 +158,12 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { * Browse the listing. * */ - public function browse() { + public function browse(): array { $dateFields = NULL; $newCgCount = $cgcount = 0; $attributes = $result = $headerAttr = []; $dateFieldsVals = NULL; - if ($this->_pageViewType == 'profileDataView' && $this->_profileId) { + if ($this->_pageViewType === 'profileDataView' && $this->_profileId) { $fields = CRM_Core_BAO_UFGroup::getFields($this->_profileId, FALSE, NULL, NULL, NULL, FALSE, NULL, @@ -265,7 +269,7 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { unset($result['count']); unset($result['sortedResult']); - if ($this->_pageViewType == 'profileDataView') { + if ($this->_pageViewType === 'profileDataView') { if (!empty($fieldIDs)) { //get the group info of multi rec fields in listing view $fieldInput = $fieldIDs; @@ -290,8 +294,8 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { $cgcount = 1; $newCgCount = (!$reached) ? $resultCount + 1 : NULL; if (!empty($result) && empty($this->_headersOnly)) { - $links = self::links(); - if ($this->_pageViewType == 'profileDataView') { + $links = $this->links(); + if ($this->_pageViewType === 'profileDataView') { $pageCheckSum = $this->get('pageCheckSum'); if ($pageCheckSum) { foreach ($links as $key => $link) { @@ -404,6 +408,7 @@ class CRM_Profile_Page_MultipleRecordFieldsListing extends CRM_Core_Page_Basic { $links[CRM_Core_Action::DELETE]['url'] = '#'; $links[CRM_Core_Action::DELETE]['extra'] = ' data-delete_params="' . htmlspecialchars(json_encode($deleteData)) . '"'; $links[CRM_Core_Action::DELETE]['class'] = 'delete-custom-row'; + $links[CRM_Core_Action::DELETE]['weight'] = CRM_Core_Action::getWeight(CRM_Core_Action::DELETE); } if (!empty($pageCheckSum)) { $actionParams['cs'] = $pageCheckSum; diff --git a/civicrm/CRM/Profile/Page/View.php b/civicrm/CRM/Profile/Page/View.php index 90d835149640985d2e5bd4ca2ce80183cc3c81ff..5ecdb3b58f5de1dd881bb0fbccbde4904d9fabee 100644 --- a/civicrm/CRM/Profile/Page/View.php +++ b/civicrm/CRM/Profile/Page/View.php @@ -195,7 +195,7 @@ class CRM_Profile_Page_View extends CRM_Core_Page { */ public function getTemplateFileName() { $fileName = $this->checkTemplateFileExists(); - return $fileName ? $fileName : parent::getTemplateFileName(); + return $fileName ?: parent::getTemplateFileName(); } /** @@ -206,7 +206,7 @@ class CRM_Profile_Page_View extends CRM_Core_Page { */ public function overrideExtraTemplateFileName() { $fileName = $this->checkTemplateFileExists('extra.'); - return $fileName ? $fileName : parent::overrideExtraTemplateFileName(); + return $fileName ?: parent::overrideExtraTemplateFileName(); } } diff --git a/civicrm/CRM/Queue/Runner.php b/civicrm/CRM/Queue/Runner.php index dfbb37328ac3c4e97b2496492360f59984ff4d9a..f89e319127774cdd9a42c54b3e0ce328aafbf827 100644 --- a/civicrm/CRM/Queue/Runner.php +++ b/civicrm/CRM/Queue/Runner.php @@ -352,6 +352,7 @@ class CRM_Queue_Runner { if (!empty($this->onEndUrl)) { $result['redirect_url'] = $this->onEndUrl; } + $this->enableBackgroundExecution(); return $result; } @@ -521,4 +522,24 @@ class CRM_Queue_Runner { ]); } + /** + * Ensure that background workers will not try to run this queue. + */ + protected function enableBackgroundExecution(): void { + if (CRM_Core_Config::isUpgradeMode()) { + // Versions <=5.50 do not have `status` column. + if (!CRM_Core_DAO::checkTableExists('civicrm_queue') || !CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_queue', 'status')) { + // The system doesn't have automatic background workers yet. Neither necessary nor possible to toggle `status`. + // See also: https://lab.civicrm.org/dev/core/-/issues/3653 + return; + } + } + + // If it was disabled for background processing & has not been otherwise altered then + // re-enable it as it might be a persistent queue. + CRM_Core_DAO::executeQuery('UPDATE civicrm_queue SET status = "active" WHERE name = %1 AND status IS NULL', [ + 1 => [$this->queue->getName(), 'String'], + ]); + } + } diff --git a/civicrm/CRM/Report/Form.php b/civicrm/CRM/Report/Form.php index 768e13c274dd2c2eeb2b5b5a11d2f17c16ed720b..29f0a4dad8972f178f98c4c2cb0998fe0da5d76c 100644 --- a/civicrm/CRM/Report/Form.php +++ b/civicrm/CRM/Report/Form.php @@ -1026,7 +1026,7 @@ class CRM_Report_Form extends CRM_Core_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { if (isset($field['default'])) { - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE ) { if (is_array($field['default'])) { $this->_defaults["{$fieldName}_from"] = $field['default']['from'] ?? NULL; @@ -3711,7 +3711,7 @@ WHERE cg.extends IN ('" . implode("','", $this->_customGroupExtends) . "') AND unset($_POST['crmPID_B'], $_POST['crmPID']); } - $pageId = $pageId ? $pageId : 1; + $pageId = $pageId ?: 1; $this->set(CRM_Utils_Pager::PAGE_ID, $pageId); $offset = ($pageId - 1) * $rowCount; @@ -5118,7 +5118,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a * @param string $table */ public function setEntityRefDefaults(&$field, $table) { - $field['attributes'] = $field['attributes'] ? $field['attributes'] : []; + $field['attributes'] = $field['attributes'] ?: []; $field['attributes'] += [ 'entity' => CRM_Core_DAO_AllCoreTables::getEntityNameForTable($table), 'multiple' => TRUE, @@ -5839,6 +5839,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a 'options' => CRM_Core_PseudoConstant::stateProvince(), 'is_fields' => TRUE, 'is_filters' => TRUE, + 'is_order_bys' => TRUE, 'is_group_bys' => TRUE, ], $options['prefix'] . 'country_id' => [ @@ -5847,6 +5848,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a 'name' => 'country_id', 'is_fields' => TRUE, 'is_filters' => TRUE, + 'is_order_bys' => TRUE, 'is_group_bys' => TRUE, 'type' => CRM_Utils_Type::T_INT, 'operatorType' => CRM_Report_Form::OP_MULTISELECT, @@ -6064,7 +6066,7 @@ LEFT JOIN civicrm_contact {$field['alias']} ON {$field['alias']}.id = {$this->_a * Relevant where clause. */ protected function generateFilterClause($field, $fieldName) { - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { if (($field['operatorType'] ?? NULL) == CRM_Report_Form::OP_MONTH ) { diff --git a/civicrm/CRM/Report/Form/Activity.php b/civicrm/CRM/Report/Form/Activity.php index 17eda67bf1390a7d909eeb0310690b2d34144a3e..395a9e863c80be57b10668a12ea3b38ad1860e7e 100644 --- a/civicrm/CRM/Report/Form/Activity.php +++ b/civicrm/CRM/Report/Form/Activity.php @@ -544,7 +544,7 @@ class CRM_Report_Form_Activity extends CRM_Report_Form { ) { continue; } - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/ActivitySummary.php b/civicrm/CRM/Report/Form/ActivitySummary.php index d66b710d7a496b44c0dfe5b235e06bbfaaa2a960..d61beb941feee6f0af61173e35cbc05a6a6619ea 100644 --- a/civicrm/CRM/Report/Form/ActivitySummary.php +++ b/civicrm/CRM/Report/Form/ActivitySummary.php @@ -363,7 +363,7 @@ class CRM_Report_Form_ActivitySummary extends CRM_Report_Form { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Campaign/SurveyDetails.php b/civicrm/CRM/Report/Form/Campaign/SurveyDetails.php index cd5f64153c7de111ce8e9d1089cc0126afc43d61..0f8cc4fc343f81284e016966f0fc2e3aa2b29050 100644 --- a/civicrm/CRM/Report/Form/Campaign/SurveyDetails.php +++ b/civicrm/CRM/Report/Form/Campaign/SurveyDetails.php @@ -306,7 +306,7 @@ class CRM_Report_Form_Campaign_SurveyDetails extends CRM_Report_Form { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Case/Detail.php b/civicrm/CRM/Report/Form/Case/Detail.php index 6d89b22e742eb570792c9f85425fdd269253657a..f6307b1656094b14c23dcec4aa4fb3663cce7892 100644 --- a/civicrm/CRM/Report/Form/Case/Detail.php +++ b/civicrm/CRM/Report/Form/Case/Detail.php @@ -428,7 +428,7 @@ class CRM_Report_Form_Case_Detail extends CRM_Report_Form { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Case/TimeSpent.php b/civicrm/CRM/Report/Form/Case/TimeSpent.php index 25a4eaded29d602517f7bc39854d59a3934196a4..432bf8d7061b22ce96c965feebddd7196d2f4c99 100644 --- a/civicrm/CRM/Report/Form/Case/TimeSpent.php +++ b/civicrm/CRM/Report/Form/Case/TimeSpent.php @@ -239,7 +239,7 @@ class CRM_Report_Form_Case_TimeSpent extends CRM_Report_Form { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contact/CurrentEmployer.php b/civicrm/CRM/Report/Form/Contact/CurrentEmployer.php index 7ad996b7a7ce68575eeef3fe657fb306d8a4c717..be2d0ef48cb25612217eab553a375fd4fd58602d 100644 --- a/civicrm/CRM/Report/Form/Contact/CurrentEmployer.php +++ b/civicrm/CRM/Report/Form/Contact/CurrentEmployer.php @@ -236,7 +236,7 @@ FROM civicrm_contact {$this->_aliases['civicrm_contact']} if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('operatorType', $field) & CRM_Report_Form::OP_DATE + if (($field['operatorType'] ?? 0) & CRM_Report_Form::OP_DATE ) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contact/Detail.php b/civicrm/CRM/Report/Form/Contact/Detail.php index 0d82c2b2c1b8240ba1bd9ad96c43d3c105042557..ac71cce24596df9b0d59b689efd24053e652c86f 100644 --- a/civicrm/CRM/Report/Form/Contact/Detail.php +++ b/civicrm/CRM/Report/Form/Contact/Detail.php @@ -16,7 +16,15 @@ */ class CRM_Report_Form_Contact_Detail extends CRM_Report_Form { - protected $_summary = NULL; + protected $_summary; + + private $_columnHeadersComponent; + + private $_selectComponent; + + private $_formComponent; + + private $_contactSelected; protected $_customGroupExtends = [ 'Contact', @@ -423,27 +431,15 @@ class CRM_Report_Form_Contact_Detail extends CRM_Report_Form { foreach ($this->getAvailableComponents() as $val) { if (!empty($select[$val])) { - $this->_selectComponent[$val] = "SELECT " . implode(', ', $select[$val]) . " "; + $this->_selectComponent[$val] = 'SELECT ' . implode(', ', $select[$val]) . ' '; unset($select[$val]); } } - $this->_select = "SELECT " . implode(', ', $select) . " "; - } - - /** - * @param $fields - * @param $files - * @param self $self - * - * @return array - */ - public static function formRule($fields, $files, $self) { - $errors = []; - return $errors; + $this->_select = 'SELECT ' . implode(', ', $select) . ' '; } - public function from() { + public function from(): void { $this->_from = " FROM civicrm_contact {$this->_aliases['civicrm_contact']} {$this->_aclFrom} "; @@ -557,7 +553,7 @@ HERESQL; $componentsList[] = $compObj->componentID; } } - $componentClause = "civicrm_option_value.component_id IS NULL"; + $componentClause = 'civicrm_option_value.component_id IS NULL'; if (!empty($componentsList)) { $componentsIn = implode(', ', $componentsList); $componentClause = <<<HERESQL @@ -592,14 +588,13 @@ HERESQL; } } - public function where() { + public function where(): void { $clauses = []; - foreach ($this->_columns as $tableName => $table) { + foreach ($this->_columns as $table) { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { - $clause = NULL; - if (CRM_Utils_Array::value('operatorType', $field) & CRM_Report_Form::OP_DATE + if (($field['operatorType'] ?? 0) & CRM_Report_Form::OP_DATE ) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; @@ -624,10 +619,10 @@ HERESQL; } if (empty($clauses)) { - $this->_where = "WHERE ( 1 ) "; + $this->_where = 'WHERE ( 1 ) '; } else { - $this->_where = "WHERE " . implode(' AND ', $clauses); + $this->_where = 'WHERE ' . implode(' AND ', $clauses); } if ($this->_aclWhere) { @@ -637,8 +632,9 @@ HERESQL; /** * @return array + * @throws \Civi\Core\Exception\DBQueryException */ - public function clauseComponent() { + public function clauseComponent(): array { $selectedContacts = implode(',', $this->_contactSelected); $eligibleResult = $rows = $tempArray = []; foreach ($this->getAvailableComponents() as $val) { @@ -698,7 +694,7 @@ HERESQL; $row[$key] = $dao->$key; } - $relTitle = "" . $dao->civicrm_relationship_relationship_type_id . + $relTitle = '' . $dao->civicrm_relationship_relationship_type_id . '_a_b'; $row['civicrm_relationship_relationship_type_id'] = $relTypes[$relTitle]; @@ -747,7 +743,7 @@ HERESQL; $dao = CRM_Core_DAO::executeQuery($sql); while ($dao->fetch()) { foreach ($this->_columnHeadersComponent[$val] as $key => $value) { - if ($key == 'civicrm_activity_source_contact_id') { + if ($key === 'civicrm_activity_source_contact_id') { $row[$key] = $dao->added_by; continue; } @@ -782,7 +778,7 @@ HERESQL; * * @return array */ - public function statistics(&$rows) { + public function statistics(&$rows): array { $statistics = []; $count = count($rows); @@ -809,12 +805,15 @@ HERESQL; * Override to set pager with limit is 10 * @param int|null $rowCount */ - public function setPager($rowCount = NULL) { + public function setPager($rowCount = NULL): void { $rowCount = $rowCount ?? $this->getRowCount(); parent::setPager($rowCount); } - public function postProcess() { + /** + * @throws \Civi\Core\Exception\DBQueryException + */ + public function postProcess(): void { $this->beginPostProcess(); $sql = $this->buildQuery(TRUE); @@ -861,7 +860,7 @@ HERESQL; * @param array $rows * Rows generated by SQL, with an array for each row. */ - public function alterDisplay(&$rows) { + public function alterDisplay(&$rows): void { $entryFound = FALSE; @@ -898,25 +897,21 @@ HERESQL; /** * @param array $componentRows */ - public function alterComponentDisplay(&$componentRows) { - // custom code to alter rows - $activityTypes = CRM_Core_PseudoConstant::activityType(TRUE, TRUE, FALSE, 'label', TRUE); - $activityStatus = CRM_Core_PseudoConstant::activityStatus(); - + public function alterComponentDisplay(array &$componentRows): void { $entryFound = FALSE; foreach ($componentRows as $contactID => $components) { foreach ($components as $component => $rows) { foreach ($rows as $rowNum => $row) { // handle contribution - if ($component == 'contribution_civireport') { + if ($component === 'contribution_civireport') { $val = $row['civicrm_contribution_financial_type_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_contribution_financial_type_id'] = CRM_Contribute_PseudoConstant::financialType($val, FALSE); + $componentRows[$contactID][$component][$rowNum]['civicrm_contribution_financial_type_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_Contribution', 'financial_type_id', $val); } $val = $row['civicrm_contribution_contribution_status_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_contribution_contribution_status_id'] = CRM_Contribute_PseudoConstant::contributionStatus($val, 'label'); + $componentRows[$contactID][$component][$rowNum]['civicrm_contribution_contribution_status_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Contribute_BAO_Contribution', 'contribution_status_id', $val); } $entryFound = TRUE; } @@ -924,27 +919,26 @@ HERESQL; if ($component === 'membership_civireport') { $val = $row['civicrm_membership_membership_type_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_membership_membership_type_id'] = CRM_Member_PseudoConstant::membershipType($val, FALSE); + $componentRows[$contactID][$component][$rowNum]['civicrm_membership_membership_type_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Member_BAO_Membership', 'membership_type_id', $val); } $val = $row['civicrm_membership_status_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_membership_status_id'] = CRM_Member_PseudoConstant::membershipStatus($val, FALSE); + $componentRows[$contactID][$component][$rowNum]['civicrm_membership_status_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Member_BAO_Membership', 'membership_status_id', $val); } $entryFound = TRUE; } - if ($component == 'participant_civireport') { + if ($component === 'participant_civireport') { $val = $row['civicrm_participant_event_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_participant_event_id'] = CRM_Event_PseudoConstant::event($val, FALSE); + $componentRows[$contactID][$component][$rowNum]['civicrm_participant_event_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Event_BAO_Participant', 'event_id', $val); $url = CRM_Report_Utils_Report::getNextUrl('event/income', 'reset=1&force=1&id_op=in&id_value=' . $val, $this->_absoluteUrl, $this->_id ); $componentRows[$contactID][$component][$rowNum]['civicrm_participant_event_id_link'] = $url; $componentRows[$contactID][$component][$rowNum]['civicrm_participant_event_id_hover'] = ts('View Event Income details for this Event.'); - $entryFound = TRUE; } $val = $row['civicrm_participant_participant_status_id'] ?? NULL; @@ -964,19 +958,19 @@ HERESQL; $entryFound = TRUE; } - if ($component == 'activity_civireport') { + if ($component === 'activity_civireport') { $val = $row['civicrm_activity_activity_type_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_activity_activity_type_id'] = $activityTypes[$val]; + $componentRows[$contactID][$component][$rowNum]['civicrm_activity_activity_type_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Activity_BAO_Activity', 'activity_type_id', $val); } $val = $row['civicrm_activity_activity_status_id'] ?? NULL; if ($val) { - $componentRows[$contactID][$component][$rowNum]['civicrm_activity_activity_status_id'] = $activityStatus[$val]; + $componentRows[$contactID][$component][$rowNum]['civicrm_activity_activity_status_id'] = CRM_Core_PseudoConstant::getLabel('CRM_Activity_BAO_Activity', 'activity_status_id', $val); } $entryFound = TRUE; } - if ($component == 'membership_civireport') { + if ($component === 'membership_civireport') { $val = $row['civicrm_membership_membership_status_id'] ?? NULL; if ($val) { $componentRows[$contactID][$component][$rowNum]['civicrm_membership_membership_status_id'] = CRM_Member_PseudoConstant::membershipStatus($val); diff --git a/civicrm/CRM/Report/Form/Contact/Log.php b/civicrm/CRM/Report/Form/Contact/Log.php index a7bfc26a765c7721e232bf7f04caab48ec085c52..65589629d73f35b2b3fd88f731a59634ae52fc3e 100644 --- a/civicrm/CRM/Report/Form/Contact/Log.php +++ b/civicrm/CRM/Report/Form/Contact/Log.php @@ -181,7 +181,7 @@ class CRM_Report_Form_Contact_Log extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('operatorType', $field) & CRM_Report_Form::OP_DATE + if (($field['operatorType'] ?? 0) & CRM_Report_Form::OP_DATE ) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contact/Relationship.php b/civicrm/CRM/Report/Form/Contact/Relationship.php index 8707e371f1534bfa41440e92c77cf948329ad729..4cc4512c716d8adc22535ca8d4d9343e7ce2de9e 100644 --- a/civicrm/CRM/Report/Form/Contact/Relationship.php +++ b/civicrm/CRM/Report/Form/Contact/Relationship.php @@ -443,7 +443,7 @@ class CRM_Report_Form_Contact_Relationship extends CRM_Report_Form { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/DeferredRevenue.php b/civicrm/CRM/Report/Form/Contribute/DeferredRevenue.php index 5dc5634f6acaf3c92312a08ca629949f74f45ace..f76b8292e0c7cebf29d9d711b730c381581fdfa5 100644 --- a/civicrm/CRM/Report/Form/Contribute/DeferredRevenue.php +++ b/civicrm/CRM/Report/Form/Contribute/DeferredRevenue.php @@ -448,10 +448,10 @@ class CRM_Report_Form_Contribute_DeferredRevenue extends CRM_Report_Form { $arraykey = $dao->civicrm_financial_account_id . '_' . $dao->civicrm_financial_account_1_id; if (property_exists($dao, $key)) { - if (CRM_Utils_Array::value('type', $value) & CRM_Utils_Type::T_DATE) { + if (($value['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $row[$key] = CRM_Utils_Date::customFormat($dao->$key, $dateFormat); } - elseif (CRM_Utils_Array::value('type', $value) & CRM_Utils_Type::T_MONEY) { + elseif (($value['type'] ?? 0) & CRM_Utils_Type::T_MONEY) { $values = []; foreach (explode(',', $dao->$key) as $moneyValue) { $values[] = CRM_Utils_Money::format($moneyValue); diff --git a/civicrm/CRM/Report/Form/Contribute/History.php b/civicrm/CRM/Report/Form/Contribute/History.php index 900454e192d7168b2be19dd63c6354d647d6e5ac..fb2141aa221f8660acf2e5d85f78f3f0d427c1e9 100644 --- a/civicrm/CRM/Report/Form/Contribute/History.php +++ b/civicrm/CRM/Report/Form/Contribute/History.php @@ -411,7 +411,7 @@ class CRM_Report_Form_Contribute_History extends CRM_Report_Form { if ($fieldName == 'this_year' || $fieldName == 'other_year') { continue; } - elseif (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE + elseif (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE ) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/HouseholdSummary.php b/civicrm/CRM/Report/Form/Contribute/HouseholdSummary.php index 9d08b36e529e8bf1f73e98d6b87db49fc850f416..474ce68efcfb36d2f0b822967398b5aea003e316 100644 --- a/civicrm/CRM/Report/Form/Contribute/HouseholdSummary.php +++ b/civicrm/CRM/Report/Form/Contribute/HouseholdSummary.php @@ -258,7 +258,7 @@ class CRM_Report_Form_Contribute_HouseholdSummary extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/OrganizationSummary.php b/civicrm/CRM/Report/Form/Contribute/OrganizationSummary.php index c6ac398258ddf848ee31ed53542d34b646e63e98..109eb68841b20438a33f97d03b7c9615dad923c0 100644 --- a/civicrm/CRM/Report/Form/Contribute/OrganizationSummary.php +++ b/civicrm/CRM/Report/Form/Contribute/OrganizationSummary.php @@ -275,7 +275,7 @@ class CRM_Report_Form_Contribute_OrganizationSummary extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/PCP.php b/civicrm/CRM/Report/Form/Contribute/PCP.php index 37edb4eedc78a067c217b922be020753ce4a6415..f3effc38a379bc56b45413d059424cb31d354ea0 100644 --- a/civicrm/CRM/Report/Form/Contribute/PCP.php +++ b/civicrm/CRM/Report/Form/Contribute/PCP.php @@ -247,7 +247,7 @@ LEFT JOIN civicrm_event {$this->_aliases['civicrm_event']} foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/RecurSummary.php b/civicrm/CRM/Report/Form/Contribute/RecurSummary.php index 74d2bc35e6070413d1b99b05bc0657f6046fef00..7cb5190442b71d1dcd1913fa4f10ad7ae8a26f7c 100644 --- a/civicrm/CRM/Report/Form/Contribute/RecurSummary.php +++ b/civicrm/CRM/Report/Form/Contribute/RecurSummary.php @@ -225,10 +225,10 @@ class CRM_Report_Form_Contribute_RecurSummary extends CRM_Report_Form { $startDateRelative = $this->_params["start_date_relative"] ?? NULL; $startedDateSql = $this->dateClause('start_date', $startDateRelative, $startDateFrom, $startDateTo); - $startedDateSql = $startedDateSql ? $startedDateSql : " ( 1 ) "; + $startedDateSql = $startedDateSql ?: " ( 1 ) "; $cancelledDateSql = $this->dateClause('cancel_date', $startDateRelative, $startDateFrom, $startDateTo); - $cancelledDateSql = $cancelledDateSql ? $cancelledDateSql : " ( cancel_date IS NOT NULL ) "; + $cancelledDateSql = $cancelledDateSql ?: " ( cancel_date IS NOT NULL ) "; $started = $cancelled = $active = $total = 0; diff --git a/civicrm/CRM/Report/Form/Contribute/Repeat.php b/civicrm/CRM/Report/Form/Contribute/Repeat.php index f8be583a376198b6405dda8140cba87e9910b780..f5e33a14ef45a01c27fcc487eb40e42ecc6c3d84 100644 --- a/civicrm/CRM/Report/Form/Contribute/Repeat.php +++ b/civicrm/CRM/Report/Form/Contribute/Repeat.php @@ -395,7 +395,7 @@ LEFT JOIN $this->tempTableRepeat2 {$this->_aliases['civicrm_contribution']}2 foreach ($this->_columns['civicrm_contribution']['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/Sybunt.php b/civicrm/CRM/Report/Form/Contribute/Sybunt.php index 5bad43bde2847f5888d92e7702b4519af746be33..ed9a2080a1c3d93e1ca2e3aa9118cef6fe2b0a45 100644 --- a/civicrm/CRM/Report/Form/Contribute/Sybunt.php +++ b/civicrm/CRM/Report/Form/Contribute/Sybunt.php @@ -355,7 +355,7 @@ class CRM_Report_Form_Contribute_Sybunt extends CRM_Report_Form { self::fiscalYearOffset('contri.receive_date') . " = {$this->_params['yid_value']} AND contri.is_test = 0 AND contri.is_template = 0 )"; } - elseif (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE + elseif (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE ) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Contribute/TopDonor.php b/civicrm/CRM/Report/Form/Contribute/TopDonor.php index fa40ee3d8b621047154ff9abe7734a2316bc2577..0dcff4a211c291636d66cd1ed755a46879099d58 100644 --- a/civicrm/CRM/Report/Form/Contribute/TopDonor.php +++ b/civicrm/CRM/Report/Form/Contribute/TopDonor.php @@ -252,7 +252,7 @@ class CRM_Report_Form_Contribute_TopDonor extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; @@ -362,7 +362,7 @@ class CRM_Report_Form_Contribute_TopDonor extends CRM_Report_Form { } } - $pageId = $pageId ? $pageId : 1; + $pageId = $pageId ?: 1; $this->set(CRM_Utils_Pager::PAGE_ID, $pageId); $offset = ($pageId - 1) * $rowCount; diff --git a/civicrm/CRM/Report/Form/Event/IncomeCountSummary.php b/civicrm/CRM/Report/Form/Event/IncomeCountSummary.php index b440dacbe17f8b95303f7e33114a3c83256767d8..e42e0036fa1cbacf144d79d7dd45ff8e57cba87f 100644 --- a/civicrm/CRM/Report/Form/Event/IncomeCountSummary.php +++ b/civicrm/CRM/Report/Form/Event/IncomeCountSummary.php @@ -204,7 +204,7 @@ class CRM_Report_Form_Event_IncomeCountSummary extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Event/Summary.php b/civicrm/CRM/Report/Form/Event/Summary.php index edb3b0776a0f6dad6cab7ad8272d595fcbeff5c9..ca86340dcd82577f4dc0d66927b69962dfe162e2 100644 --- a/civicrm/CRM/Report/Form/Event/Summary.php +++ b/civicrm/CRM/Report/Form/Event/Summary.php @@ -143,7 +143,7 @@ class CRM_Report_Form_Event_Summary extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Mailing/Bounce.php b/civicrm/CRM/Report/Form/Mailing/Bounce.php index 45f23d00cae3bb33f4a48feb05c0e57a4c79be95..ebe9d1a846446d65e049596d47d6bebcba85113c 100644 --- a/civicrm/CRM/Report/Form/Mailing/Bounce.php +++ b/civicrm/CRM/Report/Form/Mailing/Bounce.php @@ -336,7 +336,7 @@ class CRM_Report_Form_Mailing_Bounce extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Mailing/Summary.php b/civicrm/CRM/Report/Form/Mailing/Summary.php index 61a6424aae4a339b5e6fcb01b3685847b90b22b3..d2e4e61942a3366d63e572231aa87738a48411b5 100644 --- a/civicrm/CRM/Report/Form/Mailing/Summary.php +++ b/civicrm/CRM/Report/Form/Mailing/Summary.php @@ -419,7 +419,7 @@ class CRM_Report_Form_Mailing_Summary extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Member/Detail.php b/civicrm/CRM/Report/Form/Member/Detail.php index 9cc87fc1e7a537927f5b15537bbe58bf505e9e31..748b644f964ed28d3ca140c58ab8a232a11ec2d8 100644 --- a/civicrm/CRM/Report/Form/Member/Detail.php +++ b/civicrm/CRM/Report/Form/Member/Detail.php @@ -119,6 +119,18 @@ class CRM_Report_Form_Member_Detail extends CRM_Report_Form { 'default_weight' => '1', 'default_order' => 'ASC', ], + 'status_id' => [ + 'title' => ts('Membership Status'), + ], + 'membership_start_date' => [ + 'title' => ts('Membership Start Date'), + ], + 'membership_end_date' => [ + 'title' => ts('Membership End Date'), + ], + 'contribution_recur_id' => [ + 'title' => ts('Auto-renew'), + ], ], 'grouping' => 'member-fields', 'group_bys' => [ @@ -235,6 +247,12 @@ class CRM_Report_Form_Member_Detail extends CRM_Report_Form { 'type' => CRM_Utils_Type::T_INT, ], ], + 'order_bys' => [ + 'autorenew_status_id' => [ + 'name' => 'contribution_status_id', + 'title' => ts('Auto-Renew Subscription Status'), + ], + ], 'grouping' => 'member-fields', ], ] + $this->getAddressColumns([ @@ -379,18 +397,13 @@ HERESQL; } } - public function getOperationPair($type = "string", $fieldName = NULL) { + public function getOperationPair($type = 'string', $fieldName = NULL) { //re-name IS NULL/IS NOT NULL for clarity if ($fieldName === 'owner_membership_id') { $result = []; + $result[''] = ts('Any'); $result['nll'] = ts('Primary members only'); $result['nnll'] = ts('Non-primary members only'); - $options = parent::getOperationPair($type, $fieldName); - foreach ($options as $key => $label) { - if (!array_key_exists($key, $result)) { - $result[$key] = $label; - } - } } else { $result = parent::getOperationPair($type, $fieldName); diff --git a/civicrm/CRM/Report/Form/Pledge/Detail.php b/civicrm/CRM/Report/Form/Pledge/Detail.php index 21ca22a0367cb0ff96d3eee8de2bc358b7d57084..73ce3b67011df47776cd9e7fdd8cfd300f62849f 100644 --- a/civicrm/CRM/Report/Form/Pledge/Detail.php +++ b/civicrm/CRM/Report/Form/Pledge/Detail.php @@ -330,7 +330,7 @@ class CRM_Report_Form_Pledge_Detail extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Form/Pledge/Summary.php b/civicrm/CRM/Report/Form/Pledge/Summary.php index c49e7b5a7f302d46e0966f204db9982e73197271..e22300560f00cdcae63541b2e97d0f504f3509f2 100644 --- a/civicrm/CRM/Report/Form/Pledge/Summary.php +++ b/civicrm/CRM/Report/Form/Pledge/Summary.php @@ -305,7 +305,7 @@ class CRM_Report_Form_Pledge_Summary extends CRM_Report_Form { if (array_key_exists('filters', $table)) { foreach ($table['filters'] as $fieldName => $field) { $clause = NULL; - if (CRM_Utils_Array::value('type', $field) & CRM_Utils_Type::T_DATE) { + if (($field['type'] ?? 0) & CRM_Utils_Type::T_DATE) { $relative = $this->_params["{$fieldName}_relative"] ?? NULL; $from = $this->_params["{$fieldName}_from"] ?? NULL; $to = $this->_params["{$fieldName}_to"] ?? NULL; diff --git a/civicrm/CRM/Report/Page/Instance.php b/civicrm/CRM/Report/Page/Instance.php index fe10f9270e07c641022dd0bb8e8a09d673f11dcf..a2dfca995ec952f770780ab47805cdcb08812191 100644 --- a/civicrm/CRM/Report/Page/Instance.php +++ b/civicrm/CRM/Report/Page/Instance.php @@ -44,6 +44,7 @@ class CRM_Report_Page_Instance extends CRM_Core_Page { $optionVal = CRM_Report_Utils_Report::getValueFromUrl($instanceId); $templateInfo = CRM_Core_OptionGroup::getRowValues('report_template', "{$optionVal}", 'value'); if (empty($templateInfo)) { + CRM_Core_Session::singleton()->replaceUserContext(CRM_Utils_System::url('civicrm/report/list', 'reset=1')); CRM_Core_Error::statusBounce(ts('You have tried to access a report that does not exist.')); } diff --git a/civicrm/CRM/Report/Utils/Report.php b/civicrm/CRM/Report/Utils/Report.php index 6f837dc9ad1cd624ea73af7d0b87d740c4e32ab9..2f91c687b88caf8d9e26b613a7d957c1613f3247 100644 --- a/civicrm/CRM/Report/Utils/Report.php +++ b/civicrm/CRM/Report/Utils/Report.php @@ -253,7 +253,7 @@ WHERE inst.report_id = %1"; // Remove HTML, unencode entities, and escape quotation marks. $value = str_replace('"', '""', html_entity_decode(strip_tags($value), ENT_QUOTES | ENT_HTML401)); - if (CRM_Utils_Array::value('type', $form->_columnHeaders[$v]) & 4) { + if (($form->_columnHeaders[$v]['type'] ?? 0) & 4) { if (($form->_columnHeaders[$v]['group_by'] ?? NULL) == 'MONTH' || ($form->_columnHeaders[$v]['group_by'] ?? NULL) == 'QUARTER' ) { @@ -395,45 +395,49 @@ WHERE inst.report_id = %1"; $optionVal = self::getValueFromUrl($instanceId); $messages = ['Report Mail Triggered...']; - - $templateInfo = CRM_Core_OptionGroup::getRowValues('report_template', $optionVal, 'value'); - $obj = new CRM_Report_Page_Instance(); - $is_error = 0; - if (strstr(CRM_Utils_Array::value('name', $templateInfo), '_Form')) { - $instanceInfo = []; - CRM_Report_BAO_ReportInstance::retrieve(['id' => $instanceId], $instanceInfo); - - if (!empty($instanceInfo['title'])) { - $obj->assign('reportTitle', $instanceInfo['title']); - } - else { - $obj->assign('reportTitle', $templateInfo['label']); - } - - $wrapper = new CRM_Utils_Wrapper(); - $arguments = [ - 'urlToSession' => [ - [ - 'urlVar' => 'instanceId', - 'type' => 'Positive', - 'sessionVar' => 'instanceId', - 'default' => 'null', - ], - ], - 'ignoreKey' => TRUE, - ]; - $messages[] = $wrapper->run($templateInfo['name'], NULL, $arguments); + if (empty($optionVal)) { + $is_error = 1; + $messages[] = 'Did not find a valid instance to execute'; } else { - $is_error = 1; - if (!$instanceId) { - $messages[] = 'Required parameter missing: instanceId'; + $templateInfo = CRM_Core_OptionGroup::getRowValues('report_template', $optionVal, 'value'); + $obj = new CRM_Report_Page_Instance(); + $is_error = 0; + if (strstr(CRM_Utils_Array::value('name', $templateInfo), '_Form')) { + $instanceInfo = []; + CRM_Report_BAO_ReportInstance::retrieve(['id' => $instanceId], $instanceInfo); + + if (!empty($instanceInfo['title'])) { + $obj->assign('reportTitle', $instanceInfo['title']); + } + else { + $obj->assign('reportTitle', $templateInfo['label']); + } + + $wrapper = new CRM_Utils_Wrapper(); + $arguments = [ + 'urlToSession' => [ + [ + 'urlVar' => 'instanceId', + 'type' => 'Positive', + 'sessionVar' => 'instanceId', + 'default' => 'null', + ], + ], + 'ignoreKey' => TRUE, + ]; + $messages[] = $wrapper->run($templateInfo['name'], NULL, $arguments); } else { - $messages[] = 'Did not find valid instance to execute'; + $is_error = 1; + if (!$instanceId) { + $messages[] = 'Required parameter missing: instanceId'; + } + else { + $messages[] = 'Did not find valid instance to execute'; + } } } - $result = [ 'is_error' => $is_error, 'messages' => implode("\n", $messages), diff --git a/civicrm/CRM/SMS/BAO/Provider.php b/civicrm/CRM/SMS/BAO/Provider.php index 11b16e97fbfef4ce506ec7077050d2af73fde032..72158e34c279fbaad1a872fa9ee71616656b5025 100644 --- a/civicrm/CRM/SMS/BAO/Provider.php +++ b/civicrm/CRM/SMS/BAO/Provider.php @@ -17,12 +17,11 @@ class CRM_SMS_BAO_Provider extends CRM_SMS_DAO_Provider { /** - * @return null|string + * @return int */ - public static function activeProviderCount() { - $activeProviders = CRM_Core_DAO::singleValueQuery('SELECT count(id) FROM civicrm_sms_provider WHERE is_active = 1 AND (domain_id = %1 OR domain_id IS NULL)', + public static function activeProviderCount(): int { + return (int) CRM_Core_DAO::singleValueQuery('SELECT count(id) FROM civicrm_sms_provider WHERE is_active = 1 AND (domain_id = %1 OR domain_id IS NULL)', [1 => [CRM_Core_Config::domainID(), 'Positive']]); - return $activeProviders; } /** diff --git a/civicrm/CRM/SMS/Form/Upload.php b/civicrm/CRM/SMS/Form/Upload.php index da40e49a7a0c63eeb616db789eef19b1bea97c67..ae52483822f2cd5a4e6ded7d1efc63ff26acb7f1 100644 --- a/civicrm/CRM/SMS/Form/Upload.php +++ b/civicrm/CRM/SMS/Form/Upload.php @@ -56,7 +56,7 @@ class CRM_SMS_Form_Upload extends CRM_Core_Form { // We don't want to retrieve template details once it is // set in session. $templateId = $this->get('template'); - $this->assign('templateSelected', $templateId ? $templateId : 0); + $this->assign('templateSelected', $templateId ?: 0); if (isset($defaults['msg_template_id']) && !$templateId) { $defaults['SMStemplate'] = $defaults['msg_template_id']; $messageTemplate = new CRM_Core_DAO_MessageTemplate(); diff --git a/civicrm/CRM/UF/Page/Field.php b/civicrm/CRM/UF/Page/Field.php index b939f01fc5d356c06ee193d8b7a91c1be20ff486..04ff5eb776c748c5104e8aa4f136e17a4ff22746 100644 --- a/civicrm/CRM/UF/Page/Field.php +++ b/civicrm/CRM/UF/Page/Field.php @@ -54,28 +54,33 @@ class CRM_UF_Page_Field extends CRM_Core_Page { 'url' => 'civicrm/admin/uf/group/field/update', 'qs' => 'reset=1&action=update&id=%%id%%&gid=%%gid%%', 'title' => ts('Edit CiviCRM Profile Field'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::PREVIEW => [ 'name' => ts('Preview'), 'url' => 'civicrm/admin/uf/group/preview', 'qs' => 'action=preview&gid=%%gid%%&fieldId=%%id%%', 'title' => ts('Preview CiviCRM Profile Field'), + 'weight' => 0, ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable CiviCRM Profile Field'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable CiviCRM Profile Field'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/uf/group/field', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Enable CiviCRM Profile Field'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], ]; } diff --git a/civicrm/CRM/UF/Page/Group.php b/civicrm/CRM/UF/Page/Group.php index de929317efe033e532846a4796d78536d3ac9084..2f92e296291a63a61e274478ca9fe255c346111d 100644 --- a/civicrm/CRM/UF/Page/Group.php +++ b/civicrm/CRM/UF/Page/Group.php @@ -48,18 +48,21 @@ class CRM_UF_Page_Group extends CRM_Core_Page { 'url' => 'civicrm/admin/uf/group/field', 'qs' => 'reset=1&action=browse&gid=%%id%%', 'title' => ts('View and Edit Fields'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::BROWSE), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Settings'), 'url' => 'civicrm/admin/uf/group/update', 'qs' => 'action=update&id=%%id%%&context=group', 'title' => ts('Edit CiviCRM Profile Group'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], CRM_Core_Action::PREVIEW => [ 'name' => ts('Preview'), 'url' => 'civicrm/admin/uf/group/preview', 'qs' => 'action=preview&gid=%%id%%&context=group', 'title' => ts('Edit CiviCRM Profile Group'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::PREVIEW), ], CRM_Core_Action::ADD => [ 'name' => ts('Use - Create Mode'), @@ -67,6 +70,7 @@ class CRM_UF_Page_Group extends CRM_Core_Page { 'qs' => 'gid=%%id%%&reset=1', 'title' => ts('Use - Create Mode'), 'fe' => TRUE, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADD), ], CRM_Core_Action::ADVANCED => [ 'name' => ts('Use - Edit Mode'), @@ -74,6 +78,7 @@ class CRM_UF_Page_Group extends CRM_Core_Page { 'qs' => 'gid=%%id%%&reset=1', 'title' => ts('Use - Edit Mode'), 'fe' => TRUE, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ADVANCED), ], CRM_Core_Action::BASIC => [ 'name' => ts('Use - Listings Mode'), @@ -81,22 +86,26 @@ class CRM_UF_Page_Group extends CRM_Core_Page { 'qs' => 'gid=%%id%%&reset=1', 'title' => ts('Use - Listings Mode'), 'fe' => TRUE, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::BASIC), ], CRM_Core_Action::DISABLE => [ 'name' => ts('Disable'), 'ref' => 'crm-enable-disable', 'title' => ts('Disable CiviCRM Profile Group'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DISABLE), ], CRM_Core_Action::ENABLE => [ 'name' => ts('Enable'), 'ref' => 'crm-enable-disable', 'title' => ts('Enable CiviCRM Profile Group'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::ENABLE), ], CRM_Core_Action::DELETE => [ 'name' => ts('Delete'), 'url' => 'civicrm/admin/uf/group', 'qs' => 'action=delete&id=%%id%%', 'title' => ts('Delete CiviCRM Profile Group'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), ], CRM_Core_Action::COPY => [ 'name' => ts('Copy'), @@ -104,6 +113,7 @@ class CRM_UF_Page_Group extends CRM_Core_Page { 'qs' => 'action=copy&gid=%%id%%', 'title' => ts('Make a Copy of CiviCRM Profile Group'), 'extra' => 'onclick = "return confirm(\'' . $copyExtra . '\');"', + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::COPY), ], ]; $allowRemoteSubmit = Civi::settings()->get('remote_profile_submissions'); @@ -113,6 +123,7 @@ class CRM_UF_Page_Group extends CRM_Core_Page { 'url' => 'civicrm/admin/uf/group', 'qs' => 'action=profile&gid=%%id%%', 'title' => ts('HTML Form Snippet for this Profile'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::PROFILE), ]; } } diff --git a/civicrm/CRM/Upgrade/Incremental/General.php b/civicrm/CRM/Upgrade/Incremental/General.php index 38f9cd01e60455c0f73b04b5d70061999a79de5e..9d87705777590461226aa31d6fd997079e7a2cba 100644 --- a/civicrm/CRM/Upgrade/Incremental/General.php +++ b/civicrm/CRM/Upgrade/Incremental/General.php @@ -26,14 +26,14 @@ class CRM_Upgrade_Incremental_General { * The point release will be dropped in recommendations unless it's .1 or * higher. */ - const RECOMMENDED_PHP_VER = '7.4.0'; + const RECOMMENDED_PHP_VER = '8.1.0'; /** * The minimum recommended PHP version. * * A site running an earlier version will be told to upgrade. */ - const MIN_RECOMMENDED_PHP_VER = '7.4.0'; + const MIN_RECOMMENDED_PHP_VER = '8.0.0'; /** * The minimum PHP version required to install Civi. diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveFiftyOne.php b/civicrm/CRM/Upgrade/Incremental/php/FiveFiftyOne.php index 0b31540361b97871ab372cdc592cbb0d53acfe40..fd4520893fc2bc95f9fe89976afbdca88c20b30d 100644 --- a/civicrm/CRM/Upgrade/Incremental/php/FiveFiftyOne.php +++ b/civicrm/CRM/Upgrade/Incremental/php/FiveFiftyOne.php @@ -127,7 +127,7 @@ class CRM_Upgrade_Incremental_php_FiveFiftyOne extends CRM_Upgrade_Incremental_B ->setSelect(['id', 'name']) ->addWhere('mapping_id.mapping_type_id:name', '=', 'Import Membership') ->execute(); - $fields = self::getImportableMembershipFields('All');; + $fields = self::getImportableMembershipFields('All'); $fieldMap = []; foreach ($fields as $fieldName => $field) { $fieldMap[$field['title']] = $fieldName; diff --git a/civicrm/CRM/Upgrade/Incremental/php/FiveSixtySix.php b/civicrm/CRM/Upgrade/Incremental/php/FiveSixtySix.php new file mode 100644 index 0000000000000000000000000000000000000000..55c6d1df36d07c0cd1717415d21a2f9a5b4e3cc7 --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/php/FiveSixtySix.php @@ -0,0 +1,270 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +/** + * Upgrade logic for the 5.66.x series. + * + * Each minor version in the series is handled by either a `5.66.x.mysql.tpl` file, + * or a function in this class named `upgrade_5_66_x`. + * If only a .tpl file exists for a version, it will be run automatically. + * If the function exists, it must explicitly add the 'runSql' task if there is a corresponding .mysql.tpl. + * + * This class may also implement `setPreUpgradeMessage()` and `setPostUpgradeMessage()` functions. + */ +class CRM_Upgrade_Incremental_php_FiveSixtySix extends CRM_Upgrade_Incremental_Base { + + public function setPreUpgradeMessage(&$preUpgradeMessage, $rev, $currentVer = NULL): void { + if ($rev === '5.66.alpha1') { + $preUpgradeMessage .= '<p>' . ts('If your site uses custom code to inject tracking fields into messages, it may need updating. See <a %1>this issue for details</a>.', + [1 => 'href="https://github.com/civicrm/civicrm-core/pull/27233" target="_blank"']) . '</p>'; + } + } + + /** + * Upgrade step; adds tasks including 'runSql'. + * + * @param string $rev + * The version number matching this function name + */ + public function upgrade_5_66_alpha1($rev): void { + $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev); + $this->addTask('Make Contribution.tax_amount required', 'alterColumn', 'civicrm_contribution', 'tax_amount', "decimal(20,2) DEFAULT 0 NOT NULL COMMENT 'Total tax amount of this contribution.'"); + $this->addTask('Make LineItem.tax_amount required', 'alterColumn', 'civicrm_line_item', 'tax_amount', "decimal(20,2) DEFAULT 0 NOT NULL COMMENT 'tax of each item'"); + // These run after the sql file + $this->addTask('Make Discount.entity_table required', 'alterColumn', 'civicrm_discount', 'entity_table', "varchar(64) NOT NULL COMMENT 'Name of the action(reminder)'"); + $this->addTask('Make ActionSchedule.name required', 'alterColumn', 'civicrm_action_schedule', 'name', "varchar(64) NOT NULL COMMENT 'physical tablename for entity being joined to discount, e.g. civicrm_event'"); + $this->addTask(ts('Create index %1', [1 => 'civicrm_action_schedule.UI_name']), 'addIndex', 'civicrm_action_schedule', 'name', 'UI'); + $this->addTask('Add fields to civicrm_mail_settings to allow more flexibility for email to activity', 'addMailSettingsFields'); + $this->addTask('Move serialized contents of civicrm_survey.recontact_interval into civicrm_option_value.filter', 'migrateRecontactInterval'); + $this->addTask('Drop column civicrm_survey.recontact_interval', 'dropColumn', 'civicrm_survey', 'recontact_interval'); + $this->addTask('Update afform tab names', 'updateAfformTabs'); + $this->addTask('Add in Client Removed Activity Type', 'addCaseClientRemovedActivity'); + $this->addTask('Update quicksearch options to v4 format', 'updateQuicksearchOptions'); + } + + /** + * Upgrade step; adds tasks including 'runSql'. + * + * @param string $rev + * The version number matching this function name + */ + public function upgrade_5_66_beta1($rev): void { + $this->addTask(ts('Upgrade DB to %1: SQL', [1 => $rev]), 'runSql', $rev); + $locales = CRM_Core_I18n::getMultilingual(); + if ($locales) { + // Note these are localizable so need the last param + $this->addTask('civicrm_location_type.display_name default', 'alterColumn', 'civicrm_location_type', 'display_name', "varchar(64) NOT NULL DEFAULT '' COMMENT 'Location Type Display Name.'", TRUE); + $this->addTask('civicrm_survey.title default', 'alterColumn', 'civicrm_survey', 'title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Title of the Survey.'", TRUE); + $this->addTask('civicrm_case_type.title default', 'alterColumn', 'civicrm_case_type', 'title', "varchar(64) NOT NULL DEFAULT '' COMMENT 'Natural language name for Case Type'", TRUE); + $this->addTask('civicrm_custom_group.title default', 'alterColumn', 'civicrm_custom_group', 'title', "varchar(64) NOT NULL DEFAULT '' COMMENT 'Friendly Name.'", TRUE); + $this->addTask('civicrm_custom_field.label default', 'alterColumn', 'civicrm_custom_field', 'label', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Text for form field label (also friendly name for administering this custom property).'", TRUE); + $this->addTask('civicrm_option_value.label default', 'alterColumn', 'civicrm_option_value', 'label', "varchar(512) NOT NULL DEFAULT '' COMMENT 'Option string as displayed to users - e.g. the label in an HTML OPTION tag.'", TRUE); + $this->addTask('civicrm_group.title default', 'alterColumn', 'civicrm_group', 'title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of Group.'", TRUE); + $this->addTask('civicrm_group.frontend_title default', 'alterColumn', 'civicrm_group', 'frontend_title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Alternative public title for this Group.'", TRUE); + $this->addTask('civicrm_contribution_page.title default', 'alterColumn', 'civicrm_contribution_page', 'title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Contribution Page title. For top of page display'", TRUE); + $this->addTask('civicrm_contribution_page.frontend_title default', 'alterColumn', 'civicrm_contribution_page', 'frontend_title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Contribution Page Public title'", TRUE); + $this->addTask('civicrm_product.name default', 'alterColumn', 'civicrm_product', 'name', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Required product/premium name'", TRUE); + $this->addTask('civicrm_payment_processor.title default', 'alterColumn', 'civicrm_payment_processor', 'title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of processor when shown to CiviCRM administrators.'", TRUE); + $this->addTask('civicrm_payment_processor.frontend_title default', 'alterColumn', 'civicrm_payment_processor', 'frontend_title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Name of processor when shown to users making a payment.'", TRUE); + $this->addTask('civicrm_membership_type.name default', 'alterColumn', 'civicrm_membership_type', 'name', "varchar(128) NOT NULL DEFAULT '' COMMENT 'Name of Membership Type'", TRUE); + $this->addTask('civicrm_price_set.title default', 'alterColumn', 'civicrm_price_set', 'title', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Displayed title for the Price Set.'", TRUE); + $this->addTask('civicrm_uf_group.title default', 'alterColumn', 'civicrm_uf_group', 'title', "varchar(64) NOT NULL DEFAULT '' COMMENT 'Form title.'", TRUE); + $this->addTask('civicrm_uf_field.label default', 'alterColumn', 'civicrm_uf_field', 'label', "varchar(255) NOT NULL DEFAULT '' COMMENT 'To save label for fields.'", TRUE); + $this->addTask('civicrm_price_field.label default', 'alterColumn', 'civicrm_price_field', 'label', "varchar(255) NOT NULL DEFAULT '' COMMENT 'Text for form field label (also friendly name for administering this field).'", TRUE); + // END localizable field updates + } + } + + /** + * Add fields to civicrm_mail_settings to allow more flexibility for email to activity + * + * @param \CRM_Queue_TaskContext $ctx + * + * @return bool + */ + public static function addMailSettingsFields(CRM_Queue_TaskContext $ctx) { + $ctx->log->info('Adding field is_active'); + self::addColumn($ctx, 'civicrm_mail_settings', 'is_active', 'tinyint NOT NULL DEFAULT 1 COMMENT "Ignored for bounce processing, only for email-to-activity"'); + $ctx->log->info('Adding field activity_type_id'); + self::addColumn($ctx, 'civicrm_mail_settings', 'activity_type_id', 'int unsigned COMMENT "Implicit FK to civicrm_option_value where option_group = activity_type"'); + $ctx->log->info('Adding field campaign_id'); + self::addColumn($ctx, 'civicrm_mail_settings', 'campaign_id', 'int unsigned DEFAULT NULL COMMENT "Foreign key to the Campaign."'); + $ctx->log->info('Adding field activity_source'); + self::addColumn($ctx, 'civicrm_mail_settings', 'activity_source', 'varchar(4) COMMENT "Which email recipient to add as the activity source (from, to, cc, bcc)."'); + $ctx->log->info('Adding field activity_targets'); + self::addColumn($ctx, 'civicrm_mail_settings', 'activity_targets', 'varchar(16) COMMENT "Which email recipients to add as the activity targets (from, to, cc, bcc)."'); + $ctx->log->info('Adding field activity_assignees'); + self::addColumn($ctx, 'civicrm_mail_settings', 'activity_assignees', 'varchar(16) COMMENT "Which email recipients to add as the activity assignees (from, to, cc, bcc)."'); + + $ctx->log->info('Adding FK_civicrm_mail_settings_campaign_id'); + if (!self::checkFKExists('civicrm_mail_settings', 'FK_civicrm_mail_settings_campaign_id')) { + CRM_Core_DAO::executeQuery(" + ALTER TABLE `civicrm_mail_settings` + ADD CONSTRAINT `FK_civicrm_mail_settings_campaign_id` + FOREIGN KEY (`campaign_id`) REFERENCES `civicrm_campaign`(`id`) + ON DELETE SET NULL; + "); + } + + $ctx->log->info('Setting default activity_source'); + CRM_Core_DAO::executeQuery('UPDATE civicrm_mail_settings SET `activity_source` = "from" WHERE `activity_source` IS NULL;'); + $ctx->log->info('Setting default activity_targets'); + CRM_Core_DAO::executeQuery('UPDATE civicrm_mail_settings SET `activity_targets` = "to,cc,bcc" WHERE `activity_targets` IS NULL;'); + $ctx->log->info('Setting default activity_assignees'); + CRM_Core_DAO::executeQuery('UPDATE civicrm_mail_settings SET `activity_assignees` = "from" WHERE `activity_assignees` IS NULL;'); + $ctx->log->info('Setting default activity_type_id'); + $inboundEmailActivity = CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Inbound Email'); + if ($inboundEmailActivity) { + CRM_Core_DAO::executeQuery('UPDATE civicrm_mail_settings SET `activity_type_id` = ' . $inboundEmailActivity . ' WHERE `activity_type_id` IS NULL;'); + } + return TRUE; + } + + /** + * If the ContactLayout extension is installed, update its stored tab names to keep up + * with core changes to Afform tabs. + * + * @see https://github.com/civicrm/civicrm-core/pull/27196 + * + * @param \CRM_Queue_TaskContext $ctx + * + * @return bool + */ + public static function updateAfformTabs(CRM_Queue_TaskContext $ctx) { + $convert = function($id) { + if ($id === 'afsearchGrants') { + return 'grant'; + } + if (preg_match('#^(afform|afsearch)#i', $id)) { + return CRM_Utils_String::convertStringToSnakeCase(preg_replace('#^(afformtab|afsearchtab|afform|afsearch)#i', '', $id)); + } + return $id; + }; + + $setting = \Civi::settings()->get('contactlayout_default_tabs'); + if ($setting && is_array($setting)) { + foreach ($setting as $index => $tab) { + $setting[$index]['id'] = $convert($tab['id']); + } + \Civi::settings()->set('contactlayout_default_tabs', $setting); + } + if (CRM_Core_DAO::checkTableExists('civicrm_contact_layout')) { + // Can't use the api due to extension loading issues + $dao = CRM_Core_DAO::executeQuery('SELECT * FROM civicrm_contact_layout'); + while ($dao->fetch()) { + if (!empty($dao->tabs)) { + $tabs = CRM_Core_DAO::unSerializeField($dao->tabs, CRM_Core_DAO::SERIALIZE_JSON); + foreach ($tabs as $index => $tab) { + $tabs[$index]['id'] = $convert($tab['id']); + } + CRM_Core_DAO::executeQuery('UPDATE civicrm_contact_layout SET tabs = %1 WHERE id = %2', [ + 1 => [CRM_Core_DAO::serializeField($tabs, CRM_Core_DAO::SERIALIZE_JSON), 'String'], + 2 => [$dao->id, 'Integer'], + ]); + } + } + } + return TRUE; + } + + public static function addCaseClientRemovedActivity() { + CRM_Core_BAO_OptionValue::ensureOptionValueExists([ + 'option_group_id' => 'activity_type', + 'name' => 'Case Client Removed', + 'label' => ts('Case Client was removed from Case'), + 'description' => ts('Case client was removed from a case'), + 'is_active' => TRUE, + 'component_id' => CRM_Core_DAO::singleValueQuery("SELECT id FROM civicrm_component WHERE name = 'CiviCase'"), + 'icon' => 'fa-trash', + ]); + return TRUE; + } + + /** + * Move serialized contents of Survey.recontact_interval into OptionValue.filter + * + * @param \CRM_Queue_TaskContext $ctx + * @return bool + */ + public static function migrateRecontactInterval($ctx): bool { + if (!CRM_Core_BAO_SchemaHandler::checkIfFieldExists('civicrm_survey', 'recontact_interval')) { + // Upgrade has already run, nothing to do. + return TRUE; + } + $surveys = CRM_Core_DAO::executeQuery('SELECT result_id, recontact_interval FROM civicrm_survey')->fetchAll(); + foreach ($surveys as $survey) { + if (empty($survey['recontact_interval']) || empty($survey['result_id'])) { + continue; + } + foreach (unserialize($survey['recontact_interval']) as $label => $interval) { + CRM_Core_DAO::executeQuery('UPDATE civicrm_option_value SET filter = %1 WHERE option_group_id = %2 AND label = %3', [ + 1 => [$interval, 'Integer'], + 2 => [$survey['result_id'], 'Positive'], + 3 => [$label, 'String'], + ]); + } + } + return TRUE; + } + + /** + * Convert `quicksearch_options` setting to use new APIv4 field names + * + * @param \CRM_Queue_TaskContext $ctx + * @return bool + */ + public static function updateQuicksearchOptions($ctx): bool { + $oldOpts = Civi::settings()->get('quicksearch_options'); + if ($oldOpts) { + // Map old quicksearch options to new APIv4 format + $map = [ + 'sort_name' => 'sort_name', + 'contact_id' => 'id', + 'external_identifier' => 'external_identifier', + 'first_name' => 'first_name', + 'last_name' => 'last_name', + 'email' => 'email_primary.email', + 'phone_numeric' => 'phone_primary.phone_numeric', + 'street_address' => 'address_primary.street_address', + 'city' => 'address_primary.city', + 'postal_code' => 'address_primary.postal_code', + 'job_title' => 'job_title', + ]; + + $newOpts = []; + foreach ($oldOpts as $oldOpt) { + // Convert custom fields + if (str_starts_with($oldOpt, 'custom_')) { + $fieldName = substr($oldOpt, 7); + try { + $optionGroupId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $fieldName, 'option_group_id', 'name'); + $customGroupId = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomField', $fieldName, 'custom_group_id', 'name'); + $customGroupName = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_CustomGroup', $customGroupId, 'name'); + $newOpts[] = $customGroupName . '.' . $fieldName . ($optionGroupId ? ':label' : ''); + } + catch (CRM_Core_Exception $e) { + // Field not found or something... just drop it + } + } + // Core fields. In case the upgrade has run already, check new and old options + elseif (in_array($oldOpt, $map) || array_key_exists($oldOpt, $map)) { + $newOpts[] = $map[$oldOpt] ?? $oldOpt; + } + } + Civi::settings()->set('quicksearch_options', $newOpts); + } + else { + Civi::settings()->revert('quicksearch_options'); + } + return TRUE; + } + +} diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.63.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.63.alpha1.mysql.tpl index d96fd227a11f247e015cd5c636beb89f8fef1a83..62361f6bb04c3c9c76f83ffec8cadd86d32fe38d 100644 --- a/civicrm/CRM/Upgrade/Incremental/sql/5.63.alpha1.mysql.tpl +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.63.alpha1.mysql.tpl @@ -21,11 +21,19 @@ UPDATE civicrm_contribution_page SET `name` = `id`; -- Add name field, make frontend_title required (in conjunction with php function) {if $multilingual} {foreach from=$locales item=locale} + UPDATE `civicrm_contribution_page` + SET `title_{$locale}` = '' + WHERE `title_{$locale}` IS NULL; + UPDATE `civicrm_contribution_page` SET `frontend_title_{$locale}` = `title_{$locale}` WHERE `frontend_title_{$locale}` IS NULL OR `frontend_title_{$locale}` = ''; {/foreach} {else} + UPDATE `civicrm_contribution_page` + SET `title` = '' + WHERE `title` IS NULL; + UPDATE `civicrm_contribution_page` SET `frontend_title` = `title` WHERE `frontend_title` IS NULL OR `frontend_title` = ''; diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.66.alpha1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.66.alpha1.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..325ab4c919cee5ddf3257c3c7deed40a55f03acf --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.66.alpha1.mysql.tpl @@ -0,0 +1,13 @@ +{* file to handle db changes in 5.66.alpha1 during upgrade *} + +{* Ensure action_schedule.name has a unique value *} +UPDATE `civicrm_action_schedule` SET name = COALESCE(CONCAT('repeat_', used_for, '_', entity_value), CONCAT('schedule_', id)) WHERE name IS NULL OR name = ''; +UPDATE `civicrm_action_schedule` a1, `civicrm_action_schedule` a2 +SET a2.name = CONCAT(a2.name, '_', a2.id) +WHERE a2.name = a1.name AND a2.id > a1.id; + +{* Set default value for Discount.entity_table *} +UPDATE `civicrm_discount` SET `entity_table` = 'civicrm_event' WHERE `entity_table` IS NULL; + +UPDATE civicrm_contribution SET tax_amount = 0 WHERE tax_amount IS NULL; +UPDATE civicrm_line_item SET tax_amount = 0 WHERE tax_amount IS NULL; diff --git a/civicrm/CRM/Upgrade/Incremental/sql/5.66.beta1.mysql.tpl b/civicrm/CRM/Upgrade/Incremental/sql/5.66.beta1.mysql.tpl new file mode 100644 index 0000000000000000000000000000000000000000..df59de8658cb9162ddeb343fa0555f008920fa4b --- /dev/null +++ b/civicrm/CRM/Upgrade/Incremental/sql/5.66.beta1.mysql.tpl @@ -0,0 +1 @@ +{* file to handle db changes in 5.66.beta1 during upgrade *} diff --git a/civicrm/CRM/Upgrade/Snapshot.php b/civicrm/CRM/Upgrade/Snapshot.php index 4e1addf2fafa3a50fb969518bd63d48f6a40537a..fd0bd75f0f90ac119961b1bd77c2a91768451d2e 100644 --- a/civicrm/CRM/Upgrade/Snapshot.php +++ b/civicrm/CRM/Upgrade/Snapshot.php @@ -44,8 +44,20 @@ class CRM_Upgrade_Snapshot { public static function getActivationIssues(): array { if (static::$activationIssues === NULL) { $policy = CRM_Utils_Constant::value('CIVICRM_UPGRADE_SNAPSHOT', 'auto'); + static::$activationIssues = []; + + $version = CRM_Utils_SQL::getDatabaseVersion(); + if ((stripos($version, 'mariadb') !== FALSE) && version_compare($version, '10.6.0', '>=')) { + // MariaDB briefly (10.6.0-10.6.5) flirted with the idea of phasing-out `COMPRESSED`. By default, snapshots won't work on those versions. + // https://mariadb.com/kb/en/innodb-compressed-row-format/#read-only + $roCompressed = CRM_Core_DAO::singleValueQuery('SELECT @@innodb_read_only_compressed'); + if (in_array($roCompressed, ['on', 'ON', 1, '1'])) { + static::$activationIssues['row_compressed'] = ts('This MariaDB instance does not allow creating compressed snapshots.'); + } + } + if ($policy === TRUE) { - return []; + return static::$activationIssues; } $limits = [ @@ -57,7 +69,6 @@ class CRM_Upgrade_Snapshot { 'civicrm_event' => 200 * 1000, ]; - static::$activationIssues = []; foreach ($limits as $table => $limit) { try { // Use select MAX(id) rather than COUNT as COUNT is slow on large databases. diff --git a/civicrm/CRM/Utils/API/AbstractFieldCoder.php b/civicrm/CRM/Utils/API/AbstractFieldCoder.php index f99293f9e83b062dc0fa8375731b560012850535..99ce120f1a9ead89f9931f696d8796c958f86955 100644 --- a/civicrm/CRM/Utils/API/AbstractFieldCoder.php +++ b/civicrm/CRM/Utils/API/AbstractFieldCoder.php @@ -117,7 +117,7 @@ abstract class CRM_Utils_API_AbstractFieldCoder implements API_Wrapper { */ public function toApiOutput($apiRequest, $result) { $lowerAction = strtolower($apiRequest['action']); - if ($apiRequest['version'] == 3 && in_array($lowerAction, ['get', 'create', 'setvalue', 'getquick'])) { + if ($apiRequest['version'] == 3 && in_array($lowerAction, ['get', 'create', 'setvalue'])) { foreach ($result as $key => $value) { // Don't apply escaping to API control parameters (e.g. 'api.foo' or 'options.foo') // and don't apply to other skippable fields diff --git a/civicrm/CRM/Utils/Check/Component/Security.php b/civicrm/CRM/Utils/Check/Component/Security.php index 0225471e47ce9903a9d7eb36256b06079a1dd0b9..d9fe90a8c5ff65658a8d2b136c5b4ad5815a85a6 100644 --- a/civicrm/CRM/Utils/Check/Component/Security.php +++ b/civicrm/CRM/Utils/Check/Component/Security.php @@ -287,10 +287,6 @@ class CRM_Utils_Check_Component_Security extends CRM_Utils_Check_Component { "{$packages_path}/OpenFlashChart/php-ofc-library/ofc_upload_image.php", \Psr\Log\LogLevel::CRITICAL, ], - [ - "{$packages_path}/html2text/class.html2text.inc", - \Psr\Log\LogLevel::CRITICAL, - ], ]; foreach ($files as $file) { if (file_exists($file[0])) { diff --git a/civicrm/CRM/Utils/Date.php b/civicrm/CRM/Utils/Date.php index 68cb109fe309ee52493d90564e6f78a77f38db19..2434fb33e06c5400e66ccb50c24cb2a5e641f965 100644 --- a/civicrm/CRM/Utils/Date.php +++ b/civicrm/CRM/Utils/Date.php @@ -1987,6 +1987,7 @@ class CRM_Utils_Date { $field['smarty_view_format'] = $dateAttributes['smarty_view_format']; } $field['datepicker']['extra'] = self::getDatePickerExtra($field); + $field['datepicker']['extra']['time'] = $fieldMetaData['type'] == CRM_Utils_Type::T_TIMESTAMP; $field['datepicker']['attributes'] = self::getDatePickerAttributes($field); } } diff --git a/civicrm/CRM/Utils/File.php b/civicrm/CRM/Utils/File.php index 373b0b29dab398f670e2bca30876e8c24ece5a8c..37f2522a430ab1cd8fb27200b63dbc70e6116fa4 100644 --- a/civicrm/CRM/Utils/File.php +++ b/civicrm/CRM/Utils/File.php @@ -90,12 +90,12 @@ class CRM_Utils_File { * @param bool $rmdir * @param bool $verbose * - * @throws Exception + * @throws \CRM_Core_Exception */ - public static function cleanDir($target, $rmdir = TRUE, $verbose = TRUE) { + public static function cleanDir(string $target, bool $rmdir = TRUE, bool $verbose = TRUE) { static $exceptions = ['.', '..']; - if ($target == '' || $target == '/' || !$target) { - throw new Exception("Overly broad deletion"); + if (!$target || $target === '/') { + throw new CRM_Core_Exception('Overly broad deletion'); } if ($dh = @opendir($target)) { @@ -794,6 +794,11 @@ HTACCESS; return FALSE; } } + + // windows fix + $parent = str_replace(DIRECTORY_SEPARATOR, '/', $parent); + $child = str_replace(DIRECTORY_SEPARATOR, '/', $child); + $parentParts = explode('/', rtrim($parent, '/')); $childParts = explode('/', rtrim($child, '/')); while (($parentPart = array_shift($parentParts)) !== NULL) { @@ -889,8 +894,8 @@ HTACCESS; case 'image/x-png': case 'image/png': case 'image/jpg': - list($imageWidth, $imageHeight) = getimagesize($path); - list($imageThumbWidth, $imageThumbHeight) = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight); + [$imageWidth, $imageHeight] = getimagesize($path); + [$imageThumbWidth, $imageThumbHeight] = CRM_Contact_BAO_Contact::getThumbSize($imageWidth, $imageHeight); $url = "<a href=\"$url\" class='crm-image-popup'> <img src=\"$url\" width=$imageThumbWidth height=$imageThumbHeight/> </a>"; diff --git a/civicrm/CRM/Utils/Hook.php b/civicrm/CRM/Utils/Hook.php index d3b4417f60602a1b2e44a014cab90d563258370c..a7ab628d4830c88fc90ca02eb385f647c9d5f2d9 100644 --- a/civicrm/CRM/Utils/Hook.php +++ b/civicrm/CRM/Utils/Hook.php @@ -414,7 +414,7 @@ abstract class CRM_Utils_Hook { * The unique identifier for the object. * @param array $links * (optional) the links array (introduced in v3.2). - * @param int $mask + * @param int|null $mask * (optional) the bitmask to show/hide links. * @param array $values * (optional) the values to fill the links. diff --git a/civicrm/CRM/Utils/Mail.php b/civicrm/CRM/Utils/Mail.php index f3a0559381139fb981bb7301d3f311f1f7b665b8..63e14b70009e715d4b2620b1f686b821f07bd920 100644 --- a/civicrm/CRM/Utils/Mail.php +++ b/civicrm/CRM/Utils/Mail.php @@ -43,8 +43,8 @@ class CRM_Utils_Mail { throw new CRM_Core_Exception(ts('There is no valid smtp server setting. Click <a href=\'%1\'>Administer >> System Setting >> Outbound Email</a> to set the SMTP Server.', [1 => CRM_Utils_System::url('civicrm/admin/setting/smtp', 'reset=1')])); } - $params['host'] = $mailingInfo['smtpServer'] ? $mailingInfo['smtpServer'] : 'localhost'; - $params['port'] = $mailingInfo['smtpPort'] ? $mailingInfo['smtpPort'] : 25; + $params['host'] = $mailingInfo['smtpServer'] ?: 'localhost'; + $params['port'] = $mailingInfo['smtpPort'] ?: 25; if ($mailingInfo['smtpAuth']) { $params['username'] = $mailingInfo['smtpUsername']; @@ -357,16 +357,6 @@ class CRM_Utils_Mail { return $message; } - /** - * @param $to - * @param $headers - * @param $message - * @deprecated - */ - public static function logger(&$to, &$headers, &$message) { - CRM_Utils_Mail_Logger::log($to, $headers, $message); - } - /** * Get the email address itself from a formatted full name + address string * diff --git a/civicrm/CRM/Utils/Mail/EmailProcessor.php b/civicrm/CRM/Utils/Mail/EmailProcessor.php index a31bef4d3deee84606e2ce60906842d0654bdd20..813dc1d15a266d0ebe9a117ebc51ca7a880b26b7 100644 --- a/civicrm/CRM/Utils/Mail/EmailProcessor.php +++ b/civicrm/CRM/Utils/Mail/EmailProcessor.php @@ -15,9 +15,9 @@ * @copyright CiviCRM LLC https://civicrm.org/licensing */ -// we should consider moving these to the settings table -// before the 4.1 release -define('EMAIL_ACTIVITY_TYPE_ID', NULL); +// we should consider moving this to the settings table +use Civi\Api4\Activity; + define('MAIL_BATCH_SIZE', 50); /** @@ -55,6 +55,7 @@ class CRM_Utils_Mail_EmailProcessor { $dao = new CRM_Core_DAO_MailSettings(); $dao->domain_id = CRM_Core_Config::domainID(); $dao->is_default = FALSE; + $dao->is_active = TRUE; $dao->find(); $found = FALSE; while ($dao->fetch()) { @@ -67,21 +68,6 @@ class CRM_Utils_Mail_EmailProcessor { return $found; } - /** - * Process the mailbox for all the settings from civicrm_mail_settings. - * - * @param bool|string $civiMail if true, processing is done in CiviMail context, or Activities otherwise. - */ - public static function process($civiMail = TRUE) { - $dao = new CRM_Core_DAO_MailSettings(); - $dao->domain_id = CRM_Core_Config::domainID(); - $dao->find(); - - while ($dao->fetch()) { - self::_process($civiMail, $dao); - } - } - /** * @param $civiMail * @param CRM_Core_DAO_MailSettings $dao @@ -91,38 +77,32 @@ class CRM_Utils_Mail_EmailProcessor { * @throws Exception * @throws CRM_Core_Exception */ - public static function _process($civiMail, $dao, $is_create_activities) { + private static function _process($civiMail, $dao, $is_create_activities) { // 0 = activities; 1 = bounce; - $usedfor = $dao->is_default; - - $emailActivityTypeId - = (defined('EMAIL_ACTIVITY_TYPE_ID') && EMAIL_ACTIVITY_TYPE_ID) - ? EMAIL_ACTIVITY_TYPE_ID - : CRM_Core_PseudoConstant::getKey('CRM_Activity_BAO_Activity', 'activity_type_id', 'Inbound Email'); - - if (!$emailActivityTypeId) { - throw new CRM_Core_Exception(ts('Could not find a valid Activity Type ID for Inbound Email')); + $isBounceProcessing = $dao->is_default; + $targetFields = array_filter(explode(',', $dao->activity_targets)); + $assigneeFields = array_filter(explode(",", $dao->activity_assignees)); + $sourceFields = array_filter(explode(",", $dao->activity_source)); + // create an array of all of to, from, cc, bcc that are in use for this Mail Account, so we don't create contacts for emails we aren't adding to the activity. + $emailFields = array_merge($targetFields, $assigneeFields, $sourceFields); + $createContact = !($dao->is_contact_creation_disabled_if_no_match) && !$isBounceProcessing; + $bounceActivityTypeID = $activityTypeID = (int) $dao->activity_type_id; + $activityTypes = Activity::getFields(TRUE) + ->setLoadOptions(['id', 'name']) + ->addWhere('name', '=', 'activity_type_id') + ->execute()->first()['options']; + foreach ($activityTypes as $activityType) { + if ($activityType['name'] === 'Bounce') { + $bounceActivityTypeID = (int) $activityType['id']; + } + } + $bounceTypes = []; + if ($isBounceProcessing) { + $result = CRM_Core_DAO::executeQuery('SELECT * FROM civicrm_mailing_bounce_type'); + while ($result->fetch()) { + $bounceTypes[$result->id] = ['id' => $result->id, 'name' => $result->name, 'description' => $result->description, 'hold_threshold' => $result->hold_threshold]; + } } - - $config = CRM_Core_Config::singleton(); - $verpSeparator = preg_quote($config->verpSeparator ?? ''); - $twoDigitStringMin = $verpSeparator . '(\d+)' . $verpSeparator . '(\d+)'; - $twoDigitString = $twoDigitStringMin . $verpSeparator; - $threeDigitString = $twoDigitString . '(\d+)' . $verpSeparator; - - // FIXME: legacy regexen to handle CiviCRM 2.1 address patterns, with domain id and possible VERP part - $commonRegex = '/^' . preg_quote($dao->localpart ?? '') . '(b|bounce|c|confirm|o|optOut|r|reply|re|e|resubscribe|u|unsubscribe)' . $threeDigitString . '([0-9a-f]{16})(-.*)?@' . preg_quote($dao->domain ?? '') . '$/'; - $subscrRegex = '/^' . preg_quote($dao->localpart ?? '') . '(s|subscribe)' . $twoDigitStringMin . '@' . preg_quote($dao->domain ?? '') . '$/'; - - // a common-for-all-actions regex to handle CiviCRM 2.2 address patterns - $regex = '/^' . preg_quote($dao->localpart ?? '') . '(b|c|e|o|r|u)' . $twoDigitString . '([0-9a-f]{16})@' . preg_quote($dao->domain ?? '') . '$/'; - - // a tighter regex for finding bounce info in soft bounces’ mail bodies - $rpRegex = '/Return-Path:\s*' . preg_quote($dao->localpart ?? '') . '(b)' . $twoDigitString . '([0-9a-f]{16})@' . preg_quote($dao->domain ?? '') . '/'; - - // a regex for finding bound info X-Header - $rpXheaderRegex = '/X-CiviMail-Bounce: ' . preg_quote($dao->localpart ?? '') . '(b)' . $twoDigitString . '([0-9a-f]{16})@' . preg_quote($dao->domain ?? '') . '/i'; - // CiviMail in regex and Civimail in header !!! // retrieve the emails try { @@ -138,63 +118,14 @@ class CRM_Utils_Mail_EmailProcessor { // process fifty at a time, CRM-4002 while ($mails = $store->fetchNext(MAIL_BATCH_SIZE)) { foreach ($mails as $key => $mail) { - - // for every addressee: match address elements if it's to CiviMail - $matches = []; - $action = NULL; - - if ($usedfor == 1) { - foreach ($mail->to as $address) { - if (preg_match($regex, ($address->email ?? ''), $matches)) { - [$match, $action, $job, $queue, $hash] = $matches; - break; - // FIXME: the below elseifs should be dropped when we drop legacy support - } - elseif (preg_match($commonRegex, ($address->email ?? ''), $matches)) { - [$match, $action, $_, $job, $queue, $hash] = $matches; - break; - } - elseif (preg_match($subscrRegex, ($address->email ?? ''), $matches)) { - [$match, $action, $_, $job] = $matches; - break; - } - } - - // CRM-5471: if $matches is empty, it still might be a soft bounce sent - // to another address, so scan the body for ‘Return-Path: …bounce-pattern…’ - if (!$matches and preg_match($rpRegex, ($mail->generateBody() ?? ''), $matches)) { - [$match, $action, $job, $queue, $hash] = $matches; - } - - // if $matches is still empty, look for the X-CiviMail-Bounce header - // CRM-9855 - if (!$matches and preg_match($rpXheaderRegex, ($mail->generateBody() ?? ''), $matches)) { - [$match, $action, $job, $queue, $hash] = $matches; - } - // With Mandrilla, the X-CiviMail-Bounce header is produced by generateBody - // is base64 encoded - // Check all parts - if (!$matches) { - $all_parts = $mail->fetchParts(); - foreach ($all_parts as $k_part => $v_part) { - if ($v_part instanceof ezcMailFile) { - $p_file = $v_part->__get('fileName'); - $c_file = file_get_contents($p_file); - if (preg_match($rpXheaderRegex, ($c_file ?? ''), $matches)) { - [$match, $action, $job, $queue, $hash] = $matches; - } - } - } - } - - // if all else fails, check Delivered-To for possible pattern - if (!$matches and preg_match($regex, ($mail->getHeader('Delivered-To') ?? ''), $matches)) { - [$match, $action, $job, $queue, $hash] = $matches; - } - } - - // preseve backward compatibility - if ($usedfor == 0 || $is_create_activities) { + $incomingMail = new CRM_Utils_Mail_IncomingMail($mail, (string) $dao->domain, (string) $dao->localpart); + $action = $incomingMail->getAction(); + $job = $incomingMail->getJobID(); + $queue = $incomingMail->getQueueID(); + $hash = $incomingMail->getHash(); + + // preserve backward compatibility + if (!$isBounceProcessing || $is_create_activities) { // Mail account may have 'Skip emails which do not have a Case ID // or Case hash' option, if its enabled and email is not related // to cases - then we need to put email to ignored folder. @@ -204,39 +135,97 @@ class CRM_Utils_Mail_EmailProcessor { continue; } + $bounceString = ''; // if its the activities that needs to be processed .. try { - $createContact = !($dao->is_contact_creation_disabled_if_no_match ?? FALSE); - $mailParams = CRM_Utils_Mail_Incoming::parseMailingObject($mail, $createContact, FALSE); - } - catch (Exception $e) { - echo $e->getMessage(); - $store->markIgnored($key); - continue; - } - - $params = self::deprecated_activity_buildmailparams($mailParams, $emailActivityTypeId); - - $params['version'] = 3; - if (!empty($dao->activity_status)) { - $params['status_id'] = $dao->activity_status; - } + if ($incomingMail->isBounce()) { + $activityTypeID = $bounceActivityTypeID; + $bounce = CRM_Mailing_BAO_BouncePattern::match($incomingMail->getBody()); + if (!empty($bounce['bounce_type_id'])) { + $bounceType = $bounceTypes[$bounce['bounce_type_id']]; + $bounceString = ts('Bounce type: %1. %2', [1 => $bounceType['name'], 2 => $bounceType['description']]) + . '<br>' + . ts('Email will be put on hold after %1 of this type of bounce', [1 => $bounceType['hold_threshold']]) + . "\n"; + } + else { + $bounceString = ts('Bounce type not identified, email will not be put on hold') + . "\n"; + } + } + $mailParams = CRM_Utils_Mail_Incoming::parseMailingObject($mail, $incomingMail->getAttachments(), $createContact, $emailFields, [$incomingMail->getFrom()]); + $activityParams = [ + 'activity_type_id' => $activityTypeID, + 'campaign_id' => $dao->campaign_id ? (int) $dao->campaign_id : NULL, + 'status_id' => $dao->activity_status, + 'subject' => $incomingMail->getSubject(), + 'activity_date_time' => $incomingMail->getDate(), + 'details' => $bounceString . $incomingMail->getBody(), + ]; + if ($incomingMail->isVerp()) { + $activityParams['source_contact_id'] = $incomingMail->lookup('Queue', 'contact_id'); + } + else { + $activityParams['source_contact_id'] = $mailParams[$dao->activity_source][0]['id']; - $result = civicrm_api('activity', 'create', $params); + $activityContacts = [ + 'target_contact_id' => $targetFields, + 'assignee_contact_id' => $assigneeFields, + ]; + // @todo - if the function that gets/ creates emails were more sane it would return + // an array of ids rather than a mutli-value array from which the id can be + // extracted... + foreach ($activityContacts as $activityContact => $activityKeys) { + $activityParams[$activityContact] = []; + foreach ($activityKeys as $activityKey) { + if (is_array($mailParams[$activityKey])) { + foreach ($mailParams[$activityKey] as $keyValue) { + if (!empty($keyValue['id'])) { + $activityParams[$activityContact][] = $keyValue['id']; + } + } + } + } + } + } + // @todo the IncomingMail class should have `getAttachments` - retrieving from + // the email & moving to the file system should be separate to formatting + // array for api + $numAttachments = Civi::settings()->get('max_attachments_backend') ?? CRM_Core_BAO_File::DEFAULT_MAX_ATTACHMENTS_BACKEND; + for ($i = 1; $i <= $numAttachments; $i++) { + if (isset($mailParams["attachFile_$i"])) { + $activityParams["attachFile_$i"] = $mailParams["attachFile_$i"]; + } + else { + // No point looping 100 times if there's only one attachment + break; + } + } - if ($result['is_error']) { - $matches = FALSE; - echo "Failed Processing: {$mail->subject}. Reason: {$result['error_message']}\n"; - } - else { + $result = civicrm_api3('Activity', 'create', $activityParams); $matches = TRUE; - CRM_Utils_Hook::emailProcessor('activity', $params, $mail, $result); + CRM_Utils_Hook::emailProcessor('activity', $activityParams, $mail, $result); echo "Processed as Activity: {$mail->subject}\n"; } + catch (Exception $e) { + // Try again with just the bounceString as the details. + // This allows us to still process even if we hit https://lab.civicrm.org/dev/mail/issues/36 + // as tested in testBounceProcessingInvalidCharacter. + $activityParams['details'] = trim($bounceString); + try { + civicrm_api3('Activity', 'create', $activityParams); + $matches = TRUE; + } + catch (CRM_Core_Exception $e) { + echo "Failed Processing: {$mail->subject}. Reason: " . $e->getMessage() . "\n"; + $store->markIgnored($key); + continue; + } + } } - // if $matches is empty, this email is not CiviMail-bound - if (!$matches) { + // This is an awkward exit when processing is done. It probably needs revisiting + if (!$incomingMail->isVerp() && empty($matches)) { $store->markIgnored($key); continue; } @@ -246,61 +235,18 @@ class CRM_Utils_Mail_EmailProcessor { $replyTo = $mail->getHeader('Reply-To') ? $mail->getHeader('Reply-To') : ($mail->from ? $mail->from->email : ""); // handle the action by passing it to the proper API call - // FIXME: leave only one-letter cases when dropping legacy support if (!empty($action)) { $result = NULL; switch ($action) { case 'b': - case 'bounce': - $text = ''; - if ($mail->body instanceof ezcMailText) { - $text = $mail->body->text; - } - elseif ($mail->body instanceof ezcMailMultipart) { - $text = self::getTextFromMultipart($mail->body); - } - elseif ($mail->body instanceof ezcMailFile) { - $text = file_get_contents($mail->body->__get('fileName')); - } + $text = $incomingMail->getBody(); - if ( - empty($text) && - $mail->subject == "Delivery Status Notification (Failure)" - ) { - // Exchange error - CRM-9361 - foreach ($mail->body->getParts() as $part) { - if ($part instanceof ezcMailDeliveryStatus) { - foreach ($part->recipients as $rec) { - if ($rec["Status"] == "5.1.1") { - if (isset($rec["Description"])) { - $text = $rec["Description"]; - } - else { - $text = $rec["Status"] . " Delivery to the following recipients failed"; - } - break; - } - } - } - } - } - - if (empty($text)) { - // If bounce processing fails, just take the raw body. Cf. CRM-11046 - $text = $mail->generateBody(); - - // if text is still empty, lets fudge a blank text so the api call below will succeed - if (empty($text)) { - $text = ts('We could not extract the mail body from this bounce message.'); - } - } - - $params = [ + $activityParams = [ 'job_id' => $job, 'event_queue_id' => $queue, 'hash' => $hash, - 'body' => $text, + 'body' => $text ?: ts('We could not extract the mail body from this bounce message.'), 'version' => 3, // Setting is_transactional means it will rollback if // it crashes part way through creating the bounce. @@ -311,36 +257,33 @@ class CRM_Utils_Mail_EmailProcessor { // a quick hack. 'is_transactional' => 1, ]; - $result = civicrm_api('Mailing', 'event_bounce', $params); + $result = civicrm_api('Mailing', 'event_bounce', $activityParams); break; case 'c': - case 'confirm': // CRM-7921 - $params = [ + $activityParams = [ 'contact_id' => $job, 'subscribe_id' => $queue, 'hash' => $hash, 'version' => 3, ]; - $result = civicrm_api('Mailing', 'event_confirm', $params); + $result = civicrm_api('Mailing', 'event_confirm', $activityParams); break; case 'o': - case 'optOut': - $params = [ + $activityParams = [ 'job_id' => $job, 'event_queue_id' => $queue, 'hash' => $hash, 'version' => 3, ]; - $result = civicrm_api('MailingGroup', 'event_domain_unsubscribe', $params); + $result = civicrm_api('MailingGroup', 'event_domain_unsubscribe', $activityParams); break; case 'r': - case 'reply': // instead of text and HTML parts (4th and 6th params) send the whole email as the last param - $params = [ + $activityParams = [ 'job_id' => $job, 'event_queue_id' => $queue, 'hash' => $hash, @@ -350,40 +293,36 @@ class CRM_Utils_Mail_EmailProcessor { 'fullEmail' => $mail->generate(), 'version' => 3, ]; - $result = civicrm_api('Mailing', 'event_reply', $params); + $result = civicrm_api('Mailing', 'event_reply', $activityParams); break; case 'e': - case 're': - case 'resubscribe': - $params = [ + $activityParams = [ 'job_id' => $job, 'event_queue_id' => $queue, 'hash' => $hash, 'version' => 3, ]; - $result = civicrm_api('MailingGroup', 'event_resubscribe', $params); + $result = civicrm_api('MailingGroup', 'event_resubscribe', $activityParams); break; case 's': - case 'subscribe': - $params = [ + $activityParams = [ 'email' => $mail->from->email, 'group_id' => $job, 'version' => 3, ]; - $result = civicrm_api('MailingGroup', 'event_subscribe', $params); + $result = civicrm_api('MailingGroup', 'event_subscribe', $activityParams); break; case 'u': - case 'unsubscribe': - $params = [ + $activityParams = [ 'job_id' => $job, 'event_queue_id' => $queue, 'hash' => $hash, 'version' => 3, ]; - $result = civicrm_api('MailingGroup', 'event_unsubscribe', $params); + $result = civicrm_api('MailingGroup', 'event_unsubscribe', $activityParams); break; } @@ -391,7 +330,7 @@ class CRM_Utils_Mail_EmailProcessor { echo "Failed Processing: {$mail->subject}, Action: $action, Job ID: $job, Queue ID: $queue, Hash: $hash. Reason: {$result['error_message']}\n"; } else { - CRM_Utils_Hook::emailProcessor('mailing', $params, $mail, $result, $action); + CRM_Utils_Hook::emailProcessor('mailing', $activityParams, $mail, $result, $action); } } @@ -505,50 +444,4 @@ class CRM_Utils_Mail_EmailProcessor { return $text; } - /** - * @param array $result - * @param int $activityTypeID - * - * @return array - * <type> $params - */ - protected static function deprecated_activity_buildmailparams($result, $activityTypeID) { - // get ready for collecting data about activity to be created - $params = []; - - $params['activity_type_id'] = $activityTypeID; - - $params['status_id'] = 'Completed'; - if (!empty($result['from']['id'])) { - $params['source_contact_id'] = $params['assignee_contact_id'] = $result['from']['id']; - } - $params['target_contact_id'] = []; - $keys = ['to', 'cc', 'bcc']; - foreach ($keys as $key) { - if (is_array($result[$key])) { - foreach ($result[$key] as $key => $keyValue) { - if (!empty($keyValue['id'])) { - $params['target_contact_id'][] = $keyValue['id']; - } - } - } - } - $params['subject'] = $result['subject']; - $params['activity_date_time'] = $result['date']; - $params['details'] = $result['body']; - - $numAttachments = Civi::settings()->get('max_attachments_backend') ?? CRM_Core_BAO_File::DEFAULT_MAX_ATTACHMENTS_BACKEND; - for ($i = 1; $i <= $numAttachments; $i++) { - if (isset($result["attachFile_$i"])) { - $params["attachFile_$i"] = $result["attachFile_$i"]; - } - else { - // No point looping 100 times if there's only one attachment - break; - } - } - - return $params; - } - } diff --git a/civicrm/CRM/Utils/Mail/Incoming.php b/civicrm/CRM/Utils/Mail/Incoming.php index 86b80dd7335a38f31a585b780eb44ecd84908a11..fe21b726a83d146a267911419670563a131101d6 100644 --- a/civicrm/CRM/Utils/Mail/Incoming.php +++ b/civicrm/CRM/Utils/Mail/Incoming.php @@ -285,88 +285,40 @@ class CRM_Utils_Mail_Incoming { return $name . "<{$address->email}>"; } - /** - * @param $file - * - * @return array - * @throws Exception - */ - public function &parse(&$file) { - - // check that the file exists and has some content - if (!file_exists($file) || - !trim(file_get_contents($file)) - ) { - return CRM_Core_Error::createAPIError(ts('%1 does not exists or is empty', - [1 => $file] - )); - } - - // explode email to digestable format - $set = new ezcMailFileSet([$file]); - $parser = new ezcMailParser(); - $mail = $parser->parseMail($set); - - if (!$mail) { - return CRM_Core_Error::createAPIError(ts('%1 could not be parsed', - [1 => $file] - )); - } - - // since we only have one fileset - $mail = $mail[0]; - - $mailParams = self::parseMailingObject($mail); - return $mailParams; - } - /** * @param $mail - * @param $createContact - * @param $requireContact + * @param $attachments + * @param bool $createContact + * @param array $emailFields + * Which fields to process and create contacts for - subset of [from, to, cc, bcc], + * @param array $from * * @return array */ - public static function parseMailingObject(&$mail, $createContact = TRUE, $requireContact = TRUE) { - - $config = CRM_Core_Config::singleton(); - - // get ready for collecting data about this email - // and put it in a standardized format - $params = ['is_error' => 0]; - - // Sometimes $mail->from is unset because ezcMail didn't handle format - // of From header. CRM-19215. - if (!isset($mail->from)) { - if (preg_match('/^([^ ]*)( (.*))?$/', $mail->getHeader('from'), $matches)) { - $mail->from = new ezcMailAddress($matches[1], trim($matches[2])); - } - } - - $params['from'] = []; - self::parseAddress($mail->from, $field, $params['from'], $mail, $createContact); - - // we definitely need a contact id for the from address - // if we dont have one, skip this email - if ($requireContact && empty($params['from']['id'])) { - return NULL; - } - - $emailFields = ['to', 'cc', 'bcc']; + public static function parseMailingObject(&$mail, $attachments, $createContact, $emailFields, $from) { + $params = []; foreach ($emailFields as $field) { - $value = $mail->$field; - self::parseAddresses($value, $field, $params, $mail, $createContact); + // to, bcc, cc are arrays of objects, but from is an object, so make it an array of one object so we can handle it the same + if ($field === 'from') { + $value = $from; + } + else { + $value = $mail->$field; + } + $params[$field] = []; + foreach ($value as $address) { + $subParam = []; + // @todo - stop creating a complex array here - $params[$field][] is + // an array with name, email & id. The calling function only wants the + // id & does quite a bit of work to extract it.... + self::parseAddress($address, $subParam, $mail, $createContact); + $params[$field][] = $subParam; + } } - - // define other parameters - $params['subject'] = $mail->subject; - $params['date'] = date("YmdHi00", - strtotime($mail->getHeader("Date")) - ); - $attachments = []; - $params['body'] = self::formatMailPart($mail->body, $attachments); - - // format and move attachments to the civicrm area + // @todo mode this code to be a `getAttachments` function on the IncomingMail class + // which would get attachments & move the files to the civicrm area. + // The formatting to api array should go back to the calling function on + // EmailProcessor. if (!empty($attachments)) { $date = date('YmdHis'); $config = CRM_Core_Config::singleton(); @@ -395,12 +347,11 @@ class CRM_Utils_Mail_Incoming { /** * @param ezcMailAddress $address - * @param array $params * @param $subParam * @param $mail * @param $createContact */ - private static function parseAddress(&$address, &$params, &$subParam, &$mail, $createContact = TRUE) { + private static function parseAddress($address, &$subParam, &$mail, $createContact = TRUE) { // CRM-9484 if (empty($address->email)) { return; @@ -411,27 +362,9 @@ class CRM_Utils_Mail_Incoming { $contactID = self::getContactID($subParam['email'], $subParam['name'], - $createContact, - $mail + $createContact ); - $subParam['id'] = $contactID ? $contactID : NULL; - } - - /** - * @param ezcMailAddress[] $addresses - * @param $token - * @param array $params - * @param $mail - * @param $createContact - */ - public static function parseAddresses(&$addresses, $token, &$params, &$mail, $createContact = TRUE) { - $params[$token] = []; - - foreach ($addresses as $address) { - $subParam = []; - self::parseAddress($address, $params, $subParam, $mail, $createContact); - $params[$token][] = $subParam; - } + $subParam['id'] = $contactID ?: NULL; } /** @@ -442,11 +375,12 @@ class CRM_Utils_Mail_Incoming { * @param string $email * @param string $name * @param bool $create - * @param string $mail + * + * @internal core use only (only use outside this class is in core unit tests). * * @return int|null */ - public static function getContactID($email, $name, $create, &$mail) { + public static function getContactID($email, $name, $create) { $dao = CRM_Contact_BAO_Contact::matchContactOnEmail($email, 'Individual'); $contactID = NULL; diff --git a/civicrm/CRM/Utils/Mail/IncomingMail.php b/civicrm/CRM/Utils/Mail/IncomingMail.php new file mode 100644 index 0000000000000000000000000000000000000000..04eeb841b9e13bd5825e1291520e26ed1f509cad --- /dev/null +++ b/civicrm/CRM/Utils/Mail/IncomingMail.php @@ -0,0 +1,233 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +use Civi\API\EntityLookupTrait; +use Civi\Api4\MailingJob; + +/** + * Incoming mail class. + * + * @internal - this is not supported for use from outside of code. + * + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + */ +class CRM_Utils_Mail_IncomingMail { + + use EntityLookupTrait; + + /** + * @var \ezcMail + */ + private $mail; + + /** + * @var string + */ + private $action; + + /** + * @var int + */ + private $queueID; + + /** + * @var int + */ + private $jobID; + + /** + * @var string + */ + private $hash; + + /** + * @var string|null + */ + private $body; + + /** + * @return string|null + */ + public function getBody(): ?string { + return $this->body; + } + + /** + * @return array + */ + public function getAttachments(): array { + return $this->attachments; + } + + private $attachments = []; + + public function getAction() : ?string { + return $this->action; + } + + /** + * @return int|null + */ + public function getQueueID(): ?int { + return $this->queueID; + } + + /** + * @return int|null + */ + public function getJobID(): ?int { + return $this->jobID; + } + + /** + * @return string|null + */ + public function getHash(): ?string { + return $this->hash; + } + + /** + * @return ezcMailAddress + */ + public function getFrom(): ezcMailAddress { + return $this->mail->from; + } + + /** + * @return string + */ + public function getSubject(): string { + return (string) $this->mail->subject; + } + + public function getDate(): string { + return date('YmdHis', strtotime($this->mail->getHeader('Date'))); + } + + /** + * Is this a verp email. + * + * If the regex didn't find a match then no. + * + * @return bool + */ + public function isVerp(): bool { + return (bool) $this->action; + } + + /** + * Is this a bounce email. + * + * At the moment we are only able to detect verp bounces but maybe in the future... + * + * @return bool + */ + public function isBounce() : bool { + return $this->getAction() === 'b'; + } + + /** + * @param \ezcMail $mail + * @param string $emailDomain + * @param string $emailLocalPart + * + * @throws \ezcBasePropertyNotFoundException + * @throws \CRM_Core_Exception + */ + public function __construct(ezcMail $mail, string $emailDomain, string $emailLocalPart) { + // Sometimes $mail->from is unset because ezcMail didn't handle format + // of From header. CRM-19215 (https://issues.civicrm.org/jira/browse/CRM-19215). + if (!isset($mail->from)) { + if (preg_match('/^([^ ]*)( (.*))?$/', $mail->getHeader('from'), $matches)) { + $mail->from = new ezcMailAddress($matches[1], trim($matches[2])); + } + } + $this->mail = $mail; + $this->body = CRM_Utils_Mail_Incoming::formatMailPart($mail->body, $this->attachments); + + $verpSeparator = preg_quote(\Civi::settings()->get('verpSeparator') ?: ''); + $emailDomain = preg_quote($emailDomain); + $emailLocalPart = preg_quote($emailLocalPart); + $twoDigitStringMin = $verpSeparator . '(\d+)' . $verpSeparator . '(\d+)'; + $twoDigitString = $twoDigitStringMin . $verpSeparator; + + // a common-for-all-actions regex to handle CiviCRM 2.2 address patterns + $regex = '/^' . $emailLocalPart . '(b|c|e|o|r|u)' . $twoDigitString . '([0-9a-f]{16})@' . $emailDomain . '$/'; + + // a tighter regex for finding bounce info in soft bounces’ mail bodies + $rpRegex = '/Return-Path:\s*' . $emailLocalPart . '(b)' . $twoDigitString . '([0-9a-f]{16})@' . $emailDomain . '/'; + + // a regex for finding bound info X-Header + $rpXHeaderRegex = '/X-CiviMail-Bounce: ' . $emailLocalPart . '(b)' . $twoDigitString . '([0-9a-f]{16})@' . $emailDomain . '/i'; + // CiviMail in regex and Civimail in header !!! + $matches = NULL; + foreach ($this->mail->to as $address) { + if (preg_match($regex, ($address->email ?? ''), $matches)) { + [, $this->action, $this->jobID, $this->queueID, $this->hash] = $matches; + break; + } + } + + // CRM-5471: if $matches is empty, it still might be a soft bounce sent + // to another address, so scan the body for ‘Return-Path: …bounce-pattern…’ + if (!$matches && preg_match($rpRegex, ($mail->generateBody() ?? ''), $matches)) { + [, $this->action, $this->jobID, $this->queueID, $this->hash] = $matches; + } + + // if $matches is still empty, look for the X-CiviMail-Bounce header + // CRM-9855 + if (!$matches && preg_match($rpXHeaderRegex, ($mail->generateBody() ?? ''), $matches)) { + [, $this->action, $this->jobID, $this->queueID, $this->hash] = $matches; + } + // With Mandrill, the X-CiviMail-Bounce header is produced by generateBody + // is base64 encoded + // Check all parts + if (!$matches) { + $all_parts = $mail->fetchParts(); + foreach ($all_parts as $v_part) { + if ($v_part instanceof ezcMailFile) { + $p_file = $v_part->__get('fileName'); + $c_file = file_get_contents($p_file); + if (preg_match($rpXHeaderRegex, ($c_file ?? ''), $matches)) { + [, $this->action, $this->jobID, $this->queueID, $this->hash] = $matches; + } + } + } + } + + // if all else fails, check Delivered-To for possible pattern + if (!$matches && preg_match($regex, ($mail->getHeader('Delivered-To') ?? ''), $matches)) { + [, $this->action, $this->jobID, $this->queueID, $this->hash] = $matches; + } + if ($this->isVerp()) { + $queue = CRM_Mailing_Event_BAO_MailingEventQueue::verify($this->getJobID(), $this->getQueueID(), $this->getHash()); + if (!$queue) { + throw new CRM_Core_Exception('Contact could not be found from civimail response'); + } + $this->define('Queue', 'Queue', [ + 'id' => $queue->id, + 'hash' => $queue->hash, + 'contact_id' => $queue->contact_id, + 'job_id' => $queue->contact_id, + ]); + $this->define('Mailing', 'Mailing', [ + 'id' => MailingJob::get(FALSE) + ->addWhere('id', '=', $this->getJobID()) + ->addSelect('mailing_id') + ->execute() + ->first()['mailing_id'], + ]); + } + + } + +} diff --git a/civicrm/CRM/Utils/Migrate/Import.php b/civicrm/CRM/Utils/Migrate/Import.php index 33154adbaf2346502e2f3234e7f6c2d14e00262c..866fa3c39259af5b0540a706cb62c946898b55db 100644 --- a/civicrm/CRM/Utils/Migrate/Import.php +++ b/civicrm/CRM/Utils/Migrate/Import.php @@ -295,7 +295,7 @@ AND v.name = %1 case 2: // ParticipantEventName - $condition = "( is_template IS NULL OR is_template != 1 ) AND title IN( '{$optValues}' )"; + $condition = "is_template = 0 AND title IN( '{$optValues}' )"; $optionIDs = CRM_Event_PseudoConstant::event(NULL, FALSE, $condition); break; diff --git a/civicrm/CRM/Utils/SQL/Select.php b/civicrm/CRM/Utils/SQL/Select.php index 3915c117d1f82a356c39173dcb90003f6ced4b1d..2e93386531340146c5f35960c5bf679c5f8497d6 100644 --- a/civicrm/CRM/Utils/SQL/Select.php +++ b/civicrm/CRM/Utils/SQL/Select.php @@ -647,4 +647,11 @@ class CRM_Utils_SQL_Select extends CRM_Utils_SQL_BaseParamQuery { $freeDAO, $i18nRewrite, $trapException); } + /** + * @return string + */ + public function getFrom(): string { + return $this->from; + } + } diff --git a/civicrm/CRM/Utils/System.php b/civicrm/CRM/Utils/System.php index 5570eff8cb161d3cb9cd163c1eaee7c1260c125d..c70d83af3ad08c403085166c22078637415d9f8f 100644 --- a/civicrm/CRM/Utils/System.php +++ b/civicrm/CRM/Utils/System.php @@ -39,6 +39,7 @@ * @method static void appendCoreResources(\Civi\Core\Event\GenericHookEvent $e) Callback for hook_civicrm_coreResourceList. * @method static void alterAssetUrl(\Civi\Core\Event\GenericHookEvent $e) Callback for hook_civicrm_getAssetUrl. * @method static bool shouldExitAfterFatal() Should the current execution exit after a fatal error? + * @method static string|null currentPath() Path of the current page e.g. 'civicrm/contact/view' */ class CRM_Utils_System { @@ -433,17 +434,6 @@ class CRM_Utils_System { return "<a href=\"$url\">$text</a>"; } - /** - * Path of the current page e.g. 'civicrm/contact/view' - * - * @return string|null - * the current menu path - */ - public static function currentPath() { - $config = CRM_Core_Config::singleton(); - return isset($_GET[$config->userFrameworkURLVar]) ? trim($_GET[$config->userFrameworkURLVar], '/') : NULL; - } - /** * Compose a URL. This is a wrapper for `url()` which is optimized for use in Smarty. * diff --git a/civicrm/CRM/Utils/System/Backdrop.php b/civicrm/CRM/Utils/System/Backdrop.php index d8d1b8636f66a390c4fd2a12204a5740bcff6567..98b6a601bcf10dd1acea40436c066360aeb766f9 100644 --- a/civicrm/CRM/Utils/System/Backdrop.php +++ b/civicrm/CRM/Utils/System/Backdrop.php @@ -490,7 +490,7 @@ AND u.status = 1 global $language; $langcode = substr($civicrm_language, 0, 2); - $languages = language_list(FALSE, TRUE); + $languages = language_list(); if (isset($languages[$langcode])) { $language = $languages[$langcode]; diff --git a/civicrm/CRM/Utils/System/Base.php b/civicrm/CRM/Utils/System/Base.php index c78f72c0c97fcde50673db8c264b21a6a3d71e3e..83490874f9d94a060108e3983c73b19df2954d88 100644 --- a/civicrm/CRM/Utils/System/Base.php +++ b/civicrm/CRM/Utils/System/Base.php @@ -136,6 +136,42 @@ abstract class CRM_Utils_System_Base { $forceBackend = FALSE ); + /** + * Compose the URL for a page/route. + * + * @internal + * @see \Civi\Core\Url::__toString + * @param string $scheme + * Ex: 'frontend', 'backend', 'service' + * @param string $path + * Ex: 'civicrm/event/info' + * @param string|null $query + * Ex: 'id=100&msg=Hello+world' + * @return string|null + * Absolute URL, or NULL if scheme is unsupported. + * Ex: 'https://subdomain.example.com/index.php?q=civicrm/event/info&id=100&msg=Hello+world' + */ + public function getRouteUrl(string $scheme, string $path, ?string $query): ?string { + switch ($scheme) { + case 'frontend': + return $this->url($path, $query, TRUE, NULL, TRUE, FALSE, FALSE); + + case 'service': + // The original `url()` didn't have an analog for "service://". But "frontend" is probably the closer bet? + // Or maybe getNotifyUrl() makes sense? + return $this->url($path, $query, TRUE, NULL, TRUE, FALSE, FALSE); + + case 'backend': + return $this->url($path, $query, TRUE, NULL, FALSE, TRUE, FALSE); + + // If the UF defines other major UI/URL conventions, then you might hypothetically handle + // additional schemes. + + default: + return NULL; + } + } + /** * Return the Notification URL for Payments. * @@ -172,6 +208,17 @@ abstract class CRM_Utils_System_Base { return $this->url($path, $query, $absolute, $fragment, $frontend, $forceBackend); } + /** + * Path of the current page e.g. 'civicrm/contact/view' + * + * @return string|null + * the current menu path + */ + public static function currentPath() { + $config = CRM_Core_Config::singleton(); + return isset($_GET[$config->userFrameworkURLVar]) ? trim($_GET[$config->userFrameworkURLVar], '/') : NULL; + } + /** * Authenticate the user against the CMS db. * diff --git a/civicrm/CRM/Utils/System/Standalone.php b/civicrm/CRM/Utils/System/Standalone.php index c0070e368134df06346e3e41aeab4f614655015c..6c18d7b4d688aed8095162fcdb45ffa870b544da 100644 --- a/civicrm/CRM/Utils/System/Standalone.php +++ b/civicrm/CRM/Utils/System/Standalone.php @@ -205,6 +205,18 @@ class CRM_Utils_System_Standalone extends CRM_Utils_System_Base { } } + /** + * Path of the current page e.g. 'civicrm/contact/view' + * + * @return string|null + * the current menu path + */ + public static function currentPath() { + $path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); + $path = trim($path, '/'); + return $path; + } + /** * @inheritDoc * Authenticate the user against the CMS db. @@ -560,7 +572,7 @@ class CRM_Utils_System_Standalone extends CRM_Utils_System_Base { */ public function getCMSPermissionsUrlParams() { if ($this->missingStandaloneExtension()) { - return ['ufAccessURL' => '/fixme/standalone/permissions/url/params']; + return ['ufAccessURL' => '/civicrm/admin/roles']; } return Security::singleton()->getCMSPermissionsUrlParams(); } diff --git a/civicrm/CRM/Utils/System/WordPress.php b/civicrm/CRM/Utils/System/WordPress.php index a8ec22789340a505b5ba9b5bc5face6b9604095a..d4da15e4ad4a8b230919e646c9a7128b3587207a 100644 --- a/civicrm/CRM/Utils/System/WordPress.php +++ b/civicrm/CRM/Utils/System/WordPress.php @@ -300,7 +300,7 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { $forceBackend = FALSE ) { $config = CRM_Core_Config::singleton(); - $script = ''; + $frontend_url = ''; $separator = '&'; $fragment = isset($fragment) ? ('#' . $fragment) : ''; $path = CRM_Utils_String::stripPathChars($path); @@ -318,8 +318,8 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { // Try and find the "calling" page/post. global $post; if ($post) { - $script = get_permalink($post->ID); - if ($config->wpBasePage == $post->post_name) { + $frontend_url = get_permalink($post->ID); + if (civi_wp()->basepage->is_match($post->ID)) { $basepage = TRUE; } } @@ -329,7 +329,7 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { // Get the Base Page URL for building front-end URLs. if ($frontend && !$forceBackend) { - $script = $this->getBasePageUrl(); + $frontend_url = $this->getBasePageUrl(); $basepage = TRUE; } @@ -339,20 +339,30 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { $base = $this->getBaseUrl($absolute, $frontend, $forceBackend); // Overwrite base URL if we already have a front-end URL. - if (!$forceBackend && $script != '') { - $base = $script; + if (!$forceBackend && $frontend_url != '') { + $base = $frontend_url; } $queryParts = []; $admin_request = ((is_admin() && !$frontend) || $forceBackend); + /** + * Filter the Base URL. + * + * @since 5.66 + * + * @param str $base The Base URL. + * @param bool $admin_request True if building an admin URL, false otherwise. + */ + $base = apply_filters('civicrm/core/url/base', $base, $admin_request); + if ( // If not using Clean URLs. !$config->cleanURL // Or requesting an admin URL. || $admin_request // Or this is a Shortcode. - || (!$basepage && $script != '') + || (!$basepage && $frontend_url != '') ) { // Build URL according to pre-existing logic. @@ -431,37 +441,7 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { * The Base Page URL, or false on failure. */ public function getBasePageUrl() { - static $basepage_url = ''; - if ($basepage_url === '') { - - // Get the Base Page config setting. - $config = CRM_Core_Config::singleton(); - $basepage_slug = $config->wpBasePage; - - // Did we get a value? - if (!empty($basepage_slug)) { - - // Query for our Base Page. - $pages = get_posts([ - 'post_type' => 'page', - 'name' => strtolower($basepage_slug), - 'post_status' => 'publish', - 'posts_per_page' => 1, - ]); - - // Find the Base Page object and set the URL. - if (!empty($pages) && is_array($pages)) { - $basepage = array_pop($pages); - if ($basepage instanceof WP_Post) { - $basepage_url = get_permalink($basepage->ID); - } - } - - } - - } - - return $basepage_url; + return civi_wp()->basepage->url_get(); } /** @@ -636,11 +616,14 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { * @inheritDoc */ public function getUFLocale() { - // Bail early if method is called when WordPress isn't bootstrapped. - // Additionally, the function checked here is located in pluggable.php - // and is required by wp_get_referer() - so this also bails early if it is - // called too early in the request lifecycle. - // @see https://core.trac.wordpress.org/ticket/25294 + /* + * Bail early if method is called when WordPress isn't bootstrapped. + * Additionally, the function checked here is located in pluggable.php + * and is required by wp_get_referer() - so this also bails early if it is + * called too early in the request lifecycle. + * + * @see https://core.trac.wordpress.org/ticket/25294 + */ if (!function_exists('wp_validate_redirect')) { return NULL; } @@ -662,28 +645,16 @@ class CRM_Utils_System_WordPress extends CRM_Utils_System_Base { // Default to WordPress locale. $locale = get_locale(); - // Maybe override with the locale that Polylang reports. - if (function_exists('pll_current_language')) { - $pll_locale = pll_current_language('locale'); - if (!empty($pll_locale)) { - $locale = $pll_locale; - } - } - - // Maybe override with the locale that WPML reports. - elseif (defined('ICL_LANGUAGE_CODE')) { - $languages = apply_filters('wpml_active_languages', NULL); - foreach ($languages as $language) { - if ($language['active']) { - $locale = $language['default_locale']; - break; - } - } - } - - // TODO: Set locale for other WordPress plugins. - // @see https://wordpress.org/plugins/tags/multilingual/ - // A hook would be nice here. + /** + * Filter the default WordPress locale. + * + * The CiviCRM-WordPress plugin supports Polylang and WPML via this filter. + * + * @since 5.66 + * + * @param str $locale The WordPress locale. + */ + $locale = apply_filters('civicrm/core/locale', $locale); } diff --git a/civicrm/Civi.php b/civicrm/Civi.php index d582bba2b080bb307bccccb276862de803c7b751..7c8684554188e89fe8077da75e06f48dcc240b9d 100644 --- a/civicrm/Civi.php +++ b/civicrm/Civi.php @@ -218,4 +218,89 @@ class Civi { return \Civi\Core\Container::getBootService('settings_manager')->getBagByDomain($domainID); } + /** + * Construct a URL based on a logical service address. For example: + * + * Civi::url('frontend://civicrm/user?reset=1'); + * + * Civi::url() + * ->setScheme('frontend') + * ->setPath(['civicrm', 'user']) + * ->setQuery(['reset' => 1]) + * + * URL building follows a few rules: + * + * 1. You may initialize with a baseline URL. + * 2. The scheme indicates the general type of URL ('frontend://', 'backend://', 'asset://', 'assetBuilder://'). + * 3. The result object provides getters, setters, and adders (e.g. `getScheme()`, `setPath(...)`, `addQuery(...)`) + * 4. Strings are raw. Arrays are auto-encoded. (`addQuery('name=John+Doughnut')` or `addQuery(['name' => 'John Doughnut'])`) + * 5. You may use variable expressions (`id=[contact]&gid=[profile]`). + * 6. The URL can be cast to string (aka `__toString()`). + * + * If you are converting from `CRM_Utils_System::url()` to `Civi::url()`, then be sure to: + * + * - Pay attention to the scheme (eg 'current://' vs 'frontend://') + * - Pay attention to HTML escaping, as the behavior changed: + * - Civi::url() returns plain URLs (eg "id=100&gid=200") by default + * - CRM_Utils_System::url() returns HTML-escaped URLs (eg "id=100&gid=200") by default + * + * Here are several examples: + * + * Ex: Link to constituent's dashboard (on frontend UI or backend UI -- based on the active scheme of current page-view) + * $url = Civi::url('current://civicrm/user?reset=1'); + * $url = Civi::url('//civicrm/user?reset=1'); + * + * Ex: Link to constituent's dashboard (with method calls - good for dynamic options) + * $url = Civi::url('frontend:') + * ->setPath('civicrm/user') + * ->addQuery(['reset' => 1]); + * + * Ex: Link to constituent's dashboard (with quick flags: absolute URL, SSL required, HTML escaping) + * $url = Civi::url('frontend://civicrm/user?reset=1', 'ash'); + * + * Ex: Link to constituent's dashboard (with method flags - good for dynamic options) + * $url = Civi::url('frontend://civicrm/user?reset=1') + * ->setPreferFormat('absolute') + * ->setSsl(TRUE) + * ->setHtmlEscape(TRUE); + * + * Ex: Link to a dynamically generated asset-file. + * $url = Civi::url('assetBuilder://crm-l10n.js?locale=en_US'); + * + * Ex: Link to a static asset (resource-file) in one of core's configurable paths. + * $url = Civi::url('[civicrm.root]/js/Common.js'); + * + * Ex: Link to a static asset (resource-file) in an extension. + * $url = Civi::url('ext://org.civicrm.search_kit/css/crmSearchTasks.css'); + * + * Ex: Link with variable substitution + * $url = Civi::url('frontend://civicrm/ajax/api4/[entity]/[action]') + * ->addVars(['entity' => 'Foo', 'action' => 'bar']); + * + * @param string|null $logicalUri + * Logical URI. The scheme of the URI may be one of: + * - 'frontend://' (Front-end page-route for constituents) + * - 'backend://' (Back-end page-route for staff) + * - 'service://' (Web-service page-route for automated integrations; aka webhooks and IPNs) + * - 'current://' (Whichever UI is currently active) + * - 'default://' (Whichever UI is recorded in the metadata) + * - 'asset://' (Static asset-file; see \Civi::paths()) + * - 'assetBuilder://' (Dynamically-generated asset-file; see \Civi\Core\AssetBuilder) + * - 'ext://' (Static asset-file provided by an extension) + * An empty scheme (`//hello.txt`) is equivalent to `current://hello.txt`. + * @param string|null $flags + * List of flags. Some combination of the following: + * - 'a': absolute (aka `setPreferFormat('absolute')`) + * - 'r': relative (aka `setPreferFormat('relative')`) + * - 'h': html (aka `setHtmlEscape(TRUE)`) + * - 't': text (aka `setHtmlEscape(FALSE)`) + * - 's': ssl (aka `setSsl(TRUE)`) + * - 'c': cache code for resources (aka Civi::resources()->addCacheCode()) + * @return \Civi\Core\Url + * URL object which may be modified or rendered as text. + */ + public static function url(?string $logicalUri = NULL, ?string $flags = NULL): \Civi\Core\Url { + return new \Civi\Core\Url($logicalUri, $flags); + } + } diff --git a/civicrm/Civi/API/EntityLookupTrait.php b/civicrm/Civi/API/EntityLookupTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..7f452a3c2a0d7712b372d63761a45642297f62d9 --- /dev/null +++ b/civicrm/Civi/API/EntityLookupTrait.php @@ -0,0 +1,116 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ +namespace Civi\API; + +trait EntityLookupTrait { + + /** + * Array of defined entity identifiers. + * + * @var array + */ + private $entityLookupDefinitions = []; + + /** + * Array of defined entity values. + * + * @var array + */ + private $entityLookupValues = []; + + /** + * Defines a record so its values can be retrieved using `$this->lookup()` + * + * @param string $apiEntityName + * @param string $nickname + * Handle to use to retrieve values with `$this->lookup()` + * @param array $identifier + * A unique key or combination of keys to uniquely identify the record (usually id) + * Most commonly looks like `['id' => 123]` + */ + protected function define(string $apiEntityName, string $nickname, array $identifier): void { + $this->entityLookupDefinitions[$nickname] = [ + 'entityName' => $apiEntityName, + 'identifier' => $identifier, + ]; + $this->entityLookupValues[$nickname] = []; + } + + /** + * Check if an entity can be looked up + * + * @param string $nickname + * @return bool + */ + public function isDefined(string $nickname): bool { + return !is_null($this->getDefinition($nickname)); + } + + /** + * Retrieve entity definition (entityName string, identifier [keys/values]) + * + * @param string $nickname + * @return array{entityName: string, identifier: array}|null + */ + protected function getDefinition(string $nickname): ?array { + return $this->entityLookupDefinitions[$nickname] ?? NULL; + } + + /** + * Retrieve a field value for a defined entity + * + * @param string $nickname + * Handle set by `$this->define()` + * @param string $fieldName + * @return mixed + * @throws \CRM_Core_Exception + */ + public function lookup(string $nickname, string $fieldName) { + $definition = $this->getDefinition($nickname); + if (!$definition) { + throw new \CRM_Core_Exception(sprintf('Cannot lookup entity "%s" before it has been defined.', $nickname)); + } + // Simply return an id - no need for any queries + if (isset($definition['identifier'][$fieldName])) { + return $definition['identifier'][$fieldName]; + } + // Return stored value from previous lookup + if (array_key_exists($fieldName, $this->entityLookupValues[$nickname])) { + return $this->entityLookupValues[$nickname][$fieldName]; + } + $params = [ + 'select' => [$fieldName], + 'where' => [], + 'checkPermissions' => FALSE, + ]; + foreach ($definition['identifier'] as $key => $val) { + $params['where'][] = [$key, '=', $val]; + } + // Initial load - prefetch all core fields to reduce # of subsequent queries + if (!$this->entityLookupValues[$nickname]) { + $params['select'][] = '*'; + // Contact email is commonly needed by forms so prefetch it as well + if ($definition['entityName'] === 'Contact') { + $params['select'][] = 'email_primary.*'; + } + } + // If requesting a join or a custom field, prefetch all using `select 'join_entity.*'` + if (str_contains($fieldName, '.')) { + $parts = explode('.', $fieldName); + $parts[count($parts) - 1] = '*'; + $params['select'][] = implode('.', $parts); + } + $retrieved = civicrm_api4($definition['entityName'], 'get', $params)->single(); + $this->entityLookupValues[$nickname] += $retrieved; + return $this->entityLookupValues[$nickname][$fieldName] ?? NULL; + } + +} diff --git a/civicrm/Civi/API/ExternalBatch.php b/civicrm/Civi/API/ExternalBatch.php index f9ea3ae69cf271ebb7c66429998fce78fe170722..5a883950763a8a330f932ae766c4b9b75ef9ad9c 100644 --- a/civicrm/Civi/API/ExternalBatch.php +++ b/civicrm/Civi/API/ExternalBatch.php @@ -217,7 +217,7 @@ class ExternalBatch { $env = array_merge($this->env, [ 'CIVICRM_SETTINGS' => $this->settingsPath, ]); - return new Process($command, $this->root, $env); + return Process::fromShellCommandline($command, $this->root, $env); } /** diff --git a/civicrm/Civi/API/Kernel.php b/civicrm/Civi/API/Kernel.php index 8e67c3142c66f65d183e6309bb70d5df43172253..9630e8c60bbeb060571819f81224fe76d5a76b36 100644 --- a/civicrm/Civi/API/Kernel.php +++ b/civicrm/Civi/API/Kernel.php @@ -34,9 +34,7 @@ class Kernel { /** * @param \Civi\Core\CiviEventDispatcherInterface $dispatcher - * The event dispatcher which receives kernel events. - * @param array $apiProviders - * Array of ProviderInterface. + * @param \Civi\API\Provider\ProviderInterface[] $apiProviders */ public function __construct($dispatcher, $apiProviders = []) { $this->apiProviders = $apiProviders; @@ -271,14 +269,12 @@ class Kernel { /** * @param int $version * API version. - * @return array - * Array<string>. + * @return string[] */ public function getEntityNames($version) { // Question: Would it better to eliminate $this->apiProviders and just use $this->dispatcher? $entityNames = []; foreach ($this->getApiProviders() as $provider) { - /** @var \Civi\API\Provider\ProviderInterface $provider */ $entityNames = array_merge($entityNames, $provider->getEntityNames($version)); } $entityNames = array_unique($entityNames); @@ -291,14 +287,12 @@ class Kernel { * API version. * @param string $entity * API entity. - * @return array - * Array<string> + * @return string[] */ public function getActionNames($version, $entity) { // Question: Would it better to eliminate $this->apiProviders and just use $this->dispatcher? $actionNames = []; foreach ($this->getApiProviders() as $provider) { - /** @var \Civi\API\Provider\ProviderInterface $provider */ $actionNames = array_merge($actionNames, $provider->getActionNames($version, $entity)); } $actionNames = array_unique($actionNames); @@ -321,7 +315,7 @@ class Kernel { if (!empty($apiRequest['params']['debug'])) { $data['trace'] = $e->getTraceAsString(); } - return $this->createError($e->getMessage(), $data, $apiRequest, $e->getCode()); + return $this->createError($e->getMessage(), $data, $apiRequest); } /** @@ -336,9 +330,7 @@ class Kernel { */ public function formatApiException($e, $apiRequest) { $data = $e->getExtraParams(); - $errorCode = $e->getCode(); if (($data['exception'] ?? NULL) instanceof \DB_Error) { - $errorCode = $e->getDBErrorMessage(); $data['sql'] = $e->getSQL(); $data['debug_info'] = $e->getUserInfo(); } @@ -346,14 +338,14 @@ class Kernel { $data['entity'] = $apiRequest['entity'] ?? NULL; $data['action'] = $apiRequest['action'] ?? NULL; - if (\CRM_Utils_Array::value('debug', \CRM_Utils_Array::value('params', $apiRequest)) + if (!empty($apiRequest['params']['debug']) // prevent recursion && empty($data['trace']) ) { $data['trace'] = $e->getTraceAsString(); } - return $this->createError($e->getMessage(), $data, $apiRequest, $errorCode); + return $this->createError($e->getMessage(), $data, $apiRequest); } /** @@ -397,15 +389,11 @@ class Kernel { * Error data. * @param array $apiRequest * The full description of the API request. - * @param mixed $code - * Doesn't appear to be used. * * @throws \CRM_Core_Exception * @return array - * Array<type>. */ - public function createError($msg, $data, $apiRequest, $code = NULL) { - // FIXME what to do with $code? + public function createError($msg, $data, $apiRequest) { if ($msg === 'DB Error: constraint violation' || substr($msg, 0, 9) == 'DB Error:' || $msg == 'DB Error: already exists') { try { $fields = _civicrm_api3_api_getfields($apiRequest); @@ -448,15 +436,14 @@ class Kernel { } /** - * @return array<ProviderInterface> + * @return \Civi\API\Provider\ProviderInterface[] */ public function getApiProviders() { return $this->apiProviders; } /** - * @param array $apiProviders - * Array<ProviderInterface>. + * @param \Civi\API\Provider\ProviderInterface[] $apiProviders * @return Kernel */ public function setApiProviders($apiProviders) { diff --git a/civicrm/Civi/ActionSchedule/Mapping.php b/civicrm/Civi/ActionSchedule/Mapping.php new file mode 100644 index 0000000000000000000000000000000000000000..82f18404c13bec5878a5e166c5016c86af44e612 --- /dev/null +++ b/civicrm/Civi/ActionSchedule/Mapping.php @@ -0,0 +1,4 @@ +<?php + +// Empty file to ensure the old one is overwritten on Joomla! installs. +// It otherwise causes Declaration of Civi\\ActionSchedule\\Mapping::getValueHeader() must be compatible with Civi\\ActionSchedule\\MappingInterface::getValueHeader(): diff --git a/civicrm/Civi/ActionSchedule/MappingBase.php b/civicrm/Civi/ActionSchedule/MappingBase.php index 66391b7a10c41d12edd7537895f89548eff2c0fe..419f5c611435a6f87c7d837a4e72785c8f25eb29 100644 --- a/civicrm/Civi/ActionSchedule/MappingBase.php +++ b/civicrm/Civi/ActionSchedule/MappingBase.php @@ -22,6 +22,10 @@ use Civi\Core\Service\AutoSubscriber; */ abstract class MappingBase extends AutoSubscriber implements MappingInterface { + public function getId() { + return $this->getName(); + } + public static function getSubscribedEvents(): array { return [ 'civi.actionSchedule.getMappings' => 'onRegisterActionMappings', @@ -37,7 +41,7 @@ abstract class MappingBase extends AutoSubscriber implements MappingInterface { $registrations->register(new static()); } - public function getEntityTable(): string { + public function getEntityTable(\CRM_Core_DAO_ActionSchedule $actionSchedule): string { return \CRM_Core_DAO_AllCoreTables::getTableForEntityName($this->getEntityName()); } @@ -48,30 +52,44 @@ abstract class MappingBase extends AutoSubscriber implements MappingInterface { */ public function getEntity(): string { \CRM_Core_Error::deprecatedFunctionWarning('getEntityTable'); - return $this->getEntityTable(); + return \CRM_Core_DAO_AllCoreTables::getTableForEntityName($this->getEntityName()); } public function getLabel(): string { return CoreUtil::getInfoItem($this->getEntityName(), 'title') ?: ts('Unknown'); } - public function getValueHeader(): string { - return $this->getLabel(); + public static function getLimitToOptions(): array { + return [ + [ + 'id' => 1, + 'name' => 'limit', + 'label' => ts('Limit to'), + ], + [ + 'id' => 2, + 'name' => 'add', + 'label' => ts('Also include'), + ], + ]; } public function getRecipientListing($recipientType): array { return []; } - public function getRecipientTypes(): array { - return []; + public static function getRecipientTypes(): array { + return [ + 'manual' => ts('Choose Recipient(s)'), + 'group' => ts('Select Group'), + ]; } - public function validateSchedule($schedule): array { - return []; + public function checkAccess(array $entityValue): bool { + return FALSE; } - public function getDateFields(): array { + public function getDateFields(?array $entityValue = NULL): array { return []; } @@ -83,4 +101,10 @@ abstract class MappingBase extends AutoSubscriber implements MappingInterface { return TRUE; } + final public function applies(string $entity, string $action, array $values = []) { + return $entity === 'ActionSchedule' && + in_array($action, ['create', 'get', 'update', 'save'], TRUE) && + $this->getId() == ($values['mapping_id'] ?? NULL); + } + } diff --git a/civicrm/Civi/ActionSchedule/MappingInterface.php b/civicrm/Civi/ActionSchedule/MappingInterface.php index 42fe2e8a1f32efe62026617e765680248ba784ab..609d40f7f1c50f7e450149f69c12937f0e66a095 100644 --- a/civicrm/Civi/ActionSchedule/MappingInterface.php +++ b/civicrm/Civi/ActionSchedule/MappingInterface.php @@ -11,25 +11,37 @@ namespace Civi\ActionSchedule; +use Civi\Api4\Service\Spec\Provider\Generic\SpecProviderInterface; + /** * Interface MappingInterface * @package Civi\ActionSchedule */ -interface MappingInterface { +interface MappingInterface extends SpecProviderInterface { /** * Unique identifier of this mapping type. * - * Should return a "machine name" style string (older implementations return an int -- don't follow their example). + * Should return a "machine_name" style string (same output as `getName()`) + * Note: Some legacy implementations return an int. Don't follow those examples. * @return string|int */ public function getId(); + /** + * Unique name of this mapping type. + * + * Should return a "machine_name" style string (should be the same as `getId()`). + * @return string + */ + public function getName(): string; + /** * Name of the table belonging to the main entity e.g. `civicrm_activity` + * @param \CRM_Core_DAO_ActionSchedule $actionSchedule * @return string */ - public function getEntityTable(): string; + public function getEntityTable(\CRM_Core_DAO_ActionSchedule $actionSchedule): string; /** * Main entity name e.g. `Activity` @@ -44,84 +56,72 @@ interface MappingInterface { public function getLabel(); /** - * Label of the primary filter field on the form, e.g. "Activity Type" - * @return string - */ - public function getValueHeader(): string; - - /** - * Get a printable label to use as the header on the 'status' filter. - * - * @return string + * Get option list for the `entity_value` field. */ - public function getStatusHeader(): string; + public function getValueLabels(): array; /** - * Get a list of value options. + * Get option list for the `entity_status` field. * - * @return array - * Array(string $value => string $label). - * Ex: array(123 => 'Phone Call', 456 => 'Meeting'). + * @param array|null $entityValue + * Selected value(s) of the `entity_value` field. */ - public function getValueLabels(): array; + public function getStatusLabels(?array $entityValue): array; /** - * Get a list of status options. + * Get option list for `start_action_date` & `end_date` fields. * - * @param string|int $value - * The list of status options may be contingent upon the selected filter value. - * This is the selected filter value. + * @param array|null $entityValue + * Selected value(s) of the `entity_value` field. * @return array - * Array(string $value => string $label). - * Ex: Array(123 => 'Completed', 456 => 'Scheduled'). */ - public function getStatusLabels($value): array; + public function getDateFields(?array $entityValue = NULL): array; /** - * Get a list of available date fields. + * Get the option list for `limit_to` (non-associative format) * * @return array - * Array(string $fieldName => string $fieldLabel). */ - public function getDateFields(): array; + public static function getLimitToOptions(): array; /** - * Get a list of recipient types. + * Get option list for `recipient` field. * * Note: A single schedule may filter on *zero* or *one* recipient types. * When an admin chooses a value, it's stored in $schedule->recipient. * * @return array - * array(string $value => string $label). - * Ex: array('assignee' => 'Activity Assignee'). + * Ex: ['assignee' => 'Activity Assignee', ...]. */ - public function getRecipientTypes(): array; + public static function getRecipientTypes(): array; /** - * Get a list of recipients which match the given type. - * - * Note: A single schedule may filter on *multiple* recipients. - * When an admin chooses value(s), it's stored in $schedule->recipient_listing. + * Get option list for `recipient_listing` field. * * @param string $recipientType - * Ex: 'participant_role'. + * Value of `recipient` field * @return array - * Array(mixed $name => string $label). - * Ex: array(1 => 'Attendee', 2 => 'Volunteer'). + * Ex: [1 => 'Attendee', 2 => 'Volunteer', ...]. * @see getRecipientTypes */ public function getRecipientListing($recipientType): array; /** - * Determine whether a schedule based on this mapping is sufficiently - * complete. + * Check if the user has permission to create a reminder for given `entity_value`. * - * @param \CRM_Core_DAO_ActionSchedule $schedule - * @return array - * Array (string $code => string $message). - * List of error messages. + * This function is called by the form to escalate permissions so that less-privileged users can + * create a reminder for a particular entity even if they do not have 'administer CiviCRM data'. + * + * Return FALSE and the default permission of 'administer CiviCRM data' will be enforced. + * + * Note that `entity_value` is a serialized field, so will be passed as an array, even though + * more than one value doesn't make sense in the context of embedding the ScheduledReminder form + * on a page belonging to a single entity. + * + * @param array $entityValue + * @return bool */ - public function validateSchedule($schedule): array; + public function checkAccess(array $entityValue): bool; /** * Generate a query to locate contacts who match the given diff --git a/civicrm/Civi/ActionSchedule/RecipientBuilder.php b/civicrm/Civi/ActionSchedule/RecipientBuilder.php index 959baf56f03bbf9a5993e88f1778e8bfc7e2320b..c58fa8b50cc75d373b458255d533356cc0e62632 100644 --- a/civicrm/Civi/ActionSchedule/RecipientBuilder.php +++ b/civicrm/Civi/ActionSchedule/RecipientBuilder.php @@ -190,9 +190,9 @@ class RecipientBuilder { ->merge($this->prepareAddlFilter('c.id')) ->where("c.id NOT IN ( SELECT rem.contact_id - FROM civicrm_action_log rem INNER JOIN {$this->mapping->getEntityTable()} e ON rem.entity_id = e.id + FROM civicrm_action_log rem INNER JOIN {$this->getMappingTable()} e ON rem.entity_id = e.id WHERE rem.action_schedule_id = {$this->actionSchedule->id} - AND rem.entity_table = '{$this->mapping->getEntityTable()}' + AND rem.entity_table = '{$this->getMappingTable()}' )") // Where does e.id come from here? ^^^ ->groupBy("c.id") @@ -276,7 +276,7 @@ class RecipientBuilder { $defaultParams = [ 'casActionScheduleId' => $this->actionSchedule->id, 'casMappingId' => $this->mapping->getId(), - 'casMappingEntity' => $this->mapping->getEntityTable(), + 'casMappingEntity' => $this->getMappingTable(), 'casNow' => $this->now, ]; @@ -402,7 +402,7 @@ class RecipientBuilder { $date = $operator . "(!casDateField, INTERVAL {$actionSchedule->start_action_offset} {$actionSchedule->start_action_unit})"; $startDateClauses[] = "'!casNow' >= {$date}"; // This is weird. Waddupwidat? - if ($this->mapping->getEntityTable() == 'civicrm_participant') { + if ($this->getMappingTable() == 'civicrm_participant') { $startDateClauses[] = $operator . "(!casNow, INTERVAL 1 DAY ) {$op} " . '!casDateField'; } else { @@ -566,7 +566,7 @@ WHERE $group.id = {$groupId} switch ($for) { case 'rel': $contactIdField = $query['casContactIdField']; - $entityName = $this->mapping->getEntityTable(); + $entityName = $this->getMappingTable(); $entityIdField = $query['casEntityIdField']; break; @@ -608,4 +608,8 @@ reminder.action_schedule_id = {$this->actionSchedule->id}"; return $this->mapping->resetOnTriggerDateChange($this->actionSchedule); } + protected function getMappingTable(): string { + return $this->mapping->getEntityTable($this->actionSchedule); + } + } diff --git a/civicrm/Civi/Angular/Manager.php b/civicrm/Civi/Angular/Manager.php index 3fb77b0f5d60a9ae48c7c692991006dff44de597..9daf7ca622237b2ee89536423ac32846f2ccd369 100644 --- a/civicrm/Civi/Angular/Manager.php +++ b/civicrm/Civi/Angular/Manager.php @@ -56,7 +56,7 @@ class Manager { */ public function __construct($res, \CRM_Utils_Cache_Interface $cache = NULL) { $this->res = $res; - $this->cache = $cache ? $cache : new \CRM_Utils_Cache_ArrayCache([]); + $this->cache = $cache ?: new \CRM_Utils_Cache_ArrayCache([]); } /** diff --git a/civicrm/Civi/Api4/Action/GetActions.php b/civicrm/Civi/Api4/Action/GetActions.php index 144254330814bdf3cc4c52f37e8ed0dca4bce542..f1419fb4c3fd5ecf6c5f5cb0eb17b84c3e945064 100644 --- a/civicrm/Civi/Api4/Action/GetActions.php +++ b/civicrm/Civi/Api4/Action/GetActions.php @@ -35,7 +35,7 @@ class GetActions extends BasicGetAction { $entityReflection = new \ReflectionClass($className); foreach ($entityReflection->getMethods(\ReflectionMethod::IS_STATIC | \ReflectionMethod::IS_PUBLIC) as $method) { $actionName = $method->getName(); - if ($actionName != 'permissions' && $actionName != 'getInfo' && $actionName[0] != '_') { + if (!in_array($actionName, ['permissions', 'getInfo', 'getEntityName'], TRUE) && !str_starts_with($actionName, '_')) { $this->loadAction($actionName, $method); } } diff --git a/civicrm/Civi/Api4/Contact.php b/civicrm/Civi/Api4/Contact.php index b8ddca6aa0aa0959d0fec4f9e24e9ea9eee14c4a..eeb05eb9a10200c07448654210f51a97b1be7574 100644 --- a/civicrm/Civi/Api4/Contact.php +++ b/civicrm/Civi/Api4/Contact.php @@ -21,6 +21,7 @@ namespace Civi\Api4; * @see https://docs.civicrm.org/user/en/latest/organising-your-data/contacts/ * @searchable primary * @orderBy sort_name + * @searchFields sort_name * @iconField contact_sub_type:icon,contact_type:icon * @since 5.19 * @package Civi\Api4 diff --git a/civicrm/templates/CRM/common/TrackingFields.tpl b/civicrm/Civi/Api4/Discount.php similarity index 61% rename from civicrm/templates/CRM/common/TrackingFields.tpl rename to civicrm/Civi/Api4/Discount.php index fa20918aac09181932e5eacbe6819083b7a35d60..f319b89d2730a6d8c0ad7dddd6f95da7d3f1a3e0 100644 --- a/civicrm/templates/CRM/common/TrackingFields.tpl +++ b/civicrm/Civi/Api4/Discount.php @@ -1,4 +1,5 @@ -{* +<?php +/* +--------------------------------------------------------------------+ | Copyright CiviCRM LLC. All rights reserved. | | | @@ -6,18 +7,17 @@ | permitted exceptions and without any warranty. For full license | | and copyright information, see https://civicrm.org/licensing | +--------------------------------------------------------------------+ -*} -{if $trackingFields and ! empty($trackingFields)} -{literal} -<script type="text/javascript"> -CRM.$(function($) { -{/literal} - {foreach from=$trackingFields key=trackingFieldName item=dontCare} - $("#{$trackingFieldName}").parent().parent().hide( ); - {/foreach} -{literal} - } -); -</script> -{/literal} -{/if} + */ +namespace Civi\Api4; + +/** + * Discounts - time based discounts for events. + * + * @see https://docs.civicrm.org/user/en/latest/events/complex-event-fees/ + * @searchable none + * @since 5.66 + * @package Civi\Api4 + */ +class Discount extends Generic\DAOEntity { + +} diff --git a/civicrm/Civi/Api4/Entity.php b/civicrm/Civi/Api4/Entity.php index 5f36793aa7fcce1da0e44b32b6dd29cf6bd60ed5..fb2b4780e9841152334c0af0dac47a0022f0fa64 100644 --- a/civicrm/Civi/Api4/Entity.php +++ b/civicrm/Civi/Api4/Entity.php @@ -74,6 +74,11 @@ class Entity extends Generic\AbstractEntity { 'name' => 'label_field', 'description' => 'Field to show when displaying a record', ], + [ + 'name' => 'search_fields', + 'data_type' => 'Array', + 'description' => 'Fields to show in search context', + ], [ 'name' => 'icon_field', 'data_type' => 'Array', diff --git a/civicrm/Civi/Api4/EntitySet.php b/civicrm/Civi/Api4/EntitySet.php index b77fdae15a2494e6f2d935d0d7df2bdd8e9833fe..f25208137c289abbf3771b6f13bea53f6527fb9f 100644 --- a/civicrm/Civi/Api4/EntitySet.php +++ b/civicrm/Civi/Api4/EntitySet.php @@ -39,6 +39,7 @@ class EntitySet extends Generic\AbstractEntity { } /** + * This isn't a "real" entity and doesn't have any fields * @return \Civi\Api4\Generic\BasicGetFieldsAction */ public static function getFields($checkPermissions = TRUE) { @@ -61,4 +62,11 @@ class EntitySet extends Generic\AbstractEntity { return $plural ? ts('Entity Sets') : ts('Entity Set'); } + public static function getInfo(): array { + $info = parent::getInfo(); + // This isn't a "real" entity and doesn't have any fields, so no primary key + $info['primary_key'] = []; + return $info; + } + } diff --git a/civicrm/Civi/Api4/Event/Subscriber/AutocompleteFieldSubscriber.php b/civicrm/Civi/Api4/Event/Subscriber/AutocompleteFieldSubscriber.php index 6afc71a2eda499cb1a8ff7757f7542703517870d..3943c2a29905b44902277cc1d66223c597185e7f 100644 --- a/civicrm/Civi/Api4/Event/Subscriber/AutocompleteFieldSubscriber.php +++ b/civicrm/Civi/Api4/Event/Subscriber/AutocompleteFieldSubscriber.php @@ -11,6 +11,8 @@ namespace Civi\Api4\Event\Subscriber; +use Civi\Api4\Generic\AutocompleteAction; +use Civi\Api4\Utils\CoreUtil; use Civi\Core\Service\AutoService; use Symfony\Component\EventDispatcher\EventSubscriberInterface; @@ -26,7 +28,7 @@ class AutocompleteFieldSubscriber extends AutoService implements EventSubscriber */ public static function getSubscribedEvents() { return [ - 'civi.api.prepare' => ['onApiPrepare', -50], + 'civi.api.prepare' => ['onApiPrepare', 150], ]; } @@ -48,6 +50,7 @@ class AutocompleteFieldSubscriber extends AutoService implements EventSubscriber public function onApiPrepare(\Civi\API\Event\PrepareEvent $event): void { $apiRequest = $event->getApiRequest(); if (is_object($apiRequest) && is_a($apiRequest, 'Civi\Api4\Generic\AutocompleteAction')) { + [$formType, $formName] = array_pad(explode(':', (string) $apiRequest->getFormName()), 2, ''); [$entityName, $fieldName] = array_pad(explode('.', (string) $apiRequest->getFieldName(), 2), 2, ''); if (!$fieldName) { @@ -64,6 +67,9 @@ class AutocompleteFieldSubscriber extends AutoService implements EventSubscriber $apiRequest->addFilter($key, $value); } + if ($formType === 'qf') { + $this->autocompleteProfilePermissions($apiRequest, $formName, $fieldSpec); + } } catch (\Exception $e) { // Ignore anything else. Extension using their own $fieldName notation can do their own handling. @@ -71,4 +77,81 @@ class AutocompleteFieldSubscriber extends AutoService implements EventSubscriber } } + /** + * This function opens up permissions for APIv4 Autocompletes to be used on public-facing profile forms. + * + * This is far from perfect because it tries to bridge two very different architectures. + * APIv4 Autocomplete callbacks receive the name of the form and the name of the field for validation purposes. + * This works for Afforms (see AfformAutocompleteSubscriber) but QuickForms lack a central API + * for looking up which fields belong to which form and whether a form is accessible to the current user. + * + * So this involves some verbose hard-coding and some guesswork... + */ + private function autocompleteProfilePermissions(AutocompleteAction $apiRequest, string $formName, array $fieldSpec): void { + // This only supports "Autocomplete-Select" custom field options for now. + // Be careful if opening this up to other types of entities, it could lead to unwanted permission bypass! + if ($apiRequest->getEntityName() !== 'OptionValue') { + return; + } + // For lack of any smarter way to do this, here's a <ugh> hard-coded list of public forms that allow profile fields + $publicForms = [ + 'CRM_Event_Form_Registration_Register' => 'civicrm_event', + 'CRM_Contribute_Form_ContributionBase' => 'civicrm_contribution_page', + 'CRM_Profile_Form' => NULL, + ]; + // Verify this form is one of the whitelisted public forms (or a subclass of it) + foreach (array_keys($publicForms) as $publicForm) { + if (is_a($formName, $publicForm, TRUE)) { + $formClass = $publicForm; + $entityTableName = $publicForms[$publicForm]; + } + } + if (!isset($formClass)) { + return; + } + $fieldName = !empty($fieldSpec['custom_field_id']) ? 'custom_' . $fieldSpec['custom_field_id'] : $fieldSpec['name']; + + // Verify this field belongs to an active profile embedded on the specified form + $profileFields = \Civi\Api4\UFField::get(FALSE) + ->addSelect('uf_group_id', 'is_searchable', 'uf_join.entity_table', 'uf_join.entity_id') + ->addJoin('UFJoin AS uf_join', 'INNER', ['uf_group_id', '=', 'uf_join.uf_group_id']) + ->addWhere('field_name', '=', $fieldName) + ->addWhere('is_active', '=', TRUE) + ->addWhere('uf_group_id.is_active', '=', TRUE) + ->addWhere('uf_join.is_active', '=', TRUE) + ->addWhere('uf_join.entity_table', $entityTableName ? '=' : 'IS NULL', $entityTableName) + ->execute(); + // Validate entity_id + foreach ($profileFields as $profileField) { + // For profiles embedded on an event/contribution page, verify the page is active. + // It would be nice if we could do a full-stack permission check here to see if the current + // user may to use the form for the given entity_id (e.g. is the event currently open) + // but that logic is stuck in the form layer and there's no api for it. + // Since this function only deals custom field option values, it's "secure enough" to verify + // the page is active. + if ($entityTableName) { + $enabled = civicrm_api4(CoreUtil::getApiNameFromTableName($entityTableName), 'get', [ + 'checkPermissions' => FALSE, + 'select' => ['row_count'], + 'where' => [ + ['is_active', '=', TRUE], + ['id', '=', $profileField['uf_join.entity_id']], + ], + ]); + if ($enabled->count()) { + $apiRequest->setCheckPermissions(FALSE); + } + } + // Standalone profiles - verify the user has permission to use them + else { + if ( + \CRM_Core_Permission::check('profile create') || + ($profileField['is_searchable'] && \CRM_Core_Permission::check('profile view')) + ) { + $apiRequest->setCheckPermissions(FALSE); + } + } + } + } + } diff --git a/civicrm/Civi/Api4/Generic/AbstractAction.php b/civicrm/Civi/Api4/Generic/AbstractAction.php index bef78436100170560d3afa44209e7bc4933cc95b..6e2d48ace8fd84adc0519bb7b63c65b26bccd808 100644 --- a/civicrm/Civi/Api4/Generic/AbstractAction.php +++ b/civicrm/Civi/Api4/Generic/AbstractAction.php @@ -485,7 +485,7 @@ abstract class AbstractAction implements \ArrayAccess { $unmatched[] = $fieldName; } elseif (!empty($fieldInfo['required_if'])) { - if ($this->evaluateCondition($fieldInfo['required_if'], ['values' => $values])) { + if (self::evaluateCondition($fieldInfo['required_if'], ['values' => $values])) { $unmatched[] = $fieldName; } } @@ -549,7 +549,7 @@ abstract class AbstractAction implements \ArrayAccess { * @throws \CRM_Core_Exception * @throws \Exception */ - protected function evaluateCondition($expr, $vars) { + public static function evaluateCondition($expr, $vars) { if (strpos($expr, '}') !== FALSE || strpos($expr, '{') !== FALSE) { throw new \CRM_Core_Exception('Illegal character in expression'); } diff --git a/civicrm/Civi/Api4/Generic/AbstractEntity.php b/civicrm/Civi/Api4/Generic/AbstractEntity.php index 083e3359e2cc4fdda0210ae8ffb6e4a0a658ca9d..cf5066410be0144570330d5cbe9e7bd55e818794 100644 --- a/civicrm/Civi/Api4/Generic/AbstractEntity.php +++ b/civicrm/Civi/Api4/Generic/AbstractEntity.php @@ -74,7 +74,7 @@ abstract class AbstractEntity { * * @return string */ - protected static function getEntityName() { + public static function getEntityName(): string { return self::stripNamespace(static::class); } @@ -177,7 +177,10 @@ abstract class AbstractEntity { $info[$field['name']] = $val; } } - + // search_fields defaults to label_field + if (empty($info['search_fields']) && !empty($info['label_field'])) { + $info['search_fields'] = [$info['label_field']]; + } if ($dao) { $info['description'] = $dao::getEntityDescription() ?? $info['description'] ?? NULL; } diff --git a/civicrm/Civi/Api4/Generic/AbstractGetAction.php b/civicrm/Civi/Api4/Generic/AbstractGetAction.php index 41b9c2d818cc8dc031609cd368492b41895d4d9f..06af9353362d0d495a11b45b53a87877e0d0ff7f 100644 --- a/civicrm/Civi/Api4/Generic/AbstractGetAction.php +++ b/civicrm/Civi/Api4/Generic/AbstractGetAction.php @@ -39,7 +39,7 @@ abstract class AbstractGetAction extends AbstractQueryAction { * * @throws \CRM_Core_Exception */ - protected function setDefaultWhereClause() { + public function setDefaultWhereClause() { if (!$this->_itemsToGet('id')) { $fields = $this->entityFields(); foreach ($fields as $field) { diff --git a/civicrm/Civi/Api4/Generic/AutocompleteAction.php b/civicrm/Civi/Api4/Generic/AutocompleteAction.php index 7a70d4d2fefa9f29d2b346ce64dd17618d968cbe..73ce6e9d4d00900d080899f3cf8097036aa62aa1 100644 --- a/civicrm/Civi/Api4/Generic/AutocompleteAction.php +++ b/civicrm/Civi/Api4/Generic/AutocompleteAction.php @@ -149,26 +149,32 @@ class AutocompleteAction extends AbstractAction { else { // Default search and sort field $labelField = $this->display['settings']['columns'][0]['key']; - $idField = CoreUtil::getIdFieldName($this->savedSearch['api_entity']); + $primaryKeys = CoreUtil::getInfoItem($this->savedSearch['api_entity'], 'primary_key'); $this->display['settings'] += [ 'sort' => [$labelField, 'ASC'], ]; // Always search on the first line of the display $searchFields = [$labelField]; - // If input is an integer, search by id - $numericInput = $this->page == 1 && \CRM_Utils_Rule::positiveInteger($this->input); - if ($numericInput) { - $searchFields = [$idField]; + // If input is an integer... + $searchById = \CRM_Utils_Rule::positiveInteger($this->input) && + // ...and there is exactly one primary key (e.g. EntitySet has zero, others might have compound keys) + count($primaryKeys) === 1 && + // ...and the primary key field is type Integer (e.g. Afform.name is a String) + ($this->getField($primaryKeys[0])['data_type'] ?? NULL) === 'Integer'; + // ...then search by primary key on first page + $initialSearchById = $searchById && $this->page == 1; + if ($initialSearchById) { + $searchFields = $primaryKeys; } - // For subsequent pages when searching numeric input - elseif ($this->page > 1 && \CRM_Utils_Rule::positiveInteger($this->input)) { + // For subsequent pages when searching by id, subtract the "extra" first page + elseif ($searchById && $this->page > 1) { $this->page -= 1; } // If first line uses a rewrite, search on those fields too - if (!empty($this->display['settings']['columns'][0]['rewrite'])) { + if (!$initialSearchById && !empty($this->display['settings']['columns'][0]['rewrite'])) { $searchFields = array_merge($searchFields, $this->getTokens($this->display['settings']['columns'][0]['rewrite'])); } - $this->display['settings']['limit'] = $this->display['settings']['limit'] ?? \Civi::settings()->get('search_autocomplete_count') ?: 10; + $this->display['settings']['limit'] = $this->display['settings']['limit'] ?? \Civi::settings()->get('search_autocomplete_count'); $this->display['settings']['pager'] = []; $return = 'scroll:' . $this->page; // SearchKit treats comma-separated fieldnames as OR clauses @@ -198,7 +204,7 @@ class AutocompleteAction extends AbstractAction { $result[] = $item; } $result->setCountMatched($apiResult->count()); - if (!empty($numericInput)) { + if (!empty($initialSearchById)) { // Trigger "more results" after searching by exact id $result->setCountMatched($apiResult->count() + 1); } diff --git a/civicrm/Civi/Api4/Generic/BasicGetAction.php b/civicrm/Civi/Api4/Generic/BasicGetAction.php index 15c9951d8a291d539b24752f917935e692532090..1a70866d18fb4e0cee36d066b3245f3f4498eb3b 100644 --- a/civicrm/Civi/Api4/Generic/BasicGetAction.php +++ b/civicrm/Civi/Api4/Generic/BasicGetAction.php @@ -47,7 +47,6 @@ class BasicGetAction extends AbstractGetAction { * @param \Civi\Api4\Generic\Result $result */ public function _run(Result $result) { - $this->setDefaultWhereClause(); $this->expandSelectClauseWildcards(); $values = $this->getRecords(); $this->formatRawValues($values); @@ -106,9 +105,9 @@ class BasicGetAction extends AbstractGetAction { $fields = $this->entityFields(); foreach ($records as &$values) { foreach ($this->entityFields() as $field) { - $values += [$field['name'] => NULL]; + $values += [$field['name'] => $field['default_value'] ?? NULL]; if (!empty($field['options'])) { - foreach (FormattingUtil::$pseudoConstantSuffixes as $suffix) { + foreach ($field['suffixes'] ?? FormattingUtil::$pseudoConstantSuffixes as $suffix) { $pseudofield = $field['name'] . ':' . $suffix; if (!isset($values[$pseudofield]) && isset($values[$field['name']]) && $this->_isFieldSelected($pseudofield)) { $values[$pseudofield] = $values[$field['name']]; diff --git a/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php b/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php index acf0f278545e70ee1a222cda48084b0c669dd2ec..895701f2adb7017c427028e91eaebecf13db361a 100644 --- a/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php +++ b/civicrm/Civi/Api4/Generic/BasicGetFieldsAction.php @@ -171,7 +171,7 @@ class BasicGetFieldsAction extends BasicGetAction { $field['options'] = self::pseudoconstantOptions($field['pseudoconstant']['optionGroupName']); } elseif (!empty($field['pseudoconstant']['callback'])) { - $field['options'] = call_user_func(\Civi\Core\Resolver::singleton()->get($field['pseudoconstant']['callback']), $field['name'], []); + $field['options'] = call_user_func(\Civi\Core\Resolver::singleton()->get($field['pseudoconstant']['callback']), $field['name'], ['values' => $this->getValues()]); } else { throw new \CRM_Core_Exception('Unsupported pseudoconstant type for field "' . $field['name'] . '"'); @@ -327,8 +327,10 @@ class BasicGetFieldsAction extends BasicGetAction { 'Location' => ts('Address Location'), 'Number' => ts('Number'), 'Radio' => ts('Radio Buttons'), + 'RichTextEditor' => ts('Rich Text Editor'), 'Select' => ts('Select'), - 'Text' => ts('Text'), + 'Text' => ts('Single-Line Text'), + 'TextArea' => ts('Multi-Line Text'), ], ], [ @@ -363,6 +365,10 @@ class BasicGetFieldsAction extends BasicGetAction { 'data_type' => 'Boolean', 'default_value' => FALSE, ], + [ + 'name' => 'permission', + 'data_type' => 'Array', + ], [ 'name' => 'output_formatters', 'data_type' => 'Array', diff --git a/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php b/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php index 97f75e6cce43f4e31ab55470a9b9dffbcc016f20..af58d1fc0697322143d3a35954364bcdf17d6d2b 100644 --- a/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php +++ b/civicrm/Civi/Api4/Generic/DAOGetFieldsAction.php @@ -138,10 +138,6 @@ class DAOGetFieldsAction extends BasicGetFieldsAction { 'name' => 'custom_field_id', 'data_type' => 'Integer', ]; - $fields[] = [ - 'name' => 'custom_group_id', - 'data_type' => 'Integer', - ]; $fields[] = [ 'name' => 'sql_filters', 'data_type' => 'Array', diff --git a/civicrm/Civi/Api4/Generic/Traits/SavedSearchInspectorTrait.php b/civicrm/Civi/Api4/Generic/Traits/SavedSearchInspectorTrait.php index 4f034e5bd216e6a596e1487455735c86c2fd17b9..f42d77a15e1f3cfbc646713b74bd9d8f4b0e7c16 100644 --- a/civicrm/Civi/Api4/Generic/Traits/SavedSearchInspectorTrait.php +++ b/civicrm/Civi/Api4/Generic/Traits/SavedSearchInspectorTrait.php @@ -4,7 +4,10 @@ namespace Civi\Api4\Generic\Traits; use Civi\API\Exception\UnauthorizedException; use Civi\API\Request; +use Civi\Api4\Query\SqlEquation; use Civi\Api4\Query\SqlExpression; +use Civi\Api4\Query\SqlField; +use Civi\Api4\Query\SqlFunction; use Civi\Api4\SavedSearch; use Civi\Api4\Utils\CoreUtil; @@ -44,6 +47,11 @@ trait SavedSearchInspectorTrait { */ private $_searchEntityFields; + /** + * @var array + */ + private $_joinMap; + /** * If SavedSearch is supplied as a string, this will load it as an array * @param int|null $id @@ -66,7 +74,7 @@ trait SavedSearchInspectorTrait { $this->savedSearch['api_params'] += ['version' => 4, 'select' => [], 'where' => []]; } // Reset internal cached metadata - $this->_selectQuery = $this->_selectClause = $this->_searchEntityFields = NULL; + $this->_selectQuery = $this->_selectClause = $this->_searchEntityFields = $this->_joinMap = NULL; $this->_apiParams = ($this->savedSearch['api_params'] ?? []) + ['select' => [], 'where' => []]; } @@ -118,11 +126,12 @@ trait SavedSearchInspectorTrait { } /** - * @param $joinAlias + * @param string $joinAlias + * Alias of the join, with or without the trailing dot * @return array{entity: string, alias: string, table: string, bridge: string|NULL}|NULL */ - protected function getJoin($joinAlias) { - return $this->getQuery() ? $this->getQuery()->getExplicitJoin($joinAlias) : NULL; + protected function getJoin(string $joinAlias) { + return $this->getQuery() ? $this->getQuery()->getExplicitJoin(rtrim($joinAlias, '.')) : NULL; } /** @@ -360,4 +369,67 @@ trait SavedSearchInspectorTrait { } } + /** + * @param \Civi\Api4\Query\SqlExpression $expr + * @return string + */ + protected function getColumnLabel(SqlExpression $expr) { + if ($expr instanceof SqlFunction) { + $args = []; + foreach ($expr->getArgs() as $arg) { + foreach ($arg['expr'] ?? [] as $ex) { + $args[] = $this->getColumnLabel($ex); + } + } + return '(' . $expr->getTitle() . ')' . ($args ? ' ' . implode(',', array_filter($args)) : ''); + } + if ($expr instanceof SqlEquation) { + $args = []; + foreach ($expr->getArgs() as $arg) { + if (is_array($arg) && !empty($arg['expr'])) { + $args[] = $this->getColumnLabel(SqlExpression::convert($arg['expr'])); + } + } + return '(' . implode(',', array_filter($args)) . ')'; + } + elseif ($expr instanceof SqlField) { + $field = $this->getField($expr->getExpr()); + $label = ''; + if (!empty($field['explicit_join'])) { + $label = $this->getJoinLabel($field['explicit_join']) . ': '; + } + if (!empty($field['implicit_join']) && empty($field['custom_field_id'])) { + $field = $this->getField(substr($expr->getAlias(), 0, -1 - strlen($field['name']))); + } + return $label . $field['label']; + } + else { + return NULL; + } + } + + /** + * @param string $joinAlias + * @return string + */ + protected function getJoinLabel($joinAlias) { + if (!isset($this->_joinMap)) { + $this->_joinMap = []; + $joinCount = [$this->savedSearch['api_entity'] => 1]; + foreach ($this->savedSearch['api_params']['join'] ?? [] as $join) { + [$entityName, $alias] = explode(' AS ', $join[0]); + $num = ''; + if (!empty($joinCount[$entityName])) { + $num = ' ' . (++$joinCount[$entityName]); + } + else { + $joinCount[$entityName] = 1; + } + $label = CoreUtil::getInfoItem($entityName, 'title'); + $this->_joinMap[$alias] = $label . $num; + } + } + return $this->_joinMap[$joinAlias]; + } + } diff --git a/civicrm/Civi/Api4/Provider/ActionObjectProvider.php b/civicrm/Civi/Api4/Provider/ActionObjectProvider.php index 82bb3bf5d067f05fa589025eff2339343b67c61a..91c30f9784adb64524d42877cd1d23a56aa98880 100644 --- a/civicrm/Civi/Api4/Provider/ActionObjectProvider.php +++ b/civicrm/Civi/Api4/Provider/ActionObjectProvider.php @@ -172,7 +172,7 @@ class ActionObjectProvider extends AutoService implements EventSubscriberInterfa * Scan all api directories to discover entities * @return \Civi\Api4\Generic\AbstractEntity[] */ - private function getAllApiClasses() { + public function getAllApiClasses(): array { $classNames = []; $locations = array_merge([\Civi::paths()->getPath('[civicrm.root]/Civi.php')], array_column(\CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles(), 'filePath') diff --git a/civicrm/Civi/Api4/Query/Api4EntitySetQuery.php b/civicrm/Civi/Api4/Query/Api4EntitySetQuery.php index 5e553f2217c94d514acea5e99fe6983edea1f074..3be5f7c2ce9b558cfc3e7ef1d935cd16078edad0 100644 --- a/civicrm/Civi/Api4/Query/Api4EntitySetQuery.php +++ b/civicrm/Civi/Api4/Query/Api4EntitySetQuery.php @@ -119,7 +119,7 @@ class Api4EntitySetQuery extends Api4Query { $expr = SqlExpression::convert($item, TRUE); $alias = $expr->getAlias(); $this->selectAliases[$alias] = $expr->getExpr(); - $this->query->select($expr->render($this) . " AS `$alias`"); + $this->query->select($expr->render($this, TRUE)); } } diff --git a/civicrm/Civi/Api4/Query/Api4SelectQuery.php b/civicrm/Civi/Api4/Query/Api4SelectQuery.php index 26d09e1897af42bdcd2c1772a4687d261431b9ec..95de27e36e24e5150867388eaed961bf0471ae81 100644 --- a/civicrm/Civi/Api4/Query/Api4SelectQuery.php +++ b/civicrm/Civi/Api4/Query/Api4SelectQuery.php @@ -46,7 +46,7 @@ class Api4SelectQuery extends Api4Query { public $forceSelectId = TRUE; /** - * @var array + * @var array{entity: string, alias: string, table: string, on: array, bridge: string|NULL}[] */ private $explicitJoins = []; @@ -198,7 +198,7 @@ class Api4SelectQuery extends Api4Query { throw new \CRM_Core_Exception('Cannot use existing field name as alias'); } $this->selectAliases[$alias] = $expr->getExpr(); - $this->query->select($expr->render($this) . " AS `$alias`"); + $this->query->select($expr->render($this, TRUE)); } } } @@ -897,19 +897,43 @@ class Api4SelectQuery extends Api4Query { /** * @param string $alias - * @return array{entity: string, alias: string, table: string, bridge: string|NULL}|NULL + * @return array{entity: string, alias: string, table: string, on: array, bridge: string|NULL}|NULL */ public function getExplicitJoin($alias) { return $this->explicitJoins[$alias] ?? NULL; } /** - * @return array{entity: string, alias: string, table: string, bridge: string|NULL}[] + * @return array{entity: string, alias: string, table: string, on: array, bridge: string|NULL}[] */ - public function getExplicitJoins() { + public function getExplicitJoins(): array { return $this->explicitJoins; } + /** + * If a join is based on another join, return the name of the other. + * + * @param string $joinAlias + * @return string|null + */ + public function getJoinParent(string $joinAlias): ?string { + $join = $this->getExplicitJoin($joinAlias); + foreach ($join['on'] ?? [] as $clause) { + $prefix = $join['alias'] . '.'; + if ( + count($clause) === 3 && $clause[1] === '=' && + (str_starts_with($clause[0], $prefix) || str_starts_with($clause[2], $prefix)) + ) { + $otherField = str_starts_with($clause[0], $prefix) ? $clause[2] : $clause[0]; + [$otherJoin] = explode('.', $otherField); + if (str_contains($otherField, '.') && $this->getExplicitJoin($otherJoin)) { + return $otherJoin; + } + } + } + return NULL; + } + /** * Returns rendered expression or alias if it is already aliased in the SELECT clause. * diff --git a/civicrm/Civi/Api4/Query/SqlBool.php b/civicrm/Civi/Api4/Query/SqlBool.php index 36aeb3ee1ff28f13c3241ecdd69054c5226df1e0..3577a31eb1b4710f018a86e95b2fad92e81dddd2 100644 --- a/civicrm/Civi/Api4/Query/SqlBool.php +++ b/civicrm/Civi/Api4/Query/SqlBool.php @@ -21,8 +21,8 @@ class SqlBool extends SqlExpression { protected function initialize() { } - public function render(Api4Query $query): string { - return $this->expr === 'TRUE' ? '1' : '0'; + public function render(Api4Query $query, bool $includeAlias = FALSE): string { + return ($this->expr === 'TRUE' ? '1' : '0') . ($includeAlias ? " AS `{$this->getAlias()}`" : ''); } public static function getTitle(): string { diff --git a/civicrm/Civi/Api4/Query/SqlEquation.php b/civicrm/Civi/Api4/Query/SqlEquation.php index a6dd5f564f1806f3cf5353dea6252f7bbc6cc723..04f08cbe1568fa1bec7b11ae521e633c65635d7e 100644 --- a/civicrm/Civi/Api4/Query/SqlEquation.php +++ b/civicrm/Civi/Api4/Query/SqlEquation.php @@ -77,9 +77,10 @@ class SqlEquation extends SqlExpression { * Render the expression for insertion into the sql query * * @param \Civi\Api4\Query\Api4Query $query + * @param bool $includeAlias * @return string */ - public function render(Api4Query $query): string { + public function render(Api4Query $query, bool $includeAlias = FALSE): string { $output = []; foreach ($this->args as $i => $arg) { // Just an operator @@ -98,7 +99,7 @@ class SqlEquation extends SqlExpression { $output[] = $arg->render($query); } } - return '(' . implode(' ', $output) . ')'; + return '(' . implode(' ', $output) . ')' . ($includeAlias ? " AS `{$this->getAlias()}`" : ''); } /** @@ -133,11 +134,10 @@ class SqlEquation extends SqlExpression { * Change $dataType according to operator used in equation * * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues - * @param string $value - * @param string $dataType - * @return string + * @param string|null $dataType + * @param array $values */ - public function formatOutputValue($value, &$dataType) { + public function formatOutputValue(?string &$dataType, array &$values) { foreach (self::$comparisonOperators as $op) { if (strpos($this->expr, " $op ")) { $dataType = 'Boolean'; @@ -148,7 +148,6 @@ class SqlEquation extends SqlExpression { $dataType = 'Float'; } } - return $value; } public static function getTitle(): string { diff --git a/civicrm/Civi/Api4/Query/SqlExpression.php b/civicrm/Civi/Api4/Query/SqlExpression.php index 9416a9aa3a2f5219401645e80a4f76c600353985..9555152db6fa5ee48f880fea9ab9fe2378634e04 100644 --- a/civicrm/Civi/Api4/Query/SqlExpression.php +++ b/civicrm/Civi/Api4/Query/SqlExpression.php @@ -145,9 +145,12 @@ abstract class SqlExpression { * Renders expression to a sql string, replacing field names with column names. * * @param \Civi\Api4\Query\Api4Query $query + * @param bool $includeAlias * @return string */ - abstract public function render(Api4Query $query): string; + public function render(Api4Query $query, bool $includeAlias = FALSE): string { + return $this->expr . ($includeAlias ? " AS `{$this->getAlias()}`" : ''); + } /** * @return string diff --git a/civicrm/Civi/Api4/Query/SqlField.php b/civicrm/Civi/Api4/Query/SqlField.php index 862f67aea087850f3b321469d834958fe68e3b8e..0f2fb26aba200f99008f86089020f1c6ffef15e5 100644 --- a/civicrm/Civi/Api4/Query/SqlField.php +++ b/civicrm/Civi/Api4/Query/SqlField.php @@ -25,13 +25,13 @@ class SqlField extends SqlExpression { $this->fields[] = $this->expr; } - public function render(Api4Query $query): string { + public function render(Api4Query $query, bool $includeAlias = FALSE): string { $field = $query->getField($this->expr, TRUE); + $rendered = $field['sql_name']; if (!empty($field['sql_renderer'])) { - $renderer = $field['sql_renderer']; - return $renderer($field, $query); + $rendered = $field['sql_renderer']($field, $query); } - return $field['sql_name']; + return $rendered . ($includeAlias ? " AS `{$this->getAlias()}`" : ''); } public static function getTitle(): string { diff --git a/civicrm/Civi/Api4/Query/SqlFunction.php b/civicrm/Civi/Api4/Query/SqlFunction.php index a766e95bbdb2c50ccb301132cc87e3dab4a266b1..44a0b097d595118e0e3c2c766f73eee286a2c557 100644 --- a/civicrm/Civi/Api4/Query/SqlFunction.php +++ b/civicrm/Civi/Api4/Query/SqlFunction.php @@ -109,43 +109,42 @@ abstract class SqlFunction extends SqlExpression { /** * Set $dataType and convert value by suffix * + * @param string|null $dataType + * @param array $values + * @param string $key * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues - * @param string $value - * @param string $dataType - * @return string */ - public function formatOutputValue($value, &$dataType) { + public function formatOutputValue(?string &$dataType, array &$values, string $key): void { if (static::$dataType) { $dataType = static::$dataType; } - if (isset($value) && $this->suffix && $this->suffix !== 'id') { + if (isset($values[$key]) && $this->suffix && $this->suffix !== 'id') { $dataType = 'String'; + $value =& $values[$key]; $option = $this->getOptions()[$value] ?? NULL; // Option contains an array of suffix keys if (is_array($option)) { - return $option[$this->suffix] ?? NULL; + $value = $option[$this->suffix] ?? NULL; } // Flat arrays are name/value pairs elseif ($this->suffix === 'label') { - return $option; - } - elseif ($this->suffix === 'name') { - return $value; + $value = $option; } - else { - return NULL; + // Name needs no transformation, and any other suffix is invalid + elseif ($this->suffix !== 'name') { + $value = NULL; } } - return $value; } /** * Render the expression for insertion into the sql query * * @param \Civi\Api4\Query\Api4Query $query + * @param bool $includeAlias * @return string */ - public function render(Api4Query $query): string { + public function render(Api4Query $query, bool $includeAlias = FALSE): string { $output = ''; foreach ($this->args as $arg) { $rendered = $this->renderArg($arg, $query); @@ -153,7 +152,7 @@ abstract class SqlFunction extends SqlExpression { $output .= (strlen($output) ? ' ' : '') . $rendered; } } - return $this->renderExpression($output); + return $this->renderExpression($output) . ($includeAlias ? " AS `{$this->getAlias()}`" : ''); } /** @@ -162,7 +161,7 @@ abstract class SqlFunction extends SqlExpression { * @param string $output * @return string */ - protected function renderExpression($output): string { + protected function renderExpression(string $output): string { return $this->getName() . '(' . $output . ')'; } diff --git a/civicrm/Civi/Api4/Query/SqlFunctionDAYSTOANNIV.php b/civicrm/Civi/Api4/Query/SqlFunctionDAYSTOANNIV.php index b47a4a1b31aa5d005b2c082e683745ff4c4990c5..14f85b2ccc61ecd6a2134669104afbd1cb33f751 100644 --- a/civicrm/Civi/Api4/Query/SqlFunctionDAYSTOANNIV.php +++ b/civicrm/Civi/Api4/Query/SqlFunctionDAYSTOANNIV.php @@ -46,7 +46,7 @@ class SqlFunctionDAYSTOANNIV extends SqlFunction { /** * @inheritDoc */ - protected function renderExpression($output): string { + protected function renderExpression(string $output): string { return "DATEDIFF( IF( DATE(CONCAT(YEAR(CURDATE()), '-', MONTH({$output}), '-', DAY({$output}))) < CURDATE(), diff --git a/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php b/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php index e9f72907cc111a52650efaff7eb18e50feda87f5..7af9a2f64d78caec5fb393c5b3bd44d85c1e116c 100644 --- a/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php +++ b/civicrm/Civi/Api4/Query/SqlFunctionGROUP_CONCAT.php @@ -11,6 +11,8 @@ namespace Civi\Api4\Query; +use Civi\Api4\Utils\CoreUtil; + /** * Sql function */ @@ -23,9 +25,9 @@ class SqlFunctionGROUP_CONCAT extends SqlFunction { protected static function params(): array { return [ [ - 'flag_before' => ['' => NULL, 'DISTINCT' => ts('Distinct')], + 'flag_before' => ['' => NULL, 'DISTINCT' => ts('Distinct Value'), 'UNIQUE' => ts('Unique Record')], 'max_expr' => 1, - 'must_be' => ['SqlField', 'SqlFunction'], + 'must_be' => ['SqlField', 'SqlFunction', 'SqlEquation'], 'optional' => FALSE, ], [ @@ -52,26 +54,38 @@ class SqlFunctionGROUP_CONCAT extends SqlFunction { /** * Reformat result as array if using default separator * + * @param string|null $dataType + * @param array $values + * @param string $key * @see \Civi\Api4\Utils\FormattingUtil::formatOutputValues - * @param string $value - * @param string $dataType - * @return string|array */ - public function formatOutputValue($value, &$dataType) { + public function formatOutputValue(?string &$dataType, array &$values, string $key): void { $exprArgs = $this->getArgs(); // By default, values are split into an array and formatted according to the field's dataType if (isset($exprArgs[2]['expr'][0]->expr) && $exprArgs[2]['expr'][0]->expr === \CRM_Core_DAO::VALUE_SEPARATOR) { - $value = explode(\CRM_Core_DAO::VALUE_SEPARATOR, $value); - // If the first expression is another sqlFunction, allow it to control the dataType - if ($exprArgs[0]['expr'][0] instanceof SqlFunction) { - $exprArgs[0]['expr'][0]->formatOutputValue(NULL, $dataType); + $values[$key] = explode(\CRM_Core_DAO::VALUE_SEPARATOR, $values[$key]); + // If the first expression is a SqlFunction/SqlEquation, allow it to control the dataType + if (method_exists($exprArgs[0]['expr'][0], 'formatOutputValue')) { + foreach (array_keys($values[$key]) as $index) { + $exprArgs[0]['expr'][0]->formatOutputValue($dataType, $values[$key], $index); + } + } + // Perform deduping by unique id + if ($this->args[0]['prefix'] === ['UNIQUE'] && isset($values["_$key"])) { + $ids = \CRM_Utils_Array::explodePadded($values["_$key"]); + unset($values["_$key"]); + foreach ($ids as $index => $id) { + if (in_array($id, array_slice($ids, 0, $index))) { + unset($values[$key][$index]); + } + } + $values[$key] = array_values($values[$key]); } } // If using custom separator, preserve raw string else { $dataType = 'String'; } - return $value; } /** @@ -88,4 +102,40 @@ class SqlFunctionGROUP_CONCAT extends SqlFunction { return ts('All values in the grouping.'); } + public function render(Api4Query $query, bool $includeAlias = FALSE): string { + $result = ''; + // Handle pseudo-prefix `UNIQUE` which is like `DISTINCT` but based on the record id rather than the field value + if ($this->args[0]['prefix'] === ['UNIQUE']) { + $this->args[0]['prefix'] = []; + $expr = $this->args[0]['expr'][0]; + $field = $query->getField($expr->getFields()[0]); + if ($field) { + $idField = CoreUtil::getIdFieldName($field['entity']); + $idFieldKey = substr($expr->getFields()[0], 0, 0 - strlen($field['name'])) . $idField; + // Keep the ordering consistent + if (empty($this->args[1]['prefix'])) { + $this->args[1] = [ + 'prefix' => ['ORDER BY'], + 'expr' => [SqlExpression::convert($idFieldKey)], + 'suffix' => [], + ]; + } + // Already a unique field, so DISTINCT will work fine + if ($field['name'] === $idField) { + $this->args[0]['prefix'] = ['DISTINCT']; + } + // Add a unique field on which to dedupe in postprocessing (@see self::formatOutputValue) + elseif ($includeAlias) { + $orderByKey = $this->args[1]['expr'][0]->getFields()[0]; + $extraSelectAlias = '_' . $this->getAlias(); + $extraSelect = SqlExpression::convert("GROUP_CONCAT($idFieldKey ORDER BY $orderByKey) AS $extraSelectAlias", TRUE); + $query->selectAliases[$extraSelectAlias] = $extraSelect->getExpr(); + $result .= $extraSelect->render($query, TRUE) . ','; + } + } + } + $result .= parent::render($query, $includeAlias); + return $result; + } + } diff --git a/civicrm/Civi/Api4/Query/SqlNull.php b/civicrm/Civi/Api4/Query/SqlNull.php index 312f01fa4b558c9e1f3acdf95518bb61a303f307..935ff6cdf226d11dd440f956cae41e13c6a6e22a 100644 --- a/civicrm/Civi/Api4/Query/SqlNull.php +++ b/civicrm/Civi/Api4/Query/SqlNull.php @@ -19,10 +19,6 @@ class SqlNull extends SqlExpression { protected function initialize() { } - public function render(Api4Query $query): string { - return 'NULL'; - } - public static function getTitle(): string { return ts('Null'); } diff --git a/civicrm/Civi/Api4/Query/SqlNumber.php b/civicrm/Civi/Api4/Query/SqlNumber.php index 82c784a845d24ed812d02dda72f6b47ea532b564..d8e301f53c296b4d1fa0b9660547faa377196e27 100644 --- a/civicrm/Civi/Api4/Query/SqlNumber.php +++ b/civicrm/Civi/Api4/Query/SqlNumber.php @@ -22,10 +22,6 @@ class SqlNumber extends SqlExpression { \CRM_Utils_Type::validate($this->expr, 'Float'); } - public function render(Api4Query $query): string { - return $this->expr; - } - public static function getTitle(): string { return ts('Number'); } diff --git a/civicrm/Civi/Api4/Query/SqlString.php b/civicrm/Civi/Api4/Query/SqlString.php index 1efcaf15bb3663d7d9ca74cb89486000d4321eb5..cd6db545e5249762cd90a43f3dfec0945e4ce082 100644 --- a/civicrm/Civi/Api4/Query/SqlString.php +++ b/civicrm/Civi/Api4/Query/SqlString.php @@ -27,8 +27,8 @@ class SqlString extends SqlExpression { $this->expr = str_replace(['\\\\', "\\$quot", $backslash], [$backslash, $quot, '\\\\'], $str); } - public function render(Api4Query $query): string { - return '"' . \CRM_Core_DAO::escapeString($this->expr) . '"'; + public function render(Api4Query $query, bool $includeAlias = FALSE): string { + return '"' . \CRM_Core_DAO::escapeString($this->expr) . '"' . ($includeAlias ? " AS `{$this->getAlias()}`" : ''); } /** diff --git a/civicrm/Civi/Api4/Query/SqlWild.php b/civicrm/Civi/Api4/Query/SqlWild.php index 972c47f1d8d6543b0fb0d377ac4fdfcb9ce447d9..f59bcf12082fb2c3f36db354c80f11c62b0d8fca 100644 --- a/civicrm/Civi/Api4/Query/SqlWild.php +++ b/civicrm/Civi/Api4/Query/SqlWild.php @@ -19,10 +19,6 @@ class SqlWild extends SqlExpression { protected function initialize() { } - public function render(Api4Query $query): string { - return '*'; - } - public static function getTitle(): string { return ts('Wild'); } diff --git a/civicrm/Civi/Api4/Relationship.php b/civicrm/Civi/Api4/Relationship.php index bed75391c4c230e01aa1d9617036d956aed80996..0be9f893ef4530c908353299b592aefdb68b02b6 100644 --- a/civicrm/Civi/Api4/Relationship.php +++ b/civicrm/Civi/Api4/Relationship.php @@ -15,6 +15,7 @@ namespace Civi\Api4; * * @see https://docs.civicrm.org/user/en/latest/organising-your-data/relationships/ * @searchable none + * @searchFields contact_id_a.sort_name,relationship_type_id.label_a_b,contact_id_b.sort_name * @since 5.19 * @package Civi\Api4 */ @@ -29,4 +30,16 @@ class Relationship extends Generic\DAOEntity { ->setCheckPermissions($checkPermissions); } + /** + * @return array + */ + public static function permissions(): array { + return [ + 'meta' => ['access CiviCRM'], + // get managed by CRM_Core_BAO::addSelectWhereClause + // create/update/delete managed by CRM_Contact_BAO_Relationship::_checkAccess + 'default' => [], + ]; + } + } diff --git a/civicrm/Civi/Api4/RelationshipCache.php b/civicrm/Civi/Api4/RelationshipCache.php index 3beee1ab4303e2af9907f93566ba534a3047e469..1b3e350fcf46436b3f4bf0b2211acc56eb0fd23d 100644 --- a/civicrm/Civi/Api4/RelationshipCache.php +++ b/civicrm/Civi/Api4/RelationshipCache.php @@ -14,6 +14,7 @@ namespace Civi\Api4; * RelationshipCache - readonly table to facilitate joining and finding contacts by relationship. * * @searchable secondary + * @searchFields near_contact_id.sort_name,near_relation:label,far_contact_id.sort_name * @see \Civi\Api4\Relationship * @ui_join_filters near_relation * @since 5.29 diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ActivityAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ActivityAutocompleteProvider.php index 144035c90a7f9a411a930e7cfa26ed27a1b16340..843ef5fea36120fa6113a5e1356ed243e5c70827 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/ActivityAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/ActivityAutocompleteProvider.php @@ -36,7 +36,7 @@ class ActivityAutocompleteProvider extends \Civi\Core\Service\AutoService implem 'id', 'subject', 'activity_date_time', - 'Activity_ActivityContact_Contact_01.display_name', + 'Activity_ActivityContact_Contact_01.sort_name', 'activity_type_id:label', ], 'orderBy' => [], @@ -97,8 +97,8 @@ class ActivityAutocompleteProvider extends \Civi\Core\Service\AutoService implem [$entity, $contactAlias] = explode(' AS ', $join[0]); if ($entity === 'Contact') { array_unshift($e->display['settings']['sort'], ["$contactAlias.sort_name", 'ASC']); - $e->display['settings']['columns'][0]['rewrite'] = "[$contactAlias.display_name] - [subject]"; - $e->display['settings']['columns'][0]['empty_value'] = "[$contactAlias.display_name] (" . ts('no subject') . ')'; + $e->display['settings']['columns'][0]['rewrite'] = "[$contactAlias.sort_name] - [subject]"; + $e->display['settings']['columns'][0]['empty_value'] = "[$contactAlias.sort_name] (" . ts('no subject') . ')'; break; } } diff --git a/civicrm/Civi/Api4/Service/Autocomplete/CaseAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/CaseAutocompleteProvider.php index ed13b5c951ad82f03b4974c8a285b549d4e6d8e3..e28e6fbaf960652e693dbb14324a7e0b09724cb6 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/CaseAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/CaseAutocompleteProvider.php @@ -35,7 +35,7 @@ class CaseAutocompleteProvider extends \Civi\Core\Service\AutoService implements 'select' => [ 'id', 'subject', - 'Case_CaseContact_Contact_01.display_name', + 'Case_CaseContact_Contact_01.sort_name', 'case_type_id:label', 'status_id:label', 'start_date', @@ -94,8 +94,8 @@ class CaseAutocompleteProvider extends \Civi\Core\Service\AutoService implements [$entity, $contactAlias] = explode(' AS ', $join[0]); if ($entity === 'Contact') { array_unshift($e->display['settings']['sort'], ["$contactAlias.sort_name", 'ASC']); - $e->display['settings']['columns'][0]['rewrite'] = "[$contactAlias.display_name] - [subject]"; - $e->display['settings']['columns'][0]['empty_value'] = "[$contactAlias.display_name] (" . ts('no subject') . ')'; + $e->display['settings']['columns'][0]['rewrite'] = "[$contactAlias.sort_name] - [subject]"; + $e->display['settings']['columns'][0]['empty_value'] = "[$contactAlias.sort_name] (" . ts('no subject') . ')'; break; } } diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php index 1aadc6446404c2958fa3277af2335e10fa9e8b0e..b676baa692b517355303565c8ac055f1a0cbdeb0 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/ContactAutocompleteProvider.php @@ -12,6 +12,7 @@ namespace Civi\Api4\Service\Autocomplete; +use Civi\API\Event\PrepareEvent; use Civi\Core\Event\GenericHookEvent; use Civi\Core\HookInterface; @@ -21,6 +22,27 @@ use Civi\Core\HookInterface; */ class ContactAutocompleteProvider extends \Civi\Core\Service\AutoService implements HookInterface { + /** + * Set filters for the menubar quicksearch. + * + * @param \Civi\API\Event\PrepareEvent $event + */ + public static function on_civi_api_prepare(PrepareEvent $event) { + $apiRequest = $event->getApiRequest(); + if (is_object($apiRequest) && + is_a($apiRequest, 'Civi\Api4\Generic\AutocompleteAction') && + $apiRequest->getFormName() === 'crmMenubar' && + $apiRequest->getFieldName() === 'crm-qsearch-input' + ) { + $allowedFilters = \Civi::settings()->get('quicksearch_options'); + foreach ($apiRequest->getFilters() as $fieldName => $val) { + if (in_array($fieldName, $allowedFilters)) { + $apiRequest->addFilter($fieldName, $val); + } + } + } + } + /** * Provide default SearchDisplay for Contact autocompletes * @@ -37,7 +59,7 @@ class ContactAutocompleteProvider extends \Civi\Core\Service\AutoService impleme 'columns' => [ [ 'type' => 'field', - 'key' => 'display_name', + 'key' => 'sort_name', 'icons' => [ ['field' => 'contact_sub_type:icon'], ['field' => 'contact_type:icon'], @@ -51,6 +73,27 @@ class ContactAutocompleteProvider extends \Civi\Core\Service\AutoService impleme ], ], ]; + // Adjust display for quicksearch input - the display only needs one column + // as the menubar autocomplete does not support descriptions + if (($e->context['formName'] ?? NULL) === 'crmMenubar' && ($e->context['fieldName'] ?? NULL) === 'crm-qsearch-input') { + $column = ['type' => 'field']; + // If doing a search by a field other than the default + if (!empty($e->context['filters'])) { + $filterField = array_keys($e->context['filters'])[0]; + } + elseif (\Civi::settings()->get('includeEmailInName')) { + $filterField = 'email_primary.email'; + } + if ($filterField) { + $column['key'] = $filterField; + $column['rewrite'] = "[sort_name] :: [$filterField]"; + $column['empty_value'] = '[sort_name]'; + } + else { + $column['key'] = 'sort_name'; + } + $e->display['settings']['columns'] = [$column]; + } } } diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php index 916a6c56d6a351e2d9a29687ad89879cee1d71e5..114b3f4b29c8806533cd7daba5bec44bfded6fa8 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/ContributionAutocompleteProvider.php @@ -34,7 +34,7 @@ class ContributionAutocompleteProvider extends \Civi\Core\Service\AutoService im 'version' => 4, 'select' => [ 'id', - 'contact_id.display_name', + 'contact_id.sort_name', 'total_amount', 'receive_date', 'financial_type_id:label', @@ -66,8 +66,8 @@ class ContributionAutocompleteProvider extends \Civi\Core\Service\AutoService im 'columns' => [ [ 'type' => 'field', - 'key' => 'contact_id.display_name', - 'rewrite' => '[contact_id.display_name] - [total_amount]', + 'key' => 'contact_id.sort_name', + 'rewrite' => '[contact_id.sort_name] - [total_amount]', ], [ 'type' => 'field', diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php index 4f845248cbf88e07fc564d000f9613f3cba4207f..7d3ddae797604ae09a5e32532a96f7eacf4f13ce 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/ContributionRecurAutocompleteProvider.php @@ -34,7 +34,7 @@ class ContributionRecurAutocompleteProvider extends \Civi\Core\Service\AutoServi 'version' => 4, 'select' => [ 'id', - 'contact_id.display_name', + 'contact_id.sort_name', 'frequency_unit:label', 'frequency_interval', 'amount', @@ -68,8 +68,8 @@ class ContributionRecurAutocompleteProvider extends \Civi\Core\Service\AutoServi 'columns' => [ [ 'type' => 'field', - 'key' => 'contact_id.display_name', - 'rewrite' => '[contact_id.display_name] - [amount]', + 'key' => 'contact_id.sort_name', + 'rewrite' => '[contact_id.sort_name] - [amount]', ], [ 'type' => 'field', diff --git a/civicrm/Civi/Api4/Service/Autocomplete/EventAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/EventAutocompleteProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..43a00c424f5ff87760ef5b6a05d368f94203f306 --- /dev/null +++ b/civicrm/Civi/Api4/Service/Autocomplete/EventAutocompleteProvider.php @@ -0,0 +1,62 @@ +<?php + +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +namespace Civi\Api4\Service\Autocomplete; + +use Civi\API\Events; +use Civi\Core\Event\GenericHookEvent; +use Symfony\Component\EventDispatcher\EventSubscriberInterface; + +/** + * @service + * @internal + */ +class EventAutocompleteProvider extends \Civi\Core\Service\AutoService implements EventSubscriberInterface { + + public static function getSubscribedEvents() { + return [ + 'civi.api.prepare' => ['onApiPrepare', 140], + 'civi.search.defaultDisplay' => ['alterDefaultDisplay', Events::W_LATE], + ]; + } + + /** + * Add is_template filter to event template autocompletes + * @param \Civi\API\Event\PrepareEvent $event + */ + public function onApiPrepare(\Civi\API\Event\PrepareEvent $event): void { + $apiRequest = $event->getApiRequest(); + if (is_object($apiRequest) && is_a($apiRequest, 'Civi\Api4\Generic\AutocompleteAction')) { + [$entityName, $fieldName] = array_pad(explode('.', (string) $apiRequest->getFieldName(), 2), 2, ''); + + if ($entityName === 'Event' && $fieldName === 'template_id') { + $apiRequest->addFilter('is_template', TRUE); + } + } + } + + /** + * Alter default display of events based on the is_template filter. + * + * @param \Civi\Core\Event\GenericHookEvent $e + */ + public static function alterDefaultDisplay(GenericHookEvent $e) { + if ($e->display['type'] !== 'autocomplete' || $e->savedSearch['api_entity'] !== 'Event') { + return; + } + $filters = $e->context['filters'] ?? []; + if (!empty($filters['is_template'])) { + $e->display['settings']['columns'][0]['key'] = 'template_title'; + } + } + +} diff --git a/civicrm/Civi/Api4/Service/Autocomplete/MailingRecipientsAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/MailingRecipientsAutocompleteProvider.php index 6e687e1582856d851b6f79a7390b44fab70a62f3..54fa71f9e64ef82fbdd9f1d4b6b9254f19258b4e 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/MailingRecipientsAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/MailingRecipientsAutocompleteProvider.php @@ -70,6 +70,7 @@ class MailingRecipientsAutocompleteProvider extends AutoService implements Event ], 'join' => [], 'where' => [ + ['is_active', '=', TRUE], ['group_type:name', 'CONTAINS', 'Mailing List'], ['OR', [['saved_search_id.expires_date', 'IS NULL'], ['saved_search_id.expires_date', '>', 'NOW()', TRUE]]], ['OR', [['is_hidden', '=', FALSE], [($mode === 'include' ? 'mailing_group.id' : '(NULL)'), 'IS NOT NULL']]], diff --git a/civicrm/Civi/Api4/Service/Autocomplete/ParticipantAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/OptionValueAutocompleteProvider.php similarity index 67% rename from civicrm/Civi/Api4/Service/Autocomplete/ParticipantAutocompleteProvider.php rename to civicrm/Civi/Api4/Service/Autocomplete/OptionValueAutocompleteProvider.php index 2131e3cd8dfdbf5987e44537ee476ce570d1f5ca..08e327c3bff937a353667ae742601e7d1c9ec48f 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/ParticipantAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/OptionValueAutocompleteProvider.php @@ -19,36 +19,34 @@ use Civi\Core\HookInterface; * @service * @internal */ -class ParticipantAutocompleteProvider extends \Civi\Core\Service\AutoService implements HookInterface { +class OptionValueAutocompleteProvider extends \Civi\Core\Service\AutoService implements HookInterface { /** - * Provide default SearchDisplay for Participant autocompletes + * Provide default SearchDisplay for Country autocompletes * * @param \Civi\Core\Event\GenericHookEvent $e */ public static function on_civi_search_defaultDisplay(GenericHookEvent $e) { - if ($e->display['settings'] || $e->display['type'] !== 'autocomplete' || $e->savedSearch['api_entity'] !== 'Participant') { + if ($e->display['settings'] || $e->display['type'] !== 'autocomplete' || $e->savedSearch['api_entity'] !== 'OptionValue') { return; } $e->display['settings'] = [ 'sort' => [ - ['contact_id.sort_name', 'ASC'], - ['event_id.title', 'ASC'], + ['weight', 'ASC'], + ['label', 'ASC'], ], + 'extra' => ['color' => 'color'], 'columns' => [ [ 'type' => 'field', - 'key' => 'contact_id.display_name', - 'rewrite' => '[contact_id.display_name] - [event_id.title]', + 'key' => 'label', + 'icons' => [ + ['field' => 'icon'], + ], ], [ 'type' => 'field', - 'key' => 'role_id:label', - 'rewrite' => '#[id] [role_id:label]', - ], - [ - 'type' => 'field', - 'key' => 'status_id:label', + 'key' => 'description', ], ], ]; diff --git a/civicrm/Civi/Api4/Service/Autocomplete/PledgeAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/PledgeAutocompleteProvider.php index 7e7e22964b141b2b0493072cde90263091764256..3a38d539565d69c8f5cc779ae0b58aaf655806af 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/PledgeAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/PledgeAutocompleteProvider.php @@ -34,7 +34,7 @@ class PledgeAutocompleteProvider extends \Civi\Core\Service\AutoService implemen 'version' => 4, 'select' => [ 'id', - 'contact_id.display_name', + 'contact_id.sort_name', 'amount', 'start_date', 'end_date', @@ -66,8 +66,8 @@ class PledgeAutocompleteProvider extends \Civi\Core\Service\AutoService implemen 'columns' => [ [ 'type' => 'field', - 'key' => 'contact_id.display_name', - 'rewrite' => '[contact_id.display_name] - [amount]', + 'key' => 'contact_id.sort_name', + 'rewrite' => '[contact_id.sort_name] - [amount]', ], [ 'type' => 'field', diff --git a/civicrm/Civi/Api4/Service/Autocomplete/RelationshipAutocompleteProvider.php b/civicrm/Civi/Api4/Service/Autocomplete/RelationshipAutocompleteProvider.php index f86bcbaae6821a386a5f91970f2c11d26df1bee5..bbae3255cf7cea994361d3c8670552dfb3b6fdcb 100644 --- a/civicrm/Civi/Api4/Service/Autocomplete/RelationshipAutocompleteProvider.php +++ b/civicrm/Civi/Api4/Service/Autocomplete/RelationshipAutocompleteProvider.php @@ -38,7 +38,7 @@ class RelationshipAutocompleteProvider extends \Civi\Core\Service\AutoService im [ 'type' => 'field', 'key' => 'relationship_type_id.label_a_b', - 'rewrite' => '[contact_id_a.display_name] [relationship_type_id.label_a_b] [contact_id_b.display_name]', + 'rewrite' => '[contact_id_a.sort_name] [relationship_type_id.label_a_b] [contact_id_b.sort_name]', ], [ 'type' => 'field', diff --git a/civicrm/Civi/Api4/Service/Schema/Joiner.php b/civicrm/Civi/Api4/Service/Schema/Joiner.php index 4d96d3461c2f278980eaf74ce811f0fa2e8d08d8..d42caa170844420c3d2fd0050b1f31aaa9c06aa2 100644 --- a/civicrm/Civi/Api4/Service/Schema/Joiner.php +++ b/civicrm/Civi/Api4/Service/Schema/Joiner.php @@ -78,6 +78,7 @@ class Joiner { */ public static function getExtraJoinSql(array $field, Api4SelectQuery $query): string { $prefix = empty($field['explicit_join']) ? '' : $field['explicit_join'] . '.'; + $prefix .= (empty($field['implicit_join']) ? '' : $field['implicit_join'] . '.'); $idField = $query->getField($prefix . $field['name'] . '.id'); return $idField['sql_name']; } diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/ACLEntityRoleCreationSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/ACLEntityRoleCreationSpecProvider.php deleted file mode 100644 index c6da836a719e3ab0c05e73314b772aa6f02577e5..0000000000000000000000000000000000000000 --- a/civicrm/Civi/Api4/Service/Spec/Provider/ACLEntityRoleCreationSpecProvider.php +++ /dev/null @@ -1,37 +0,0 @@ -<?php - -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ - -namespace Civi\Api4\Service\Spec\Provider; - -use Civi\Api4\Service\Spec\RequestSpec; - -/** - * @service - * @internal - */ -class ACLEntityRoleCreationSpecProvider extends \Civi\Core\Service\AutoService implements Generic\SpecProviderInterface { - - /** - * @inheritDoc - */ - public function modifySpec(RequestSpec $spec) { - $spec->getFieldByName('is_active')->setDefaultValue(1); - } - - /** - * @inheritDoc - */ - public function applies($entity, $action) { - return $entity === 'ACLEntityRole' && $action === 'create'; - } - -} diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/ActionScheduleCreationSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/ActionScheduleCreationSpecProvider.php deleted file mode 100644 index 32173c1ca75e89b80aa2a46285a3fc51bf5b77a9..0000000000000000000000000000000000000000 --- a/civicrm/Civi/Api4/Service/Spec/Provider/ActionScheduleCreationSpecProvider.php +++ /dev/null @@ -1,41 +0,0 @@ -<?php - -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ - -namespace Civi\Api4\Service\Spec\Provider; - -use Civi\Api4\Service\Spec\RequestSpec; - -/** - * @service - * @internal - */ -class ActionScheduleCreationSpecProvider extends \Civi\Core\Service\AutoService implements Generic\SpecProviderInterface { - - /** - * @inheritDoc - */ - public function modifySpec(RequestSpec $spec) { - $spec->getFieldByName('title')->setRequired(TRUE); - $spec->getFieldByName('mapping_id')->setRequired(TRUE); - $spec->getFieldByName('entity_value')->setRequired(TRUE); - $spec->getFieldByName('start_action_date')->setRequiredIf('empty($values.absolute_date)'); - $spec->getFieldByName('absolute_date')->setRequiredIf('empty($values.start_action_date)'); - } - - /** - * @inheritDoc - */ - public function applies($entity, $action) { - return $entity === 'ActionSchedule' && $action === 'create'; - } - -} diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/ActionScheduleSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/ActionScheduleSpecProvider.php new file mode 100644 index 0000000000000000000000000000000000000000..01e84cb3f2add1d15ad6fe27aa2f72c262479fae --- /dev/null +++ b/civicrm/Civi/Api4/Service/Spec/Provider/ActionScheduleSpecProvider.php @@ -0,0 +1,55 @@ +<?php + +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +namespace Civi\Api4\Service\Spec\Provider; + +use Civi\Api4\Service\Spec\RequestSpec; + +/** + * @service + * @internal + */ +class ActionScheduleSpecProvider extends \Civi\Core\Service\AutoService implements Generic\SpecProviderInterface { + + /** + * @inheritDoc + */ + public function modifySpec(RequestSpec $spec) { + if ($spec->getAction() === 'create') { + $spec->getFieldByName('title')->setRequired(TRUE); + $spec->getFieldByName('name')->setRequired(FALSE); + $spec->getFieldByName('mapping_id')->setRequired(TRUE); + $spec->getFieldByName('entity_value')->setRequired(TRUE); + $spec->getFieldByName('start_action_offset')->setRequiredIf('empty($values.absolute_date)'); + $spec->getFieldByName('start_action_unit')->setRequiredIf('empty($values.absolute_date)'); + $spec->getFieldByName('start_action_condition')->setRequiredIf('empty($values.absolute_date)'); + $spec->getFieldByName('start_action_date')->setRequiredIf('empty($values.absolute_date)'); + $spec->getFieldByName('absolute_date')->setRequiredIf('empty($values.start_action_date)'); + $spec->getFieldByName('group_id')->setRequiredIf('!empty($values.limit_to) && !empty($values.recipient) && $values.recipient === "group"'); + $spec->getFieldByName('recipient_manual')->setRequiredIf('!empty($values.limit_to) && !empty($values.recipient) && $values.recipient === "manual"'); + $spec->getFieldByName('subject')->setRequiredIf('!empty($values.is_active) && (empty($values.mode) || $values.mode !== "SMS")'); + $spec->getFieldByName('body_html')->setRequiredIf('!empty($values.is_active) && (empty($values.mode) || $values.mode !== "SMS")'); + $spec->getFieldByName('sms_body_text')->setRequiredIf('!empty($values.is_active) && !empty($values.mode) && $values.mode !== "Email"'); + $spec->getFieldByName('sms_provider_id')->setRequiredIf('!empty($values.is_active) && !empty($values.mode) && $values.mode !== "Email"'); + $spec->getFieldByName('repetition_frequency_interval')->setRequiredIf('!empty($values.is_repeat)'); + $spec->getFieldByName('end_frequency_interval')->setRequiredIf('!empty($values.is_repeat)'); + } + } + + /** + * @inheritDoc + */ + public function applies($entity, $action) { + return $entity === 'ActionSchedule'; + } + +} diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/AddressGetSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/AddressGetSpecProvider.php index 82cdd50cf6546656cb17463bf7b7f516ceaba131..9c66e5962775078d18f1d197dfea51be46784c09 100644 --- a/civicrm/Civi/Api4/Service/Spec/Provider/AddressGetSpecProvider.php +++ b/civicrm/Civi/Api4/Service/Spec/Provider/AddressGetSpecProvider.php @@ -27,11 +27,6 @@ class AddressGetSpecProvider extends \Civi\Core\Service\AutoService implements G * @param \Civi\Api4\Service\Spec\RequestSpec $spec */ public function modifySpec(RequestSpec $spec) { - // These fields do not have any sensible "name" pseudoconstant so should just use the ID - foreach (['state_province_id', 'country_id', 'county_id'] as $name) { - $spec->getFieldByName($name)->setSuffixes(['label', 'abbr']); - } - // Proximity search field $field = new FieldSpec('proximity', 'Address', 'Boolean'); $field->setLabel(ts('Address Proximity')) diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/CustomGroupSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/CustomGroupSpecProvider.php deleted file mode 100644 index 9d967305d8c806a4be4057b1ff4b73a0c5783fa1..0000000000000000000000000000000000000000 --- a/civicrm/Civi/Api4/Service/Spec/Provider/CustomGroupSpecProvider.php +++ /dev/null @@ -1,40 +0,0 @@ -<?php - -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ - -namespace Civi\Api4\Service\Spec\Provider; - -use Civi\Api4\Service\Spec\RequestSpec; - -/** - * @service - * @internal - */ -class CustomGroupSpecProvider extends \Civi\Core\Service\AutoService implements Generic\SpecProviderInterface { - - /** - * @inheritDoc - */ - public function modifySpec(RequestSpec $spec) { - $action = $spec->getAction(); - - $spec->getFieldByName('extends') - ->setSuffixes(['name', 'label', 'grouping']); - } - - /** - * @inheritDoc - */ - public function applies($entity, $action) { - return $entity === 'CustomGroup'; - } - -} diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/CustomValueSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/CustomValueSpecProvider.php index 2cb57becd162509a74ec3c2411e2914ef1083237..1da2127af6644e1f715d1ee8fa1eff1b3c9d17d7 100644 --- a/civicrm/Civi/Api4/Service/Spec/Provider/CustomValueSpecProvider.php +++ b/civicrm/Civi/Api4/Service/Spec/Provider/CustomValueSpecProvider.php @@ -31,8 +31,10 @@ class CustomValueSpecProvider extends \Civi\Core\Service\AutoService implements $idField->setType('Field'); $idField->setInputType('Number'); $idField->setColumnName('id'); + $idField->setNullable('false'); $idField->setTitle(ts('Custom Value ID')); $idField->setReadonly(TRUE); + $idField->setNullable(FALSE); $spec->addFieldSpec($idField); $entityField = new FieldSpec('entity_id', $spec->getEntity(), 'Integer'); @@ -43,6 +45,7 @@ class CustomValueSpecProvider extends \Civi\Core\Service\AutoService implements $entityField->setRequired($action === 'create'); $entityField->setFkEntity('Contact'); $entityField->setReadonly(TRUE); + $entityField->setNullable(FALSE); $entityField->setInputType('EntityRef'); $spec->addFieldSpec($entityField); } diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/EmailCreationSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/EmailCreationSpecProvider.php index 761df4da39ab46289a77513d1311291e388cd351..83598ae350cf87ef9bdf10a58671b5a412632dbe 100644 --- a/civicrm/Civi/Api4/Service/Spec/Provider/EmailCreationSpecProvider.php +++ b/civicrm/Civi/Api4/Service/Spec/Provider/EmailCreationSpecProvider.php @@ -30,7 +30,7 @@ class EmailCreationSpecProvider extends \Civi\Core\Service\AutoService implement $spec->getFieldByName('is_primary')->setRequired(FALSE); $defaultLocationType = \CRM_Core_BAO_LocationType::getDefault()->id ?? NULL; - $spec->getFieldByName('location_type_id')->setDefaultValue($defaultLocationType); + $spec->getFieldByName('location_type_id')->setDefaultValue($defaultLocationType ? (int) $defaultLocationType : NULL); } /** diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/Generic/SpecProviderInterface.php b/civicrm/Civi/Api4/Service/Spec/Provider/Generic/SpecProviderInterface.php index 1f2fe6671e8853a4f2de84c9d70351f1e1ed707c..b66fb6d4851aa77074f201e7fdab180f1d400323 100644 --- a/civicrm/Civi/Api4/Service/Spec/Provider/Generic/SpecProviderInterface.php +++ b/civicrm/Civi/Api4/Service/Spec/Provider/Generic/SpecProviderInterface.php @@ -29,9 +29,12 @@ interface SpecProviderInterface { /** * @param string $entity * @param string $action + * Optional @param array $values + * $values from the api getFields request. + * This param works but has not been added to the interface for the sake of backward-compatability. * * @return bool */ - public function applies($entity, $action); + public function applies(string $entity, string $action/*, array $values = []*/); } diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/GetActionDefaultsProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/GetActionDefaultsProvider.php index a8e8616531d7d4a2fdbda383b01bd658dbbad7b2..45b14c25a51749af87f800a19932851aa1e0d1c9 100644 --- a/civicrm/Civi/Api4/Service/Spec/Provider/GetActionDefaultsProvider.php +++ b/civicrm/Civi/Api4/Service/Spec/Provider/GetActionDefaultsProvider.php @@ -27,18 +27,18 @@ class GetActionDefaultsProvider extends \Civi\Core\Service\AutoService implement // Exclude deleted records from api Get by default $isDeletedField = $spec->getFieldByName('is_deleted'); if ($isDeletedField) { - $isDeletedField->setDefaultValue('0'); + $isDeletedField->setDefaultValue(FALSE); } // Exclude test records from api Get by default $isTestField = $spec->getFieldByName('is_test'); if ($isTestField) { - $isTestField->setDefaultValue('0'); + $isTestField->setDefaultValue(FALSE); } $isTemplateField = $spec->getFieldByName('is_template'); if ($isTemplateField) { - $isTemplateField->setDefaultValue('0'); + $isTemplateField->setDefaultValue(FALSE); } } diff --git a/civicrm/Civi/Api4/Service/Spec/Provider/UserJobSpecProvider.php b/civicrm/Civi/Api4/Service/Spec/Provider/UserJobSpecProvider.php deleted file mode 100644 index e15274f755d23b61a2d0276d628f554b9fdfa7cf..0000000000000000000000000000000000000000 --- a/civicrm/Civi/Api4/Service/Spec/Provider/UserJobSpecProvider.php +++ /dev/null @@ -1,39 +0,0 @@ -<?php - -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ - -namespace Civi\Api4\Service\Spec\Provider; - -use Civi\Api4\Service\Spec\RequestSpec; -use Civi\Core\Service\AutoService; - -/** - * @service - * @internal - */ -class UserJobSpecProvider extends AutoService implements Generic\SpecProviderInterface { - - /** - * @inheritDoc - */ - public function modifySpec(RequestSpec $spec): void { - $spec->getFieldByName('job_type') - ->setSuffixes(['name', 'label', 'url']); - } - - /** - * @inheritDoc - */ - public function applies($entity, $action): bool { - return $entity === 'UserJob'; - } - -} diff --git a/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php b/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php index efcb8b0d65f7939ecd20fa570190a6572e70c106..1b21b781e27f6c71b4716497ee6e352a6d8f0cc0 100644 --- a/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php +++ b/civicrm/Civi/Api4/Service/Spec/SpecFormatter.php @@ -26,6 +26,8 @@ class SpecFormatter { public static function arrayToField(array $data, $entity) { $dataTypeName = self::getDataType($data); + $hasDefault = isset($data['default']) && $data['default'] !== ''; + // Custom field if (!empty($data['custom_group_id'])) { $field = new CustomFieldSpec($data['name'], $entity, $dataTypeName); if (strpos($entity, 'Custom_') !== 0) { @@ -57,38 +59,47 @@ class SpecFormatter { } $field->setReadonly($data['is_view']); } + // Core field else { $name = $data['name'] ?? NULL; $field = new FieldSpec($name, $entity, $dataTypeName); $field->setType('Field'); $field->setColumnName($name); $field->setNullable(empty($data['required'])); - $field->setRequired(!empty($data['required']) && empty($data['default'])); + $field->setRequired(!empty($data['required']) && !$hasDefault && $name !== 'id'); $field->setTitle($data['title'] ?? NULL); $field->setLabel($data['html']['label'] ?? NULL); $field->setLocalizable($data['localizable'] ?? FALSE); if (!empty($data['pseudoconstant'])) { - // Do not load options if 'prefetch' is explicitly FALSE - if (!isset($data['pseudoconstant']['prefetch']) || $data['pseudoconstant']['prefetch'] === FALSE) { + // Do not load options if 'prefetch' is disabled + if (($data['pseudoconstant']['prefetch'] ?? NULL) !== 'disabled') { $field->setOptionsCallback([__CLASS__, 'getOptions']); } - // These suffixes are always supported if a field has options - $suffixes = ['name', 'label']; - // Add other columns specified in schema (e.g. 'abbrColumn') - foreach (array_diff(FormattingUtil::$pseudoConstantSuffixes, $suffixes) as $suffix) { - if (!empty($data['pseudoconstant'][$suffix . 'Column'])) { - $suffixes[] = $suffix; - } + // Explicitly declared suffixes + if (!empty($data['pseudoconstant']['suffixes'])) { + $suffixes = $data['pseudoconstant']['suffixes']; } - if (!empty($data['pseudoconstant']['optionGroupName'])) { - $suffixes = CoreUtil::getOptionValueFields($data['pseudoconstant']['optionGroupName'], 'name'); + else { + // These suffixes are always supported if a field has options + $suffixes = ['name', 'label']; + // Add other columns specified in schema (e.g. 'abbrColumn') + foreach (array_diff(FormattingUtil::$pseudoConstantSuffixes, $suffixes) as $suffix) { + if (!empty($data['pseudoconstant'][$suffix . 'Column'])) { + $suffixes[] = $suffix; + } + } + if (!empty($data['pseudoconstant']['optionGroupName'])) { + $suffixes = CoreUtil::getOptionValueFields($data['pseudoconstant']['optionGroupName'], 'name'); + } } $field->setSuffixes($suffixes); } $field->setReadonly(!empty($data['readonly'])); } + if ($hasDefault) { + $field->setDefaultValue(FormattingUtil::convertDataType($data['default'], $dataTypeName)); + } $field->setSerialize($data['serialize'] ?? NULL); - $field->setDefaultValue($data['default'] ?? NULL); $field->setDescription($data['description'] ?? NULL); $field->setDeprecated($data['deprecated'] ?? FALSE); self::setInputTypeAndAttrs($field, $data, $dataTypeName); @@ -276,6 +287,7 @@ class SpecFormatter { $map = [ 'Select Date' => 'Date', 'Link' => 'Url', + 'Autocomplete-Select' => 'EntityRef', ]; $inputType = $map[$inputType] ?? $inputType; if ($dataTypeName === 'ContactReference' || $dataTypeName === 'EntityReference') { @@ -335,6 +347,11 @@ class SpecFormatter { $inputAttrs['filter'] = $filters; } } + // Custom autocompletes + if (!empty($data['option_group_id']) && $inputType === 'EntityRef') { + $fieldSpec->setFkEntity('OptionValue'); + $inputAttrs['filter']['option_group_id'] = $data['option_group_id']; + } $fieldSpec ->setInputType($inputType) ->setInputAttrs($inputAttrs); diff --git a/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php b/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php index b59426551af56f077d9922b97700c16c2139b363..80ce71555a03b09d3f69ffc10f470fd1339bddf0 100644 --- a/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php +++ b/civicrm/Civi/Api4/Service/Spec/SpecGatherer.php @@ -66,7 +66,7 @@ class SpecGatherer extends AutoService { } foreach ($this->specProviders as $provider) { - if ($provider->applies($entity, $action)) { + if ($provider->applies($entity, $action, $specification->getValues())) { $provider->modifySpec($specification); } } @@ -91,9 +91,6 @@ class SpecGatherer extends AutoService { $DAOFields = $this->getDAOFields($entity); foreach ($DAOFields as $DAOField) { - if ($DAOField['name'] == 'id' && $action == 'create') { - $DAOField['required'] = FALSE; - } if (array_key_exists('contactType', $DAOField) && $spec->getValue('contact_type') && $DAOField['contactType'] != $spec->getValue('contact_type')) { continue; } diff --git a/civicrm/Civi/Api4/Utils/CoreUtil.php b/civicrm/Civi/Api4/Utils/CoreUtil.php index 865aa7be14aebb13808134d2b639759a5b542f3b..473c6ff80321a2efca3a0a082b9e163bdf770a4d 100644 --- a/civicrm/Civi/Api4/Utils/CoreUtil.php +++ b/civicrm/Civi/Api4/Utils/CoreUtil.php @@ -81,6 +81,15 @@ class CoreUtil { return self::getInfoItem($entityName, 'primary_key')[0] ?? 'id'; } + /** + * Get name of field(s) to display in search context + * @param string $entityName + * @return array + */ + public static function getSearchFields(string $entityName): array { + return self::getInfoItem($entityName, 'search_fields') ?: []; + } + /** * Get table name of given entity * @@ -366,20 +375,28 @@ class CoreUtil { */ public static function getSqlFunctions(): array { $fns = []; - foreach (glob(\Civi::paths()->getPath('[civicrm.root]/Civi/Api4/Query/SqlFunction*.php')) as $file) { - $matches = []; - if (preg_match('/(SqlFunction[A-Z_]+)\.php$/', $file, $matches)) { - $className = '\Civi\Api4\Query\\' . $matches[1]; - if (is_subclass_of($className, '\Civi\Api4\Query\SqlFunction')) { - $fns[] = [ - 'name' => $className::getName(), - 'title' => $className::getTitle(), - 'description' => $className::getDescription(), - 'params' => $className::getParams(), - 'category' => $className::getCategory(), - 'dataType' => $className::getDataType(), - 'options' => CoreUtil::formatOptionList($className::getOptions(), ['id', 'name', 'label']), - ]; + $path = 'Civi/Api4/Query/SqlFunction*.php'; + // Search CiviCRM core + all active extensions + $directories = [\Civi::paths()->getPath("[civicrm.root]/$path")]; + foreach (\CRM_Extension_System::singleton()->getMapper()->getActiveModuleFiles() as $ext) { + $directories[] = \CRM_Utils_File::addTrailingSlash(dirname($ext['filePath'])) . $path; + } + foreach ($directories as $directory) { + foreach (glob($directory) as $file) { + $matches = []; + if (preg_match('/(SqlFunction[A-Z_]+)\.php$/', $file, $matches)) { + $className = '\Civi\Api4\Query\\' . $matches[1]; + if (is_subclass_of($className, '\Civi\Api4\Query\SqlFunction')) { + $fns[] = [ + 'name' => $className::getName(), + 'title' => $className::getTitle(), + 'description' => $className::getDescription(), + 'params' => $className::getParams(), + 'category' => $className::getCategory(), + 'dataType' => $className::getDataType(), + 'options' => CoreUtil::formatOptionList($className::getOptions(), ['id', 'name', 'label']), + ]; + } } } } diff --git a/civicrm/Civi/Api4/Utils/FormattingUtil.php b/civicrm/Civi/Api4/Utils/FormattingUtil.php index ca0a681260d4de90a0b429668414618e2cdfa336..4a63e4db4192c1bea7603d9a9a853c02685b1b6b 100644 --- a/civicrm/Civi/Api4/Utils/FormattingUtil.php +++ b/civicrm/Civi/Api4/Utils/FormattingUtil.php @@ -232,14 +232,19 @@ class FormattingUtil { } } foreach ($result as $key => $value) { + // Skip null values or values that have already been unset by `formatOutputValue` functions + if (!isset($result[$key])) { + continue; + } $fieldExpr = SqlExpression::convert($selectAliases[$key] ?? $key); $fieldName = \CRM_Utils_Array::first($fieldExpr->getFields() ?? ''); $baseName = $fieldName ? \CRM_Utils_Array::first(explode(':', $fieldName)) : NULL; $field = $fields[$fieldName] ?? $fields[$baseName] ?? NULL; $dataType = $field['data_type'] ?? ($fieldName == 'id' ? 'Integer' : NULL); - // Allow Sql Functions to do special formatting and/or alter the $dataType + // Allow Sql Functions to do alter the value and/or $dataType if (method_exists($fieldExpr, 'formatOutputValue') && is_string($value)) { - $result[$key] = $value = $fieldExpr->formatOutputValue($value, $dataType); + $fieldExpr->formatOutputValue($dataType, $result, $key); + $value = $result[$key]; } if (!empty($field['output_formatters'])) { self::applyFormatters($result, $fieldName, $field, $value); diff --git a/civicrm/Civi/Core/Container.php b/civicrm/Civi/Core/Container.php index c229d8d814c89c60666c687ea4c5c2bf843fa9a8..bbe0527653001260fda51f2678b9c351d08762b9 100644 --- a/civicrm/Civi/Core/Container.php +++ b/civicrm/Civi/Core/Container.php @@ -248,11 +248,23 @@ class Container { $container->setDefinition('crypto.jwt', new Definition('Civi\Crypto\CryptoJwt', [])) ->setPublic(TRUE); + $bootServiceTypes = [ + 'cache.settings' => \CRM_Utils_Cache_Interface::class, + 'dispatcher.boot' => CiviEventDispatcher::class, + 'lockManager' => LockManager::class, + 'paths' => Paths::class, + 'runtime' => \CRM_Core_Config_Runtime::class, + 'settings_manager' => SettingsManager::class, + 'userPermissionClass' => \CRM_Core_Permission_Base::class, + 'userSystem' => \CRM_Utils_System_Base::class, + ]; if (empty(\Civi::$statics[__CLASS__]['boot'])) { throw new \RuntimeException('Cannot initialize container. Boot services are undefined.'); } foreach (\Civi::$statics[__CLASS__]['boot'] as $bootService => $def) { - $container->setDefinition($bootService, new Definition())->setSynthetic(TRUE)->setPublic(TRUE); + $container->setDefinition($bootService, new Definition($bootServiceTypes[$bootService] ?? NULL)) + ->setSynthetic(TRUE) + ->setPublic(TRUE); } // Expose legacy singletons as services in the container. diff --git a/civicrm/Civi/Core/Themes.php b/civicrm/Civi/Core/Themes.php index ebf698222746fb0e3f128fa627736f68a25e40f3..05469ba937107a24347732a11b6a7d20495ff0cc 100644 --- a/civicrm/Civi/Core/Themes.php +++ b/civicrm/Civi/Core/Themes.php @@ -57,7 +57,7 @@ class Themes extends \Civi\Core\Service\AutoService { * @param \CRM_Utils_Cache_Interface $cache */ public function __construct($cache = NULL) { - $this->cache = $cache ? $cache : Civi::cache('long'); + $this->cache = $cache ?: Civi::cache('long'); } /** diff --git a/civicrm/Civi/Core/Url.php b/civicrm/Civi/Core/Url.php new file mode 100644 index 0000000000000000000000000000000000000000..7d7ee73cf4dba4135ea258eb28e9967e85b8d2b0 --- /dev/null +++ b/civicrm/Civi/Core/Url.php @@ -0,0 +1,713 @@ +<?php + +namespace Civi\Core; + +/** + * Generate a URL. + * + * As input, this class takes a *logical URI*, which may include a range of configurable sub-parts (path, query, fragment, etc). + * + * As output, it provides a *concrete URL* that can be used by a web-browser to make requests. + * + * The typical way to construct a URL object is through `Civi::url()`, which features more + * documentation and examples. + * + * This class-model has several properties. Most properties follow one of two patterns: + * + * - URL components (such as `path`, `query`, `fragment`, `fragmentQuery`). + * These have getter/setter/adder methods. They are stored as raw URL substrings. + * - Smart flags (such as `preferFormat`, `ssl`, `cacheCode`). + * These have getter/setter methods. They are stored as simple types (booleans or strings). + * They also have aliases via `__construct(...$flags)` and `useFlags($flags)` + * + * URI components (`path`, `query`, etc) can be understood as raw-strings or data-arrays. Compare: + * + * - "Path": "civicrm/foo+bar/whiz+bang" vs ['civicrm', 'foo bar', 'whiz bang'] + * - "Query: "a=100&b=Hello+world" vs ["a" => 100, "b" => "Hello world"] + * - "Fragment": "#/mailing/new" vs ["/mailing", "/new"] + * - "Fragment Query": "angularDebug=1" vs ["angularDebug" => 1] + * + * The raw-string is supported from all angles (storage+getters+setters+adders). + * Additionally, the setters+adders accept arrays. + * + * This cl + * @see \Civi::url() + */ +final class Url implements \JsonSerializable { + + /** + * @var string + * Ex: 'frontend', 'backend' + */ + private $scheme; + + /** + * @var string + * Ex: 'civicrm/dashboard' + */ + private $path; + + /** + * @var string + * Ex: abc=123&xyz=456 + */ + private $query; + + /** + * @var string|null + */ + private $fragment; + + /** + * @var string|null + */ + private $fragmentQuery; + + /** + * Whether to auto-append the cache-busting resource code. + * + * @var bool|null + * NULL definition TBD (either "off" or "automatic"?) + */ + private $cacheCode; + + /** + * Preferred format. + * + * Note that this is not strictly guaranteed. It may sometimes return absolute URLs even if you + * prefer relative URLs (e.g. if there's no easy/correct way to form a relative URL). + * + * @var string|null + * 'relative' or 'absolute' + * NULL means "decide automatically" + */ + private $preferFormat; + + /** + * Whether to HTML-encode the output. + * + * Note: Why does this exist? It's insane, IMHO. There's nothing intrinsically HTML-y about URLs. + * However, practically speaking, this class aims to replace `CRM_Utils_System::url()` which + * performed HTML encoding by default. Retaining some easy variant of this flag should make the + * off-ramp a bit smoother. + * + * @var bool + */ + private $htmlEscape = FALSE; + + /** + * @var bool|null + * NULL means "decide automatically" + */ + private $ssl = NULL; + + /** + * List of values to mix-in to the final/rendered URL. + * + * @var string[]|null + */ + private $vars; + + /** + * Define a dynamic lookup for variables. + * + * @var callable|null + */ + private $varsCallback; + + /** + * @param string|null $logicalUri + * @param string|null $flags + * @see \Civi::url() + */ + public function __construct(?string $logicalUri = NULL, ?string $flags = NULL) { + if ($logicalUri !== NULL) { + $this->useUri($logicalUri); + } + if ($flags !== NULL) { + $this->useFlags($flags); + } + } + + /** + * Parse a logical URI. + * + * @param string $logicalUri + * @return void + */ + protected function useUri(string $logicalUri): void { + if ($logicalUri[0] === '/') { + // Scheme-relative path implies a preferences to inherit current scheme. + $logicalUri = 'current:' . $logicalUri; + } + elseif ($logicalUri[0] === '[') { + $logicalUri = 'asset://' . $logicalUri; + } + // else: Should we fill in scheme when there is NO indicator (eg $logicalUri===`civicrm/event/info')? + // It could be a little annoying to write `frontend://` everywhere. It's not hard to add this. + // But it's ambiguous whether `current://` or `default://` is the better interpretation. + // I'd sooner vote for something explicit but short -- eg aliases (f<=>frontend; d<=>default) + // - `Civi::url('f://civicrm/event/info')` + // - `Civi::url('civicrm/event/info', 'f')`. + + $parsed = parse_url($logicalUri); + $this->scheme = $parsed['scheme'] ?? NULL; + $this->path = $parsed['host'] ?? NULL; + if (isset($parsed['path'])) { + $this->path .= $parsed['path']; + } + $this->query = $parsed['query'] ?? NULL; + $fragmentParts = isset($parsed['fragment']) ? explode('?', $parsed['fragment'], 2) : []; + $this->fragment = $fragmentParts[0] ?? NULL; + $this->fragmentQuery = $fragmentParts[1] ?? NULL; + } + + /** + * @return string + * Ex: 'frontend' or 'backend' + */ + public function getScheme() { + return $this->scheme; + } + + /** + * @param string $scheme + * Ex: 'frontend' or 'backend' + */ + public function setScheme(string $scheme): Url { + $this->scheme = $scheme; + return $this; + } + + /** + * @return string|null + * Ex: 'civicrm/event/info' + * Ex: 'civicrm/hello+world%3F' + */ + public function getPath() { + return $this->path; + } + + /** + * @param string|string[]|null $path + * Ex: 'civicrm/event/info' + * Ex: 'civicrm/hello+world%3F' + * Ex: ['civicrm', 'hello world?'] + */ + public function setPath($path): Url { + $this->path = static::encodePath($path); + return $this; + } + + /** + * Add new sections to the path. + * + * When adding new parts to the path, there is an implicit delimiter ('/') between parts. + * + * @param string|string[] $path + * Ex: 'civicrm/event/info' + * Ex: 'civicrm/hello+world%3F' + * Ex: ['civicrm', 'hello world?'] + * @return $this + */ + public function addPath($path): Url { + static::appendString($this->path, '/', static::encodePath($path)); + return $this; + } + + /** + * @return string|null + * Ex: 'name=John+Doughnut&id=9' + */ + public function getQuery(): ?string { + return $this->query; + } + + /** + * @param string|string[]|null $query + * Ex: 'name=John+Doughnut&id=9' + * Ex: ['name' => 'John Doughnut', 'id' => 9] + * @return $this + */ + public function setQuery($query): Url { + if (is_array($query)) { + $query = \CRM_Utils_System::makeQueryString($query); + } + $this->query = $query; + return $this; + } + + /** + * @param string|string[] $query + * Ex: 'name=John+Doughnut&id=9' + * Ex: ['name' => 'John Doughnut', 'id' => 9] + * @return $this + */ + public function addQuery($query): Url { + if (is_array($query)) { + $query = \CRM_Utils_System::makeQueryString($query); + } + static::appendString($this->query, '&', $query); + return $this; + } + + /** + * Get the primary fragment. + * + * NOTE: This is the primary fragment identifier (as in `#id` or `#/client/side/route`). + * and does not include fregment queries. (as in '#?angularDebug=1'). + * + * @return string|null + * Ex: '/mailing/new' + * Ex: '/foo+bar%3F/newish%3F' + * @see Url::getFragmentQuery() + * @see Url::composeFragment() + */ + public function getFragment(): ?string { + return $this->fragment; + } + + /** + * Replace the fragment. + * + * NOTE: This is the primary fragment identifier (as in `#id` or `#/client/side/route`). + * and does not include fregment queries. (as in '#?angularDebug=1'). + * + * @param string|string[]|null $fragment + * Ex: '/mailing/new' + * Ex: '/foo+bar/newish%3F' + * Ex: ['', 'foo bar', 'newish?'] + * @return $this + * @see Url::setFragmentQuery() + * @see url::composeFragment() + */ + public function setFragment($fragment): Url { + $this->fragment = static::encodePath($fragment); + return $this; + } + + /** + * Add to fragment. + * + * @param string|string[] $fragment + * Ex: 'mailing/new' + * Ex: 'foo+bar/newish%3F' + * Ex: ['foo bar', 'newish?'] + * @return $this + */ + public function addFragment($fragment): Url { + static::appendString($this->fragment, '/', static::encodePath($fragment)); + return $this; + } + + /** + * @return string|null + * Ex: 'name=John+Doughnut&id=9' + */ + public function getFragmentQuery(): ?string { + return $this->fragmentQuery; + } + + /** + * @param string|string[]|null $fragmentQuery + * Ex: 'name=John+Doughnut&id=9' + * Ex: ['name' => 'John Doughnut', 'id' => 9] + * @return $this + */ + public function setFragmentQuery($fragmentQuery) { + if (is_array($fragmentQuery)) { + $fragmentQuery = \CRM_Utils_System::makeQueryString($fragmentQuery); + } + $this->fragmentQuery = $fragmentQuery; + return $this; + } + + /** + * @param string|array $fragmentQuery + * Ex: 'name=John+Doughnut&id=9' + * Ex: ['name' => 'John Doughnut', 'id' => 9] + * @return $this + */ + public function addFragmentQuery($fragmentQuery): Url { + if (is_array($fragmentQuery)) { + $fragmentQuery = \CRM_Utils_System::makeQueryString($fragmentQuery); + } + static::appendString($this->fragmentQuery, '&', $fragmentQuery); + return $this; + } + + /** + * @return bool|null + */ + public function getCacheCode(): ?bool { + return $this->cacheCode; + } + + /** + * Specify whether to append a cache-busting code. + * + * @param bool|null $cacheCode + * TRUE: Do append + * FALSE: Do not append + * @return $this; + */ + public function setCacheCode(?bool $cacheCode) { + $this->cacheCode = $cacheCode; + return $this; + } + + /** + * @return string|null + * 'relative' or 'absolute' + */ + public function getPreferFormat(): ?string { + return $this->preferFormat; + } + + /** + * Specify whether to prefer absolute or relative formatting. + * + * @param string|null $preferFormat + * One of: + * - 'relative': Prefer relative format, if available + * - 'absolute': Prefer absolute format + * - NULL: Decide format based on current environment/request. (Ordinary web UI requests prefer 'relative'.) + */ + public function setPreferFormat(?string $preferFormat): Url { + $this->preferFormat = $preferFormat; + return $this; + } + + /** + * @return bool + */ + public function getHtmlEscape(): bool { + return $this->htmlEscape; + } + + /** + * Specify whether to enable HTML escaping of the final output. + * + * @param bool $htmlEscape + * @return $this + */ + public function setHtmlEscape(bool $htmlEscape): Url { + $this->htmlEscape = $htmlEscape; + return $this; + } + + /** + * @return bool|null + */ + public function getSsl(): ?bool { + return $this->ssl; + } + + /** + * Specify whether the hyperlink should use SSL. + * + * @param bool|null $ssl + * TRUE: Force SSL on. (Convert "http:" to "https:") + * FALSE: Force SSL off. (Convert "https:" to "http:") + * NULL: Inherit current SSL-ness + */ + public function setSsl(?bool $ssl): Url { + $this->ssl = $ssl; + return $this; + } + + /** + * @return string[]|null + */ + public function getVars(): ?array { + return $this->vars; + } + + /** + * Specify a list of variables. After composing all parts of the URL, variables will be replaced + * with their URL-encoded values. + * + * Example: + * Civi::url('frontend://civicrm/greeter?cid=[contact]&msg=[message]') + * ->setVars(['contact' => 123, 'message' => 'Hello to you & you & you!'); + * + * @param string[]|null $vars + * @return $this + */ + public function setVars(?array $vars): Url { + $this->vars = $vars; + return $this; + } + + /** + * Add more variables. After composing all parts of the URL, variables will be replaced + * with their URL-encoded values. + * + * Example: + * Civi::url('frontend://civicrm/greeter?cid=[contact]&msg=[message]') + * ->addVars(['contact' => 123, 'message' => 'Hello to you & you & you!'); + * + * @param string[] $vars + * @return $this + */ + public function addVars(array $vars): Url { + $this->vars = $vars + ($this->vars ?: []); + return $this; + } + + /** + * @return callable|null + */ + public function getVarsCallback(): ?callable { + return $this->varsCallback; + } + + /** + * Configure dynamic lookup for variables. + * + * @param callable|null $varsCallback + * Function(string $varName): ?string + * Determine the string-value of the variable. (May be ''.) + * If the variable is unavailable, return NULL. + * @return $this + */ + public function setVarsCallback(?callable $varsCallback) { + $this->varsCallback = $varsCallback; + return $this; + } + + /** + * Apply a series of flags using short-hand notation. + * + * @param string $flags + * List of flag-letters, such as (a)bsolute or (r)elative + * For a full list, see Civi::url(). + * @see Civi::url() + * @return $this + */ + public function useFlags(string $flags): Url { + $len = strlen($flags); + for ($i = 0; $i < $len; $i++) { + switch ($flags[$i]) { + // (a)bsolute url + case 'a': + $this->preferFormat = 'absolute'; + break; + + // (r)elative url + case 'r': + $this->preferFormat = 'relative'; + break; + + // (h)tml encoding + case 'h': + $this->htmlEscape = TRUE; + break; + + // (t)ext encoding (canonical URL form) + case 't': + $this->htmlEscape = FALSE; + break; + + // (s)sl + case 's'; + $this->ssl = TRUE; + break; + + // (c)ache code for resources + case 'c': + $this->cacheCode = TRUE; + break; + } + } + return $this; + } + + /** + * Render the final URL as a string. + * + * @return string + */ + public function __toString(): string { + $userSystem = \CRM_Core_Config::singleton()->userSystem; + $preferFormat = $this->getPreferFormat() ?: static::detectFormat(); + $scheme = $this->getScheme(); + + if ($scheme === NULL || $scheme === 'current') { + $scheme = static::detectScheme(); + } + + if ($scheme === 'default') { + $scheme = \CRM_Core_Menu::isPublicRoute($this->getPath()) ? 'frontend' : 'backend'; + } + + // Goal: After this switch(), we should have the $scheme, $path, and $query combined. + switch ($scheme) { + case 'assetBuilder': + $assetName = $this->getPath(); + $assetParams = []; + parse_str('' . $this->getQuery(), $assetParams); + $result = \Civi::service('asset_builder')->getUrl($assetName, $assetParams); + break; + + case 'asset': + if (preg_match(';^\[([\w\.]+)\](.*)$;', $this->getPath(), $m)) { + [, $var, $rest] = $m; + $varValue = rtrim(\Civi::paths()->getVariable($var, 'url'), '/'); + $result = $varValue . $rest . $this->composeQuery(); + } + else { + throw new \RuntimeException("Malformed asset path: {$this->getPath()}"); + } + break; + + case 'ext': + $parts = explode('/', $this->getPath(), 2); + $result = \Civi::resources()->getUrl($parts[0], $parts[1] ?? NULL, FALSE) . $this->composeQuery(); + break; + + // Handle 'frontend', 'backend', 'service', and any extras. + default: + $result = $userSystem->getRouteUrl($scheme, $this->getPath(), $this->getQuery()); + if ($result === NULL) { + throw new \RuntimeException("Unknown URL scheme: $scheme"); + } + break; + } + + if ($this->cacheCode) { + $result = \Civi::resources()->addCacheCode($result); + } + + $result .= $this->composeFragment(); + + if ($preferFormat === 'relative') { + $result = \CRM_Utils_Url::toRelative($result); + } + + // TODO decide if the current default is good enough for future + $ssl = $this->getSsl() ?: \CRM_Utils_System::isSSL(); + if ($ssl && str_starts_with($result, 'http:')) { + $result = 'https:' . substr($result, 5); + } + elseif (!$ssl && str_starts_with($result, 'https:')) { + $result = 'http:' . substr($result, 6); + } + + if ($this->vars !== NULL) { + // Replace variables + $result = preg_replace_callback('/\[(\w+)\]/', function($m) { + $var = $m[1]; + if (isset($this->vars[$var])) { + return urlencode($this->vars[$var]); + } + if ($this->varsCallback !== NULL) { + $value = call_user_func($this->varsCallback, $var); + if ($value !== NULL) { + return urlencode($value); + } + } + return "[$var]"; + }, $result); + } + + return $this->htmlEscape ? htmlentities($result) : $result; + } + + #[\ReturnTypeWillChange] + public function jsonSerialize() { + return $this->__toString(); + } + + /** + * @return string + * '' or '?foo=bar' + */ + private function composeQuery(): string { + if ($this->query !== NULL && $this->query !== '') { + return '?' . $this->query; + } + else { + return ''; + } + } + + /** + * @return string + * '' or '#foobar' + */ + private function composeFragment(): string { + $fragment = $this->fragment ?: ''; + if ($this->fragmentQuery !== NULL && $this->fragmentQuery !== '') { + $fragment .= '?' . $this->fragmentQuery; + } + return ($fragment === '') ? '' : "#$fragment"; + } + + private static function detectFormat(): string { + // Some environments may override default - e.g. cv-cli prefers absolute URLs + // WISHLIST: If handling `Job.*`, then 'absolute' + // WISHLIST: If active route is a web-service/web-hook/IPN, then 'absolute' + foreach ($GLOBALS['civicrm_url_defaults'] ?? [] as $default) { + if (isset($default['format'])) { + return $default['format']; + } + } + + // Web UI: Most CiviCRM routes (`CRM_Core_Invoke::invoke()`) and CMS blocks + return 'relative'; + } + + private static function detectScheme(): string { + // Some environments may override default - e.g. cv-cli prefers 'default://'. + // WISHLIST: If handling `Job.*`, then `default://' + // WISHLIST: If active route is a web-service/web-hook/IPN, then 'default://' + foreach ($GLOBALS['civicrm_url_defaults'] ?? [] as $default) { + if (isset($default['scheme'])) { + return $default['scheme']; + } + } + + // Web UI: Most CiviCRM routes (`CRM_Core_Invoke::invoke()`) and CMS blocks + return \CRM_Core_Config::singleton()->userSystem->isFrontEndPage() ? 'frontend' : 'backend'; + } + + /** + * @param string|string[]|null $path + * Ex: 'greet/hello+world/en' + * Ex: ['greet', 'hello world', 'en'] + * @return string|null + * Ex: 'greet/hello+world/en' + */ + private static function encodePath($path): ?string { + if (is_array($path)) { + $encodedArray = array_map('urlencode', $path); + return implode('/', $encodedArray); + } + else { + return $path; + } + } + + private static function appendString(?string &$var, string $separator, ?string $value): void { + if ($value === NULL) { + return; + } + + if ($var === NULL) { + $var = $value; + return; + } + + // Dedupe separators + if (str_ends_with($var, $separator)) { + $var = rtrim($var, $separator); + } + if ($value[0] === $separator) { + $value = ltrim($value, $separator); + } + + $var = $var . $separator . $value; + } + +} diff --git a/civicrm/Civi/Schema/Traits/GuiSpecTrait.php b/civicrm/Civi/Schema/Traits/GuiSpecTrait.php index 888c71d2aec5f4fbdd9df8f1f33a5cefab5addca..36bd073dc8b2267b45f857a8329107e2d990ca24 100644 --- a/civicrm/Civi/Schema/Traits/GuiSpecTrait.php +++ b/civicrm/Civi/Schema/Traits/GuiSpecTrait.php @@ -100,6 +100,16 @@ trait GuiSpecTrait { return $this; } + /** + * @param string $attrName + * @param $attrValue + * @return $this + */ + public function setInputAttr(string $attrName, $attrValue) { + $this->inputAttrs[$attrName] = $attrValue; + return $this; + } + /** * @return bool */ diff --git a/civicrm/Civi/Test/ACLPermissionTrait.php b/civicrm/Civi/Test/ACLPermissionTrait.php index 415a8f6aae77071d745a23c04bc5d9b2590536cc..23368a02a9b74670884fe396d67e73872593c9cd 100644 --- a/civicrm/Civi/Test/ACLPermissionTrait.php +++ b/civicrm/Civi/Test/ACLPermissionTrait.php @@ -120,6 +120,21 @@ trait ACLPermissionTrait { $where = ' contact_a.id > ' . $this->allowedContactId; } + /** + * Only specified contact returned. + * + * @implements CRM_Utils_Hook::aclWhereClause + * + * @param $type + * @param $tables + * @param $whereTables + * @param $contactID + * @param $where + */ + public function aclWhereMultipleContacts($type, &$tables, &$whereTables, &$contactID, &$where) { + $where = " contact_a.id IN (" . implode(', ', $this->allowedContacts) . ")"; + } + /** * Set up a core ACL. * diff --git a/civicrm/Civi/Test/Api3DocTrait.php b/civicrm/Civi/Test/Api3DocTrait.php deleted file mode 100644 index 27440f70fa799ffda93ff0363053f0b1773d546e..0000000000000000000000000000000000000000 --- a/civicrm/Civi/Test/Api3DocTrait.php +++ /dev/null @@ -1,211 +0,0 @@ -<?php - -namespace Civi\Test; - -/** - * Class Api3DocTrait - * @package Civi\Test - * - * This trait defines helper functions for testing and documenting APIv3. In - * particular, it supports a workflow that links a unit-test file to an - * example data file: - * - * - When defining a new API, write a unit test for it. - * - As part of the unit test, use `callAPIAndDocument($entity, $action, ...)`. - * - When the test executes, the inputs and outputs are logged to an example file. - * - You can commit this file to git. - * - Whenever the inputs/output change, they'll be visible in SCM/git because - * the example file also changes. - * - * This trait is intended for use with PHPUnit-based test cases. - */ -trait Api3DocTrait { - use Api3TestTrait; - - /** - * This function exists to wrap api functions. - * so we can ensure they succeed, generate and example & throw exceptions without litterering the test with checks - * - * @param string $entity - * @param string $action - * @param array $params - * @param string $function - * Pass this in to create a generated example. - * @param string $file - * Pass this in to create a generated example. - * @param string $description - * @param string|null $exampleName - * - * @return array|int - */ - public function callAPIAndDocument($entity, $action, $params, $function, $file, $description = "", $exampleName = NULL) { - $params['version'] = $this->_apiversion; - $result = $this->callAPISuccess($entity, $action, $params); - $this->documentMe($entity, $action, $params, $result, $function, $file, $description, $exampleName); - return $result; - } - - /** - * Create test generated example in api/v3/examples. - * - * To turn this off (e.g. on the server) set - * define(DONT_DOCUMENT_TEST_CONFIG ,1); - * in your settings file - * - * @param string $entity - * @param string $action - * @param array $params - * Array as passed to civicrm_api function. - * @param array $result - * Array as received from the civicrm_api function. - * @param string $testFunction - * Calling function - generally __FUNCTION__. - * @param string $testFile - * Called from file - generally __FILE__. - * @param string $description - * Descriptive text for the example file. - * @param string $exampleName - * Name for this example file (CamelCase) - if omitted the action name will be substituted. - */ - private function documentMe($entity, $action, $params, $result, $testFunction, $testFile, $description = "", $exampleName = NULL) { - if ($params['version'] != 3 || (defined('DONT_DOCUMENT_TEST_CONFIG') && DONT_DOCUMENT_TEST_CONFIG)) { - return; - } - $entity = _civicrm_api_get_camel_name($entity); - $action = strtolower($action); - - if (empty($exampleName)) { - // Attempt to convert lowercase action name to CamelCase. - // This is clunky/imperfect due to the convention of all lowercase actions. - $exampleName = \CRM_Utils_String::convertStringToCamel($action); - $knownPrefixes = [ - 'Get', - 'Set', - 'Create', - 'Update', - 'Send', - ]; - foreach ($knownPrefixes as $prefix) { - if (strpos($exampleName, $prefix) === 0 && $prefix != $exampleName) { - $exampleName[strlen($prefix)] = strtoupper($exampleName[strlen($prefix)]); - } - } - } - - $this->tidyExampleResult($result); - if (isset($params['version'])) { - unset($params['version']); - } - // Format multiline description as array - $desc = []; - if (is_string($description) && strlen($description)) { - foreach (explode("\n", $description) as $line) { - $desc[] = trim($line); - } - } - $smarty = \CRM_Core_Smarty::singleton(); - $smarty->assign('testFunction', $testFunction); - $smarty->assign('function', _civicrm_api_get_entity_name_from_camel($entity) . "_$action"); - foreach ($params as $index => $param) { - if (is_string($param)) { - $params[$index] = addslashes($param); - } - } - $smarty->assign('params', $params); - $smarty->assign('entity', $entity); - $smarty->assign('testFile', basename($testFile)); - $smarty->assign('description', $desc); - $smarty->assign('result', $result); - $smarty->assign('action', $action); - - global $civicrm_root; - if (file_exists($civicrm_root . '/tests/templates/documentFunction.tpl')) { - if (!is_dir($civicrm_root . "/api/v3/examples/$entity")) { - mkdir($civicrm_root . "/api/v3/examples/$entity"); - } - $f = fopen($civicrm_root . "/api/v3/examples/$entity/$exampleName.ex.php", "w+b"); - $contents = $smarty->fetch($civicrm_root . '/tests/templates/documentFunction.tpl'); - $contents = \CRM_Core_CodeGen_Util_ArraySyntaxConverter::convert($contents); - fwrite($f, $contents); - fclose($f); - } - } - - /** - * Tidy up examples array so that fields that change often ..don't - * and debug related fields are unset - * - * @param array $result - */ - public function tidyExampleResult(&$result) { - if (!is_array($result)) { - return; - } - $fieldsToChange = [ - 'hash' => '67eac7789eaee00', - 'modified_date' => '2012-11-14 16:02:35', - 'created_date' => '2013-07-28 08:49:19', - 'create_date' => '20120130621222105', - 'application_received_date' => '20130728084957', - 'in_date' => '2013-07-28 08:50:19', - 'scheduled_date' => '20130728085413', - 'approval_date' => '20130728085413', - 'pledge_start_date_high' => '20130726090416', - 'start_date' => '2013-07-29 00:00:00', - 'event_start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'decision_date' => '20130805000000', - ]; - - $keysToUnset = ['xdebug', 'undefined_fields']; - foreach ($keysToUnset as $unwantedKey) { - if (isset($result[$unwantedKey])) { - unset($result[$unwantedKey]); - } - } - if (isset($result['values'])) { - if (!is_array($result['values'])) { - return; - } - $resultArray = &$result['values']; - } - elseif (is_array($result)) { - $resultArray = &$result; - } - else { - return; - } - - foreach ($resultArray as $index => &$values) { - if (!is_array($values)) { - continue; - } - foreach ($values as $key => &$value) { - if (substr($key, 0, 3) == 'api' && is_array($value)) { - if (isset($value['is_error'])) { - // we have a std nested result format - $this->tidyExampleResult($value); - } - else { - foreach ($value as &$nestedResult) { - // this is an alternative syntax for nested results a keyed array of results - $this->tidyExampleResult($nestedResult); - } - } - } - if (in_array($key, $keysToUnset)) { - unset($values[$key]); - break; - } - if (array_key_exists($key, $fieldsToChange) && !empty($value)) { - $value = $fieldsToChange[$key]; - } - if (is_string($value)) { - $value = addslashes($value); - } - } - } - } - -} diff --git a/civicrm/Civi/Test/Api3TestTrait.php b/civicrm/Civi/Test/Api3TestTrait.php index e00452ab9749313cbb76837962450c9cf652a39e..d12f912bdb2106eb0a9a95a7073817d6b353d5b2 100644 --- a/civicrm/Civi/Test/Api3TestTrait.php +++ b/civicrm/Civi/Test/Api3TestTrait.php @@ -54,7 +54,7 @@ trait Api3TestTrait { unset($expected[$value]); } } - $this->assertEquals($result, $expected, "api result array comparison failed " . $prefix . print_r($result, TRUE) . ' was compared to ' . print_r($expected, TRUE)); + $this->assertEquals($result, $expected, 'api result array comparison failed ' . $prefix . print_r($result, TRUE) . ' was compared to ' . print_r($expected, TRUE)); } /** @@ -142,6 +142,17 @@ trait Api3TestTrait { return $result; } + /** + * @deprecated + * @param string $entity + * @param string $action + * @param array $params + * @return array|int + */ + public function callAPIAndDocument($entity, $action, $params) { + return $this->callAPISuccess($entity, $action, $params); + } + /** * wrap api functions. * so we can ensure they succeed & throw exceptions without litterering the test with checks diff --git a/civicrm/Civi/Test/Api4TestTrait.php b/civicrm/Civi/Test/Api4TestTrait.php index 88d52ce21043693a5bcb8ee4442c8e9fbd0855c7..0bfe6bc9d19207117e533c56f6cfff144e18a8ca 100644 --- a/civicrm/Civi/Test/Api4TestTrait.php +++ b/civicrm/Civi/Test/Api4TestTrait.php @@ -2,6 +2,7 @@ namespace Civi\Test; +use Civi\Api4\Generic\AbstractAction; use Civi\Api4\Generic\Result; use Civi\Api4\Service\Spec\Provider\FinancialItemCreationSpecProvider; use Civi\Api4\Utils\CoreUtil; @@ -123,12 +124,16 @@ trait Api4TestTrait { ['default_value', 'IS EMPTY'], ['readonly', 'IS EMPTY'], ], + 'orderBy' => ['required' => 'DESC'], ], 'name'); $extraValues = []; - foreach ($requiredFields as $fieldName => $requiredField) { - if (!isset($values[$fieldName])) { - $extraValues[$fieldName] = $this->getRequiredValue($requiredField); + foreach ($requiredFields as $fieldName => $field) { + if ( + !isset($values[$fieldName]) && + ($field['required'] || AbstractAction::evaluateCondition($field['required_if'], $values + $extraValues)) + ) { + $extraValues[$fieldName] = $this->getRequiredValue($field); } } diff --git a/civicrm/Civi/Test/DbTestTrait.php b/civicrm/Civi/Test/DbTestTrait.php index ff81b0e0d532c6e59aca05512088ed7478c8a92d..bdfcbfe9a809e29ecb8328a0990d79b70fe7f9d7 100644 --- a/civicrm/Civi/Test/DbTestTrait.php +++ b/civicrm/Civi/Test/DbTestTrait.php @@ -111,7 +111,7 @@ trait DbTestTrait { * @param null $message */ public function assertDBRowNotExist($daoName, $id, $message = NULL) { - $message = $message ? $message : "$daoName (#$id) should not exist"; + $message = $message ?: "$daoName (#$id) should not exist"; $value = \CRM_Core_DAO::getFieldValue($daoName, $id, 'id', 'id', TRUE); $this->assertNull($value, $message); } @@ -123,7 +123,7 @@ trait DbTestTrait { * @param null $message */ public function assertDBRowExist($daoName, $id, $message = NULL) { - $message = $message ? $message : "$daoName (#$id) should exist"; + $message = $message ?: "$daoName (#$id) should exist"; $value = \CRM_Core_DAO::getFieldValue($daoName, $id, 'id', 'id', TRUE); $this->assertEquals($id, $value, $message); } diff --git a/civicrm/Civi/Test/EntityTrait.php b/civicrm/Civi/Test/EntityTrait.php index 1dfe24cbfacb36d987eed8ea23f4e69640bca8b9..6a3f0707b99de262ef030aa84894615eec524c21 100644 --- a/civicrm/Civi/Test/EntityTrait.php +++ b/civicrm/Civi/Test/EntityTrait.php @@ -47,15 +47,15 @@ trait EntityTrait { * Create an entity, recording it's details for tearDown. * * @param string $entity - * @param array $params + * @param array $values * @param string $identifier * * @return array */ - protected function createTestEntity(string $entity, array $params, string $identifier = 'default'): array { + protected function createTestEntity(string $entity, array $values, string $identifier = 'default'): array { $result = NULL; try { - $result = \civicrm_api4($entity, 'create', ['values' => $params, 'checkPermissions' => FALSE])->first(); + $result = \civicrm_api4($entity, 'create', ['values' => $values, 'checkPermissions' => FALSE])->single(); $this->setTestEntityID($entity, $result['id'], $identifier); } catch (\CRM_Core_Exception $e) { diff --git a/civicrm/Civi/Test/EventTestTrait.php b/civicrm/Civi/Test/EventTestTrait.php index 73682c12a60359c40b6c819df2bcabc0346cfcac..c494e9470752d282bdc3aee2507ffb198c64c7b2 100644 --- a/civicrm/Civi/Test/EventTestTrait.php +++ b/civicrm/Civi/Test/EventTestTrait.php @@ -13,9 +13,7 @@ namespace Civi\Test; use Civi\Api4\Event; use Civi\Api4\ExampleData; -use Civi\Api4\PriceField; use Civi\Api4\PriceFieldValue; -use Civi\Api4\PriceSet; use Civi\Api4\PriceSetEntity; use Civi\Api4\UFField; use Civi\Api4\UFGroup; @@ -57,9 +55,9 @@ trait EventTestTrait { protected function eventCreatePaid(array $eventParameters = [], array $priceSetParameters = [], string $identifier = 'PaidEvent'): array { $eventParameters = array_merge($this->getEventExampleData(), $eventParameters); $event = $this->eventCreate($eventParameters, $identifier); - if (array_keys($priceSetParameters) !== ['id']) { + if (empty($priceSetParameters['id'])) { try { - $this->eventCreatePriceSet([], $identifier); + $this->eventCreatePriceSet($priceSetParameters, $identifier); $this->setTestEntityID('PriceSetEntity', PriceSetEntity::create(FALSE) ->setValues([ 'entity_table' => 'civicrm_event', @@ -77,6 +75,37 @@ trait EventTestTrait { return $event; } + /** + * Add a discount price set to the given event. + * + * @param string $eventIdentifier + * @param array $discountParameters + * @param array $priceSetParameters + * @param string $identifier + * @param float $fraction + * + * @noinspection PhpUnhandledExceptionInspection + * @noinspection PhpDocMissingThrowsInspection + */ + public function addDiscountPriceSet(string $eventIdentifier = 'PaidEvent', array $discountParameters = [], array $priceSetParameters = [], string $identifier = 'discount', $fraction = .5): void { + $this->eventCreatePriceSet($priceSetParameters, $identifier); + $discountParameters = array_merge([ + 'start_date' => '1 week ago', + 'end_date' => 'tomorrow', + 'entity_id' => $this->getEventID($eventIdentifier), + 'entity_table' => 'civicrm_event', + 'price_set_id' => $this->ids['PriceSet'][$identifier], + ], $discountParameters); + $this->createTestEntity('Discount', $discountParameters, $identifier); + $priceOptions = PriceFieldValue::get(FALSE) + ->addWhere('price_field_id.price_set_id', '=', $this->ids['PriceSet'][$identifier]) + ->execute(); + foreach ($priceOptions as $price) { + PriceFieldValue::update(FALSE)->addWhere('id', '=', $price['id']) + ->setValues(['amount' => round($price['amount'] * $fraction)])->execute(); + } + } + /** * Create an unpaid event. * @@ -281,20 +310,18 @@ trait EventTestTrait { * * @param array $priceSetParameters * @param string $identifier - * - * @throws \CRM_Core_Exception */ private function eventCreatePriceSet(array $priceSetParameters, string $identifier): void { $priceSetParameters = array_merge($priceSetParameters, [ 'min_amount' => 0, 'title' => 'Fundraising dinner', - 'name' => 'fundraising_dinner', + 'name' => $identifier, 'extends:name' => 'CiviEvent', 'financial_type_id:name' => 'Event Fee', ]); - $this->setTestEntityID('PriceSet', PriceSet::create(FALSE)->setValues($priceSetParameters)->execute()->first()['id'], $identifier); - $this->setTestEntityID('PriceField', PriceField::create(FALSE)->setValues([ + $this->createTestEntity('PriceSet', $priceSetParameters, $identifier); + $this->createTestEntity('PriceField', [ 'label' => 'Fundraising Dinner', 'name' => 'fundraising_dinner', 'html_type' => 'Radio', @@ -303,15 +330,14 @@ trait EventTestTrait { 'price_set_id' => $this->ids['PriceSet'][$identifier], 'is_enter_qty' => 1, 'financial_type_id:name' => 'Event Fee', - ])->execute()->first()['id'], $identifier); + ], $identifier); foreach ($this->getPriceFieldOptions() as $optionIdentifier => $priceFieldOption) { - $this->setTestEntityID('PriceFieldValue', PriceFieldValue::create(FALSE)->setValues( + $this->createTestEntity('PriceFieldValue', array_merge([ 'price_field_id' => $this->ids['PriceField'][$identifier], 'financial_type_id:name' => 'Event Fee', - ], $priceFieldOption), - )->execute()->first()['id'], $identifier . '_' . $optionIdentifier); + ], $priceFieldOption), $identifier . '_' . $optionIdentifier); } } @@ -323,12 +349,10 @@ trait EventTestTrait { * functions and would allow over-riding. * * @return array[] - * - * @throws \CRM_Core_Exception */ protected function getPriceFieldOptions(string $identifier = 'PaidEvent'): array { if ($identifier !== 'PaidEvent') { - throw new \CRM_Core_Exception('Only paid event currently supported'); + $this->fail('Only paid event currently supported'); } return [ 'free' => ['name' => 'free', 'label' => 'Complementary', 'amount' => 0], diff --git a/civicrm/Civi/Test/FormTrait.php b/civicrm/Civi/Test/FormTrait.php new file mode 100644 index 0000000000000000000000000000000000000000..799a586a2b9c4260bed3a5151e4816b9ee1acfb9 --- /dev/null +++ b/civicrm/Civi/Test/FormTrait.php @@ -0,0 +1,39 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +namespace Civi\Test; + +use Civi\Test\FormWrappers\EventFormOnline; +use Civi\Test\FormWrappers\EventFormParticipant; + +/** + * Trait for writing tests interacting with QuickForm. + */ +trait FormTrait { + + /** + * @param $formName + * @param $submittedValues + * @param array $urlParameters + * + * @return \Civi\Test\FormWrapper + */ + public function getTestForm($formName, $submittedValues, array $urlParameters = []) { + if ($formName === 'CRM_Event_Form_Participant') { + return new EventFormParticipant($formName, $submittedValues, $urlParameters); + } + if ($formName === 'CRM_Event_Form_Registration_Register') { + return new EventFormOnline($formName, $submittedValues, $urlParameters); + } + return new FormWrapper($formName, $submittedValues, $urlParameters); + } + +} diff --git a/civicrm/Civi/Test/FormWrapper.php b/civicrm/Civi/Test/FormWrapper.php new file mode 100644 index 0000000000000000000000000000000000000000..737ebb9389dd0d94a01b44ac8648476df6987ffd --- /dev/null +++ b/civicrm/Civi/Test/FormWrapper.php @@ -0,0 +1,342 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +namespace Civi\Test; + +use Civi\Api4\Utils\ReflectionUtils; + +class FormWrapper { + + /** + * @var array + */ + private $formValues; + + /** + * @var \CRM_Core_Form + */ + protected $form; + + /** + * @var \CRM_Core_Form[] + */ + protected $subsequentForms = []; + + private $output; + + private $templateVariables; + + private $mail; + + /** + * @return null|array + */ + public function getMail(): ?array { + return $this->mail; + } + + /** + * @return array + */ + public function getFirstMail(): array { + return $this->mail ? (array) reset($this->mail) : []; + } + + public function getFirstMailBody() : string { + return $this->getFirstMail()['body'] ?? ''; + } + + private $redirects; + + private $mailSpoolID; + + private $validation; + + private $originalMailSetting; + + public const CONSTRUCTED = 0; + public const PREPROCESSED = 1; + public const BUILT = 3; + public const VALIDATED = 4; + public const SUBMITTED = 5; + + /** + * @var \CRM_Contribute_Import_Controller|\CRM_Core_Controller|\CRM_Event_Controller_Registration + */ + private $formController; + + /** + * @param string $formName + * @param array $formValues + * @param array $urlParameters + */ + public function __construct(string $formName, array $formValues = [], array $urlParameters = []) { + $this->formValues = $formValues; + $this->setFormObject($formName, $this->formValues, $urlParameters); + } + + /** + * Process a CiviCRM form. + * + * @param int $state + * + * @return \Civi\Test\FormWrapper + */ + public function processForm(int $state = self::SUBMITTED): self { + if ($state > self::CONSTRUCTED) { + $this->form->preProcess(); + } + if ($state > self::PREPROCESSED) { + $this->form->buildForm(); + } + if ($state > self::BUILT) { + $this->validation = $this->form->validate(); + } + if ($state > self::VALIDATED) { + $this->postProcess(); + } + return $this; + } + + /** + * Add another form to process. + * + * @param string $formName + * @param array $formValues + * + * @return $this + */ + public function addSubsequentForm(string $formName, array $formValues = []): FormWrapper { + /* @var \CRM_Core_Form */ + $form = new $formName(); + $form->controller = $this->form->controller; + $_SESSION['_' . $this->form->controller->_name . '_container']['values'][$form->getName()] = $formValues; + $this->subsequentForms[$form->getName()] = $form; + return $this; + } + + /** + * Call a function declared as externally accessible on the form. + * + * This will only call a limited number of form functions that are either + * a) supported from use from outside of core or + * b) direct form flow functions + * + * As this class is expected to be used in extension tests we don't want to + * perpetuate the current issue with internal / unsupported properties being + * accessed willy nilly - so this provides testing support using supported + * or intrinsic functions only. + * + * @param string $name + * @param array $arguments + * + * @return mixed + * @throws \CRM_Core_Exception + * @throws \ReflectionException + */ + public function __call(string $name, array $arguments) { + if (!empty(ReflectionUtils::getCodeDocs((new \ReflectionMethod($this->form, $name)), 'Method')['api'])) { + return call_user_func([$this->form, $name], $arguments); + } + throw new \CRM_Core_Exception($name . ' method not supported for external use'); + } + + /** + * Call form post process function. + * + * @return $this + */ + public function postProcess(): self { + $this->startTrackingMail(); + $this->form->postProcess(); + foreach ($this->subsequentForms as $form) { + $form->preProcess(); + $form->buildForm(); + $form->postProcess(); + } + $this->stopTrackingMail(); + return $this; + } + + /** + * Instantiate form object. + * + * We need to instantiate the form to run preprocess, which means we have to trick it about the request method. + * + * @param string $class + * Name of form class. + * + * @param array $formValues + * + * @param array $urlParameters + */ + private function setFormObject(string $class, array $formValues = [], array $urlParameters = []): void { + $_POST = $formValues; + $this->form = new $class(); + $_SERVER['REQUEST_METHOD'] = 'GET'; + $_REQUEST += $urlParameters; + switch ($class) { + case 'CRM_Event_Cart_Form_Checkout_Payment': + case 'CRM_Event_Cart_Form_Checkout_ParticipantsAndPrices': + $this->form->controller = new \CRM_Event_Cart_Controller_Checkout(); + break; + + case 'CRM_Event_Form_Registration_Register': + $this->form->controller = $this->formController = new \CRM_Event_Controller_Registration(); + break; + + case 'CRM_Event_Form_Registration_Confirm': + case 'CRM_Event_Form_Registration_AdditionalParticipant': + if ($this->formController) { + // Add to the existing form controller. + $this->form->controller = $this->formController; + } + else { + $this->form->controller = $this->formController = new \CRM_Event_Controller_Registration(); + } + break; + + case 'CRM_Contribute_Form_Contribution_Main': + $this->form->controller = new \CRM_Contribute_Controller_Contribution(); + break; + + case 'CRM_Contribute_Form_Contribution_Confirm': + $this->form->controller = new \CRM_Contribute_Controller_Contribution(); + $this->form->controller->setStateMachine(new \CRM_Contribute_StateMachine_Contribution($this->form->controller)); + // The submitted values are on the Main form. + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Main'] = $formValues; + return; + + case 'CRM_Contact_Import_Form_DataSource': + case 'CRM_Contact_Import_Form_MapField': + case 'CRM_Contact_Import_Form_Preview': + $this->form->controller = new \CRM_Contact_Import_Controller(); + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + // The submitted values should be set on one or the other of the forms in the flow. + // For test simplicity we set on all rather than figuring out which ones go where.... + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['DataSource'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['MapField'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Preview'] = $formValues; + return; + + case 'CRM_Contribute_Import_Form_DataSource': + case 'CRM_Contribute_Import_Form_MapField': + case 'CRM_Contribute_Import_Form_Preview': + if ($this->formController) { + // Add to the existing form controller. + $this->form->controller = $this->formController; + } + else { + $this->form->controller = new \CRM_Contribute_Import_Controller(); + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + $this->formController = $this->form->controller; + } + // The submitted values should be set on one or the other of the forms in the flow. + // For test simplicity we set on all rather than figuring out which ones go where.... + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['DataSource'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['MapField'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Preview'] = $formValues; + return; + + case 'CRM_Member_Import_Form_DataSource': + case 'CRM_Member_Import_Form_MapField': + case 'CRM_Member_Import_Form_Preview': + $this->form->controller = new \CRM_Member_Import_Controller(); + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + // The submitted values should be set on one or the other of the forms in the flow. + // For test simplicity we set on all rather than figuring out which ones go where.... + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['DataSource'] = $this->formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['MapField'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Preview'] = $formValues; + return; + + case 'CRM_Event_Import_Form_DataSource': + case 'CRM_Event_Import_Form_MapField': + case 'CRM_Event_Import_Form_Preview': + $this->form->controller = new \CRM_Event_Import_Controller(); + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + // The submitted values should be set on one or the other of the forms in the flow. + // For test simplicity we set on all rather than figuring out which ones go where.... + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['DataSource'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['MapField'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Preview'] = $formValues; + return; + + case 'CRM_Activity_Import_Form_DataSource': + case 'CRM_Activity_Import_Form_MapField': + case 'CRM_Activity_Import_Form_Preview': + $this->form->controller = new \CRM_Activity_Import_Controller(); + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + // The submitted values should be set on one or the other of the forms in the flow. + // For test simplicity we set on all rather than figuring out which ones go where.... + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['DataSource'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['MapField'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Preview'] = $formValues; + return; + + case 'CRM_Custom_Import_Form_DataSource': + case 'CRM_Custom_Import_Form_MapField': + case 'CRM_Custom_Import_Form_Preview': + $this->form->controller = new \CRM_Custom_Import_Controller(); + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + // The submitted values should be set on one or the other of the forms in the flow. + // For test simplicity we set on all rather than figuring out which ones go where.... + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['DataSource'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['MapField'] = $formValues; + $_SESSION['_' . $this->form->controller->_name . '_container']['values']['Preview'] = $formValues; + return; + + case strpos($class, 'Search') !== FALSE: + $this->form->controller = new \CRM_Contact_Controller_Search(); + break; + + case strpos($class, '_Form_') !== FALSE: + $this->form->controller = new \CRM_Core_Controller_Simple($class, $this->form->getName()); + break; + + default: + $this->form->controller = new \CRM_Core_Controller(); + } + + $this->form->controller->setStateMachine(new \CRM_Core_StateMachine($this->form->controller)); + $_SESSION['_' . $this->form->controller->_name . '_container']['values'][$this->form->getName()] = $formValues; + if (isset($formValues['_qf_button_name'])) { + $_SESSION['_' . $this->form->controller->_name . '_container']['_qf_button_name'] = $this->formValues['_qf_button_name']; + } + } + + /** + * Start tracking any emails sent by this form. + * + * @noinspection PhpUnhandledExceptionInspection + */ + private function startTrackingMail(): void { + $this->originalMailSetting = \Civi::settings()->get('mailing_backend'); + \Civi::settings() + ->set('mailing_backend', array_merge((array) $this->originalMailSetting, ['outBound_option' => \CRM_Mailing_Config::OUTBOUND_OPTION_REDIRECT_TO_DB])); + $this->mailSpoolID = (int) \CRM_Core_DAO::singleValueQuery('SELECT MAX(id) FROM civicrm_mailing_spool'); + } + + /** + * Store any mails sent & revert to pre-test behaviour. + * + * @noinspection PhpUnhandledExceptionInspection + */ + private function stopTrackingMail(): void { + $dao = \CRM_Core_DAO::executeQuery('SELECT headers, body FROM civicrm_mailing_spool WHERE id > ' . $this->mailSpoolID . ' ORDER BY id'); + \CRM_Core_DAO::executeQuery('DELETE FROM civicrm_mailing_spool WHERE id > ' . $this->mailSpoolID); + while ($dao->fetch()) { + $this->mail[] = ['headers' => $dao->headers, 'body' => $dao->body]; + } + \Civi::settings()->set('mailing_backend', $this->originalMailSetting); + } + +} diff --git a/civicrm/Civi/Test/FormWrappers/EventFormOnline.php b/civicrm/Civi/Test/FormWrappers/EventFormOnline.php new file mode 100644 index 0000000000000000000000000000000000000000..be3ae7e81c1cc6545687beb7214a032e83d386dd --- /dev/null +++ b/civicrm/Civi/Test/FormWrappers/EventFormOnline.php @@ -0,0 +1,36 @@ +<?php + +namespace Civi\Test\FormWrappers; + +use Civi\Test\FormWrapper; + +/** + * + */ +class EventFormOnline extends FormWrapper { + + /** + * Add another form to process. + * + * @param string $formName + * @param array $formValues + * + * @return $this + */ + public function addSubsequentForm(string $formName, array $formValues = []): FormWrapper { + if ($formName !== 'CRM_Event_Form_Registration_AdditionalParticipant') { + return parent::addSubsequentForm($formName, $formValues); + } + $formNumber = 1; + while (!empty($this->subsequentForms['Participant_' . $formNumber])) { + $formNumber++; + } + /* @var \CRM_Core_Form */ + $form = new $formName(NULL, \CRM_Core_Action::NONE, 'post', 'Participant_' . $formNumber); + $form->controller = $this->form->controller; + $_SESSION['_' . $this->form->controller->_name . '_container']['values'][$form->getName()] = $formValues; + $this->subsequentForms[$form->getName()] = $form; + return $this; + } + +} diff --git a/civicrm/Civi/Test/FormWrappers/EventFormParticipant.php b/civicrm/Civi/Test/FormWrappers/EventFormParticipant.php new file mode 100644 index 0000000000000000000000000000000000000000..f79eb10e0cb551317f6ef352efbff94d139fe1bb --- /dev/null +++ b/civicrm/Civi/Test/FormWrappers/EventFormParticipant.php @@ -0,0 +1,33 @@ +<?php + +namespace Civi\Test\FormWrappers; + +use Civi\Test\FormWrapper; + +class EventFormParticipant extends FormWrapper { + + /** + * @var \CRM_Event_Form_Participant + */ + protected $form; + + /** + * @return int + */ + public function getEventID(): int { + return $this->form->getEventID(); + } + + public function getParticipantID(): int { + return $this->form->getEventID(); + } + + public function getDiscountID(): int { + return $this->form->getDiscountID(); + } + + public function getPriceSetID(): int { + return $this->form->getPriceSetID(); + } + +} diff --git a/civicrm/Civi/Token/TokenRow.php b/civicrm/Civi/Token/TokenRow.php index 0ef5b067e36a0dcf3e0b950a9fe28f1eb3705b05..abaedda56eb81f737307ce046383eb46791ca592 100644 --- a/civicrm/Civi/Token/TokenRow.php +++ b/civicrm/Civi/Token/TokenRow.php @@ -188,11 +188,17 @@ class TokenRow { 'id' => $entityID, ]); $fieldValue = \CRM_Utils_Array::value($customFieldName, $record, ''); - + $originalValue = $fieldValue; // format the raw custom field value into proper display value if (isset($fieldValue)) { $fieldValue = (string) \CRM_Core_BAO_CustomField::displayValue($fieldValue, $customFieldID); } + // This is a bit of a clumsy wy of detecting a link field but if you look into the displayValue + // function you will understand.... By assigning the url as a plain token the text version can + // use it as plain text (not html re-converted which kinda works but not in subject lines) + if (is_string($fieldValue) && is_string($originalValue) && strpos($fieldValue, '<a href') !== FALSE && strpos($originalValue, '<a href') === FALSE) { + $this->format('text/plain')->tokens($entity, $customFieldName, $originalValue); + } return $this->format('text/html')->tokens($entity, $customFieldName, $fieldValue); } @@ -280,7 +286,7 @@ class TokenRow { $htmlTokens[$entity][$field] = \CRM_Utils_String::purifyHTML($value); } else { - $htmlTokens[$entity][$field] = is_object($value) ? $value : htmlentities($value, ENT_QUOTES); + $htmlTokens[$entity][$field] = is_object($value) ? $value : nl2br(htmlentities($value, ENT_QUOTES)); } } } @@ -292,7 +298,8 @@ class TokenRow { foreach ($htmlTokens as $entity => $values) { foreach ($values as $field => $value) { if (!$value instanceof \DateTime && !$value instanceof Money) { - $value = html_entity_decode(strip_tags($value)); + // rtrim removes trailing lines from <p> tags. + $value = rtrim(\CRM_Utils_String::htmlToText($value)); } if (!isset($textTokens[$entity][$field])) { $textTokens[$entity][$field] = $value; diff --git a/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php b/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php index efec672168f902f567b307d4fe7ac4b3e948b52b..b2e7148e1959c8682568d5c39c506b5a6dbb8add 100644 --- a/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php +++ b/civicrm/Civi/WorkflowMessage/GenericWorkflowMessage.php @@ -112,6 +112,8 @@ class GenericWorkflowMessage implements WorkflowMessageInterface { protected function exportExtraTokenContext(array &$export): void { // Tax term is exposed at the generic level as so many templates use it // (e.g. Membership, participant, pledge as well as contributions). + // However, these basically now all implement the ContributionTrait so we + // can hopefully remove from here (after some checking). $export['smartyTokenAlias']['taxTerm'] = 'domain.tax_term'; } diff --git a/civicrm/ang/api4Explorer/Explorer.js b/civicrm/ang/api4Explorer/Explorer.js index 5e13dcb62691ddfc0e87a408b0b91b01097403ac..48180a0f1da6e815710a92f6f511b507df4d7057 100644 --- a/civicrm/ang/api4Explorer/Explorer.js +++ b/civicrm/ang/api4Explorer/Explorer.js @@ -560,7 +560,7 @@ false, true, ['id', 'name', 'label'], - ['id', 'name', 'label', 'abbr', 'description', 'color', 'icon'] + CRM.vars.api4.suffixes ]; format = 'json'; defaultVal = false; diff --git a/civicrm/ang/crmMailing/EditUnsubGroupCtrl.js b/civicrm/ang/crmMailing/EditUnsubGroupCtrl.js index 56070e03e64482df2f7001a8776ba1327bdbeb00..587e0faeee4d44d00ea4c1835035269dee0263ff 100644 --- a/civicrm/ang/crmMailing/EditUnsubGroupCtrl.js +++ b/civicrm/ang/crmMailing/EditUnsubGroupCtrl.js @@ -1,10 +1,12 @@ (function(angular, $, _) { - angular.module('crmMailing').controller('EditUnsubGroupCtrl', function EditUnsubGroupCtrl($scope) { + angular.module('crmMailing').controller('EditUnsubGroupCtrl', function EditUnsubGroupCtrl($scope, crmMailingLoader) { // CRM.crmMailing.groupNames is a global constant - since it doesn't change, we can digest & cache. var mandatoryIds = []; $scope.isUnsubGroupRequired = function isUnsubGroupRequired(mailing) { + crmMailingLoader.getGroupNames(mailing); + if (!_.isEmpty(CRM.crmMailing.groupNames)) { _.each(CRM.crmMailing.groupNames, function(grp) { if (grp.is_hidden == "1") { diff --git a/civicrm/ang/crmMailing/ViewRecipCtrl.js b/civicrm/ang/crmMailing/ViewRecipCtrl.js index 5d137ce6038f94c1db05248262ccb421633a6fb1..05f5463512398f8274f35a6ab9386236f3125867 100644 --- a/civicrm/ang/crmMailing/ViewRecipCtrl.js +++ b/civicrm/ang/crmMailing/ViewRecipCtrl.js @@ -1,81 +1,12 @@ (function(angular, $, _) { - angular.module('crmMailing').controller('ViewRecipCtrl', function ViewRecipCtrl($scope) { - var mids = []; - var gids = []; - var groupNames = []; - var mailings = []; - var civimailings = []; - var civimails = []; - - function getGroupNames(mailing) { - if (-1 == mailings.indexOf(mailing.id)) { - mailings.push(mailing.id); - _.each(mailing.recipients.groups.include, function(id) { - if (-1 == gids.indexOf(id)) { - gids.push(id); - } - }); - _.each(mailing.recipients.groups.exclude, function(id) { - if (-1 == gids.indexOf(id)) { - gids.push(id); - } - }); - _.each(mailing.recipients.groups.base, function(id) { - if (-1 == gids.indexOf(id)) { - gids.push(id); - } - }); - if (!_.isEmpty(gids)) { - CRM.api3('Group', 'get', {'id': {"IN": gids}}).then(function(result) { - _.each(result.values, function(grp) { - if (_.isEmpty(_.where(groupNames, {id: parseInt(grp.id)}))) { - groupNames.push({id: parseInt(grp.id), title: grp.title, is_hidden: grp.is_hidden}); - } - }); - CRM.crmMailing.groupNames = groupNames; - $scope.$parent.crmMailingConst.groupNames = groupNames; - }); - } - } - } - - function getCiviMails(mailing) { - if (-1 == civimailings.indexOf(mailing.id)) { - civimailings.push(mailing.id); - _.each(mailing.recipients.mailings.include, function(id) { - if (-1 == mids.indexOf(id)) { - mids.push(id); - } - }); - _.each(mailing.recipients.mailings.exclude, function(id) { - if (-1 == mids.indexOf(id)) { - mids.push(id); - } - }); - if (!_.isEmpty(mids)) { - CRM.api3('Mailing', 'get', {'id': {"IN": mids}}).then(function(result) { - _.each(result.values, function(mail) { - if (_.isEmpty(_.where(civimails, {id: parseInt(mail.id)}))) { - civimails.push({id: parseInt(mail.id), name: mail.name}); - } - }); - CRM.crmMailing.civiMails = civimails; - $scope.$parent.crmMailingConst.civiMails = civimails; - }); - } - } - } + angular.module('crmMailing').controller('ViewRecipCtrl', function ViewRecipCtrl($scope, crmMailingLoader) { $scope.getIncludesAsString = function(mailing) { var first = true; var names = ''; - if (_.isEmpty(CRM.crmMailing.groupNames)) { - getGroupNames(mailing); - } - if (_.isEmpty(CRM.crmMailing.civiMails)) { - getCiviMails(mailing); - } + crmMailingLoader.getGroupNames(mailing); + crmMailingLoader.getCiviMails(mailing); _.each(mailing.recipients.groups.include, function(id) { var group = _.where(CRM.crmMailing.groupNames, {id: parseInt(id)}); if (group.length) { diff --git a/civicrm/ang/crmMailing/services.js b/civicrm/ang/crmMailing/services.js index 6db1484af5a9b20d49971e236fde24f5722dcb3e..f72a12712f0979197af08970e44ae78652b77eae 100644 --- a/civicrm/ang/crmMailing/services.js +++ b/civicrm/ang/crmMailing/services.js @@ -436,6 +436,79 @@ }; }); + // @deprecated This code was moved from ViewRecipCtrl and is quarantined in this service. + // It's used to fetch data that ought to be available in other ways. + // It would be nice to refactor it out completely. + angular.module('crmMailing').factory('crmMailingLoader', function ($q, crmApi, crmFromAddresses, crmQueue) { + + var mids = []; + var gids = []; + var groupNames = []; + var mailings = []; + var civimailings = []; + var civimails = []; + + return { + // Populates the CRM.crmMailing.groupNames global + getGroupNames: function(mailing) { + if (-1 == mailings.indexOf(mailing.id)) { + mailings.push(mailing.id); + _.each(mailing.recipients.groups.include, function(id) { + if (-1 == gids.indexOf(id)) { + gids.push(id); + } + }); + _.each(mailing.recipients.groups.exclude, function(id) { + if (-1 == gids.indexOf(id)) { + gids.push(id); + } + }); + _.each(mailing.recipients.groups.base, function(id) { + if (-1 == gids.indexOf(id)) { + gids.push(id); + } + }); + if (!_.isEmpty(gids)) { + CRM.api3('Group', 'get', {'id': {"IN": gids}}).then(function(result) { + _.each(result.values, function(grp) { + if (_.isEmpty(_.where(groupNames, {id: parseInt(grp.id)}))) { + groupNames.push({id: parseInt(grp.id), title: grp.title, is_hidden: grp.is_hidden}); + } + }); + CRM.crmMailing.groupNames = groupNames; + }); + } + } + }, + // Populates the CRM.crmMailing.civiMails global + getCiviMails: function(mailing) { + if (-1 == civimailings.indexOf(mailing.id)) { + civimailings.push(mailing.id); + _.each(mailing.recipients.mailings.include, function(id) { + if (-1 == mids.indexOf(id)) { + mids.push(id); + } + }); + _.each(mailing.recipients.mailings.exclude, function(id) { + if (-1 == mids.indexOf(id)) { + mids.push(id); + } + }); + if (!_.isEmpty(mids)) { + CRM.api3('Mailing', 'get', {'id': {"IN": mids}}).then(function(result) { + _.each(result.values, function(mail) { + if (_.isEmpty(_.where(civimails, {id: parseInt(mail.id)}))) { + civimails.push({id: parseInt(mail.id), name: mail.name}); + } + }); + CRM.crmMailing.civiMails = civimails; + }); + } + } + } + }; + }); + // The preview manager performs preview actions while putting up a visible UI (e.g. dialogs & status alerts) angular.module('crmMailing').factory('crmMailingPreviewMgr', function (dialogService, crmMailingMgr, crmStatus) { return { diff --git a/civicrm/api/api.php b/civicrm/api/api.php index 670e6ee5fe9a984e963e1f26fdc78019f7d27819..42ebc7e36d353a47c5bf2d070b7e557a0eeb5eaa 100644 --- a/civicrm/api/api.php +++ b/civicrm/api/api.php @@ -7,14 +7,20 @@ */ /** - * CiviCRM API wrapper function. + * The original API wrapper. + * + * @deprecated + * Not recommended for new code but ok for existing code to continue using. + * + * Calling `civicrm_api()` is functionally identical to `civicrm_api3()` or `civicrm_api4()` except: + * 1. It requires `$params['version']`. + * 2. It catches exceptions and returns an array like `['is_error' => 1, 'error_message' => ...]`. + * This is disfavored for typical business-logic/hooks/forms/etc. + * However, if an existing caller handles `civicrm_api()`-style errors, then there is no functional benefit to reworking it. * * @param string $entity - * type of entities to deal with * @param string $action - * create, get, delete or some special action name. * @param array $params - * array to be passed to function * * @return array|int|Civi\Api4\Generic\Result */ @@ -117,16 +123,13 @@ function civicrm_api4(string $entity, string $action, array $params = [], $index * Throws exception. * * @param string $entity - * Type of entities to deal with. * @param string $action - * Create, get, delete or some special action name. * @param array $params - * Array to be passed to function. * * @throws CRM_Core_Exception * * @return array|int - * Dependant on the $action + * Dependent on the $action */ function civicrm_api3(string $entity, string $action, array $params = []) { $params['version'] = 3; @@ -159,10 +162,6 @@ function _civicrm_api3_api_getfields(&$apiRequest) { if (strtolower($apiRequest['action'] == 'getfields')) { // the main param getfields takes is 'action' - however this param is not compatible with REST // so we accept 'api_action' as an alias of action on getfields - if (!empty($apiRequest['params']['api_action'])) { - // $apiRequest['params']['action'] = $apiRequest['params']['api_action']; - // unset($apiRequest['params']['api_action']); - } return ['action' => ['api.aliases' => ['api_action']]]; } $getFieldsParams = ['action' => $apiRequest['action']]; diff --git a/civicrm/api/v3/ActionSchedule.php b/civicrm/api/v3/ActionSchedule.php index 0931d6724778ff82007b02dcc8d1590f426640ff..2fb0dae647ac8a12bbb1aa349462071484c73190 100644 --- a/civicrm/api/v3/ActionSchedule.php +++ b/civicrm/api/v3/ActionSchedule.php @@ -36,9 +36,6 @@ function civicrm_api3_action_schedule_get($params) { */ function civicrm_api3_action_schedule_create($params) { civicrm_api3_verify_one_mandatory($params, NULL, ['start_action_date', 'absolute_date']); - if (!array_key_exists('name', $params) && !array_key_exists('id', $params)) { - $params['name'] = CRM_Utils_String::munge($params['title']); - } return _civicrm_api3_basic_create(_civicrm_api3_get_BAO(__FUNCTION__), $params, 'ActionSchedule'); } @@ -54,6 +51,17 @@ function _civicrm_api3_action_schedule_create_spec(&$params) { $params['title']['api.required'] = TRUE; $params['mapping_id']['api.required'] = TRUE; $params['entity_value']['api.required'] = TRUE; + + // APIv3 doesn't understand dynamic pseudoconstants so just remove them + // to prevent false-positive validation errors. + $params['entity_value']['pseudoconstant'] = NULL; + $params['entity_status']['pseudoconstant'] = NULL; + $params['recipient']['pseudoconstant'] = NULL; + $params['recipient_listing']['pseudoconstant'] = NULL; + $params['start_action_date']['pseudoconstant'] = NULL; + $params['end_date']['pseudoconstant'] = NULL; + $params['filter_contact_language']['pseudoconstant'] = NULL; + $params['communication_language']['pseudoconstant'] = NULL; } /** diff --git a/civicrm/api/v3/Activity.php b/civicrm/api/v3/Activity.php index 98e8f33969568b6257618757f72cf9d718c4fa99..415f59876d8860b7d4126b03d9cd7c4489b4ccb6 100644 --- a/civicrm/api/v3/Activity.php +++ b/civicrm/api/v3/Activity.php @@ -641,7 +641,7 @@ function _civicrm_api3_activity_check_params(&$params) { $activityTypeId = $params['activity_type_id'] ?? NULL; if ($activityName || $activityLabel) { - $activityTypeIdInList = array_search(($activityName ? $activityName : $activityLabel), $activityTypes); + $activityTypeIdInList = array_search(($activityName ?: $activityLabel), $activityTypes); if (!$activityTypeIdInList) { $errorString = $activityName ? "Invalid Activity Name : $activityName" : "Invalid Activity Type Label"; diff --git a/civicrm/api/v3/Contact.php b/civicrm/api/v3/Contact.php index 0fc2ca5b6606d8963559e2d93e299542c7c05cf4..d3e35192ef128d2e6d0a1202dd586e1cb37e1961 100644 --- a/civicrm/api/v3/Contact.php +++ b/civicrm/api/v3/Contact.php @@ -691,397 +691,6 @@ function _civicrm_api3_greeting_format_params($params) { } } -/** - * Adjust Metadata for Get action. - * - * @param array $params - * Array of parameters determined by getfields. - */ -function _civicrm_api3_contact_getquick_spec(&$params) { - $params['name']['api.required'] = TRUE; - $params['name']['title'] = ts('String to search on'); - $params['name']['type'] = CRM_Utils_Type::T_STRING; - $params['field']['type'] = CRM_Utils_Type::T_STRING; - $params['field']['title'] = ts('Field to search on'); - $params['field']['options'] = [ - '', - 'id', - 'contact_id', - 'external_identifier', - 'first_name', - 'last_name', - 'job_title', - 'postal_code', - 'street_address', - 'email', - 'city', - 'phone_numeric', - ]; - $params['table_name']['type'] = CRM_Utils_Type::T_STRING; - $params['table_name']['title'] = ts('Table alias to search on'); - $params['table_name']['api.default'] = 'cc'; -} - -/** - * Old Contact quick search api. - * - * @deprecated - * - * @param array $params - * - * @return array - * @throws \CRM_Core_Exception - */ -function civicrm_api3_contact_getquick($params) { - $name = CRM_Utils_Type::escape(CRM_Utils_Array::value('name', $params), 'String'); - $table_name = CRM_Utils_String::munge($params['table_name']); - // get the autocomplete options from settings - $acpref = explode(CRM_Core_DAO::VALUE_SEPARATOR, - CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, - 'contact_autocomplete_options' - ) - ); - - $table_names = [ - 'email' => 'eml', - 'phone_numeric' => 'phe', - 'street_address' => 'sts', - 'city' => 'sts', - 'postal_code' => 'sts', - ]; - - // get the option values for contact autocomplete - $acOptions = CRM_Core_OptionGroup::values('contact_autocomplete_options', FALSE, FALSE, FALSE, NULL, 'name'); - - $list = $from = []; - foreach ($acpref as $value) { - if ($value && !empty($acOptions[$value])) { - $list[$value] = $acOptions[$value]; - } - } - // If we are doing quicksearch by a field other than name, make sure that field is added to results - if (!empty($params['field_name'])) { - $field_name = CRM_Utils_String::munge($params['field_name']); - // there is no good reason to request api_key via getquick - if ($field_name == 'api_key') { - throw new CRM_Core_Exception('Illegal value "api_key" for parameter "field_name"'); - } - // Unique name contact_id = id - if ($field_name == 'contact_id') { - $field_name = 'id'; - } - // dev/core#1420 : trim non-numeric character from phone search string - elseif ($field_name == 'phone_numeric') { - $name = preg_replace('/[^\d]/', '', $name); - } - if (isset($table_names[$field_name])) { - $table_name = $table_names[$field_name]; - } - elseif (strpos($field_name, 'custom_') === 0) { - $customField = civicrm_api3('CustomField', 'getsingle', [ - 'id' => substr($field_name, 7), - 'return' => [ - 'custom_group_id.table_name', - 'column_name', - 'data_type', - 'option_group_id', - 'html_type', - ], - ]); - $field_name = $customField['column_name']; - $table_name = CRM_Utils_String::munge($customField['custom_group_id.table_name']); - $from[$field_name] = "LEFT JOIN `$table_name` ON cc.id = `$table_name`.entity_id"; - if (CRM_Core_BAO_CustomField::hasOptions($customField)) { - $customOptionsWhere = []; - $customFieldOptions = CRM_Contact_BAO_Contact::buildOptions('custom_' . $customField['id'], 'search'); - $isMultivalueField = CRM_Core_BAO_CustomField::isSerialized($customField); - $sep = CRM_Core_DAO::VALUE_SEPARATOR; - foreach ($customFieldOptions as $optionKey => $optionLabel) { - if (mb_stripos($optionLabel, $name) !== FALSE) { - $customOptionsWhere[$optionKey] = "$table_name.$field_name " . ($isMultivalueField ? "LIKE '%{$sep}{$optionKey}{$sep}%'" : "= '$optionKey'"); - } - } - } - } - // phone_numeric should be phone - $searchField = str_replace('_numeric', '', $field_name); - if (!in_array($searchField, $list)) { - $list[] = $searchField; - } - } - else { - // Set field name to first name for exact match checking. - $field_name = 'sort_name'; - } - - $select = $actualSelectElements = ['sort_name']; - - foreach ($list as $value) { - $suffix = substr($value, 0, 2) . substr($value, -1); - switch ($value) { - case 'street_address': - case 'city': - case 'postal_code': - $selectText = $value; - $value = "address"; - $suffix = 'sts'; - case 'phone': - case 'email': - $actualSelectElements[] = $select[] = ($value == 'address') ? $selectText : $value; - if ($value == 'phone') { - $actualSelectElements[] = $select[] = 'phone_ext'; - } - $from[$value] = "LEFT JOIN civicrm_{$value} {$suffix} ON ( cc.id = {$suffix}.contact_id AND {$suffix}.is_primary = 1 ) "; - break; - - case 'country': - case 'state_province': - $select[] = "{$suffix}.name as {$value}"; - $actualSelectElements[] = "{$suffix}.name"; - if (!in_array('address', $from)) { - $from['address'] = 'LEFT JOIN civicrm_address sts ON ( cc.id = sts.contact_id AND sts.is_primary = 1) '; - } - $from[$value] = " LEFT JOIN civicrm_{$value} {$suffix} ON ( sts.{$value}_id = {$suffix}.id ) "; - break; - - default: - if ($value == 'id') { - $actualSelectElements[] = 'cc.id'; - } - elseif ($value != 'sort_name') { - $suffix = 'cc'; - if ($field_name == $value) { - $suffix = $table_name; - } - $actualSelectElements[] = $select[] = $suffix . '.' . $value; - } - break; - } - } - - $config = CRM_Core_Config::singleton(); - $as = $select; - $select = implode(', ', $select); - if (!empty($select)) { - $select = ", $select"; - } - $actualSelectElements = implode(', ', $actualSelectElements); - $from = implode(' ', $from); - $limit = (int) ($params['limit'] ?? 0); - $limit = $limit > 0 ? $limit : Civi::settings()->get('search_autocomplete_count'); - - // add acl clause here - list($aclFrom, $aclWhere) = CRM_Contact_BAO_Contact_Permission::cacheClause('cc'); - $whereClauses = ['cc.is_deleted = 0']; - if ($aclWhere) { - $whereClauses[] = $aclWhere; - } - $isPrependWildcard = \Civi::settings()->get('includeWildCardInName'); - - if (!empty($params['org'])) { - $whereClauses[] = 'contact_type = "Organization"'; - - // CRM-7157, hack: get current employer details when - // employee_id is present. - $currEmpDetails = []; - if (!empty($params['employee_id'])) { - if ($currentEmployer = CRM_Core_DAO::getFieldValue('CRM_Contact_DAO_Contact', - (int) $params['employee_id'], - 'employer_id' - )) { - if ($isPrependWildcard) { - $strSearch = "%$name%"; - } - else { - $strSearch = "$name%"; - } - - // get current employer details - $dao = CRM_Core_DAO::executeQuery("SELECT cc.id as id, CONCAT_WS( ' :: ', {$actualSelectElements} ) as data, sort_name - FROM civicrm_contact cc {$from} WHERE cc.contact_type = \"Organization\" AND cc.id = {$currentEmployer} AND cc.sort_name LIKE '$strSearch'"); - if ($dao->fetch()) { - $currEmpDetails = [ - 'id' => $dao->id, - 'data' => $dao->data, - ]; - } - } - } - } - - if (!empty($params['contact_sub_type'])) { - $contactSubType = CRM_Utils_Type::escape($params['contact_sub_type'], 'String'); - $whereClauses[] = "cc.contact_sub_type = '{$contactSubType}'"; - } - - if (!empty($params['contact_type'])) { - $contactType = CRM_Utils_Type::escape($params['contact_type'], 'String'); - $whereClauses[] = "cc.contact_type LIKE '{$contactType}'"; - } - - // Set default for current_employer or return contact with particular id - if (!empty($params['id'])) { - $whereClauses[] = 'cc.id = ' . (int) $params['id']; - } - - if (!empty($params['cid'])) { - $whereClauses[] = 'cc.id <> ' . (int) $params['cid']; - } - - // Contact's based of relationhip type - $relType = NULL; - if (!empty($params['rel'])) { - $relation = explode('_', $params['rel']); - $relType = CRM_Utils_Type::escape($relation[0], 'Integer'); - $rel = CRM_Utils_Type::escape($relation[2], 'String'); - } - - if ($isPrependWildcard) { - $strSearch = "%$name%"; - } - else { - $strSearch = "$name%"; - } - $includeEmailFrom = $includeNickName = ''; - if ($config->includeNickNameInName) { - $includeNickName = " OR nick_name LIKE '$strSearch'"; - } - $where = ' AND ' . implode(' AND ', $whereClauses); - if (isset($customOptionsWhere)) { - $customOptionsWhere = $customOptionsWhere ?: [0]; - $whereClause = ' WHERE (' . implode(' OR ', $customOptionsWhere) . ") $where"; - } - elseif (!empty($params['field_name']) && !empty($params['table_name']) && $params['field_name'] != 'sort_name') { - $whereClause = " WHERE ( $table_name.$field_name LIKE '$strSearch') {$where}"; - // Search by id should be exact - if ($field_name == 'id' || $field_name == 'external_identifier') { - $whereClause = " WHERE ( $table_name.$field_name = '$name') {$where}"; - } - } - else { - $whereClause = " WHERE ( sort_name LIKE '$strSearch' $includeNickName ) {$where} "; - if ($config->includeEmailInName) { - if (!in_array('email', $list)) { - $includeEmailFrom = "LEFT JOIN civicrm_email eml ON ( cc.id = eml.contact_id AND eml.is_primary = 1 )"; - } - $emailWhere = " WHERE email LIKE '$strSearch'"; - } - } - - $additionalFrom = ''; - if ($relType) { - $additionalFrom = " - INNER JOIN civicrm_relationship_type r ON ( - r.id = {$relType} - AND ( cc.contact_type = r.contact_type_{$rel} OR r.contact_type_{$rel} IS NULL ) - AND ( cc.contact_sub_type = r.contact_sub_type_{$rel} OR r.contact_sub_type_{$rel} IS NULL ) - )"; - } - - // check if only CMS users are requested - if (!empty($params['cmsuser'])) { - $additionalFrom = " - INNER JOIN civicrm_uf_match um ON (um.contact_id=cc.id) - "; - } - $orderBy = _civicrm_api3_quicksearch_get_order_by($name, $isPrependWildcard, $field_name); - - //CRM-5954 - $query = " - SELECT DISTINCT(id), data, sort_name, exactFirst - FROM ( - ( SELECT IF($table_name.$field_name = '{$name}', 0, 1) as exactFirst, cc.id as id, CONCAT_WS( ' :: ', - {$actualSelectElements} ) - as data - {$select} - FROM civicrm_contact cc {$from} - {$aclFrom} - {$additionalFrom} - {$whereClause} - {$orderBy} - LIMIT 0, {$limit} ) - "; - - if (!empty($emailWhere)) { - $query .= " - UNION ( - SELECT IF($table_name.$field_name = '{$name}', 0, 1) as exactFirst, cc.id as id, CONCAT_WS( ' :: ', - {$actualSelectElements} ) - as data - {$select} - FROM civicrm_contact cc {$from} - {$aclFrom} - {$additionalFrom} {$includeEmailFrom} - {$emailWhere} AND cc.is_deleted = 0 " . ($aclWhere ? " AND $aclWhere " : '') . " - {$orderBy} - LIMIT 0, {$limit} - ) - "; - } - $query .= ") t - {$orderBy} - LIMIT 0, {$limit} - "; - - // send query to hook to be modified if needed - CRM_Utils_Hook::contactListQuery($query, - $name, - empty($params['context']) ? NULL : CRM_Utils_Type::escape($params['context'], 'String'), - empty($params['id']) ? NULL : $params['id'] - ); - - $dao = CRM_Core_DAO::executeQuery($query); - - $contactList = []; - $listCurrentEmployer = TRUE; - while ($dao->fetch()) { - $t = ['id' => $dao->id]; - foreach ($as as $k) { - $t[$k] = $dao->$k ?? ''; - } - $t['data'] = $dao->data; - // Replace keys with values when displaying fields from an option list - if (!empty($customOptionsWhere)) { - $data = explode(' :: ', $dao->data); - $pos = count($data) - 1; - $customValue = array_intersect(CRM_Utils_Array::explodePadded($data[$pos]), array_keys($customOptionsWhere)); - $data[$pos] = implode(', ', array_intersect_key($customFieldOptions, array_flip($customValue))); - $t['data'] = implode(' :: ', $data); - } - $contactList[] = $t; - if (!empty($params['org']) && - !empty($currEmpDetails) && - $dao->id == $currEmpDetails['id'] - ) { - $listCurrentEmployer = FALSE; - } - } - - //return organization name if doesn't exist in db - if (empty($contactList)) { - if (!empty($params['org'])) { - if ($listCurrentEmployer && !empty($currEmpDetails)) { - $contactList = [ - [ - 'data' => $currEmpDetails['data'], - 'id' => $currEmpDetails['id'], - ], - ]; - } - else { - $contactList = [ - [ - 'data' => $name, - 'id' => $name, - ], - ]; - } - } - } - - return civicrm_api3_create_success($contactList, $params, 'Contact', 'getquick'); -} - /** * Get the order by string for the quicksearch query. * @@ -1134,17 +743,6 @@ function _civicrm_api3_quicksearch_get_order_by($name, $isPrependWildcard, $fiel return "ORDER BY exactFirst, sort_name"; } -/** - * Declare deprecated api functions. - * - * @deprecated api notice - * @return array - * Array of deprecated actions - */ -function _civicrm_api3_contact_deprecation() { - return ['getquick' => 'The "getquick" action is deprecated in favor of "getlist".']; -} - /** * Merges given pair of duplicate contacts. * diff --git a/civicrm/api/v3/CustomValue.php b/civicrm/api/v3/CustomValue.php index f3b127c177cd273e4596946c18a7ffa73ee62d67..252adeb0f68f03ee161e62f9a60a27b155bc3dc8 100644 --- a/civicrm/api/v3/CustomValue.php +++ b/civicrm/api/v3/CustomValue.php @@ -345,14 +345,14 @@ function civicrm_api3_custom_value_gettree($params) { $result = []; foreach ($tree as $group) { $result[$group['name']] = []; - $groupToReturn = $toReturn['custom_group'] ? $toReturn['custom_group'] : array_keys($group); + $groupToReturn = $toReturn['custom_group'] ?: array_keys($group); foreach ($groupToReturn as $item) { $result[$group['name']][$item] = $group[$item] ?? NULL; } $result[$group['name']]['fields'] = []; foreach ($group['fields'] as $fieldInfo) { $field = ['value' => NULL]; - $fieldToReturn = $toReturn['custom_field'] ? $toReturn['custom_field'] : array_keys($fieldInfo); + $fieldToReturn = $toReturn['custom_field'] ?: array_keys($fieldInfo); foreach ($fieldToReturn as $item) { $field[$item] = $fieldInfo[$item] ?? NULL; } diff --git a/civicrm/api/v3/Profile.php b/civicrm/api/v3/Profile.php index 0d2b9a5c8b68d45efed18ff80e96e61e61742bc0..c9c0af59604a1130ec0afb6a1d3e6deeba82686f 100644 --- a/civicrm/api/v3/Profile.php +++ b/civicrm/api/v3/Profile.php @@ -575,7 +575,9 @@ function _civicrm_api3_buildprofile_submitfields($profileID, $optionsBehaviour, } } } - $profileFields[$profileID][$fieldName] = array_merge($entityGetFieldsResult[$realName], $profileFields[$profileID][$entityfield]); + if (!empty($entityGetFieldsResult[$realName])) { + $profileFields[$profileID][$fieldName] = array_merge($entityGetFieldsResult[$realName], $profileFields[$profileID][$entityfield]); + } if (!isset($profileFields[$profileID][$fieldName]['api.aliases'])) { $profileFields[$profileID][$fieldName]['api.aliases'] = []; } diff --git a/civicrm/api/v3/examples/Activity/ContactRefCustomField.ex.php b/civicrm/api/v3/examples/Activity/ContactRefCustomField.ex.php deleted file mode 100644 index e8e90c1d922a3e6cea65193afc68aca0a328d0c7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/ContactRefCustomField.ex.php +++ /dev/null @@ -1,117 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.create API. - * - * Demonstrates create with Contact Reference Custom Field. - * - * @return array - * API result array - */ -function activity_create_example() { - $params = [ - 'source_contact_id' => 1, - 'activity_type_id' => 'Test activity type', - 'subject' => 'test activity type id', - 'activity_date_time' => '2011-06-02 14:36:13', - 'status_id' => 2, - 'priority_id' => 1, - 'duration' => 120, - 'location' => 'Pennsylvania', - 'details' => 'a test activity', - 'custom_2' => '1', - ]; - - try { - $result = civicrm_api3('Activity', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'source_record_id' => '', - 'activity_type_id' => '9999', - 'subject' => 'test activity type id', - 'activity_date_time' => '20110602143613', - 'duration' => '120', - 'location' => 'Pennsylvania', - 'phone_id' => '', - 'phone_number' => '', - 'details' => 'a test activity', - 'status_id' => '2', - 'priority_id' => '1', - 'parent_id' => '', - 'is_test' => '', - 'medium_id' => '', - 'is_auto' => '', - 'relationship_id' => '', - 'is_current_revision' => '', - 'original_id' => '', - 'result' => '', - 'is_deleted' => '', - 'campaign_id' => '', - 'engagement_level' => '', - 'weight' => '', - 'is_star' => '', - 'created_date' => '', - 'modified_date' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityCreateCustomContactRefField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/ContactRefCustomFieldGet.ex.php b/civicrm/api/v3/examples/Activity/ContactRefCustomFieldGet.ex.php deleted file mode 100644 index 6141ee6b2f728e48fa2b61f41ee0ffc07682030d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/ContactRefCustomFieldGet.ex.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.get API. - * - * Get with Contact Ref Custom Field. - * - * @return array - * API result array - */ -function activity_get_example() { - $params = [ - 'return.custom_2' => 1, - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Activity', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'activity_type_id' => '9999', - 'subject' => 'test activity type id', - 'activity_date_time' => '2011-06-02 14:36:13', - 'duration' => '120', - 'location' => 'Pennsylvania', - 'details' => 'a test activity', - 'status_id' => '2', - 'priority_id' => '1', - 'is_test' => 0, - 'is_auto' => 0, - 'is_current_revision' => '1', - 'is_deleted' => 0, - 'is_star' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'custom_1' => 'defaultValue', - 'custom_2_id' => '1', - 'custom_2' => 'Anderson, Anthony', - 'source_contact_id' => '1', - 'source_contact_name' => 'Mr. Anthony Anderson II', - 'source_contact_sort_name' => 'Anderson, Anthony', - 'custom_1_1' => 'defaultValue', - 'custom_2_1' => 'Anderson, Anthony', - 'custom_2_1_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityCreateCustomContactRefField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/Create.ex.php b/civicrm/api/v3/examples/Activity/Create.ex.php deleted file mode 100644 index 734f5fd106802bb3e8b7f2f947b3bf6ef8551343..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/Create.ex.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.create API. - * - * @return array - * API result array - */ -function activity_create_example() { - $params = [ - 'source_contact_id' => 1, - 'activity_type_id' => 'Test activity type', - 'subject' => 'test activity type id', - 'activity_date_time' => '2011-06-02 14:36:13', - 'status_id' => 2, - 'priority_id' => 1, - 'duration' => 120, - 'location' => 'Pennsylvania', - 'details' => 'a test activity', - 'custom_1' => 'custom string', - ]; - - try { - $result = civicrm_api3('Activity', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'source_record_id' => '', - 'activity_type_id' => '9999', - 'subject' => 'test activity type id', - 'activity_date_time' => '20110602143613', - 'duration' => '120', - 'location' => 'Pennsylvania', - 'phone_id' => '', - 'phone_number' => '', - 'details' => 'a test activity', - 'status_id' => '2', - 'priority_id' => '1', - 'parent_id' => '', - 'is_test' => '', - 'medium_id' => '', - 'is_auto' => '', - 'relationship_id' => '', - 'is_current_revision' => '', - 'original_id' => '', - 'result' => '', - 'is_deleted' => '', - 'campaign_id' => '', - 'engagement_level' => '', - 'weight' => '', - 'is_star' => '', - 'created_date' => '', - 'modified_date' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityCreateCustomSubType" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/DateTimeHigh.ex.php b/civicrm/api/v3/examples/Activity/DateTimeHigh.ex.php deleted file mode 100644 index c548c40eb798bf12f5d61f8d3af4c4dd26d30c07..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/DateTimeHigh.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.get API. - * - * Demonstrates _high filter (at time of writing doesn't work if contact_id is set. - * - * @return array - * API result array - */ -function activity_get_example() { - $params = [ - 'source_contact_id' => 1, - 'filter.activity_date_time_high' => '20120101000000', - 'sequential' => 1, - 'return' => 'activity_date_time', - ]; - - try { - $result = civicrm_api3('Activity', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'activity_date_time' => '2011-01-01 00:00:00', - 'source_contact_id' => '1', - 'source_contact_name' => 'Mr. Anthony Anderson II', - 'source_contact_sort_name' => 'Anderson, Anthony', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFilterMaxDate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/DateTimeLow.ex.php b/civicrm/api/v3/examples/Activity/DateTimeLow.ex.php deleted file mode 100644 index a3edbf46d1d81c2abe2010ed56d2c2464e1a6c3b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/DateTimeLow.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.get API. - * - * Demonstrates _low filter (at time of writing doesn't work if contact_id is set. - * - * @return array - * API result array - */ -function activity_get_example() { - $params = [ - 'filter.activity_date_time_low' => '20120101000000', - 'sequential' => 1, - 'return' => 'activity_date_time', - ]; - - try { - $result = civicrm_api3('Activity', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'activity_date_time' => '2012-02-16 00:00:00', - 'source_contact_id' => '1', - 'source_contact_name' => 'Mr. Anthony Anderson II', - 'source_contact_sort_name' => 'Anderson, Anthony', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFilterMaxDate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/Delete.ex.php b/civicrm/api/v3/examples/Activity/Delete.ex.php deleted file mode 100644 index 012d906baa3a003750cf545956054f73b7d35aa8..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.delete API. - * - * @return array - * API result array - */ -function activity_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Activity', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteActivity" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/Get.ex.php b/civicrm/api/v3/examples/Activity/Get.ex.php deleted file mode 100644 index 8317521e9f27dcb13c3c0f4b0ec1eca046dc09a7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/Get.ex.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.get API. - * - * @return array - * API result array - */ -function activity_get_example() { - $params = [ - 'activity_type_id' => 9999, - 'sequential' => 1, - 'return.custom_1' => 1, - ]; - - try { - $result = civicrm_api3('Activity', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'activity_type_id' => '9999', - 'subject' => 'test activity type id', - 'activity_date_time' => '2011-06-02 14:36:13', - 'duration' => '120', - 'location' => 'Pennsylvania', - 'details' => 'a test activity', - 'status_id' => '2', - 'priority_id' => '1', - 'is_test' => 0, - 'is_auto' => 0, - 'is_current_revision' => '1', - 'is_deleted' => 0, - 'is_star' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'custom_1' => 'custom string', - 'source_contact_id' => '1', - 'source_contact_name' => 'Mr. Anthony Anderson II', - 'source_contact_sort_name' => 'Anderson, Anthony', - 'custom_1_1' => 'custom string', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityGetGoodIDCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/GetFields.ex.php b/civicrm/api/v3/examples/Activity/GetFields.ex.php deleted file mode 100644 index 7800ac1d31d8baa9119181007ef60783f703399b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/GetFields.ex.php +++ /dev/null @@ -1,684 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.getfields API. - * - * @return array - * API result array - */ -function activity_getfields_example() { - $params = [ - 'action' => 'create', - ]; - - try { - $result = civicrm_api3('Activity', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 31, - 'values' => [ - 'source_record_id' => [ - 'name' => 'source_record_id', - 'type' => 1, - 'title' => 'Source Record', - 'description' => 'Artificial FK to original transaction (e.g. contribution) IF it is not an Activity. Table can be figured out through activity_type_id, and further through component registry.', - 'where' => 'civicrm_activity.source_record_id', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '2.0', - 'is_core_field' => TRUE, - ], - 'activity_type_id' => [ - 'name' => 'activity_type_id', - 'type' => 1, - 'title' => 'Activity Type ID', - 'description' => 'FK to civicrm_option_value.id, that has to be valid, registered activity type.', - 'required' => TRUE, - 'import' => TRUE, - 'where' => 'civicrm_activity.activity_type_id', - 'headerPattern' => '/(activity.)?type(.id$)/i', - 'export' => TRUE, - 'default' => '1', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'label' => 'Activity Type', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'activity_type', - 'optionEditPath' => 'civicrm/admin/options/activity_type', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'activity_date_time' => [ - 'name' => 'activity_date_time', - 'type' => 12, - 'title' => 'Activity Date', - 'description' => 'Date and time this activity is scheduled to occur. Formerly named scheduled_date_time.', - 'required' => '', - 'import' => TRUE, - 'where' => 'civicrm_activity.activity_date_time', - 'headerPattern' => '/(activity.)?date(.time$)?/i', - 'export' => TRUE, - 'default' => 'CURRENT_TIMESTAMP', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select Date', - 'formatType' => 'activityDateTime', - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - 'api.default' => 'now', - ], - 'phone_id' => [ - 'name' => 'phone_id', - 'type' => 1, - 'title' => 'Phone ID (called)', - 'description' => 'Phone ID of the number called (optional - used if an existing phone number is selected).', - 'where' => 'civicrm_activity.phone_id', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'FKClassName' => 'CRM_Core_DAO_Phone', - 'html' => [ - 'type' => 'EntityRef', - 'label' => 'Phone (called)', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - 'FKApiName' => 'Phone', - ], - 'phone_number' => [ - 'name' => 'phone_number', - 'type' => 2, - 'title' => 'Phone (called) Number', - 'description' => 'Phone number in case the number does not exist in the civicrm_phone table.', - 'maxlength' => 64, - 'size' => 30, - 'where' => 'civicrm_activity.phone_number', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - ], - 'priority_id' => [ - 'name' => 'priority_id', - 'type' => 1, - 'title' => 'Priority', - 'description' => 'ID of the priority given to this activity. Foreign key to civicrm_option_value.', - 'import' => TRUE, - 'where' => 'civicrm_activity.priority_id', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'priority', - 'optionEditPath' => 'civicrm/admin/options/priority', - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - ], - 'parent_id' => [ - 'name' => 'parent_id', - 'type' => 1, - 'title' => 'Parent Activity ID', - 'description' => 'Parent meeting ID (if this is a follow-up item). This is not currently implemented', - 'where' => 'civicrm_activity.parent_id', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'FKClassName' => 'CRM_Activity_DAO_Activity', - 'html' => [ - 'label' => 'Parent Activity', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'FKApiName' => 'Activity', - ], - 'is_auto' => [ - 'name' => 'is_auto', - 'type' => 16, - 'title' => 'Auto', - 'where' => 'civicrm_activity.is_auto', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'add' => '2.2', - 'is_core_field' => TRUE, - ], - 'relationship_id' => [ - 'name' => 'relationship_id', - 'type' => 1, - 'title' => 'Relationship ID', - 'description' => 'FK to Relationship ID', - 'where' => 'civicrm_activity.relationship_id', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Relationship', - 'html' => [ - 'label' => 'Relationship', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '2.2', - 'is_core_field' => TRUE, - 'FKApiName' => 'Relationship', - ], - 'is_current_revision' => [ - 'name' => 'is_current_revision', - 'type' => 16, - 'title' => 'Is this activity a current revision in versioning chain?', - 'import' => TRUE, - 'where' => 'civicrm_activity.is_current_revision', - 'headerPattern' => '/(is.)?(current.)?(revision|version(ing)?)/i', - 'export' => TRUE, - 'default' => '1', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'add' => '2.2', - 'is_core_field' => TRUE, - ], - 'original_id' => [ - 'name' => 'original_id', - 'type' => 1, - 'title' => 'Original Activity ID', - 'description' => 'Activity ID of the first activity record in versioning chain.', - 'where' => 'civicrm_activity.original_id', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'FKClassName' => 'CRM_Activity_DAO_Activity', - 'html' => [ - 'label' => 'Original Activity', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '2.2', - 'is_core_field' => TRUE, - 'FKApiName' => 'Activity', - ], - 'weight' => [ - 'name' => 'weight', - 'type' => 1, - 'title' => 'Order', - 'where' => 'civicrm_activity.weight', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'add' => '4.1', - 'is_core_field' => TRUE, - ], - 'is_star' => [ - 'name' => 'is_star', - 'type' => 16, - 'title' => 'Is Starred', - 'description' => 'Activity marked as favorite.', - 'import' => TRUE, - 'where' => 'civicrm_activity.is_star', - 'headerPattern' => '/(activity.)?(star|favorite)/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Checkbox', - ], - 'add' => '4.7', - 'is_core_field' => TRUE, - ], - 'id' => [ - 'name' => 'id', - 'type' => 1, - 'title' => 'Activity ID', - 'description' => 'Unique Other Activity ID', - 'required' => TRUE, - 'import' => TRUE, - 'where' => 'civicrm_activity.id', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_id', - 'api.aliases' => [ - '0' => 'activity_id', - ], - ], - 'subject' => [ - 'name' => 'subject', - 'type' => 2, - 'title' => 'Subject', - 'description' => 'The subject/purpose/short description of the activity.', - 'maxlength' => 255, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_activity.subject', - 'headerPattern' => '/(activity.)?subject/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 255, - 'size' => 45, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_subject', - ], - 'duration' => [ - 'name' => 'duration', - 'type' => 1, - 'title' => 'Duration', - 'description' => 'Planned or actual duration of activity expressed in minutes. Conglomerate of former duration_hours and duration_minutes.', - 'import' => TRUE, - 'where' => 'civicrm_activity.duration', - 'headerPattern' => '/(activity.)?duration(s)?$/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_duration', - ], - 'location' => [ - 'name' => 'location', - 'type' => 2, - 'title' => 'Location', - 'description' => 'Location of the activity (optional, open text).', - 'maxlength' => 255, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_activity.location', - 'headerPattern' => '/(activity.)?location$/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 255, - 'size' => 45, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_location', - ], - 'details' => [ - 'name' => 'details', - 'type' => 32, - 'title' => 'Details', - 'description' => 'Details about the activity (agenda, notes, etc).', - 'import' => TRUE, - 'where' => 'civicrm_activity.details', - 'headerPattern' => '/(activity.)?detail(s)?$/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'RichTextEditor', - 'rows' => 2, - 'cols' => 80, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_details', - ], - 'status_id' => [ - 'name' => 'status_id', - 'type' => 1, - 'title' => 'Activity Status', - 'description' => 'ID of the status this activity is currently in. Foreign key to civicrm_option_value.', - 'import' => TRUE, - 'where' => 'civicrm_activity.status_id', - 'headerPattern' => '/(activity.)?status(.label$)?/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'activity_status', - 'optionEditPath' => 'civicrm/admin/options/activity_status', - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_status_id', - 'api.aliases' => [ - '0' => 'activity_status', - ], - ], - 'is_test' => [ - 'name' => 'is_test', - 'type' => 16, - 'title' => 'Test', - 'import' => TRUE, - 'where' => 'civicrm_activity.is_test', - 'headerPattern' => '/(is.)?test(.activity)?/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_is_test', - ], - 'medium_id' => [ - 'name' => 'medium_id', - 'type' => 1, - 'title' => 'Activity Medium', - 'description' => 'Activity Medium, Implicit FK to civicrm_option_value where option_group = encounter_medium.', - 'where' => 'civicrm_activity.medium_id', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'encounter_medium', - 'optionEditPath' => 'civicrm/admin/options/encounter_medium', - ], - 'add' => '2.2', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_medium_id', - ], - 'result' => [ - 'name' => 'result', - 'type' => 2, - 'title' => 'Result', - 'description' => 'Currently being used to store result id for survey activity, FK to option value.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_activity.result', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'add' => '3.3', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_result', - ], - 'is_deleted' => [ - 'name' => 'is_deleted', - 'type' => 16, - 'title' => 'Activity is in the Trash', - 'import' => TRUE, - 'where' => 'civicrm_activity.is_deleted', - 'headerPattern' => '/(activity.)?(trash|deleted)/i', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - ], - 'add' => '2.2', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_is_deleted', - ], - 'campaign_id' => [ - 'name' => 'campaign_id', - 'type' => 1, - 'title' => 'Campaign ID', - 'description' => 'The campaign for which this activity has been triggered.', - 'import' => TRUE, - 'where' => 'civicrm_activity.campaign_id', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'FKClassName' => 'CRM_Campaign_DAO_Campaign', - 'component' => 'CiviCampaign', - 'html' => [ - 'type' => 'EntityRef', - 'label' => 'Campaign', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'table' => 'civicrm_campaign', - 'keyColumn' => 'id', - 'labelColumn' => 'title', - 'prefetch' => 'FALSE', - ], - 'add' => '3.4', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_campaign_id', - 'FKApiName' => 'Campaign', - ], - 'engagement_level' => [ - 'name' => 'engagement_level', - 'type' => 1, - 'title' => 'Engagement Index', - 'description' => 'Assign a specific level of engagement to this activity. Used for tracking constituents in ladder of engagement.', - 'import' => TRUE, - 'where' => 'civicrm_activity.engagement_level', - 'export' => TRUE, - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'engagement_index', - 'optionEditPath' => 'civicrm/admin/options/engagement_index', - ], - 'add' => '3.4', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_engagement_level', - ], - 'created_date' => [ - 'name' => 'created_date', - 'type' => 256, - 'title' => 'Created Date', - 'description' => 'When was the activity was created.', - 'required' => '', - 'where' => 'civicrm_activity.created_date', - 'export' => TRUE, - 'default' => 'CURRENT_TIMESTAMP', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select Date', - 'label' => 'Created Date', - ], - 'add' => '4.7', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_created_date', - ], - 'modified_date' => [ - 'name' => 'modified_date', - 'type' => 256, - 'title' => 'Modified Date', - 'description' => 'When was the activity (or closely related entity) was created or modified or deleted.', - 'required' => '', - 'where' => 'civicrm_activity.modified_date', - 'export' => TRUE, - 'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', - 'table_name' => 'civicrm_activity', - 'entity' => 'Activity', - 'bao' => 'CRM_Activity_BAO_Activity', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select Date', - 'label' => 'Modified Date', - ], - 'readonly' => TRUE, - 'add' => '4.7', - 'is_core_field' => TRUE, - 'uniqueName' => 'activity_modified_date', - ], - 'assignee_contact_id' => [ - 'name' => 'assignee_id', - 'title' => 'Activity Assignee', - 'description' => 'Contact(s) assigned to this activity.', - 'type' => 1, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'FKApiName' => 'Contact', - ], - 'target_contact_id' => [ - 'name' => 'target_id', - 'title' => 'Activity Target', - 'description' => 'Contact(s) participating in this activity.', - 'type' => 1, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'FKApiName' => 'Contact', - ], - 'source_contact_id' => [ - 'name' => 'source_contact_id', - 'title' => 'Activity Source Contact', - 'description' => 'Person who created this activity. Defaults to current user.', - 'type' => 1, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'api.default' => 'user_contact_id', - 'FKApiName' => 'Contact', - 'api.required' => TRUE, - ], - 'case_id' => [ - 'name' => 'case_id', - 'title' => 'Case ID', - 'description' => 'For creating an activity as part of a case.', - 'type' => 1, - 'FKClassName' => 'CRM_Case_DAO_Case', - 'FKApiName' => 'Case', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/GetTargetAndAssignee.ex.php b/civicrm/api/v3/examples/Activity/GetTargetAndAssignee.ex.php deleted file mode 100644 index 2e62af1a5b870101ff1015143c95cd722c3af767..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/GetTargetAndAssignee.ex.php +++ /dev/null @@ -1,118 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.create API. - * - * Demonstrates setting & retrieving activity target & source. - * - * @return array - * API result array - */ -function activity_create_example() { - $params = [ - 'source_contact_id' => 1, - 'subject' => 'Make-it-Happen Meeting', - 'activity_date_time' => '20110316', - 'duration' => 120, - 'location' => 'Pennsylvania', - 'details' => 'a test activity', - 'status_id' => 1, - 'activity_type_id' => 1, - 'priority_id' => 1, - 'target_contact_id' => 1, - 'assignee_contact_id' => 1, - ]; - - try { - $result = civicrm_api3('Activity', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'source_record_id' => '', - 'activity_type_id' => '1', - 'subject' => 'Make-it-Happen Meeting', - 'activity_date_time' => '20110316000000', - 'duration' => '120', - 'location' => 'Pennsylvania', - 'phone_id' => '', - 'phone_number' => '', - 'details' => 'a test activity', - 'status_id' => '1', - 'priority_id' => '1', - 'parent_id' => '', - 'is_test' => '', - 'medium_id' => '', - 'is_auto' => '', - 'relationship_id' => '', - 'is_current_revision' => '', - 'original_id' => '', - 'result' => '', - 'is_deleted' => '', - 'campaign_id' => '', - 'engagement_level' => '', - 'weight' => '', - 'is_star' => '', - 'created_date' => '', - 'modified_date' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityReturnTargetAssignee" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/GetTargetandAssigneeName.ex.php b/civicrm/api/v3/examples/Activity/GetTargetandAssigneeName.ex.php deleted file mode 100644 index fa0f47211c60a93fe5674f166214a3ea7c85ec89..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/GetTargetandAssigneeName.ex.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.getsingle API. - * - * Demonstrates retrieving activity target & source contact names. - * - * @return array - * API result array - */ -function activity_getsingle_example() { - $params = [ - 'id' => 1, - 'return' => [ - '0' => 'source_contact_name', - '1' => 'target_contact_name', - '2' => 'assignee_contact_name', - '3' => 'subject', - ], - ]; - - try { - $result = civicrm_api3('Activity', 'getsingle', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_getsingle_expectedresult() { - - $expectedResult = [ - 'id' => '1', - 'subject' => 'Make-it-Happen Meeting', - 'assignee_contact_id' => [], - 'assignee_contact_name' => [ - '5' => 'C Shore', - ], - 'assignee_contact_sort_name' => [ - '5' => 'Shore, C', - ], - 'source_contact_id' => '6', - 'source_contact_name' => 'D Bug', - 'source_contact_sort_name' => 'Bug, D', - 'target_contact_id' => [ - '1' => '4', - ], - 'target_contact_name' => [ - '3' => 'A Cat', - '4' => 'B Good', - ], - 'target_contact_sort_name' => [ - '3' => 'Cat, A', - '4' => 'Good, B', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityReturnTargetAssigneeName" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Activity/ReturnAssigneeContact.ex.php b/civicrm/api/v3/examples/Activity/ReturnAssigneeContact.ex.php deleted file mode 100644 index 8fa66eb2b5550297023d61d0a73cd4660969838a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Activity/ReturnAssigneeContact.ex.php +++ /dev/null @@ -1,182 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Activity.get API. - * - * Demonstrates getting assignee_contact_id & using it to get the contact. - * - * @return array - * API result array - */ -function activity_get_example() { - $params = [ - 'activity_id' => 1, - 'sequential' => 1, - 'return.assignee_contact_id' => 1, - 'api.contact.get' => [ - 'id' => '$value.source_contact_id', - ], - 'return' => [ - '0' => 'activity_type_id', - '1' => 'subject', - ], - ]; - - try { - $result = civicrm_api3('Activity', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'activity_type_id' => '9999', - 'subject' => 'test activity type id', - 'source_contact_id' => '1', - 'source_contact_name' => 'Mr. Anthony Anderson II', - 'source_contact_sort_name' => 'Anderson, Anthony', - 'assignee_contact_id' => [ - '0' => '3', - ], - 'assignee_contact_name' => [ - '3' => 'The Rock roccky', - ], - 'assignee_contact_sort_name' => [ - '3' => 'roccky, The Rock', - ], - 'api.contact.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'contact_id' => '1', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'Anthony', - 'middle_name' => 'J.', - 'last_name' => 'Anderson', - 'prefix_id' => '3', - 'suffix_id' => '3', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '1', - 'email' => 'anthony_anderson@civicrm.org', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => 'Mr.', - 'individual_suffix' => 'II', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '1', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityGetGoodID1" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ActivityContact/Create.ex.php b/civicrm/api/v3/examples/ActivityContact/Create.ex.php deleted file mode 100644 index 925723407eadc98296508b620822c94ba22313fe..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ActivityContact/Create.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ActivityContact.create API. - * - * @return array - * API result array - */ -function activity_contact_create_example() { - $params = [ - 'contact_id' => 3, - 'activity_id' => 1, - 'record_type_id' => 2, - ]; - - try { - $result = civicrm_api3('ActivityContact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '4' => [ - 'id' => '4', - 'activity_id' => '1', - 'contact_id' => '3', - 'record_type_id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateActivityContact" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ActivityContact/Delete.ex.php b/civicrm/api/v3/examples/ActivityContact/Delete.ex.php deleted file mode 100644 index e37958d6f1a4ff92adfe5806e04cd46b634b0a18..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ActivityContact/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ActivityContact.delete API. - * - * @return array - * API result array - */ -function activity_contact_delete_example() { - $params = [ - 'id' => 14, - ]; - - try { - $result = civicrm_api3('ActivityContact', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_contact_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteActivityContact" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ActivityType/Create.ex.php b/civicrm/api/v3/examples/ActivityType/Create.ex.php deleted file mode 100644 index ca60925c1d65caa1fe17572b1d655d13e963d752..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ActivityType/Create.ex.php +++ /dev/null @@ -1,106 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ActivityType.create API. - * - * @deprecated - * The ActivityType api is deprecated. Please use the OptionValue api instead. - * - * @return array - * API result array - */ -function activity_type_create_example() { - $params = [ - 'weight' => '2', - 'label' => 'send out letters', - 'filter' => 0, - 'is_active' => 1, - 'is_optgroup' => 1, - 'is_default' => 0, - ]; - - try { - $result = civicrm_api3('ActivityType', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_type_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 859, - 'values' => [ - '859' => [ - 'id' => '859', - 'option_group_id' => '2', - 'label' => 'send out letters', - 'value' => '55', - 'name' => 'send out letters', - 'grouping' => '', - 'filter' => 0, - 'is_default' => 0, - 'weight' => '2', - 'description' => '', - 'is_optgroup' => '1', - 'is_reserved' => '', - 'is_active' => '1', - 'component_id' => '', - 'domain_id' => '', - 'visibility_id' => '', - 'icon' => '', - 'color' => '', - ], - ], - 'deprecated' => 'The ActivityType api is deprecated. Please use the OptionValue api instead.', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityTypeCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ActivityType/Get.ex.php b/civicrm/api/v3/examples/ActivityType/Get.ex.php deleted file mode 100644 index 7ad7b6c0265936f377b52bcfebfe2d6a611b4112..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ActivityType/Get.ex.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ActivityType.get API. - * - * @deprecated - * The ActivityType api is deprecated. Please use the OptionValue api instead. - * - * @return array - * API result array - */ -function activity_type_get_example() { - $params = []; - - try { - $result = civicrm_api3('ActivityType', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function activity_type_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 35, - 'values' => [ - '1' => 'Meeting', - '2' => 'Phone Call', - '3' => 'Email', - '4' => 'Outbound SMS', - '5' => 'Event Registration', - '6' => 'Contribution', - '7' => 'Membership Signup', - '8' => 'Membership Renewal', - '9' => 'Tell a Friend', - '10' => 'Pledge Acknowledgment', - '11' => 'Pledge Reminder', - '12' => 'Inbound Email', - '17' => 'Membership Renewal Reminder', - '19' => 'Bulk Email', - '22' => 'Print/Merge Document', - '34' => 'Mass SMS', - '35' => 'Change Membership Status', - '36' => 'Change Membership Type', - '37' => 'Cancel Recurring Contribution', - '38' => 'Update Recurring Contribution Billing Details', - '39' => 'Update Recurring Contribution', - '40' => 'Reminder Sent', - '41' => 'Export Accounting Batch', - '42' => 'Create Batch', - '43' => 'Edit Batch', - '44' => 'SMS delivery', - '45' => 'Inbound SMS', - '46' => 'Payment', - '47' => 'Refund', - '48' => 'Change Registration', - '49' => 'Downloaded Invoice', - '50' => 'Emailed Invoice', - '51' => 'Contact Merged', - '52' => 'Contact Deleted by Merge', - '54' => 'Failed Payment', - ], - 'deprecated' => 'The ActivityType api is deprecated. Please use the OptionValue api instead.', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityTypeGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ActivityTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/AddressLike.ex.php b/civicrm/api/v3/examples/Address/AddressLike.ex.php deleted file mode 100644 index a3cd6c204ad7aed295c72e52d2971c1fc854e0c7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/AddressLike.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.get API. - * - * Demonstrates Use of Like. - * - * @return array - * API result array - */ -function address_get_example() { - $params = [ - 'street_address' => [ - 'LIKE' => '%mb%', - ], - 'sequential' => 1, - 'return' => 'street_address', - ]; - - try { - $result = civicrm_api3('Address', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'street_address' => 'Ambachtstraat 23', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetAddressLikeSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/AddressTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/AddressParse.ex.php b/civicrm/api/v3/examples/Address/AddressParse.ex.php deleted file mode 100644 index 834805686744a48573f4797a62b2b31318c0723a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/AddressParse.ex.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.create API. - * - * Demonstrates Use of address parsing param. - * - * @return array - * API result array - */ -function address_create_example() { - $params = [ - 'street_parsing' => 1, - 'street_address' => '54A Excelsior Ave. Apt 1C', - 'location_type_id' => 8, - 'contact_id' => 3, - ]; - - try { - $result = civicrm_api3('Address', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'contact_id' => '3', - 'location_type_id' => '8', - 'is_primary' => '1', - 'is_billing' => 0, - 'street_address' => '54A Excelsior Ave. Apt 1C', - 'street_number' => '54', - 'street_number_suffix' => 'A', - 'street_name' => 'Excelsior Ave.', - 'street_unit' => 'Apt 1C', - 'manual_geo_code' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateAddressParsing" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/AddressTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/AddressSort.ex.php b/civicrm/api/v3/examples/Address/AddressSort.ex.php deleted file mode 100644 index 377645a7f66958b18b8aca587f0ab417a310c530..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/AddressSort.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.get API. - * - * Demonstrates Use of sort filter. - * - * @return array - * API result array - */ -function address_get_example() { - $params = [ - 'options' => [ - 'sort' => 'street_address DESC', - 'limit' => 2, - ], - 'sequential' => 1, - 'return' => 'street_address', - ]; - - try { - $result = civicrm_api3('Address', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '0' => [ - 'id' => '3', - 'street_address' => 'yzy', - ], - '1' => [ - 'id' => '2', - 'street_address' => 'Ambachtstraat 23', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetAddressSort" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/AddressTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/Create.ex.php b/civicrm/api/v3/examples/Address/Create.ex.php deleted file mode 100644 index 5315e21774fc49e63aac366993d61c495ed06cf6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/Create.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.create API. - * - * @return array - * API result array - */ -function address_create_example() { - $params = [ - 'contact_id' => 3, - 'street_name' => 'Ambachtstraat', - 'street_number' => '23', - 'street_address' => 'Ambachtstraat 23', - 'postal_code' => '6971 BN', - 'country_id' => '1152', - 'city' => 'Brummen', - 'is_primary' => 1, - ]; - - try { - $result = civicrm_api3('Address', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'contact_id' => '3', - 'location_type_id' => '1', - 'is_primary' => '1', - 'is_billing' => 0, - 'street_address' => 'Ambachtstraat 23', - 'street_number' => '23', - 'street_name' => 'Ambachtstraat', - 'city' => 'Brummen', - 'postal_code' => '6971 BN', - 'country_id' => '1152', - 'manual_geo_code' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateAddressDefaultLocation" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/AddressTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/Delete.ex.php b/civicrm/api/v3/examples/Address/Delete.ex.php deleted file mode 100644 index b5583029df042cb218c57b9a7e06d50a82f831a3..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.delete API. - * - * @return array - * API result array - */ -function address_delete_example() { - $params = [ - 'id' => 2, - ]; - - try { - $result = civicrm_api3('Address', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteAddress" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/AddressTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/Get.ex.php b/civicrm/api/v3/examples/Address/Get.ex.php deleted file mode 100644 index 26de9b1fba1294755f1974c62484847a5405f67e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/Get.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.get API. - * - * @return array - * API result array - */ -function address_get_example() { - $params = [ - 'contact_id' => 3, - 'street_name' => 'Ambachtstraat', - 'return' => [ - '0' => 'location_type_id', - '1' => 'is_primary', - '2' => 'street_address', - ], - ]; - - try { - $result = civicrm_api3('Address', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'location_type_id' => '27', - 'is_primary' => '1', - 'street_address' => 'Ambachtstraat 23', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetAddress" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/AddressTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Address/GetOptions.ex.php b/civicrm/api/v3/examples/Address/GetOptions.ex.php deleted file mode 100644 index 15ca3de74b05f5c2a815090d504c8b615221a887..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Address/GetOptions.ex.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Address.getoptions API. - * - * @return array - * API result array - */ -function address_getoptions_example() { - $params = [ - 'field' => 'location_type_id', - ]; - - try { - $result = civicrm_api3('Address', 'getoptions', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function address_getoptions_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '5' => 'Billing', - '1' => 'Home', - '3' => 'Main', - '4' => 'Other', - '2' => 'Work', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testLocationTypeGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ConstantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Batch/Create.ex.php b/civicrm/api/v3/examples/Batch/Create.ex.php deleted file mode 100644 index 114886983725c1759d4b3af8e07e451921057ab2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Batch/Create.ex.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Batch.create API. - * - * @return array - * API result array - */ -function batch_create_example() { - $params = [ - 'name' => 'New_Batch_04', - 'title' => 'New Batch 04', - 'description' => 'This is description for New Batch 04', - 'total' => '400.44', - 'item_count' => 4, - 'id' => 5, - ]; - - try { - $result = civicrm_api3('Batch', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function batch_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 5, - 'values' => [ - '5' => [ - 'id' => '5', - 'name' => 'New_Batch_04', - 'title' => 'New Batch 04', - 'description' => 'This is description for New Batch 04', - 'created_id' => '', - 'created_date' => '', - 'modified_id' => '', - 'modified_date' => '', - 'saved_search_id' => '', - 'status_id' => '', - 'type_id' => '', - 'mode_id' => '', - 'total' => '400.44', - 'item_count' => '4', - 'payment_instrument_id' => '', - 'exported_date' => '', - 'data' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUpdate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/BatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Batch/Delete.ex.php b/civicrm/api/v3/examples/Batch/Delete.ex.php deleted file mode 100644 index eb525d6271613877565b5ab751608ae05429dd57..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Batch/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Batch.delete API. - * - * @return array - * API result array - */ -function batch_delete_example() { - $params = [ - 'id' => 8, - ]; - - try { - $result = civicrm_api3('Batch', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function batch_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testBatchDeleteCorrectSyntax" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/BatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Batch/Get.ex.php b/civicrm/api/v3/examples/Batch/Get.ex.php deleted file mode 100644 index 3c46694d2f733dfb97d40eebbb1534ae83ad8b65..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Batch/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Batch.get API. - * - * @return array - * API result array - */ -function batch_get_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Batch', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function batch_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'Batch_433397', - 'title' => 'Batch_433397', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'status_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/BatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Batch/Update.ex.php b/civicrm/api/v3/examples/Batch/Update.ex.php deleted file mode 100644 index aa1a825a552f992a9ac62c4b13868c605c6684b7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Batch/Update.ex.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example of using batch update API. - * - * @return array - * API result array - */ -function batch_update_example() { - $params = [ - 'name' => 'New_Batch_04', - 'title' => 'New Batch 04', - 'description' => 'This is description for New Batch 04', - 'total' => '400.44', - 'item_count' => 4, - 'id' => 3, - ]; - - try { - $result = civicrm_api3('batch', 'update', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function batch_update_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'name' => 'New_Batch_04', - 'title' => 'New Batch 04', - 'description' => 'This is description for New Batch 04', - 'created_id' => '', - 'created_date' => '', - 'modified_id' => '', - 'modified_date' => '', - 'saved_search_id' => '', - 'status_id' => '', - 'type_id' => '', - 'mode_id' => '', - 'total' => '400.44', - 'item_count' => '4', - 'payment_instrument_id' => '', - 'exported_date' => '', - 'data' => '', - ], - ], - ]; - - return $expectedResult; -} - -/** -* This example has been generated from the API test suite. -* The test that created it is called -* testUpdate -* and can be found in -* https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/BatchTest.php. -* -* You can see the outcome of the API tests at -* https://test.civicrm.org/job/CiviCRM-master-git/ -* -* To Learn about the API read -* http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API -* -* Browse the api on your own site with the api explorer -* http://MYSITE.ORG/path/to/civicrm/api -* -* Read more about testing here -* http://wiki.civicrm.org/confluence/display/CRM/Testing -* -* API Standards documentation: -* http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards -*/ diff --git a/civicrm/api/v3/examples/Campaign/Create.ex.php b/civicrm/api/v3/examples/Campaign/Create.ex.php deleted file mode 100644 index 70ec4f9881d5eac07d34bd7f904bb4a42bc5ff3f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Campaign/Create.ex.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Campaign.create API. - * - * Create a campaign - Note use of relative dates here: - * @link http://www.php.net/manual/en/datetime.formats.relative.php. - * - * @return array - * API result array - */ -function campaign_create_example() { - $params = [ - 'title' => 'campaign title', - 'description' => 'Call people, ask for money', - 'created_date' => 'first sat of July 2008', - ]; - - try { - $result = civicrm_api3('Campaign', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function campaign_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'campaign_title', - 'title' => 'campaign title', - 'description' => 'Call people, ask for money', - 'start_date' => '', - 'end_date' => '', - 'campaign_type_id' => '', - 'status_id' => '', - 'external_identifier' => '', - 'parent_id' => '', - 'is_active' => '1', - 'created_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'last_modified_id' => '', - 'last_modified_date' => '', - 'goal_general' => '', - 'goal_revenue' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateCampaign" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CampaignTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Campaign/Delete.ex.php b/civicrm/api/v3/examples/Campaign/Delete.ex.php deleted file mode 100644 index d828dc8d6f08c5ba3520a039733a77b144920149..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Campaign/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Campaign.delete API. - * - * @return array - * API result array - */ -function campaign_delete_example() { - $params = [ - 'id' => 5, - ]; - - try { - $result = civicrm_api3('Campaign', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function campaign_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteCampaign" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CampaignTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Campaign/Get.ex.php b/civicrm/api/v3/examples/Campaign/Get.ex.php deleted file mode 100644 index c7e1c27982b8370a3c9c2004bbdfbc8d29202eca..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Campaign/Get.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Campaign.get API. - * - * @return array - * API result array - */ -function campaign_get_example() { - $params = [ - 'title' => 'campaign title', - 'description' => 'Call people, ask for money', - 'created_date' => 'first sat of July 2008', - ]; - - try { - $result = civicrm_api3('Campaign', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function campaign_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'name' => 'campaign_title', - 'title' => 'campaign title', - 'description' => 'Call people, ask for money', - 'is_active' => '1', - 'created_date' => '2013-07-28 08:49:19', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetCampaign" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CampaignTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Case/Create.ex.php b/civicrm/api/v3/examples/Case/Create.ex.php deleted file mode 100644 index 6f3d1abfe02432e6055643e01b9c1a16a7e3feed..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Case/Create.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Case.create API. - * - * @return array - * API result array - */ -function case_create_example() { - $params = [ - 'case_type_id' => 1, - 'subject' => 'Test case', - 'contact_id' => 17, - 'custom_1' => 'custom string', - ]; - - try { - $result = civicrm_api3('Case', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function case_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'case_type_id' => '1', - 'subject' => 'Test case', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '', - 'details' => '', - 'status_id' => '1', - 'is_deleted' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCaseCreateCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CaseTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CaseContact/Create.ex.php b/civicrm/api/v3/examples/CaseContact/Create.ex.php deleted file mode 100644 index b17fd8f5a35d86da8fac1db29e184768ae9f7dea..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CaseContact/Create.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CaseContact.create API. - * - * @return array - * API result array - */ -function case_contact_create_example() { - $params = [ - 'case_id' => 2, - 'contact_id' => 20, - ]; - - try { - $result = civicrm_api3('CaseContact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function case_contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'case_id' => '2', - 'contact_id' => '20', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCaseContactCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CaseContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CaseContact/Get.ex.php b/civicrm/api/v3/examples/CaseContact/Get.ex.php deleted file mode 100644 index 6cf38ad0ee9da1599c76dd1a04f03ab32fa23f14..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CaseContact/Get.ex.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CaseContact.get API. - * - * @return array - * API result array - */ -function case_contact_get_example() { - $params = [ - 'contact_id' => 19, - ]; - - try { - $result = civicrm_api3('CaseContact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function case_contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'case_id' => '2', - 'contact_id' => '19', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCaseContactGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CaseContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Constant/Get.ex.php b/civicrm/api/v3/examples/Constant/Get.ex.php deleted file mode 100644 index 2ac3a47dbc7ad777c293a8c680ef3e9e90e2d9e1..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Constant/Get.ex.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Constant.get API. - * - * @deprecated - * The Constant api is deprecated as of CiviCRM 4.4. Please use the getoptions api action instead. - * - * @return array - * API result array - */ -function constant_get_example() { - $params = [ - 'name' => 'activityType', - ]; - - try { - $result = civicrm_api3('Constant', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function constant_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 35, - 'values' => [ - '1' => 'Meeting', - '2' => 'Phone Call', - '3' => 'Email', - '4' => 'Outbound SMS', - '5' => 'Event Registration', - '6' => 'Contribution', - '7' => 'Membership Signup', - '8' => 'Membership Renewal', - '9' => 'Tell a Friend', - '10' => 'Pledge Acknowledgment', - '11' => 'Pledge Reminder', - '12' => 'Inbound Email', - '17' => 'Membership Renewal Reminder', - '19' => 'Bulk Email', - '22' => 'Print/Merge Document', - '34' => 'Mass SMS', - '35' => 'Change Membership Status', - '36' => 'Change Membership Type', - '37' => 'Cancel Recurring Contribution', - '38' => 'Update Recurring Contribution Billing Details', - '39' => 'Update Recurring Contribution', - '40' => 'Reminder Sent', - '41' => 'Export Accounting Batch', - '42' => 'Create Batch', - '43' => 'Edit Batch', - '44' => 'SMS delivery', - '45' => 'Inbound SMS', - '46' => 'Payment', - '47' => 'Refund', - '48' => 'Change Registration', - '49' => 'Downloaded Invoice', - '50' => 'Emailed Invoice', - '51' => 'Contact Merged', - '52' => 'Contact Deleted by Merge', - '54' => 'Failed Payment', - ], - 'deprecated' => 'The Constant api is deprecated as of CiviCRM 4.4. Please use the getoptions api action instead.', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testActivityType" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ConstantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/APIChainedArray.ex.php b/civicrm/api/v3/examples/Contact/APIChainedArray.ex.php deleted file mode 100644 index 26085a0a4facf970a9c91eb432c48996abe92062..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/APIChainedArray.ex.php +++ /dev/null @@ -1,235 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates the usage of chained api functions. - * In this case no notes or custom fields have been created. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 3, - 'api.website.get' => [], - 'api.Contribution.get' => [ - 'total_amount' => '120.00', - ], - 'api.CustomValue.get' => 1, - 'api.Note.get' => 1, - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'xyz3, abc3', - 'display_name' => 'abc3 xyz3', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'abc3', - 'middle_name' => '', - 'last_name' => 'xyz3', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'man3@yahoo.com', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => '', - 'individual_suffix' => '', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - 'api.website.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'contact_id' => '3', - 'url' => 'https://civicrm.org', - ], - ], - ], - 'api.Contribution.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'xyz3, abc3', - 'display_name' => 'abc3 xyz3', - 'contribution_id' => '2', - 'currency' => 'USD', - 'contribution_recur_id' => '', - 'contribution_status_id' => '1', - 'contribution_campaign_id' => '', - 'payment_instrument_id' => '1', - 'receive_date' => '2011-01-01 00:00:00', - 'non_deductible_amount' => '10.00', - 'total_amount' => '120.00', - 'fee_amount' => '50.00', - 'net_amount' => '90.00', - 'trxn_id' => '12335', - 'invoice_id' => '67830', - 'invoice_number' => '', - 'contribution_cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'contribution_source' => 'SSF', - 'amount_level' => '', - 'is_test' => 0, - 'is_pay_later' => 0, - 'contribution_check_number' => '', - 'is_template' => 0, - 'financial_account_id' => '1', - 'accounting_code' => '4200', - 'campaign_id' => '', - 'contribution_campaign_title' => '', - 'financial_type_id' => '1', - 'financial_type' => 'Donation', - 'contribution_note' => '', - 'contribution_batch' => '', - 'contribution_recur_status' => 'Completed', - 'payment_instrument' => 'Credit Card', - 'contribution_status' => 'Completed', - 'check_number' => '', - 'instrument_id' => '1', - 'cancel_date' => '', - 'id' => '2', - 'contribution_type_id' => '1', - ], - ], - ], - 'api.CustomValue.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - ], - 'api.Note.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetIndividualWithChainedArrays" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/APIChainedArrayFormats.ex.php b/civicrm/api/v3/examples/Contact/APIChainedArrayFormats.ex.php deleted file mode 100644 index 1372a9a0c677e0fa58a9c25e19cbb701a25dfec6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/APIChainedArrayFormats.ex.php +++ /dev/null @@ -1,171 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates the usage of chained api functions. - * In this case no notes or custom fields have been created. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 3, - 'api.website.getValue' => [ - 'return' => 'url', - ], - 'api.Contribution.getCount' => [], - 'api.CustomValue.get' => 1, - 'api.Note.get' => 1, - 'api.Membership.getCount' => [], - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'xyz3, abc3', - 'display_name' => 'abc3 xyz3', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'abc3', - 'middle_name' => '', - 'last_name' => 'xyz3', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'man3@yahoo.com', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => '', - 'individual_suffix' => '', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - 'api.website.getValue' => 'https://civicrm.org', - 'api.Contribution.getCount' => 2, - 'api.CustomValue.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - ], - 'api.Note.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - ], - 'api.Membership.getCount' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetIndividualWithChainedArraysFormats" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/APIChainedArrayMultipleCustom.ex.php b/civicrm/api/v3/examples/Contact/APIChainedArrayMultipleCustom.ex.php deleted file mode 100644 index f99ba59e900d32bb6e09878953425ad734a3de49..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/APIChainedArrayMultipleCustom.ex.php +++ /dev/null @@ -1,213 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates the usage of chained api functions with multiple custom fields. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 3, - 'api.website.getValue' => [ - 'return' => 'url', - ], - 'api.Contribution.getCount' => [], - 'api.CustomValue.get' => 1, - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'xyz3, abc3', - 'display_name' => 'abc3 xyz3', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'abc3', - 'middle_name' => '', - 'last_name' => 'xyz3', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'man3@yahoo.com', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => '', - 'individual_suffix' => '', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - 'api.website.getValue' => 'https://civicrm.org', - 'api.Contribution.getCount' => 2, - 'api.CustomValue.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 7, - 'values' => [ - '0' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => 'value 4', - 'id' => '1', - ], - '1' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => 'value 3', - 'id' => '2', - '1' => 'value 2', - '2' => 'value 3', - ], - '2' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => '', - 'id' => '3', - '1' => 'warm beer', - '2' => '', - ], - '3' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => '', - 'id' => '4', - '1' => '', - '2' => '', - ], - '4' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => 'defaultValue', - 'id' => '5', - '1' => 'defaultValue', - ], - '5' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => 'vegemite', - 'id' => '6', - '1' => 'vegemite', - ], - '6' => [ - 'entity_id' => '3', - 'entity_table' => 'Contact', - 'latest' => '', - 'id' => '7', - '1' => '', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetIndividualWithChainedArraysAndMultipleCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/APIChainedArrayValuesFromSiblingFunction.ex.php b/civicrm/api/v3/examples/Contact/APIChainedArrayValuesFromSiblingFunction.ex.php deleted file mode 100644 index 5fb2e587e5819735ebe56c59f3d0245d54fe4514..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/APIChainedArrayValuesFromSiblingFunction.ex.php +++ /dev/null @@ -1,146 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.create API. - * - * This demonstrates the usage of chained api functions. Specifically it has one 'parent function' & - * 2 child functions - one receives values from the parent (Contact) and the other child (Tag). - * - * @return array - * API result array - */ -function contact_create_example() { - $params = [ - 'display_name' => 'batman', - 'contact_type' => 'Individual', - 'api.tag.create' => [ - 'name' => '$value.id', - 'description' => '$value.display_name', - 'format.only_id' => 1, - ], - 'api.entity_tag.create' => [ - 'tag_id' => '$value.api.tag.create', - ], - ]; - - try { - $result = civicrm_api3('Contact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'sort_name' => 'batman', - 'display_name' => 'batman', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'hash' => '67eac7789eaee00', - 'api_key' => '', - 'first_name' => '', - 'middle_name' => '', - 'last_name' => '', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'email_greeting_id' => '1', - 'email_greeting_custom' => '', - 'email_greeting_display' => '', - 'postal_greeting_id' => '1', - 'postal_greeting_custom' => '', - 'postal_greeting_display' => '', - 'addressee_id' => '1', - 'addressee_custom' => '', - 'addressee_display' => '', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'primary_contact_id' => '', - 'organization_name' => '', - 'sic_code' => '', - 'user_unique_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'api.tag.create' => 6, - 'api.entity_tag.create' => [ - 'is_error' => 0, - 'not_added' => 1, - 'added' => 1, - 'total_count' => 2, - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testChainingValuesCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/ChainTwoWebsites.ex.php b/civicrm/api/v3/examples/Contact/ChainTwoWebsites.ex.php deleted file mode 100644 index 5e81a2ed56c9d3940c20c8531cb0eb9876425908..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/ChainTwoWebsites.ex.php +++ /dev/null @@ -1,222 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.create API. - * - * This demonstrates the syntax to create 2 chained entities. - * - * @return array - * API result array - */ -function contact_create_example() { - $params = [ - 'first_name' => 'abc3', - 'last_name' => 'xyz3', - 'contact_type' => 'Individual', - 'email' => 'man3@yahoo.com', - 'api.contribution.create' => [ - 'receive_date' => '2010-01-01', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'payment_instrument_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => 15345, - 'invoice_id' => 67990, - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'skipCleanMoney' => 1, - ], - 'api.website.create' => [ - 'url' => 'https://civicrm.org', - ], - 'api.website.create.2' => [ - 'url' => 'https://chained.org', - ], - ]; - - try { - $result = civicrm_api3('Contact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'sort_name' => 'xyz3, abc3', - 'display_name' => 'abc3 xyz3', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'hash' => '67eac7789eaee00', - 'api_key' => '', - 'first_name' => 'abc3', - 'middle_name' => '', - 'last_name' => 'xyz3', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'email_greeting_id' => '1', - 'email_greeting_custom' => '', - 'email_greeting_display' => '', - 'postal_greeting_id' => '1', - 'postal_greeting_custom' => '', - 'postal_greeting_display' => '', - 'addressee_id' => '1', - 'addressee_custom' => '', - 'addressee_display' => '', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'primary_contact_id' => '', - 'organization_name' => '', - 'sic_code' => '', - 'user_unique_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'api.contribution.create' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '1', - 'receive_date' => '20100101000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => '15345', - 'invoice_id' => '67990', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ], - 'api.website.create' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'contact_id' => '3', - 'url' => 'https://civicrm.org', - 'website_type_id' => '', - ], - ], - ], - 'api.website.create.2' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'contact_id' => '3', - 'url' => 'https://chained.org', - 'website_type_id' => '', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateIndividualWithContributionDottedSyntax" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/ChainTwoWebsitesSyntax2.ex.php b/civicrm/api/v3/examples/Contact/ChainTwoWebsitesSyntax2.ex.php deleted file mode 100644 index 09812436aa8a7c11b2f9169fc37b9880b199ddc4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/ChainTwoWebsitesSyntax2.ex.php +++ /dev/null @@ -1,227 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.create API. - * - * Demonstrates creating two websites as an array. - * - * @return array - * API result array - */ -function contact_create_example() { - $params = [ - 'first_name' => 'abc3', - 'last_name' => 'xyz3', - 'contact_type' => 'Individual', - 'email' => 'man3@yahoo.com', - 'api.contribution.create' => [ - 'receive_date' => '2010-01-01', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'payment_instrument_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => 12345, - 'invoice_id' => 67890, - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'skipCleanMoney' => 1, - ], - 'api.website.create' => [ - '0' => [ - 'url' => 'https://civicrm.org', - ], - '1' => [ - 'url' => 'https://chained.org', - 'website_type_id' => 2, - ], - ], - ]; - - try { - $result = civicrm_api3('Contact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'sort_name' => 'xyz3, abc3', - 'display_name' => 'abc3 xyz3', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'hash' => '67eac7789eaee00', - 'api_key' => '', - 'first_name' => 'abc3', - 'middle_name' => '', - 'last_name' => 'xyz3', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'email_greeting_id' => '1', - 'email_greeting_custom' => '', - 'email_greeting_display' => '', - 'postal_greeting_id' => '1', - 'postal_greeting_custom' => '', - 'postal_greeting_display' => '', - 'addressee_id' => '1', - 'addressee_custom' => '', - 'addressee_display' => '', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'primary_contact_id' => '', - 'organization_name' => '', - 'sic_code' => '', - 'user_unique_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'api.contribution.create' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '1', - 'receive_date' => '20100101000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => '12345', - 'invoice_id' => '67890', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ], - 'api.website.create' => [ - '0' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'contact_id' => '3', - 'url' => 'https://civicrm.org', - 'website_type_id' => '', - ], - ], - ], - '1' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'contact_id' => '3', - 'url' => 'https://chained.org', - 'website_type_id' => '2', - ], - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateIndividualWithContributionChainedArrays" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/ContactIDOfLoggedInUserContactAPI.ex.php b/civicrm/api/v3/examples/Contact/ContactIDOfLoggedInUserContactAPI.ex.php deleted file mode 100644 index 9f7c7c21b629aec5e66d3884db3739a9641a684d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/ContactIDOfLoggedInUserContactAPI.ex.php +++ /dev/null @@ -1,148 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * Get contact id of the current logged in user. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 'user_contact_id', - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'User 707727958, Logged In', - 'display_name' => 'Mr. Logged In User 707727958 II', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'Logged In', - 'middle_name' => 'J.', - 'last_name' => 'User 707727958', - 'prefix_id' => '3', - 'suffix_id' => '3', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'anthony_anderson@civicrm.org', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => 'Mr.', - 'individual_suffix' => 'II', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testLoggedInUserAPISupportToken" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/Create.ex.php b/civicrm/api/v3/examples/Contact/Create.ex.php deleted file mode 100644 index d8a5f6478d0ab75536ca1efe62259b317c9a2354..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/Create.ex.php +++ /dev/null @@ -1,132 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.create API. - * - * This demonstrates setting a custom field through the API. - * - * @return array - * API result array - */ -function contact_create_example() { - $params = [ - 'first_name' => 'abc1', - 'contact_type' => 'Individual', - 'last_name' => 'xyz1', - 'custom_1' => 'custom string', - ]; - - try { - $result = civicrm_api3('Contact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'sort_name' => 'xyz1, abc1', - 'display_name' => 'abc1 xyz1', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'hash' => '67eac7789eaee00', - 'api_key' => '', - 'first_name' => 'abc1', - 'middle_name' => '', - 'last_name' => 'xyz1', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'email_greeting_id' => '1', - 'email_greeting_custom' => '', - 'email_greeting_display' => '', - 'postal_greeting_id' => '1', - 'postal_greeting_custom' => '', - 'postal_greeting_display' => '', - 'addressee_id' => '1', - 'addressee_custom' => '', - 'addressee_display' => '', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'primary_contact_id' => '', - 'organization_name' => '', - 'sic_code' => '', - 'user_unique_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateWithCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/CreateParticipantPayment.ex.php b/civicrm/api/v3/examples/Contact/CreateParticipantPayment.ex.php deleted file mode 100644 index 307a4d190327f781e81a96962df845afee4c0fed..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/CreateParticipantPayment.ex.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.create API. - * - * Single function to create contact with partipation & contribution. - * Note that in the case of 'contribution' the 'create' is implied (api.contribution.create). - * - * @return array - * API result array - */ -function contact_create_example() { - $params = [ - 'contact_type' => 'Individual', - 'display_name' => 'dlobo', - 'api.participant' => [ - 'event_id' => 41, - 'status_id' => 1, - 'role_id' => 1, - 'format.only_id' => 1, - ], - 'api.contribution.create' => [ - 'financial_type_id' => 1, - 'total_amount' => 100, - 'format.only_id' => 1, - ], - 'api.participant_payment.create' => [ - 'contribution_id' => '$value.api.contribution.create', - 'participant_id' => '$value.api.participant', - ], - ]; - - try { - $result = civicrm_api3('Contact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 7, - 'values' => [ - '7' => [ - 'id' => '7', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'sort_name' => 'dlobo', - 'display_name' => 'dlobo', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'hash' => '67eac7789eaee00', - 'api_key' => '', - 'first_name' => '', - 'middle_name' => '', - 'last_name' => '', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'email_greeting_id' => '1', - 'email_greeting_custom' => '', - 'email_greeting_display' => '', - 'postal_greeting_id' => '1', - 'postal_greeting_custom' => '', - 'postal_greeting_display' => '', - 'addressee_id' => '1', - 'addressee_custom' => '', - 'addressee_display' => '', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'primary_contact_id' => '', - 'organization_name' => '', - 'sic_code' => '', - 'user_unique_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'api.participant' => 4, - 'api.contribution.create' => 1, - 'api.participant_payment.create' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'participant_id' => '4', - 'contribution_id' => '1', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateParticipantWithPayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/CustomFieldGet.ex.php b/civicrm/api/v3/examples/Contact/CustomFieldGet.ex.php deleted file mode 100644 index bac9895300b2e91a01b8cf4440fa1f8feed5e014..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/CustomFieldGet.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates setting a custom field through the API. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'return.custom_1' => 1, - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'civicrm_value_testgetwithcu_1_id' => '1', - 'custom_1' => 'custom string', - 'id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetWithCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/CustomFieldGetReturnSyntaxVariation.ex.php b/civicrm/api/v3/examples/Contact/CustomFieldGetReturnSyntaxVariation.ex.php deleted file mode 100644 index 0c07d8763f0b279d6669352196138eb0b151f4e9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/CustomFieldGetReturnSyntaxVariation.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates setting a custom field through the API. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'return' => 'custom_1', - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'civicrm_value_testgetwithcu_1_id' => '1', - 'custom_1' => 'custom string', - 'id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetWithCustomReturnSyntax" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/Delete.ex.php b/civicrm/api/v3/examples/Contact/Delete.ex.php deleted file mode 100644 index 5041f0ba828ef053ca79868d96056b9607e1153e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.delete API. - * - * @return array - * API result array - */ -function contact_delete_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Contact', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/FormatIsSuccess_Fail.ex.php b/civicrm/api/v3/examples/Contact/FormatIsSuccess_Fail.ex.php deleted file mode 100644 index b89dcd7dc9e76bc5d2ded0672bcdc8f472964ca7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/FormatIsSuccess_Fail.ex.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.create API. - * - * This demonstrates use of the 'format.is_success' param. - * This param causes only the success or otherwise of the function to be returned as BOOLEAN. - * - * @return array - * API result array - */ -function contact_create_example() { - $params = [ - 'id' => 500, - 'format.is_success' => 1, - ]; - - try { - $result = civicrm_api3('Contact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_create_expectedresult() { - - $expectedResult = 0; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactCreateFormatIsSuccessFalse" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/FormatIsSuccess_True.ex.php b/civicrm/api/v3/examples/Contact/FormatIsSuccess_True.ex.php deleted file mode 100644 index 8322e4af31413b6eb0dce33069d7713d94e61128..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/FormatIsSuccess_True.ex.php +++ /dev/null @@ -1,74 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates use of the 'format.is_success' param. - * This param causes only the success or otherwise of the function to be returned as BOOLEAN. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 3, - 'format.is_success' => 1, - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = 1; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetFormatIsSuccessTrue" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/FormatOnlyID.ex.php b/civicrm/api/v3/examples/Contact/FormatOnlyID.ex.php deleted file mode 100644 index 215e1b3990161ff2f1ac92cf528e6b779363f523..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/FormatOnlyID.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * This demonstrates use of the 'format.id_only' param. - * This param causes the id of the only entity to be returned as an integer. - * It will be ignored if there is not exactly 1 result. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 3, - 'format.only_id' => 1, - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = 3; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetFormatIDOnly" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/FormatSingleValue.ex.php b/civicrm/api/v3/examples/Contact/FormatSingleValue.ex.php deleted file mode 100644 index 4ef40d85e25fe5c6804256409aafcd013907e56f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/FormatSingleValue.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getvalue API. - * - * This demonstrates use of the 'format.single_value' param. - * This param causes only a single value of the only entity to be returned as an string. - * It will be ignored if there is not exactly 1 result. - * - * @return array - * API result array - */ -function contact_getvalue_example() { - $params = [ - 'id' => 3, - 'return' => 'display_name', - ]; - - try { - $result = civicrm_api3('Contact', 'getvalue', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getvalue_expectedresult() { - - $expectedResult = 'Mr. Test Contact II'; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetFormatSingleValue" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/Get.ex.php b/civicrm/api/v3/examples/Contact/Get.ex.php deleted file mode 100644 index 168d15d1c669e0fa80c4f2e2cfab0a6da41986c6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/Get.ex.php +++ /dev/null @@ -1,146 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'email' => 'man2@yahoo.com', - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'man2@yahoo.com', - 'display_name' => 'man2@yahoo.com', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => '', - 'middle_name' => '', - 'last_name' => '', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'man2@yahoo.com', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => '', - 'individual_suffix' => '', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetEmail" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetActions.ex.php b/civicrm/api/v3/examples/Contact/GetActions.ex.php deleted file mode 100644 index d531d17f62bc8aabd9b4fa02e712c97d33463da6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetActions.ex.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getactions API. - * - * Getting the available actions for an entity. - * - * @return array - * API result array - */ -function contact_getactions_example() { - $params = []; - - try { - $result = civicrm_api3('Contact', 'getactions', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getactions_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 29, - 'values' => [ - '0' => 'create', - '1' => 'delete', - '2' => 'duplicatecheck', - '3' => 'example_action1', - '4' => 'example_action2', - '5' => 'get', - '6' => 'get_merge_conflicts', - '7' => 'getactions', - '8' => 'getcount', - '9' => 'getfield', - '10' => 'getfields', - '11' => 'getlist', - '12' => 'getmergedfrom', - '13' => 'getmergedto', - '14' => 'getoptions', - '15' => 'getquick', - '16' => 'getrefcount', - '17' => 'getsingle', - '18' => 'getunique', - '19' => 'getvalue', - '20' => 'merge', - '21' => 'proximity', - '22' => 'replace', - '23' => 'setvalue', - '24' => 'type_create', - '25' => 'type_delete', - '26' => 'type_get', - '27' => 'update', - '28' => 'validate', - ], - 'deprecated' => [ - 'getquick' => 'The "getquick" action is deprecated in favor of "getlist".', - 'setvalue' => 'The "setvalue" action is deprecated. Use "create" with an id instead.', - 'update' => 'The "update" action is deprecated. Use "create" with an id instead.', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetActions" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetCountContact.ex.php b/civicrm/api/v3/examples/Contact/GetCountContact.ex.php deleted file mode 100644 index 44e45626722d131dcde8cdcfbfe6c83fd424d6b3..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetCountContact.ex.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getcount API. - * - * This demonstrates use of the 'getCount' action. - * This param causes the count of the only function to be returned as an integer. - * - * @return array - * API result array - */ -function contact_getcount_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Contact', 'getcount', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getcount_expectedresult() { - - $expectedResult = 1; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetFormatCountOnly" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetFieldsOptions.ex.php b/civicrm/api/v3/examples/Contact/GetFieldsOptions.ex.php deleted file mode 100644 index cf984e1d4ec404643c8a4f75c1eed703dadb22a2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetFieldsOptions.ex.php +++ /dev/null @@ -1,1334 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getfields API. - * - * Demonstrates retrieving metadata with custom field options. - * - * @return array - * API result array - */ -function contact_getfields_example() { - $params = [ - 'options' => [ - 'get_options' => 'custom_1', - ], - 'action' => 'create', - ]; - - try { - $result = civicrm_api3('Contact', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 56, - 'values' => [ - 'id' => [ - 'name' => 'id', - 'type' => 1, - 'title' => 'Contact ID', - 'description' => 'Unique Contact ID', - 'required' => TRUE, - 'import' => TRUE, - 'where' => 'civicrm_contact.id', - 'headerPattern' => '/internal|contact?|id$/i', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'contact_id', - ], - ], - 'contact_type' => [ - 'name' => 'contact_type', - 'type' => 2, - 'title' => 'Contact Type', - 'description' => 'Type of Contact.', - 'maxlength' => 64, - 'size' => 30, - 'where' => 'civicrm_contact.contact_type', - 'export' => TRUE, - 'contactType' => '', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'maxlength' => 64, - 'size' => 30, - ], - 'pseudoconstant' => [ - 'table' => 'civicrm_contact_type', - 'keyColumn' => 'name', - 'labelColumn' => 'label', - 'condition' => 'parent_id IS NULL', - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => 1, - ], - 'contact_sub_type' => [ - 'name' => 'contact_sub_type', - 'type' => 2, - 'title' => 'Contact Subtype', - 'description' => 'May be used to over-ride contact view and edit templates.', - 'maxlength' => 255, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_contact.contact_sub_type', - 'headerPattern' => '/C(ontact )?(subtype|sub-type|sub type)/i', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'serialize' => 1, - 'html' => [ - 'type' => 'Select', - 'maxlength' => 255, - 'size' => 45, - ], - 'pseudoconstant' => [ - 'table' => 'civicrm_contact_type', - 'keyColumn' => 'name', - 'labelColumn' => 'label', - 'condition' => 'parent_id IS NOT NULL', - ], - 'add' => '1.5', - 'is_core_field' => TRUE, - ], - 'do_not_email' => [ - 'name' => 'do_not_email', - 'type' => 16, - 'title' => 'Do Not Email', - 'import' => TRUE, - 'where' => 'civicrm_contact.do_not_email', - 'headerPattern' => '/d(o )?(not )?(email)/i', - 'dataPattern' => '/^\\d{1,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Do Not Email', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'do_not_phone' => [ - 'name' => 'do_not_phone', - 'type' => 16, - 'title' => 'Do Not Phone', - 'import' => TRUE, - 'where' => 'civicrm_contact.do_not_phone', - 'headerPattern' => '/d(o )?(not )?(call|phone)/i', - 'dataPattern' => '/^\\d{1,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Do Not Phone', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'do_not_mail' => [ - 'name' => 'do_not_mail', - 'type' => 16, - 'title' => 'Do Not Mail', - 'import' => TRUE, - 'where' => 'civicrm_contact.do_not_mail', - 'headerPattern' => '/^(d(o\\s)?n(ot\\s)?mail)|(\\w*)?bulk\\s?(\\w*)$/i', - 'dataPattern' => '/^\\d{1,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Do Not Mail', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'do_not_sms' => [ - 'name' => 'do_not_sms', - 'type' => 16, - 'title' => 'Do Not Sms', - 'import' => TRUE, - 'where' => 'civicrm_contact.do_not_sms', - 'headerPattern' => '/d(o )?(not )?(sms)/i', - 'dataPattern' => '/^\\d{1,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Do Not Sms', - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'do_not_trade' => [ - 'name' => 'do_not_trade', - 'type' => 16, - 'title' => 'Do Not Trade', - 'import' => TRUE, - 'where' => 'civicrm_contact.do_not_trade', - 'headerPattern' => '/d(o )?(not )?(trade)/i', - 'dataPattern' => '/^\\d{1,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Do Not Trade', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'is_opt_out' => [ - 'name' => 'is_opt_out', - 'type' => 16, - 'title' => 'No Bulk Emails (User Opt Out)', - 'description' => 'Has the contact opted out from receiving all bulk email from the organization or site domain?', - 'required' => TRUE, - 'import' => TRUE, - 'where' => 'civicrm_contact.is_opt_out', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Is Opt Out', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'legal_identifier' => [ - 'name' => 'legal_identifier', - 'type' => 2, - 'title' => 'Legal Identifier', - 'description' => 'May be used for SSN, EIN/TIN, Household ID (census) or other applicable unique legal/government ID.', - 'maxlength' => 32, - 'size' => 20, - 'import' => TRUE, - 'where' => 'civicrm_contact.legal_identifier', - 'headerPattern' => '/legal\\s?id/i', - 'dataPattern' => '/\\w+?\\d{5,}/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Legal Identifier', - 'maxlength' => 32, - 'size' => 20, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'external_identifier' => [ - 'name' => 'external_identifier', - 'type' => 2, - 'title' => 'External Identifier', - 'description' => 'Unique trusted external ID (generally from a legacy app/datasource). Particularly useful for deduping operations.', - 'maxlength' => 64, - 'size' => 8, - 'import' => TRUE, - 'where' => 'civicrm_contact.external_identifier', - 'headerPattern' => '/external\\s?id/i', - 'dataPattern' => '/^\\d{11,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'External Identifier', - 'maxlength' => 64, - 'size' => 8, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'sort_name' => [ - 'name' => 'sort_name', - 'type' => 2, - 'title' => 'Sort Name', - 'description' => 'Name used for sorting different contact types', - 'maxlength' => 128, - 'size' => 30, - 'where' => 'civicrm_contact.sort_name', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 128, - 'size' => 30, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'display_name' => [ - 'name' => 'display_name', - 'type' => 2, - 'title' => 'Display Name', - 'description' => 'Formatted name representing preferred format for display/print/other output.', - 'maxlength' => 128, - 'size' => 30, - 'where' => 'civicrm_contact.display_name', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 128, - 'size' => 30, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'nick_name' => [ - 'name' => 'nick_name', - 'type' => 2, - 'title' => 'Nickname', - 'description' => 'Nickname.', - 'maxlength' => 128, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.nick_name', - 'headerPattern' => '/n(ick\\s)name|nick$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 128, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'legal_name' => [ - 'name' => 'legal_name', - 'type' => 2, - 'title' => 'Legal Name', - 'description' => 'Legal Name.', - 'maxlength' => 128, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.legal_name', - 'headerPattern' => '/^legal|(l(egal\\s)?name)$/i', - 'export' => TRUE, - 'contactType' => 'Organization', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Legal Name', - 'maxlength' => 128, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'image_URL' => [ - 'name' => 'image_URL', - 'type' => 32, - 'title' => 'Image Url', - 'description' => 'optional URL for preferred image (photo, logo, etc.) to display for this contact.', - 'import' => TRUE, - 'where' => 'civicrm_contact.image_URL', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'File', - 'label' => 'Image URL', - 'rows' => 2, - 'cols' => 80, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'preferred_communication_method' => [ - 'name' => 'preferred_communication_method', - 'type' => 2, - 'title' => 'Preferred Communication Method', - 'description' => 'What is the preferred mode of communication.', - 'maxlength' => 255, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_contact.preferred_communication_method', - 'headerPattern' => '/^p(ref\\w*\\s)?c(omm\\w*)|( meth\\w*)$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'serialize' => 1, - 'html' => [ - 'type' => 'Select', - 'maxlength' => 255, - 'size' => 45, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'preferred_communication_method', - 'optionEditPath' => 'civicrm/admin/options/preferred_communication_method', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'preferred_language' => [ - 'name' => 'preferred_language', - 'type' => 2, - 'title' => 'Preferred Language', - 'description' => 'Which language is preferred for communication. FK to languages in civicrm_option_value.', - 'maxlength' => 5, - 'size' => 6, - 'import' => TRUE, - 'where' => 'civicrm_contact.preferred_language', - 'headerPattern' => '/^lang/i', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'maxlength' => 5, - 'size' => 6, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'languages', - 'keyColumn' => 'name', - 'optionEditPath' => 'civicrm/admin/options/languages', - ], - 'add' => '3.2', - 'is_core_field' => TRUE, - ], - 'hash' => [ - 'name' => 'hash', - 'type' => 2, - 'title' => 'Contact Hash', - 'description' => 'Key for validating requests related to this contact.', - 'maxlength' => 32, - 'size' => 20, - 'where' => 'civicrm_contact.hash', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'api_key' => [ - 'name' => 'api_key', - 'type' => 2, - 'title' => 'Api Key', - 'description' => 'API Key for validating requests related to this contact.', - 'maxlength' => 32, - 'size' => 20, - 'where' => 'civicrm_contact.api_key', - 'permission' => [ - '0' => [ - '0' => 'administer CiviCRM', - '1' => 'edit api keys', - ], - ], - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'label' => 'API KEY', - 'maxlength' => 32, - 'size' => 20, - ], - 'readonly' => TRUE, - 'add' => '2.2', - 'is_core_field' => TRUE, - ], - 'first_name' => [ - 'name' => 'first_name', - 'type' => 2, - 'title' => 'First Name', - 'description' => 'First Name.', - 'maxlength' => 64, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.first_name', - 'headerPattern' => '/^first|(f(irst\\s)?name)$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'First Name', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'middle_name' => [ - 'name' => 'middle_name', - 'type' => 2, - 'title' => 'Middle Name', - 'description' => 'Middle Name.', - 'maxlength' => 64, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.middle_name', - 'headerPattern' => '/^middle|(m(iddle\\s)?name)$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Middle Name', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'last_name' => [ - 'name' => 'last_name', - 'type' => 2, - 'title' => 'Last Name', - 'description' => 'Last Name.', - 'maxlength' => 64, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.last_name', - 'headerPattern' => '/^last|(l(ast\\s)?name)$/i', - 'dataPattern' => '/^\\w+(\\s\\w+)?+$/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Last Name', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'prefix_id' => [ - 'name' => 'prefix_id', - 'type' => 1, - 'title' => 'Individual Prefix', - 'description' => 'Prefix or Title for name (Ms, Mr...). FK to prefix ID', - 'import' => TRUE, - 'where' => 'civicrm_contact.prefix_id', - 'headerPattern' => '/^(prefix|title)/i', - 'dataPattern' => '/^(mr|ms|mrs|sir|dr)\\.?$/i', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'individual_prefix', - 'optionEditPath' => 'civicrm/admin/options/individual_prefix', - ], - 'add' => '1.2', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'individual_prefix', - '1' => 'individual_prefix_id', - ], - ], - 'suffix_id' => [ - 'name' => 'suffix_id', - 'type' => 1, - 'title' => 'Individual Suffix', - 'description' => 'Suffix for name (Jr, Sr...). FK to suffix ID', - 'import' => TRUE, - 'where' => 'civicrm_contact.suffix_id', - 'headerPattern' => '/^suffix$/i', - 'dataPattern' => '/^(sr|jr)\\.?|i{2,}$/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'individual_suffix', - 'optionEditPath' => 'civicrm/admin/options/individual_suffix', - ], - 'add' => '1.2', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'individual_suffix', - '1' => 'individual_suffix_id', - ], - ], - 'formal_title' => [ - 'name' => 'formal_title', - 'type' => 2, - 'title' => 'Formal Title', - 'description' => 'Formal (academic or similar) title in front of name. (Prof., Dr. etc.)', - 'maxlength' => 64, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.formal_title', - 'headerPattern' => '/^title/i', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Formal Title', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '4.5', - 'is_core_field' => TRUE, - ], - 'communication_style_id' => [ - 'name' => 'communication_style_id', - 'type' => 1, - 'title' => 'Communication Style', - 'description' => 'Communication style (e.g. formal vs. familiar) to use with this contact. FK to communication styles in civicrm_option_value.', - 'import' => TRUE, - 'where' => 'civicrm_contact.communication_style_id', - 'headerPattern' => '/style/i', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'communication_style', - 'optionEditPath' => 'civicrm/admin/options/communication_style', - ], - 'add' => '4.4', - 'is_core_field' => TRUE, - ], - 'email_greeting_id' => [ - 'name' => 'email_greeting_id', - 'type' => 1, - 'title' => 'Email Greeting ID', - 'description' => 'FK to civicrm_option_value.id, that has to be valid registered Email Greeting.', - 'where' => 'civicrm_contact.email_greeting_id', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'email_greeting', - 'optionEditPath' => 'civicrm/admin/options/email_greeting', - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'email_greeting_custom' => [ - 'name' => 'email_greeting_custom', - 'type' => 2, - 'title' => 'Email Greeting Custom', - 'description' => 'Custom Email Greeting.', - 'maxlength' => 128, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_contact.email_greeting_custom', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Email Greeting Custom', - 'maxlength' => 128, - 'size' => 45, - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'email_greeting_display' => [ - 'name' => 'email_greeting_display', - 'type' => 2, - 'title' => 'Email Greeting', - 'description' => 'Cache Email Greeting.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_contact.email_greeting_display', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'postal_greeting_id' => [ - 'name' => 'postal_greeting_id', - 'type' => 1, - 'title' => 'Postal Greeting ID', - 'description' => 'FK to civicrm_option_value.id, that has to be valid registered Postal Greeting.', - 'where' => 'civicrm_contact.postal_greeting_id', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'postal_greeting', - 'optionEditPath' => 'civicrm/admin/options/postal_greeting', - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'postal_greeting_custom' => [ - 'name' => 'postal_greeting_custom', - 'type' => 2, - 'title' => 'Postal Greeting Custom', - 'description' => 'Custom Postal greeting.', - 'maxlength' => 128, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_contact.postal_greeting_custom', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Postal Greeting Custom', - 'maxlength' => 128, - 'size' => 45, - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'postal_greeting_display' => [ - 'name' => 'postal_greeting_display', - 'type' => 2, - 'title' => 'Postal Greeting', - 'description' => 'Cache Postal greeting.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_contact.postal_greeting_display', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'addressee_id' => [ - 'name' => 'addressee_id', - 'type' => 1, - 'title' => 'Addressee ID', - 'description' => 'FK to civicrm_option_value.id, that has to be valid registered Addressee.', - 'where' => 'civicrm_contact.addressee_id', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'addressee', - 'optionEditPath' => 'civicrm/admin/options/addressee', - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'addressee_custom' => [ - 'name' => 'addressee_custom', - 'type' => 2, - 'title' => 'Addressee Custom', - 'description' => 'Custom Addressee.', - 'maxlength' => 128, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_contact.addressee_custom', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Addressee Custom', - 'maxlength' => 128, - 'size' => 45, - ], - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'addressee_display' => [ - 'name' => 'addressee_display', - 'type' => 2, - 'title' => 'Addressee', - 'description' => 'Cache Addressee.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_contact.addressee_display', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '3.0', - 'is_core_field' => TRUE, - ], - 'job_title' => [ - 'name' => 'job_title', - 'type' => 2, - 'title' => 'Job Title', - 'description' => 'Job Title', - 'maxlength' => 255, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.job_title', - 'headerPattern' => '/^job|(j(ob\\s)?title)$/i', - 'dataPattern' => '//', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Job Title', - 'maxlength' => 255, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'gender_id' => [ - 'name' => 'gender_id', - 'type' => 1, - 'title' => 'Gender ID', - 'description' => 'FK to gender ID', - 'import' => TRUE, - 'where' => 'civicrm_contact.gender_id', - 'headerPattern' => '/^gender$/i', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'label' => 'Gender', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'gender', - 'optionEditPath' => 'civicrm/admin/options/gender', - ], - 'add' => '1.2', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'gender', - ], - ], - 'birth_date' => [ - 'name' => 'birth_date', - 'type' => 4, - 'title' => 'Birth Date', - 'description' => 'Date of birth', - 'import' => TRUE, - 'where' => 'civicrm_contact.birth_date', - 'headerPattern' => '/^birth|(b(irth\\s)?date)|D(\\W*)O(\\W*)B(\\W*)$/i', - 'dataPattern' => '/\\d{4}-?\\d{2}-?\\d{2}/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select Date', - 'formatType' => 'birth', - 'label' => 'Birth Date', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'is_deceased' => [ - 'name' => 'is_deceased', - 'type' => 16, - 'title' => 'Deceased', - 'required' => TRUE, - 'import' => TRUE, - 'where' => 'civicrm_contact.is_deceased', - 'headerPattern' => '/i(s\\s)?d(eceased)$/i', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - 'label' => 'Is Deceased', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'deceased_date' => [ - 'name' => 'deceased_date', - 'type' => 4, - 'title' => 'Deceased Date', - 'description' => 'Date of deceased', - 'import' => TRUE, - 'where' => 'civicrm_contact.deceased_date', - 'headerPattern' => '/^deceased|(d(eceased\\s)?date)$/i', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select Date', - 'formatType' => 'birth', - 'label' => 'Deceased Date', - ], - 'add' => '1.5', - 'is_core_field' => TRUE, - ], - 'household_name' => [ - 'name' => 'household_name', - 'type' => 2, - 'title' => 'Household Name', - 'description' => 'Household Name.', - 'maxlength' => 128, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.household_name', - 'headerPattern' => '/^household|(h(ousehold\\s)?name)$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'contactType' => 'Household', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Household Name', - 'maxlength' => 128, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'primary_contact_id' => [ - 'name' => 'primary_contact_id', - 'type' => 1, - 'title' => 'Household Primary Contact ID', - 'description' => 'Optional FK to Primary Contact for this household.', - 'where' => 'civicrm_contact.primary_contact_id', - 'contactType' => 'Household', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'label' => 'Household Primary Contact', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'FKApiName' => 'Contact', - ], - 'organization_name' => [ - 'name' => 'organization_name', - 'type' => 2, - 'title' => 'Organization Name', - 'description' => 'Organization Name.', - 'maxlength' => 128, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.organization_name', - 'headerPattern' => '/^organization|(o(rganization\\s)?name)$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'contactType' => 'Organization', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Organization Name', - 'maxlength' => 128, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'sic_code' => [ - 'name' => 'sic_code', - 'type' => 2, - 'title' => 'Sic Code', - 'description' => 'Standard Industry Classification Code.', - 'maxlength' => 8, - 'size' => 8, - 'import' => TRUE, - 'where' => 'civicrm_contact.sic_code', - 'headerPattern' => '/^sic|(s(ic\\s)?code)$/i', - 'export' => TRUE, - 'contactType' => 'Organization', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'SIC Code', - 'maxlength' => 8, - 'size' => 8, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'user_unique_id' => [ - 'name' => 'user_unique_id', - 'type' => 2, - 'title' => 'Unique ID (OpenID)', - 'description' => 'the OpenID (or OpenID-style http://username.domain/) unique identifier for this contact mainly used for logging in to CiviCRM', - 'maxlength' => 255, - 'size' => 45, - 'import' => TRUE, - 'where' => 'civicrm_contact.user_unique_id', - 'headerPattern' => '/^Open\\s?ID|u(niq\\w*)?\\s?ID/i', - 'dataPattern' => '/^[\\w\\/\\:\\.]+$/', - 'export' => TRUE, - 'rule' => 'url', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 255, - 'size' => 45, - ], - 'add' => '2.0', - 'is_core_field' => TRUE, - ], - 'created_date' => [ - 'name' => 'created_date', - 'type' => 256, - 'title' => 'Created Date', - 'description' => 'When was the contact was created.', - 'required' => '', - 'where' => 'civicrm_contact.created_date', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'label' => 'Created Date', - ], - 'add' => '4.3', - 'is_core_field' => TRUE, - ], - 'modified_date' => [ - 'name' => 'modified_date', - 'type' => 256, - 'title' => 'Modified Date', - 'description' => 'When was the contact (or closely related entity) was created or modified or deleted.', - 'required' => '', - 'where' => 'civicrm_contact.modified_date', - 'export' => TRUE, - 'default' => 'CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'label' => 'Modified Date', - ], - 'readonly' => TRUE, - 'add' => '4.3', - 'is_core_field' => TRUE, - ], - 'source' => [ - 'name' => 'source', - 'type' => 2, - 'title' => 'Contact Source', - 'description' => 'where contact come from, e.g. import, donate module insert...', - 'maxlength' => 255, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.source', - 'headerPattern' => '/(C(ontact\\s)?Source)$/i', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 255, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'uniqueName' => 'contact_source', - ], - 'employer_id' => [ - 'name' => 'employer_id', - 'type' => 1, - 'title' => 'Current Employer ID', - 'description' => 'OPTIONAL FK to civicrm_contact record.', - 'where' => 'civicrm_contact.employer_id', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'type' => 'EntityRef', - 'label' => 'Current Employer', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '2.1', - 'is_core_field' => TRUE, - 'uniqueName' => 'current_employer_id', - 'FKApiName' => 'Contact', - ], - 'is_deleted' => [ - 'name' => 'is_deleted', - 'type' => 16, - 'title' => 'Contact is in Trash', - 'required' => TRUE, - 'where' => 'civicrm_contact.is_deleted', - 'export' => TRUE, - 'table_name' => 'civicrm_contact', - 'entity' => 'Contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'CheckBox', - ], - 'add' => '3.2', - 'is_core_field' => TRUE, - 'uniqueName' => 'contact_is_deleted', - ], - 'custom_1' => [ - 'id' => '1', - 'label' => 'Our special field', - 'headerPattern' => '//', - 'title' => 'Our special field', - 'custom_field_id' => '1', - 'groupTitle' => 'select_test_group', - 'data_type' => 'String', - 'name' => 'custom_1', - 'type' => 2, - 'html_type' => 'Select', - 'default_value' => '', - 'text_length' => '', - 'options_per_line' => '', - 'custom_group_id' => '1', - 'extends' => 'Contact', - 'is_search_range' => 0, - 'extends_entity_column_value' => '', - 'extends_entity_column_id' => '', - 'is_view' => 0, - 'is_multiple' => 0, - 'option_group_id' => '109', - 'date_format' => '', - 'time_format' => '', - 'is_required' => '1', - 'table_name' => 'civicrm_value_select_test_g_1', - 'column_name' => 'our_special_field_1', - 'serialize' => 0, - 'where' => 'civicrm_value_select_test_g_1.our_special_field_1', - 'extends_table' => 'civicrm_contact', - 'search_table' => 'contact_a', - 'pseudoconstant' => [ - 'optionGroupName' => 'our_special_field_20220117122549', - 'optionEditPath' => 'civicrm/admin/options/our_special_field_20220117122549', - ], - 'options' => [ - '1' => 'Label1', - '2' => 'Label2', - ], - ], - 'current_employer' => [ - 'title' => 'Current Employer', - 'description' => 'Name of Current Employer', - 'type' => 2, - 'name' => 'current_employer', - ], - 'dupe_check' => [ - 'title' => 'Check for Duplicates', - 'description' => 'Throw error if contact create matches dedupe rule', - 'type' => 16, - 'name' => 'dupe_check', - ], - 'skip_greeting_processing' => [ - 'title' => 'Skip Greeting processing', - 'description' => 'Do not process greetings, (these can be done by scheduled job and there may be a preference to do so for performance reasons)', - 'type' => 16, - 'api.default' => 0, - 'name' => 'skip_greeting_processing', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCustomFieldCreateWithOptionValues" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetMergedfrom.ex.php b/civicrm/api/v3/examples/Contact/GetMergedfrom.ex.php deleted file mode 100644 index bab1e98219f3a326b4086380daef38348bba22b9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetMergedfrom.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getmergedfrom API. - * - * @return array - * API result array - */ -function contact_getmergedfrom_example() { - $params = [ - 'contact_id' => 4, - ]; - - try { - $result = civicrm_api3('Contact', 'getmergedfrom', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getmergedfrom_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - ], - '5' => [ - 'id' => '5', - ], - '6' => [ - 'id' => '6', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMergedGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetMergedto.ex.php b/civicrm/api/v3/examples/Contact/GetMergedto.ex.php deleted file mode 100644 index 4746b88c42ab0fa079297c80e854db311ad09bbd..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetMergedto.ex.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getmergedto API. - * - * @return array - * API result array - */ -function contact_getmergedto_example() { - $params = [ - 'sequential' => 1, - 'contact_id' => 6, - ]; - - try { - $result = civicrm_api3('Contact', 'getmergedto', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getmergedto_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '0' => [ - 'id' => '4', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMergedGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetOptions.ex.php b/civicrm/api/v3/examples/Contact/GetOptions.ex.php deleted file mode 100644 index b7e43de58f411de0d73314d2581b49c0de6ffa22..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetOptions.ex.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getoptions API. - * - * Demonstrates retrieving options for a custom field. - * - * @return array - * API result array - */ -function contact_getoptions_example() { - $params = [ - 'field' => 'custom_1', - ]; - - try { - $result = civicrm_api3('Contact', 'getoptions', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getoptions_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '1' => 'Label1', - '2' => 'Label2', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCustomFieldCreateWithOptionValues" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetSingleContact.ex.php b/civicrm/api/v3/examples/Contact/GetSingleContact.ex.php deleted file mode 100644 index 1590daf0c9ebe1389d08374dc0487b732490890a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetSingleContact.ex.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getsingle API. - * - * This demonstrates use of the 'format.single_entity_array' param. - * This param causes the only contact to be returned as an array without the other levels. - * It will be ignored if there is not exactly 1 result. - * - * @return array - * API result array - */ -function contact_getsingle_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Contact', 'getsingle', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getsingle_expectedresult() { - - $expectedResult = [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Contact, Test', - 'display_name' => 'Mr. Test Contact II', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'Test', - 'middle_name' => 'J.', - 'last_name' => 'Contact', - 'prefix_id' => '3', - 'suffix_id' => '3', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'anthony_anderson@civicrm.org', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => 'Mr.', - 'individual_suffix' => 'II', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetSingleEntityArray" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GetUnique.ex.php b/civicrm/api/v3/examples/Contact/GetUnique.ex.php deleted file mode 100644 index e3f85e40625bcfedf182f432f8fe2042348fc67c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GetUnique.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.getunique API. - * - * @return array - * API result array - */ -function contact_getunique_example() { - $params = []; - - try { - $result = civicrm_api3('Contact', 'getunique', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_getunique_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 'UI_external_identifier', - 'values' => [ - 'UI_external_identifier' => [], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetUnique" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/GroupFilterUsingContactAPI.ex.php b/civicrm/api/v3/examples/Contact/GroupFilterUsingContactAPI.ex.php deleted file mode 100644 index aa05306ece42e9173151d26ecdcb17f1b81d9bd1..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/GroupFilterUsingContactAPI.ex.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * Get all from group and display contacts. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'group' => [ - 'IN' => [ - '0' => 'Test group C', - '1' => 'Test group D', - ], - ], - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Group member, Test2', - 'display_name' => 'Test2 Group member', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => 'Test2', - 'middle_name' => '', - 'last_name' => 'Group member', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => '', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '3', - 'email' => 'test@example.org', - 'on_hold' => 0, - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => '', - 'individual_suffix' => '', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContactGetWithGroupTitleMultipleGroups" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contact/NestedReplaceEmail.ex.php b/civicrm/api/v3/examples/Contact/NestedReplaceEmail.ex.php deleted file mode 100644 index 9da1b89f065f44aac184a33060e06043369abd55..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contact/NestedReplaceEmail.ex.php +++ /dev/null @@ -1,254 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contact.get API. - * - * Demonstrates use of Replace in a nested API call. - * - * @return array - * API result array - */ -function contact_get_example() { - $params = [ - 'id' => 19, - 'api.email.replace' => [ - 'values' => [ - '0' => [ - 'location_type_id' => 38, - 'email' => '1-1@example.com', - 'is_primary' => 1, - ], - '1' => [ - 'location_type_id' => 38, - 'email' => '1-2@example.com', - 'is_primary' => 0, - ], - '2' => [ - 'location_type_id' => 38, - 'email' => '1-3@example.com', - 'is_primary' => 0, - ], - '3' => [ - 'location_type_id' => 39, - 'email' => '2-1@example.com', - 'is_primary' => 0, - ], - '4' => [ - 'location_type_id' => 39, - 'email' => '2-2@example.com', - 'is_primary' => 0, - ], - ], - ], - ]; - - try { - $result = civicrm_api3('Contact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 19, - 'values' => [ - '19' => [ - 'contact_id' => '19', - 'contact_type' => 'Organization', - 'contact_sub_type' => '', - 'sort_name' => 'Unit Test Organization', - 'display_name' => 'Unit Test Organization', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'first_name' => '', - 'middle_name' => '', - 'last_name' => '', - 'prefix_id' => '', - 'suffix_id' => '', - 'formal_title' => '', - 'communication_style_id' => '1', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'organization_name' => 'Unit Test Organization', - 'sic_code' => '', - 'contact_is_deleted' => 0, - 'current_employer' => '', - 'address_id' => '', - 'street_address' => '', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'postal_code_suffix' => '', - 'postal_code' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - 'state_province_id' => '', - 'country_id' => '', - 'phone_id' => '', - 'phone_type_id' => '', - 'phone' => '', - 'email_id' => '', - 'email' => '', - 'on_hold' => '', - 'im_id' => '', - 'provider_id' => '', - 'im' => '', - 'worldregion_id' => '', - 'world_region' => '', - 'languages' => 'English (United States)', - 'individual_prefix' => '', - 'individual_suffix' => '', - 'communication_style' => 'Formal', - 'gender' => '', - 'state_province_name' => '', - 'state_province' => '', - 'country' => '', - 'id' => '19', - 'api.email.replace' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '0' => [ - 'id' => '35', - 'contact_id' => '19', - 'location_type_id' => '38', - 'email' => '1-1@example.com', - 'is_primary' => '1', - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '1' => [ - 'id' => '36', - 'contact_id' => '19', - 'location_type_id' => '38', - 'email' => '1-2@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '2' => [ - 'id' => '37', - 'contact_id' => '19', - 'location_type_id' => '38', - 'email' => '1-3@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '3' => [ - 'id' => '38', - 'contact_id' => '19', - 'location_type_id' => '39', - 'email' => '2-1@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '4' => [ - 'id' => '39', - 'contact_id' => '19', - 'location_type_id' => '39', - 'email' => '2-2@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testReplaceEmailsInChain" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EmailTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/ContributionCreateWithHonoreeContact.ex.php b/civicrm/api/v3/examples/Contribution/ContributionCreateWithHonoreeContact.ex.php deleted file mode 100644 index e56c890d5bc14cc8988166d9a26e0906d5acd7d2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/ContributionCreateWithHonoreeContact.ex.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.create API. - * - * Demonstrates creating contribution with Soft Credit by passing in honor_contact_id. - * - * @return array - * API result array - */ -function contribution_create_example() { - $params = [ - 'contact_id' => 3, - 'receive_date' => '20120511', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '5', - 'net_amount' => '95', - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'honor_contact_id' => 4, - ]; - - try { - $result = civicrm_api3('Contribution', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '5', - 'net_amount' => '95', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionWithHonoreeContact" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/ContributionCreateWithNote.ex.php b/civicrm/api/v3/examples/Contribution/ContributionCreateWithNote.ex.php deleted file mode 100644 index 44ec08c356c8270298dc8c31cde0c00bda26f04c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/ContributionCreateWithNote.ex.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.create API. - * - * Demonstrates creating contribution with Note Entity. - * - * @return array - * API result array - */ -function contribution_create_example() { - $params = [ - 'contact_id' => 3, - 'receive_date' => '2012-01-01', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'payment_instrument_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => 12345, - 'invoice_id' => 67890, - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'note' => 'my contribution note', - ]; - - try { - $result = civicrm_api3('Contribution', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '1', - 'receive_date' => '20120101000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => '12345', - 'invoice_id' => '67890', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionWithNote" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/ContributionCreateWithSoftCredit.ex.php b/civicrm/api/v3/examples/Contribution/ContributionCreateWithSoftCredit.ex.php deleted file mode 100644 index ea42d726dfe7a5d8e6d91c1a7e29abe1d37d283c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/ContributionCreateWithSoftCredit.ex.php +++ /dev/null @@ -1,128 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.create API. - * - * Demonstrates creating contribution with SoftCredit. - * - * @return array - * API result array - */ -function contribution_create_example() { - $params = [ - 'contact_id' => 3, - 'receive_date' => '20120511', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '5', - 'net_amount' => '95', - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'soft_credit' => [ - '1' => [ - 'contact_id' => 4, - 'amount' => 50, - 'soft_credit_type_id' => 3, - ], - ], - ]; - - try { - $result = civicrm_api3('Contribution', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '5', - 'net_amount' => '95', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionWithSoftCredit" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/ContributionCreateWithSoftCreditDefaults.ex.php b/civicrm/api/v3/examples/Contribution/ContributionCreateWithSoftCreditDefaults.ex.php deleted file mode 100644 index 938f989bc54f4eb2037d916d52e923269dc9a42f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/ContributionCreateWithSoftCreditDefaults.ex.php +++ /dev/null @@ -1,122 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.create API. - * - * Demonstrates creating contribution with Soft Credit defaults for amount and type. - * - * @return array - * API result array - */ -function contribution_create_example() { - $params = [ - 'contact_id' => 3, - 'receive_date' => '20120511', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '5', - 'net_amount' => '95', - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'soft_credit_to' => 4, - ]; - - try { - $result = civicrm_api3('Contribution', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '5', - 'net_amount' => '95', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionWithSoftCreditDefaults" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/Create.ex.php b/civicrm/api/v3/examples/Contribution/Create.ex.php deleted file mode 100644 index f275e817e58d4404c4430a626e85ade860b2e695..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/Create.ex.php +++ /dev/null @@ -1,120 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.create API. - * - * @return array - * API result array - */ -function contribution_create_example() { - $params = [ - 'contact_id' => 3, - 'receive_date' => '20120511', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'contribution_page_id' => 1, - 'trxn_id' => 12345, - 'is_pay_later' => 1, - 'invoice_id' => 67890, - 'source' => 'SSF', - 'contribution_status_id' => 'Pending', - ]; - - try { - $result = civicrm_api3('Contribution', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '1', - 'payment_instrument_id' => '4', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '', - 'total_amount' => '100', - 'fee_amount' => 0, - 'net_amount' => '100', - 'trxn_id' => '12345', - 'invoice_id' => '67890', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '1', - 'contribution_status_id' => '2', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionPayLaterOnline" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/CreateWithNestedLineItems.ex.php b/civicrm/api/v3/examples/Contribution/CreateWithNestedLineItems.ex.php deleted file mode 100644 index 6324494bd35474880313a7d65c2d736e1d1b2b4a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/CreateWithNestedLineItems.ex.php +++ /dev/null @@ -1,191 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.create API. - * - * Create Contribution with Nested Line Items. - * - * @return array - * API result array - */ -function contribution_create_example() { - $params = [ - 'contact_id' => 3, - 'receive_date' => '20120511', - 'total_amount' => '100', - 'financial_type_id' => 1, - 'payment_instrument_id' => 1, - 'non_deductible_amount' => '10', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => 12345, - 'invoice_id' => 67890, - 'source' => 'SSF', - 'contribution_status_id' => 'Pending', - 'skipLineItem' => 1, - 'api.line_item.create' => [ - '0' => [ - 'price_field_id' => 1, - 'qty' => 2, - 'line_total' => '20', - 'unit_price' => '10', - ], - '1' => [ - 'price_field_id' => 1, - 'qty' => 1, - 'line_total' => '80', - 'unit_price' => '80', - ], - ], - ]; - - try { - $result = civicrm_api3('Contribution', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '1', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '10', - 'total_amount' => '100', - 'fee_amount' => '50', - 'net_amount' => '90', - 'trxn_id' => '12345', - 'invoice_id' => '67890', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '2', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - 'api.line_item.create' => [ - '0' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '1', - 'contribution_id' => '1', - 'price_field_id' => '1', - 'label' => 'line item', - 'qty' => '2', - 'unit_price' => '10', - 'line_total' => '20', - 'participant_count' => '', - 'price_field_value_id' => '', - 'financial_type_id' => '', - 'non_deductible_amount' => '', - 'tax_amount' => '', - 'membership_num_terms' => '', - ], - ], - ], - '1' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '1', - 'contribution_id' => '1', - 'price_field_id' => '1', - 'label' => 'line item', - 'qty' => '1', - 'unit_price' => '80', - 'line_total' => '80', - 'participant_count' => '', - 'price_field_value_id' => '', - 'financial_type_id' => '', - 'non_deductible_amount' => '', - 'tax_amount' => '', - 'membership_num_terms' => '', - ], - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionChainedLineItems" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/Delete.ex.php b/civicrm/api/v3/examples/Contribution/Delete.ex.php deleted file mode 100644 index 995946cd03740d6da84fe1aff7f5f4f1e3566138..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/Delete.ex.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.delete API. - * - * @return array - * API result array - */ -function contribution_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Contribution', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => 1, - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteContribution" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/Get.ex.php b/civicrm/api/v3/examples/Contribution/Get.ex.php deleted file mode 100644 index aa60007bb2d879d0fab74064e153aabd1565a34d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/Get.ex.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.get API. - * - * @return array - * API result array - */ -function contribution_get_example() { - $params = [ - 'contribution_id' => 1, - 'return' => [ - '0' => 'invoice_number', - '1' => 'contribution_source', - '2' => 'contact_id', - '3' => 'receive_date', - '4' => 'total_amount', - '5' => 'financial_type_id', - '6' => 'non_deductible_amount', - '7' => 'fee_amount', - '8' => 'net_amount', - '9' => 'trxn_id', - '10' => 'invoice_id', - '11' => 'source', - '12' => 'contribution_status_id', - ], - ]; - - try { - $result = civicrm_api3('Contribution', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '3', - 'contribution_recur_id' => '', - 'contribution_status_id' => '1', - 'contribution_id' => '1', - 'financial_type_id' => '1', - 'receive_date' => '2010-01-20 00:00:00', - 'non_deductible_amount' => '10.00', - 'total_amount' => '100.00', - 'fee_amount' => '5.00', - 'net_amount' => '95.00', - 'trxn_id' => '23456', - 'invoice_id' => '78910', - 'invoice_number' => 'INV_1', - 'contribution_source' => 'SSF', - 'contribution_recur_status' => 'Completed', - 'contribution_status' => 'Completed', - 'id' => '1', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetContribution" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Contribution/GetUnique.ex.php b/civicrm/api/v3/examples/Contribution/GetUnique.ex.php deleted file mode 100644 index 01aa7359301147e78bba40bbe1bffa653c68ab66..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Contribution/GetUnique.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Contribution.getunique API. - * - * @return array - * API result array - */ -function contribution_getunique_example() { - $params = []; - - try { - $result = civicrm_api3('Contribution', 'getunique', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_getunique_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - 'UI_contrib_trxn_id' => [], - 'UI_contrib_invoice_id' => [], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testContributionGetUnique" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionPage/Create.ex.php b/civicrm/api/v3/examples/ContributionPage/Create.ex.php deleted file mode 100644 index 2070e71044af9bb91e5ccb538dd244efb3475b20..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionPage/Create.ex.php +++ /dev/null @@ -1,135 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionPage.create API. - * - * @return array - * API result array - */ -function contribution_page_create_example() { - $params = [ - 'title' => 'Test Contribution Page', - 'financial_type_id' => 1, - 'currency' => 'NZD', - 'goal_amount' => 34567, - 'is_pay_later' => 1, - 'pay_later_text' => 'Send check', - 'is_monetary' => TRUE, - 'is_email_receipt' => TRUE, - 'receipt_from_email' => 'yourconscience@donate.com', - 'receipt_from_name' => 'Ego Freud', - ]; - - try { - $result = civicrm_api3('ContributionPage', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_page_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'title' => 'Test Contribution Page', - 'intro_text' => '', - 'financial_type_id' => '1', - 'payment_processor' => '', - 'is_credit_card_only' => '', - 'is_monetary' => '1', - 'is_recur' => '', - 'is_confirm_enabled' => '', - 'recur_frequency_unit' => '', - 'is_recur_interval' => '', - 'is_recur_installments' => '', - 'adjust_recur_start_date' => '', - 'is_pay_later' => '1', - 'pay_later_text' => 'Send check', - 'pay_later_receipt' => '', - 'is_partial_payment' => '', - 'initial_amount_label' => '', - 'initial_amount_help_text' => '', - 'min_initial_amount' => '', - 'is_allow_other_amount' => '', - 'default_amount_id' => '', - 'min_amount' => '', - 'max_amount' => '', - 'goal_amount' => '34567', - 'thankyou_title' => '', - 'thankyou_text' => '', - 'thankyou_footer' => '', - 'is_email_receipt' => '1', - 'receipt_from_name' => 'Ego Freud', - 'receipt_from_email' => 'yourconscience@donate.com', - 'cc_receipt' => '', - 'bcc_receipt' => '', - 'receipt_text' => '', - 'is_active' => '1', - 'footer_text' => '', - 'amount_block_is_active' => '', - 'start_date' => '', - 'end_date' => '', - 'created_id' => '', - 'created_date' => '', - 'currency' => 'NZD', - 'campaign_id' => '', - 'is_share' => '', - 'is_billing_required' => '', - 'frontend_title' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "basicCreateTest" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CiviUnitTestCase.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionPage/Delete.ex.php b/civicrm/api/v3/examples/ContributionPage/Delete.ex.php deleted file mode 100644 index babbd43ca0ab73a76fad75080ca4ad2c58bef9b3..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionPage/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionPage.delete API. - * - * @return array - * API result array - */ -function contribution_page_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('ContributionPage', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_page_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "basicDeleteTest" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CiviUnitTestCase.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionPage/Get.ex.php b/civicrm/api/v3/examples/ContributionPage/Get.ex.php deleted file mode 100644 index 46acb7e857abc716a065ffcac54b0b812c1beeb4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionPage/Get.ex.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionPage.get API. - * - * @return array - * API result array - */ -function contribution_page_get_example() { - $params = [ - 'currency' => 'NZD', - 'financial_type_id' => 1, - ]; - - try { - $result = civicrm_api3('ContributionPage', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_page_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'title' => 'Test Contribution Page', - 'financial_type_id' => '1', - 'is_credit_card_only' => 0, - 'is_monetary' => '1', - 'is_recur' => 0, - 'is_confirm_enabled' => '1', - 'is_recur_interval' => 0, - 'is_recur_installments' => 0, - 'adjust_recur_start_date' => 0, - 'is_pay_later' => '1', - 'pay_later_text' => 'Send check', - 'is_partial_payment' => 0, - 'is_allow_other_amount' => 0, - 'goal_amount' => '34567.00', - 'is_email_receipt' => '1', - 'receipt_from_name' => 'Ego Freud', - 'receipt_from_email' => 'yourconscience@donate.com', - 'is_active' => '1', - 'amount_block_is_active' => '1', - 'currency' => 'NZD', - 'is_share' => '1', - 'is_billing_required' => 0, - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetBasicContributionPage" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionPageTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionPage/Submit.ex.php b/civicrm/api/v3/examples/ContributionPage/Submit.ex.php deleted file mode 100644 index f1eb5c13c87818dfa866dbc7c77190d4ab340e41..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionPage/Submit.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionPage.submit API. - * - * submit contribution page. - * - * @return array - * API result array - */ -function contribution_page_submit_example() { - $params = [ - 'id' => 1, - 'pledge_amount' => [ - '2' => 1, - ], - 'price_2' => 3, - 'billing_first_name' => 'Billy', - 'billing_middle_name' => 'Goat', - 'billing_last_name' => 'Gruff', - 'email' => 'billy@goat.gruff', - 'payment_processor_id' => 1, - 'credit_card_number' => '4111111111111111', - 'credit_card_type' => 'Visa', - 'credit_card_exp_date' => [ - 'M' => 9, - 'Y' => 2040, - ], - 'cvv2' => 123, - 'pledge_id' => '1', - 'cid' => '4', - 'contact_id' => '4', - 'is_pledge' => TRUE, - 'pledge_block_id' => 1, - ]; - - try { - $result = civicrm_api3('ContributionPage', 'submit', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_page_submit_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => '', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testSubmitPledgePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionPageTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionRecur/Create.ex.php b/civicrm/api/v3/examples/ContributionRecur/Create.ex.php deleted file mode 100644 index d4029781aab4518b08c904b6a1730b0ee4361537..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionRecur/Create.ex.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionRecur.create API. - * - * @return array - * API result array - */ -function contribution_recur_create_example() { - $params = [ - 'contact_id' => 3, - 'installments' => '12', - 'frequency_interval' => '1', - 'amount' => '500.00', - 'contribution_status_id' => 1, - 'start_date' => '2012-01-01 00:00:00', - 'currency' => 'USD', - 'frequency_unit' => 'day', - ]; - - try { - $result = civicrm_api3('ContributionRecur', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_recur_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'amount' => '500.00', - 'currency' => 'USD', - 'frequency_unit' => 'day', - 'frequency_interval' => '1', - 'installments' => '12', - 'start_date' => '2013-07-29 00:00:00', - 'create_date' => '20120130621222105', - 'modified_date' => '2012-11-14 16:02:35', - 'cancel_date' => '', - 'cancel_reason' => '', - 'end_date' => '', - 'processor_id' => '', - 'payment_token_id' => '', - 'trxn_id' => '', - 'invoice_id' => '', - 'contribution_status_id' => '1', - 'is_test' => '', - 'cycle_day' => '', - 'next_sched_contribution_date' => '', - 'failure_count' => '', - 'failure_retry_date' => '', - 'auto_renew' => '', - 'payment_processor_id' => '', - 'financial_type_id' => '', - 'payment_instrument_id' => '', - 'campaign_id' => '', - 'is_email_receipt' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "basicCreateTest" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CiviUnitTestCase.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionRecur/Delete.ex.php b/civicrm/api/v3/examples/ContributionRecur/Delete.ex.php deleted file mode 100644 index 1d4b11c403b050212471a26d019683e3baea9f6f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionRecur/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionRecur.delete API. - * - * @return array - * API result array - */ -function contribution_recur_delete_example() { - $params = [ - 'id' => 7, - ]; - - try { - $result = civicrm_api3('ContributionRecur', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_recur_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "basicDeleteTest" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CiviUnitTestCase.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionRecur/Get.ex.php b/civicrm/api/v3/examples/ContributionRecur/Get.ex.php deleted file mode 100644 index a26894fc44264230b595a2d3eb128877aeff7fd9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionRecur/Get.ex.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionRecur.get API. - * - * @return array - * API result array - */ -function contribution_recur_get_example() { - $params = [ - 'amount' => '500', - ]; - - try { - $result = civicrm_api3('ContributionRecur', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_recur_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_id' => '5', - 'amount' => '500.00', - 'currency' => 'USD', - 'frequency_unit' => 'day', - 'frequency_interval' => '1', - 'installments' => '12', - 'start_date' => '2013-07-29 00:00:00', - 'create_date' => '20120130621222105', - 'modified_date' => '2012-11-14 16:02:35', - 'contribution_status_id' => '1', - 'is_test' => 0, - 'cycle_day' => '1', - 'failure_count' => 0, - 'auto_renew' => 0, - 'is_email_receipt' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetContributionRecur" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionRecurTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionSoft/Create.ex.php b/civicrm/api/v3/examples/ContributionSoft/Create.ex.php deleted file mode 100644 index b90e7cbeadf1faa3fb5107e26530a2cde2dbe4b9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionSoft/Create.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionSoft.create API. - * - * @return array - * API result array - */ -function contribution_soft_create_example() { - $params = [ - 'contribution_id' => 6, - 'contact_id' => 19, - 'amount' => '10', - 'currency' => 'USD', - 'soft_credit_type_id' => 5, - ]; - - try { - $result = civicrm_api3('ContributionSoft', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_soft_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 5, - 'values' => [ - '5' => [ - 'id' => '5', - 'contribution_id' => '6', - 'contact_id' => '19', - 'amount' => '10', - 'currency' => 'USD', - 'pcp_id' => '', - 'pcp_display_in_roll' => '', - 'pcp_roll_nickname' => '', - 'pcp_personal_note' => '', - 'soft_credit_type_id' => '5', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateContributionSoft" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionSoftTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionSoft/Delete.ex.php b/civicrm/api/v3/examples/ContributionSoft/Delete.ex.php deleted file mode 100644 index 967a0891cfbc91ab02330f851ad14374984a8b83..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionSoft/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionSoft.delete API. - * - * @return array - * API result array - */ -function contribution_soft_delete_example() { - $params = [ - 'id' => 7, - ]; - - try { - $result = civicrm_api3('ContributionSoft', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_soft_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteContributionSoft" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionSoftTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ContributionSoft/Get.ex.php b/civicrm/api/v3/examples/ContributionSoft/Get.ex.php deleted file mode 100644 index 49ea3c8c04f2877128d5f4fcf96c8924b3af4bbf..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ContributionSoft/Get.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ContributionSoft.get API. - * - * @return array - * API result array - */ -function contribution_soft_get_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('ContributionSoft', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function contribution_soft_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contribution_id' => '1', - 'contact_id' => '4', - 'amount' => '10.00', - 'currency' => 'USD', - 'pcp_display_in_roll' => 0, - 'soft_credit_type_id' => '4', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetContributionSoft" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ContributionSoftTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Country/Create.ex.php b/civicrm/api/v3/examples/Country/Create.ex.php deleted file mode 100644 index 8443fc2d9e788d1a8942a9e3adbafc3b3278b4a6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Country/Create.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Country.create API. - * - * @return array - * API result array - */ -function country_create_example() { - $params = [ - 'name' => 'Made Up Land', - 'iso_code' => 'ZZ', - 'region_id' => 1, - ]; - - try { - $result = civicrm_api3('Country', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function country_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1255, - 'values' => [ - '1255' => [ - 'id' => '1255', - 'name' => 'Made Up Land', - 'iso_code' => 'ZZ', - 'country_code' => '', - 'address_format_id' => '', - 'idd_prefix' => '', - 'ndd_prefix' => '', - 'region_id' => '1', - 'is_province_abbreviated' => '', - 'is_active' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateCountry" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CountryTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Country/Delete.ex.php b/civicrm/api/v3/examples/Country/Delete.ex.php deleted file mode 100644 index f7b33b0c5ae55cd218996400204ef36eaf6f089a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Country/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Country.delete API. - * - * @return array - * API result array - */ -function country_delete_example() { - $params = [ - 'id' => 1257, - ]; - - try { - $result = civicrm_api3('Country', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function country_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteCountry" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CountryTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Country/Get.ex.php b/civicrm/api/v3/examples/Country/Get.ex.php deleted file mode 100644 index 83e3d119a2777cde343a72f1dfbb9a103b6961df..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Country/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Country.get API. - * - * @return array - * API result array - */ -function country_get_example() { - $params = [ - 'iso_code' => 'ZZ', - ]; - - try { - $result = civicrm_api3('Country', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function country_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1259, - 'values' => [ - '1259' => [ - 'id' => '1259', - 'name' => 'Made Up Land', - 'iso_code' => 'ZZ', - 'region_id' => '1', - 'is_province_abbreviated' => 0, - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CountryTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CustomField/Create.ex.php b/civicrm/api/v3/examples/CustomField/Create.ex.php deleted file mode 100644 index b4bb9124eb2d69501085cca34c708a93d768db5b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomField/Create.ex.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomField.create API. - * - * @return array - * API result array - */ -function custom_field_create_example() { - $params = [ - 'custom_group_id' => 1, - 'name' => 'test_textfield2', - 'label' => 'Name1', - 'html_type' => 'Text', - 'data_type' => 'String', - 'default_value' => 'abc', - 'weight' => 4, - 'is_required' => 1, - 'is_searchable' => 0, - 'is_active' => 1, - ]; - - try { - $result = civicrm_api3('CustomField', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_field_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'custom_group_id' => '1', - 'name' => 'test_textfield2', - 'label' => 'Name1', - 'data_type' => 'String', - 'html_type' => 'Text', - 'default_value' => 'abc', - 'is_required' => '1', - 'is_searchable' => 0, - 'is_search_range' => 0, - 'weight' => '4', - 'help_pre' => '', - 'help_post' => '', - 'mask' => '', - 'attributes' => '', - 'javascript' => '', - 'is_active' => '1', - 'is_view' => 0, - 'options_per_line' => '', - 'text_length' => '', - 'start_date_years' => '', - 'end_date_years' => '', - 'date_format' => '', - 'time_format' => '', - 'note_columns' => '', - 'note_rows' => '', - 'column_name' => 'name1_1', - 'option_group_id' => '', - 'serialize' => 0, - 'filter' => '', - 'in_selector' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCustomFieldCreateWithEdit" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CustomField/Delete.ex.php b/civicrm/api/v3/examples/CustomField/Delete.ex.php deleted file mode 100644 index 9b5ff15d59e7c3948de8d336889319c9832c8d1e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomField/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomField.delete API. - * - * @return array - * API result array - */ -function custom_field_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('CustomField', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_field_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCustomFieldDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CustomGroup/Create.ex.php b/civicrm/api/v3/examples/CustomGroup/Create.ex.php deleted file mode 100644 index f965296441b5da5f1e2536de30d30d1740a7ec14..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomGroup/Create.ex.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomGroup.create API. - * - * @return array - * API result array - */ -function custom_group_create_example() { - $params = [ - 'title' => 'Test_Group_1', - 'name' => 'test_group_1', - 'extends' => [ - '0' => 'Individual', - ], - 'weight' => 4, - 'collapse_display' => 1, - 'style' => 'Inline', - 'help_pre' => 'This is Pre Help For Test Group 1', - 'help_post' => 'This is Post Help For Test Group 1', - 'is_active' => 1, - ]; - - try { - $result = civicrm_api3('CustomGroup', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_group_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'test_group_1', - 'title' => 'Test_Group_1', - 'extends' => 'Individual', - 'extends_entity_column_id' => '', - 'extends_entity_column_value' => '', - 'style' => 'Inline', - 'collapse_display' => '1', - 'help_pre' => 'This is Pre Help For Test Group 1', - 'help_post' => 'This is Post Help For Test Group 1', - 'weight' => '2', - 'is_active' => '1', - 'table_name' => 'civicrm_value_test_group_1_1', - 'is_multiple' => '', - 'min_multiple' => '', - 'max_multiple' => '', - 'collapse_adv_display' => '', - 'created_id' => '', - 'created_date' => '', - 'is_reserved' => '', - 'is_public' => '', - 'icon' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCustomGroupCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CustomGroup/Delete.ex.php b/civicrm/api/v3/examples/CustomGroup/Delete.ex.php deleted file mode 100644 index d495a48aa6c56d6e96c7f2f29d35531e817b1c3e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomGroup/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomGroup.delete API. - * - * @return array - * API result array - */ -function custom_group_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('CustomGroup', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_group_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCustomGroupDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CustomGroup/Get.ex.php b/civicrm/api/v3/examples/CustomGroup/Get.ex.php deleted file mode 100644 index f40211ba226073936403f75b2072db6364bb5167..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomGroup/Get.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomGroup.get API. - * - * @return array - * API result array - */ -function custom_group_get_example() { - $params = []; - - try { - $result = civicrm_api3('CustomGroup', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_group_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'test_group_1', - 'title' => 'Test_Group_1', - 'extends' => 'Individual', - 'style' => 'Inline', - 'collapse_display' => '1', - 'help_pre' => 'This is Pre Help For Test Group 1', - 'help_post' => 'This is Post Help For Test Group 1', - 'weight' => '2', - 'is_active' => '1', - 'table_name' => 'civicrm_value_test_group_1_1', - 'is_multiple' => 0, - 'collapse_adv_display' => 0, - 'is_reserved' => 0, - 'is_public' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetCustomGroupSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/CustomValue/Create.ex.php b/civicrm/api/v3/examples/CustomValue/Create.ex.php deleted file mode 100644 index 930ddf9f925a73b547232883646a22fd50df177d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomValue/Create.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomValue.create API. - * - * @return array - * API result array - */ -function custom_value_create_example() { - $params = [ - 'custom_1' => 'customString', - 'entity_id' => 3, - ]; - - try { - $result = civicrm_api3('CustomValue', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_value_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => TRUE, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateCustomValue" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-master-git/ - * - * To Learn about the API read - * http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API - * - * Browse the api on your own site with the api explorer - * http://MYSITE.ORG/path/to/civicrm/api - * - * Read more about testing here - * http://wiki.civicrm.org/confluence/display/CRM/Testing - * - * API Standards documentation: - * http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards - */ diff --git a/civicrm/api/v3/examples/CustomValue/FormatFieldName.ex.php b/civicrm/api/v3/examples/CustomValue/FormatFieldName.ex.php deleted file mode 100644 index e3533903801625a680baf5bd2bc212c5ca1ad82c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomValue/FormatFieldName.ex.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomValue.get API. - * - * Utilises field names. - * - * @return array - * API result array - */ -function custom_value_get_example() { - $params = [ - 'id' => 2, - 'entity_id' => 2, - 'format.field_names' => 1, - ]; - - try { - $result = civicrm_api3('CustomValue', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_value_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 7, - 'values' => [ - 'mySingleField' => [ - 'entity_id' => '2', - 'latest' => 'value 1', - 'id' => 'mySingleField', - ], - 'field_12' => [ - 'entity_id' => '2', - 'latest' => 'value 3', - 'id' => 'field_12', - '1' => 'value 2', - '2' => 'value 3', - ], - 'field_22' => [ - 'entity_id' => '2', - 'latest' => '', - 'id' => 'field_22', - '1' => 'warm beer', - '2' => '', - ], - 'field_32' => [ - 'entity_id' => '2', - 'latest' => '', - 'id' => 'field_32', - '1' => 'fl* w*', - '2' => '', - ], - 'field_13' => [ - 'entity_id' => '2', - 'latest' => 'coffee', - 'id' => 'field_13', - '1' => 'defaultValue', - '2' => 'coffee', - ], - 'field_23' => [ - 'entity_id' => '2', - 'latest' => 'value 4', - 'id' => 'field_23', - '1' => '', - '2' => 'value 4', - ], - 'field_33' => [ - 'entity_id' => '2', - 'latest' => '', - 'id' => 'field_33', - '1' => 'vegemite', - '2' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMultipleCustomValues" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-master-git/ - * - * To Learn about the API read - * http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API - * - * Browse the api on your own site with the api explorer - * http://MYSITE.ORG/path/to/civicrm/api - * - * Read more about testing here - * http://wiki.civicrm.org/confluence/display/CRM/Testing - * - * API Standards documentation: - * http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards - */ diff --git a/civicrm/api/v3/examples/CustomValue/Get.ex.php b/civicrm/api/v3/examples/CustomValue/Get.ex.php deleted file mode 100644 index b5eae03648cdde64d752c87eb6b602a32e0bf6b5..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/CustomValue/Get.ex.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the CustomValue.get API. - * - * This demonstrates the use of CustomValue get to fetch single and multi-valued custom data. - * - * @return array - * API result array - */ -function custom_value_get_example() { - $params = [ - 'id' => 2, - 'entity_id' => 2, - ]; - - try { - $result = civicrm_api3('CustomValue', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function custom_value_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 7, - 'values' => [ - '1' => [ - 'entity_id' => '2', - 'latest' => 'value 1', - 'id' => '1', - ], - '2' => [ - 'entity_id' => '2', - 'latest' => 'value 3', - 'id' => '2', - '1' => 'value 2', - '2' => 'value 3', - ], - '3' => [ - 'entity_id' => '2', - 'latest' => '', - 'id' => '3', - '1' => 'warm beer', - '2' => '', - ], - '4' => [ - 'entity_id' => '2', - 'latest' => '', - 'id' => '4', - '1' => 'fl* w*', - '2' => '', - ], - '5' => [ - 'entity_id' => '2', - 'latest' => 'coffee', - 'id' => '5', - '1' => 'defaultValue', - '2' => 'coffee', - ], - '6' => [ - 'entity_id' => '2', - 'latest' => 'value 4', - 'id' => '6', - '1' => '', - '2' => 'value 4', - ], - '7' => [ - 'entity_id' => '2', - 'latest' => '', - 'id' => '7', - '1' => 'vegemite', - '2' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMultipleCustomValues" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/CustomValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-master-git/ - * - * To Learn about the API read - * http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API - * - * Browse the api on your own site with the api explorer - * http://MYSITE.ORG/path/to/civicrm/api - * - * Read more about testing here - * http://wiki.civicrm.org/confluence/display/CRM/Testing - * - * API Standards documentation: - * http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards - */ diff --git a/civicrm/api/v3/examples/Domain/Create.ex.php b/civicrm/api/v3/examples/Domain/Create.ex.php deleted file mode 100644 index be9c1708af905a281b6243582dfe84a74e95344c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Domain/Create.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Domain.create API. - * - * @return array - * API result array - */ -function domain_create_example() { - $params = [ - 'name' => 'A-team domain', - 'description' => 'domain of chaos', - 'domain_version' => '4.2', - 'contact_id' => 7, - ]; - - try { - $result = civicrm_api3('Domain', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function domain_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'name' => 'A-team domain', - 'description' => 'domain of chaos', - 'contact_id' => '7', - 'locales' => '', - 'locale_custom_strings' => '', - 'domain_version' => '4.2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/DomainTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Domain/Get.ex.php b/civicrm/api/v3/examples/Domain/Get.ex.php deleted file mode 100644 index 54652a3bc4913452ff538a7470b1dfed5c5db103..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Domain/Get.ex.php +++ /dev/null @@ -1,129 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Domain.get API. - * - * @return array - * API result array - */ -function domain_get_example() { - $params = [ - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('Domain', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function domain_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '0' => [ - 'id' => '1', - 'name' => 'Default Domain Name', - 'version' => '5.47.alpha1', - 'contact_id' => '3', - 'locale_custom_strings' => 'a:1:{s:5:\"en_US\";a:0:{}}', - 'domain_email' => 'my@email.com', - 'domain_phone' => [ - 'phone_type' => 'Phone', - 'phone' => '456-456', - ], - 'domain_address' => [ - 'street_address' => '45 Penny Lane', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => '', - 'state_province_id' => '', - 'postal_code' => '', - 'country_id' => '', - 'geo_code_1' => '', - 'geo_code_2' => '', - ], - 'from_name' => 'FIXME', - 'from_email' => 'info@EXAMPLE.ORG', - 'domain_version' => '5.47.alpha1', - ], - '1' => [ - 'id' => '2', - 'name' => 'Second Domain', - 'version' => '5.47.alpha1', - 'contact_id' => '2', - 'domain_email' => 'domainemail2@example.org', - 'domain_phone' => [ - 'phone_type' => 'Phone', - 'phone' => '204 555-1001', - ], - 'domain_address' => [ - 'street_address' => '15 Main St', - 'supplemental_address_1' => '', - 'supplemental_address_2' => '', - 'supplemental_address_3' => '', - 'city' => 'Collinsville', - 'state_province_id' => '1006', - 'postal_code' => '6022', - 'country_id' => '1228', - 'geo_code_1' => '41.8328', - 'geo_code_2' => '-72.9253', - ], - 'from_name' => 'FIXME', - 'from_email' => 'info@EXAMPLE.ORG', - 'domain_version' => '5.47.alpha1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/DomainTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Email/Create.ex.php b/civicrm/api/v3/examples/Email/Create.ex.php deleted file mode 100644 index 7b793b185fb62540b291e35f1d09ad0d106ad9f0..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Email/Create.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Email.create API. - * - * @return array - * API result array - */ -function email_create_example() { - $params = [ - 'contact_id' => 23, - 'email' => 'api@a-team.com', - 'on_hold' => '2', - ]; - - try { - $result = civicrm_api3('Email', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function email_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 49, - 'values' => [ - '49' => [ - 'id' => '49', - 'contact_id' => '23', - 'location_type_id' => '1', - 'email' => 'api@a-team.com', - 'is_primary' => '1', - 'is_billing' => '', - 'on_hold' => '2', - 'is_bulkmail' => '', - 'hold_date' => '20220117122830', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testEmailOnHold" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EmailTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Email/Delete.ex.php b/civicrm/api/v3/examples/Email/Delete.ex.php deleted file mode 100644 index a0152c884145a629874f03195de1e5c9bcaa50e8..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Email/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Email.delete API. - * - * @return array - * API result array - */ -function email_delete_example() { - $params = [ - 'id' => 21, - ]; - - try { - $result = civicrm_api3('Email', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function email_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteEmail" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EmailTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Email/Replace.ex.php b/civicrm/api/v3/examples/Email/Replace.ex.php deleted file mode 100644 index 42a949cdb971cd6d516a620f164b8de2e415b3c4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Email/Replace.ex.php +++ /dev/null @@ -1,173 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Email.replace API. - * - * @return array - * API result array - */ -function email_replace_example() { - $params = [ - 'contact_id' => 17, - 'values' => [ - '0' => [ - 'location_type_id' => 34, - 'email' => '1-1@example.com', - 'is_primary' => 1, - ], - '1' => [ - 'location_type_id' => 34, - 'email' => '1-2@example.com', - 'is_primary' => 0, - ], - '2' => [ - 'location_type_id' => 34, - 'email' => '1-3@example.com', - 'is_primary' => 0, - ], - '3' => [ - 'location_type_id' => 35, - 'email' => '2-1@example.com', - 'is_primary' => 0, - ], - '4' => [ - 'location_type_id' => 35, - 'email' => '2-2@example.com', - 'is_primary' => 0, - ], - ], - ]; - - try { - $result = civicrm_api3('Email', 'replace', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function email_replace_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '23' => [ - 'id' => '23', - 'contact_id' => '17', - 'location_type_id' => '34', - 'email' => '1-1@example.com', - 'is_primary' => '1', - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '24' => [ - 'id' => '24', - 'contact_id' => '17', - 'location_type_id' => '34', - 'email' => '1-2@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '25' => [ - 'id' => '25', - 'contact_id' => '17', - 'location_type_id' => '34', - 'email' => '1-3@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '26' => [ - 'id' => '26', - 'contact_id' => '17', - 'location_type_id' => '35', - 'email' => '2-1@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - '27' => [ - 'id' => '27', - 'contact_id' => '17', - 'location_type_id' => '35', - 'email' => '2-2@example.com', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testReplaceEmail" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EmailTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/EntityBatch/Create.ex.php b/civicrm/api/v3/examples/EntityBatch/Create.ex.php deleted file mode 100644 index f0a3c130954c52f942e32131b6919fe838ee73ae..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/EntityBatch/Create.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the EntityBatch.create API. - * - * @return array - * API result array - */ -function entity_batch_create_example() { - $params = [ - 'entity_id' => '1', - 'batch_id' => 1, - 'entity_table' => 'civicrm_financial_trxn', - ]; - - try { - $result = civicrm_api3('EntityBatch', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function entity_batch_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'entity_table' => 'civicrm_financial_trxn', - 'entity_id' => '1', - 'batch_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateEntityBatch" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EntityBatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/EntityBatch/Delete.ex.php b/civicrm/api/v3/examples/EntityBatch/Delete.ex.php deleted file mode 100644 index d614b19fd4cb65e9242b63d5931d0492534d309d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/EntityBatch/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the EntityBatch.delete API. - * - * @return array - * API result array - */ -function entity_batch_delete_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('EntityBatch', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function entity_batch_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteEntityBatch" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EntityBatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/EntityBatch/Get.ex.php b/civicrm/api/v3/examples/EntityBatch/Get.ex.php deleted file mode 100644 index 0adac2b07c2bb561061fbb6342057d00f7eb3d16..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/EntityBatch/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the EntityBatch.get API. - * - * @return array - * API result array - */ -function entity_batch_get_example() { - $params = [ - 'entity_id' => '3', - 'batch_id' => 2, - 'entity_table' => 'civicrm_financial_trxn', - ]; - - try { - $result = civicrm_api3('EntityBatch', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function entity_batch_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'entity_table' => 'civicrm_financial_trxn', - 'entity_id' => '3', - 'batch_id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetEntityBatch" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EntityBatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/EntityTag/Create.ex.php b/civicrm/api/v3/examples/EntityTag/Create.ex.php deleted file mode 100644 index 18bb68026a3b12d2b8f7f70735fade78df21f716..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/EntityTag/Create.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the EntityTag.create API. - * - * @return array - * API result array - */ -function entity_tag_create_example() { - $params = [ - 'contact_id' => 3, - 'tag_id' => '6', - ]; - - try { - $result = civicrm_api3('EntityTag', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function entity_tag_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'not_added' => 0, - 'added' => 1, - 'total_count' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testIndividualEntityTagGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EntityTagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-master-git/ - * - * To Learn about the API read - * http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API - * - * Browse the api on your own site with the api explorer - * http://MYSITE.ORG/path/to/civicrm/api - * - * Read more about testing here - * http://wiki.civicrm.org/confluence/display/CRM/Testing - * - * API Standards documentation: - * http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards - */ diff --git a/civicrm/api/v3/examples/EntityTag/Delete.ex.php b/civicrm/api/v3/examples/EntityTag/Delete.ex.php deleted file mode 100644 index f871a3da6551d50656d9992e8b11f650766c0cbe..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/EntityTag/Delete.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the EntityTag.delete API. - * - * @return array - * API result array - */ -function entity_tag_delete_example() { - $params = [ - 'contact_id_h' => 43, - 'tag_id' => '19', - ]; - - try { - $result = civicrm_api3('EntityTag', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function entity_tag_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'not_removed' => 0, - 'removed' => 1, - 'total_count' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testEntityTagDeleteHH" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EntityTagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/EntityTag/Get.ex.php b/civicrm/api/v3/examples/EntityTag/Get.ex.php deleted file mode 100644 index 6d139a45544bac7c1bbd7fd21183df9812643430..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/EntityTag/Get.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the EntityTag.get API. - * - * @return array - * API result array - */ -function entity_tag_get_example() { - $params = [ - 'contact_id' => 18, - ]; - - try { - $result = civicrm_api3('EntityTag', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function entity_tag_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 6, - 'values' => [ - '6' => [ - 'id' => '6', - 'entity_table' => 'civicrm_contact', - 'entity_id' => '18', - 'tag_id' => '11', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testIndividualEntityTagGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EntityTagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Event/ContactRefCustomField.ex.php b/civicrm/api/v3/examples/Event/ContactRefCustomField.ex.php deleted file mode 100644 index d2a5d1db6c8c7104dd508769b57eb4b62fe3be10..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Event/ContactRefCustomField.ex.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Event.get API. - * - * Demonstrates get with Contact Reference Custom Field. - * - * @return array - * API result array - */ -function event_get_example() { - $params = [ - 'return.custom_2' => 1, - 'custom_2' => 3, - ]; - - try { - $result = civicrm_api3('Event', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function event_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'title' => 'My test event.', - 'event_title' => 'My test event.', - 'event_description' => '', - 'event_type_id' => '1', - 'is_public' => '1', - 'start_date' => '2013-07-29 00:00:00', - 'event_start_date' => '2013-07-29 00:00:00', - 'event_end_date' => '', - 'is_online_registration' => 0, - 'is_monetary' => 0, - 'is_map' => 0, - 'is_active' => '1', - 'is_show_location' => '1', - 'default_role_id' => '1', - 'is_email_confirm' => 0, - 'is_pay_later' => 0, - 'is_partial_payment' => 0, - 'is_multiple_registrations' => 0, - 'max_additional_participants' => 0, - 'allow_same_participant_emails' => 0, - 'allow_selfcancelxfer' => 0, - 'selfcancelxfer_time' => 0, - 'is_template' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'is_share' => '1', - 'is_confirm_enabled' => '1', - 'is_billing_required' => 0, - 'custom_1' => 'defaultValue', - 'custom_2_id' => '3', - 'custom_2' => 'Contact, Test', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testEventGetCustomContactRefFieldCRM16036" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EventTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Event/Create.ex.php b/civicrm/api/v3/examples/Event/Create.ex.php deleted file mode 100644 index b2bc9d0b11834bc4b4fa963584cf4d056906649c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Event/Create.ex.php +++ /dev/null @@ -1,162 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Event.create API. - * - * @return array - * API result array - */ -function event_create_example() { - $params = [ - 'title' => 'Annual CiviCRM meet', - 'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now', - 'description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues', - 'event_type_id' => 1, - 'is_public' => 1, - 'start_date' => 20081021, - 'end_date' => 20081023, - 'is_online_registration' => 1, - 'registration_start_date' => 20080601, - 'registration_end_date' => '2008-10-15', - 'max_participants' => 100, - 'event_full_text' => 'Sorry! We are already full', - 'is_monetary' => 0, - 'is_active' => 1, - 'is_show_location' => 0, - ]; - - try { - $result = civicrm_api3('Event', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function event_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'title' => 'Annual CiviCRM meet', - 'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now', - 'description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues', - 'event_type_id' => '1', - 'participant_listing_id' => '', - 'is_public' => '1', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'is_online_registration' => '1', - 'registration_link_text' => '', - 'registration_start_date' => '20080601000000', - 'registration_end_date' => '20081015000000', - 'max_participants' => '100', - 'event_full_text' => 'Sorry! We are already full', - 'is_monetary' => 0, - 'financial_type_id' => '', - 'payment_processor' => '', - 'is_map' => '', - 'is_active' => '1', - 'fee_label' => '', - 'is_show_location' => 0, - 'loc_block_id' => '', - 'default_role_id' => '', - 'intro_text' => '', - 'footer_text' => '', - 'confirm_title' => '', - 'confirm_text' => '', - 'confirm_footer_text' => '', - 'is_email_confirm' => '', - 'confirm_email_text' => '', - 'confirm_from_name' => '', - 'confirm_from_email' => '', - 'cc_confirm' => '', - 'bcc_confirm' => '', - 'default_fee_id' => '', - 'default_discount_fee_id' => '', - 'thankyou_title' => '', - 'thankyou_text' => '', - 'thankyou_footer_text' => '', - 'is_pay_later' => '', - 'pay_later_text' => '', - 'pay_later_receipt' => '', - 'is_partial_payment' => '', - 'initial_amount_label' => '', - 'initial_amount_help_text' => '', - 'min_initial_amount' => '', - 'is_multiple_registrations' => '', - 'max_additional_participants' => '', - 'allow_same_participant_emails' => '', - 'has_waitlist' => '', - 'requires_approval' => '', - 'expiration_time' => '', - 'allow_selfcancelxfer' => '', - 'selfcancelxfer_time' => '', - 'waitlist_text' => '', - 'approval_req_text' => '', - 'is_template' => 0, - 'template_title' => '', - 'created_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'currency' => '', - 'campaign_id' => '', - 'is_share' => '', - 'is_confirm_enabled' => '', - 'parent_event_id' => '', - 'slot_label_id' => '', - 'dedupe_rule_group_id' => '', - 'is_billing_required' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateEventSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EventTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Event/Delete.ex.php b/civicrm/api/v3/examples/Event/Delete.ex.php deleted file mode 100644 index 8e3f6cb209970ff2f031b8b5d3070cd14be04f1a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Event/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Event.delete API. - * - * @return array - * API result array - */ -function event_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Event', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function event_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EventTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Event/Get.ex.php b/civicrm/api/v3/examples/Event/Get.ex.php deleted file mode 100644 index 921ab12aac2458243b0c641425945bc0adf393d4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Event/Get.ex.php +++ /dev/null @@ -1,108 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Event.get API. - * - * @return array - * API result array - */ -function event_get_example() { - $params = [ - 'event_title' => 'Annual CiviCRM meet', - 'sequential' => TRUE, - ]; - - try { - $result = civicrm_api3('Event', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function event_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'title' => 'Annual CiviCRM meet', - 'event_title' => 'Annual CiviCRM meet', - 'event_description' => '', - 'event_type_id' => '1', - 'is_public' => '1', - 'start_date' => '2013-07-29 00:00:00', - 'event_start_date' => '2013-07-29 00:00:00', - 'event_end_date' => '', - 'is_online_registration' => 0, - 'is_monetary' => 0, - 'is_map' => 0, - 'is_active' => '1', - 'is_show_location' => '1', - 'default_role_id' => '1', - 'is_email_confirm' => 0, - 'is_pay_later' => 0, - 'is_partial_payment' => 0, - 'is_multiple_registrations' => 0, - 'max_additional_participants' => 0, - 'allow_same_participant_emails' => 0, - 'allow_selfcancelxfer' => 0, - 'selfcancelxfer_time' => 0, - 'is_template' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'is_share' => '1', - 'is_confirm_enabled' => '1', - 'is_billing_required' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetEventByEventTitle" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EventTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php b/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php deleted file mode 100644 index 0df7671851552a222bcae85ebff5882a582b51b8..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Event/IsCurrentOption.ex.php +++ /dev/null @@ -1,116 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Event.get API. - * - * Demonstrates use of is.Current option. - * - * @return array - * API result array - */ -function event_get_example() { - $params = [ - 'isCurrent' => 1, - ]; - - try { - $result = civicrm_api3('Event', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function event_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'title' => 'Annual CiviCRM meet 2', - 'event_title' => 'Annual CiviCRM meet 2', - 'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now', - 'description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues', - 'event_description' => 'This event is intended to give brief idea about progess of CiviCRM and giving solutions to common user issues', - 'event_type_id' => '1', - 'is_public' => '1', - 'start_date' => '2013-07-29 00:00:00', - 'event_start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'is_online_registration' => '1', - 'registration_start_date' => '2010-06-01 00:00:00', - 'registration_end_date' => '2010-10-15 00:00:00', - 'max_participants' => '100', - 'event_full_text' => 'Sorry! We are already full', - 'is_monetary' => 0, - 'is_map' => 0, - 'is_active' => '1', - 'is_show_location' => 0, - 'default_role_id' => '1', - 'is_email_confirm' => 0, - 'is_pay_later' => 0, - 'is_partial_payment' => 0, - 'is_multiple_registrations' => 0, - 'max_additional_participants' => 0, - 'allow_same_participant_emails' => 0, - 'allow_selfcancelxfer' => 0, - 'selfcancelxfer_time' => 0, - 'is_template' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'is_share' => '1', - 'is_confirm_enabled' => '1', - 'is_billing_required' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetIsCurrent" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EventTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Event/IsFullOption.ex.php b/civicrm/api/v3/examples/Event/IsFullOption.ex.php deleted file mode 100644 index cf874bb64d7cb735e45219a42b6c1fd8364cac61..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Event/IsFullOption.ex.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Event.getsingle API. - * - * Demonstrates use of return is_full . - * - * @return array - * API result array - */ -function event_getsingle_example() { - $params = [ - 'id' => 1, - 'return.is_full' => 1, - ]; - - try { - $result = civicrm_api3('Event', 'getsingle', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function event_getsingle_expectedresult() { - - $expectedResult = [ - 'id' => '1', - 'title' => 'Annual CiviCRM meet', - 'event_title' => 'Annual CiviCRM meet', - 'event_description' => '', - 'event_type_id' => '1', - 'is_public' => '1', - 'start_date' => '2008-10-21 00:00:00', - 'event_start_date' => '2008-10-21 00:00:00', - 'event_end_date' => '', - 'is_online_registration' => 0, - 'max_participants' => '1', - 'is_monetary' => 0, - 'is_map' => 0, - 'is_active' => '1', - 'is_show_location' => '1', - 'default_role_id' => '1', - 'is_email_confirm' => 0, - 'is_pay_later' => 0, - 'is_partial_payment' => 0, - 'is_multiple_registrations' => 0, - 'max_additional_participants' => 0, - 'allow_same_participant_emails' => 0, - 'allow_selfcancelxfer' => 0, - 'selfcancelxfer_time' => 0, - 'is_template' => 0, - 'created_date' => '2022-01-17 12:29:42', - 'is_share' => '1', - 'is_confirm_enabled' => '1', - 'is_billing_required' => 0, - 'available_places' => 0, - 'is_full' => '1', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSingleReturnIsFull" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/EventTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Grant/Create.ex.php b/civicrm/api/v3/examples/Grant/Create.ex.php deleted file mode 100644 index 615ec933eb7facff8413cc44af9a811001111d2b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Grant/Create.ex.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Grant.create API. - * - * @return array - * API result array - */ -function grant_create_example() { - $params = [ - 'contact_id' => 3, - 'application_received_date' => 'now', - 'decision_date' => 'next Monday', - 'amount_total' => '500', - 'status_id' => 1, - 'rationale' => 'Just Because', - 'currency' => 'USD', - 'grant_type_id' => 1, - ]; - - try { - $result = civicrm_api3('Grant', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function grant_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'application_received_date' => '20130728084957', - 'decision_date' => '20130805000000', - 'money_transfer_date' => '', - 'grant_due_date' => '', - 'grant_report_received' => '', - 'grant_type_id' => '1', - 'amount_total' => '500', - 'amount_requested' => '', - 'amount_granted' => '', - 'currency' => 'USD', - 'rationale' => 'Just Because', - 'status_id' => '1', - 'financial_type_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateGrant" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GrantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Grant/Delete.ex.php b/civicrm/api/v3/examples/Grant/Delete.ex.php deleted file mode 100644 index 36a2200d40b1dc815913935f06535ab4ac08fefa..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Grant/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Grant.delete API. - * - * @return array - * API result array - */ -function grant_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Grant', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function grant_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteGrant" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GrantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Grant/Get.ex.php b/civicrm/api/v3/examples/Grant/Get.ex.php deleted file mode 100644 index 3a95377fa9289df8e6e8d7cd51949e0968d46a36..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Grant/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Grant.get API. - * - * @return array - * API result array - */ -function grant_get_example() { - $params = [ - 'rationale' => 'Just Because', - ]; - - try { - $result = civicrm_api3('Grant', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function grant_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'application_received_date' => '20130728084957', - 'decision_date' => '20130805000000', - 'grant_type_id' => '1', - 'amount_total' => '500.00', - 'currency' => 'USD', - 'rationale' => 'Just Because', - 'status_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetGrant" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GrantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Group/Get.ex.php b/civicrm/api/v3/examples/Group/Get.ex.php deleted file mode 100644 index 737e90b4e3c87e962d04c4a160b8e870d6e3076e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Group/Get.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Group.get API. - * - * @return array - * API result array - */ -function group_get_example() { - $params = [ - 'name' => 'Test Group 1', - ]; - - try { - $result = civicrm_api3('Group', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'Test Group 1', - 'title' => 'New Test Group Created', - 'description' => 'New Test Group Created', - 'is_active' => '1', - 'visibility' => 'Public Pages', - 'group_type' => [ - '0' => '1', - '1' => '2', - ], - 'is_hidden' => 0, - 'is_reserved' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetGroupParamsWithGroupName" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Group/GetFields.ex.php b/civicrm/api/v3/examples/Group/GetFields.ex.php deleted file mode 100644 index 3a357d6903183f02d677da28a53a0b9589fa8153..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Group/GetFields.ex.php +++ /dev/null @@ -1,460 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Group.getfields API. - * - * Demonstrate use of getfields to interrogate api. - * - * @return array - * API result array - */ -function group_getfields_example() { - $params = [ - 'action' => 'create', - ]; - - try { - $result = civicrm_api3('Group', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 22, - 'values' => [ - 'id' => [ - 'name' => 'id', - 'type' => 1, - 'title' => 'Group ID', - 'description' => 'Group ID', - 'required' => TRUE, - 'where' => 'civicrm_group.id', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'group_id', - ], - ], - 'name' => [ - 'name' => 'name', - 'type' => 2, - 'title' => 'Group Name', - 'description' => 'Internal name of Group.', - 'maxlength' => 64, - 'size' => 30, - 'where' => 'civicrm_group.name', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'title' => [ - 'name' => 'title', - 'type' => 2, - 'title' => 'Group Title', - 'description' => 'Name of Group.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_group.title', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 1, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 255, - 'size' => 45, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => 1, - ], - 'description' => [ - 'name' => 'description', - 'type' => 32, - 'title' => 'Group Description', - 'description' => 'Optional verbose description of the group.', - 'rows' => 2, - 'cols' => 60, - 'where' => 'civicrm_group.description', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'html' => [ - 'type' => 'TextArea', - 'rows' => 2, - 'cols' => 60, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'source' => [ - 'name' => 'source', - 'type' => 2, - 'title' => 'Group Source', - 'description' => 'Module or process which created this group.', - 'maxlength' => 64, - 'size' => 30, - 'where' => 'civicrm_group.source', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'saved_search_id' => [ - 'name' => 'saved_search_id', - 'type' => 1, - 'title' => 'Saved Search ID', - 'description' => 'FK to saved search table.', - 'where' => 'civicrm_group.saved_search_id', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_SavedSearch', - 'html' => [ - 'label' => 'Saved Search', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'FKApiName' => 'SavedSearch', - ], - 'is_active' => [ - 'name' => 'is_active', - 'type' => 16, - 'title' => 'Group Enabled', - 'description' => 'Is this entry active?', - 'where' => 'civicrm_group.is_active', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.default' => 1, - ], - 'visibility' => [ - 'name' => 'visibility', - 'type' => 2, - 'title' => 'Group Visibility Setting', - 'description' => 'In what context(s) is this field visible.', - 'maxlength' => 24, - 'size' => 20, - 'where' => 'civicrm_group.visibility', - 'default' => 'User and User Admin Only', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'maxlength' => 24, - 'size' => 20, - ], - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::groupVisibility', - ], - 'add' => '1.2', - 'is_core_field' => TRUE, - ], - 'where_clause' => [ - 'name' => 'where_clause', - 'type' => 32, - 'title' => 'Group Where Clause', - 'description' => 'the sql where clause if a saved search acl', - 'where' => 'civicrm_group.where_clause', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '1.6', - 'is_core_field' => TRUE, - ], - 'select_tables' => [ - 'name' => 'select_tables', - 'type' => 32, - 'title' => 'Tables For Select Clause', - 'description' => 'the tables to be included in a select data', - 'where' => 'civicrm_group.select_tables', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'serialize' => 4, - 'readonly' => TRUE, - 'add' => '1.6', - 'is_core_field' => TRUE, - ], - 'where_tables' => [ - 'name' => 'where_tables', - 'type' => 32, - 'title' => 'Tables For Where Clause', - 'description' => 'the tables to be included in the count statement', - 'where' => 'civicrm_group.where_tables', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'serialize' => 4, - 'readonly' => TRUE, - 'add' => '1.6', - 'is_core_field' => TRUE, - ], - 'group_type' => [ - 'name' => 'group_type', - 'type' => 2, - 'title' => 'Group Type', - 'description' => 'FK to group type', - 'maxlength' => 128, - 'size' => 45, - 'where' => 'civicrm_group.group_type', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'serialize' => 1, - 'pseudoconstant' => [ - 'optionGroupName' => 'group_type', - 'optionEditPath' => 'civicrm/admin/options/group_type', - ], - 'add' => '1.9', - 'is_core_field' => TRUE, - ], - 'cache_date' => [ - 'name' => 'cache_date', - 'type' => 256, - 'title' => 'Group Cache Date', - 'description' => 'Date when we created the cache for a smart group', - 'required' => '', - 'where' => 'civicrm_group.cache_date', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '2.1', - 'is_core_field' => TRUE, - ], - 'refresh_date' => [ - 'name' => 'refresh_date', - 'type' => 256, - 'title' => 'Next Group Refresh Time', - 'description' => 'Date and time when we need to refresh the cache next.', - 'required' => '', - 'where' => 'civicrm_group.refresh_date', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'readonly' => TRUE, - 'add' => '4.3', - 'is_core_field' => TRUE, - ], - 'parents' => [ - 'name' => 'parents', - 'type' => 32, - 'title' => 'Group Parents', - 'description' => 'IDs of the parent(s)', - 'where' => 'civicrm_group.parents', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'serialize' => 5, - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_PseudoConstant::allGroup', - ], - 'add' => '2.1', - 'is_core_field' => TRUE, - ], - 'children' => [ - 'name' => 'children', - 'type' => 32, - 'title' => 'Group Children', - 'description' => 'IDs of the child(ren)', - 'where' => 'civicrm_group.children', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'add' => '2.1', - 'is_core_field' => TRUE, - ], - 'is_hidden' => [ - 'name' => 'is_hidden', - 'type' => 16, - 'title' => 'Group is Hidden', - 'description' => 'Is this group hidden?', - 'where' => 'civicrm_group.is_hidden', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'add' => '2.2', - 'is_core_field' => TRUE, - ], - 'is_reserved' => [ - 'name' => 'is_reserved', - 'type' => 16, - 'title' => 'Group is Reserved', - 'where' => 'civicrm_group.is_reserved', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'add' => '4.2', - 'is_core_field' => TRUE, - ], - 'created_id' => [ - 'name' => 'created_id', - 'type' => 1, - 'title' => 'Created By Contact ID', - 'description' => 'FK to contact table.', - 'where' => 'civicrm_group.created_id', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'label' => 'Created By', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '4.3', - 'is_core_field' => TRUE, - 'FKApiName' => 'Contact', - ], - 'modified_id' => [ - 'name' => 'modified_id', - 'type' => 1, - 'title' => 'Modified By Contact ID', - 'description' => 'FK to contact table.', - 'where' => 'civicrm_group.modified_id', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'label' => 'Modified By', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '4.5', - 'is_core_field' => TRUE, - 'FKApiName' => 'Contact', - ], - 'frontend_title' => [ - 'name' => 'frontend_title', - 'type' => 2, - 'title' => 'Public Group Title', - 'description' => 'Alternative public title for this Group.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_group.frontend_title', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 1, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 255, - 'size' => 45, - ], - 'add' => '5.31', - 'is_core_field' => TRUE, - ], - 'frontend_description' => [ - 'name' => 'frontend_description', - 'type' => 32, - 'title' => 'Public Group Description', - 'description' => 'Alternative public description of the group.', - 'rows' => 2, - 'cols' => 60, - 'where' => 'civicrm_group.frontend_description', - 'table_name' => 'civicrm_group', - 'entity' => 'Group', - 'bao' => 'CRM_Contact_BAO_Group', - 'localizable' => 1, - 'html' => [ - 'type' => 'TextArea', - 'rows' => 2, - 'cols' => 60, - ], - 'add' => '5.31', - 'is_core_field' => TRUE, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testgetfields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupContact/Create.ex.php b/civicrm/api/v3/examples/GroupContact/Create.ex.php deleted file mode 100644 index ab4683ff29df1f1513a566cc05bcabe2e8ac2185..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupContact/Create.ex.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupContact.create API. - * - * @return array - * API result array - */ -function group_contact_create_example() { - $params = [ - 'contact_id' => 8, - 'contact_id.2' => 9, - 'group_id' => 11, - ]; - - try { - $result = civicrm_api3('GroupContact', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_contact_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - 'total_count' => 2, - 'added' => 1, - 'not_added' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupContact/Delete.ex.php b/civicrm/api/v3/examples/GroupContact/Delete.ex.php deleted file mode 100644 index 4ae8dd70622396e7e339c9615adad08325ea8c24..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupContact/Delete.ex.php +++ /dev/null @@ -1,79 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupContact.delete API. - * - * @return array - * API result array - */ -function group_contact_delete_example() { - $params = [ - 'id' => 9, - 'skip_undelete' => TRUE, - ]; - - try { - $result = civicrm_api3('GroupContact', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_contact_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - 'total_count' => 1, - 'removed' => 0, - 'not_removed' => 0, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePermanent" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupContact/Get.ex.php b/civicrm/api/v3/examples/GroupContact/Get.ex.php deleted file mode 100644 index 3635d4c6922172cd1af23ed83cc5332d57cddf48..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupContact/Get.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupContact.get API. - * - * @return array - * API result array - */ -function group_contact_get_example() { - $params = [ - 'contact_id' => 3, - ]; - - try { - $result = civicrm_api3('GroupContact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'group_id' => '1', - 'title' => 'New Test Group Created', - 'visibility' => 'Public Pages', - 'is_hidden' => 0, - 'in_date' => '2013-07-28 08:50:19', - 'in_method' => 'API', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupContact/GetWithGroupID.ex.php b/civicrm/api/v3/examples/GroupContact/GetWithGroupID.ex.php deleted file mode 100644 index 7009d244b4e9dfcb5ea6dfca51bcad0542891d94..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupContact/GetWithGroupID.ex.php +++ /dev/null @@ -1,109 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupContact.get API. - * - * Get all from group and display contacts. - * - * @return array - * API result array - */ -function group_contact_get_example() { - $params = [ - 'group_id' => 3, - 'api.group.get' => 1, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('GroupContact', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_contact_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'group_id' => '3', - 'contact_id' => '4', - 'status' => 'Added', - 'api.group.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '0' => [ - 'id' => '3', - 'name' => 'Test Group 1', - 'title' => 'New Test Group Created', - 'description' => 'New Test Group Created', - 'is_active' => '1', - 'visibility' => 'Public Pages', - 'group_type' => [ - '0' => '1', - '1' => '2', - ], - 'is_hidden' => 0, - 'is_reserved' => 0, - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetGroupID" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupContactTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupNesting/Create.ex.php b/civicrm/api/v3/examples/GroupNesting/Create.ex.php deleted file mode 100644 index 40197d2b308281ef9e19598c905a7df3a2fc7401..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupNesting/Create.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupNesting.create API. - * - * @return array - * API result array - */ -function group_nesting_create_example() { - $params = [ - 'parent_group_id' => 1, - 'child_group_id' => 3, - ]; - - try { - $result = civicrm_api3('GroupNesting', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_nesting_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'child_group_id' => '3', - 'parent_group_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupNestingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupNesting/Delete.ex.php b/civicrm/api/v3/examples/GroupNesting/Delete.ex.php deleted file mode 100644 index a99389bbb9ead830cbb2516f87213183627f59be..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupNesting/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupNesting.delete API. - * - * @return array - * API result array - */ -function group_nesting_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('GroupNesting', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_nesting_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupNestingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupNesting/Get.ex.php b/civicrm/api/v3/examples/GroupNesting/Get.ex.php deleted file mode 100644 index 7f12e6123a52d110b0180df495fc4538e6c4d123..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupNesting/Get.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupNesting.get API. - * - * @return array - * API result array - */ -function group_nesting_get_example() { - $params = [ - 'parent_group_id' => 1, - 'child_group_id' => 2, - ]; - - try { - $result = civicrm_api3('GroupNesting', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_nesting_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'child_group_id' => '2', - 'parent_group_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupNestingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupOrganization/Create.ex.php b/civicrm/api/v3/examples/GroupOrganization/Create.ex.php deleted file mode 100644 index e27bc46e97adfdc62f734ef0cd01eac33b50fe08..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupOrganization/Create.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupOrganization.create API. - * - * @return array - * API result array - */ -function group_organization_create_example() { - $params = [ - 'organization_id' => 12, - 'group_id' => 10, - ]; - - try { - $result = civicrm_api3('GroupOrganization', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_organization_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 6, - 'values' => [ - '6' => [ - 'id' => '6', - 'group_id' => '10', - 'organization_id' => '12', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGroupOrganizationCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupOrganizationTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupOrganization/Delete.ex.php b/civicrm/api/v3/examples/GroupOrganization/Delete.ex.php deleted file mode 100644 index 3f8716302664f4c06ef053f52a211e2d13e90c1f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupOrganization/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupOrganization.delete API. - * - * @return array - * API result array - */ -function group_organization_delete_example() { - $params = [ - 'id' => 10, - ]; - - try { - $result = civicrm_api3('GroupOrganization', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_organization_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 'Deleted Group Organization successfully', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGroupOrganizationDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupOrganizationTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/GroupOrganization/Get.ex.php b/civicrm/api/v3/examples/GroupOrganization/Get.ex.php deleted file mode 100644 index c962c509149b51b4cbcc34357dd4b7a3c1fb2410..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/GroupOrganization/Get.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the GroupOrganization.get API. - * - * @return array - * API result array - */ -function group_organization_get_example() { - $params = [ - 'organization_id' => 2, - ]; - - try { - $result = civicrm_api3('GroupOrganization', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function group_organization_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGroupOrganizationGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/GroupOrganizationTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Im/Create.ex.php b/civicrm/api/v3/examples/Im/Create.ex.php deleted file mode 100644 index 2a47feb6289a112233ef645fada14f6eae145654..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Im/Create.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Im.create API. - * - * @return array - * API result array - */ -function im_create_example() { - $params = [ - 'contact_id' => 5, - 'name' => 'My Yahoo IM Handle', - 'provider_id' => 1, - ]; - - try { - $result = civicrm_api3('Im', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function im_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_id' => '5', - 'location_type_id' => '1', - 'name' => 'My Yahoo IM Handle', - 'provider_id' => '1', - 'is_primary' => '1', - 'is_billing' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateImDefaultLocation" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ImTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Im/Delete.ex.php b/civicrm/api/v3/examples/Im/Delete.ex.php deleted file mode 100644 index 5094e1c253075f6e1ede5f8181a6977afbb2a8a8..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Im/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Im.delete API. - * - * @return array - * API result array - */ -function im_delete_example() { - $params = [ - 'id' => 7, - ]; - - try { - $result = civicrm_api3('Im', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function im_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteIm" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ImTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Im/Get.ex.php b/civicrm/api/v3/examples/Im/Get.ex.php deleted file mode 100644 index 9da151891b971d22a9a96ecc6dae067d1402c33b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Im/Get.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Im.get API. - * - * @return array - * API result array - */ -function im_get_example() { - $params = [ - 'contact_id' => 7, - 'name' => 'My Yahoo IM Handle', - 'location_type_id' => 1, - 'provider_id' => 1, - ]; - - try { - $result = civicrm_api3('Im', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function im_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 5, - 'values' => [ - '5' => [ - 'id' => '5', - 'contact_id' => '7', - 'location_type_id' => '1', - 'name' => 'My Yahoo IM Handle', - 'provider_id' => '1', - 'is_primary' => '1', - 'is_billing' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetIm" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ImTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Job/Clone.ex.php b/civicrm/api/v3/examples/Job/Clone.ex.php deleted file mode 100644 index 5757ab43a490f336e610aaed4259692f39da510c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Job/Clone.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Job.clone API. - * - * @return array - * API result array - */ -function job_clone_example() { - $params = [ - 'id' => 31, - ]; - - try { - $result = civicrm_api3('Job', 'clone', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function job_clone_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 32, - 'values' => [ - '32' => [ - 'id' => '32', - 'domain_id' => '1', - 'run_frequency' => 'Daily', - 'name' => 'API_Test_Job - Copy', - 'description' => 'A long description written by hand in cursive', - 'api_entity' => 'ApiTestEntity', - 'api_action' => 'api_test_action', - 'parameters' => 'Semi-formal explanation of runtime job parameters', - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testClone" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/JobTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Job/Create.ex.php b/civicrm/api/v3/examples/Job/Create.ex.php deleted file mode 100644 index 605b9cc9ab2b63bbfc2043d03c6146f4cc5c29a8..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Job/Create.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Job.create API. - * - * @return array - * API result array - */ -function job_create_example() { - $params = [ - 'sequential' => 1, - 'name' => 'API_Test_Job', - 'description' => 'A long description written by hand in cursive', - 'run_frequency' => 'Daily', - 'api_entity' => 'ApiTestEntity', - 'api_action' => 'api_test_action', - 'parameters' => 'Semi-formal explanation of runtime job parameters', - 'is_active' => 1, - ]; - - try { - $result = civicrm_api3('Job', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function job_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 30, - 'values' => [ - '0' => [ - 'id' => '30', - 'domain_id' => '1', - 'run_frequency' => 'Daily', - 'last_run' => '', - 'scheduled_run_date' => '', - 'name' => 'API_Test_Job', - 'description' => 'A long description written by hand in cursive', - 'api_entity' => 'ApiTestEntity', - 'api_action' => 'api_test_action', - 'parameters' => 'Semi-formal explanation of runtime job parameters', - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/JobTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Job/Delete.ex.php b/civicrm/api/v3/examples/Job/Delete.ex.php deleted file mode 100644 index 2f6dd94003e12b0a1d90bffcbf6fc8c6e6085637..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Job/Delete.ex.php +++ /dev/null @@ -1,70 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Job.delete API. - * - * @return array - * API result array - */ -function job_delete_example() { - $params = [ - 'id' => 33, - ]; - - try { - $result = civicrm_api3('Job', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function job_delete_expectedresult() { - - $expectedResult = ''; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/JobTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/LineItem/Create.ex.php b/civicrm/api/v3/examples/LineItem/Create.ex.php deleted file mode 100644 index 11eb298ce9434eeb13f52e1e221894a47fe8cb9c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/LineItem/Create.ex.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the LineItem.create API. - * - * @return array - * API result array - */ -function line_item_create_example() { - $params = [ - 'price_field_value_id' => 1, - 'price_field_id' => 1, - 'entity_table' => 'civicrm_contribution', - 'entity_id' => 3, - 'qty' => 1, - 'unit_price' => 50, - 'line_total' => 50, - ]; - - try { - $result = civicrm_api3('LineItem', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function line_item_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 6, - 'values' => [ - '6' => [ - 'id' => '6', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '3', - 'contribution_id' => '', - 'price_field_id' => '1', - 'label' => 'line item', - 'qty' => '1', - 'unit_price' => '50', - 'line_total' => '50', - 'participant_count' => '', - 'price_field_value_id' => '1', - 'financial_type_id' => '', - 'non_deductible_amount' => '', - 'tax_amount' => '', - 'membership_num_terms' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateLineItem" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LineItemTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/LineItem/Delete.ex.php b/civicrm/api/v3/examples/LineItem/Delete.ex.php deleted file mode 100644 index c8cedafc79e6e2e1a010dddf5a7abf0af35d0697..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/LineItem/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the LineItem.delete API. - * - * @return array - * API result array - */ -function line_item_delete_example() { - $params = [ - 'id' => 17, - ]; - - try { - $result = civicrm_api3('LineItem', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function line_item_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteLineItem" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LineItemTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/LineItem/Get.ex.php b/civicrm/api/v3/examples/LineItem/Get.ex.php deleted file mode 100644 index 6fcebcea171a6b371064a3b0eb881edfa661c1e2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/LineItem/Get.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the LineItem.get API. - * - * @return array - * API result array - */ -function line_item_get_example() { - $params = [ - 'entity_table' => 'civicrm_contribution', - ]; - - try { - $result = civicrm_api3('LineItem', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function line_item_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 15, - 'values' => [ - '15' => [ - 'id' => '15', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '7', - 'contribution_id' => '7', - 'price_field_id' => '1', - 'label' => 'Contribution Amount', - 'qty' => '1.00', - 'unit_price' => '100.00', - 'line_total' => '100.00', - 'price_field_value_id' => '1', - 'financial_type_id' => '1', - 'non_deductible_amount' => '0.00', - 'tax_amount' => '0.00', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetBasicLineItem" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LineItemTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/LocBlock/Create.ex.php b/civicrm/api/v3/examples/LocBlock/Create.ex.php deleted file mode 100644 index b30a85cdcdad94b171e1c089f9ec1c8984a547c2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/LocBlock/Create.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the LocBlock.create API. - * - * Create locBlock with existing entities. - * - * @return array - * API result array - */ -function loc_block_create_example() { - $params = [ - 'address_id' => 2, - 'phone_id' => 2, - 'email_id' => 3, - ]; - - try { - $result = civicrm_api3('LocBlock', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function loc_block_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'address_id' => '2', - 'email_id' => '3', - 'phone_id' => '2', - 'im_id' => '', - 'address_2_id' => '', - 'email_2_id' => '', - 'phone_2_id' => '', - 'im_2_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateLocBlock" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LocBlockTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/LocBlock/CreateEntities.ex.php b/civicrm/api/v3/examples/LocBlock/CreateEntities.ex.php deleted file mode 100644 index 9b2d00d2b65657e60884a7c11ff6c24770f9b5ae..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/LocBlock/CreateEntities.ex.php +++ /dev/null @@ -1,151 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the LocBlock.create API. - * - * Create entities and locBlock in 1 api call. - * - * @return array - * API result array - */ -function loc_block_create_example() { - $params = [ - 'email' => [ - 'location_type_id' => 1, - 'email' => 'test2@loc.block', - ], - 'phone' => [ - 'location_type_id' => 1, - 'phone' => '987654321', - ], - 'phone_2' => [ - 'location_type_id' => 1, - 'phone' => '456-7890', - ], - 'address' => [ - 'location_type_id' => 1, - 'street_address' => '987654321', - ], - ]; - - try { - $result = civicrm_api3('LocBlock', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function loc_block_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'address' => [ - 'id' => '3', - 'location_type_id' => '1', - 'is_primary' => 0, - 'is_billing' => 0, - 'street_address' => '987654321', - 'manual_geo_code' => 0, - ], - 'email' => [ - 'id' => '4', - 'contact_id' => '', - 'location_type_id' => '1', - 'email' => 'test2@loc.block', - 'is_primary' => 0, - 'is_billing' => '', - 'on_hold' => 0, - 'is_bulkmail' => '', - 'hold_date' => '', - 'reset_date' => '', - 'signature_text' => '', - 'signature_html' => '', - ], - 'phone' => [ - 'id' => '3', - 'contact_id' => '', - 'location_type_id' => '1', - 'is_primary' => 0, - 'is_billing' => '', - 'mobile_provider_id' => '', - 'phone' => '987654321', - 'phone_ext' => '', - 'phone_numeric' => '', - 'phone_type_id' => '', - ], - 'phone_2' => [ - 'id' => '4', - 'contact_id' => '', - 'location_type_id' => '1', - 'is_primary' => 0, - 'is_billing' => '', - 'mobile_provider_id' => '', - 'phone' => '456-7890', - 'phone_ext' => '', - 'phone_numeric' => '', - 'phone_type_id' => '', - ], - 'id' => '3', - 'address_id' => '3', - 'email_id' => '4', - 'phone_id' => '3', - 'im_id' => '', - 'address_2_id' => '', - 'email_2_id' => '', - 'phone_2_id' => '4', - 'im_2_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateLocBlockEntities" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LocBlockTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/LocBlock/Get.ex.php b/civicrm/api/v3/examples/LocBlock/Get.ex.php deleted file mode 100644 index 67e14158aaecc0fd41b476b7afe32dd84046bdad..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/LocBlock/Get.ex.php +++ /dev/null @@ -1,120 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the LocBlock.get API. - * - * Get entities and location block in 1 api call. - * - * @return array - * API result array - */ -function loc_block_get_example() { - $params = [ - 'id' => 3, - 'return' => 'all', - ]; - - try { - $result = civicrm_api3('LocBlock', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function loc_block_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'address_id' => '3', - 'email_id' => '4', - 'phone_id' => '3', - 'phone_2_id' => '4', - 'address' => [ - 'id' => '3', - 'location_type_id' => '1', - 'is_primary' => 0, - 'is_billing' => 0, - 'street_address' => '987654321', - 'manual_geo_code' => 0, - ], - 'email' => [ - 'id' => '4', - 'location_type_id' => '1', - 'email' => 'test2@loc.block', - 'is_primary' => 0, - 'is_billing' => 0, - 'on_hold' => 0, - 'is_bulkmail' => 0, - ], - 'phone' => [ - 'id' => '3', - 'location_type_id' => '1', - 'is_primary' => 0, - 'is_billing' => 0, - 'phone' => '987654321', - 'phone_numeric' => '987654321', - ], - 'phone_2' => [ - 'id' => '4', - 'location_type_id' => '1', - 'is_primary' => 0, - 'is_billing' => 0, - 'phone' => '456-7890', - 'phone_numeric' => '4567890', - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateLocBlockEntities" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LocBlockTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Logging/Get.ex.php b/civicrm/api/v3/examples/Logging/Get.ex.php deleted file mode 100644 index f5431e58cc5a5ffaa2b4bd60dc9608174d1523cd..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Logging/Get.ex.php +++ /dev/null @@ -1,246 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Logging.get API. - * - * @return array - * API result array - */ -function logging_get_example() { - $params = [ - 'log_conn_id' => 'wooty wop wop', - ]; - - try { - $result = civicrm_api3('Logging', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function logging_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 17, - 'values' => [ - '0' => [ - 'action' => 'Update', - 'id' => '3', - 'field' => 'sort_name', - 'from' => 'Anderson, Anthony', - 'to' => 'Dwarf, Dopey', - 'table' => 'civicrm_contact', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '1' => [ - 'action' => 'Update', - 'id' => '3', - 'field' => 'display_name', - 'from' => 'Mr. Anthony Anderson II', - 'to' => 'Mr. Dopey Dwarf II', - 'table' => 'civicrm_contact', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '2' => [ - 'action' => 'Update', - 'id' => '3', - 'field' => 'first_name', - 'from' => 'Anthony', - 'to' => 'Dopey', - 'table' => 'civicrm_contact', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '3' => [ - 'action' => 'Update', - 'id' => '3', - 'field' => 'last_name', - 'from' => 'Anderson', - 'to' => 'Dwarf', - 'table' => 'civicrm_contact', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '4' => [ - 'action' => 'Update', - 'id' => '3', - 'field' => 'modified_date', - 'from' => '2022-01-17 12:53:29', - 'to' => '2022-01-17 12:53:39', - 'table' => 'civicrm_contact', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '5' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'id', - 'from' => '', - 'to' => '4', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '6' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'contact_id', - 'from' => '', - 'to' => '3', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '7' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'location_type_id', - 'from' => '', - 'to' => '1', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '8' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'email', - 'from' => '', - 'to' => 'dopey@mail.com', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '9' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'is_primary', - 'from' => '', - 'to' => 0, - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '10' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'is_billing', - 'from' => '', - 'to' => 0, - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '11' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'on_hold', - 'from' => '', - 'to' => 0, - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '12' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'is_bulkmail', - 'from' => '', - 'to' => 0, - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '13' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'hold_date', - 'from' => '', - 'to' => '', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '14' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'reset_date', - 'from' => '', - 'to' => '', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '15' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'signature_text', - 'from' => '', - 'to' => '', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - '16' => [ - 'action' => 'Insert', - 'id' => '4', - 'field' => 'signature_html', - 'from' => '', - 'to' => '', - 'table' => 'civicrm_email', - 'log_date' => '2022-01-17 12:53:39', - 'log_conn_id' => 'wooty wop wop', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetNoDate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/LoggingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Logging/Revert.ex.php b/civicrm/api/v3/examples/Logging/Revert.ex.php deleted file mode 100644 index b7e1100024c95ec63ab495d884044e9479e4ad90..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Logging/Revert.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Logging.revert API. - * - * @return array - * API result array - */ -function logging_revert_example() { - $params = [ - 'log_conn_id' => 'woot', - 'log_date' => '2022-01-17 12:52:20', - ]; - - try { - $result = civicrm_api3('Logging', 'revert', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function logging_revert_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "/home/seamus/buildkit/build/47-test/web/sites/all/modules/civicrm/tests/phpunit/api/v3/LoggingTest.php" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/Revert - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailSettings/ChainedGetDelete.ex.php b/civicrm/api/v3/examples/MailSettings/ChainedGetDelete.ex.php deleted file mode 100644 index df398954ea1cf30eaaa5e78fc15961604718c6dc..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailSettings/ChainedGetDelete.ex.php +++ /dev/null @@ -1,100 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailSettings.get API. - * - * Demonstrates get + delete in the same call. - * - * @return array - * API result array - */ -function mail_settings_get_example() { - $params = [ - 'name' => 'delete this setting', - 'api.MailSettings.delete' => 1, - ]; - - try { - $result = civicrm_api3('MailSettings', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mail_settings_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 10, - 'values' => [ - '10' => [ - 'id' => '10', - 'domain_id' => '1', - 'name' => 'delete this setting', - 'is_default' => '1', - 'domain' => 'setting.com', - 'localpart' => 'civicrm+', - 'server' => 'localhost', - 'username' => 'sue', - 'password' => 'pass', - 'is_ssl' => 0, - 'is_non_case_email_skipped' => 0, - 'is_contact_creation_disabled_if_no_match' => 0, - 'api.MailSettings.delete' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMailSettingsChainDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailSettingsTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailSettings/Create.ex.php b/civicrm/api/v3/examples/MailSettings/Create.ex.php deleted file mode 100644 index a30d8c86b00103d561162e01bca050d27dba507e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailSettings/Create.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailSettings.create API. - * - * @return array - * API result array - */ -function mail_settings_create_example() { - $params = [ - 'domain_id' => 1, - 'name' => 'my mail setting', - 'domain' => 'setting.com', - 'localpart' => 'civicrm+', - 'server' => 'localhost', - 'username' => 'sue', - 'password' => 'pass', - 'is_default' => 1, - ]; - - try { - $result = civicrm_api3('MailSettings', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mail_settings_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 8, - 'values' => [ - '8' => [ - 'id' => '8', - 'domain_id' => '1', - 'name' => 'my mail setting', - 'is_default' => '1', - 'domain' => 'setting.com', - 'localpart' => 'civicrm+', - 'return_path' => '', - 'protocol' => '', - 'server' => 'localhost', - 'port' => '', - 'username' => 'sue', - 'password' => 'pass', - 'is_ssl' => '', - 'source' => '', - 'activity_status' => '', - 'is_non_case_email_skipped' => '', - 'is_contact_creation_disabled_if_no_match' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteMailSettings" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailSettingsTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailSettings/Delete.ex.php b/civicrm/api/v3/examples/MailSettings/Delete.ex.php deleted file mode 100644 index e2dc25648d8172c5a33cdabe0a3c6689fa522234..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailSettings/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailSettings.delete API. - * - * @return array - * API result array - */ -function mail_settings_delete_example() { - $params = [ - 'id' => 8, - ]; - - try { - $result = civicrm_api3('MailSettings', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mail_settings_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteMailSettings" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailSettingsTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailSettings/Get.ex.php b/civicrm/api/v3/examples/MailSettings/Get.ex.php deleted file mode 100644 index 14ff9fe1dff7f740c30ac12c2eb9769c6d37a1ce..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailSettings/Get.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailSettings.get API. - * - * @return array - * API result array - */ -function mail_settings_get_example() { - $params = [ - 'domain_id' => 1, - 'name' => 'my mail setting', - 'domain' => 'setting.com', - 'localpart' => 'civicrm+', - 'server' => 'localhost', - 'username' => 'sue', - 'password' => 'pass', - 'is_default' => 1, - ]; - - try { - $result = civicrm_api3('MailSettings', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mail_settings_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 6, - 'values' => [ - '6' => [ - 'id' => '6', - 'domain_id' => '1', - 'name' => 'my mail setting', - 'is_default' => '1', - 'domain' => 'setting.com', - 'localpart' => 'civicrm+', - 'server' => 'localhost', - 'username' => 'sue', - 'password' => 'pass', - 'is_ssl' => 0, - 'is_non_case_email_skipped' => 0, - 'is_contact_creation_disabled_if_no_match' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMailSettings" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailSettingsTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailSettings/GetOptions.ex.php b/civicrm/api/v3/examples/MailSettings/GetOptions.ex.php deleted file mode 100644 index 75d359bae090ac7ecef63d641a1233b68bc513c7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailSettings/GetOptions.ex.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailSettings.getoptions API. - * - * @return array - * API result array - */ -function mail_settings_getoptions_example() { - $params = [ - 'field' => 'protocol', - ]; - - try { - $result = civicrm_api3('MailSettings', 'getoptions', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mail_settings_getoptions_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 4, - 'values' => [ - '1' => 'IMAP', - '2' => 'Maildir', - '3' => 'POP3', - '4' => 'Localdir', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testmailProtocol" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ConstantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mailing/Clone.ex.php b/civicrm/api/v3/examples/Mailing/Clone.ex.php deleted file mode 100644 index b06c69136a403ea67b04612e321b6e2cc39ac590..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mailing/Clone.ex.php +++ /dev/null @@ -1,124 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mailing.clone API. - * - * @return array - * API result array - */ -function mailing_clone_example() { - $params = [ - 'id' => 28, - ]; - - try { - $result = civicrm_api3('Mailing', 'clone', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_clone_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 29, - 'values' => [ - '29' => [ - 'id' => '29', - 'domain_id' => '1', - 'header_id' => '1', - 'footer_id' => '2', - 'reply_id' => '8', - 'unsubscribe_id' => '5', - 'resubscribe_id' => '6', - 'optout_id' => '7', - 'name' => 'mailing name', - 'mailing_type' => 'standalone', - 'from_name' => 'FIXME', - 'from_email' => 'info@EXAMPLE.ORG', - 'replyto_email' => 'info@EXAMPLE.ORG', - 'template_type' => 'traditional', - 'template_options' => '', - 'subject' => 'Hello {contact.display_name}', - 'body_text' => 'This is {contact.display_name}. -https://civicrm.org -{domain.address}{action.optOutUrl}', - 'body_html' => '<link href=\'https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700|Zilla+Slab:500,700\' rel=\'stylesheet\' type=\'text/css\'><p><a href=\"{action.forward}\">Forward this email</a></p><p>This is {contact.display_name}.</p><p><a href=\'https://civicrm.org/\'>CiviCRM.org</a></p><p>{domain.address}{action.optOutUrl}</p>', - 'url_tracking' => '1', - 'forward_replies' => 0, - 'auto_responder' => 0, - 'open_tracking' => '1', - 'is_completed' => '', - 'msg_template_id' => '', - 'override_verp' => '1', - 'created_id' => '157', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'scheduled_id' => '', - 'scheduled_date' => '', - 'approver_id' => '', - 'approval_date' => '', - 'approval_status_id' => '', - 'approval_note' => '', - 'is_archived' => 0, - 'visibility' => 'Public Pages', - 'campaign_id' => '', - 'dedupe_email' => '1', - 'sms_provider_id' => '', - 'hash' => '', - 'location_type_id' => '', - 'email_selection_method' => 'automatic', - 'language' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testClone" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mailing/Create.ex.php b/civicrm/api/v3/examples/Mailing/Create.ex.php deleted file mode 100644 index 4ecddd86455a35fbd1745325877765d6ac827656..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mailing/Create.ex.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mailing.create API. - * - * @return array - * API result array - */ -function mailing_create_example() { - $params = [ - 'subject' => 'Hello {contact.display_name}', - 'body_text' => 'This is {contact.display_name}. -https://civicrm.org -{domain.address}{action.optOutUrl}', - 'body_html' => '<link href=\'https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700|Zilla+Slab:500,700\' rel=\'stylesheet\' type=\'text/css\'><p><a href=\"{action.forward}\">Forward this email</a></p><p>This is {contact.display_name}.</p><p><a href=\'https://civicrm.org/\'>CiviCRM.org</a></p><p>{domain.address}{action.optOutUrl}</p>', - 'name' => 'mailing name', - 'created_id' => 18, - 'header_id' => '', - 'footer_id' => '', - 'groups' => [ - 'include' => [ - '0' => 15, - ], - 'exclude' => [ - '0' => 16, - ], - ], - 'mailings' => [ - 'include' => [], - 'exclude' => [], - ], - 'options' => [ - 'force_rollback' => 1, - ], - 'api.MailingRecipients.get' => [ - 'mailing_id' => '$value.id', - 'api.contact.getvalue' => [ - 'return' => 'display_name', - ], - 'api.email.getvalue' => [ - 'return' => 'email', - ], - ], - ]; - - try { - $result = civicrm_api3('Mailing', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 10, - 'values' => [ - '10' => [ - 'id' => '10', - 'domain_id' => '1', - 'header_id' => '', - 'footer_id' => '', - 'reply_id' => '8', - 'unsubscribe_id' => '5', - 'resubscribe_id' => '6', - 'optout_id' => '7', - 'name' => 'mailing name', - 'mailing_type' => 'standalone', - 'from_name' => 'FIXME', - 'from_email' => 'info@EXAMPLE.ORG', - 'replyto_email' => 'info@EXAMPLE.ORG', - 'template_type' => 'traditional', - 'template_options' => '', - 'subject' => 'Hello {contact.display_name}', - 'body_text' => 'This is {contact.display_name}. -https://civicrm.org -{domain.address}{action.optOutUrl}', - 'body_html' => '<link href=\'https://fonts.googleapis.com/css?family=Roboto+Condensed:400,700|Zilla+Slab:500,700\' rel=\'stylesheet\' type=\'text/css\'><p><a href=\"{action.forward}\">Forward this email</a></p><p>This is {contact.display_name}.</p><p><a href=\'https://civicrm.org/\'>CiviCRM.org</a></p><p>{domain.address}{action.optOutUrl}</p>', - 'url_tracking' => '1', - 'forward_replies' => 0, - 'auto_responder' => 0, - 'open_tracking' => '1', - 'is_completed' => '', - 'msg_template_id' => '', - 'override_verp' => '1', - 'created_id' => '18', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'scheduled_id' => '', - 'scheduled_date' => '', - 'approver_id' => '', - 'approval_date' => '', - 'approval_status_id' => '', - 'approval_note' => '', - 'is_archived' => 0, - 'visibility' => 'Public Pages', - 'campaign_id' => '', - 'dedupe_email' => '1', - 'sms_provider_id' => '', - 'hash' => '', - 'location_type_id' => '', - 'email_selection_method' => 'automatic', - 'language' => '', - 'api.MailingRecipients.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '0' => [ - 'id' => '4', - 'mailing_id' => '10', - 'contact_id' => '19', - 'email_id' => '19', - 'api.contact.getvalue' => 'Mr. Includer Person II', - 'api.email.getvalue' => 'include.me@example.org', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMailerPreviewRecipients" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mailing/Delete.ex.php b/civicrm/api/v3/examples/Mailing/Delete.ex.php deleted file mode 100644 index 511eff7e1b035e6838b09a609410e6929af3af90..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mailing/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mailing.delete API. - * - * @return array - * API result array - */ -function mailing_delete_example() { - $params = [ - 'id' => 27, - ]; - - try { - $result = civicrm_api3('Mailing', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMailerDeleteSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mailing/GetTokens.ex.php b/civicrm/api/v3/examples/Mailing/GetTokens.ex.php deleted file mode 100644 index 416b3ac86dac065d88df02befadbd5b626b7da44..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mailing/GetTokens.ex.php +++ /dev/null @@ -1,172 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mailing.gettokens API. - * - * Demonstrates fetching tokens for one or more entities (in this case "Contact" and "Mailing"). - * Optionally pass sequential=1 to have output ready-formatted for the select2 widget. - * - * @return array - * API result array - */ -function mailing_gettokens_example() { - $params = [ - 'entity' => [ - '0' => 'Contact', - '1' => 'Mailing', - ], - ]; - - try { - $result = civicrm_api3('Mailing', 'gettokens', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_gettokens_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 90, - 'values' => [ - '{action.unsubscribe}' => 'Unsubscribe via email', - '{action.unsubscribeUrl}' => 'Unsubscribe via web page', - '{action.resubscribe}' => 'Resubscribe via email', - '{action.resubscribeUrl}' => 'Resubscribe via web page', - '{action.optOut}' => 'Opt out via email', - '{action.optOutUrl}' => 'Opt out via web page', - '{action.forward}' => 'Forward this email (link)', - '{action.reply}' => 'Reply to this email (link)', - '{action.subscribeUrl}' => 'Subscribe via web page', - '{mailing.key}' => 'Mailing key', - '{mailing.name}' => 'Mailing name', - '{mailing.group}' => 'Mailing group', - '{mailing.viewUrl}' => 'Mailing permalink', - '{domain.name}' => 'Domain name', - '{domain.address}' => 'Domain (organization) address', - '{domain.phone}' => 'Domain (organization) phone', - '{domain.email}' => 'Domain (organization) email', - '{domain.id}' => 'Domain ID', - '{domain.description}' => 'Domain Description', - '{domain.now}' => 'Current time/date', - '{domain.base_url}' => 'Domain absolute base url', - '{domain.tax_term}' => 'Sales tax term (e.g VAT)', - '{contact.checksum}' => 'Checksum', - '{contact.current_employer}' => 'Current Employer', - '{contact.world_region}' => 'World Region', - '{contact.id}' => 'Contact ID', - '{contact.contact_type:label}' => 'Contact Type', - '{contact.do_not_email:label}' => 'Do Not Email', - '{contact.do_not_phone:label}' => 'Do Not Phone', - '{contact.do_not_mail:label}' => 'Do Not Mail', - '{contact.do_not_sms:label}' => 'Do Not Sms', - '{contact.do_not_trade:label}' => 'Do Not Trade', - '{contact.is_opt_out:label}' => 'No Bulk Emails (User Opt Out)', - '{contact.external_identifier}' => 'External Identifier', - '{contact.sort_name}' => 'Sort Name', - '{contact.display_name}' => 'Display Name', - '{contact.nick_name}' => 'Nickname', - '{contact.image_URL}' => 'Image Url', - '{contact.preferred_communication_method:label}' => 'Preferred Communication Method', - '{contact.preferred_language:label}' => 'Preferred Language', - '{contact.hash}' => 'Contact Hash', - '{contact.source}' => 'Contact Source', - '{contact.first_name}' => 'First Name', - '{contact.middle_name}' => 'Middle Name', - '{contact.last_name}' => 'Last Name', - '{contact.prefix_id:label}' => 'Individual Prefix', - '{contact.suffix_id:label}' => 'Individual Suffix', - '{contact.formal_title}' => 'Formal Title', - '{contact.communication_style_id:label}' => 'Communication Style', - '{contact.email_greeting_display}' => 'Email Greeting', - '{contact.postal_greeting_display}' => 'Postal Greeting', - '{contact.addressee_display}' => 'Addressee', - '{contact.job_title}' => 'Job Title', - '{contact.gender_id:label}' => 'Gender', - '{contact.birth_date}' => 'Birth Date', - '{contact.employer_id}' => 'Current Employer ID', - '{contact.is_deleted:label}' => 'Contact is in Trash', - '{contact.created_date}' => 'Created Date', - '{contact.modified_date}' => 'Modified Date', - '{contact.address_id}' => 'Address ID', - '{contact.location_type_id:label}' => 'Address Location Type', - '{contact.street_address}' => 'Street Address', - '{contact.street_number}' => 'Street Number', - '{contact.street_number_suffix}' => 'Street Number Suffix', - '{contact.street_name}' => 'Street Name', - '{contact.street_unit}' => 'Street Unit', - '{contact.supplemental_address_1}' => 'Supplemental Address 1', - '{contact.supplemental_address_2}' => 'Supplemental Address 2', - '{contact.supplemental_address_3}' => 'Supplemental Address 3', - '{contact.city}' => 'City', - '{contact.county}' => 'County', - '{contact.postal_code_suffix}' => 'Postal Code Suffix', - '{contact.postal_code}' => 'Postal Code', - '{contact.country}' => 'Country', - '{contact.geo_code_1}' => 'Latitude', - '{contact.geo_code_2}' => 'Longitude', - '{contact.address_name}' => 'Address Name', - '{contact.master_id}' => 'Master Address ID', - '{contact.phone}' => 'Phone', - '{contact.phone_ext}' => 'Phone Extension', - '{contact.phone_type}' => 'Phone Type', - '{contact.email}' => 'Email', - '{contact.on_hold:label}' => 'On Hold', - '{contact.signature_text}' => 'Signature Text', - '{contact.signature_html}' => 'Signature Html', - '{contact.url}' => 'Website', - '{contact.openid}' => 'OpenID', - '{contact.im}' => 'IM Screen Name', - '{contact.provider_id:label}' => 'IM Provider', - '{contact.state_province}' => 'State/Province', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMailGetTokens" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mailing/Submit.ex.php b/civicrm/api/v3/examples/Mailing/Submit.ex.php deleted file mode 100644 index b2bf20e4d91d28431c02e8eb6c0d94e9a714877e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mailing/Submit.ex.php +++ /dev/null @@ -1,126 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mailing.submit API. - * - * @return array - * API result array - */ -function mailing_submit_example() { - $params = [ - 'scheduled_date' => '2014-12-13 10:00:00', - 'approval_date' => '2014-12-13 00:00:00', - 'id' => 23, - ]; - - try { - $result = civicrm_api3('Mailing', 'submit', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_submit_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 23, - 'values' => [ - '23' => [ - 'id' => '23', - 'domain_id' => '1', - 'header_id' => '', - 'footer_id' => '33', - 'reply_id' => '8', - 'unsubscribe_id' => '5', - 'resubscribe_id' => '6', - 'optout_id' => '7', - 'name' => 'mailing name', - 'mailing_type' => 'standalone', - 'from_name' => 'FIXME', - 'from_email' => 'info@EXAMPLE.ORG', - 'replyto_email' => 'info@EXAMPLE.ORG', - 'template_type' => 'traditional', - 'template_options' => '', - 'subject' => 'Hello {contact.display_name}', - 'body_text' => 'This is {contact.display_name}. -https://civicrm.org -{domain.address}{action.optOutUrl}', - 'body_html' => '<p>Look ma, magic tokens in the markup!</p>', - 'url_tracking' => '1', - 'forward_replies' => 0, - 'auto_responder' => 0, - 'open_tracking' => '1', - 'is_completed' => '', - 'msg_template_id' => '', - 'override_verp' => '1', - 'created_id' => '48', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'scheduled_id' => '49', - 'scheduled_date' => '20130728085413', - 'approver_id' => '49', - 'approval_date' => '20130728085413', - 'approval_status_id' => '1', - 'approval_note' => '', - 'is_archived' => 0, - 'visibility' => 'Public Pages', - 'campaign_id' => '', - 'dedupe_email' => '1', - 'sms_provider_id' => '', - 'hash' => '67eac7789eaee00', - 'location_type_id' => '', - 'email_selection_method' => 'automatic', - 'language' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMailerSubmit" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailingAB/Create.ex.php b/civicrm/api/v3/examples/MailingAB/Create.ex.php deleted file mode 100644 index 6a287beb8def430b38e3f4028c9967b1eaf3062b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailingAB/Create.ex.php +++ /dev/null @@ -1,99 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailingAB.create API. - * - * @return array - * API result array - */ -function mailing_a_b_create_example() { - $params = [ - 'mailing_id_a' => 1, - 'mailing_id_b' => 2, - 'mailing_id_c' => 3, - 'testing_criteria' => 'subject', - 'winner_criteria' => 'open', - 'declare_winning_time' => '+2 days', - 'group_percentage' => 10, - ]; - - try { - $result = civicrm_api3('MailingAB', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_a_b_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => '', - 'status' => '', - 'mailing_id_a' => '1', - 'mailing_id_b' => '2', - 'mailing_id_c' => '3', - 'domain_id' => '1', - 'testing_criteria' => 'subject', - 'winner_criteria' => 'open', - 'specific_url' => '', - 'declare_winning_time' => '20220119125416', - 'group_percentage' => '10', - 'created_id' => '3', - 'created_date' => '2013-07-28 08:49:19', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMailingABCreateSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingABTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailingEventSubscribe/Create.ex.php b/civicrm/api/v3/examples/MailingEventSubscribe/Create.ex.php deleted file mode 100644 index 9059f57df929b668a74410aee094ced1461e4b42..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailingEventSubscribe/Create.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MailingEventSubscribe.create API. - * - * @return array - * API result array - */ -function mailing_event_subscribe_create_example() { - $params = [ - 'email' => 'test@test.test', - 'group_id' => 2, - 'contact_id' => 3, - 'hash' => 'b15de8b64e2cec34', - 'time_stamp' => '20101212121212', - ]; - - try { - $result = civicrm_api3('MailingEventSubscribe', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_event_subscribe_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '3', - 'subscribe_id' => '1', - 'hash' => '67eac7789eaee00', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMailerGroupSubscribeGivenContactId" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MailingGroup/Subscribe.ex.php b/civicrm/api/v3/examples/MailingGroup/Subscribe.ex.php deleted file mode 100644 index df4f96729b8be865ad44aa85cf5f19b443be2ee0..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MailingGroup/Subscribe.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example of using mailing_group subscribe API. - * - * @return array - * API result array - */ -function mailing_group_subscribe_example() { - $params = [ - 'email' => 'test@test.test', - 'group_id' => 2, - 'contact_id' => 3, - 'hash' => 'b15de8b64e2cec34', - 'time_stamp' => '20101212121212', - ]; - - try { - $result = civicrm_api3('mailing_group', 'subscribe', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mailing_group_subscribe_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '3', - 'subscribe_id' => '1', - 'hash' => '67eac7789eaee00', - ], - ], - ]; - - return $expectedResult; -} - -/** -* This example has been generated from the API test suite. -* The test that created it is called -* testMailerGroupSubscribeGivenContactId -* and can be found in -* https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MailingGroupTest.php. -* -* You can see the outcome of the API tests at -* https://test.civicrm.org/job/CiviCRM-master-git/ -* -* To Learn about the API read -* http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API -* -* Browse the api on your own site with the api explorer -* http://MYSITE.ORG/path/to/civicrm/api -* -* Read more about testing here -* http://wiki.civicrm.org/confluence/display/CRM/Testing -* -* API Standards documentation: -* http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards -*/ diff --git a/civicrm/api/v3/examples/Mapping/Create.ex.php b/civicrm/api/v3/examples/Mapping/Create.ex.php deleted file mode 100644 index c3ebff0aee8519365f5b13194100ac8394161b03..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mapping/Create.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mapping.create API. - * - * @return array - * API result array - */ -function mapping_create_example() { - $params = [ - 'name' => 'Mapping name', - 'description' => 'Mapping description', - 'mapping_type_id' => 7, - ]; - - try { - $result = civicrm_api3('Mapping', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mapping_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'Mapping name', - 'description' => 'Mapping description', - 'mapping_type_id' => '7', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateMapping" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MappingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mapping/Delete.ex.php b/civicrm/api/v3/examples/Mapping/Delete.ex.php deleted file mode 100644 index c70d4fd4d4e542c7fb85c59b35e0c0ec3f9c7220..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mapping/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mapping.delete API. - * - * @return array - * API result array - */ -function mapping_delete_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Mapping', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mapping_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteMapping" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MappingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Mapping/Get.ex.php b/civicrm/api/v3/examples/Mapping/Get.ex.php deleted file mode 100644 index 1c3c101dd89ee27c4422f5641fd58a2391460b5b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Mapping/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Mapping.get API. - * - * @return array - * API result array - */ -function mapping_get_example() { - $params = [ - 'name' => 'Mapping name', - 'description' => 'Mapping description', - 'mapping_type_id' => 7, - ]; - - try { - $result = civicrm_api3('Mapping', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mapping_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'name' => 'Mapping name', - 'description' => 'Mapping description', - 'mapping_type_id' => '7', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMapping" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MappingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MappingField/Create.ex.php b/civicrm/api/v3/examples/MappingField/Create.ex.php deleted file mode 100644 index 27a3a7a8f2c698cfbb3d27b80b52afd807bcab0f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MappingField/Create.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MappingField.create API. - * - * @return array - * API result array - */ -function mapping_field_create_example() { - $params = [ - 'mapping_id' => 1, - 'name' => 'last_name', - 'contact_type' => 'Individual', - 'column_number' => 2, - 'grouping' => 1, - ]; - - try { - $result = civicrm_api3('MappingField', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mapping_field_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'mapping_id' => '1', - 'name' => 'last_name', - 'contact_type' => 'Individual', - 'column_number' => '2', - 'location_type_id' => '', - 'phone_type_id' => '', - 'im_provider_id' => '', - 'website_type_id' => '', - 'relationship_type_id' => '', - 'relationship_direction' => '', - 'grouping' => '1', - 'operator' => '', - 'value' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateMappingField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MappingFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MappingField/Delete.ex.php b/civicrm/api/v3/examples/MappingField/Delete.ex.php deleted file mode 100644 index c9f6b23566a75d1bacc6e185ff7a5764206dd2fc..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MappingField/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MappingField.delete API. - * - * @return array - * API result array - */ -function mapping_field_delete_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('MappingField', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mapping_field_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteMappingField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MappingFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MappingField/Get.ex.php b/civicrm/api/v3/examples/MappingField/Get.ex.php deleted file mode 100644 index 3e8403e6be903bbee50420d58f57c19f0599e13b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MappingField/Get.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MappingField.get API. - * - * @return array - * API result array - */ -function mapping_field_get_example() { - $params = [ - 'mapping_id' => 2, - 'name' => 'last_name', - 'contact_type' => 'Individual', - 'column_number' => 2, - 'grouping' => 1, - ]; - - try { - $result = civicrm_api3('MappingField', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function mapping_field_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'mapping_id' => '2', - 'name' => 'last_name', - 'contact_type' => 'Individual', - 'column_number' => '2', - 'grouping' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMappingField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MappingFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/Create.ex.php b/civicrm/api/v3/examples/Membership/Create.ex.php deleted file mode 100644 index fed7a9162779a081b4f7e28942ab823a7c772536..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/Create.ex.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.create API. - * - * @return array - * API result array - */ -function membership_create_example() { - $params = [ - 'contact_id' => 3, - 'membership_type_id' => 1, - 'join_date' => '2006-01-21', - 'start_date' => '2006-01-21', - 'end_date' => '2006-12-21', - 'source' => 'Payment', - 'is_override' => 1, - 'status_id' => 33, - ]; - - try { - $result = civicrm_api3('Membership', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'membership_type_id' => '1', - 'join_date' => '20060121000000', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'source' => 'Payment', - 'status_id' => '33', - 'is_override' => '1', - 'status_override_end_date' => '', - 'owner_membership_id' => '', - 'max_related' => '', - 'is_test' => 0, - 'is_pay_later' => '', - 'contribution_recur_id' => '', - 'campaign_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMembershipCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/CreateWithCustomData.ex.php b/civicrm/api/v3/examples/Membership/CreateWithCustomData.ex.php deleted file mode 100644 index 4f8ae718da46ac4a2a5b577e937fea5f8ca6affd..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/CreateWithCustomData.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.create API. - * - * @return array - * API result array - */ -function membership_create_example() { - $params = [ - 'contact_id' => 3, - 'membership_type_id' => 'General', - 'join_date' => '2009-01-21', - 'start_date' => '2009-01-21', - 'end_date' => '2009-12-21', - 'source' => 'Payment', - 'is_override' => 1, - 'status_id' => 35, - 'custom_1' => 'custom string', - ]; - - try { - $result = civicrm_api3('Membership', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'membership_type_id' => '1', - 'join_date' => '20090121000000', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'source' => 'Payment', - 'status_id' => '35', - 'is_override' => '1', - 'status_override_end_date' => '', - 'owner_membership_id' => '', - 'max_related' => '', - 'is_test' => 0, - 'is_pay_later' => '', - 'contribution_recur_id' => '', - 'campaign_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateWithCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/Delete.ex.php b/civicrm/api/v3/examples/Membership/Delete.ex.php deleted file mode 100644 index ee913f54d8578705a98690a198478a0810232ac4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/Delete.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.delete API. - * - * @return array - * API result array - */ -function membership_delete_example() { - $params = [ - 'id' => 1, - 'preserve_contribution' => 1, - ]; - - try { - $result = civicrm_api3('Membership', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => TRUE, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testMembershipDeletePreserveContribution" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/FilterIsCurrent.ex.php b/civicrm/api/v3/examples/Membership/FilterIsCurrent.ex.php deleted file mode 100644 index f8434450f7ce14478da089129638ed07aee95796..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/FilterIsCurrent.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.get API. - * - * Demonstrates use of 'filter' active_only' param. - * - * @return array - * API result array - */ -function membership_get_example() { - $params = [ - 'contact_id' => 3, - 'filters' => [ - 'is_current' => 1, - ], - ]; - - try { - $result = civicrm_api3('Membership', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'membership_type_id' => '1', - 'join_date' => '2009-01-21', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'source' => 'Payment', - 'status_id' => '23', - 'is_override' => '1', - 'is_test' => 0, - 'is_pay_later' => 0, - 'membership_name' => 'General', - 'relationship_name' => 'Child of', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetOnlyActive" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/Get.ex.php b/civicrm/api/v3/examples/Membership/Get.ex.php deleted file mode 100644 index bba4a3150b3a0ae742ba1a1023bb91b39d5df349..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/Get.ex.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.get API. - * - * @return array - * API result array - */ -function membership_get_example() { - $params = [ - 'membership_type_id' => 'General', - 'return' => 'custom_1', - ]; - - try { - $result = civicrm_api3('Membership', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'custom_1' => 'custom string', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetWithParamsMemberShipIdAndCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/SearchWithCustomData.ex.php b/civicrm/api/v3/examples/Membership/SearchWithCustomData.ex.php deleted file mode 100644 index 4541fb4909b11a6657af055aec64760f94176e98..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/SearchWithCustomData.ex.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.create API. - * - * @return array - * API result array - */ -function membership_create_example() { - $params = [ - 'contact_id' => 3, - 'membership_type_id' => 'General', - 'join_date' => '2009-01-21', - 'start_date' => '2009-01-21', - 'end_date' => '2009-12-21', - 'source' => 'Payment', - 'is_override' => 1, - 'status_id' => 36, - ]; - - try { - $result = civicrm_api3('Membership', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'membership_type_id' => '1', - 'join_date' => '20090121000000', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'source' => 'Payment', - 'status_id' => '36', - 'is_override' => '1', - 'status_override_end_date' => '', - 'owner_membership_id' => '', - 'max_related' => '', - 'is_test' => 0, - 'is_pay_later' => '', - 'contribution_recur_id' => '', - 'campaign_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testSearchWithCustomDataCRM16036" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Membership/UpdateCustomData.ex.php b/civicrm/api/v3/examples/Membership/UpdateCustomData.ex.php deleted file mode 100644 index 6552c3487d65a395ffa24d31d9492a23a71dc309..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Membership/UpdateCustomData.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Membership.create API. - * - * @return array - * API result array - */ -function membership_create_example() { - $params = [ - 'contact_id' => 3, - 'membership_type_id' => 'General', - 'join_date' => '2009-01-21', - 'start_date' => '2009-01-21', - 'end_date' => '2009-12-21', - 'source' => 'Payment', - 'is_override' => 1, - 'status_id' => 43, - 'custom_1' => 'custom string', - ]; - - try { - $result = civicrm_api3('Membership', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'membership_type_id' => '1', - 'join_date' => '20090121000000', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'source' => 'Payment', - 'status_id' => '43', - 'is_override' => '1', - 'status_override_end_date' => '', - 'owner_membership_id' => '', - 'max_related' => '', - 'is_test' => 0, - 'is_pay_later' => '', - 'contribution_recur_id' => '', - 'campaign_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUpdateWithCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipPayment/Create.ex.php b/civicrm/api/v3/examples/MembershipPayment/Create.ex.php deleted file mode 100644 index d48c64db57762d78c49df581230fd22d415b01be..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipPayment/Create.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipPayment.create API. - * - * @return array - * API result array - */ -function membership_payment_create_example() { - $params = [ - 'contribution_id' => 2, - 'membership_id' => 1, - ]; - - try { - $result = civicrm_api3('MembershipPayment', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_payment_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'membership_id' => '1', - 'contribution_id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipPaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipPayment/Get.ex.php b/civicrm/api/v3/examples/MembershipPayment/Get.ex.php deleted file mode 100644 index fbe5c2aee4f21062bca4328aa5fae970b6a502eb..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipPayment/Get.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipPayment.get API. - * - * @return array - * API result array - */ -function membership_payment_get_example() { - $params = [ - 'contribution_id' => 3, - 'membership_id' => 2, - ]; - - try { - $result = civicrm_api3('MembershipPayment', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_payment_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'membership_id' => '2', - 'contribution_id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipPaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipStatus/Create.ex.php b/civicrm/api/v3/examples/MembershipStatus/Create.ex.php deleted file mode 100644 index 0ba7d7347ff0d77a2ff0e6bb950f3d205b2fdf9e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipStatus/Create.ex.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipStatus.create API. - * - * @return array - * API result array - */ -function membership_status_create_example() { - $params = [ - 'name' => 'test membership status', - ]; - - try { - $result = civicrm_api3('MembershipStatus', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_status_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 15, - 'values' => [ - '15' => [ - 'id' => '15', - 'name' => 'test membership status', - 'label' => 'test membership status', - 'start_event' => '', - 'start_event_adjust_unit' => '', - 'start_event_adjust_interval' => '', - 'end_event' => '', - 'end_event_adjust_unit' => '', - 'end_event_adjust_interval' => '', - 'is_current_member' => '', - 'is_admin' => '', - 'weight' => '', - 'is_default' => '', - 'is_active' => '', - 'is_reserved' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipStatusTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipStatus/Get.ex.php b/civicrm/api/v3/examples/MembershipStatus/Get.ex.php deleted file mode 100644 index 095991660f5c5213f81c650c90ba315f72329722..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipStatus/Get.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipStatus.get API. - * - * @return array - * API result array - */ -function membership_status_get_example() { - $params = [ - 'name' => 'test status', - ]; - - try { - $result = civicrm_api3('MembershipStatus', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_status_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 9, - 'values' => [ - '9' => [ - 'id' => '9', - 'name' => 'test status', - 'label' => 'test status', - 'start_event' => 'start_date', - 'end_event' => 'end_date', - 'is_current_member' => '1', - 'is_admin' => 0, - 'is_default' => 0, - 'is_active' => '1', - 'is_reserved' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipStatusTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipType/Create.ex.php b/civicrm/api/v3/examples/MembershipType/Create.ex.php deleted file mode 100644 index 93711c6412f28d6c0383a4b92e8d3b9bb7d05acc..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipType/Create.ex.php +++ /dev/null @@ -1,110 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipType.create API. - * - * @return array - * API result array - */ -function membership_type_create_example() { - $params = [ - 'name' => '40+ Membership', - 'description' => 'people above 40 are given health instructions', - 'member_of_contact_id' => 11, - 'financial_type_id' => 1, - 'domain_id' => '1', - 'minimum_fee' => '200', - 'duration_unit' => 'month', - 'duration_interval' => '10', - 'period_type' => 'rolling', - 'visibility' => 'public', - ]; - - try { - $result = civicrm_api3('MembershipType', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_type_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'domain_id' => '1', - 'name' => '40+ Membership', - 'description' => 'people above 40 are given health instructions', - 'member_of_contact_id' => '11', - 'financial_type_id' => '1', - 'minimum_fee' => '200', - 'duration_unit' => 'month', - 'duration_interval' => '10', - 'period_type' => 'rolling', - 'fixed_period_start_day' => '', - 'fixed_period_rollover_day' => '', - 'relationship_type_id' => '', - 'relationship_direction' => '', - 'max_related' => '', - 'visibility' => 'Public', - 'weight' => '', - 'receipt_text_signup' => '', - 'receipt_text_renewal' => '', - 'auto_renew' => '', - 'is_active' => '1', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipType/Delete.ex.php b/civicrm/api/v3/examples/MembershipType/Delete.ex.php deleted file mode 100644 index 67aff9ba1b4d33027d4fa8569671a9a06e3c7b36..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipType/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipType.delete API. - * - * @return array - * API result array - */ -function membership_type_delete_example() { - $params = [ - 'id' => 10, - ]; - - try { - $result = civicrm_api3('MembershipType', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_type_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MembershipType/Get.ex.php b/civicrm/api/v3/examples/MembershipType/Get.ex.php deleted file mode 100644 index 78bc4373616e2fedf7c5a0bd05c6edb2bcbe04c5..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MembershipType/Get.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MembershipType.get API. - * - * @return array - * API result array - */ -function membership_type_get_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('MembershipType', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function membership_type_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'domain_id' => '1', - 'name' => 'General', - 'member_of_contact_id' => '5', - 'financial_type_id' => '2', - 'minimum_fee' => '0.000000000', - 'duration_unit' => 'year', - 'duration_interval' => '1', - 'period_type' => 'rolling', - 'visibility' => 'Public', - 'auto_renew' => 0, - 'is_active' => '1', - 'contribution_type_id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MembershipTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MessageTemplate/Create.ex.php b/civicrm/api/v3/examples/MessageTemplate/Create.ex.php deleted file mode 100644 index 386818f9cd33e6762f40ab9030a304bd31a5e3fb..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MessageTemplate/Create.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MessageTemplate.create API. - * - * @return array - * API result array - */ -function message_template_create_example() { - $params = [ - 'msg_title' => 'msg_title_356', - 'msg_subject' => 'msg_subject_356', - 'msg_text' => 'msg_text_356', - 'msg_html' => 'msg_html_356', - 'workflow_id' => 356, - 'is_default' => '1', - 'is_reserved' => 0, - ]; - - try { - $result = civicrm_api3('MessageTemplate', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function message_template_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 69, - 'values' => [ - '69' => [ - 'id' => '69', - 'msg_title' => 'msg_title_356', - 'msg_subject' => 'msg_subject_356', - 'msg_text' => 'msg_text_356', - 'msg_html' => 'msg_html_356', - 'is_active' => '1', - 'workflow_id' => '356', - 'workflow_name' => '', - 'is_default' => '1', - 'is_reserved' => 0, - 'is_sms' => '', - 'pdf_format_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MessageTemplateTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MessageTemplate/Delete.ex.php b/civicrm/api/v3/examples/MessageTemplate/Delete.ex.php deleted file mode 100644 index 4d3a118c9978e2d4512d31826846f6a7e47654c2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MessageTemplate/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MessageTemplate.delete API. - * - * @return array - * API result array - */ -function message_template_delete_example() { - $params = [ - 'id' => 72, - ]; - - try { - $result = civicrm_api3('MessageTemplate', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function message_template_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MessageTemplateTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/MessageTemplate/Get.ex.php b/civicrm/api/v3/examples/MessageTemplate/Get.ex.php deleted file mode 100644 index 3edf3985b42d3fd8182d10c4045bb13fb3d0c43b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/MessageTemplate/Get.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the MessageTemplate.get API. - * - * @return array - * API result array - */ -function message_template_get_example() { - $params = [ - 'msg_title' => 'msg_title_357', - 'msg_subject' => 'msg_subject_357', - 'msg_text' => 'msg_text_357', - 'msg_html' => 'msg_html_357', - 'workflow_id' => 357, - 'is_default' => '1', - 'is_reserved' => 0, - ]; - - try { - $result = civicrm_api3('MessageTemplate', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function message_template_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 70, - 'values' => [ - '70' => [ - 'id' => '70', - 'msg_title' => 'msg_title_357', - 'msg_subject' => 'msg_subject_357', - 'msg_text' => 'msg_text_357', - 'msg_html' => 'msg_html_357', - 'is_active' => '1', - 'workflow_id' => '357', - 'workflow_name' => 'workflow_name_357', - 'is_default' => '1', - 'is_reserved' => 0, - 'is_sms' => 0, - 'pdf_format_id' => '357', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/MessageTemplateTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Note/Create.ex.php b/civicrm/api/v3/examples/Note/Create.ex.php deleted file mode 100644 index 71fb2729a884de9087635ee6c5e30958240e3de2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Note/Create.ex.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Note.create API. - * - * @return array - * API result array - */ -function note_create_example() { - $params = [ - 'entity_table' => 'civicrm_contact', - 'entity_id' => 15, - 'note' => 'Hello!!! m testing Note', - 'contact_id' => 15, - 'created_date' => '2012-01-17 13:04:50', - 'note_date' => '2012-01-17 13:04:50', - 'modified_date' => '2011-01-31', - 'subject' => 'Test Note', - ]; - - try { - $result = civicrm_api3('Note', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function note_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 14, - 'values' => [ - '14' => [ - 'id' => '14', - 'entity_table' => 'civicrm_contact', - 'entity_id' => '15', - 'note' => 'Hello!!! m testing Note', - 'contact_id' => '15', - 'note_date' => '20120117130450', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - 'subject' => 'Test Note', - 'privacy' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/NoteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Note/Delete.ex.php b/civicrm/api/v3/examples/Note/Delete.ex.php deleted file mode 100644 index 370c49a03645e7274117b4f9ce4b5cf67a8de829..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Note/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Note.delete API. - * - * @return array - * API result array - */ -function note_delete_example() { - $params = [ - 'id' => 35, - ]; - - try { - $result = civicrm_api3('Note', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function note_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/NoteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Note/Get.ex.php b/civicrm/api/v3/examples/Note/Get.ex.php deleted file mode 100644 index c62583b45a10fd29e511eaf0aaed82e648b85fba..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Note/Get.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Note.get API. - * - * @return array - * API result array - */ -function note_get_example() { - $params = [ - 'entity_table' => 'civicrm_contact', - 'entity_id' => 5, - ]; - - try { - $result = civicrm_api3('Note', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function note_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/NoteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OpenID/Create.ex.php b/civicrm/api/v3/examples/OpenID/Create.ex.php deleted file mode 100644 index 41d665c8bab5d964a78148fcc4a9a5ebad75382e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OpenID/Create.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OpenID.create API. - * - * @return array - * API result array - */ -function open_i_d_create_example() { - $params = [ - 'contact_id' => 5, - 'openid' => 'My OpenID handle', - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('OpenID', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function open_i_d_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '0' => [ - 'id' => '3', - 'contact_id' => '5', - 'location_type_id' => '1', - 'openid' => 'My OpenID handle', - 'allowed_to_login' => '', - 'is_primary' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateOpenIDDefaultLocation" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OpenIDTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OpenID/Delete.ex.php b/civicrm/api/v3/examples/OpenID/Delete.ex.php deleted file mode 100644 index 1e906d9fbff6b41f21ae87cb3408496504a2fed7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OpenID/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OpenID.delete API. - * - * @return array - * API result array - */ -function open_i_d_delete_example() { - $params = [ - 'id' => 7, - ]; - - try { - $result = civicrm_api3('OpenID', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function open_i_d_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteOpenID" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OpenIDTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OpenID/Get.ex.php b/civicrm/api/v3/examples/OpenID/Get.ex.php deleted file mode 100644 index 1f117d1dd0502424e175bd4919a79077c2ac43d3..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OpenID/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OpenID.get API. - * - * @return array - * API result array - */ -function open_i_d_get_example() { - $params = [ - 'contact_id' => 7, - 'openid' => 'My OpenID handle', - 'location_type_id' => 1, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('OpenID', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function open_i_d_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 5, - 'values' => [ - '0' => [ - 'id' => '5', - 'contact_id' => '7', - 'location_type_id' => '1', - 'openid' => 'My OpenID handle', - 'allowed_to_login' => 0, - 'is_primary' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetOpenID" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OpenIDTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OptionGroup/Create.ex.php b/civicrm/api/v3/examples/OptionGroup/Create.ex.php deleted file mode 100644 index 1f23a4dc8e7d7dc155303b97c7e357e43231391e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OptionGroup/Create.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OptionGroup.create API. - * - * @return array - * API result array - */ -function option_group_create_example() { - $params = [ - 'sequential' => 1, - 'name' => 'civicrm_event.amount.560', - 'is_reserved' => 1, - 'is_active' => 1, - 'api.OptionValue.create' => [ - 'label' => 'workshop', - 'value' => 35, - 'is_default' => 1, - 'is_active' => 1, - 'format.only_id' => 1, - ], - ]; - - try { - $result = civicrm_api3('OptionGroup', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function option_group_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 96, - 'values' => [ - '0' => [ - 'id' => '96', - 'name' => 'civicrm_event.amount.560', - 'title' => '', - 'description' => '', - 'data_type' => '', - 'is_reserved' => '1', - 'is_active' => '1', - 'is_locked' => '', - 'api.OptionValue.create' => 859, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetOptionCreateSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OptionGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OptionGroup/Delete.ex.php b/civicrm/api/v3/examples/OptionGroup/Delete.ex.php deleted file mode 100644 index 7b1e6acedd1bd1d487ffa5dc5c0d54de0ecaa96a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OptionGroup/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OptionGroup.delete API. - * - * @return array - * API result array - */ -function option_group_delete_example() { - $params = [ - 'id' => 101, - ]; - - try { - $result = civicrm_api3('OptionGroup', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function option_group_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteOptionGroup" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OptionGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OptionGroup/Get.ex.php b/civicrm/api/v3/examples/OptionGroup/Get.ex.php deleted file mode 100644 index 570c36ab2ab09490b246f47b2105bc785386700a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OptionGroup/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OptionGroup.get API. - * - * @return array - * API result array - */ -function option_group_get_example() { - $params = [ - 'name' => 'preferred_communication_method', - ]; - - try { - $result = civicrm_api3('OptionGroup', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function option_group_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'preferred_communication_method', - 'title' => 'Preferred Communication Method', - 'is_reserved' => '1', - 'is_active' => '1', - 'is_locked' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetOptionGroupByName" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OptionGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OptionValue/Get.ex.php b/civicrm/api/v3/examples/OptionValue/Get.ex.php deleted file mode 100644 index a69c81178ee75a884b5bb11a99d1779feb85c36b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OptionValue/Get.ex.php +++ /dev/null @@ -1,136 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OptionValue.get API. - * - * @return array - * API result array - */ -function option_value_get_example() { - $params = [ - 'option_group_id' => 1, - ]; - - try { - $result = civicrm_api3('OptionValue', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function option_value_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '1' => [ - 'id' => '1', - 'option_group_id' => '1', - 'label' => 'Phone', - 'value' => '1', - 'name' => 'Phone', - 'filter' => 0, - 'weight' => '1', - 'is_optgroup' => 0, - 'is_reserved' => 0, - 'is_active' => '1', - ], - '2' => [ - 'id' => '2', - 'option_group_id' => '1', - 'label' => 'Email', - 'value' => '2', - 'name' => 'Email', - 'filter' => 0, - 'weight' => '2', - 'is_optgroup' => 0, - 'is_reserved' => 0, - 'is_active' => '1', - ], - '3' => [ - 'id' => '3', - 'option_group_id' => '1', - 'label' => 'Postal Mail', - 'value' => '3', - 'name' => 'Postal Mail', - 'filter' => 0, - 'weight' => '3', - 'is_optgroup' => 0, - 'is_reserved' => 0, - 'is_active' => '1', - ], - '4' => [ - 'id' => '4', - 'option_group_id' => '1', - 'label' => 'SMS', - 'value' => '4', - 'name' => 'SMS', - 'filter' => 0, - 'weight' => '4', - 'is_optgroup' => 0, - 'is_reserved' => 0, - 'is_active' => '1', - ], - '5' => [ - 'id' => '5', - 'option_group_id' => '1', - 'label' => 'Fax', - 'value' => '5', - 'name' => 'Fax', - 'filter' => 0, - 'weight' => '5', - 'is_optgroup' => 0, - 'is_reserved' => 0, - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetOptionGroup" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OptionValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/OptionValue/SortOption.ex.php b/civicrm/api/v3/examples/OptionValue/SortOption.ex.php deleted file mode 100644 index c68a2e3fd0ddc41c6419f24f38f14720c508e46d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/OptionValue/SortOption.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the OptionValue.getsingle API. - * - * Demonstrates use of Sort param (available in many api functions). Also, getsingle. - * - * @return array - * API result array - */ -function option_value_getsingle_example() { - $params = [ - 'option_group_id' => 1, - 'options' => [ - 'sort' => 'label DESC', - 'limit' => 1, - ], - ]; - - try { - $result = civicrm_api3('OptionValue', 'getsingle', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function option_value_getsingle_expectedresult() { - - $expectedResult = [ - 'id' => '4', - 'option_group_id' => '1', - 'label' => 'SMS', - 'value' => '4', - 'name' => 'SMS', - 'filter' => 0, - 'weight' => '4', - 'is_optgroup' => 0, - 'is_reserved' => 0, - 'is_active' => '1', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSingleValueOptionValueSort" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OptionValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Order/Cancel.ex.php b/civicrm/api/v3/examples/Order/Cancel.ex.php deleted file mode 100644 index 2ae843024d613b76257bc3e5d2466210afaf9ceb..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Order/Cancel.ex.php +++ /dev/null @@ -1,111 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Order.cancel API. - * - * @return array - * API result array - */ -function order_cancel_example() { - $params = [ - 'contribution_id' => 1, - ]; - - try { - $result = civicrm_api3('Order', 'cancel', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function order_cancel_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '55', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '2010-01-20 00:00:00', - 'non_deductible_amount' => '0.00', - 'total_amount' => '100.00', - 'fee_amount' => '0.00', - 'net_amount' => '100.00', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => '', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => 0, - 'is_pay_later' => 0, - 'contribution_status_id' => '3', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => 'CN_1', - 'tax_amount' => '0.00', - 'revenue_recognition_date' => '', - 'is_template' => 0, - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCancelOrder" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OrderTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Order/Create.ex.php b/civicrm/api/v3/examples/Order/Create.ex.php deleted file mode 100644 index f1ecc96b39f7418a444ca46446b63530eadc1ed7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Order/Create.ex.php +++ /dev/null @@ -1,157 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Order.create API. - * - * @return array - * API result array - */ -function order_create_example() { - $params = [ - 'contact_id' => 10, - 'receive_date' => '2010-01-20', - 'financial_type_id' => 'Event Fee', - 'contribution_status_id' => 'Pending', - 'line_items' => [ - '0' => [ - 'line_item' => [ - '0' => [ - 'price_field_id' => '4', - 'price_field_value_id' => '5', - 'label' => 'Price Field 2', - 'field_title' => 'Price Field 2', - 'qty' => 1, - 'unit_price' => '200.000000000', - 'line_total' => '200.000000000', - 'financial_type_id' => '4', - 'entity_table' => 'civicrm_membership', - 'membership_type_id' => 1, - ], - ], - 'params' => [ - 'contact_id' => 10, - 'membership_type_id' => 2, - 'join_date' => '2006-01-21', - 'start_date' => '2006-01-21', - 'end_date' => '2006-12-21', - 'source' => 'Payment', - 'is_override' => 1, - ], - ], - ], - ]; - - try { - $result = civicrm_api3('Order', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function order_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '10', - 'financial_type_id' => '4', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '20100120000000', - 'non_deductible_amount' => '', - 'total_amount' => '200', - 'fee_amount' => 0, - 'net_amount' => '200', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => '', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '2', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '4', - 'line_item' => [ - '0' => [ - 'price_field_id' => '4', - 'price_field_value_id' => '5', - 'label' => 'Price Field 2', - 'field_title' => 'Price Field 2', - 'qty' => '1', - 'unit_price' => '200.000000000', - 'line_total' => '200.000000000', - 'financial_type_id' => '4', - 'entity_table' => 'civicrm_membership', - 'membership_type_id' => '1', - 'tax_amount' => 0, - 'entity_id' => '1', - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testAddOrderForMembership" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OrderTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Order/CreateOrderParticipant.ex.php b/civicrm/api/v3/examples/Order/CreateOrderParticipant.ex.php deleted file mode 100644 index 310df9736c955e4265accda931f65a44f8e6aa01..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Order/CreateOrderParticipant.ex.php +++ /dev/null @@ -1,179 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Order.create API. - * - * Create order for participant. - * - * @return array - * API result array - */ -function order_create_example() { - $params = [ - 'contact_id' => 41, - 'receive_date' => '2010-01-20', - 'financial_type_id' => 1, - 'contribution_status_id' => 'Pending', - 'line_items' => [ - '0' => [ - 'line_item' => [ - '2' => [ - 'price_field_id' => '2', - 'price_field_value_id' => '2', - 'label' => 'Price Field 1', - 'field_title' => 'Price Field 1', - 'qty' => 1, - 'unit_price' => '100.000000000', - 'line_total' => '100.000000000', - 'financial_type_id' => '4', - 'entity_table' => 'civicrm_participant', - ], - '3' => [ - 'price_field_id' => '2', - 'price_field_value_id' => '3', - 'label' => 'Price Field 2', - 'field_title' => 'Price Field 2', - 'qty' => 1, - 'unit_price' => '200.000000000', - 'line_total' => '200.000000000', - 'financial_type_id' => '4', - 'entity_table' => 'civicrm_participant', - ], - ], - 'params' => [ - 'contact_id' => 41, - 'event_id' => 1, - 'role_id' => 1, - 'register_date' => '2007-07-21 00:00:00', - 'source' => 'Online Event Registration: API Testing', - ], - ], - ], - ]; - - try { - $result = civicrm_api3('Order', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function order_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '41', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '20100120000000', - 'non_deductible_amount' => '', - 'total_amount' => '300', - 'fee_amount' => 0, - 'net_amount' => '300', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => '', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '2', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => 0, - 'revenue_recognition_date' => '', - 'is_template' => '', - 'contribution_type_id' => '1', - 'line_item' => [ - '0' => [ - 'price_field_id' => '2', - 'price_field_value_id' => '2', - 'label' => 'Price Field 1', - 'field_title' => 'Price Field 1', - 'qty' => '1', - 'unit_price' => '100.000000000', - 'line_total' => '100.000000000', - 'financial_type_id' => '4', - 'entity_table' => 'civicrm_participant', - 'tax_amount' => 0, - 'entity_id' => '1', - ], - '1' => [ - 'price_field_id' => '2', - 'price_field_value_id' => '3', - 'label' => 'Price Field 2', - 'field_title' => 'Price Field 2', - 'qty' => '1', - 'unit_price' => '200.000000000', - 'line_total' => '200.000000000', - 'financial_type_id' => '4', - 'entity_table' => 'civicrm_participant', - 'tax_amount' => 0, - 'entity_id' => '1', - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testAddOrderForParticipant" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OrderTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Order/Delete.ex.php b/civicrm/api/v3/examples/Order/Delete.ex.php deleted file mode 100644 index 756db3d7227a2a68f2a43b8b6f40a9f628e3738f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Order/Delete.ex.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Order.delete API. - * - * @return array - * API result array - */ -function order_delete_example() { - $params = [ - 'contribution_id' => 1, - ]; - - try { - $result = civicrm_api3('Order', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function order_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => 1, - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteOrder" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OrderTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Order/Get.ex.php b/civicrm/api/v3/examples/Order/Get.ex.php deleted file mode 100644 index abbca0d6b2999cac29569f328f60ab6431f24c1c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Order/Get.ex.php +++ /dev/null @@ -1,141 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Order.get API. - * - * @return array - * API result array - */ -function order_get_example() { - $params = [ - 'contribution_id' => 1, - ]; - - try { - $result = civicrm_api3('Order', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function order_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '3', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'contribution_id' => '1', - 'currency' => 'USD', - 'contribution_recur_id' => '', - 'contribution_status_id' => '1', - 'contribution_campaign_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '2010-01-20 00:00:00', - 'non_deductible_amount' => '0.00', - 'total_amount' => '100.00', - 'fee_amount' => '0.00', - 'net_amount' => '100.00', - 'trxn_id' => '', - 'invoice_id' => '', - 'invoice_number' => '', - 'contribution_cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'contribution_source' => '', - 'amount_level' => '', - 'is_test' => 0, - 'is_pay_later' => 0, - 'contribution_check_number' => '', - 'financial_account_id' => '1', - 'accounting_code' => '4200', - 'campaign_id' => '', - 'contribution_campaign_title' => '', - 'financial_type_id' => '1', - 'contribution_note' => '', - 'contribution_batch' => '', - 'contribution_recur_status' => 'Completed', - 'payment_instrument' => 'Check', - 'contribution_status' => 'Completed', - 'financial_type' => 'Donation', - 'check_number' => '', - 'instrument_id' => '4', - 'cancel_date' => '', - 'id' => '1', - 'contribution_type_id' => '1', - 'line_items' => [ - '0' => [ - 'id' => '1', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '1', - 'contribution_id' => '1', - 'price_field_id' => '1', - 'label' => 'Contribution Amount', - 'qty' => '1.00', - 'unit_price' => '100.00', - 'line_total' => '100.00', - 'price_field_value_id' => '1', - 'financial_type_id' => '1', - 'non_deductible_amount' => '0.00', - 'tax_amount' => '0.00', - 'contribution_type_id' => '1', - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetOrder" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/OrderTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Participant/Create.ex.php b/civicrm/api/v3/examples/Participant/Create.ex.php deleted file mode 100644 index 16a7251ba6689ee5a36614347720b7c060be1751..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Participant/Create.ex.php +++ /dev/null @@ -1,104 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Participant.create API. - * - * @return array - * API result array - */ -function participant_create_example() { - $params = [ - 'contact_id' => 4, - 'event_id' => 3, - 'status_id' => 1, - 'role_id' => 1, - 'register_date' => '2007-07-21 00:00:00', - 'source' => 'Online Event Registration: API Testing', - 'custom_1' => 'custom string', - ]; - - try { - $result = civicrm_api3('Participant', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '4' => [ - 'id' => '4', - 'contact_id' => '4', - 'event_id' => '3', - 'status_id' => '1', - 'role_id' => '1', - 'register_date' => '20070721000000', - 'source' => 'Online Event Registration: API Testing', - 'fee_level' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'fee_amount' => '', - 'registered_by_id' => '', - 'discount_id' => '', - 'fee_currency' => '', - 'campaign_id' => '', - 'discount_amount' => '', - 'cart_id' => '', - 'must_wait' => '', - 'transferred_to_contact_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateWithCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Participant/Get.ex.php b/civicrm/api/v3/examples/Participant/Get.ex.php deleted file mode 100644 index 035406a6d01e9cfa3cdd2c9523ba631615b9449c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Participant/Get.ex.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Participant.get API. - * - * @return array - * API result array - */ -function participant_get_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Participant', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '4', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'event_id' => '6', - 'event_title' => 'Annual CiviCRM meet', - 'event_start_date' => '2013-07-29 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'default_role_id' => '1', - 'participant_id' => '1', - 'participant_fee_level' => '', - 'participant_fee_amount' => '', - 'participant_fee_currency' => '', - 'event_type' => 'Conference', - 'participant_status_id' => '2', - 'participant_status' => 'Attended', - 'participant_role_id' => '1', - 'participant_role' => 'Attendee', - 'participant_register_date' => '2007-02-19 00:00:00', - 'participant_source' => 'Wimbeldon', - 'participant_note' => '', - 'participant_is_pay_later' => 0, - 'participant_is_test' => 0, - 'participant_registered_by_id' => '', - 'participant_discount_name' => '', - 'participant_campaign_id' => '', - 'id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetParamsAsIdOnly" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Participant/NestedDelete.ex.php b/civicrm/api/v3/examples/Participant/NestedDelete.ex.php deleted file mode 100644 index bf494615488faa5f8d2d86f040358f891e98b0ad..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Participant/NestedDelete.ex.php +++ /dev/null @@ -1,151 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Participant.get API. - * - * Criteria delete by nesting a GET & a DELETE. - * - * @return array - * API result array - */ -function participant_get_example() { - $params = [ - 'contact_id' => 6, - 'api.participant.delete' => 1, - ]; - - try { - $result = civicrm_api3('Participant', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '2' => [ - 'contact_id' => '6', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'event_id' => '40', - 'event_title' => 'Annual CiviCRM meet', - 'event_start_date' => '2013-07-29 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'default_role_id' => '1', - 'participant_id' => '2', - 'participant_fee_level' => '', - 'participant_fee_amount' => '', - 'participant_fee_currency' => '', - 'event_type' => 'Conference', - 'participant_status_id' => '2', - 'participant_status' => 'Attended', - 'participant_role_id' => '1', - 'participant_role' => 'Attendee', - 'participant_register_date' => '2007-02-19 00:00:00', - 'participant_source' => 'Wimbeldon', - 'participant_note' => '', - 'participant_is_pay_later' => 0, - 'participant_is_test' => 0, - 'participant_registered_by_id' => '1', - 'participant_discount_name' => '', - 'participant_campaign_id' => '', - 'id' => '2', - 'api.participant.delete' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ], - ], - '3' => [ - 'contact_id' => '6', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'event_id' => '40', - 'event_title' => 'Annual CiviCRM meet', - 'event_start_date' => '2013-07-29 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'default_role_id' => '1', - 'participant_id' => '3', - 'participant_fee_level' => '', - 'participant_fee_amount' => '', - 'participant_fee_currency' => '', - 'event_type' => 'Conference', - 'participant_status_id' => '2', - 'participant_status' => 'Attended', - 'participant_role_id' => '1', - 'participant_role' => 'Attendee', - 'participant_register_date' => '2007-02-19 00:00:00', - 'participant_source' => 'Wimbeldon', - 'participant_note' => '', - 'participant_is_pay_later' => 0, - 'participant_is_test' => 0, - 'participant_registered_by_id' => '', - 'participant_discount_name' => '', - 'participant_campaign_id' => '', - 'id' => '3', - 'api.participant.delete' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testNestedDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Participant/NestedEventGet.ex.php b/civicrm/api/v3/examples/Participant/NestedEventGet.ex.php deleted file mode 100644 index 921653f471f30398781c9bcaf9635da08bc8b2f9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Participant/NestedEventGet.ex.php +++ /dev/null @@ -1,155 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Participant.get API. - * - * Demonstrates use of nested get to fetch event data with participant records. - * - * @return array - * API result array - */ -function participant_get_example() { - $params = [ - 'id' => 1, - 'api.event.get' => 1, - ]; - - try { - $result = civicrm_api3('Participant', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '4', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'event_id' => '7', - 'event_title' => 'Annual CiviCRM meet', - 'event_start_date' => '2013-07-29 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'default_role_id' => '1', - 'participant_id' => '1', - 'participant_fee_level' => '', - 'participant_fee_amount' => '', - 'participant_fee_currency' => '', - 'event_type' => 'Conference', - 'participant_status_id' => '2', - 'participant_status' => 'Attended', - 'participant_role_id' => '1', - 'participant_role' => 'Attendee', - 'participant_register_date' => '2007-02-19 00:00:00', - 'participant_source' => 'Wimbeldon', - 'participant_note' => '', - 'participant_is_pay_later' => 0, - 'participant_is_test' => 0, - 'participant_registered_by_id' => '', - 'participant_discount_name' => '', - 'participant_campaign_id' => '', - 'id' => '1', - 'api.event.get' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 7, - 'values' => [ - '0' => [ - 'id' => '7', - 'title' => 'Annual CiviCRM meet', - 'event_title' => 'Annual CiviCRM meet', - 'summary' => 'If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now', - 'description' => 'This event is intended to give brief idea about progress of CiviCRM and giving solutions to common user issues', - 'event_description' => 'This event is intended to give brief idea about progress of CiviCRM and giving solutions to common user issues', - 'event_type_id' => '1', - 'is_public' => '1', - 'start_date' => '2013-07-29 00:00:00', - 'event_start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'event_end_date' => '2013-08-04 00:00:00', - 'is_online_registration' => '1', - 'registration_start_date' => '2008-06-01 00:00:00', - 'registration_end_date' => '2008-10-15 00:00:00', - 'max_participants' => '100', - 'event_full_text' => 'Sorry! We are already full', - 'is_monetary' => 0, - 'is_map' => 0, - 'is_active' => '1', - 'is_show_location' => 0, - 'default_role_id' => '1', - 'is_email_confirm' => '1', - 'is_pay_later' => 0, - 'is_partial_payment' => 0, - 'is_multiple_registrations' => 0, - 'max_additional_participants' => 0, - 'allow_same_participant_emails' => 0, - 'allow_selfcancelxfer' => 0, - 'selfcancelxfer_time' => 0, - 'is_template' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'is_share' => '1', - 'is_confirm_enabled' => '1', - 'is_billing_required' => 0, - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetNestedEventGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ParticipantPayment/Create.ex.php b/civicrm/api/v3/examples/ParticipantPayment/Create.ex.php deleted file mode 100644 index e94e5914c30e2aab275c2603eb1e6ef9d565a8ce..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ParticipantPayment/Create.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ParticipantPayment.create API. - * - * @return array - * API result array - */ -function participant_payment_create_example() { - $params = [ - 'participant_id' => 1, - 'contribution_id' => 1, - ]; - - try { - $result = civicrm_api3('ParticipantPayment', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_payment_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'participant_id' => '1', - 'contribution_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPaymentCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantPaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ParticipantPayment/Delete.ex.php b/civicrm/api/v3/examples/ParticipantPayment/Delete.ex.php deleted file mode 100644 index 0068ea6d24c47eb9f80b9940c3f48d97780ba194..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ParticipantPayment/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ParticipantPayment.delete API. - * - * @return array - * API result array - */ -function participant_payment_delete_example() { - $params = [ - 'id' => 6, - ]; - - try { - $result = civicrm_api3('ParticipantPayment', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_payment_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPaymentDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantPaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ParticipantPayment/Get.ex.php b/civicrm/api/v3/examples/ParticipantPayment/Get.ex.php deleted file mode 100644 index 52c297b5abc915e6e5d0d5fd31628e99fd93ba39..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ParticipantPayment/Get.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ParticipantPayment.get API. - * - * @return array - * API result array - */ -function participant_payment_get_example() { - $params = [ - 'participant_id' => 32, - 'contribution_id' => 7, - ]; - - try { - $result = civicrm_api3('ParticipantPayment', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_payment_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 7, - 'values' => [ - '7' => [ - 'id' => '7', - 'participant_id' => '32', - 'contribution_id' => '7', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantPaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ParticipantStatusType/Create.ex.php b/civicrm/api/v3/examples/ParticipantStatusType/Create.ex.php deleted file mode 100644 index 4a5f4199473219e446013d92a83b510a746d4060..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ParticipantStatusType/Create.ex.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ParticipantStatusType.create API. - * - * @return array - * API result array - */ -function participant_status_type_create_example() { - $params = [ - 'name' => 'test status', - 'label' => 'I am a test', - 'class' => 'Positive', - 'is_reserved' => 0, - 'is_active' => 1, - 'is_counted' => 1, - 'visibility_id' => 1, - 'weight' => 10, - ]; - - try { - $result = civicrm_api3('ParticipantStatusType', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_status_type_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 18, - 'values' => [ - '18' => [ - 'id' => '18', - 'name' => 'test status', - 'label' => 'I am a test', - 'class' => 'Positive', - 'is_reserved' => 0, - 'is_active' => '1', - 'is_counted' => '1', - 'weight' => '10', - 'visibility_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetParticipantStatusType" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantStatusTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ParticipantStatusType/Delete.ex.php b/civicrm/api/v3/examples/ParticipantStatusType/Delete.ex.php deleted file mode 100644 index 9cb675fbfdc2989e6cf47cae333582031d086f6f..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ParticipantStatusType/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ParticipantStatusType.delete API. - * - * @return array - * API result array - */ -function participant_status_type_delete_example() { - $params = [ - 'id' => 19, - ]; - - try { - $result = civicrm_api3('ParticipantStatusType', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_status_type_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => TRUE, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteParticipantStatusType" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantStatusTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ParticipantStatusType/Get.ex.php b/civicrm/api/v3/examples/ParticipantStatusType/Get.ex.php deleted file mode 100644 index ccc098806407f36185a779959e2477f709e7c868..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ParticipantStatusType/Get.ex.php +++ /dev/null @@ -1,95 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ParticipantStatusType.get API. - * - * @return array - * API result array - */ -function participant_status_type_get_example() { - $params = [ - 'name' => 'test status', - 'label' => 'I am a test', - 'class' => 'Positive', - 'is_reserved' => 0, - 'is_active' => 1, - 'is_counted' => 1, - 'visibility_id' => 1, - 'weight' => 10, - ]; - - try { - $result = civicrm_api3('ParticipantStatusType', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function participant_status_type_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 18, - 'values' => [ - '18' => [ - 'id' => '18', - 'name' => 'test status', - 'label' => 'I am a test', - 'class' => 'Positive', - 'is_reserved' => 0, - 'is_active' => '1', - 'is_counted' => '1', - 'weight' => '10', - 'visibility_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetParticipantStatusType" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ParticipantStatusTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Payment/Cancel.ex.php b/civicrm/api/v3/examples/Payment/Cancel.ex.php deleted file mode 100644 index 323aaad977f8cd36fb1d80036e54f802a5ad9a17..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Payment/Cancel.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Payment.cancel API. - * - * @return array - * API result array - */ -function payment_cancel_example() { - $params = [ - 'id' => 1, - 'check_permissions' => TRUE, - ]; - - try { - $result = civicrm_api3('Payment', 'cancel', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_cancel_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'from_financial_account_id' => '7', - 'to_financial_account_id' => '6', - 'trxn_date' => '20220117131002', - 'total_amount' => '-150', - 'fee_amount' => 0, - 'net_amount' => '-150', - 'currency' => 'USD', - 'is_payment' => '1', - 'trxn_id' => '', - 'trxn_result_code' => '', - 'status_id' => '7', - 'payment_processor_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCancelPayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Payment/Create.ex.php b/civicrm/api/v3/examples/Payment/Create.ex.php deleted file mode 100644 index c1b14fd8e0c236dba08ecc2a6a4b294c9a207b99..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Payment/Create.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Payment.create API. - * - * @return array - * API result array - */ -function payment_create_example() { - $params = [ - 'contribution_id' => 1, - 'total_amount' => 50, - ]; - - try { - $result = civicrm_api3('Payment', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'from_financial_account_id' => '7', - 'to_financial_account_id' => '6', - 'trxn_date' => '20220117130949', - 'total_amount' => '50', - 'fee_amount' => 0, - 'net_amount' => '50', - 'currency' => 'USD', - 'is_payment' => '1', - 'trxn_id' => '', - 'trxn_result_code' => '', - 'status_id' => '1', - 'payment_processor_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePaymentNoLineItems" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Payment/CreatePaymentWithLineItems.ex.php b/civicrm/api/v3/examples/Payment/CreatePaymentWithLineItems.ex.php deleted file mode 100644 index c611d3ca7a768088f5a2625240b8bc28da9beb5a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Payment/CreatePaymentWithLineItems.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Payment.create API. - * - * Payment with line item. - * - * @return array - * API result array - */ -function payment_create_example() { - $params = [ - 'contribution_id' => 1, - 'total_amount' => 50, - 'line_item' => [ - '0' => [ - '1' => 10, - ], - '1' => [ - '2' => 40, - ], - ], - ]; - - try { - $result = civicrm_api3('Payment', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'from_financial_account_id' => '7', - 'to_financial_account_id' => '6', - 'trxn_date' => '20220117130953', - 'total_amount' => '50', - 'fee_amount' => 0, - 'net_amount' => '50', - 'currency' => 'USD', - 'is_payment' => '1', - 'trxn_id' => '', - 'trxn_result_code' => '', - 'status_id' => '1', - 'payment_processor_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePaymentLineItems" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Payment/Delete.ex.php b/civicrm/api/v3/examples/Payment/Delete.ex.php deleted file mode 100644 index 63a7fc79ceddddf2acfea705bbc52ce364550644..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Payment/Delete.ex.php +++ /dev/null @@ -1,76 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Payment.delete API. - * - * @return array - * API result array - */ -function payment_delete_example() { - $params = [ - 'id' => '1', - 'check_permissions' => TRUE, - ]; - - try { - $result = civicrm_api3('Payment', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Payment/Get.ex.php b/civicrm/api/v3/examples/Payment/Get.ex.php deleted file mode 100644 index 7028841c0c8e6f78b3d6ded998377dd9708bdd6b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Payment/Get.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Payment.get API. - * - * @return array - * API result array - */ -function payment_get_example() { - $params = [ - 'contribution_id' => 1, - 'check_permissions' => TRUE, - ]; - - try { - $result = civicrm_api3('Payment', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'to_financial_account_id' => '6', - 'trxn_date' => '2010-01-20 00:00:00', - 'total_amount' => '100.00', - 'fee_amount' => '0.00', - 'net_amount' => '100.00', - 'currency' => 'USD', - 'is_payment' => '1', - 'trxn_id' => '23456', - 'status_id' => '1', - 'payment_instrument_id' => '4', - 'contribution_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetPayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Payment/UpdatePayment.ex.php b/civicrm/api/v3/examples/Payment/UpdatePayment.ex.php deleted file mode 100644 index bd40516ee7461db0808a2a64e39ebe2fec10af6c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Payment/UpdatePayment.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Payment.create API. - * - * Update Payment. - * - * @return array - * API result array - */ -function payment_create_example() { - $params = [ - 'contribution_id' => 1, - 'total_amount' => 100, - 'id' => 2, - 'check_permissions' => TRUE, - ]; - - try { - $result = civicrm_api3('Payment', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '4' => [ - 'id' => '4', - 'from_financial_account_id' => '7', - 'to_financial_account_id' => '6', - 'trxn_date' => '', - 'total_amount' => '100', - 'fee_amount' => 0, - 'net_amount' => '100', - 'currency' => 'USD', - 'is_payment' => '1', - 'trxn_id' => '', - 'trxn_result_code' => '', - 'status_id' => '1', - 'payment_processor_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUpdatePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php b/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php deleted file mode 100644 index 84862dfc114857a8cb259d5702dd5de8b42e6037..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentProcessor/Create.ex.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentProcessor.create API. - * - * @return array - * API result array - */ -function payment_processor_create_example() { - $params = [ - 'name' => 'API Test PP', - 'title' => 'API Test PP', - 'payment_processor_type_id' => 1, - 'class_name' => 'CRM_Core_Payment_APITest', - 'is_recur' => 0, - 'domain_id' => 1, - ]; - - try { - $result = civicrm_api3('PaymentProcessor', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_processor_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'domain_id' => '1', - 'name' => 'API Test PP', - 'title' => '', - 'description' => '', - 'payment_processor_type_id' => '1', - 'is_active' => '1', - 'is_default' => 0, - 'is_test' => 0, - 'user_name' => '', - 'password' => '', - 'signature' => '', - 'url_site' => '', - 'url_api' => '', - 'url_recur' => '', - 'url_button' => '', - 'subject' => '', - 'class_name' => 'CRM_Core_Payment_APITest', - 'billing_mode' => '1', - 'is_recur' => 0, - 'payment_type' => '1', - 'payment_instrument_id' => '2', - 'accepted_credit_cards' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPaymentProcessorCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentProcessorTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentProcessor/Delete.ex.php b/civicrm/api/v3/examples/PaymentProcessor/Delete.ex.php deleted file mode 100644 index 57fa4002a73756e76d5b181a930ad9d415909bb4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentProcessor/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentProcessor.delete API. - * - * @return array - * API result array - */ -function payment_processor_delete_example() { - $params = [ - 'id' => 5, - ]; - - try { - $result = civicrm_api3('PaymentProcessor', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_processor_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPaymentProcessorDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentProcessorTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentProcessorType/Create.ex.php b/civicrm/api/v3/examples/PaymentProcessorType/Create.ex.php deleted file mode 100644 index b5a753c4d83efaa696dc2e5702ec29dd38ac4ff4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentProcessorType/Create.ex.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentProcessorType.create API. - * - * @return array - * API result array - */ -function payment_processor_type_create_example() { - $params = [ - 'sequential' => 1, - 'name' => 'API_Test_PP', - 'title' => 'API Test Payment Processor', - 'class_name' => 'CRM_Core_Payment_APITest', - 'billing_mode' => 'form', - 'is_recur' => 0, - ]; - - try { - $result = civicrm_api3('PaymentProcessorType', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_processor_type_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 10, - 'values' => [ - '0' => [ - 'id' => '10', - 'name' => 'API_Test_PP', - 'title' => 'API Test Payment Processor', - 'description' => '', - 'is_active' => '1', - 'is_default' => '', - 'user_name_label' => '', - 'password_label' => '', - 'signature_label' => '', - 'subject_label' => '', - 'class_name' => 'CRM_Core_Payment_APITest', - 'url_site_default' => '', - 'url_api_default' => '', - 'url_recur_default' => '', - 'url_button_default' => '', - 'url_site_test_default' => '', - 'url_api_test_default' => '', - 'url_recur_test_default' => '', - 'url_button_test_default' => '', - 'billing_mode' => '1', - 'is_recur' => 0, - 'payment_type' => '', - 'payment_instrument_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPaymentProcessorTypeCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentProcessorTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentProcessorType/Delete.ex.php b/civicrm/api/v3/examples/PaymentProcessorType/Delete.ex.php deleted file mode 100644 index c1af30e58e93dfab61ee6ae982ba8cec98a2c53c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentProcessorType/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentProcessorType.delete API. - * - * @return array - * API result array - */ -function payment_processor_type_delete_example() { - $params = [ - 'id' => 13, - ]; - - try { - $result = civicrm_api3('PaymentProcessorType', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_processor_type_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => TRUE, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPaymentProcessorTypeDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentProcessorTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentToken/Create.ex.php b/civicrm/api/v3/examples/PaymentToken/Create.ex.php deleted file mode 100644 index e16ea0be4e8b08b3ee181625745b7ad69b1f6f28..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentToken/Create.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentToken.create API. - * - * Create a payment token - Note use of relative dates here:. - * @link http://www.php.net/manual/en/datetime.formats.relative.php. - * - * @return array - * API result array - */ -function payment_token_create_example() { - $params = [ - 'token' => 'fancy-token-xxxx', - 'contact_id' => 4, - 'created_id' => 4, - 'payment_processor_id' => 2, - ]; - - try { - $result = civicrm_api3('PaymentToken', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_token_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'contact_id' => '4', - 'payment_processor_id' => '2', - 'token' => 'fancy-token-xxxx', - 'created_date' => '2013-07-28 08:49:19', - 'created_id' => '4', - 'expiry_date' => '', - 'email' => '', - 'billing_first_name' => '', - 'billing_middle_name' => '', - 'billing_last_name' => '', - 'masked_account_number' => '', - 'ip_address' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePaymentToken" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTokenTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentToken/Delete.ex.php b/civicrm/api/v3/examples/PaymentToken/Delete.ex.php deleted file mode 100644 index 9fa39c5d12557828f4e33f1a640980411e0b7b30..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentToken/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentToken.delete API. - * - * @return array - * API result array - */ -function payment_token_delete_example() { - $params = [ - 'id' => 6, - ]; - - try { - $result = civicrm_api3('PaymentToken', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_token_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePaymentToken" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTokenTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PaymentToken/Get.ex.php b/civicrm/api/v3/examples/PaymentToken/Get.ex.php deleted file mode 100644 index 9995a23d746a166ec742095b8d391dd7735665b6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PaymentToken/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PaymentToken.get API. - * - * @return array - * API result array - */ -function payment_token_get_example() { - $params = [ - 'token' => 'fancy-token-xxxx', - 'contact_id' => 6, - 'created_id' => 6, - 'payment_processor_id' => 4, - ]; - - try { - $result = civicrm_api3('PaymentToken', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function payment_token_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '4' => [ - 'id' => '4', - 'contact_id' => '6', - 'payment_processor_id' => '4', - 'token' => 'fancy-token-xxxx', - 'created_date' => '2013-07-28 08:49:19', - 'created_id' => '6', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetPaymentToken" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PaymentTokenTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pcp/ChainedGetDelete.ex.php b/civicrm/api/v3/examples/Pcp/ChainedGetDelete.ex.php deleted file mode 100644 index 4901e25b00e098c20045eece2ff95335aaebe972..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pcp/ChainedGetDelete.ex.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pcp.get API. - * - * Demonstrates get + delete in the same call. - * - * @return array - * API result array - */ -function pcp_get_example() { - $params = [ - 'title' => 'Pcp title', - 'api.Pcp.delete' => 1, - ]; - - try { - $result = civicrm_api3('Pcp', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pcp_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_id' => '1', - 'status_id' => 0, - 'title' => 'Pcp title', - 'page_id' => '1', - 'page_type' => 'contribute', - 'pcp_block_id' => '1', - 'is_thermometer' => 0, - 'is_honor_roll' => 0, - 'currency' => 'USD', - 'is_active' => 0, - 'is_notify' => 0, - 'api.Pcp.delete' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ], - ], - '5' => [ - 'id' => '5', - 'contact_id' => '1', - 'status_id' => 0, - 'title' => 'Pcp title', - 'page_id' => '1', - 'page_type' => 'contribute', - 'pcp_block_id' => '1', - 'is_thermometer' => 0, - 'is_honor_roll' => 0, - 'currency' => 'USD', - 'is_active' => 0, - 'is_notify' => 0, - 'api.Pcp.delete' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetPcpChainDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PcpTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pcp/Create.ex.php b/civicrm/api/v3/examples/Pcp/Create.ex.php deleted file mode 100644 index c7325b8bdbaec15ec5370c6ef697bd4bd159c98a..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pcp/Create.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pcp.create API. - * - * @return array - * API result array - */ -function pcp_create_example() { - $params = [ - 'title' => 'Pcp title', - 'contact_id' => 1, - 'page_id' => 1, - 'pcp_block_id' => 1, - ]; - - try { - $result = civicrm_api3('Pcp', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pcp_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '1', - 'status_id' => 0, - 'title' => 'Pcp title', - 'intro_text' => '', - 'page_text' => '', - 'donate_link_text' => '', - 'page_id' => '1', - 'page_type' => '', - 'pcp_block_id' => '1', - 'is_thermometer' => '', - 'is_honor_roll' => '', - 'goal_amount' => '', - 'currency' => 'USD', - 'is_active' => '', - 'is_notify' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePcp" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PcpTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pcp/Delete.ex.php b/civicrm/api/v3/examples/Pcp/Delete.ex.php deleted file mode 100644 index 380c889e8e63a2e960c4ee70db021f8cb03b0fe4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pcp/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pcp.delete API. - * - * @return array - * API result array - */ -function pcp_delete_example() { - $params = [ - 'id' => 4, - ]; - - try { - $result = civicrm_api3('Pcp', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pcp_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePcp" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PcpTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pcp/Get.ex.php b/civicrm/api/v3/examples/Pcp/Get.ex.php deleted file mode 100644 index 5e87d5edd1ab3ae26b18534e6e37ece9fe477162..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pcp/Get.ex.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pcp.get API. - * - * @return array - * API result array - */ -function pcp_get_example() { - $params = [ - 'title' => 'Pcp title', - 'contact_id' => 1, - 'page_id' => 1, - 'pcp_block_id' => 1, - ]; - - try { - $result = civicrm_api3('Pcp', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pcp_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_id' => '1', - 'status_id' => 0, - 'title' => 'Pcp title', - 'page_id' => '1', - 'page_type' => 'contribute', - 'pcp_block_id' => '1', - 'is_thermometer' => 0, - 'is_honor_roll' => 0, - 'currency' => 'USD', - 'is_active' => 0, - 'is_notify' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetPcp" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PcpTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Phone/Create.ex.php b/civicrm/api/v3/examples/Phone/Create.ex.php deleted file mode 100644 index 3f236a9a13e58c21a484d3e429e8d67b91c85062..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Phone/Create.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Phone.create API. - * - * @return array - * API result array - */ -function phone_create_example() { - $params = [ - 'contact_id' => 5, - 'phone' => '(123) 456-7890', - 'is_primary' => TRUE, - 'phone_type_id' => 1, - ]; - - try { - $result = civicrm_api3('Phone', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function phone_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '4' => [ - 'id' => '4', - 'contact_id' => '5', - 'location_type_id' => '1', - 'is_primary' => '1', - 'is_billing' => '', - 'mobile_provider_id' => '', - 'phone' => '(123) 456-7890', - 'phone_ext' => '', - 'phone_numeric' => '', - 'phone_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePhoneDefaultLocation" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PhoneTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Phone/Delete.ex.php b/civicrm/api/v3/examples/Phone/Delete.ex.php deleted file mode 100644 index 19b8ef963de4dfad82c4b5747409576e0cca1c47..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Phone/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Phone.delete API. - * - * @return array - * API result array - */ -function phone_delete_example() { - $params = [ - 'id' => 6, - ]; - - try { - $result = civicrm_api3('Phone', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function phone_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePhone" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PhoneTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Phone/Get.ex.php b/civicrm/api/v3/examples/Phone/Get.ex.php deleted file mode 100644 index cce00a86f823728878aed9c91fb6d0d3ccb2fe80..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Phone/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Phone.get API. - * - * @return array - * API result array - */ -function phone_get_example() { - $params = [ - 'contact_id' => 12, - 'phone' => '(123) 456-7890', - ]; - - try { - $result = civicrm_api3('Phone', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function phone_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 8, - 'values' => [ - '8' => [ - 'id' => '8', - 'contact_id' => '12', - 'location_type_id' => '15', - 'is_primary' => '1', - 'is_billing' => 0, - 'phone' => '(123) 456-7890', - 'phone_numeric' => '1234567890', - 'phone_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PhoneTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Phone/GetOptions.ex.php b/civicrm/api/v3/examples/Phone/GetOptions.ex.php deleted file mode 100644 index 8a2149d399229053056a38ba4debcda9bed2135b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Phone/GetOptions.ex.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Phone.getoptions API. - * - * @return array - * API result array - */ -function phone_getoptions_example() { - $params = [ - 'field' => 'phone_type_id', - ]; - - try { - $result = civicrm_api3('Phone', 'getoptions', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function phone_getoptions_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '1' => 'Phone', - '2' => 'Mobile', - '3' => 'Fax', - '4' => 'Pager', - '5' => 'Voicemail', - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPhoneType" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ConstantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pledge/Create.ex.php b/civicrm/api/v3/examples/Pledge/Create.ex.php deleted file mode 100644 index 1e7949f88b1fa2e26a33f4f1eebf86ec33c96c99..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pledge/Create.ex.php +++ /dev/null @@ -1,115 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pledge.create API. - * - * @return array - * API result array - */ -function pledge_create_example() { - $params = [ - 'contact_id' => 12, - 'pledge_create_date' => '20220117', - 'start_date' => '20220117', - 'scheduled_date' => '20220119', - 'amount' => '100', - 'pledge_status_id' => '2', - 'pledge_financial_type_id' => '1', - 'pledge_original_installment_amount' => 20, - 'frequency_interval' => 5, - 'frequency_unit' => 'year', - 'frequency_day' => 15, - 'installments' => 5, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('Pledge', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'contact_id' => '12', - 'financial_type_id' => '1', - 'contribution_page_id' => '', - 'amount' => '100', - 'original_installment_amount' => '20', - 'currency' => 'USD', - 'frequency_unit' => 'year', - 'frequency_interval' => '5', - 'frequency_day' => '15', - 'installments' => '5', - 'start_date' => '2013-07-29 00:00:00', - 'create_date' => '20120130621222105', - 'acknowledge_date' => '', - 'modified_date' => '', - 'cancel_date' => '', - 'end_date' => '', - 'max_reminders' => '', - 'initial_reminder_day' => '', - 'additional_reminder_day' => '', - 'status_id' => '2', - 'is_test' => '', - 'campaign_id' => '', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePledge" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pledge/Delete.ex.php b/civicrm/api/v3/examples/Pledge/Delete.ex.php deleted file mode 100644 index 3b68b3f55e56a8459377644aed1680d3e5342524..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pledge/Delete.ex.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pledge.delete API. - * - * @return array - * API result array - */ -function pledge_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Pledge', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 'id', - 'values' => [ - 'id' => 1, - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePledgeUseID" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pledge/Get.ex.php b/civicrm/api/v3/examples/Pledge/Get.ex.php deleted file mode 100644 index 7f9d7708e7d0950371fe70413a9303a6d9bc6abf..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pledge/Get.ex.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pledge.get API. - * - * @return array - * API result array - */ -function pledge_get_example() { - $params = [ - 'pledge_id' => 1, - ]; - - try { - $result = civicrm_api3('Pledge', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'contact_id' => '5', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'pledge_id' => '1', - 'pledge_amount' => '100.00', - 'pledge_create_date' => '2022-01-17 00:00:00', - 'pledge_start_date' => '2022-01-17 00:00:00', - 'pledge_status' => 'Pending Label**', - 'pledge_total_paid' => '', - 'pledge_next_pay_date' => '2022-01-19 00:00:00', - 'pledge_next_pay_amount' => '20.00', - 'pledge_outstanding_amount' => '', - 'pledge_financial_type' => 'Donation', - 'pledge_contribution_page_id' => '', - 'pledge_frequency_interval' => '5', - 'pledge_frequency_unit' => 'year', - 'pledge_is_test' => 0, - 'pledge_campaign_id' => '', - 'pledge_currency' => 'USD', - 'id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetPledge" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Pledge/GetFilterHighDate.ex.php b/civicrm/api/v3/examples/Pledge/GetFilterHighDate.ex.php deleted file mode 100644 index 63bbc8c8e3c7aac54659f0dd2d857889f6d905e0..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Pledge/GetFilterHighDate.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Pledge.get API. - * - * demonstrates high date filter. - * - * @return array - * API result array - */ -function pledge_get_example() { - $params = [ - 'pledge_start_date_high' => '20220115131204', - ]; - - try { - $result = civicrm_api3('Pledge', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'contact_id' => '8', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'sort_name' => 'Anderson, Anthony', - 'display_name' => 'Mr. Anthony Anderson II', - 'pledge_id' => '2', - 'pledge_amount' => '100.00', - 'pledge_create_date' => '2022-01-17 00:00:00', - 'pledge_start_date' => '2021-03-05 00:00:00', - 'pledge_status' => 'Overdue', - 'pledge_total_paid' => '', - 'pledge_next_pay_date' => '2021-03-05 00:00:00', - 'pledge_next_pay_amount' => '20.00', - 'pledge_outstanding_amount' => '20.00', - 'pledge_financial_type' => 'Donation', - 'pledge_contribution_page_id' => '', - 'pledge_frequency_interval' => '5', - 'pledge_frequency_unit' => 'year', - 'pledge_is_test' => 0, - 'pledge_campaign_id' => '', - 'pledge_currency' => 'USD', - 'id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testPledgeGetReturnFilters" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PledgePayment/Create.ex.php b/civicrm/api/v3/examples/PledgePayment/Create.ex.php deleted file mode 100644 index 77fe0c235edaabaf81e66c31821f9c0e2839dd9e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PledgePayment/Create.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PledgePayment.create API. - * - * @return array - * API result array - */ -function pledge_payment_create_example() { - $params = [ - 'contact_id' => 3, - 'pledge_id' => 1, - 'contribution_id' => 1, - 'status_id' => 1, - 'actual_amount' => 20, - ]; - - try { - $result = civicrm_api3('PledgePayment', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_payment_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'pledge_id' => '1', - 'contribution_id' => '1', - 'scheduled_amount' => '', - 'actual_amount' => '20', - 'currency' => 'USD', - 'scheduled_date' => '', - 'reminder_date' => '', - 'reminder_count' => '', - 'status_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePledgePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgePaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PledgePayment/Delete.ex.php b/civicrm/api/v3/examples/PledgePayment/Delete.ex.php deleted file mode 100644 index a457f289946a3803c93132e44c00772a327f0648..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PledgePayment/Delete.ex.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PledgePayment.delete API. - * - * @return array - * API result array - */ -function pledge_payment_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('PledgePayment', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_payment_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 'id', - 'values' => [ - 'id' => 1, - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePledgePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgePaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PledgePayment/Get.ex.php b/civicrm/api/v3/examples/PledgePayment/Get.ex.php deleted file mode 100644 index e125994b6e4d122a8e3d5754726104128e23b74b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PledgePayment/Get.ex.php +++ /dev/null @@ -1,119 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PledgePayment.get API. - * - * @return array - * API result array - */ -function pledge_payment_get_example() { - $params = []; - - try { - $result = civicrm_api3('PledgePayment', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_payment_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '1' => [ - 'id' => '1', - 'pledge_id' => '1', - 'scheduled_amount' => '20.00', - 'currency' => 'USD', - 'scheduled_date' => '20130728085413', - 'reminder_count' => 0, - 'status_id' => '2', - ], - '2' => [ - 'id' => '2', - 'pledge_id' => '1', - 'scheduled_amount' => '20.00', - 'currency' => 'USD', - 'scheduled_date' => '20130728085413', - 'reminder_count' => 0, - 'status_id' => '2', - ], - '3' => [ - 'id' => '3', - 'pledge_id' => '1', - 'scheduled_amount' => '20.00', - 'currency' => 'USD', - 'scheduled_date' => '20130728085413', - 'reminder_count' => 0, - 'status_id' => '2', - ], - '4' => [ - 'id' => '4', - 'pledge_id' => '1', - 'scheduled_amount' => '20.00', - 'currency' => 'USD', - 'scheduled_date' => '20130728085413', - 'reminder_count' => 0, - 'status_id' => '2', - ], - '5' => [ - 'id' => '5', - 'pledge_id' => '1', - 'scheduled_amount' => '20.00', - 'currency' => 'USD', - 'scheduled_date' => '20130728085413', - 'reminder_count' => 0, - 'status_id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetPledgePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgePaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PledgePayment/Update.ex.php b/civicrm/api/v3/examples/PledgePayment/Update.ex.php deleted file mode 100644 index 1a529a30b5996ac1628874fbbbcaeb4c79b7d521..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PledgePayment/Update.ex.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PledgePayment.update API. - * - * @return array - * API result array - */ -function pledge_payment_update_example() { - $params = [ - 'id' => 1, - 'status_id' => 1, - ]; - - try { - $result = civicrm_api3('PledgePayment', 'update', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function pledge_payment_update_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'pledge_id' => '1', - 'contribution_id' => '1', - 'scheduled_amount' => '20.00', - 'actual_amount' => '20.00', - 'currency' => 'USD', - 'scheduled_date' => '20130728085413', - 'reminder_date' => '', - 'reminder_count' => 0, - 'status_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUpdatePledgePayment" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PledgePaymentTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceField/Create.ex.php b/civicrm/api/v3/examples/PriceField/Create.ex.php deleted file mode 100644 index 55b46038c22ae990e26e0431d4b8c05dc75952a4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceField/Create.ex.php +++ /dev/null @@ -1,101 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceField.create API. - * - * @return array - * API result array - */ -function price_field_create_example() { - $params = [ - 'price_set_id' => 3, - 'name' => 'grassvariety', - 'label' => 'Grass Variety', - 'html_type' => 'Text', - 'is_enter_qty' => 1, - 'is_active' => 1, - ]; - - try { - $result = civicrm_api3('PriceField', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_field_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'price_set_id' => '3', - 'name' => 'grassvariety', - 'label' => 'Grass Variety', - 'html_type' => 'Text', - 'is_enter_qty' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '', - 'is_display_amounts' => '', - 'options_per_line' => '', - 'is_active' => '1', - 'is_required' => '', - 'active_on' => '', - 'expire_on' => '', - 'javascript' => '', - 'visibility_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePriceField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceField/Delete.ex.php b/civicrm/api/v3/examples/PriceField/Delete.ex.php deleted file mode 100644 index 050116d70a198976478679e79899bed5f782d930..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceField/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceField.delete API. - * - * @return array - * API result array - */ -function price_field_delete_example() { - $params = [ - 'id' => 6, - ]; - - try { - $result = civicrm_api3('PriceField', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_field_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePriceField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceField/Get.ex.php b/civicrm/api/v3/examples/PriceField/Get.ex.php deleted file mode 100644 index 1be17d8f0d2074480d2719d26c12d0b11246a361..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceField/Get.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceField.get API. - * - * @return array - * API result array - */ -function price_field_get_example() { - $params = [ - 'name' => 'contribution_amount', - ]; - - try { - $result = civicrm_api3('PriceField', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_field_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'price_set_id' => '1', - 'name' => 'contribution_amount', - 'label' => 'Contribution Amount', - 'html_type' => 'Text', - 'is_enter_qty' => 0, - 'weight' => '1', - 'is_display_amounts' => '1', - 'options_per_line' => '1', - 'is_active' => '1', - 'is_required' => '1', - 'visibility_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetBasicPriceField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceFieldValue/Create.ex.php b/civicrm/api/v3/examples/PriceFieldValue/Create.ex.php deleted file mode 100644 index 2231e10ab9ae0207d59a7f379f10289ec271bfda..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceFieldValue/Create.ex.php +++ /dev/null @@ -1,105 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceFieldValue.create API. - * - * @return array - * API result array - */ -function price_field_value_create_example() { - $params = [ - 'price_field_id' => 13, - 'membership_type_id' => 5, - 'name' => 'memType1', - 'label' => 'memType1', - 'amount' => 90, - 'membership_num_terms' => 2, - 'is_active' => 1, - 'financial_type_id' => 2, - ]; - - try { - $result = civicrm_api3('PriceFieldValue', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_field_value_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 10, - 'values' => [ - '10' => [ - 'id' => '10', - 'price_field_id' => '13', - 'name' => 'memType1', - 'label' => 'memType1', - 'description' => '', - 'help_pre' => '', - 'help_post' => '', - 'amount' => '90', - 'count' => '', - 'max_value' => '', - 'weight' => '1', - 'membership_type_id' => '5', - 'membership_num_terms' => '2', - 'is_default' => '', - 'is_active' => '1', - 'financial_type_id' => '2', - 'non_deductible_amount' => '', - 'visibility_id' => '', - 'contribution_type_id' => '2', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreatePriceFieldValuewithMultipleTerms" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceFieldValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceFieldValue/Delete.ex.php b/civicrm/api/v3/examples/PriceFieldValue/Delete.ex.php deleted file mode 100644 index cc5ae1d553ca5494b58bd987c18aa513681a1097..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceFieldValue/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceFieldValue.delete API. - * - * @return array - * API result array - */ -function price_field_value_delete_example() { - $params = [ - 'id' => 7, - ]; - - try { - $result = civicrm_api3('PriceFieldValue', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_field_value_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePriceFieldValue" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceFieldValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceFieldValue/Get.ex.php b/civicrm/api/v3/examples/PriceFieldValue/Get.ex.php deleted file mode 100644 index 174c60b10214f4d7c434a959fb139f97fc3fbf78..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceFieldValue/Get.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceFieldValue.get API. - * - * @return array - * API result array - */ -function price_field_value_get_example() { - $params = [ - 'name' => 'contribution_amount', - ]; - - try { - $result = civicrm_api3('PriceFieldValue', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_field_value_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'price_field_id' => '1', - 'name' => 'contribution_amount', - 'label' => 'Contribution Amount', - 'amount' => '1.000000000', - 'weight' => '1', - 'is_default' => 0, - 'is_active' => '1', - 'financial_type_id' => '1', - 'non_deductible_amount' => '0.00', - 'visibility_id' => '1', - 'contribution_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetBasicPriceFieldValue" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceFieldValueTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceSet/Create.ex.php b/civicrm/api/v3/examples/PriceSet/Create.ex.php deleted file mode 100644 index a87d608fd6d4daeee5b749e97033a20002c73bbc..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceSet/Create.ex.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceSet.create API. - * - * @return array - * API result array - */ -function price_set_create_example() { - $params = [ - 'entity_table' => 'civicrm_event', - 'entity_id' => 1, - 'name' => 'event price', - 'title' => 'event price', - 'extends' => 1, - ]; - - try { - $result = civicrm_api3('PriceSet', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_set_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 6, - 'values' => [ - '6' => [ - 'id' => '6', - 'domain_id' => '', - 'name' => 'event price', - 'title' => 'event price', - 'is_active' => '', - 'help_pre' => '', - 'help_post' => '', - 'javascript' => '', - 'extends' => '1', - 'financial_type_id' => '', - 'is_quick_config' => '', - 'is_reserved' => '', - 'min_amount' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testEventPriceSet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceSetTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceSet/Delete.ex.php b/civicrm/api/v3/examples/PriceSet/Delete.ex.php deleted file mode 100644 index 6e96a460ae273722d9d9a3645bb5753f13a2a410..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceSet/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceSet.delete API. - * - * @return array - * API result array - */ -function price_set_delete_example() { - $params = [ - 'id' => 7, - ]; - - try { - $result = civicrm_api3('PriceSet', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_set_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeletePriceSet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceSetTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/PriceSet/Get.ex.php b/civicrm/api/v3/examples/PriceSet/Get.ex.php deleted file mode 100644 index 69f8546942eb36266db3166710e982c655d0fe47..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/PriceSet/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the PriceSet.get API. - * - * @return array - * API result array - */ -function price_set_get_example() { - $params = [ - 'name' => 'default_contribution_amount', - ]; - - try { - $result = civicrm_api3('PriceSet', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function price_set_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'name' => 'default_contribution_amount', - 'title' => 'Contribution Amount', - 'is_active' => '1', - 'extends' => '2', - 'is_quick_config' => '1', - 'is_reserved' => '1', - 'min_amount' => '0.00', - 'entity' => [], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetBasicPriceSet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/PriceSetTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Profile/Apply.ex.php b/civicrm/api/v3/examples/Profile/Apply.ex.php deleted file mode 100644 index abd71e114c1d322b6ecd29a4b9084a8e2011a48b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Profile/Apply.ex.php +++ /dev/null @@ -1,114 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Profile.apply API. - * - * @return array - * API result array - */ -function profile_apply_example() { - $params = [ - 'profile_id' => 31, - 'contact_id' => 5, - 'first_name' => 'abc2', - 'last_name' => 'xyz2', - 'email-Primary' => 'abc2.xyz2@gmail.com', - 'phone-1-1' => '022 321 826', - 'country-1' => '1013', - 'state_province-1' => '1000', - ]; - - try { - $result = civicrm_api3('Profile', 'apply', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function profile_apply_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 11, - 'values' => [ - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'contact_id' => 5, - 'version' => 3, - 'debug' => 1, - 'profile_id' => 31, - 'first_name' => 'abc2', - 'last_name' => 'xyz2', - 'email' => [ - '1' => [ - 'location_type_id' => '1', - 'is_primary' => 1, - 'email' => 'abc2.xyz2@gmail.com', - ], - ], - 'phone' => [ - '2' => [ - 'location_type_id' => '1', - 'is_primary' => 1, - 'phone_type_id' => '1', - 'phone' => '022 321 826', - ], - ], - 'address' => [ - '1' => [ - 'location_type_id' => '1', - 'is_primary' => 1, - 'country_id' => '1013', - 'state_province_id' => '1000', - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testProfileApply" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ProfileTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Profile/Get.ex.php b/civicrm/api/v3/examples/Profile/Get.ex.php deleted file mode 100644 index c67491aa48a83abc914130590d652e92dc677cd9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Profile/Get.ex.php +++ /dev/null @@ -1,112 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Profile.get API. - * - * @return array - * API result array - */ -function profile_get_example() { - $params = [ - 'profile_id' => [ - '0' => 16, - '1' => 1, - '2' => 'Billing', - ], - 'contact_id' => 5, - ]; - - try { - $result = civicrm_api3('Profile', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function profile_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 3, - 'values' => [ - '16' => [ - 'postal_code-1' => '90210', - 'state_province-1' => '1021', - 'country-1' => '1228', - 'phone-1-1' => '021 512 755', - 'email-Primary' => 'abc1.xyz1@yahoo.com', - 'last_name' => 'xyz1', - 'first_name' => 'abc1', - 'email-primary' => 'abc1.xyz1@yahoo.com', - ], - '1' => [ - 'first_name' => 'abc1', - 'last_name' => 'xyz1', - 'street_address-1' => '5 Saint Helier St', - 'city-1' => 'Gotham City', - 'postal_code-1' => '90210', - 'country-1' => '1228', - 'state_province-1' => '1021', - ], - 'Billing' => [ - 'billing_first_name' => 'abc1', - 'billing_middle_name' => 'J.', - 'billing_last_name' => 'xyz1', - 'billing_street_address-5' => '5 Saint Helier St', - 'billing_city-5' => 'Gotham City', - 'billing_state_province_id-5' => '1021', - 'billing_country_id-5' => '1228', - 'billing_postal_code-5' => '90210', - 'billing-email-5' => 'abc1.xyz1@yahoo.com', - 'email-5' => 'abc1.xyz1@yahoo.com', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testProfileGetMultiple" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ProfileTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Profile/GetFields.ex.php b/civicrm/api/v3/examples/Profile/GetFields.ex.php deleted file mode 100644 index 79902a2704e553b5c2433b58a5d14bf112dd0e77..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Profile/GetFields.ex.php +++ /dev/null @@ -1,343 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Profile.getfields API. - * - * demonstrates retrieving profile fields passing in an id. - * - * @return array - * API result array - */ -function profile_getfields_example() { - $params = [ - 'action' => 'submit', - 'profile_id' => 23, - ]; - - try { - $result = civicrm_api3('Profile', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function profile_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 9, - 'values' => [ - 'custom_1' => [ - 'id' => '1', - 'label' => '_addCustomFieldToProfile', - 'headerPattern' => '//', - 'title' => 'first_name', - 'custom_field_id' => '1', - 'groupTitle' => '_addCustomFieldToProfile', - 'data_type' => 'String', - 'name' => 'custom_1', - 'type' => 2, - 'html_type' => 'Text', - 'default_value' => 'defaultValue', - 'text_length' => '', - 'options_per_line' => '', - 'custom_group_id' => '1', - 'extends' => 'Contact', - 'is_search_range' => 0, - 'extends_entity_column_value' => '', - 'extends_entity_column_id' => '', - 'is_view' => 0, - 'is_multiple' => 0, - 'option_group_id' => '', - 'date_format' => '', - 'time_format' => '', - 'is_required' => 0, - 'table_name' => 'civicrm_value__addcustomfie_1', - 'column_name' => '_addcustomfieldtoprofile_1', - 'serialize' => 0, - 'where' => 'civicrm_value__addcustomfie_1._addcustomfieldtoprofile_1', - 'extends_table' => 'civicrm_contact', - 'search_table' => 'contact_a', - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'entity' => 'contact', - 'weight' => '1', - 'api.aliases' => [], - ], - 'postal_code-1' => [ - 'name' => 'postal_code', - 'type' => 2, - 'title' => 'State Province', - 'description' => 'Store both US (zip5) AND international postal codes. App is responsible for country/region appropriate validation.', - 'maxlength' => 64, - 'size' => 6, - 'import' => TRUE, - 'where' => 'civicrm_address.postal_code', - 'headerPattern' => '/postal|zip/i', - 'dataPattern' => '/\\d?\\d{4}(-\\d{4})?/', - 'export' => TRUE, - 'table_name' => 'civicrm_address', - 'entity' => 'address', - 'bao' => 'CRM_Core_BAO_Address', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 64, - 'size' => 6, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => 0, - 'help_pre' => '', - 'help_post' => '', - 'weight' => '2', - 'api.aliases' => [], - ], - 'state_province-1' => [ - 'name' => 'state_province_id', - 'type' => 1, - 'title' => 'State Province', - 'description' => 'Which State_Province does this address belong to.', - 'where' => 'civicrm_address.state_province_id', - 'table_name' => 'civicrm_address', - 'entity' => 'address', - 'bao' => 'CRM_Core_BAO_Address', - 'localizable' => 0, - 'localize_context' => 'province', - 'FKClassName' => 'CRM_Core_DAO_StateProvince', - 'html' => [ - 'type' => 'ChainSelect', - 'label' => 'State/Province', - 'controlField' => 'country_id', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'table' => 'civicrm_state_province', - 'keyColumn' => 'id', - 'labelColumn' => 'name', - 'abbrColumn' => 'abbreviation', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'FKApiName' => 'StateProvince', - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '3', - 'api.aliases' => [], - ], - 'country-1' => [ - 'name' => 'country_id', - 'type' => 1, - 'title' => 'Country', - 'description' => 'Which Country does this address belong to.', - 'where' => 'civicrm_address.country_id', - 'table_name' => 'civicrm_address', - 'entity' => 'address', - 'bao' => 'CRM_Core_BAO_Address', - 'localizable' => 0, - 'localize_context' => 'country', - 'FKClassName' => 'CRM_Core_DAO_Country', - 'html' => [ - 'type' => 'Select', - 'label' => 'Country', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'table' => 'civicrm_country', - 'keyColumn' => 'id', - 'labelColumn' => 'name', - 'nameColumn' => 'iso_code', - 'abbrColumn' => 'iso_code', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'FKApiName' => 'Country', - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '4', - 'api.aliases' => [], - ], - 'phone-1-1' => [ - 'name' => 'phone', - 'type' => 2, - 'title' => 'Phone', - 'description' => 'Complete phone number.', - 'maxlength' => 32, - 'size' => 20, - 'import' => TRUE, - 'where' => 'civicrm_phone.phone', - 'headerPattern' => '/phone/i', - 'dataPattern' => '/^[\\d\\(\\)\\-\\.\\s]+$/', - 'export' => TRUE, - 'table_name' => 'civicrm_phone', - 'entity' => 'phone', - 'bao' => 'CRM_Core_BAO_Phone', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Phone', - 'maxlength' => 32, - 'size' => 20, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '5', - 'api.aliases' => [], - ], - 'email-primary' => [ - 'name' => 'email', - 'type' => 2, - 'title' => 'Email', - 'description' => 'Email address', - 'maxlength' => 254, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_email.email', - 'headerPattern' => '/e.?mail/i', - 'dataPattern' => '/^[a-zA-Z][\\w\\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\\w\\.-]*[a-zA-Z0-9]\\.[a-zA-Z][a-zA-Z\\.]*[a-zA-Z]$/', - 'export' => TRUE, - 'rule' => 'email', - 'table_name' => 'civicrm_email', - 'entity' => 'email', - 'bao' => 'CRM_Core_BAO_Email', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 254, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '6', - 'api.aliases' => [ - '0' => 'email-Primary', - ], - ], - 'last_name' => [ - 'name' => 'last_name', - 'type' => 2, - 'title' => 'Last Name', - 'description' => 'Last Name.', - 'maxlength' => 64, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.last_name', - 'headerPattern' => '/^last|(l(ast\\s)?name)$/i', - 'dataPattern' => '/^\\w+(\\s\\w+)?+$/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'Last Name', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '7', - 'api.aliases' => [], - ], - 'first_name' => [ - 'name' => 'first_name', - 'type' => 2, - 'title' => 'First Name', - 'description' => 'First Name.', - 'maxlength' => 64, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_contact.first_name', - 'headerPattern' => '/^first|(f(irst\\s)?name)$/i', - 'dataPattern' => '/^\\w+$/', - 'export' => TRUE, - 'contactType' => 'Individual', - 'table_name' => 'civicrm_contact', - 'entity' => 'contact', - 'bao' => 'CRM_Contact_BAO_Contact', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'label' => 'First Name', - 'maxlength' => 64, - 'size' => 30, - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => '1', - 'help_pre' => '', - 'help_post' => '', - 'weight' => '8', - 'api.aliases' => [], - ], - 'profile_id' => [ - 'api.required' => TRUE, - 'title' => 'Profile ID', - 'name' => 'profile_id', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ProfileTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Profile/Submit.ex.php b/civicrm/api/v3/examples/Profile/Submit.ex.php deleted file mode 100644 index 571118dfde09997b70d62ae53a78e0cbe4242dcf..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Profile/Submit.ex.php +++ /dev/null @@ -1,134 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Profile.submit API. - * - * @return array - * API result array - */ -function profile_submit_example() { - $params = [ - 'profile_id' => 25, - 'contact_id' => 5, - 'first_name' => 'abc2', - 'last_name' => 'xyz2', - 'email-primary' => 'abc2.xyz2@gmail.com', - 'phone-1-1' => '022 321 826', - 'country-1' => '1013', - 'state_province-1' => '1000', - ]; - - try { - $result = civicrm_api3('Profile', 'submit', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function profile_submit_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 5, - 'values' => [ - '5' => [ - 'id' => '5', - 'contact_type' => 'Individual', - 'contact_sub_type' => '', - 'do_not_email' => 0, - 'do_not_phone' => 0, - 'do_not_mail' => 0, - 'do_not_sms' => 0, - 'do_not_trade' => 0, - 'is_opt_out' => 0, - 'legal_identifier' => '', - 'external_identifier' => '', - 'sort_name' => 'xyz2, abc2', - 'display_name' => 'Mr. abc2 xyz2 II', - 'nick_name' => '', - 'legal_name' => '', - 'image_URL' => '', - 'preferred_communication_method' => '', - 'preferred_language' => 'en_US', - 'hash' => '67eac7789eaee00', - 'api_key' => '', - 'first_name' => 'abc2', - 'middle_name' => 'J.', - 'last_name' => 'xyz2', - 'prefix_id' => '3', - 'suffix_id' => '3', - 'formal_title' => '', - 'communication_style_id' => '1', - 'email_greeting_id' => '1', - 'email_greeting_custom' => '', - 'email_greeting_display' => 'Dear abc1', - 'postal_greeting_id' => '1', - 'postal_greeting_custom' => '', - 'postal_greeting_display' => 'Dear abc1', - 'addressee_id' => '1', - 'addressee_custom' => '', - 'addressee_display' => 'Mr. abc1 J. xyz1 II', - 'job_title' => '', - 'gender_id' => '', - 'birth_date' => '', - 'is_deceased' => 0, - 'deceased_date' => '', - 'household_name' => '', - 'primary_contact_id' => '', - 'organization_name' => '', - 'sic_code' => '', - 'user_unique_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testProfileSubmit" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ProfileTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/BetweenRelationshipType.ex.php b/civicrm/api/v3/examples/Relationship/BetweenRelationshipType.ex.php deleted file mode 100644 index 63c181afb4c7ff68cd5a45bd0d2e3c175c8564da..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/BetweenRelationshipType.ex.php +++ /dev/null @@ -1,113 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.get API. - * - * Demonstrates use of BETWEEN filter. - * - * @return array - * API result array - */ -function relationship_get_example() { - $params = [ - 'relationship_type_id' => [ - 'BETWEEN' => [ - '0' => 56, - '1' => 58, - ], - ], - ]; - - try { - $result = civicrm_api3('Relationship', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 3, - 'values' => [ - '2' => [ - 'id' => '2', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '56', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - '3' => [ - 'id' => '3', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '57', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - '4' => [ - 'id' => '4', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '58', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetTypeOperators" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/Create.ex.php b/civicrm/api/v3/examples/Relationship/Create.ex.php deleted file mode 100644 index 75124b5db7e9d547e9e8f2904b24fefa37ca91f6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/Create.ex.php +++ /dev/null @@ -1,96 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.create API. - * - * @return array - * API result array - */ -function relationship_create_example() { - $params = [ - 'contact_id_a' => 3, - 'contact_id_b' => 5, - 'relationship_type_id' => 26, - 'start_date' => '2010-10-30', - 'end_date' => '2010-12-30', - 'is_active' => 1, - 'note' => 'note', - ]; - - try { - $result = civicrm_api3('Relationship', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '26', - 'start_date' => '2013-07-29 00:00:00', - 'end_date' => '2013-08-04 00:00:00', - 'is_active' => '1', - 'description' => '', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - 'case_id' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testRelationshipCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/Delete.ex.php b/civicrm/api/v3/examples/Relationship/Delete.ex.php deleted file mode 100644 index 2aff8d427862e95c268625fad529855531b8740b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.delete API. - * - * @return array - * API result array - */ -function relationship_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Relationship', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 'Deleted relationship successfully', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testRelationshipDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/Get.ex.php b/civicrm/api/v3/examples/Relationship/Get.ex.php deleted file mode 100644 index f48b9c04e484b187072180e8bfefdf5abd261f80..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/Get.ex.php +++ /dev/null @@ -1,89 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.get API. - * - * @return array - * API result array - */ -function relationship_get_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('Relationship', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '33', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - 'custom_1' => 'custom string', - 'custom_1_1' => 'custom string', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetWithCustom" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/INRelationshipType.ex.php b/civicrm/api/v3/examples/Relationship/INRelationshipType.ex.php deleted file mode 100644 index eab2a8acbc82728df0eddeaf0de11e27008285ed..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/INRelationshipType.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.get API. - * - * Demonstrates use of IN filter. - * - * @return array - * API result array - */ -function relationship_get_example() { - $params = [ - 'relationship_type_id' => [ - 'IN' => [ - '0' => 56, - '1' => 57, - ], - ], - ]; - - try { - $result = civicrm_api3('Relationship', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '56', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - '3' => [ - 'id' => '3', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '57', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetTypeOperators" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/NotBetweenRelationshipType.ex.php b/civicrm/api/v3/examples/Relationship/NotBetweenRelationshipType.ex.php deleted file mode 100644 index c4e79bd809851003615fa901277f22161828ee51..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/NotBetweenRelationshipType.ex.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.get API. - * - * Demonstrates use of Not BETWEEN filter. - * - * @return array - * API result array - */ -function relationship_get_example() { - $params = [ - 'relationship_type_id' => [ - 'NOT BETWEEN' => [ - '0' => 56, - '1' => 58, - ], - ], - ]; - - try { - $result = civicrm_api3('Relationship', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '55', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetTypeOperators" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/NotInRelationshipType.ex.php b/civicrm/api/v3/examples/Relationship/NotInRelationshipType.ex.php deleted file mode 100644 index 818472ecba6c29c488b80eaabee30c301cc7f97c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/NotInRelationshipType.ex.php +++ /dev/null @@ -1,103 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.get API. - * - * Demonstrates use of NOT IN filter. - * - * @return array - * API result array - */ -function relationship_get_example() { - $params = [ - 'relationship_type_id' => [ - 'NOT IN' => [ - '0' => 56, - '1' => 57, - ], - ], - ]; - - try { - $result = civicrm_api3('Relationship', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '55', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - '4' => [ - 'id' => '4', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '58', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetTypeOperators" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Relationship/filterIsCurrent.ex.php b/civicrm/api/v3/examples/Relationship/filterIsCurrent.ex.php deleted file mode 100644 index 452e7005a4402abe766f166d0d2ec3eec84102fc..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Relationship/filterIsCurrent.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Relationship.get API. - * - * Demonstrates is_current filter. - * - * @return array - * API result array - */ -function relationship_get_example() { - $params = [ - 'filters' => [ - 'is_current' => 1, - ], - ]; - - try { - $result = civicrm_api3('Relationship', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'contact_id_a' => '3', - 'contact_id_b' => '5', - 'relationship_type_id' => '53', - 'start_date' => '2013-07-29 00:00:00', - 'is_active' => '1', - 'is_permission_a_b' => 0, - 'is_permission_b_a' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetIsCurrent" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/RelationshipType/Create.ex.php b/civicrm/api/v3/examples/RelationshipType/Create.ex.php deleted file mode 100644 index cfc602faf15a26f28db7dff0cf7ebfa1fd2b76be..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/RelationshipType/Create.ex.php +++ /dev/null @@ -1,97 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the RelationshipType.create API. - * - * @return array - * API result array - */ -function relationship_type_create_example() { - $params = [ - 'name_a_b' => 'Relation 1 for relationship type create', - 'name_b_a' => 'Relation 2 for relationship type create', - 'contact_type_a' => 'Individual', - 'contact_type_b' => 'Organization', - 'is_reserved' => 1, - 'is_active' => 1, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('RelationshipType', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_type_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'name_a_b' => 'Relation 1 for relationship type create', - 'label_a_b' => 'Relation 1 for relationship type create', - 'name_b_a' => 'Relation 2 for relationship type create', - 'label_b_a' => 'Relation 2 for relationship type create', - 'description' => '', - 'contact_type_a' => 'Individual', - 'contact_type_b' => 'Organization', - 'contact_sub_type_a' => '', - 'contact_sub_type_b' => '', - 'is_reserved' => '1', - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testRelationshipTypeCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/RelationshipType/Delete.ex.php b/civicrm/api/v3/examples/RelationshipType/Delete.ex.php deleted file mode 100644 index f4cddd502076757beb167be1acadbd1462eba1c9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/RelationshipType/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the RelationshipType.delete API. - * - * @return array - * API result array - */ -function relationship_type_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('RelationshipType', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function relationship_type_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testRelationshipTypeDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/RelationshipTypeTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ReportTemplate/Getrows.ex.php b/civicrm/api/v3/examples/ReportTemplate/Getrows.ex.php deleted file mode 100644 index d948f5019b75992641692df5ac5e4da07001e87e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ReportTemplate/Getrows.ex.php +++ /dev/null @@ -1,153 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ReportTemplate.getrows API. - * - * Retrieve rows from a mailing opened report template. - * - * @return array - * API result array - */ -function report_template_getrows_example() { - $params = [ - 'report_id' => 'Mailing/opened', - 'options' => [ - 'metadata' => [ - '0' => 'labels', - '1' => 'title', - ], - ], - ]; - - try { - $result = civicrm_api3('ReportTemplate', 'getrows', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function report_template_getrows_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'values' => [ - '0' => [ - 'civicrm_contact_id' => '102', - 'civicrm_contact_sort_name' => 'One, Test', - 'civicrm_mailing_mailing_name' => 'Second Test Mailing Events', - 'civicrm_mailing_mailing_name_alias' => 'Second Test Mailing Events', - 'civicrm_mailing_mailing_subject' => 'Hello again, {contact.display_name}', - 'civicrm_mailing_event_opened_id' => '17', - 'civicrm_mailing_event_opened_time_stamp' => '2011-05-26 13:23:22', - 'class' => '', - 'civicrm_contact_sort_name_link' => '/index.php?q=civicrm/contact/view&reset=1&cid=102', - 'civicrm_contact_sort_name_hover' => 'View Contact details for this contact.', - ], - '1' => [ - 'civicrm_contact_id' => '109', - 'civicrm_contact_sort_name' => 'Five, Test', - 'civicrm_mailing_mailing_name' => 'First Mailing Events', - 'civicrm_mailing_mailing_name_alias' => 'First Mailing Events', - 'civicrm_mailing_mailing_subject' => 'Hello {contact.display_name}', - 'civicrm_mailing_event_opened_id' => '9', - 'civicrm_mailing_event_opened_time_stamp' => '2011-05-26 13:19:03', - 'class' => '', - 'civicrm_contact_sort_name_link' => '/index.php?q=civicrm/contact/view&reset=1&cid=109', - 'civicrm_contact_sort_name_hover' => 'View Contact details for this contact.', - ], - '2' => [ - 'civicrm_contact_id' => '110', - 'civicrm_contact_sort_name' => 'Six, Test', - 'civicrm_mailing_mailing_name' => 'First Mailing Events', - 'civicrm_mailing_mailing_name_alias' => 'First Mailing Events', - 'civicrm_mailing_mailing_subject' => 'Hello {contact.display_name}', - 'civicrm_mailing_event_opened_id' => '5', - 'civicrm_mailing_event_opened_time_stamp' => '2011-05-26 13:17:54', - 'class' => '', - 'civicrm_contact_sort_name_link' => '/index.php?q=civicrm/contact/view&reset=1&cid=110', - 'civicrm_contact_sort_name_hover' => 'View Contact details for this contact.', - ], - '3' => [ - 'civicrm_contact_id' => '111', - 'civicrm_contact_sort_name' => 'Seven, Test', - 'civicrm_mailing_mailing_name' => 'First Mailing Events', - 'civicrm_mailing_mailing_name_alias' => 'First Mailing Events', - 'civicrm_mailing_mailing_subject' => 'Hello {contact.display_name}', - 'civicrm_mailing_event_opened_id' => '15', - 'civicrm_mailing_event_opened_time_stamp' => '2011-05-26 13:20:59', - 'class' => '', - 'civicrm_contact_sort_name_link' => '/index.php?q=civicrm/contact/view&reset=1&cid=111', - 'civicrm_contact_sort_name_hover' => 'View Contact details for this contact.', - ], - '4' => [ - 'civicrm_contact_id' => '112', - 'civicrm_contact_sort_name' => 'Eight, Test', - 'civicrm_mailing_mailing_name' => 'First Mailing Events', - 'civicrm_mailing_mailing_name_alias' => 'First Mailing Events', - 'civicrm_mailing_mailing_subject' => 'Hello {contact.display_name}', - 'civicrm_mailing_event_opened_id' => '11', - 'civicrm_mailing_event_opened_time_stamp' => '2011-05-26 13:19:44', - 'class' => '', - 'civicrm_contact_sort_name_link' => '/index.php?q=civicrm/contact/view&reset=1&cid=112', - 'civicrm_contact_sort_name_hover' => 'View Contact details for this contact.', - ], - ], - 'metadata' => [ - 'title' => 'ERROR: Title is not Set', - 'labels' => [ - 'civicrm_contact_sort_name' => 'Contact Name', - 'civicrm_mailing_mailing_name' => 'Mailing Name', - 'civicrm_mailing_mailing_subject' => 'Mailing Subject', - 'civicrm_mailing_event_opened_time_stamp' => 'Open Date', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testReportTemplateGetRowsMailingUniqueOpened" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ReportTemplateTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/ReportTemplate/Getstatistics.ex.php b/civicrm/api/v3/examples/ReportTemplate/Getstatistics.ex.php deleted file mode 100644 index 59d83f26b56d58042e62a2eddefbd267c6737d77..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/ReportTemplate/Getstatistics.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the ReportTemplate.getstatistics API. - * - * Get Statistics from a report (note there isn't much data to get in the test DB). - * - * @return array - * API result array - */ -function report_template_getstatistics_example() { - $params = [ - 'report_id' => 'contribute/deferredrevenue', - ]; - - try { - $result = civicrm_api3('ReportTemplate', 'getstatistics', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function report_template_getstatistics_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 3, - 'values' => [ - 'counts' => [ - 'rowCount' => [ - 'title' => 'Row(s) Listed', - 'value' => 0, - 'type' => 1, - ], - ], - 'groups' => [], - 'filters' => [], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testReportTemplateGetStatisticsAllReports" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/ReportTemplateTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/SavedSearch/Create.ex.php b/civicrm/api/v3/examples/SavedSearch/Create.ex.php deleted file mode 100644 index 517cdb1b19d2fde8078f15959f3d50709a79decf..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/SavedSearch/Create.ex.php +++ /dev/null @@ -1,142 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the SavedSearch.create API. - * - * @return array - * API result array - */ -function saved_search_create_example() { - $params = [ - 'expires_date' => '2021-08-08', - 'form_values' => [ - 'relation_type_id' => '6_a_b', - 'relation_target_name' => 'Default Organization', - ], - 'api.Group.create' => [ - 'name' => 'my_smartgroup', - 'title' => 'my smartgroup', - 'description' => 'Volunteers for the default organization', - 'saved_search_id' => '$value.id', - 'is_active' => 1, - 'visibility' => 'User and User Admin Only', - 'is_hidden' => 0, - 'is_reserved' => 0, - ], - ]; - - try { - $result = civicrm_api3('SavedSearch', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function saved_search_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'name' => '', - 'label' => '', - 'form_values' => [ - 'relation_type_id' => '6_a_b', - 'relation_target_name' => 'Default Organization', - ], - 'mapping_id' => '', - 'search_custom_id' => '', - 'api_entity' => '', - 'api_params' => '', - 'created_id' => '', - 'modified_id' => '', - 'expires_date' => '20210808000000', - 'created_date' => '', - 'modified_date' => '', - 'description' => '', - 'api.Group.create' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'name' => 'my_smartgroup', - 'title' => 'my smartgroup', - 'description' => 'Volunteers for the default organization', - 'source' => '', - 'saved_search_id' => '3', - 'is_active' => '1', - 'visibility' => 'User and User Admin Only', - 'where_clause' => '', - 'select_tables' => '', - 'where_tables' => '', - 'group_type' => '', - 'cache_date' => '', - 'refresh_date' => '', - 'parents' => '', - 'children' => '', - 'is_hidden' => 0, - 'is_reserved' => 0, - 'created_id' => '', - 'modified_id' => '', - 'frontend_title' => '', - 'frontend_description' => '', - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSavedSearchWithSmartGroup" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SavedSearchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/SavedSearch/Delete.ex.php b/civicrm/api/v3/examples/SavedSearch/Delete.ex.php deleted file mode 100644 index 7a09625346e777254f5ccc0d1bba5726158c1eeb..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/SavedSearch/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the SavedSearch.delete API. - * - * @return array - * API result array - */ -function saved_search_delete_example() { - $params = [ - 'id' => 6, - ]; - - try { - $result = civicrm_api3('SavedSearch', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function saved_search_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteSavedSearch" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SavedSearchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/SavedSearch/Get.ex.php b/civicrm/api/v3/examples/SavedSearch/Get.ex.php deleted file mode 100644 index 9fef1a9e82e8730d52e76fc54c89d31b604309d4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/SavedSearch/Get.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the SavedSearch.get API. - * - * @return array - * API result array - */ -function saved_search_get_example() { - $params = [ - 'id' => 2, - ]; - - try { - $result = civicrm_api3('SavedSearch', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function saved_search_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'form_values' => [ - 'relation_type_id' => '6_a_b', - 'relation_target_name' => 'Default Organization', - ], - 'expires_date' => '2021-08-08 00:00:00', - 'created_date' => '2013-07-28 08:49:19', - 'modified_date' => '2012-11-14 16:02:35', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateAndGetSavedSearch" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SavedSearchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/Create.ex.php b/civicrm/api/v3/examples/Setting/Create.ex.php deleted file mode 100644 index 8fffe7d5c3985a614dd60dd5f3a30c279fe65d88..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/Create.ex.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.create API. - * - * @return array - * API result array - */ -function setting_create_example() { - $params = [ - 'domain_id' => 21, - 'uniq_email_per_site' => 1, - ]; - - try { - $result = civicrm_api3('Setting', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 21, - 'values' => [ - '21' => [ - 'uniq_email_per_site' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSetting" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/CreateAllDomains.ex.php b/civicrm/api/v3/examples/Setting/CreateAllDomains.ex.php deleted file mode 100644 index 281f8e62b9c5b1235dcf5253930eaba65e285b97..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/CreateAllDomains.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.create API. - * - * Shows setting a variable for all domains. - * - * @return array - * API result array - */ -function setting_create_example() { - $params = [ - 'domain_id' => 'all', - 'uniq_email_per_site' => 1, - ]; - - try { - $result = civicrm_api3('Setting', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 4, - 'values' => [ - '37' => [ - 'uniq_email_per_site' => '1', - ], - '38' => [ - 'uniq_email_per_site' => '1', - ], - '1' => [ - 'uniq_email_per_site' => '1', - ], - '2' => [ - 'uniq_email_per_site' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSettingMultipleDomains" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/CreateSettingCurrentDomain.ex.php b/civicrm/api/v3/examples/Setting/CreateSettingCurrentDomain.ex.php deleted file mode 100644 index 057ad5b4afce573c8ab265bf03c058fd0cc287a0..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/CreateSettingCurrentDomain.ex.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.create API. - * - * Shows setting a variable for a current domain. - * - * @return array - * API result array - */ -function setting_create_example() { - $params = [ - 'uniq_email_per_site' => 1, - ]; - - try { - $result = civicrm_api3('Setting', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'uniq_email_per_site' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSetting" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/CreateSpecifiedDomains.ex.php b/civicrm/api/v3/examples/Setting/CreateSpecifiedDomains.ex.php deleted file mode 100644 index 115f8b0b7c0ce11aa5d459fbb5ac2a1f7ed2141d..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/CreateSpecifiedDomains.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.create API. - * - * Shows setting a variable for specified domains. - * - * @return array - * API result array - */ -function setting_create_example() { - $params = [ - 'domain_id' => [ - '0' => 1, - '1' => 38, - ], - 'uniq_email_per_site' => 0, - ]; - - try { - $result = civicrm_api3('Setting', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '1' => [ - 'uniq_email_per_site' => 0, - ], - '38' => [ - 'uniq_email_per_site' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSettingMultipleDomains" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/Get.ex.php b/civicrm/api/v3/examples/Setting/Get.ex.php deleted file mode 100644 index 6366789307c36f0049ab4220a770a72f5cd314c2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/Get.ex.php +++ /dev/null @@ -1,81 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.get API. - * - * @return array - * API result array - */ -function setting_get_example() { - $params = [ - 'domain_id' => 41, - 'return' => 'uniq_email_per_site', - ]; - - try { - $result = civicrm_api3('Setting', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 41, - 'values' => [ - '41' => [ - 'uniq_email_per_site' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSetting" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/GetAllDomains.ex.php b/civicrm/api/v3/examples/Setting/GetAllDomains.ex.php deleted file mode 100644 index f4f545cfc1ab55e5756ece43d01c6d0b0a7967a0..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/GetAllDomains.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.get API. - * - * Shows getting a variable for all domains. - * - * @return array - * API result array - */ -function setting_get_example() { - $params = [ - 'domain_id' => 'all', - 'return' => 'uniq_email_per_site', - ]; - - try { - $result = civicrm_api3('Setting', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 4, - 'values' => [ - '37' => [ - 'uniq_email_per_site' => '1', - ], - '38' => [ - 'uniq_email_per_site' => '1', - ], - '1' => [ - 'uniq_email_per_site' => '1', - ], - '2' => [ - 'uniq_email_per_site' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSettingMultipleDomains" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/GetDefaults.ex.php b/civicrm/api/v3/examples/Setting/GetDefaults.ex.php deleted file mode 100644 index eaa1158e1f5d8187e2420ab4d0163fb5f2ed9c40..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/GetDefaults.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.getdefaults API. - * - * Gets defaults setting a variable for a given domain - if no domain is set current is assumed. - * - * @return array - * API result array - */ -function setting_getdefaults_example() { - $params = [ - 'name' => 'address_format', - ]; - - try { - $result = civicrm_api3('Setting', 'getdefaults', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_getdefaults_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'address_format' => '{contact.address_name} -{contact.street_address} -{contact.supplemental_address_1} -{contact.supplemental_address_2} -{contact.supplemental_address_3} -{contact.city}{, }{contact.state_province}{ }{contact.postal_code} -{contact.country}', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetDefaults" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/GetFields.ex.php b/civicrm/api/v3/examples/Setting/GetFields.ex.php deleted file mode 100644 index 5a8e31280a13ef2a3a55231cd63f6143b2dbdec6..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/GetFields.ex.php +++ /dev/null @@ -1,3353 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.getfields API. - * - * Demonstrate return from getfields - see subfolder for variants. - * - * @return array - * API result array - */ -function setting_getfields_example() { - $params = []; - - try { - $result = civicrm_api3('Setting', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 195, - 'values' => [ - 'address_standardization_provider' => [ - 'group_name' => 'Address Preferences', - 'group' => 'address', - 'name' => 'address_standardization_provider', - 'type' => 'String', - 'html_type' => 'select', - 'default' => '', - 'add' => '4.1', - 'title' => 'Address Standardization Provider.', - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::addressProvider', - ], - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => 'CiviCRM includes an optional plugin for interfacing with the United States Postal Services (USPS) Address Standardization web service. You must register to use the USPS service at https://www.usps.com/business/web-tools-apis/address-information.htm. If you are approved, they will provide you with a User ID and the URL for the service. Plugins for other address standardization services may be available from 3rd party developers. If installed, they will be included in the drop-down below. ', - ], - 'address_standardization_userid' => [ - 'group_name' => 'Address Preferences', - 'group' => 'address', - 'name' => 'address_standardization_userid', - 'type' => 'String', - 'html_type' => 'text', - 'default' => '', - 'add' => '4.1', - 'title' => 'Provider service user ID', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'address_standardization_url' => [ - 'group_name' => 'Address Preferences', - 'group' => 'address', - 'name' => 'address_standardization_url', - 'type' => 'Text', - 'html_type' => 'text', - 'default' => '', - 'add' => '4.1', - 'title' => 'Provider Service URL', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => 'Web Service URL', - 'validate_callback' => 'CRM_Utils_Rule::url', - ], - 'hideCountryMailingLabels' => [ - 'group_name' => 'Address Preferences', - 'group' => 'address', - 'name' => 'hideCountryMailingLabels', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Hide Country in Mailing Labels when same as domain country', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Do not display the country field in mailing labels when the country is the same as that of the domain', - 'help_text' => '', - ], - 'tag_unconfirmed' => [ - 'group_name' => 'Campaign Preferences', - 'group' => 'campaign', - 'name' => 'tag_unconfirmed', - 'type' => 'String', - 'html_type' => 'text', - 'default' => 'Unconfirmed', - 'add' => '4.1', - 'title' => 'Tag for Unconfirmed Petition Signers', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If set, new contacts that are created when signing a petition are assigned a tag of this name.', - 'help_text' => '', - 'settings_pages' => [ - 'campaign' => [ - 'weight' => 10, - ], - ], - ], - 'petition_contacts' => [ - 'group_name' => 'Campaign Preferences', - 'group' => 'campaign', - 'name' => 'petition_contacts', - 'type' => 'String', - 'html_type' => 'text', - 'default' => 'Petition Contacts', - 'add' => '4.1', - 'title' => 'Petition Signers Group', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'All contacts that have signed a CiviCampaign petition will be added to this group. The group will be created if it does not exist (it is required for email verification).', - 'help_text' => '', - 'settings_pages' => [ - 'campaign' => [ - 'weight' => 20, - ], - ], - ], - 'civicaseRedactActivityEmail' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'civicaseRedactActivityEmail', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [], - 'default' => 'default', - 'add' => '4.7', - 'title' => 'Redact Activity Email', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Case_Info::getRedactOptions', - ], - 'description' => 'Should activity emails be redacted? (Set \"Default\" to load setting from the legacy \"Settings.xml\" file.)', - 'help_text' => '', - ], - 'civicaseAllowMultipleClients' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'civicaseAllowMultipleClients', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [], - 'default' => 'default', - 'add' => '4.7', - 'title' => 'Allow Multiple Case Clients', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Case_Info::getMultiClientOptions', - ], - 'description' => 'How many clients may be associated with a given case? (Set \"Default\" to load setting from the legacy \"Settings.xml\" file.)', - 'help_text' => '', - ], - 'civicaseNaturalActivityTypeSort' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'civicaseNaturalActivityTypeSort', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [], - 'default' => 'default', - 'add' => '4.7', - 'title' => 'Activity Type Sorting', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Case_Info::getSortOptions', - ], - 'description' => 'How to sort activity-types on the \"Manage Case\" screen? (Set \"Default\" to load setting from the legacy \"Settings.xml\" file.)', - 'help_text' => '', - ], - 'civicaseShowCaseActivities' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'civicaseShowCaseActivities', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => '', - 'html_type' => 'radio', - 'add' => '5.24', - 'title' => 'Include case activities in general activity views.', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'e.g. the Contact form\'s Activity tab listing. Without this ticked, activities that belong to a case are hidden (default behavior). Warning: enabling this option means that all case activities relating to a contact will be listed which could result in users without \"access all cases and activities\" permission being able to see see the summarized details (date, subject, assignees, status etc.). Such users will still be prevented from managing the case and viewing/editing the activity.', - 'help_text' => '', - ], - 'cvv_backoffice_required' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'cvv_backoffice_required', - 'type' => 'Boolean', - 'html_type' => 'radio', - 'quick_form_type' => 'YesNo', - 'default' => '1', - 'add' => '4.1', - 'title' => 'CVV required for backoffice?', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Is the CVV code required for back office credit card transactions', - 'help_text' => 'If set it back-office credit card transactions will required a cvv code. Leave as required unless you have a very strong reason to change', - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 10, - ], - ], - ], - 'contribution_invoice_settings' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'contribution_invoice_settings', - 'type' => 'Array', - 'add' => '4.7', - 'title' => 'Deprecated, virtualized setting', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'invoicing' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'invoicing', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'Element', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Enable Tax and Invoicing', - 'is_domain' => 1, - 'is_contact' => 0, - 'on_change' => [ - '0' => 'CRM_Invoicing_Utils::onToggle', - ], - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 90, - ], - ], - ], - 'invoice_prefix' => [ - 'default' => 'INV_', - 'html_type' => 'text', - 'name' => 'invoice_prefix', - 'add' => '5.23', - 'type' => 2, - 'title' => 'Invoice Prefix', - 'description' => 'Enter prefix to be be preprended when creating an invoice number', - 'is_domain' => 1, - 'is_contact' => 0, - ], - 'invoice_due_date' => [ - 'default' => '10', - 'name' => 'invoice_due_date', - 'html_type' => 'text', - 'title' => 'Due Date', - 'add' => '5.23', - 'type' => 1, - 'is_domain' => 1, - 'is_contact' => 0, - ], - 'invoice_due_date_period' => [ - 'default' => 'days', - 'html_type' => 'select', - 'name' => 'invoice_due_date_period', - 'title' => 'For transmission', - 'weight' => 4, - 'add' => '5.23', - 'type' => 2, - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Select the interval for due date.', - 'options' => [ - 'select' => '- select -', - 'days' => 'Days', - 'months' => 'Months', - 'years' => 'Years', - ], - ], - 'invoice_notes' => [ - 'default' => '', - 'name' => 'invoice_notes', - 'html_type' => 'wysiwyg', - 'title' => 'Notes or Standard Terms', - 'type' => 2, - 'add' => '5.23', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Enter note or message to be displayed on PDF invoice or credit notes ', - 'attributes' => [ - 'rows' => 2, - 'cols' => 40, - ], - ], - 'invoice_is_email_pdf' => [ - 'name' => 'invoice_is_email_pdf', - 'html_type' => 'checkbox', - 'add' => '5.23', - 'type' => 16, - 'is_domain' => 1, - 'is_contact' => 0, - 'title' => 'Automatically email invoice when user purchases online', - 'description' => 'Should a pdf invoice be emailed automatically?', - ], - 'tax_term' => [ - 'default' => 'Sales Tax', - 'name' => 'tax_term', - 'html_type' => 'text', - 'add' => '5.23', - 'title' => 'Tax Term', - 'type' => 2, - 'is_domain' => 1, - 'is_contact' => 0, - ], - 'tax_display_settings' => [ - 'default' => 'Inclusive', - 'html_type' => 'select', - 'name' => 'tax_display_settings', - 'type' => 2, - 'add' => '5.23', - 'title' => 'Tax Display Settings', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::taxDisplayOptions', - ], - ], - 'deferred_revenue_enabled' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'deferred_revenue_enabled', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'Element', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Enable Deferred Revenue', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 50, - ], - ], - ], - 'default_invoice_page' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'default_invoice_page', - 'type' => 'Integer', - 'quick_form_type' => 'Select', - 'default' => '', - 'pseudoconstant' => [ - 'table' => 'civicrm_contribution_page', - 'keyColumn' => 'id', - 'labelColumn' => 'title', - ], - 'html_type' => 'select', - 'add' => '4.7', - 'title' => 'Default invoice payment page', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 70, - ], - ], - ], - 'always_post_to_accounts_receivable' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'always_post_to_accounts_receivable', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'Element', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Always post to Accounts Receivable?', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 40, - ], - ], - ], - 'update_contribution_on_membership_type_change' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'update_contribution_on_membership_type_change', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'Element', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Automatically update related contributions when Membership Type is changed', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Enabling this setting will update related contribution of membership(s) except if the membership is paid for with a recurring contribution.', - 'help_text' => '', - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 20, - ], - ], - ], - 'contact_view_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_view_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'optionGroupName' => 'contact_view_options', - ], - 'default' => '123456789101113', - 'add' => '4.1', - 'title' => 'Viewing Contacts', - 'is_domain' => '1', - 'is_contact' => 0, - 'description' => 'Select the tabs that should be displayed when viewing a contact record. EXAMPLE: If your organization does not keep track of \'Relationships\', then un-check this option to simplify the screen display. Tabs for Contributions, Pledges, Memberships, Events, Grants and Cases are also hidden if the corresponding component is not enabled. Go to Administer > System Settings > Enable Components to modify the components which are available for your site.', - 'help_text' => '', - 'serialize' => 1, - ], - 'contact_edit_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_edit_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'optionGroupName' => 'contact_edit_options', - ], - 'default' => '123456789111214151617', - 'add' => '4.1', - 'title' => 'Editing Contacts', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Select the sections that should be included when adding or editing a contact record. EXAMPLE: If your organization does not record Gender and Birth Date for individuals, then simplify the form by un-checking this option. Drag interface allows you to change the order of the panes displayed on contact add/edit screen.', - 'help_text' => '', - 'serialize' => 1, - ], - 'advanced_search_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'advanced_search_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'optionGroupName' => 'advanced_search_options', - ], - 'default' => '123456789101112131516171819', - 'add' => '4.1', - 'title' => 'Contact Search', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Select the sections that should be included in the Basic and Advanced Search forms. EXAMPLE: If you don\'t track Relationships - then you do not need this section included in the advanced search form. Simplify the form by un-checking this option.', - 'serialize' => 1, - ], - 'user_dashboard_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'user_dashboard_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'optionGroupName' => 'user_dashboard_options', - ], - 'default' => '1234578', - 'add' => '4.1', - 'title' => 'Contact Dashboard', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Select the sections that should be included in the Contact Dashboard. EXAMPLE: If you don\'t want constituents to view their own contribution history, un-check that option.', - 'help_text' => '', - 'serialize' => 1, - ], - 'address_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'address_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'optionGroupName' => 'address_options', - ], - 'default' => '12345689101112', - 'add' => '4.1', - 'title' => 'Address Fields', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - 'serialize' => 1, - ], - 'address_format' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'address_format', - 'type' => 'String', - 'html_type' => 'textarea', - 'default' => '{contact.address_name} -{contact.street_address} -{contact.supplemental_address_1} -{contact.supplemental_address_2} -{contact.supplemental_address_3} -{contact.city}{, }{contact.state_province}{ }{contact.postal_code} -{contact.country}', - 'add' => '4.1', - 'title' => 'Address Display Format', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'mailing_format' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'mailing_format', - 'type' => 'String', - 'html_type' => 'textarea', - 'default' => '{contact.addressee} -{contact.street_address} -{contact.supplemental_address_1} -{contact.supplemental_address_2} -{contact.supplemental_address_3} -{contact.city}{, }{contact.state_province}{ }{contact.postal_code} -{contact.country}', - 'add' => '4.1', - 'title' => 'Mailing Label Format', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'display_name_format' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'display_name_format', - 'type' => 'String', - 'html_type' => 'textarea', - 'default' => '{contact.individual_prefix}{ }{contact.first_name}{ }{contact.last_name}{ }{contact.individual_suffix}', - 'add' => '4.1', - 'title' => 'Individual Display Name Format', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Display name format for individual contact display names.', - ], - 'sort_name_format' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'sort_name_format', - 'type' => 'String', - 'html_type' => 'textarea', - 'default' => '{contact.last_name}{, }{contact.first_name}', - 'add' => '4.1', - 'title' => 'Individual Sort Name Format', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Sort name format for individual contact display names.', - ], - 'remote_profile_submissions' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'remote_profile_submissions', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => '', - 'html_type' => 'radio', - 'add' => '4.7', - 'title' => 'Accept profile submissions from external sites', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, CiviCRM will permit submissions from external sites to profiles. This is disabled by default to limit abuse.', - 'help_text' => '', - ], - 'allow_alert_autodismissal' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'allow_alert_autodismissal', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => TRUE, - 'html_type' => 'radio', - 'add' => '4.7', - 'title' => 'Allow alerts to auto-dismiss?', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If disabled, CiviCRM will not automatically dismiss any alerts after 10 seconds.', - 'help_text' => '', - ], - 'editor_id' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'editor_id', - 'type' => 'String', - 'html_type' => 'select', - 'default' => 'CKEditor', - 'add' => '4.1', - 'title' => 'Wysiwig Editor', - 'pseudoconstant' => [ - 'optionGroupName' => 'wysiwyg_editor', - 'keyColumn' => 'name', - ], - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'contact_ajax_check_similar' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_ajax_check_similar', - 'type' => 'String', - 'html_type' => 'radio', - 'default' => '1', - 'add' => '4.1', - 'title' => 'Check for Similar Contacts', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - 'options' => [ - '1' => 'While Typing', - '0' => 'When Saving', - '2' => 'Never', - ], - ], - 'ajaxPopupsEnabled' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'ajaxPopupsEnabled', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 1, - 'add' => '4.5', - 'title' => 'Enable Popup Forms', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'defaultExternUrl' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'defaultExternUrl', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'default' => 'router', - 'add' => '5.27', - 'title' => 'Extern URL Style', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'This setting provides transitional support. It should be set to \"Prefer normal router.\" If your deployment requires \"Prefer standalone script\", then please ensure that the issue is tracked in <code>lab.civicrm.org</code>.', - 'help_text' => '', - 'options' => [ - 'standalone' => 'Prefer standalone scripts', - 'router' => 'Prefer normal router', - ], - ], - 'activity_assignee_notification' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'activity_assignee_notification', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => '1', - 'add' => '4.1', - 'title' => 'Notify Activity Assignees', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'activity_assignee_notification_ics' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'activity_assignee_notification_ics', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Include ICal Invite to Activity Assignees', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'contact_autocomplete_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_autocomplete_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Search::getContactAutocompleteOptions', - ], - 'default' => '12', - 'add' => '4.1', - 'title' => 'Autocomplete Contact Search', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Selected fields will be displayed in back-office autocomplete dropdown search results (Quick Search, etc.). Contact Name is always included.', - 'help_text' => '', - 'serialize' => 1, - 'validate_callback' => 'CRM_Admin_Form_Setting_Search::enableOptionOne', - ], - 'contact_reference_options' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_reference_options', - 'type' => 'String', - 'html_type' => 'checkboxes', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Search::getContactReferenceOptions', - ], - 'default' => '12', - 'add' => '4.1', - 'title' => 'Contact Reference Options', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Selected fields will be displayed in autocomplete dropdown search results for \'Contact Reference\' custom fields. Contact Name is always included. NOTE: You must assign \'access contact reference fields\' permission to the anonymous role if you want to use custom contact reference fields in profiles on public pages. For most situations, you should use the \'Limit List to Group\' setting when configuring a contact reference field which will be used in public forms to prevent exposing your entire contact list.', - 'help_text' => '', - 'serialize' => 1, - 'validate_callback' => 'CRM_Admin_Form_Setting_Search::enableOptionOne', - ], - 'contact_smart_group_display' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_smart_group_display', - 'type' => 'String', - 'html_type' => 'radio', - 'default' => '1', - 'add' => '4.7', - 'title' => 'Viewing Smart Groups', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Controls display of the smart groups that a contact is part of in each contact\'s \"Groups\" tab. \"Show on Demand\" provides the best performance, and is recommended for most sites.', - 'help_text' => '', - 'pseudoconstant' => [ - 'optionGroupName' => 'contact_smart_group_display', - ], - ], - 'smart_group_cache_refresh_mode' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'smart_group_cache_refresh_mode', - 'type' => 'String', - 'html_type' => 'radio', - 'default' => 'opportunistic', - 'add' => '4.7', - 'title' => 'Smart Group Refresh Mode', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Contact_BAO_GroupContactCache::getModes', - ], - 'description' => 'Should the smart groups be flushed by cron jobs or user actions', - 'help_text' => 'In \"Opportunistic Flush\" mode, caches are flushed in response to user actions; this mode is broadly compatible but may add latency during form-submissions. In \"Cron Flush\" mode, you should schedule a cron job to flush caches; this can improve latency on form-submissions but requires more setup.', - ], - 'acl_cache_refresh_mode' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'acl_cache_refresh_mode', - 'type' => 'String', - 'html_type' => 'radio', - 'default' => 'opportunistic', - 'add' => '5.37.0', - 'title' => 'ACL Group Refresh Mode', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Contact_BAO_GroupContactCache::getModes', - ], - 'description' => 'Should the acl cache be flushed by cron jobs or user actions', - 'help_text' => 'In \"Opportunistic Flush\" mode, caches are flushed in response to user actions; this mode is broadly compatible but may add latency during form-submissions. In \"Cron Flush\" mode, you should schedule a cron job to flush caches if your site uses ACLs; this can improve latency on form-submissions but requires more setup.', - ], - 'installed' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'installed', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => '', - 'add' => '4.7', - 'title' => 'System Installed', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'A flag indicating whether this system has run a post-installation routine', - 'help_text' => '', - ], - 'max_attachments' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'max_attachments', - 'legacy_key' => 'maxAttachments', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 8, - ], - 'default' => 3, - 'add' => '4.3', - 'title' => 'Maximum Attachments', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Maximum number of files (documents, images, etc.) which can be attached to emails or activities. This setting applies to UI forms and limits the number of fields available on the form.', - 'help_text' => '', - ], - 'max_attachments_backend' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'max_attachments_backend', - 'legacy_key' => 'maxAttachmentsBackend', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 8, - ], - 'default' => 100, - 'add' => '5.20', - 'title' => 'Maximum Attachments For Backend Processes', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Maximum number of files (documents, images, etc.) which can be processed during backend processing such as automated inbound email processing. This should be a big number higher than the other Maximum Attachments setting above. This setting here merely provides an upper limit to prevent attacks that might overload the server.', - 'help_text' => '', - ], - 'maxFileSize' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'maxFileSize', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 8, - ], - 'default' => 3, - 'add' => '4.3', - 'title' => 'Maximum File Size (in MB)', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Maximum Size of file (documents, images, etc.) which can be attached to emails or activities.<br />Note: php.ini should support this file size.', - 'help_text' => '', - ], - 'contact_undelete' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'contact_undelete', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.3', - 'title' => 'Contact Trash and Undelete', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, deleted contacts will be moved to trash (instead of being destroyed). Users with the proper permission are able to search for the deleted contacts and restore them (or delete permanently).', - 'help_text' => '', - ], - 'allowPermDeleteFinancial' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'allowPermDeleteFinancial', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => '', - 'add' => '4.3', - 'title' => 'Contact Permanent Delete', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Allow Permanent Delete for contacts who are linked to live financial transactions', - 'help_text' => '', - ], - 'securityAlert' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'securityAlert', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.4', - 'title' => 'Status Alerts', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, CiviCRM will display pop-up notifications (no more than once per day) for security and misconfiguration issues identified in the system check.', - 'help_text' => '', - ], - 'doNotAttachPDFReceipt' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'doNotAttachPDFReceipt', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Attach PDF copy to receipts', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, CiviCRM sends PDF receipt as an attachment during event signup or online contribution.', - 'help_text' => '', - ], - 'recordGeneratedLetters' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'recordGeneratedLetters', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'default' => 'multiple', - 'add' => '4.7', - 'title' => 'Record generated letters', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'When generating a letter (PDF/Word) via mail-merge, how should the letter be recorded?', - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Contact_Form_Task_PDFLetterCommon::getLoggingOptions', - ], - ], - 'dompdf_font_dir' => [ - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'dompdf_font_dir', - 'title' => 'DOMPDF Font Folder', - 'description' => 'Additional folder where DOMPDF will look for fonts.', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 256, - ], - 'default' => '', - 'help_text' => '', - 'add' => '5.43', - ], - 'dompdf_chroot' => [ - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'dompdf_chroot', - 'title' => 'DOMPDF Local Images Folder', - 'description' => 'Folder to restrict where DOMPDF looks when loading local images. By default it is the DOMPDF folder itself for security reasons. It will search in subfolders.', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 256, - ], - 'default' => '', - 'help_text' => '', - 'add' => '5.43', - ], - 'dompdf_enable_remote' => [ - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'dompdf_enable_remote', - 'title' => 'DOMPDF Enable Remote Images', - 'description' => 'Enable the use of remote images. By default this is enabled, but if not using remote images you may wish to turn it off for security reasons.', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'html_type' => '', - 'default' => TRUE, - 'help_text' => '', - 'add' => '5.43', - ], - 'dompdf_log_output_file' => [ - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'dompdf_log_output_file', - 'title' => 'DOMPDF Log File', - 'description' => 'DOMPDF will log debugging output in this file.', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 256, - ], - 'default' => '', - 'help_text' => '', - 'add' => '5.43', - ], - 'wkhtmltopdfPath' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'wkhtmltopdfPath', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 256, - ], - 'html_type' => 'text', - 'default' => '', - 'add' => '4.3', - 'title' => 'Path to wkhtmltopdf executable', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'checksum_timeout' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'checksum_timeout', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 8, - ], - 'html_type' => 'text', - 'default' => 7, - 'add' => '4.3', - 'title' => 'Checksum Lifespan', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'blogUrl' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'blogUrl', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 128, - ], - 'html_type' => 'text', - 'default' => '*default*', - 'add' => '4.3', - 'title' => 'Blog Feed URL', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Blog feed URL used by the blog dashlet', - 'help_text' => 'Use \"*default*\" for the system default or override with a custom URL', - ], - 'communityMessagesUrl' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'communityMessagesUrl', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 128, - ], - 'html_type' => 'text', - 'default' => '*default*', - 'add' => '4.3', - 'title' => 'Community Messages URL', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Service providing CiviCRM community messages', - 'help_text' => 'Use \"*default*\" for the system default or override with a custom URL', - ], - 'gettingStartedUrl' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'gettingStartedUrl', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 128, - ], - 'html_type' => 'text', - 'default' => '*default*', - 'add' => '4.3', - 'title' => 'Getting Started URL', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Service providing the Getting Started data', - 'help_text' => 'Use \"*default*\" for the system default or override with a custom URL', - ], - 'resCacheCode' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'resCacheCode', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '', - 'add' => '4.3', - 'title' => 'resCacheCode', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Code appended to resource URLs (JS/CSS) to coerce HTTP caching', - 'help_text' => '', - ], - 'verifySSL' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'verifySSL', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.3', - 'title' => 'Verify SSL?', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If disabled, outbound web-service requests will allow unverified, insecure HTTPS connections', - 'help_text' => 'Unless you are absolutely unable to configure your server to check the SSL certificate of the remote server you should leave this set to Yes', - ], - 'enableSSL' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'enableSSL', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.5', - 'title' => 'Force SSL?', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, inbound HTTP requests for sensitive pages will be redirected to HTTPS.', - 'help_text' => 'If enabled, inbound HTTP requests for sensitive pages will be redirected to HTTPS.', - ], - 'wpBasePage' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'wpBasePage', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.3', - 'title' => 'WordPress Base Page', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If set, CiviCRM will use this setting as the base url.', - 'help_text' => 'By default, CiviCRM will generate front-facing pages using the home page at http://wp/ as its base. If you want to use a different template for CiviCRM pages, set the path here.', - ], - 'secondDegRelPermissions' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'secondDegRelPermissions', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Allow second-degree relationship permissions', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, contacts with the permission to edit a related contact will inherit that contact\'s permission to edit other related contacts', - 'help_text' => '', - ], - 'enable_components' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'enable_components', - 'type' => 'Array', - 'html_type' => 'checkboxes', - 'default' => '', - 'add' => '4.4', - 'title' => 'Enable Components', - 'is_domain' => '1', - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - 'on_change' => [ - '0' => 'CRM_Case_Info::onToggleComponents', - ], - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::getComponentSelectValues', - ], - ], - 'disable_core_css' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'disable_core_css', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.4', - 'title' => 'Disable CiviCRM css', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Prevent the stylesheet \"civicrm.css\" from being loaded.', - 'help_text' => '', - ], - 'empoweredBy' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'empoweredBy', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.5', - 'title' => 'Display \"empowered by CiviCRM\"', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'When enabled, \"empowered by CiviCRM\" is displayed at the bottom of public forms.', - 'help_text' => '', - ], - 'logging_no_trigger_permission' => [ - 'add' => '4.7', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'help_text' => '(EXPERIMENTAL) If the MySQL user does not have permission to administer triggers, then you must create the triggers outside CiviCRM. No support is provided for this configuration.', - 'name' => 'logging_no_trigger_permission', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'html_type' => '', - 'default' => 0, - 'title' => '(EXPERIMENTAL) MySQL user does not have trigger permissions', - 'description' => 'Set this when you intend to manage trigger creation outside of CiviCRM', - ], - 'logging' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'logging', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'html_type' => '', - 'default' => 0, - 'title' => 'Logging', - 'description' => 'If enabled, all actions will be logged with a complete record of changes.', - 'validate_callback' => 'CRM_Logging_Schema::checkLoggingSupport', - 'on_change' => [ - '0' => 'CRM_Logging_Schema::onToggle', - ], - ], - 'logging_uniqueid_date' => [ - 'add' => '4.7', - 'help_text' => 'This is the date when CRM-18193 was implemented', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'logging_uniqueid_date', - 'type' => 'Date', - 'quick_form_type' => 'DateTime', - 'html_type' => '', - 'default' => '', - 'title' => 'Logging Unique ID not recorded before', - 'description' => 'This is the date when CRM-18193 was implemented', - ], - 'logging_all_tables_uniquid' => [ - 'add' => '4.7', - 'help_text' => 'This indicates there are no tables holdng pre-uniqid log_conn_id values (CRM-18193)', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'logging_all_tables_uniquid', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'html_type' => '', - 'default' => 0, - 'title' => 'All tables use Unique Connection ID', - 'description' => 'Do some tables pre-date CRM-18193?', - ], - 'userFrameworkUsersTableName' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'userFrameworkUsersTableName', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '32', - 'maxlength' => '64', - ], - 'default' => 'users', - 'title' => 'CMS Users Table Name', - 'description' => '', - ], - 'wpLoadPhp' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'wpLoadPhp', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.6', - 'title' => 'WordPress Path to wp-load.php', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'CiviCRM will use this setting as path to bootstrap WP.', - 'help_text' => '', - ], - 'secure_cache_timeout_minutes' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'secure_cache_timeout_minutes', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 8, - ], - 'default' => 20, - 'add' => '4.7', - 'title' => 'Secure Cache Timeout', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Maximum number of minutes that secure form data should linger', - 'help_text' => '', - ], - 'site_id' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'site_id', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '', - 'add' => '4.6', - 'title' => 'Unique Site ID', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - ], - 'recentItemsMaxCount' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'recentItemsMaxCount', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 3, - ], - 'default' => 20, - 'add' => '4.7', - 'title' => 'Size of \"Recent Items\" stack', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'How many items should CiviCRM store in it\'s \"Recently viewed\" list.', - 'help_text' => '', - ], - 'recentItemsProviders' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'recentItemsProviders', - 'type' => 'Array', - 'html_type' => 'Select', - 'quick_form_type' => 'Select', - 'html_attributes' => [ - 'multiple' => 1, - 'class' => 'crm-select2', - ], - 'default' => '', - 'add' => '4.7', - 'title' => 'Recent Items Providers', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'What providers may save views in CiviCRM\'s \"Recently viewed\" list. If empty, all are in.', - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Utils_Recent::getProviders', - ], - ], - 'dedupe_default_limit' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'dedupe_default_limit', - 'type' => 'Integer', - 'default' => 0, - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'add' => '4.7', - 'title' => 'Default limit for dedupe screen', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Default to only loading matches against this number of contacts', - 'help_text' => 'Deduping larger databases can crash the server. By configuring a limit other than 0 here the dedupe query will only search for matches against a limited number of contacts.', - ], - 'syncCMSEmail' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'syncCMSEmail', - 'type' => 'Boolean', - 'html_type' => 'YesNo', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.7', - 'title' => 'Sync CMS Email', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, then CMS email id will be synchronised with CiviCRM contacts\'s primary email.', - 'help_text' => '', - ], - 'preserve_activity_tab_filter' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'preserve_activity_tab_filter', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Preserve activity filters as a user preference', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'When enabled, any filter settings a user selects on the contact\'s Activity tab will be remembered as they visit other contacts.', - ], - 'do_not_notify_assignees_for' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'do_not_notify_assignees_for', - 'type' => 'Array', - 'add' => '4.7', - 'is_domain' => 1, - 'is_contact' => 0, - 'default' => [], - 'title' => 'Do not notify assignees for', - 'description' => 'These activity types will be excluded from automated email notifications to assignees.', - 'html_type' => 'select', - 'html_attributes' => [ - 'multiple' => 1, - 'class' => 'huge crm-select2', - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'activity_type', - ], - 'quick_form_type' => 'Select', - ], - 'menubar_position' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'menubar_position', - 'type' => 'String', - 'html_type' => 'select', - 'default' => 'over-cms-menu', - 'add' => '5.12', - 'title' => 'Menubar position', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Location of the CiviCRM main menu.', - 'help_text' => '', - 'options' => [ - 'over-cms-menu' => 'Replace website menu', - 'below-cms-menu' => 'Below website menu', - 'above-crm-container' => 'Above content area', - 'none' => 'None - disable menu', - ], - ], - 'menubar_color' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'menubar_color', - 'type' => 'String', - 'html_type' => 'color', - 'default' => '#1b1b1b', - 'add' => '5.13', - 'title' => 'Menubar color', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Color of the CiviCRM main menu.', - 'help_text' => '', - 'validate_callback' => 'CRM_Utils_Color::normalize', - ], - 'requestableMimeTypes' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'requestableMimeTypes', - 'type' => 'String', - 'html_type' => 'Text', - 'default' => 'image/jpeg,image/pjpeg,image/gif,image/x-png,image/png,image/jpg,text/html,application/pdf', - 'add' => '5.13', - 'title' => 'Mime Types that can be passed as URL params', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Acceptable Mime Types that can be used as part of file urls', - 'help_text' => '', - ], - 'theme_frontend' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'theme_frontend', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'pseudoconstant' => [ - 'callback' => 'call://themes/getAvailable', - ], - 'default' => 'default', - 'add' => '5.16', - 'title' => 'Frontend Theme', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Theme to use on frontend pages', - 'help_text' => '', - ], - 'theme_backend' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'theme_backend', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'pseudoconstant' => [ - 'callback' => 'call://themes/getAvailable', - ], - 'default' => 'default', - 'add' => '5.16', - 'title' => 'Backend Theme', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Theme to use on backend pages', - 'help_text' => '', - ], - 'http_timeout' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'http_timeout', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 3, - ], - 'default' => 5, - 'add' => '5.14', - 'title' => 'HTTP request timeout', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'How long should HTTP requests through Guzzle application run for in seconds', - 'help_text' => 'Set the number of seconds http requests should run for before terminating', - ], - 'assetCache' => [ - 'group_name' => 'Developer Preferences', - 'group' => 'developer', - 'name' => 'assetCache', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [], - 'default' => 'auto', - 'add' => '4.7', - 'title' => 'Asset Caching', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Store computed JS/CSS content in cache files? (Note: In \"Auto\" mode, the \"Debug\" setting will determine whether to activate the cache.)', - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => '\Civi\Core\AssetBuilder::getCacheModes', - ], - ], - 'userFrameworkLogging' => [ - 'group_name' => 'Developer Preferences', - 'group' => 'developer', - 'name' => 'userFrameworkLogging', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Enable Drupal Watchdog Logging', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Set this value to Yes if you want CiviCRM error/debugging messages to appear in the Drupal error logs.', - 'help_text' => 'Set this value to Yes if you want CiviCRM error/debugging messages the appear in your CMS\' error log. In the case of Drupal, this will cause all CiviCRM error messages to appear in the watchdog (assuming you have Drupal\'s watchdog enabled)', - ], - 'debug_enabled' => [ - 'group_name' => 'Developer Preferences', - 'group' => 'developer', - 'name' => 'debug_enabled', - 'config_key' => 'debug', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Enable Debugging', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Set this value to Yes if you want to use one of CiviCRM\'s debugging tools. This feature should NOT be enabled for production sites.', - 'help_text' => 'Do not turn this on on production sites', - ], - 'backtrace' => [ - 'group_name' => 'Developer Preferences', - 'group' => 'developer', - 'name' => 'backtrace', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Display Backtrace', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Set this value to Yes if you want to display a backtrace listing when a fatal error is encountered. This feature should NOT be enabled for production sites.', - ], - 'environment' => [ - 'group_name' => 'Developer Preferences', - 'group' => 'developer', - 'name' => 'environment', - 'type' => 'String', - 'html_type' => 'Select', - 'quick_form_type' => 'Select', - 'default' => 'Production', - 'pseudoconstant' => [ - 'optionGroupName' => 'environment', - ], - 'add' => '4.7', - 'title' => 'Environment', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Setting to define the environment in which this CiviCRM instance is running.', - 'on_change' => [ - '0' => 'CRM_Core_BAO_Setting::onChangeEnvironmentSetting', - ], - ], - 'fatalErrorHandler' => [ - 'group_name' => 'Developer Preferences', - 'group' => 'developer', - 'name' => 'fatalErrorHandler', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '', - 'add' => '4.3', - 'title' => 'Fatal Error Handler', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Enter the path and class for a custom PHP error-handling function if you want to override built-in CiviCRM error handling for your site.', - ], - 'uploadDir' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'Directory Preferences', - 'group' => 'directory', - 'name' => 'uploadDir', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'title' => 'Temporary Files Directory', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => 'File system path where temporary CiviCRM files - such as import data files - are uploaded.', - ], - 'imageUploadDir' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'Directory Preferences', - 'group' => 'directory', - 'name' => 'imageUploadDir', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'title' => 'Image Directory', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'File system path where image files are uploaded. Currently, this path is used for images associated with premiums (CiviContribute thank-you gifts).', - 'help_text' => '', - ], - 'customFileUploadDir' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'Directory Preferences', - 'group' => 'directory', - 'name' => 'customFileUploadDir', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'title' => 'Custom Files Directory', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Path where documents and images which are attachments to contact records are stored (e.g. contact photos, resumes, contracts, etc.). These attachments are defined using \'file\' type custom fields.', - 'help_text' => '', - ], - 'customTemplateDir' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'Directory Preferences', - 'group' => 'directory', - 'name' => 'customTemplateDir', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'title' => 'Custom Template Directory', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Path where site specific templates are stored if any. This directory is searched first if set. Custom JavaScript code can be added to templates by creating files named templateFile.extra.tpl. (learn more...)', - 'help_text' => '', - ], - 'customPHPPathDir' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'Directory Preferences', - 'group' => 'directory', - 'name' => 'customPHPPathDir', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'title' => 'Custom PHP Directory', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Path where site specific PHP code files are stored if any. This directory is searched first if set.', - 'help_text' => '', - ], - 'extensionsDir' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group_name' => 'Directory Preferences', - 'group' => 'directory', - 'name' => 'extensionsDir', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'title' => 'Extensions Directory', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Path where CiviCRM extensions are stored.', - 'help_text' => '', - ], - 'show_events' => [ - 'name' => 'show_events', - 'group_name' => 'Event Preferences', - 'group' => 'event', - 'settings_pages' => [ - 'event' => [ - 'weight' => 20, - ], - ], - 'type' => 'Integer', - 'quick_form_type' => 'Select', - 'default' => 10, - 'add' => '4.5', - 'title' => 'Dashboard entries', - 'html_type' => 'select', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Configure how many events should be shown on the dashboard. This overrides the default value of 10 entries.', - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::getDashboardEntriesCount', - ], - ], - 'ext_repo_url' => [ - 'group_name' => 'Extension Preferences', - 'group' => 'ext', - 'name' => 'ext_repo_url', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 128, - ], - 'html_type' => 'text', - 'default' => 'https://civicrm.org/extdir/ver={ver}|cms={uf}', - 'add' => '4.3', - 'title' => 'Extension Repo URL', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'customTranslateFunction' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'customTranslateFunction', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '30', - 'maxlength' => '100', - ], - 'default' => '', - 'title' => 'Custom Translate Function', - ], - 'monetaryThousandSeparator' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'monetaryThousandSeparator', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - ], - 'default' => ',', - 'add' => '4.3', - 'title' => 'Thousands Separator', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'monetaryDecimalPoint' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'monetaryDecimalPoint', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - ], - 'default' => '.', - 'add' => '4.3', - 'title' => 'Decimal Delimiter', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'moneyformat' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'moneyformat', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '%c %a', - 'add' => '4.3', - 'title' => 'Monetary Amount Display', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'moneyvalueformat' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'moneyvalueformat', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '%!i', - 'add' => '4.3', - 'title' => 'Monetary Value Display', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'defaultCurrency' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'defaultCurrency', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'default' => 'USD', - 'add' => '4.3', - 'title' => 'Default Currency', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Default currency assigned to contributions and other monetary transactions.', - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getCurrencySymbols', - ], - 'on_change' => [ - '0' => 'CRM_Admin_Form_Setting_Localization::onChangeDefaultCurrency', - ], - ], - 'defaultContactCountry' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'defaultContactCountry', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [], - 'add' => '4.4', - 'title' => 'Default Country', - 'is_domain' => 1, - 'is_contact' => 0, - 'is_required' => '', - 'description' => 'This value is selected by default when adding a new contact address.', - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries', - ], - ], - 'defaultContactStateProvince' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'defaultContactStateProvince', - 'type' => 'Integer', - 'quick_form_type' => 'ChainSelect', - 'html_type' => 'ChainSelect', - 'chain_select_settings' => [ - 'control_field' => 'defaultContactCountry', - ], - 'default' => '', - 'title' => 'Default State/Province', - 'description' => 'This value is selected by default when adding a new contact address.', - ], - 'countryLimit' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'countryLimit', - 'type' => 'Array', - 'quick_form_type' => 'Element', - 'html_type' => 'advmultiselect', - 'html_attributes' => [ - 'size' => 5, - 'style' => 'width:150px', - 'class' => 'advmultiselect', - ], - 'default' => [], - 'add' => '4.3', - 'title' => 'Available Countries', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries', - ], - ], - 'provinceLimit' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'provinceLimit', - 'type' => 'Array', - 'quick_form_type' => 'Element', - 'html_type' => 'advmultiselect', - 'html_attributes' => [ - 'size' => 5, - 'style' => 'width:150px', - 'class' => 'advmultiselect', - ], - 'default' => [], - 'add' => '4.3', - 'title' => 'Available States and Provinces (by Country)', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries', - ], - ], - 'inheritLocale' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'inheritLocale', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.3', - 'title' => 'Inherit CMS Language', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'description' => 'If Yes, the initial session language will be set by the CMS, which can later be changed if using the CiviCRM language switcher.', - ], - 'dateformatDatetime' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatDatetime', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '%B %E%f, %Y %l:%M %P', - 'add' => '4.3', - 'title' => 'Date Format: Complete Date and Time', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'dateformatFull' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatFull', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '%B %E%f, %Y', - 'add' => '4.3', - 'title' => 'Date Format: Complete Date', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'dateformatPartial' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatPartial', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'default' => '%B %Y', - 'add' => '4.3', - 'title' => 'Date Format: Month and Year', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'dateformatTime' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatTime', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '12', - 'maxlength' => '60', - ], - 'default' => '%l:%M %P', - 'title' => 'Date Format: Time Only', - ], - 'dateformatYear' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatYear', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '12', - 'maxlength' => '60', - ], - 'default' => '%Y', - 'title' => 'Date Format: Year Only', - ], - 'dateformatFinancialBatch' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatFinancialBatch', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '12', - 'maxlength' => '60', - ], - 'default' => '%m/%d/%Y', - 'title' => 'Date Format: Financial Batch', - ], - 'dateformatshortdate' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateformatshortdate', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '12', - 'maxlength' => '60', - ], - 'default' => '%m/%d/%Y', - 'title' => 'Date Format: Short date Month Day Year', - ], - 'dateInputFormat' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'dateInputFormat', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::getDatePluginInputFormats', - ], - 'default' => 'mm/dd/yy', - 'title' => 'Date Input Format', - ], - 'fieldSeparator' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'fieldSeparator', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '2', - 'maxlength' => '8', - ], - 'default' => ',', - 'title' => 'Import / Export Field Separator', - 'description' => 'Global CSV separator character. Modify this setting to enable import and export of different kinds of CSV files (for example: \',\' \';\' \':\' \'|\' ).', - ], - 'fiscalYearStart' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'fiscalYearStart', - 'type' => 'Array', - 'quick_form_type' => 'MonthDay', - 'html_type' => 'MonthDay', - 'default' => [ - 'M' => 1, - 'd' => 1, - ], - 'title' => 'Fiscal Year Start', - ], - 'languageLimit' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'languageLimit', - 'type' => 'Array', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'multiple' => 1, - 'class' => 'crm-select2', - ], - 'default' => '', - 'add' => '4.3', - 'title' => 'Available Languages (Multi-lingual)', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_I18n::languages', - ], - ], - 'uiLanguages' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'uiLanguages', - 'type' => 'Array', - 'quick_form_type' => 'Select', - 'html_type' => 'select', - 'html_attributes' => [ - 'multiple' => 1, - 'class' => 'crm-select2', - ], - 'default' => '', - 'add' => '5.9', - 'title' => 'Available Languages', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => 'User Interface languages available to users', - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_I18n::languages', - ], - ], - 'lcMessages' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'lcMessages', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'default' => 'en_US', - 'add' => '4.3', - 'title' => 'Default Language', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getDefaultLocaleOptions', - ], - 'on_change' => [ - '0' => 'CRM_Admin_Form_Setting_Localization::onChangeLcMessages', - ], - ], - 'legacyEncoding' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'legacyEncoding', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '12', - 'maxlength' => '30', - ], - 'default' => 'Windows-1252', - 'title' => 'Legacy Encoding', - 'description' => 'If import files are NOT encoded as UTF-8, specify an alternate character encoding for these files. The default of Windows-1252 will work for Excel-created .CSV files on many computers.', - ], - 'timeInputFormat' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'timeInputFormat', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::getTimeFormats', - ], - 'default' => '1', - 'title' => 'Time Input Format', - 'on_change' => [ - '0' => 'CRM_Core_BAO_PreferencesDate::onChangeSetting', - ], - ], - 'weekBegins' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'weekBegins', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'pseudoconstant' => [ - 'callback' => 'CRM_Utils_Date::getFullWeekdayNames', - ], - 'default' => 0, - 'add' => '4.7', - 'title' => 'Week begins on', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'contact_default_language' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'contact_default_language', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getDefaultLanguageOptions', - ], - 'default' => '*default*', - 'add' => '4.7', - 'title' => 'Default Language for contacts', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Default language (if any) for contact records.', - 'help_text' => 'If a contact is created with no language this setting will determine the language data (if any) to save.You may or may not wish to make an assumption here about whether it matches the site language', - ], - 'pinnedContactCountries' => [ - 'group_name' => 'Localization Preferences', - 'group' => 'localization', - 'name' => 'pinnedContactCountries', - 'type' => 'Array', - 'quick_form_type' => 'Element', - 'html_type' => 'advmultiselect', - 'html_attributes' => [ - 'size' => 5, - 'style' => 'width:150px', - 'class' => 'advmultiselect', - ], - 'default' => [], - 'add' => '5.33', - 'title' => 'Pinned Countries', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Appear in Top section of select list', - 'help_text' => 'Selected countries will appear in top section of country list', - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Localization::getAvailableCountries', - ], - ], - 'profile_double_optin' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'profile_double_optin', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => '1', - 'add' => '4.1', - 'title' => 'Enable Double Opt-in for Profile Group(s) field', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'When CiviMail is enabled, users who \"subscribe\" to a group from a profile Group(s) checkbox will receive a confirmation email. They must respond (opt-in) before they are added to the group.', - 'help_text' => '', - ], - 'track_civimail_replies' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'track_civimail_replies', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.1', - 'title' => 'Track replies using VERP in Reply-To header', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If checked, mailings will default to tracking replies using VERP-ed Reply-To.', - 'help_text' => '', - 'validate_callback' => 'CRM_Core_BAO_Setting::validateBoolSetting', - ], - 'civimail_workflow' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'civimail_workflow', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.1', - 'title' => 'Enable workflow support for CiviMail', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Drupal-only. Rules module must be enabled (beta feature - use with caution).', - 'help_text' => '', - ], - 'civimail_server_wide_lock' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'civimail_server_wide_lock', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.1', - 'title' => 'Enable global server wide lock for CiviMail', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'replyTo' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'replyTo', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.6', - 'title' => 'Enable Custom Reply-To', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Allow CiviMail users to send mailings with a custom Reply-To header.', - 'help_text' => '', - ], - 'mailing_backend' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'mailing_backend', - 'type' => 'Array', - 'html_type' => 'checkbox', - 'default' => [ - 'outBound_option' => '3', - ], - 'add' => '4.1', - 'title' => 'Mailing Backend', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'profile_add_to_group_double_optin' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'profile_add_to_group_double_optin', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.1', - 'title' => 'Enable Double Opt-in for Profiles which use the \"Add to Group\" setting', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'When CiviMail is enabled and a profile uses the \"Add to Group\" setting, users who complete the profile form will receive a confirmation email. They must respond (opt-in) before they are added to the group.', - 'help_text' => '', - ], - 'disable_mandatory_tokens_check' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'disable_mandatory_tokens_check', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.4', - 'title' => 'Disable check for mandatory tokens', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Don\'t check for presence of mandatory tokens (domain address; unsubscribe/opt-out) before sending mailings. WARNING: Mandatory tokens are a safe-guard which facilitate compliance with the US CAN-SPAM Act. They should only be disabled if your organization adopts other mechanisms for compliance or if your organization is not subject to CAN-SPAM.', - 'help_text' => '', - ], - 'dedupe_email_default' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'dedupe_email_default', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 1, - 'add' => '4.5', - 'title' => 'CiviMail dedupes e-mail addresses by default', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Set the \"dedupe e-mail\" option when sending a new mailing to \"true\" by default.', - 'help_text' => '', - ], - 'hash_mailing_url' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'hash_mailing_url', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.5', - 'title' => 'Hashed Mailing URL\'s', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, a randomized hash key will be used to reference the mailing URL in the mailing.viewUrl token, instead of the mailing ID.', - 'help_text' => '', - ], - 'civimail_multiple_bulk_emails' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'civimail_multiple_bulk_emails', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => 0, - 'add' => '4.5', - 'title' => 'Enable multiple bulk email address for a contact.', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'CiviMail will deliver a copy of the email to each bulk email listed for the contact. Enabling this setting will also change the options for the \"Email on Hold\" field in Advanced Search.', - 'help_text' => '', - ], - 'include_message_id' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'include_message_id', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'default' => '', - 'add' => '4.5', - 'title' => 'Enable CiviMail to generate Message-ID header', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'mailerBatchLimit' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'mailerBatchLimit', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 8, - ], - 'default' => 0, - 'add' => '4.7', - 'title' => 'Mailer Batch Limit', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Throttle email delivery by setting the maximum number of emails sent during each CiviMail run (0 = unlimited).', - 'help_text' => '', - ], - 'mailerJobSize' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'mailerJobSize', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 8, - ], - 'default' => 0, - 'add' => '4.7', - 'title' => 'Mailer Job Size', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If you want to utilize multi-threading enter the size you want your sub jobs to be split into. Recommended values are between 1,000 and 10,000. Use a lower value if your server has multiple cron jobs running simultaneously, but do not use values smaller than 1,000. Enter \"0\" to disable multi-threading and process mail as one single job - batch limits still apply.', - 'help_text' => '', - ], - 'mailerJobsMax' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'mailerJobsMax', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 8, - ], - 'default' => 0, - 'add' => '4.7', - 'title' => 'Mailer Cron Job Limit', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'The maximum number of mailer delivery jobs executing simultaneously (0 = allow as many processes to execute as started by cron).', - 'help_text' => '', - ], - 'mailThrottleTime' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'mailThrottleTime', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 8, - ], - 'default' => 0, - 'add' => '4.7', - 'title' => 'Mailer Throttle Time', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'The time to sleep in between each e-mail in micro seconds. Setting this above 0 allows you to control the rate at which e-mail messages are sent to the mail server, avoiding filling up the mail queue very quickly. Set to 0 to disable.', - 'help_text' => '', - ], - 'verpSeparator' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'verpSeparator', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 32, - ], - 'default' => '.', - 'add' => '4.7', - 'title' => 'VERP Separator', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Separator character used when CiviMail generates VERP (variable envelope return path) Mail-From addresses.', - 'help_text' => '', - ], - 'write_activity_record' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'write_activity_record', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'CheckBox', - 'default' => '1', - 'add' => '4.7', - 'title' => 'Enable CiviMail to create activities on delivery', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'simple_mail_limit' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'simple_mail_limit', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 8, - ], - 'default' => 50, - 'title' => 'Simple mail limit', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'The number of emails sendable via simple mail. Make sure you understand the implications for your spam reputation and legal requirements for bulk emails before editing. As there is some risk both to your spam reputation and the products if this is misused it is a hidden setting.', - 'help_text' => 'CiviCRM forces users sending more than this number of mails to use CiviMails. CiviMails have additional precautions: not sending to contacts who do not want bulk mail, adding domain name and opt out links. You should familiarise yourself with the law relevant to you on bulk mailings if changing this setting. For the US https://en.wikipedia.org/wiki/CAN-SPAM_Act_of_2003 is a good place to start.', - ], - 'auto_recipient_rebuild' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'auto_recipient_rebuild', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'CheckBox', - 'default' => '1', - 'title' => 'Enable automatic CiviMail recipient count display', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Enable this setting to rebuild recipient list automatically during composing mail. Disable will allow you to rebuild recipient manually.', - 'help_text' => 'CiviMail automatically fetches recipient list and count whenever mailing groups are included or excluded while composing bulk mail. This phenomena may degrade performance for large sites, so disable this setting to build and fetch recipients for selected groups, manually.', - ], - 'allow_mail_from_logged_in_contact' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'allow_mail_from_logged_in_contact', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'title' => 'Allow mail from logged in contact', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Allow sending email from the logged in contact\'s email address.', - 'help_text' => 'CiviCRM allows you to send email from the domain from email addresses and the logged in contact id addresses by default. Disable this if you only want to allow the domain from addresses to be used.', - ], - 'url_tracking_default' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'url_tracking_default', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'CheckBox', - 'default' => '1', - 'title' => 'Enable click-through tracking by default', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If checked, mailings will have click-through tracking enabled by default.', - 'help_text' => '', - ], - 'open_tracking_default' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'open_tracking_default', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'CheckBox', - 'default' => '1', - 'title' => 'Enable open tracking by default', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If checked, mailings will have open tracking enabled by default.', - 'help_text' => '', - ], - 'civimail_sync_interval' => [ - 'group_name' => 'Mailing Preferences', - 'group' => 'mailing', - 'name' => 'civimail_sync_interval', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 4, - 'maxlength' => 8, - ], - 'default' => 10, - 'title' => 'Database Update Frequency', - 'add' => '5.28', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'The frequency that CiviMail updates its sent mail database.', - 'help_text' => '', - ], - 'geoAPIKey' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Map Preferences', - 'group' => 'map', - 'name' => 'geoAPIKey', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '32', - 'maxlength' => '64', - ], - 'default' => '', - 'title' => 'Geo Provider Key', - 'description' => 'Enter the API key or Application ID associated with your geocoding provider.', - ], - 'geoProvider' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Map Preferences', - 'group' => 'map', - 'name' => 'geoProvider', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::geoProvider', - ], - 'default' => '', - 'title' => 'Geocoding Provider', - 'description' => 'This can be the same or different from the mapping provider selected.', - ], - 'mapAPIKey' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Map Preferences', - 'group' => 'map', - 'name' => 'mapAPIKey', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => '32', - 'maxlength' => '64', - ], - 'default' => '', - 'title' => 'Map Provider Key', - 'description' => 'Enter your API Key or Application ID. An API Key is required for the Google Maps API. Refer to developers.google.com for the latest information.', - ], - 'mapProvider' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'Map Preferences', - 'group' => 'map', - 'name' => 'mapProvider', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::mapProvider', - ], - 'default' => '', - 'title' => 'Mapping Provider', - 'description' => 'Choose the mapping provider that has the best coverage for the majority of your contact addresses.', - ], - 'default_renewal_contribution_page' => [ - 'group_name' => 'Member Preferences', - 'group' => 'member', - 'name' => 'default_renewal_contribution_page', - 'type' => 'Integer', - 'html_type' => 'select', - 'default' => '', - 'pseudoconstant' => [ - 'callback' => 'CRM_Contribute_PseudoConstant::contributionPage', - ], - 'add' => '4.1', - 'title' => 'Default online membership renewal page', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If you select a default online contribution page for self-service membership renewals, a \"renew\" link pointing to that page will be displayed on the Contact Dashboard for memberships which were entered offline. You will need to ensure that the membership block for the selected online contribution page includes any currently available memberships.', - 'help_text' => '', - ], - 'is_enabled' => [ - 'group_name' => 'Multi Site Preferences', - 'group' => 'multisite', - 'name' => 'is_enabled', - 'title' => 'Enable Multi Site Configuration', - 'html_type' => 'checkbox', - 'type' => 'Boolean', - 'default' => 0, - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Make CiviCRM aware of multiple domains. You should configure a domain group if enabled', - 'documentation_link' => [ - 'page' => 'Multi Site Installation', - 'resource' => 'wiki', - ], - 'help_text' => '', - 'settings_pages' => [ - 'multisite' => [ - 'weight' => 10, - ], - ], - ], - 'domain_group_id' => [ - 'group_name' => 'Multi Site Preferences', - 'group' => 'multisite', - 'name' => 'domain_group_id', - 'title' => 'Multisite Domain Group', - 'type' => 'Integer', - 'html_type' => 'entity_reference', - 'entity_reference_options' => [ - 'entity' => 'Group', - 'select' => [ - 'minimumInputLength' => 0, - ], - ], - 'default' => 0, - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Contacts created on this site are added to this group', - 'help_text' => '', - 'settings_pages' => [ - 'multisite' => [ - 'weight' => 20, - ], - ], - ], - 'event_price_set_domain_id' => [ - 'group_name' => 'Multi Site Preferences', - 'group' => 'multisite', - 'name' => 'event_price_set_domain_id', - 'title' => 'Domain Event Price Set', - 'type' => 'Integer', - 'default' => 0, - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'uniq_email_per_site' => [ - 'group_name' => 'Multi Site Preferences', - 'group' => 'multisite', - 'name' => 'uniq_email_per_site', - 'type' => 'Integer', - 'title' => 'Unique Email per Domain?', - 'default' => 0, - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - ], - 'search_autocomplete_count' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'search_autocomplete_count', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'number', - 'default' => 10, - 'add' => '4.3', - 'title' => 'Autocomplete Results', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'The maximum number of contacts to show at a time when typing in an autocomplete field.', - 'help_text' => '', - ], - 'enable_innodb_fts' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'enable_innodb_fts', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.4', - 'title' => 'InnoDB Full Text Search', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Enable InnoDB full-text search optimizations. (Requires MySQL 5.6+)', - 'help_text' => '', - 'on_change' => [ - '0' => [ - '0' => 'CRM_Core_InnoDBIndexer', - '1' => 'onToggleFts', - ], - ], - ], - 'includeOrderByClause' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'includeOrderByClause', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.6', - 'title' => 'Include Order By Clause', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If disabled, the search results will not be ordered. This may improve response time on search results on large datasets.', - 'help_text' => '', - ], - 'includeWildCardInName' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'includeWildCardInName', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.6', - 'title' => 'Automatic Wildcard', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, wildcards are automatically added to the beginning AND end of the search term when users search for contacts by Name. EXAMPLE: Searching for \'ada\' will return any contact whose name includes those letters - e.g. \'Adams, Janet\', \'Nadal, Jorge\', etc. If disabled, a wildcard is added to the end of the search term only. EXAMPLE: Searching for \'ada\' will return any contact whose last name begins with those letters - e.g. \'Adams, Janet\' but NOT \'Nadal, Jorge\'. Disabling this feature will speed up search significantly for larger databases, but users must manually enter wildcards (\'%\' or \'_\') to the beginning of the search term if they want to find all records which contain those letters. EXAMPLE: \'%ada\' will return \'Nadal, Jorge\'.', - 'help_text' => '', - ], - 'includeEmailInName' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'includeEmailInName', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.6', - 'title' => 'Include Email', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, email addresses are automatically included when users search by Name. Disabling this feature will speed up search significantly for larger databases, but users will need to use the Email search fields (from Advanced Search, Search Builder, or Profiles) to find contacts by email address.', - 'help_text' => '', - ], - 'includeNickNameInName' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'includeNickNameInName', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 0, - 'add' => '4.6', - 'title' => 'Include Nickname', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, nicknames are automatically included when users search by Name.', - 'help_text' => '', - ], - 'includeAlphabeticalPager' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'includeAlphabeticalPager', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.6', - 'title' => 'Include Alphabetical Pager', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If disabled, the alphabetical pager will not be displayed on the search screens. This will improve response time on search results on large datasets.', - 'help_text' => '', - ], - 'smartGroupCacheTimeout' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'smartGroupCacheTimeout', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'number', - 'default' => 5, - 'add' => '4.6', - 'title' => 'Smart group cache timeout', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'The number of minutes to cache smart group contacts. We strongly recommend that this value be greater than zero, since a value of zero means no caching at all. If your contact data changes frequently, you should set this value to at least 5 minutes.', - 'help_text' => '', - ], - 'defaultSearchProfileID' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'defaultSearchProfileID', - 'type' => 'Integer', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [ - 'class' => 'crm-select2', - ], - 'pseudoconstant' => [ - 'callback' => 'CRM_Admin_Form_Setting_Search::getAvailableProfiles', - ], - 'default' => '', - 'add' => '4.6', - 'title' => 'Default Contact Search Profile', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If set, this will be the default profile used for contact search.', - 'help_text' => '', - ], - 'prevNextBackend' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'prevNextBackend', - 'type' => 'String', - 'quick_form_type' => 'Select', - 'html_type' => 'Select', - 'html_attributes' => [], - 'default' => 'default', - 'add' => '5.9', - 'title' => 'PrevNext Cache', - 'is_domain' => 1, - 'is_contact' => 0, - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_BAO_PrevNextCache::getPrevNextBackends', - ], - 'description' => 'When performing a search, how should the search-results be cached?', - 'help_text' => '', - ], - 'searchPrimaryDetailsOnly' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'searchPrimaryDetailsOnly', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'default' => 1, - 'add' => '4.7', - 'title' => 'Search Primary Details Only', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'If enabled, only primary details (eg contact\'s primary email, phone, etc) will be included in Basic and Advanced Search results. Disabling this feature will allow users to match contacts using any email, phone etc detail.', - 'help_text' => '', - ], - 'quicksearch_options' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'quicksearch_options', - 'type' => 'string', - 'serialize' => 1, - 'html_type' => 'checkboxes', - 'sortable' => TRUE, - 'pseudoconstant' => [ - 'callback' => 'CRM_Core_SelectValues::quicksearchOptions', - ], - 'default' => [ - '0' => 'sort_name', - '1' => 'contact_id', - '2' => 'external_identifier', - '3' => 'first_name', - '4' => 'last_name', - '5' => 'email', - '6' => 'phone_numeric', - '7' => 'street_address', - '8' => 'city', - '9' => 'postal_code', - '10' => 'job_title', - ], - 'add' => '5.8', - 'title' => 'Quicksearch options', - 'is_domain' => '1', - 'is_contact' => 0, - 'description' => 'Which fields can be searched on in the menubar quicksearch box? Don\'t see your custom field here? Make sure it is marked as Searchable.', - 'help_text' => '', - ], - 'default_pager_size' => [ - 'group_name' => 'Search Preferences', - 'group' => 'Search Preferences', - 'name' => 'default_pager_size', - 'type' => 'Integer', - 'quick_form_type' => 'Element', - 'html_type' => 'text', - 'html_attributes' => [ - 'size' => 2, - 'maxlength' => 3, - ], - 'default' => 50, - 'add' => '5.39', - 'title' => 'Default Search Pager size', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'What is the default number of records to show on a search', - 'help_text' => '', - ], - 'userFrameworkResourceURL' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group' => 'url', - 'group_name' => 'URL Preferences', - 'name' => 'userFrameworkResourceURL', - 'title' => 'CiviCRM Resource URL', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Absolute URL of the location where the civicrm module or component has been installed.', - 'help_text' => '', - 'validate_callback' => 'CRM_Utils_Rule::urlish', - ], - 'imageUploadURL' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group' => 'url', - 'group_name' => 'URL Preferences', - 'title' => 'Image Upload URL', - 'name' => 'imageUploadURL', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'URL of the location for uploaded image files.', - 'help_text' => '', - 'validate_callback' => 'CRM_Utils_Rule::urlish', - ], - 'customCSSURL' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group' => 'url', - 'group_name' => 'URL Preferences', - 'name' => 'customCSSURL', - 'title' => 'Custom CSS URL', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'You can modify the look and feel of CiviCRM by adding your own stylesheet. For small to medium sized modifications, use your css file to override some of the styles in civicrm.css. Or if you need to make drastic changes, you can choose to disable civicrm.css completely.', - 'help_text' => '', - 'validate_callback' => 'CRM_Utils_Rule::urlish', - ], - 'extensionsURL' => [ - 'bootstrap_comment' => 'This is a boot setting which may be loaded during bootstrap. Defaults are loaded via SettingsBag::getSystemDefaults().', - 'group' => 'url', - 'group_name' => 'URL Preferences', - 'title' => 'Extension Resource URL', - 'name' => 'extensionsURL', - 'type' => 'String', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'default' => '', - 'add' => '4.1', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Base URL for extension resources (images, stylesheets, etc). This should match extensionsDir.', - 'help_text' => '', - 'validate_callback' => 'CRM_Utils_Rule::urlish', - ], - 'enable_cart' => [ - 'name' => 'enable_cart', - 'group_name' => 'Event Preferences', - 'settings_pages' => [ - 'event' => [ - 'weight' => 10, - ], - ], - 'group' => 'event', - 'type' => 'Boolean', - 'quick_form_type' => 'CheckBox', - 'default' => 0, - 'add' => '4.1', - 'title' => 'Use Shopping Cart Style Event Registration', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'This feature allows users to register for more than one event at a time. When enabled, users will add event(s) to a \"cart\" and then pay for them all at once. Enabling this setting will affect online registration for all active events. The code is an alpha state, and you will potentially need to have developer resources to debug and fix sections of the codebase while testing and deploying it', - 'help_text' => '', - 'documentation_link' => [ - 'page' => 'CiviEvent Cart Checkout', - 'resource' => 'wiki', - ], - ], - 'acl_financial_type' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'acl_financial_type', - 'type' => 'Boolean', - 'html_type' => 'checkbox', - 'quick_form_type' => 'Element', - 'default' => 0, - 'add' => '4.7', - 'title' => 'Enable Access Control by Financial Type', - 'is_domain' => 1, - 'is_contact' => 0, - 'help_text' => '', - 'help' => [ - 'id' => 'acl_financial_type', - ], - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 30, - ], - ], - 'on_change' => [ - '0' => 'financialacls_toggle', - ], - ], - 'recaptchaPublicKey' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'recaptchaPublicKey', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 64, - ], - 'html_type' => 'text', - 'default' => '', - 'add' => '4.3', - 'title' => 'reCAPTCHA Site Key', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - 'settings_pages' => [ - 'recaptcha' => [ - 'weight' => 10, - ], - ], - ], - 'recaptchaPrivateKey' => [ - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'recaptchaPrivateKey', - 'type' => 'String', - 'quick_form_type' => 'Element', - 'html_attributes' => [ - 'size' => 64, - 'maxlength' => 64, - ], - 'html_type' => 'text', - 'default' => '', - 'add' => '4.3', - 'title' => 'reCAPTCHA Secret Key', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => '', - 'help_text' => '', - 'settings_pages' => [ - 'recaptcha' => [ - 'weight' => 10, - ], - ], - ], - 'forceRecaptcha' => [ - 'add' => '4.7', - 'help_text' => '', - 'is_domain' => 1, - 'is_contact' => 0, - 'group_name' => 'CiviCRM Preferences', - 'group' => 'core', - 'name' => 'forceRecaptcha', - 'type' => 'Boolean', - 'quick_form_type' => 'YesNo', - 'html_type' => '', - 'default' => 0, - 'title' => 'Force reCAPTCHA on Contribution pages', - 'description' => 'If enabled, reCAPTCHA will show on all contribution pages.', - 'settings_pages' => [ - 'recaptcha' => [ - 'weight' => 10, - ], - ], - ], - 'credit_notes_prefix' => [ - 'group_name' => 'Contribute Preferences', - 'group' => 'contribute', - 'name' => 'credit_notes_prefix', - 'html_type' => 'text', - 'quick_form_type' => 'Element', - 'add' => '5.23', - 'type' => 2, - 'title' => 'Credit Notes Prefix', - 'is_domain' => 1, - 'is_contact' => 0, - 'description' => 'Prefix to be prepended to credit note ids', - 'default' => 'CN_', - 'help_text' => 'The credit note ID is generated when a contribution is set to Refunded, Cancelled or Chargeback. It is visible on invoices, if invoices are enabled', - 'settings_pages' => [ - 'contribute' => [ - 'weight' => 80, - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/GetSettingCurrentDomain.ex.php b/civicrm/api/v3/examples/Setting/GetSettingCurrentDomain.ex.php deleted file mode 100644 index b24dd50b40e90213804f406d6ef95c8e4367dc68..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/GetSettingCurrentDomain.ex.php +++ /dev/null @@ -1,82 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.get API. - * - * Shows getting a variable for a current domain. - * - * @return array - * API result array - */ -function setting_get_example() { - $params = [ - 'return' => 'uniq_email_per_site', - ]; - - try { - $result = civicrm_api3('Setting', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'uniq_email_per_site' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSetting" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/GetSpecifiedDomains.ex.php b/civicrm/api/v3/examples/Setting/GetSpecifiedDomains.ex.php deleted file mode 100644 index e5b6f83f620703f23bdbb98ebf77157b2d201f17..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/GetSpecifiedDomains.ex.php +++ /dev/null @@ -1,90 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.get API. - * - * Shows getting a variable for specified domains. - * - * @return array - * API result array - */ -function setting_get_example() { - $params = [ - 'domain_id' => [ - '0' => 1, - '1' => 37, - ], - 'return' => [ - '0' => 'uniq_email_per_site', - ], - ]; - - try { - $result = civicrm_api3('Setting', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 2, - 'values' => [ - '1' => [ - 'uniq_email_per_site' => 0, - ], - '37' => [ - 'uniq_email_per_site' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSettingMultipleDomains" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/GetValue.ex.php b/civicrm/api/v3/examples/Setting/GetValue.ex.php deleted file mode 100644 index 9125ca52561171f467ea5846c0a0f930ddc8d572..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/GetValue.ex.php +++ /dev/null @@ -1,73 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.getvalue API. - * - * Demonstrates getvalue action - intended for runtime use as better caching than get. - * - * @return array - * API result array - */ -function setting_getvalue_example() { - $params = [ - 'name' => 'petition_contacts', - 'group' => 'Campaign Preferences', - ]; - - try { - $result = civicrm_api3('Setting', 'getvalue', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_getvalue_expectedresult() { - - $expectedResult = 'Petition Contacts'; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetValue" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Setting/Revert.ex.php b/civicrm/api/v3/examples/Setting/Revert.ex.php deleted file mode 100644 index 5d414f96314b98fea6d3396e189b71e47075c322..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Setting/Revert.ex.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Setting.revert API. - * - * Demonstrates reverting a parameter to default value. - * - * @return array - * API result array - */ -function setting_revert_example() { - $params = [ - 'name' => 'address_format', - ]; - - try { - $result = civicrm_api3('Setting', 'revert', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function setting_revert_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 5, - 'id' => 1, - 'values' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'address_format' => '{contact.address_name} -{contact.street_address} -{contact.supplemental_address_1} -{contact.supplemental_address_2} -{contact.supplemental_address_3} -{contact.city}{, }{contact.state_province}{ }{contact.postal_code} -{contact.country}', - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testRevert" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SettingTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/StateProvince/Create.ex.php b/civicrm/api/v3/examples/StateProvince/Create.ex.php deleted file mode 100644 index 2d07ecf6b2610f7ae31f5f4d9832b3f442ff4cf7..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/StateProvince/Create.ex.php +++ /dev/null @@ -1,86 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the StateProvince.create API. - * - * @return array - * API result array - */ -function state_province_create_example() { - $params = [ - 'name' => 'Wessex', - 'abbreviation' => 'WEX', - 'country_id' => 1226, - ]; - - try { - $result = civicrm_api3('StateProvince', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function state_province_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 14064, - 'values' => [ - '14064' => [ - 'id' => '14064', - 'name' => 'Wessex', - 'abbreviation' => 'WEX', - 'country_id' => '1226', - 'is_active' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateStateProvince" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/StateProvinceTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/StateProvince/Delete.ex.php b/civicrm/api/v3/examples/StateProvince/Delete.ex.php deleted file mode 100644 index c51a5a0e699ccf01b336825262bfeefae6b4cc6b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/StateProvince/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the StateProvince.delete API. - * - * @return array - * API result array - */ -function state_province_delete_example() { - $params = [ - 'id' => 14066, - ]; - - try { - $result = civicrm_api3('StateProvince', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function state_province_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteStateProvince" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/StateProvinceTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/StateProvince/Get.ex.php b/civicrm/api/v3/examples/StateProvince/Get.ex.php deleted file mode 100644 index 18d2a9ce4ad3d724c9cd08dc48d14f25a505f6ef..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/StateProvince/Get.ex.php +++ /dev/null @@ -1,84 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the StateProvince.get API. - * - * @return array - * API result array - */ -function state_province_get_example() { - $params = [ - 'name' => 'Wessex', - ]; - - try { - $result = civicrm_api3('StateProvince', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function state_province_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 14068, - 'values' => [ - '14068' => [ - 'id' => '14068', - 'name' => 'Wessex', - 'abbreviation' => 'WEX', - 'country_id' => '1226', - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/StateProvinceTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/StatusPreference/Create.ex.php b/civicrm/api/v3/examples/StatusPreference/Create.ex.php deleted file mode 100644 index 6eb9b4525d767f0cfe8d7c3ae63d0fd42226470e..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/StatusPreference/Create.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the StatusPreference.create API. - * - * @return array - * API result array - */ -function status_preference_create_example() { - $params = [ - 'name' => 'test_check', - 'domain_id' => 1, - 'hush_until' => '20151212', - 'ignore_severity' => 'cRItical', - 'check_info' => '', - ]; - - try { - $result = civicrm_api3('StatusPreference', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function status_preference_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 7, - 'values' => [ - '7' => [ - 'id' => '7', - 'domain_id' => '1', - 'name' => 'test_check', - 'hush_until' => '20151212000000', - 'ignore_severity' => '5', - 'prefs' => '', - 'check_info' => '', - 'is_active' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSeverityByName" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/StatusPreferenceTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/StatusPreference/Delete.ex.php b/civicrm/api/v3/examples/StatusPreference/Delete.ex.php deleted file mode 100644 index a4582c6eec69f0924a90ba4c6847a932dcd42a48..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/StatusPreference/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the StatusPreference.delete API. - * - * @return array - * API result array - */ -function status_preference_delete_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('StatusPreference', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function status_preference_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteStatusPreference" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/StatusPreferenceTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/StatusPreference/Get.ex.php b/civicrm/api/v3/examples/StatusPreference/Get.ex.php deleted file mode 100644 index f94a270575db510d9b327a35fe7e68eac2cff797..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/StatusPreference/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the StatusPreference.get API. - * - * @return array - * API result array - */ -function status_preference_get_example() { - $params = [ - 'id' => 5, - ]; - - try { - $result = civicrm_api3('StatusPreference', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function status_preference_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 5, - 'values' => [ - '5' => [ - 'id' => '5', - 'domain_id' => '1', - 'name' => 'test_check', - 'hush_until' => '2015-12-12', - 'ignore_severity' => '4', - 'is_active' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testStatusPreferenceGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/StatusPreferenceTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Survey/ChainedGetDelete.ex.php b/civicrm/api/v3/examples/Survey/ChainedGetDelete.ex.php deleted file mode 100644 index 4a24b150d96d426cb76018c796704008c329c4d2..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Survey/ChainedGetDelete.ex.php +++ /dev/null @@ -1,98 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Survey.get API. - * - * Demonstrates get + delete in the same call. - * - * @return array - * API result array - */ -function survey_get_example() { - $params = [ - 'title' => 'survey title', - 'api.survey.delete' => 1, - ]; - - try { - $result = civicrm_api3('Survey', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function survey_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 4, - 'values' => [ - '4' => [ - 'id' => '4', - 'title' => 'survey title', - 'activity_type_id' => '30', - 'instructions' => 'Call people, ask for money', - 'max_number_of_contacts' => '12', - 'is_active' => '1', - 'is_default' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'bypass_confirm' => 0, - 'is_share' => '1', - 'api.survey.delete' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSurveyChainDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SurveyTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Survey/Create.ex.php b/civicrm/api/v3/examples/Survey/Create.ex.php deleted file mode 100644 index ef2eba60f456fbe4df8ab93792a07d808af0ae14..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Survey/Create.ex.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Survey.create API. - * - * @return array - * API result array - */ -function survey_create_example() { - $params = [ - 'title' => 'survey title', - 'activity_type_id' => '30', - 'max_number_of_contacts' => 12, - 'instructions' => 'Call people, ask for money', - ]; - - try { - $result = civicrm_api3('Survey', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function survey_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'title' => 'survey title', - 'campaign_id' => '', - 'activity_type_id' => '30', - 'recontact_interval' => '', - 'instructions' => 'Call people, ask for money', - 'release_frequency' => '', - 'max_number_of_contacts' => '12', - 'default_number_of_contacts' => '', - 'is_active' => '', - 'is_default' => '', - 'created_id' => '', - 'created_date' => '2013-07-28 08:49:19', - 'last_modified_id' => '', - 'last_modified_date' => '', - 'result_id' => '', - 'bypass_confirm' => '', - 'thankyou_title' => '', - 'thankyou_text' => '', - 'is_share' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSurvey" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SurveyTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Survey/Delete.ex.php b/civicrm/api/v3/examples/Survey/Delete.ex.php deleted file mode 100644 index b93ad2be835d909f56eb7bc4744e037bd441561b..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Survey/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Survey.delete API. - * - * @return array - * API result array - */ -function survey_delete_example() { - $params = [ - 'id' => 3, - ]; - - try { - $result = civicrm_api3('Survey', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function survey_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteSurvey" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SurveyTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Survey/Get.ex.php b/civicrm/api/v3/examples/Survey/Get.ex.php deleted file mode 100644 index 06a257139eb8896450e1eb14510c0386ce5dc4e0..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Survey/Get.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Survey.get API. - * - * @return array - * API result array - */ -function survey_get_example() { - $params = [ - 'title' => 'survey title', - 'activity_type_id' => '30', - 'max_number_of_contacts' => 12, - 'instructions' => 'Call people, ask for money', - ]; - - try { - $result = civicrm_api3('Survey', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function survey_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'title' => 'survey title', - 'activity_type_id' => '30', - 'instructions' => 'Call people, ask for money', - 'max_number_of_contacts' => '12', - 'is_active' => '1', - 'is_default' => 0, - 'created_date' => '2013-07-28 08:49:19', - 'bypass_confirm' => 0, - 'is_share' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSurvey" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SurveyTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/SurveyRespondant/Get.ex.php b/civicrm/api/v3/examples/SurveyRespondant/Get.ex.php deleted file mode 100644 index 87ad6fa3333a8b4d1bcd444e9ed34edd11d9d773..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/SurveyRespondant/Get.ex.php +++ /dev/null @@ -1,80 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the SurveyRespondant.get API. - * - * @deprecated - * The SurveyRespondant api is not currently supported. - * - * @return array - * API result array - */ -function survey_respondant_get_example() { - $params = [ - 'sequential' => '1', - 'survey_id' => 1, - ]; - - try { - $result = civicrm_api3('SurveyRespondant', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function survey_respondant_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - 'deprecated' => 'The SurveyRespondant api is not currently supported.', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetSurveyRespondants" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SurveyRespondantTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/System/Flush.ex.php b/civicrm/api/v3/examples/System/Flush.ex.php deleted file mode 100644 index 5e9f8acbdd29fe3cc12414daafe053dee2514db8..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/System/Flush.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the System.flush API. - * - * Flush all system caches. - * - * @return array - * API result array - */ -function system_flush_example() { - $params = []; - - try { - $result = civicrm_api3('System', 'flush', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function system_flush_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testFlush" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/SystemTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Tag/Create.ex.php b/civicrm/api/v3/examples/Tag/Create.ex.php deleted file mode 100644 index 92da15c578b041d24343d93cc33607e59dd88797..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Tag/Create.ex.php +++ /dev/null @@ -1,91 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Tag.create API. - * - * @return array - * API result array - */ -function tag_create_example() { - $params = [ - 'name' => 'Super Heros', - 'description' => 'Outside undie-wearers', - ]; - - try { - $result = civicrm_api3('Tag', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tag_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 17, - 'values' => [ - '17' => [ - 'id' => '17', - 'name' => 'Super Heros', - 'description' => 'Outside undie-wearers', - 'parent_id' => '', - 'is_selectable' => '', - 'is_reserved' => '', - 'is_tagset' => '', - 'used_for' => 'civicrm_contact', - 'created_id' => '', - 'color' => '', - 'created_date' => '2013-07-28 08:49:19', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Tag/Delete.ex.php b/civicrm/api/v3/examples/Tag/Delete.ex.php deleted file mode 100644 index a00738ac35760788322e6fd511b6fa95bf3a03b5..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Tag/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Tag.delete API. - * - * @return array - * API result array - */ -function tag_delete_example() { - $params = [ - 'id' => '24', - ]; - - try { - $result = civicrm_api3('Tag', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tag_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testTagDeleteCorrectSyntax" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Tag/Get.ex.php b/civicrm/api/v3/examples/Tag/Get.ex.php deleted file mode 100644 index f2d1b724b68ea980942f460ae35246b6c3762af1..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Tag/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Tag.get API. - * - * @return array - * API result array - */ -function tag_get_example() { - $params = [ - 'id' => '8', - 'name' => 'New Tag3', - ]; - - try { - $result = civicrm_api3('Tag', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tag_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 8, - 'values' => [ - '8' => [ - 'id' => '8', - 'name' => 'New Tag3', - 'description' => 'This is description for Our New Tag ', - 'is_selectable' => '1', - 'is_reserved' => 0, - 'is_tagset' => 0, - 'used_for' => 'civicrm_contact', - 'created_date' => '2013-07-28 08:49:19', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Tag/GetFields.ex.php b/civicrm/api/v3/examples/Tag/GetFields.ex.php deleted file mode 100644 index c754b5a43398bd58042b3268321a98ae730d12cb..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Tag/GetFields.ex.php +++ /dev/null @@ -1,269 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Tag.getfields API. - * - * Demonstrate use of getfields to interrogate api. - * - * @return array - * API result array - */ -function tag_getfields_example() { - $params = [ - 'action' => 'create', - ]; - - try { - $result = civicrm_api3('Tag', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tag_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 11, - 'values' => [ - 'id' => [ - 'name' => 'id', - 'type' => 1, - 'title' => 'Tag ID', - 'description' => 'Tag ID', - 'required' => TRUE, - 'where' => 'civicrm_tag.id', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'tag', - ], - ], - 'name' => [ - 'name' => 'name', - 'type' => 2, - 'title' => 'Tag Name', - 'description' => 'Name of Tag.', - 'required' => TRUE, - 'maxlength' => 64, - 'size' => 30, - 'where' => 'civicrm_tag.name', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '1.1', - 'is_core_field' => TRUE, - 'api.required' => 1, - ], - 'description' => [ - 'name' => 'description', - 'type' => 2, - 'title' => 'Description', - 'description' => 'Optional verbose description of the tag.', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_tag.description', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '1.1', - 'is_core_field' => TRUE, - ], - 'parent_id' => [ - 'name' => 'parent_id', - 'type' => 1, - 'title' => 'Parent Tag ID', - 'description' => 'Optional parent id for this tag.', - 'where' => 'civicrm_tag.parent_id', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'FKClassName' => 'CRM_Core_DAO_Tag', - 'html' => [ - 'label' => 'Parent Tag', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'table' => 'civicrm_tag', - 'keyColumn' => 'id', - 'labelColumn' => 'name', - ], - 'add' => '1.1', - 'is_core_field' => TRUE, - 'FKApiName' => 'Tag', - ], - 'is_selectable' => [ - 'name' => 'is_selectable', - 'type' => 16, - 'title' => 'Display Tag?', - 'description' => 'Is this tag selectable / displayed', - 'where' => 'civicrm_tag.is_selectable', - 'default' => '1', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '2.1', - 'is_core_field' => TRUE, - ], - 'is_reserved' => [ - 'name' => 'is_reserved', - 'type' => 16, - 'title' => 'Reserved', - 'where' => 'civicrm_tag.is_reserved', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '3.2', - 'is_core_field' => TRUE, - ], - 'is_tagset' => [ - 'name' => 'is_tagset', - 'type' => 16, - 'title' => 'Tagset', - 'where' => 'civicrm_tag.is_tagset', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '3.2', - 'is_core_field' => TRUE, - ], - 'used_for' => [ - 'name' => 'used_for', - 'type' => 2, - 'title' => 'Used For', - 'maxlength' => 64, - 'size' => 30, - 'where' => 'civicrm_tag.used_for', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'serialize' => 5, - 'html' => [ - 'type' => 'Select', - 'maxlength' => 64, - 'size' => 30, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'tag_used_for', - 'optionEditPath' => 'civicrm/admin/options/tag_used_for', - ], - 'add' => '3.2', - 'is_core_field' => TRUE, - 'api.default' => 'civicrm_contact', - ], - 'created_id' => [ - 'name' => 'created_id', - 'type' => 1, - 'title' => 'Created By Contact ID', - 'description' => 'FK to civicrm_contact, who created this tag', - 'where' => 'civicrm_tag.created_id', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'label' => 'Created By', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '3.4', - 'is_core_field' => TRUE, - 'FKApiName' => 'Contact', - ], - 'color' => [ - 'name' => 'color', - 'type' => 2, - 'title' => 'Color', - 'description' => 'Hex color value e.g. #ffffff', - 'maxlength' => 255, - 'size' => 45, - 'where' => 'civicrm_tag.color', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '4.7', - 'is_core_field' => TRUE, - ], - 'created_date' => [ - 'name' => 'created_date', - 'type' => 12, - 'title' => 'Tag Created Date', - 'description' => 'Date and time that tag was created.', - 'where' => 'civicrm_tag.created_date', - 'table_name' => 'civicrm_tag', - 'entity' => 'Tag', - 'bao' => 'CRM_Core_BAO_Tag', - 'localizable' => 0, - 'add' => '3.4', - 'is_core_field' => TRUE, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testTagGetfields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Tag/GetList.ex.php b/civicrm/api/v3/examples/Tag/GetList.ex.php deleted file mode 100644 index d5f540c03386dcc014f0c9dd8f13cccd16cfed84..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Tag/GetList.ex.php +++ /dev/null @@ -1,94 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Tag.getlist API. - * - * Demonstrates use of api.getlist for autocomplete and quicksearch applications. - * - * @return array - * API result array - */ -function tag_getlist_example() { - $params = [ - 'input' => 'New Tag3', - 'extra' => [ - '0' => 'used_for', - ], - ]; - - try { - $result = civicrm_api3('Tag', 'getlist', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tag_getlist_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 0, - 'values' => [ - '0' => [ - 'id' => '27', - 'label' => 'New Tag3', - 'description' => [ - '0' => 'This is description for Our New Tag ', - ], - 'extra' => [ - 'used_for' => 'civicrm_contact', - ], - ], - ], - 'page_num' => 1, - 'more_results' => '', - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testTagGetList" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Tag/GetReturnArray.ex.php b/civicrm/api/v3/examples/Tag/GetReturnArray.ex.php deleted file mode 100644 index d5518b1e7e8b347acad253c65e11cb4e92dfd5e1..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Tag/GetReturnArray.ex.php +++ /dev/null @@ -1,87 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Tag.get API. - * - * Demonstrates use of Return as an array. - * - * @return array - * API result array - */ -function tag_get_example() { - $params = [ - 'id' => '10', - 'name' => 'New Tag3', - 'return' => [ - '0' => 'name', - ], - ]; - - try { - $result = civicrm_api3('Tag', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tag_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 10, - 'values' => [ - '10' => [ - 'id' => '10', - 'name' => 'New Tag3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetReturnArray" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TagTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/TaxContributionPage/Create.ex.php b/civicrm/api/v3/examples/TaxContributionPage/Create.ex.php deleted file mode 100644 index 5c48e3b6be5f1009630155d79e1416ba04a2e8bb..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/TaxContributionPage/Create.ex.php +++ /dev/null @@ -1,116 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example of using tax_contribution_page create API. - * - * @return array - * API result array - */ -function tax_contribution_page_create_example() { - $params = [ - 'contact_id' => 1, - 'receive_date' => '20120511', - 'total_amount' => '100', - 'financial_type_id' => 11, - 'contribution_page_id' => 1, - 'trxn_id' => 12345, - 'invoice_id' => 67890, - 'source' => 'SSF', - 'contribution_status_id' => 2, - ]; - - try { - $result = civicrm_api3('tax_contribution_page', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tax_contribution_page_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '1', - 'financial_type_id' => '11', - 'contribution_page_id' => '1', - 'payment_instrument_id' => '4', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '', - 'total_amount' => '120', - 'fee_amount' => 0, - 'net_amount' => '120', - 'trxn_id' => '12345', - 'invoice_id' => '67890', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '2', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => '20', - 'contribution_type_id' => '11', - ], - ], - ]; - - return $expectedResult; -} - -/** -* This example has been generated from the API test suite. -* The test that created it is called -* testCreateContributionPendingOnline -* and can be found in -* https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TaxContributionPageTest.php. -* -* You can see the outcome of the API tests at -* https://test.civicrm.org/job/CiviCRM-master-git/ -* -* To Learn about the API read -* http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API -* -* Browse the api on your own site with the api explorer -* http://MYSITE.ORG/path/to/civicrm/api -* -* Read more about testing here -* http://wiki.civicrm.org/confluence/display/CRM/Testing -* -* API Standards documentation: -* http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards -*/ diff --git a/civicrm/api/v3/examples/TaxContributionPage/CreateWithNestedLineItems.ex.php b/civicrm/api/v3/examples/TaxContributionPage/CreateWithNestedLineItems.ex.php deleted file mode 100644 index d71a6e275177da10401b815628fa9a6cfd6993b3..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/TaxContributionPage/CreateWithNestedLineItems.ex.php +++ /dev/null @@ -1,192 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example of using tax_contribution_page create API. - * - * Create Contribution with Nested Line Items. - * - * @return array - * API result array - */ -function tax_contribution_page_create_example() { - $params = [ - 'contact_id' => 1, - 'receive_date' => '20120511', - 'total_amount' => '400', - 'financial_type_id' => 7, - 'trxn_id' => 12345, - 'invoice_id' => 67890, - 'source' => 'SSF', - 'contribution_status_id' => 1, - 'skipLineItem' => 1, - 'api.line_item.create' => [ - '0' => [ - 'price_field_id' => [ - '0' => 3, - ], - 'qty' => 1, - 'line_total' => '100', - 'unit_price' => '100', - 'financial_type_id' => 7, - ], - '1' => [ - 'price_field_id' => [ - '0' => 3, - ], - 'qty' => 1, - 'line_total' => '300', - 'unit_price' => '300', - 'financial_type_id' => 8, - ], - ], - ]; - - try { - $result = civicrm_api3('tax_contribution_page', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tax_contribution_page_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '1', - 'financial_type_id' => '7', - 'contribution_page_id' => '', - 'payment_instrument_id' => '4', - 'receive_date' => '20120511000000', - 'non_deductible_amount' => '', - 'total_amount' => '435', - 'fee_amount' => 0, - 'net_amount' => '435', - 'trxn_id' => '12345', - 'invoice_id' => '67890', - 'currency' => 'USD', - 'cancel_date' => '', - 'cancel_reason' => '', - 'receipt_date' => '', - 'thankyou_date' => '', - 'source' => 'SSF', - 'amount_level' => '', - 'contribution_recur_id' => '', - 'is_test' => '', - 'is_pay_later' => '', - 'contribution_status_id' => '1', - 'address_id' => '', - 'check_number' => '', - 'campaign_id' => '', - 'creditnote_id' => '', - 'tax_amount' => '35', - 'contribution_type_id' => '7', - 'api.line_item.create' => [ - '0' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '1', - 'contribution_id' => '1', - 'price_field_id' => [ - '0' => '3', - ], - 'label' => 'line item', - 'qty' => '1', - 'unit_price' => '100', - 'line_total' => '100', - 'participant_count' => '', - 'price_field_value_id' => '', - 'financial_type_id' => '7', - 'deductible_amount' => '', - 'tax_amount' => '20', - ], - ], - ], - '1' => [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '0' => [ - 'id' => '2', - 'entity_table' => 'civicrm_contribution', - 'entity_id' => '1', - 'contribution_id' => '1', - 'price_field_id' => [ - '0' => '3', - ], - 'label' => 'line item', - 'qty' => '1', - 'unit_price' => '300', - 'line_total' => '300', - 'participant_count' => '', - 'price_field_value_id' => '', - 'financial_type_id' => '8', - 'deductible_amount' => '', - 'tax_amount' => '15', - ], - ], - ], - ], - ], - ], - ]; - - return $expectedResult; -} - -/** -* This example has been generated from the API test suite. -* The test that created it is called -* testCreateContributionChainedLineItems -* and can be found in -* https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TaxContributionPageTest.php. -* -* You can see the outcome of the API tests at -* https://test.civicrm.org/job/CiviCRM-master-git/ -* -* To Learn about the API read -* http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API -* -* Browse the api on your own site with the api explorer -* http://MYSITE.ORG/path/to/civicrm/api -* -* Read more about testing here -* http://wiki.civicrm.org/confluence/display/CRM/Testing -* -* API Standards documentation: -* http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards -*/ diff --git a/civicrm/api/v3/examples/TaxContributionPage/Delete.ex.php b/civicrm/api/v3/examples/TaxContributionPage/Delete.ex.php deleted file mode 100644 index aab88461c9d3e35174f7be4221cf98e5d3d11edf..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/TaxContributionPage/Delete.ex.php +++ /dev/null @@ -1,78 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example of using tax_contribution_page delete API. - * - * @return array - * API result array - */ -function tax_contribution_page_delete_example() { - $params = [ - 'id' => 1, - ]; - - try { - $result = civicrm_api3('tax_contribution_page', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'error' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function tax_contribution_page_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => 1, - ], - ]; - - return $expectedResult; -} - -/** -* This example has been generated from the API test suite. -* The test that created it is called -* testDeleteContribution -* and can be found in -* https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/TaxContributionPageTest.php. -* -* You can see the outcome of the API tests at -* https://test.civicrm.org/job/CiviCRM-master-git/ -* -* To Learn about the API read -* http://wiki.civicrm.org/confluence/display/CRMDOC/Using+the+API -* -* Browse the api on your own site with the api explorer -* http://MYSITE.ORG/path/to/civicrm/api -* -* Read more about testing here -* http://wiki.civicrm.org/confluence/display/CRM/Testing -* -* API Standards documentation: -* http://wiki.civicrm.org/confluence/display/CRM/API+Architecture+Standards -*/ diff --git a/civicrm/api/v3/examples/UFField/Create.ex.php b/civicrm/api/v3/examples/UFField/Create.ex.php deleted file mode 100644 index 79587ab169ea1a47f5714a78525b936e6ed9b7c9..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFField/Create.ex.php +++ /dev/null @@ -1,107 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFField.create API. - * - * @return array - * API result array - */ -function uf_field_create_example() { - $params = [ - 'field_name' => 'phone', - 'field_type' => 'Contact', - 'visibility' => 'Public Pages and Listings', - 'weight' => 1, - 'label' => 'Test Phone', - 'is_searchable' => 1, - 'is_active' => 1, - 'location_type_id' => 1, - 'phone_type_id' => 1, - 'uf_group_id' => 11, - ]; - - try { - $result = civicrm_api3('UFField', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_field_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'uf_group_id' => '11', - 'field_name' => 'phone', - 'is_active' => '1', - 'is_view' => '', - 'is_required' => '', - 'weight' => '1', - 'help_post' => '', - 'help_pre' => '', - 'visibility' => 'Public Pages and Listings', - 'in_selector' => '', - 'is_searchable' => '1', - 'location_type_id' => '1', - 'phone_type_id' => '1', - 'website_type_id' => '', - 'label' => 'Test Phone', - 'field_type' => 'Contact', - 'is_reserved' => '', - 'is_multi_summary' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateUFField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFField/Delete.ex.php b/civicrm/api/v3/examples/UFField/Delete.ex.php deleted file mode 100644 index 8b441b82def0c62013ac8ad5fc189ffbb5386071..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFField/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFField.delete API. - * - * @return array - * API result array - */ -function uf_field_delete_example() { - $params = [ - 'field_id' => 1, - ]; - - try { - $result = civicrm_api3('UFField', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_field_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => TRUE, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteUFField" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFField/Get.ex.php b/civicrm/api/v3/examples/UFField/Get.ex.php deleted file mode 100644 index 7ed1b1546fafd9d0fce26b02af0457f7dfed0385..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFField/Get.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFField.get API. - * - * @return array - * API result array - */ -function uf_field_get_example() { - $params = []; - - try { - $result = civicrm_api3('UFField', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_field_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'uf_group_id' => '11', - 'field_name' => 'phone', - 'is_active' => '1', - 'is_view' => 0, - 'is_required' => 0, - 'weight' => '1', - 'visibility' => 'Public Pages and Listings', - 'in_selector' => 0, - 'is_searchable' => '1', - 'location_type_id' => '1', - 'phone_type_id' => '1', - 'label' => 'Test Phone', - 'field_type' => 'Contact', - 'is_multi_summary' => 0, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetUFFieldSuccess" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFField/Replace.ex.php b/civicrm/api/v3/examples/UFField/Replace.ex.php deleted file mode 100644 index a3da0d3a3033911f445e6dac5dcb003d84476e1c..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFField/Replace.ex.php +++ /dev/null @@ -1,173 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFField.replace API. - * - * @return array - * API result array - */ -function uf_field_replace_example() { - $params = [ - 'uf_group_id' => 11, - 'option.autoweight' => '', - 'values' => [ - '0' => [ - 'field_name' => 'first_name', - 'field_type' => 'Contact', - 'visibility' => 'Public Pages and Listings', - 'weight' => 3, - 'label' => 'Test First Name', - 'is_searchable' => 1, - 'is_active' => 1, - ], - '1' => [ - 'field_name' => 'country', - 'field_type' => 'Contact', - 'visibility' => 'Public Pages and Listings', - 'weight' => 2, - 'label' => 'Test Country', - 'is_searchable' => 1, - 'is_active' => 1, - 'location_type_id' => 1, - ], - '2' => [ - 'field_name' => 'phone', - 'field_type' => 'Contact', - 'visibility' => 'Public Pages and Listings', - 'weight' => 1, - 'label' => 'Test Phone', - 'is_searchable' => 1, - 'is_active' => 1, - 'location_type_id' => 1, - 'phone_type_id' => 1, - ], - ], - 'check_permissions' => TRUE, - ]; - - try { - $result = civicrm_api3('UFField', 'replace', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_field_replace_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 3, - 'values' => [ - '1' => [ - 'id' => '1', - 'uf_group_id' => '11', - 'field_name' => 'first_name', - 'is_active' => '1', - 'is_view' => '', - 'is_required' => '', - 'weight' => '3', - 'help_post' => '', - 'help_pre' => '', - 'visibility' => 'Public Pages and Listings', - 'in_selector' => '', - 'is_searchable' => '1', - 'location_type_id' => '', - 'phone_type_id' => '', - 'website_type_id' => '', - 'label' => 'Test First Name', - 'field_type' => 'Contact', - 'is_reserved' => '', - 'is_multi_summary' => '', - ], - '2' => [ - 'id' => '2', - 'uf_group_id' => '11', - 'field_name' => 'country', - 'is_active' => '1', - 'is_view' => '', - 'is_required' => '', - 'weight' => '2', - 'help_post' => '', - 'help_pre' => '', - 'visibility' => 'Public Pages and Listings', - 'in_selector' => '', - 'is_searchable' => '1', - 'location_type_id' => '1', - 'phone_type_id' => '', - 'website_type_id' => '', - 'label' => 'Test Country', - 'field_type' => 'Contact', - 'is_reserved' => '', - 'is_multi_summary' => '', - ], - '3' => [ - 'id' => '3', - 'uf_group_id' => '11', - 'field_name' => 'phone', - 'is_active' => '1', - 'is_view' => '', - 'is_required' => '', - 'weight' => '1', - 'help_post' => '', - 'help_pre' => '', - 'visibility' => 'Public Pages and Listings', - 'in_selector' => '', - 'is_searchable' => '1', - 'location_type_id' => '1', - 'phone_type_id' => '1', - 'website_type_id' => '', - 'label' => 'Test Phone', - 'field_type' => 'Contact', - 'is_reserved' => '', - 'is_multi_summary' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testReplaceUFFields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFFieldTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFGroup/Create.ex.php b/civicrm/api/v3/examples/UFGroup/Create.ex.php deleted file mode 100644 index baab92ae8c57c8894067fd5af953e0ea59deda46..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFGroup/Create.ex.php +++ /dev/null @@ -1,125 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFGroup.create API. - * - * @return array - * API result array - */ -function uf_group_create_example() { - $params = [ - 'add_captcha' => 1, - 'add_contact_to_group' => 1, - 'group' => 1, - 'cancel_url' => 'http://example.org/cancel', - 'created_date' => '2009-06-27 00:00:00', - 'created_id' => 1, - 'group_type' => 'Individual,Contact', - 'help_post' => 'help post', - 'help_pre' => 'help pre', - 'is_active' => 0, - 'is_cms_user' => 1, - 'is_edit_link' => 1, - 'is_map' => 1, - 'is_reserved' => 1, - 'is_uf_link' => 1, - 'is_update_dupe' => 1, - 'name' => 'Test_Group', - 'notify' => 'admin@example.org', - 'post_url' => 'http://example.org/post', - 'title' => 'Test Group', - ]; - - try { - $result = civicrm_api3('UFGroup', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_group_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'is_active' => 0, - 'group_type' => 'Individual,Contact', - 'title' => 'Test Group', - 'frontend_title' => '', - 'description' => '', - 'help_pre' => 'help pre', - 'help_post' => 'help post', - 'limit_listings_group_id' => '1', - 'post_url' => 'http://example.org/post', - 'add_to_group_id' => '1', - 'add_captcha' => '1', - 'is_map' => '1', - 'is_edit_link' => '1', - 'is_uf_link' => '1', - 'is_update_dupe' => '1', - 'cancel_url' => 'http://example.org/cancel', - 'is_cms_user' => '1', - 'notify' => 'admin@example.org', - 'is_reserved' => '1', - 'name' => 'Test_Group', - 'created_id' => '1', - 'created_date' => '2013-07-28 08:49:19', - 'is_proximity_search' => '', - 'cancel_button_text' => '', - 'submit_button_text' => '', - 'add_cancel_button' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUFGroupCreate" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFGroup/Delete.ex.php b/civicrm/api/v3/examples/UFGroup/Delete.ex.php deleted file mode 100644 index a1745bfb898e7e8625dab9f0f8189cea045a1629..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFGroup/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFGroup.delete API. - * - * @return array - * API result array - */ -function uf_group_delete_example() { - $params = [ - 'id' => 2, - ]; - - try { - $result = civicrm_api3('UFGroup', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_group_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUFGroupDelete" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFGroup/Get.ex.php b/civicrm/api/v3/examples/UFGroup/Get.ex.php deleted file mode 100644 index 274b7c0c46f4a50064d7527abe441e9c1d50ce54..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFGroup/Get.ex.php +++ /dev/null @@ -1,102 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFGroup.get API. - * - * @return array - * API result array - */ -function uf_group_get_example() { - $params = [ - 'id' => 2, - ]; - - try { - $result = civicrm_api3('UFGroup', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_group_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 2, - 'values' => [ - '2' => [ - 'id' => '2', - 'is_active' => 0, - 'group_type' => 'Individual,Contact', - 'title' => 'Test Group', - 'help_pre' => 'help pre', - 'help_post' => 'help post', - 'limit_listings_group_id' => '1', - 'post_url' => 'http://example.org/post', - 'add_to_group_id' => '1', - 'add_captcha' => '1', - 'is_map' => '1', - 'is_edit_link' => '1', - 'is_uf_link' => '1', - 'is_update_dupe' => '1', - 'cancel_URL' => 'http://example.org/cancel', - 'is_cms_user' => '1', - 'notify' => 'admin@example.org', - 'is_reserved' => '1', - 'name' => 'Test_Group', - 'created_id' => '1', - 'created_date' => '2013-07-28 08:49:19', - 'is_proximity_search' => 0, - 'add_cancel_button' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUFGroupGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFGroupTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFJoin/Create.ex.php b/civicrm/api/v3/examples/UFJoin/Create.ex.php deleted file mode 100644 index 52fcc0975b25f8720f4811108cd686eaf91e92a1..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFJoin/Create.ex.php +++ /dev/null @@ -1,93 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFJoin.create API. - * - * @return array - * API result array - */ -function uf_join_create_example() { - $params = [ - 'module' => 'CiviCampaign', - 'entity_table' => 'civicrm_survey', - 'entity_id' => 1, - 'weight' => 1, - 'uf_group_id' => 11, - 'is_active' => 1, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('UFJoin', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_join_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 0, - 'values' => [ - '0' => [ - 'id' => '1', - 'is_active' => '1', - 'module' => 'CiviCampaign', - 'entity_table' => 'civicrm_survey', - 'entity_id' => '1', - 'weight' => '1', - 'uf_group_id' => '11', - 'module_data' => '', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateSurveyUFJoin" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFJoinTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFJoin/Get.ex.php b/civicrm/api/v3/examples/UFJoin/Get.ex.php deleted file mode 100644 index 50ea381ebbf99f81d4f46fdd49b5f29898f25410..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFJoin/Get.ex.php +++ /dev/null @@ -1,88 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFJoin.get API. - * - * @return array - * API result array - */ -function uf_join_get_example() { - $params = [ - 'entity_table' => 'civicrm_contribution_page', - 'entity_id' => 1, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('UFJoin', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_join_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '0' => [ - 'id' => '1', - 'is_active' => '1', - 'module' => 'CiviContribute', - 'entity_table' => 'civicrm_contribution_page', - 'entity_id' => '1', - 'weight' => '1', - 'uf_group_id' => '11', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetUFJoinId" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFJoinTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/UFMatch/Get.ex.php b/civicrm/api/v3/examples/UFMatch/Get.ex.php deleted file mode 100644 index d4d6e24c190c794ac97b9d88374c733629cda735..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/UFMatch/Get.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the UFMatch.get API. - * - * @return array - * API result array - */ -function uf_match_get_example() { - $params = [ - 'contact_id' => 69, - ]; - - try { - $result = civicrm_api3('UFMatch', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function uf_match_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'domain_id' => '1', - 'uf_id' => '42', - 'contact_id' => '69', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetUFID" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UFMatchTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/User/Get.ex.php b/civicrm/api/v3/examples/User/Get.ex.php deleted file mode 100644 index e5879ca59ff4444ab3500c5ac9a86c291a701b54..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/User/Get.ex.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the User.get API. - * - * @return array - * API result array - */ -function user_get_example() { - $params = [ - 'contact_id' => 3, - 'sequential' => 1, - ]; - - try { - $result = civicrm_api3('User', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function user_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 6, - 'values' => [ - '0' => [ - 'id' => '6', - 'name' => 'superman', - 'contact_id' => '3', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testUserGet" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UserTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/User/GetFields.ex.php b/civicrm/api/v3/examples/User/GetFields.ex.php deleted file mode 100644 index 905194a08f726930b0a50b17d86f55ca1b8d54b3..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/User/GetFields.ex.php +++ /dev/null @@ -1,92 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the User.getfields API. - * - * @return array - * API result array - */ -function user_getfields_example() { - $params = [ - 'action' => 'get', - ]; - - try { - $result = civicrm_api3('User', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function user_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 3, - 'values' => [ - 'contact_id' => [ - 'title' => 'Contact ID', - 'type' => 1, - 'api.required' => 1, - 'name' => 'contact_id', - ], - 'id' => [ - 'title' => 'CMS User ID', - 'type' => 1, - 'name' => 'id', - ], - 'name' => [ - 'title' => 'Username', - 'type' => 2, - 'name' => 'name', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/UserTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Website/Create.ex.php b/civicrm/api/v3/examples/Website/Create.ex.php deleted file mode 100644 index 2ec70d1cd37a38dc2965109ca417be2b48254f91..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Website/Create.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Website.create API. - * - * @return array - * API result array - */ -function website_create_example() { - $params = [ - 'contact_id' => 3, - 'url' => 'website.com', - 'website_type_id' => 1, - ]; - - try { - $result = civicrm_api3('Website', 'create', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function website_create_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 1, - 'values' => [ - '1' => [ - 'id' => '1', - 'contact_id' => '3', - 'url' => 'website.com', - 'website_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testCreateWebsite" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/WebsiteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Website/Delete.ex.php b/civicrm/api/v3/examples/Website/Delete.ex.php deleted file mode 100644 index c08be41dff40248d576bc9beb510bc6bde8bf782..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Website/Delete.ex.php +++ /dev/null @@ -1,75 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Website.delete API. - * - * @return array - * API result array - */ -function website_delete_example() { - $params = [ - 'id' => 5, - ]; - - try { - $result = civicrm_api3('Website', 'delete', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function website_delete_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'values' => 1, - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testDeleteWebsite" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/WebsiteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Website/Get.ex.php b/civicrm/api/v3/examples/Website/Get.ex.php deleted file mode 100644 index 63b3a32b186c72a4918e03644e58570db59d5023..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Website/Get.ex.php +++ /dev/null @@ -1,85 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Website.get API. - * - * @return array - * API result array - */ -function website_get_example() { - $params = [ - 'contact_id' => 5, - 'url' => 'website.com', - 'website_type_id' => 1, - ]; - - try { - $result = civicrm_api3('Website', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function website_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 1, - 'id' => 3, - 'values' => [ - '3' => [ - 'id' => '3', - 'contact_id' => '5', - 'url' => 'website.com', - 'website_type_id' => '1', - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetWebsite" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/WebsiteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Website/GetFields.ex.php b/civicrm/api/v3/examples/Website/GetFields.ex.php deleted file mode 100644 index cb696539975ce25bd118a92c5c89426c4fceeca4..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Website/GetFields.ex.php +++ /dev/null @@ -1,165 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Website.getfields API. - * - * @return array - * API result array - */ -function website_getfields_example() { - $params = [ - 'action' => 'get', - ]; - - try { - $result = civicrm_api3('Website', 'getfields', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function website_getfields_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 4, - 'values' => [ - 'id' => [ - 'name' => 'id', - 'type' => 1, - 'title' => 'Website ID', - 'description' => 'Unique Website ID', - 'required' => TRUE, - 'where' => 'civicrm_website.id', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => 6, - 'maxlength' => 14, - ], - 'readonly' => TRUE, - 'add' => '3.2', - 'is_core_field' => TRUE, - 'api.aliases' => [ - '0' => 'website_id', - ], - ], - 'contact_id' => [ - 'name' => 'contact_id', - 'type' => 1, - 'title' => 'Contact ID', - 'description' => 'FK to Contact ID', - 'where' => 'civicrm_website.contact_id', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'label' => 'Contact', - 'size' => 6, - 'maxlength' => 14, - ], - 'add' => '3.2', - 'is_core_field' => TRUE, - 'FKApiName' => 'Contact', - ], - 'url' => [ - 'name' => 'url', - 'type' => 2, - 'title' => 'Website', - 'description' => 'Website', - 'maxlength' => 128, - 'size' => 30, - 'import' => TRUE, - 'where' => 'civicrm_website.url', - 'headerPattern' => '/Website/i', - 'dataPattern' => '/^[A-Za-z][0-9A-Za-z]{20,}$/', - 'export' => TRUE, - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => 128, - 'size' => 30, - ], - 'add' => '3.2', - 'is_core_field' => TRUE, - ], - 'website_type_id' => [ - 'name' => 'website_type_id', - 'type' => 1, - 'title' => 'Website Type', - 'description' => 'Which Website type does this website belong to.', - 'where' => 'civicrm_website.website_type_id', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => 6, - 'maxlength' => 14, - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'website_type', - 'optionEditPath' => 'civicrm/admin/options/website_type', - ], - 'add' => '3.2', - 'is_core_field' => TRUE, - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetFields" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/WebsiteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/api/v3/examples/Website/GetWithMetadata.ex.php b/civicrm/api/v3/examples/Website/GetWithMetadata.ex.php deleted file mode 100644 index 652a3c562b4e12d8e30c897c5c608d648bfb9974..0000000000000000000000000000000000000000 --- a/civicrm/api/v3/examples/Website/GetWithMetadata.ex.php +++ /dev/null @@ -1,174 +0,0 @@ -<?php - -/** - * @file - */ - -/** - * Test Generated example demonstrating the Website.get API. - * - * Demonostrates returning field metadata. - * - * @return array - * API result array - */ -function website_get_example() { - $params = [ - 'options' => [ - 'metadata' => [ - '0' => 'fields', - ], - ], - ]; - - try { - $result = civicrm_api3('Website', 'get', $params); - } - catch (CRM_Core_Exception $e) { - // Handle error here. - $errorMessage = $e->getMessage(); - $errorCode = $e->getErrorCode(); - $errorData = $e->getExtraParams(); - return [ - 'is_error' => 1, - 'error_message' => $errorMessage, - 'error_code' => $errorCode, - 'error_data' => $errorData, - ]; - } - - return $result; -} - -/** - * Function returns array of result expected from previous function. - * - * @return array - * API result array - */ -function website_get_expectedresult() { - - $expectedResult = [ - 'is_error' => 0, - 'version' => 3, - 'count' => 0, - 'values' => [], - 'metadata' => [ - 'fields' => [ - 'id' => [ - 'name' => 'id', - 'type' => '1', - 'title' => 'Website ID', - 'description' => 'Unique Website ID', - 'required' => '1', - 'where' => 'civicrm_website.id', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'html' => [ - 'type' => 'Number', - 'size' => '6', - 'maxlength' => '14', - ], - 'readonly' => '1', - 'add' => '3.2', - 'is_core_field' => '1', - 'api.aliases' => [ - '0' => 'website_id', - ], - ], - 'contact_id' => [ - 'name' => 'contact_id', - 'type' => '1', - 'title' => 'Contact ID', - 'description' => 'FK to Contact ID', - 'where' => 'civicrm_website.contact_id', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'FKClassName' => 'CRM_Contact_DAO_Contact', - 'html' => [ - 'label' => 'Contact', - 'size' => '6', - 'maxlength' => '14', - ], - 'add' => '3.2', - 'is_core_field' => '1', - 'FKApiName' => 'Contact', - ], - 'url' => [ - 'name' => 'url', - 'type' => '2', - 'title' => 'Website', - 'description' => 'Website', - 'maxlength' => '128', - 'size' => '30', - 'import' => '1', - 'where' => 'civicrm_website.url', - 'headerPattern' => '/Website/i', - 'dataPattern' => '/^[A-Za-z][0-9A-Za-z]{20,}$/', - 'export' => '1', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'html' => [ - 'type' => 'Text', - 'maxlength' => '128', - 'size' => '30', - ], - 'add' => '3.2', - 'is_core_field' => '1', - ], - 'website_type_id' => [ - 'name' => 'website_type_id', - 'type' => '1', - 'title' => 'Website Type', - 'description' => 'Which Website type does this website belong to.', - 'where' => 'civicrm_website.website_type_id', - 'table_name' => 'civicrm_website', - 'entity' => 'Website', - 'bao' => 'CRM_Core_BAO_Website', - 'localizable' => 0, - 'html' => [ - 'type' => 'Select', - 'size' => '6', - 'maxlength' => '14', - ], - 'pseudoconstant' => [ - 'optionGroupName' => 'website_type', - 'optionEditPath' => 'civicrm/admin/options/website_type', - ], - 'add' => '3.2', - 'is_core_field' => '1', - ], - ], - ], - ]; - - return $expectedResult; -} - -/* - * This example has been generated from the API test suite. - * The test that created it is called "testGetMetadata" - * and can be found at: - * https://github.com/civicrm/civicrm-core/blob/master/tests/phpunit/api/v3/WebsiteTest.php - * - * You can see the outcome of the API tests at - * https://test.civicrm.org/job/CiviCRM-Core-Matrix/ - * - * To Learn about the API read - * https://docs.civicrm.org/dev/en/latest/api/ - * - * Browse the API on your own site with the API Explorer. It is in the main - * CiviCRM menu, under: Support > Development > API Explorer. - * - * Read more about testing here - * https://docs.civicrm.org/dev/en/latest/testing/ - * - * API Standards documentation: - * https://docs.civicrm.org/dev/en/latest/framework/api-architecture/ - */ diff --git a/civicrm/civicrm-version.php b/civicrm/civicrm-version.php index d6f0cd2ed03f49108b76ee831e61bded54ccae12..1061837a5032761808defe2e44eb9181c863ab2a 100644 --- a/civicrm/civicrm-version.php +++ b/civicrm/civicrm-version.php @@ -1,7 +1,7 @@ <?php /** @deprecated */ function civicrmVersion( ) { - return array( 'version' => '5.65.2', + return array( 'version' => '5.66.0', 'cms' => 'Wordpress', 'revision' => '' ); } diff --git a/civicrm/composer.json b/civicrm/composer.json index dca1defecfb836144fa455b1daaf2c3c48c62c81..3e3eb898296276a5c5f75cb81fe43d6d5dc6439b 100644 --- a/civicrm/composer.json +++ b/civicrm/composer.json @@ -66,7 +66,7 @@ "psr/log": "~1.0 || ~2.0 || ~3.0", "symfony/finder": "~4.4 || ~6.0", "tecnickcom/tcpdf" : "6.4.*", - "totten/ca-config": "~22.11", + "totten/ca-config": "~23.07", "zetacomponents/base": "1.9.*", "zetacomponents/mail": "~1.9.4", "marcj/topsort": "~1.1", diff --git a/civicrm/composer.lock b/civicrm/composer.lock index b4a52e6f8750028494ae30514842ec6c811c6398..b4288d6318b5d997f39f435493ab9f8c4804e4d8 100644 --- a/civicrm/composer.lock +++ b/civicrm/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d53a256f9748f1facc1312352b5a9acb", + "content-hash": "377176179275d0aa4262d031e5bc4559", "packages": [ { "name": "adrienrn/php-mimetyper", @@ -5102,16 +5102,16 @@ }, { "name": "totten/ca-config", - "version": "v22.11.0", + "version": "v23.07.0", "source": { "type": "git", "url": "https://github.com/totten/ca_config.git", - "reference": "8a78926b11f00e6a154098aeb2110df53b8a3c67" + "reference": "12571f07b994d555bf1a956e310f224da3ebbd8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/totten/ca_config/zipball/8a78926b11f00e6a154098aeb2110df53b8a3c67", - "reference": "8a78926b11f00e6a154098aeb2110df53b8a3c67", + "url": "https://api.github.com/repos/totten/ca_config/zipball/12571f07b994d555bf1a956e310f224da3ebbd8d", + "reference": "12571f07b994d555bf1a956e310f224da3ebbd8d", "shasum": "" }, "require": { @@ -5137,9 +5137,9 @@ "homepage": "https://github.com/totten/ca_config", "support": { "issues": "https://github.com/totten/ca_config/issues", - "source": "https://github.com/totten/ca_config/tree/v22.11.0" + "source": "https://github.com/totten/ca_config/tree/v23.07.0" }, - "time": "2022-11-06T02:39:19+00:00" + "time": "2023-07-14T07:20:50+00:00" }, { "name": "totten/lurkerlite", diff --git a/civicrm/css/menubar-standalone.css b/civicrm/css/menubar-standalone.css index bcf1fb334353b9d339579c8828ae1cf9ce496f06..019ff14567e25a918846d4c3f6c3bf8a8f2b4cbc 100644 --- a/civicrm/css/menubar-standalone.css +++ b/civicrm/css/menubar-standalone.css @@ -1,3 +1,4 @@ +/* The title of this file is menubar-standalone, but the CSS is more general than that. @todo fixme */ @media (min-width: $breakMin) { body.crm-menubar-visible.crm-menubar-over-cms-menu { @@ -30,3 +31,17 @@ .breadcrumb ol li:not(:first-child)::before { content: " \BB "; } + +.standalone-errors { + background: #ffe8e4; + color: #422; + padding: 1rem; + margin-bottom: 1rem; +} + +.standalone-errors code { + color: #004e81; +} +.standalone-errors .backtrace { + font-size: 0.825rem; +} diff --git a/civicrm/ext/afform/admin/Civi/AfformAdmin/AfformAdminMeta.php b/civicrm/ext/afform/admin/Civi/AfformAdmin/AfformAdminMeta.php index e788dfa74f88fadd740e095669c15136e543dcbd..cf283b74a7f33a0dd368a1a8de58c0c6bc6cd144 100644 --- a/civicrm/ext/afform/admin/Civi/AfformAdmin/AfformAdminMeta.php +++ b/civicrm/ext/afform/admin/Civi/AfformAdmin/AfformAdminMeta.php @@ -129,7 +129,8 @@ class AfformAdminMeta { $idField = CoreUtil::getIdFieldName($entityName); $fields[$idField]['readonly'] = FALSE; $fields[$idField]['input_type'] = 'EntityRef'; - $fields[$idField]['is_id'] = TRUE; + // Afform-only (so far) metadata tells the form to update an existing entity autofilled from this value + $fields[$idField]['input_attrs']['autofill'] = 'update'; $fields[$idField]['fk_entity'] = $entityName; $fields[$idField]['label'] = E::ts('Existing %1', [1 => CoreUtil::getInfoItem($entityName, 'title')]); // Mix in alterations declared by afform entities diff --git a/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php b/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php index 0828b562b2b0193bbdb545ebd00c07f0a426e9af..675bee19385da3602dabbdf45a79b931b63ebd68 100644 --- a/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php +++ b/civicrm/ext/afform/admin/Civi/Api4/Action/Afform/LoadAdminData.php @@ -48,7 +48,7 @@ class LoadAdminData extends \Civi\Api4\Generic\AbstractAction { case 'form': $info['definition'] = $this->definition + [ 'title' => '', - 'permission' => 'access CiviCRM', + 'permission' => ['access CiviCRM'], 'layout' => [ [ '#tag' => 'af-form', @@ -70,7 +70,7 @@ class LoadAdminData extends \Civi\Api4\Generic\AbstractAction { case 'search': $info['definition'] = $this->definition + [ 'title' => '', - 'permission' => 'access CiviCRM', + 'permission' => ['access CiviCRM'], 'layout' => [ [ '#tag' => 'div', diff --git a/civicrm/ext/afform/admin/afformEntities/Note.php b/civicrm/ext/afform/admin/afformEntities/Note.php new file mode 100644 index 0000000000000000000000000000000000000000..a8a35545a24c42cef02f84781723fdb8523419ec --- /dev/null +++ b/civicrm/ext/afform/admin/afformEntities/Note.php @@ -0,0 +1,5 @@ +<?php +return [ + 'type' => 'join', + 'repeat_max' => NULL, +]; diff --git a/civicrm/ext/afform/admin/ang/afAdmin.js b/civicrm/ext/afform/admin/ang/afAdmin.js index cf7716175517e56ca9c5f858641e5d3b8d412d34..8d45473732edc232d2c3ca791a90eceea8bdf811 100644 --- a/civicrm/ext/afform/admin/ang/afAdmin.js +++ b/civicrm/ext/afform/admin/ang/afAdmin.js @@ -11,7 +11,7 @@ // Load data for lists afforms: function(crmApi4) { return crmApi4('Afform', 'get', { - select: ['name', 'title', 'type', 'server_route', 'is_public', 'has_local', 'has_base', 'base_module', 'base_module:label', 'is_dashlet', 'contact_summary:label'] + select: ['name', 'title', 'type', 'server_route', 'is_public', 'submission_count', 'submission_date', 'submit_limit', 'submit_enabled', 'submit_currently_open', 'has_local', 'has_base', 'base_module', 'base_module:label', 'is_dashlet', 'contact_summary:label'] }); } } diff --git a/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.controller.js b/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.controller.js index cb25346714d6070fb0a9b7c87b9f15af8b170ca1..70c9536f936e1cff667f01378dc3393565269ceb 100644 --- a/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.controller.js +++ b/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.controller.js @@ -32,22 +32,13 @@ if (afform['contact_summary:label']) { afform.placement.push(afform['contact_summary:label']); } + if (afform.submission_date) { + afform.submission_date = CRM.utils.formatDate(afform.submission_date); + } afforms[afform.type] = afforms[afform.type] || []; afforms[afform.type].push(afform); }, {}); - // Load aggregated submission stats for each form - crmApi4('AfformSubmission', 'get', { - select: ['afform_name', 'MAX(submission_date) AS last_submission', 'COUNT(id) AS submission_count'], - groupBy: ['afform_name'] - }).then(function(submissions) { - _.each(submissions, function(submission) { - var afform = _.findWhere(afforms, {name: submission.afform_name}) || {}; - afform.last_submission = CRM.utils.formatDate(submission.last_submission); - afform.submission_count = submission.submission_count; - }); - }); - // Change sort field/direction when clicking a column header this.sortBy = function(col) { ctrl.sortDir = ctrl.sortField === col ? !ctrl.sortDir : false; diff --git a/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html b/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html index b74450e4b88e5a30ee356d8a19d285bf3c1bbdd7..a15be805b4f47a1949352a5cdc0b115e8662199e 100644 --- a/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html +++ b/civicrm/ext/afform/admin/ang/afAdmin/afAdminList.html @@ -60,6 +60,11 @@ <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'placement.length'"></i> {{:: ts('Placement') }} </th> + <th ng-if="$ctrl.tab === 'form'" title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('submit_currently_open')"> + <i class="crm-i fa-sort disabled" ng-if="$ctrl.sortField !== 'submit_currently_open'"></i> + <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'submit_currently_open'"></i> + {{:: ts('Status') }} + </th> <th ng-if="$ctrl.tab === 'form'" title="{{:: ts('Click to sort') }}" ng-click="$ctrl.sortBy('submission_count')"> <i class="crm-i fa-sort disabled" ng-if="$ctrl.sortField !== 'submission_count'"></i> <i class="crm-i fa-sort-{{ $ctrl.sortDir ? 'asc' : 'desc' }}" ng-if="$ctrl.sortField === 'submission_count'"></i> @@ -86,12 +91,18 @@ </a> </td> <td>{{:: afform.placement.join(', ') }}</td> + <td ng-if="$ctrl.tab === 'form'"> + {{:: afform.submit_currently_open ? ts('Open') : ts('Closed') }} + <span ng-if="afform.submit_limit && afform.submit_enabled"> + ({{:: ts('%1 remaining', {1: afform.submit_limit - afform.submission_count}) }}) + </span> + </td> <td ng-if="$ctrl.tab === 'form'"> <a ng-if="afform.submission_count" ng-href="{{:: crmUrl('civicrm/admin/afform/submissions#/?name=' + afform.name) }}"> {{:: afform.submission_count === 1 ? ts('1 Submission') : ts('%1 Submissions', {1: afform.submission_count}) }} </a> - <div ng-if="afform.last_submission"> - {{:: ts('Last submitted: %1', {1: afform.last_submission}) }} + <div ng-if="afform.submission_date"> + {{:: ts('Last submitted: %1', {1: afform.submission_date}) }} </div> </td> <td> diff --git a/civicrm/ext/afform/admin/ang/afAdminFormSubmissionList.aff.json b/civicrm/ext/afform/admin/ang/afAdminFormSubmissionList.aff.json index 88d0a00294bee6099ff9a446336173068b446a3e..3584ff594892c2f9b6c83462ccaa78c625f34459 100644 --- a/civicrm/ext/afform/admin/ang/afAdminFormSubmissionList.aff.json +++ b/civicrm/ext/afform/admin/ang/afAdminFormSubmissionList.aff.json @@ -2,5 +2,6 @@ "type": "system", "title": "Submissions", "server_route": "civicrm/admin/afform/submissions", - "permission": [["administer CiviCRM", "administer afform"]] + "permission": ["administer CiviCRM", "administer afform"], + "permission_operator": "OR" } diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor.css b/civicrm/ext/afform/admin/ang/afGuiEditor.css index 3aca35836f6514835a8a414cabd391a7a91d886c..b15d5892c7e4600145951c899b1c9d0a835dde03 100644 --- a/civicrm/ext/afform/admin/ang/afGuiEditor.css +++ b/civicrm/ext/afform/admin/ang/afGuiEditor.css @@ -346,6 +346,13 @@ body.af-gui-dragging { color: #0071bd; } +#afGuiEditor #af_config_form_permission { + width: calc(100% - 55px); +} +#afGuiEditor #af_config_form_permission_operator { + width: 45px; +} + #afGuiEditor .af-gui-layout-icon { width: 12px; height: 11px; diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js b/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js index 73ab209afe81d90cd31a41633e2ec2df1f19e8ba..07eb9fabeb69d5468ce2a2d72ef8df7478ea3587 100644 --- a/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js +++ b/civicrm/ext/afform/admin/ang/afGuiEditor/afGuiEditor.component.js @@ -98,6 +98,7 @@ if (editor.mode === 'clone') { delete editor.afform.name; delete editor.afform.server_route; + delete editor.afform.navigation; editor.afform.is_dashlet = false; editor.afform.title += ' ' + ts('(copy)'); } @@ -118,6 +119,7 @@ if (editor.mode === 'create') { editor.addEntity(editor.entity); + editor.afform.submit_enabled = true; editor.afform.create_submission = true; editor.layout['#children'].push(afGui.meta.elements.submit.element); } @@ -136,6 +138,8 @@ editor.searchDisplays = getSearchDisplaysOnForm(); } + editor.afform.permission_operator = editor.afform.permission_operator || 'AND'; + // Initialize undo history undoAction = 'initialLoad'; undoHistory = [{ diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor/config-form.html b/civicrm/ext/afform/admin/ang/afGuiEditor/config-form.html index bc858eef3e7b7f59f3f70e8ad1178b812728f165..43f9225e8577904431ab5c286ba931435e117f92 100644 --- a/civicrm/ext/afform/admin/ang/afGuiEditor/config-form.html +++ b/civicrm/ext/afform/admin/ang/afGuiEditor/config-form.html @@ -22,8 +22,17 @@ <label for="af_config_form_permission"> {{:: ts('Permission') }} </label> - <input ng-model="editor.afform.permission" class="form-control" id="af_config_form_permission" crm-ui-select="{data: editor.meta.permissions}" > - <p class="help-block">{{:: ts('What permission is required to use this form?') }}</p> + <div class="form-inline" > + <input ng-model="editor.afform.permission" class="form-control" id="af_config_form_permission" crm-ui-select="{data: editor.meta.permissions, multiple: true}" ng-list > + <select ng-model="editor.afform.permission_operator" class="form-control" id="af_config_form_permission_operator" > + <option value="AND">{{:: ts('And') }}</option> + <option value="OR">{{:: ts('Or') }}</option> + </select> + </div> + <p class="help-block"> + {{:: ts('What permission is required to use this form?') }} + {{:: ts('Join multiple permissions with "And" to require all, or "Or" to require at least one.') }} + </p> </div> <!-- Placement options do not apply to blocks --> @@ -114,25 +123,46 @@ <!-- Submit actions are only applicable to form types with a submit button (exclude blocks and search forms) --> <fieldset ng-if=":: editor.afform.type === 'form'"> - <legend>{{:: ts('Submit Actions') }}</legend> + <legend class="form-inline"> + {{:: ts('Submissions') }} + </legend> - <div class="form-group" > - <label> - <input type="checkbox" ng-model="editor.afform.create_submission" > - {{:: ts('Log Submissions') }} + <p class="form-inline"> + <label class="radio"> + <input class="crm-form-radio" type="radio" name="submit_enabled" ng-model="editor.afform.submit_enabled" ng-value="true"> + {{:: ts('Open') }} </label> - <p class="help-block">{{:: ts('Keep a log of the date, time, user, and items saved by each form submission.') }}</p> - </div> - - <div class="form-group" ng-class="{'has-error': !!config_form.redirect.$error.pattern}"> - <label for="af_config_redirect"> - {{:: ts('Post-Submit Page') }} + <label class="radio"> + <input class="crm-form-radio" type="radio" name="submit_enabled" ng-model="editor.afform.submit_enabled" ng-value="false"> + {{:: ts('Closed') }} </label> - <div class="input-group"> - <input ng-model="editor.afform.redirect" name="redirect" class="form-control" id="af_config_redirect" title="{{:: ts('Post-Submit Page') }}" pattern="^((http|https):\/\/|\/|civicrm\/)[-0-9a-zA-Z\/_.]\S+$" title="{{:: ts('Post-Submit Page must be either an absolute url, a relative url or a path starting with CiviCRM') }}" ng-model-options="editor.debounceMode" > - <af-gui-token-select class="input-group-addon" model="editor.afform" field="redirect"></af-gui-token-select> + </p> + + <div ng-if="editor.afform.submit_enabled"> + + <div class="form-group"> + <label> + <input type="checkbox" ng-model="editor.afform.create_submission" > + {{:: ts('Log Submissions') }} + </label> + <p class="help-block">{{:: ts('Keep a log of the date, time, user, and items saved by each form submission.') }}</p> + </div> + + <div class="form-inline" ng-if="editor.afform.create_submission"> + <label for="submit_limit">{{:: ts('Maximum Submissions') }}</label> + <input type="number" min="1" step="1" id="submit_limit" ng-model="editor.afform.submit_limit" placeholder="{{:: ts('Unlimited') }}"> + </div> + + <div class="form-group" ng-class="{'has-error': !!config_form.redirect.$error.pattern}"> + <label for="af_config_redirect"> + {{:: ts('Post-Submit Page') }} + </label> + <div class="input-group"> + <input ng-model="editor.afform.redirect" name="redirect" class="form-control" id="af_config_redirect" title="{{:: ts('Post-Submit Page') }}" pattern="^((http|https):\/\/|\/|civicrm\/)[-0-9a-zA-Z\/_.]\S+$" title="{{:: ts('Post-Submit Page must be either an absolute url, a relative url or a path starting with CiviCRM') }}" ng-model-options="editor.debounceMode" > + <af-gui-token-select class="input-group-addon" model="editor.afform" field="redirect"></af-gui-token-select> + </div> + <p class="help-block">{{:: ts('Enter a URL or path that the form should redirect to following a successful submission.') }}</p> </div> - <p class="help-block">{{:: ts('Enter a URL or path that the form should redirect to following a successful submission.') }}</p> </div> </fieldset> </ng-form> diff --git a/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html b/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html index 7e729c184241b618fa606971f74e039d29ede1b5..9c49cbcccdc757d1e28ce607fd22f63da932baf7 100644 --- a/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html +++ b/civicrm/ext/afform/admin/ang/afGuiEditor/elements/afGuiField-menu.html @@ -1,4 +1,4 @@ -<li ng-if="!$ctrl.fieldDefn.is_id"> +<li ng-if="!$ctrl.fieldDefn.input_attrs || !$ctrl.fieldDefn.input_attrs.autofill"> <div href ng-click="$event.stopPropagation()" class="af-gui-field-select-in-dropdown"> <label>{{:: ts('Type:') }}</label> <select class="form-control" ng-model="getSet('input_type')" ng-model-options="{getterSetter: true}" title="{{:: ts('Field type') }}"> @@ -50,7 +50,7 @@ {{:: ts('Required') }} </a> </li> -<li ng-if="!$ctrl.fieldDefn.is_id"> +<li ng-if="!$ctrl.fieldDefn.input_attrs || !$ctrl.fieldDefn.input_attrs.autofill"> <a href ng-click="toggleDefaultValue(); $event.stopPropagation(); $event.target.blur();" title="{{:: ts('Pre-fill this field with a value') }}"> <i class="crm-i fa-{{ $ctrl.hasDefaultValue ? 'check-' : '' }}square-o"></i> {{:: ts('Default value') }} diff --git a/civicrm/ext/afform/admin/info.xml b/civicrm/ext/afform/admin/info.xml index 4f8949bd2478c56b8add0ba876ba97d7d6e52814..6f162974e3bd3156d4fb2689cf0538329237dac4 100644 --- a/civicrm/ext/afform/admin/info.xml +++ b/civicrm/ext/afform/admin/info.xml @@ -13,10 +13,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>beta</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>FormBuilder provides a UI to administer and edit forms. It is an optional admin tool and not required for the forms to function.</comments> <requires> diff --git a/civicrm/ext/afform/core/CRM/Afform/AfformScanner.php b/civicrm/ext/afform/core/CRM/Afform/AfformScanner.php index b7f3a5a47cc85115445a91a13963b3fedc53380f..ae136c30c509d2a7d38e2da102990064958a41bc 100644 --- a/civicrm/ext/afform/core/CRM/Afform/AfformScanner.php +++ b/civicrm/ext/afform/core/CRM/Afform/AfformScanner.php @@ -149,7 +149,7 @@ class CRM_Afform_AfformScanner { 'is_dashlet' => FALSE, 'is_public' => FALSE, 'is_token' => FALSE, - 'permission' => 'access CiviCRM', + 'permission' => ['access CiviCRM'], 'type' => 'system', ]; @@ -157,7 +157,7 @@ class CRM_Afform_AfformScanner { if ($metaFile !== NULL) { $r = array_merge($defaults, json_decode(file_get_contents($metaFile), 1)); // Previous revisions of GUI allowed permission==''. array_merge() doesn't catch all forms of missing-ness. - if ($r['permission'] === '') { + if (empty($r['permission'])) { $r['permission'] = $defaults['permission']; } return $r; diff --git a/civicrm/ext/afform/core/CRM/Afform/BAO/AfformSubmission.php b/civicrm/ext/afform/core/CRM/Afform/BAO/AfformSubmission.php index 6985388f71c71faf977c0059035823bc0232040a..5d44252a86a33b8a404f457df768e41ab5cec342 100644 --- a/civicrm/ext/afform/core/CRM/Afform/BAO/AfformSubmission.php +++ b/civicrm/ext/afform/core/CRM/Afform/BAO/AfformSubmission.php @@ -8,12 +8,28 @@ class CRM_Afform_BAO_AfformSubmission extends CRM_Afform_DAO_AfformSubmission { * @return array */ public static function getAllAfformsByName() { - return \Civi\Api4\Afform::get(FALSE) - ->addSelect('name', 'title') + $suffixMap = [ + 'id' => 'name', + 'name' => 'module_name', + 'abbr' => 'directive_name', + 'label' => 'title', + 'description' => 'description', + 'icon' => 'icon', + 'url' => 'server_route', + ]; + $afforms = \Civi\Api4\Afform::get(FALSE) + ->setSelect(array_values($suffixMap)) ->addOrderBy('title') - ->execute() - ->indexBy('name') - ->column('title'); + ->execute(); + $result = []; + foreach ($afforms as $afform) { + $formattedAfform = []; + foreach ($suffixMap as $suffix => $field) { + $formattedAfform[$suffix] = $afform[$field] ?? NULL; + } + $result[] = $formattedAfform; + } + return $result; } } diff --git a/civicrm/ext/afform/core/CRM/Afform/DAO/AfformSubmission.php b/civicrm/ext/afform/core/CRM/Afform/DAO/AfformSubmission.php index 1f951815e393ca8eff6988d4843d7fd266744087..4a9a953969f4e4091e804be6ebac61b24140f290 100644 --- a/civicrm/ext/afform/core/CRM/Afform/DAO/AfformSubmission.php +++ b/civicrm/ext/afform/core/CRM/Afform/DAO/AfformSubmission.php @@ -6,7 +6,7 @@ * * Generated from org.civicrm.afform/xml/schema/CRM/Afform/AfformSubmission.xml * DO NOT EDIT. Generated by CRM_Core_CodeGen - * (GenCodeChecksum:dd7d40185eee992de1528f12c924a8dd) + * (GenCodeChecksum:a617b263eb7f1a2fcb6fb259c62d6fba) */ use CRM_Afform_ExtensionUtil as E; @@ -72,6 +72,15 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { */ public $submission_date; + /** + * fk to Afform Submission Status options in civicrm_option_values + * + * @var int|string + * (SQL type: int unsigned) + * Note that values will be retrieved from the database as a string. + */ + public $status_id; + /** * Class constructor. */ @@ -119,6 +128,12 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { 'title' => E::ts('Form Submission ID'), 'description' => E::ts('Unique Submission ID'), 'required' => TRUE, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], 'where' => 'civicrm_afform_submission.id', 'table_name' => 'civicrm_afform_submission', 'entity' => 'AfformSubmission', @@ -134,6 +149,12 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { 'name' => 'contact_id', 'type' => CRM_Utils_Type::T_INT, 'title' => E::ts('User Contact ID'), + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], 'where' => 'civicrm_afform_submission.contact_id', 'table_name' => 'civicrm_afform_submission', 'entity' => 'AfformSubmission', @@ -152,6 +173,12 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { 'description' => E::ts('Name of submitted afform'), 'maxlength' => 255, 'size' => CRM_Utils_Type::HUGE, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], 'where' => 'civicrm_afform_submission.afform_name', 'table_name' => 'civicrm_afform_submission', 'entity' => 'AfformSubmission', @@ -162,6 +189,14 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { ], 'pseudoconstant' => [ 'callback' => 'CRM_Afform_BAO_AfformSubmission::getAllAfformsByName', + 'suffixes' => [ + 'name', + 'label', + 'description', + 'abbr', + 'icon', + 'url', + ], ], 'add' => '5.41', ], @@ -170,6 +205,12 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { 'type' => CRM_Utils_Type::T_TEXT, 'title' => E::ts('Submission Data'), 'description' => E::ts('IDs of saved entities'), + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], 'where' => 'civicrm_afform_submission.data', 'table_name' => 'civicrm_afform_submission', 'entity' => 'AfformSubmission', @@ -182,6 +223,12 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { 'name' => 'submission_date', 'type' => CRM_Utils_Type::T_TIMESTAMP, 'title' => E::ts('Submission Date/Time'), + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], 'where' => 'civicrm_afform_submission.submission_date', 'default' => 'CURRENT_TIMESTAMP', 'table_name' => 'civicrm_afform_submission', @@ -194,6 +241,33 @@ class CRM_Afform_DAO_AfformSubmission extends CRM_Core_DAO { 'readonly' => TRUE, 'add' => '5.41', ], + 'status_id' => [ + 'name' => 'status_id', + 'type' => CRM_Utils_Type::T_INT, + 'title' => E::ts('Submission Status'), + 'description' => E::ts('fk to Afform Submission Status options in civicrm_option_values'), + 'required' => TRUE, + 'usage' => [ + 'import' => FALSE, + 'export' => FALSE, + 'duplicate_matching' => FALSE, + 'token' => FALSE, + ], + 'where' => 'civicrm_afform_submission.status_id', + 'default' => '1', + 'table_name' => 'civicrm_afform_submission', + 'entity' => 'AfformSubmission', + 'bao' => 'CRM_Afform_DAO_AfformSubmission', + 'localizable' => 0, + 'html' => [ + 'type' => 'Select', + ], + 'pseudoconstant' => [ + 'optionGroupName' => 'afform_submission_status', + 'optionEditPath' => 'civicrm/admin/options/afform_submission_status', + ], + 'add' => '5.66', + ], ]; CRM_Core_DAO_AllCoreTables::invoke(__CLASS__, 'fields_callback', Civi::$statics[__CLASS__]['fields']); } diff --git a/civicrm/ext/afform/core/CRM/Afform/Upgrader.php b/civicrm/ext/afform/core/CRM/Afform/Upgrader.php index 4859a2981a71b1ac7917adb33901f1c2fb7146ac..3f4011555bf97be8b96038c0cf8106ed87842678 100644 --- a/civicrm/ext/afform/core/CRM/Afform/Upgrader.php +++ b/civicrm/ext/afform/core/CRM/Afform/Upgrader.php @@ -88,4 +88,15 @@ class CRM_Afform_Upgrader extends CRM_Extension_Upgrader_Base { return TRUE; } + /** + * Upgrade 1003 - add status column to afform submissions + * @see https://lab.civicrm.org/dev/core/-/issues/4232 + * @return bool + */ + public function upgrade_1003(): bool { + $this->ctx->log->info('Applying update 1003 - add status column to afform submissions.'); + $this->addColumn('civicrm_afform_submission', 'status_id', "INT UNSIGNED NOT NULL DEFAULT 1 COMMENT 'fk to Afform Submission Status options in civicrm_option_values'"); + return TRUE; + } + } diff --git a/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php b/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php index d793f590826e491a7341271d6b24049a293fbdc0..2aa4dbac14614989fc26aa0b813170adc816c606 100644 --- a/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php +++ b/civicrm/ext/afform/core/Civi/Afform/AfformMetadataInjector.php @@ -138,7 +138,7 @@ class AfformMetadataInjector { if ($inputType === 'Select' || $inputType === 'ChainSelect') { $fieldInfo['input_attrs']['placeholder'] = E::ts('Select'); } - elseif ($inputType === 'EntityRef' && empty($field['is_id'])) { + elseif ($inputType === 'EntityRef' && empty($field['input_attrs']['placeholder'])) { $info = civicrm_api4('Entity', 'get', [ 'where' => [['name', '=', $fieldInfo['fk_entity']]], 'checkPermissions' => FALSE, diff --git a/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php b/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php index 816758c550c00029e1eeb366269204071bdd910e..481c3ca455b31b0f40306bfe78b4c95d750909ab 100644 --- a/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php +++ b/civicrm/ext/afform/core/Civi/Afform/FormDataModel.php @@ -123,9 +123,10 @@ class FormDataModel { return TRUE; } - // "Update" effectively means "read+save". + // "Get" is used for autofilling entities in "update" mode, but also for + // pre-populating fields from a template in "create" mode. if ($action === 'get') { - $action = 'update'; + return TRUE; } $result = !empty($entityDefn['actions'][$action]); @@ -237,8 +238,9 @@ class FormDataModel { $entityTitle = CoreUtil::getInfoItem($entityName, 'title'); $field['input_type'] = 'EntityRef'; $field['fk_entity'] = $entityName; - $field['is_id'] = TRUE; $field['label'] = E::ts('Existing %1', [1 => $entityTitle]); + // Afform-only (so far) metadata tells the form to update an existing entity autofilled from this value + $field['input_attrs']['autofill'] = 'update'; $field['input_attrs']['placeholder'] = E::ts('Select %1', [1 => $entityTitle]); } // If this is an implicit join, get new field from fk entity diff --git a/civicrm/ext/afform/core/Civi/Afform/Utils.php b/civicrm/ext/afform/core/Civi/Afform/Utils.php index 2dc219cb757286e9ec3d0f53632dc08ca71627fc..613787f0c6ee271ac3b20eb25e5c1cab16b55381 100644 --- a/civicrm/ext/afform/core/Civi/Afform/Utils.php +++ b/civicrm/ext/afform/core/Civi/Afform/Utils.php @@ -12,6 +12,8 @@ namespace Civi\Afform; +use CRM_Afform_ExtensionUtil as E; + /** * * @package Civi\Afform @@ -65,14 +67,14 @@ class Utils { '<' => '<', '>=' => '≥', '<=' => '≤', - 'CONTAINS' => ts('Contains'), - 'NOT CONTAINS' => ts("Doesn't Contain"), - 'IN' => ts('Is One Of'), - 'NOT IN' => ts('Not One Of'), - 'LIKE' => ts('Is Like'), - 'NOT LIKE' => ts('Not Like'), - 'REGEXP' => ts('Matches Pattern'), - 'NOT REGEXP' => ts("Doesn't Match Pattern"), + 'CONTAINS' => E::ts('Contains'), + 'NOT CONTAINS' => E::ts("Doesn't Contain"), + 'IN' => E::ts('Is One Of'), + 'NOT IN' => E::ts('Not One Of'), + 'LIKE' => E::ts('Is Like'), + 'NOT LIKE' => E::ts('Not Like'), + 'REGEXP' => E::ts('Matches Pattern'), + 'NOT REGEXP' => E::ts("Doesn't Match Pattern"), ]; } diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php index 53517020767898616cf2a1427ae3fb97b8744dfa..fc4ad6a32fb18d42a25df6a7932401881b1adc31 100644 --- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php +++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/AbstractProcessor.php @@ -5,8 +5,10 @@ namespace Civi\Api4\Action\Afform; use Civi\Afform\Event\AfformEntitySortEvent; use Civi\Afform\Event\AfformPrefillEvent; use Civi\Afform\FormDataModel; +use Civi\API\Exception\UnauthorizedException; use Civi\Api4\Generic\Result; use Civi\Api4\Utils\CoreUtil; +use CRM_Afform_ExtensionUtil as E; /** * Shared functionality for form submission pre & post processing. @@ -30,13 +32,6 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction { */ protected $args = []; - /** - * Used by prefill action to indicate if the entire form or just one entity is being filled. - * @var string - * @options form,entity - */ - protected $fillMode = 'form'; - /** * @var array */ @@ -67,8 +62,14 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction { * @throws \CRM_Core_Exception */ public function _run(Result $result) { - // This will throw an exception if the form doesn't exist or user lacks permission - $this->_afform = (array) civicrm_api4('Afform', 'get', ['where' => [['name', '=', $this->name]]], 0); + $this->_afform = civicrm_api4('Afform', 'get', [ + 'where' => [['name', '=', $this->name], ['submit_currently_open', '=', TRUE]], + ])->first(); + if (!$this->_afform) { + // Either the form doesn't exist, user lacks permission, + // or submit_currently_open = false. + throw new UnauthorizedException(E::ts('You do not have permission to submit this form')); + } $this->_formDataModel = new FormDataModel($this->_afform['layout']); $this->loadEntities(); $result->exchangeArray($this->processForm()); @@ -84,11 +85,12 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction { foreach ($sortedEntities as $entityName) { $entity = $this->_formDataModel->getEntity($entityName); $this->_entityIds[$entityName] = []; - $idField = CoreUtil::getIdFieldName($entity['type']); - if (!empty($entity['actions']['update'])) { + $matchField = $this->matchField ?? CoreUtil::getIdFieldName($entity['type']); + $matchFieldDefn = $this->_formDataModel->getField($entity['type'], $matchField, 'create'); + if (!empty($entity['actions'][$matchFieldDefn['input_attrs']['autofill']])) { if ( !empty($this->args[$entityName]) && - (!empty($entity['url-autofill']) || isset($entity['fields'][$idField])) + (!empty($entity['url-autofill']) || isset($entity['fields'][$matchField])) ) { $ids = (array) $this->args[$entityName]; $this->loadEntity($entity, $ids); @@ -108,7 +110,13 @@ abstract class AbstractProcessor extends \Civi\Api4\Generic\AbstractAction { public function loadEntity(array $entity, array $ids) { // Limit number of records based on af-repeat settings // If 'min' is set then it is repeatable, and max will either be a number or NULL for unlimited. - $ids = array_slice($ids, 0, isset($entity['min']) ? $entity['max'] : 1); + if (isset($entity['min']) && isset($entity['max'])) { + foreach (array_keys($ids) as $index) { + if ($index >= $entity['max']) { + unset($ids[$index]); + } + } + } $api4 = $this->_formDataModel->getSecureApi4($entity['name']); $idField = CoreUtil::getIdFieldName($entity['type']); diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php index aa376d8a399400bffeb56d1307791f168e2102e4..6ee84870734b4a534f1ebde417cca13907d0d304 100644 --- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php +++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Get.php @@ -81,6 +81,9 @@ class Get extends \Civi\Api4\Generic\BasicGetAction { if ($getComputed) { $scanner->addComputedFields($afforms[$name]); } + if (isset($afforms[$name]['permission']) && is_string($afforms[$name]['permission'])) { + $afforms[$name]['permission'] = explode(',', $afforms[$name]['permission']); + } if ($getLayout || $getSearchDisplays) { // Autogenerated layouts will already be in values but can be overridden; scanner takes priority $afforms[$name]['layout'] = $scanner->getLayout($name) ?? $afforms[$name]['layout'] ?? ''; @@ -96,6 +99,20 @@ class Get extends \Civi\Api4\Generic\BasicGetAction { } } + // Fetch submission aggregates in bulk + if ($afforms && $this->_isFieldSelected('submission_count', 'submission_date', 'submit_currently_open')) { + $afformSubmissions = \Civi\Api4\AfformSubmission::get(FALSE) + ->addSelect('afform_name', 'COUNT(id) AS count', 'MAX(submission_date) AS date') + ->addWhere('afform_name', 'IN', array_keys($afforms)) + ->addGroupBy('afform_name') + ->execute()->indexBy('afform_name'); + foreach ($afforms as $name => $record) { + $afforms[$name]['submission_count'] = $afformSubmissions[$name]['count'] ?? 0; + $afforms[$name]['submission_date'] = $afformSubmissions[$name]['date'] ?? NULL; + $afforms[$name]['submit_currently_open'] = ($record['submit_enabled'] ?? TRUE) && (empty($record['submit_limit']) || $record['submit_limit'] > $afforms[$name]['submission_count']); + } + } + return $afforms; } @@ -163,7 +180,7 @@ class Get extends \Civi\Api4\Generic\BasicGetAction { 'is_dashlet' => FALSE, 'is_public' => FALSE, 'is_token' => FALSE, - 'permission' => 'access CiviCRM', + 'permission' => ['access CiviCRM'], 'join_entity' => 'Custom_' . $custom['name'], 'entity_type' => $custom['extends'], ]; diff --git a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Prefill.php b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Prefill.php index a7d1257f6ff3d3bd9ab000f7c05c7a8b22801531..a614ef9778392b2a18b66c0ec4bd4ac53562dfb5 100644 --- a/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Prefill.php +++ b/civicrm/ext/afform/core/Civi/Api4/Action/Afform/Prefill.php @@ -2,14 +2,37 @@ namespace Civi\Api4\Action\Afform; +use Civi\Api4\Utils\CoreUtil; + /** * Class Prefill * @package Civi\Api4\Action\Afform */ class Prefill extends AbstractProcessor { + /** + * Name of the field being matched (typically 'id') + * @var string + */ + protected $matchField; + protected function processForm() { - return \CRM_Utils_Array::makeNonAssociative($this->_entityValues, 'name', 'values'); + $entityValues = $this->_entityValues; + foreach ($entityValues as $afformEntityName => &$valueSets) { + $afformEntity = $this->_formDataModel->getEntity($afformEntityName); + if ($this->matchField) { + $matchFieldDefn = $this->_formDataModel->getField($afformEntity['type'], $this->matchField, 'create'); + // When creating an entity based on an existing one e.g. Event.template_id + if (($matchFieldDefn['input_attrs']['autofill'] ?? NULL) === 'create') { + $idField = CoreUtil::getIdFieldName($afformEntity['type']); + foreach ($valueSets as &$valueSet) { + $valueSet['fields'][$this->matchField] = $valueSet['fields'][$idField]; + unset($valueSet['fields'][$idField]); + } + } + } + } + return \CRM_Utils_Array::makeNonAssociative($entityValues, 'name', 'values'); } } diff --git a/civicrm/ext/afform/core/Civi/Api4/Afform.php b/civicrm/ext/afform/core/Civi/Api4/Afform.php index 71ce29fa65d532b1c5b52aa5338f34a6528e766a..f21cb4b5e69c5640aa29567479134150a15b6332 100644 --- a/civicrm/ext/afform/core/Civi/Api4/Afform.php +++ b/civicrm/ext/afform/core/Civi/Api4/Afform.php @@ -4,6 +4,7 @@ namespace Civi\Api4; use Civi\Api4\Generic\AutocompleteAction; use Civi\Api4\Generic\BasicGetFieldsAction; +use CRM_Afform_ExtensionUtil as E; /** * User-configurable forms. @@ -132,79 +133,116 @@ class Afform extends Generic\AbstractEntity { $fields = [ [ 'name' => 'name', + 'title' => E::ts('Name'), ], [ 'name' => 'type', + 'title' => E::ts('Type'), 'pseudoconstant' => ['optionGroupName' => 'afform_type'], ], [ 'name' => 'requires', + 'title' => E::ts('Requires'), 'data_type' => 'Array', ], [ 'name' => 'entity_type', + 'title' => E::ts('Block Entity'), 'description' => 'Block used for this entity type', ], [ 'name' => 'join_entity', + 'title' => E::ts('Join Entity'), 'description' => 'Used for blocks that join a sub-entity (e.g. Emails for a Contact)', ], [ 'name' => 'title', + 'title' => E::ts('Title'), 'required' => $self->getAction() === 'create', ], [ 'name' => 'description', + 'title' => E::ts('Description'), ], [ 'name' => 'is_dashlet', + 'title' => E::ts('Dashboard Dashlet'), 'data_type' => 'Boolean', ], [ 'name' => 'is_public', + 'title' => E::ts('Is Public'), 'data_type' => 'Boolean', ], [ 'name' => 'is_token', + 'title' => E::ts('Generate Tokens'), 'data_type' => 'Boolean', ], [ 'name' => 'contact_summary', + 'title' => E::ts('Contact Summary'), 'data_type' => 'String', 'options' => [ - 'block' => ts('Contact Summary Block'), - 'tab' => ts('Contact Summary Tab'), + 'block' => E::ts('Contact Summary Block'), + 'tab' => E::ts('Contact Summary Tab'), ], ], [ 'name' => 'summary_contact_type', + 'title' => E::ts('Summary Contact Type'), 'data_type' => 'Array', 'options' => \CRM_Contact_BAO_ContactType::contactTypePairs(), ], [ 'name' => 'icon', + 'title' => E::ts('Icon'), 'description' => 'Icon shown in the contact summary tab', ], [ 'name' => 'server_route', + 'title' => E::ts('Page Route'), ], [ 'name' => 'permission', + 'title' => E::ts('Permission'), + 'data_type' => 'Array', + ], + [ + 'name' => 'permission_operator', + 'title' => E::ts('Permission Operator'), + 'data_type' => 'String', + 'options' => \CRM_Core_SelectValues::andOr(), ], [ 'name' => 'redirect', + 'title' => E::ts('Post-Submit Page'), + ], + [ + 'name' => 'submit_enabled', + 'title' => E::ts('Allow Submissions'), + 'data_type' => 'Boolean', + 'default_value' => TRUE, + ], + [ + 'name' => 'submit_limit', + 'title' => E::ts('Maximum Submissions'), + 'data_type' => 'Integer', ], [ 'name' => 'create_submission', + 'title' => E::ts('Log Submissions'), 'data_type' => 'Boolean', ], [ 'name' => 'navigation', + 'title' => E::ts('Navigation Menu'), 'data_type' => 'Array', 'description' => 'Insert into navigation menu {parent: string, label: string, weight: int}', ], [ 'name' => 'layout', + 'title' => E::ts('Layout'), 'data_type' => 'Array', 'description' => 'HTML form layout; format is controlled by layoutFormat param', ], @@ -214,11 +252,37 @@ class Afform extends Generic\AbstractEntity { $fields[] = [ 'name' => 'module_name', 'type' => 'Extra', + 'description' => 'Name of generated Angular module (CamelCase)', 'readonly' => TRUE, ]; $fields[] = [ 'name' => 'directive_name', 'type' => 'Extra', + 'description' => 'Html tag name to invoke this form (dash-case)', + 'readonly' => TRUE, + ]; + $fields[] = [ + 'name' => 'submission_count', + 'type' => 'Extra', + 'data_type' => 'Integer', + 'input_type' => 'Number', + 'description' => 'Number of submission records for this form', + 'readonly' => TRUE, + ]; + $fields[] = [ + 'name' => 'submission_date', + 'type' => 'Extra', + 'data_type' => 'Timestamp', + 'input_type' => 'Date', + 'description' => 'Date & time of last form submission', + 'readonly' => TRUE, + ]; + $fields[] = [ + 'name' => 'submit_currently_open', + 'type' => 'Extra', + 'data_type' => 'Boolean', + 'input_type' => 'Select', + 'description' => 'Based on settings and current submission count, is the form open for submissions', 'readonly' => TRUE, ]; $fields[] = [ diff --git a/civicrm/ext/afform/core/Civi/Api4/Subscriber/AfformAutocompleteSubscriber.php b/civicrm/ext/afform/core/Civi/Api4/Subscriber/AfformAutocompleteSubscriber.php index 70a1bc05ef02d1f8d3da3dde8b98c1b771a44a68..98d5a551a9de104f4b372cac6ae9fd6639ee8b7e 100644 --- a/civicrm/ext/afform/core/Civi/Api4/Subscriber/AfformAutocompleteSubscriber.php +++ b/civicrm/ext/afform/core/Civi/Api4/Subscriber/AfformAutocompleteSubscriber.php @@ -30,7 +30,7 @@ class AfformAutocompleteSubscriber extends AutoService implements EventSubscribe */ public static function getSubscribedEvents() { return [ - 'civi.api.prepare' => ['onApiPrepare', -20], + 'civi.api.prepare' => ['onApiPrepare', 200], ]; } diff --git a/civicrm/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php b/civicrm/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php index 06147458ea6c3486f9788e402bb0ab0784929d25..42416f11e2777a4351c01264b7ea969d134716f4 100644 --- a/civicrm/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php +++ b/civicrm/ext/afform/core/Civi/Api4/Utils/AfformSaveTrait.php @@ -53,6 +53,9 @@ trait AfformSaveTrait { $meta = $item + (array) $orig; unset($meta['layout'], $meta['name']); + if (isset($meta['permission']) && is_string($meta['permission'])) { + $meta['permission'] = explode(',', $meta['permission']); + } if (!empty($meta)) { $metaPath = $scanner->createSiteLocalPath($item['name'], \CRM_Afform_AfformScanner::METADATA_FILE); \CRM_Utils_File::createDir(dirname($metaPath)); diff --git a/civicrm/ext/afform/core/afform.civix.php b/civicrm/ext/afform/core/afform.civix.php index 9519d9269442933e74d25b6947ca7e19df6d36d6..805881b5d57816daaa276f2db3d9097ec0e64f32 100644 --- a/civicrm/ext/afform/core/afform.civix.php +++ b/civicrm/ext/afform/core/afform.civix.php @@ -133,8 +133,8 @@ function _afform_civix_insert_navigation_menu(&$menu, $path, $item) { if (empty($path)) { $menu[] = [ 'attributes' => array_merge([ - 'label' => CRM_Utils_Array::value('name', $item), - 'active' => 1, + 'label' => $item['name'] ?? NULL, + 'active' => 1, ], $item), ]; return TRUE; diff --git a/civicrm/ext/afform/core/afform.php b/civicrm/ext/afform/core/afform.php index ca1f7acdfa10609da26bb30d790df3f904503f0d..007e52088ab0f3156b254af523d417d5ae5d269d 100644 --- a/civicrm/ext/afform/core/afform.php +++ b/civicrm/ext/afform/core/afform.php @@ -136,8 +136,8 @@ function afform_civicrm_managed(&$entities, $modules) { 'values' => [ 'name' => $afform['name'], 'label' => $afform['navigation']['label'] ?: $afform['title'], - 'permission' => (array) $afform['permission'], - 'permission_operator' => 'OR', + 'permission' => $afform['permission'], + 'permission_operator' => $afform['permission_operator'] ?? 'AND', 'weight' => $afform['navigation']['weight'] ?? 0, 'url' => $afform['server_route'], 'is_active' => 1, @@ -171,7 +171,7 @@ function afform_civicrm_tabset($tabsetName, &$tabs, $context) { if ($tabsetName !== 'civicrm/contact/view') { return; } - $contactTypes = array_merge([$context['contact_type']] ?? [], $context['contact_sub_type'] ?? []); + $contactTypes = array_merge((array) ($context['contact_type'] ?? []), $context['contact_sub_type'] ?? []); $afforms = Civi\Api4\Afform::get(FALSE) ->addSelect('name', 'title', 'icon', 'module_name', 'directive_name', 'summary_contact_type') ->addWhere('contact_summary', '=', 'tab') @@ -181,8 +181,10 @@ function afform_civicrm_tabset($tabsetName, &$tabs, $context) { foreach ($afforms as $afform) { $summaryContactType = $afform['summary_contact_type'] ?? []; if (!$summaryContactType || !$contactTypes || array_intersect($summaryContactType, $contactTypes)) { + // Convention is to name the afform like "afformTabMyInfo" which gets the tab name "my_info" + $tabId = CRM_Utils_String::convertStringToSnakeCase(preg_replace('#^(afformtab|afsearchtab|afform|afsearch)#i', '', $afform['name'])); $tabs[] = [ - 'id' => $afform['name'], + 'id' => $tabId, 'title' => $afform['title'], 'weight' => $weight++, 'icon' => 'crm-i ' . ($afform['icon'] ?: 'fa-list-alt'), @@ -441,14 +443,21 @@ function afform_civicrm_permission_check($permission, &$granted, $contactId) { if (preg_match('/^@afform:(.*)/', $permission, $m)) { $name = $m[1]; - $afform = \Civi\Api4\Afform::get() - ->setCheckPermissions(FALSE) + $afform = \Civi\Api4\Afform::get(FALSE) ->addWhere('name', '=', $name) - ->setSelect(['permission']) + ->addSelect('permission', 'permission_operator') ->execute() ->first(); + // No permissions found... this shouldn't happen but just in case, set default. + if ($afform && empty($afform['permission'])) { + $afform['permission'] = ['access CiviCRM']; + } if ($afform) { - $granted = CRM_Core_Permission::check($afform['permission'], $contactId); + $check = (array) $afform['permission']; + if ($afform['permission_operator'] === 'OR') { + $check = [$check]; + } + $granted = CRM_Core_Permission::check($check, $contactId); } } } diff --git a/civicrm/ext/afform/core/ang/af/afField.component.js b/civicrm/ext/afform/core/ang/af/afField.component.js index 2b46d142f41b41ffd166ce479c5d62942ab9aff3..38f9c66af6e9a97f04d4f943309c137a3acaf851 100644 --- a/civicrm/ext/afform/core/ang/af/afField.component.js +++ b/civicrm/ext/afform/core/ang/af/afField.component.js @@ -208,8 +208,8 @@ }; ctrl.isReadonly = function() { - if (ctrl.defn.is_id) { - return ctrl.afFieldset.getEntity().actions.update === false; + if (ctrl.defn.input_attrs && ctrl.defn.input_attrs.autofill) { + return ctrl.afFieldset.getEntity().actions[ctrl.defn.input_attrs.autofill] === false; } // TODO: Not actually used, but could be used if we wanted to render displayOnly // fields as more than just raw data. I think we probably ought to do so for entityRef fields @@ -220,11 +220,11 @@ // ngChange callback from Existing entity field ctrl.onSelectEntity = function() { - if (ctrl.defn.is_id) { + if (ctrl.defn.input_attrs && ctrl.defn.input_attrs.autofill) { var val = $scope.getSetSelect(); var entity = ctrl.afFieldset.modelName; var index = ctrl.getEntityIndex(); - ctrl.afFieldset.afFormCtrl.loadData(entity, index, val); + ctrl.afFieldset.afFormCtrl.loadData(entity, index, val, ctrl.defn.name); } }; diff --git a/civicrm/ext/afform/core/ang/af/afForm.component.js b/civicrm/ext/afform/core/ang/af/afForm.component.js index 6584171873b4c64d15e71ef34293f75393f22439..00fb929047b7432abe16befef3f6fd0de887af93 100644 --- a/civicrm/ext/afform/core/ang/af/afForm.component.js +++ b/civicrm/ext/afform/core/ang/af/afForm.component.js @@ -1,4 +1,5 @@ (function(angular, $, _) { + "use strict"; // Example usage: <af-form ctrl="afform"> angular.module('af').component('afForm', { bindings: { @@ -41,14 +42,15 @@ return $scope.$parent.meta; }; // With no arguments this will prefill the entire form based on url args + // and also check if the form is open for submissions. // With selectedEntity, selectedIndex & selectedId provided this will prefill a single entity - this.loadData = function(selectedEntity, selectedIndex, selectedId) { - var toLoad = 0, - params = {name: ctrl.getFormMeta().name, args: {}}; + this.loadData = function(selectedEntity, selectedIndex, selectedId, selectedField) { + let toLoad = true; + const params = {name: ctrl.getFormMeta().name, args: {}}; // Load single entity if (selectedEntity) { - toLoad = selectedId; - params.fillMode = 'entity'; + toLoad = !!selectedId; + params.matchField = selectedField; params.args[selectedEntity] = {}; params.args[selectedEntity][selectedIndex] = selectedId; } @@ -56,9 +58,6 @@ else { args = _.assign({}, $scope.$parent.routeParams || {}, $scope.$parent.options || {}); _.each(schema, function (entity, entityName) { - if (args[entityName] || entity.actions.update) { - toLoad++; - } if (args[entityName] && typeof args[entityName] === 'string') { args[entityName] = args[entityName].split(','); } @@ -67,19 +66,31 @@ } if (toLoad) { crmApi4('Afform', 'prefill', params) - .then(function(result) { - _.each(result, function(item) { - data[item.name] = data[item.name] || {}; - _.extend(data[item.name], item.values, schema[item.name].data || {}); + .then((result) => { + result.forEach((item) => { + // Use _.each() because item.values could be cast as an object if array keys are not sequential + _.each(item.values, (values, index) => { + data[item.name][index] = data[item.name][index] || {}; + data[item.name][index].joins = {}; + angular.merge(data[item.name][index], values, {fields: _.cloneDeep(schema[item.name].data || {})}); + }); }); + }, (error) => { + if (error.status === 403) { + // Permission denied + disableForm(); + } else { + // Unknown server error. What to do? + } }); } // Clear existing contact selection else if (selectedEntity) { - data[selectedEntity][selectedIndex].fields = {}; - if (data[selectedEntity][selectedIndex].joins) { - data[selectedEntity][selectedIndex].joins = {}; - } + // Delete object keys without breaking object references + Object.keys(data[selectedEntity][selectedIndex].fields).forEach(key => delete data[selectedEntity][selectedIndex].fields[key]); + // Fill pre-set values + angular.merge(data[selectedEntity][selectedIndex].fields, _.cloneDeep(schema[selectedEntity].data || {})); + data[selectedEntity][selectedIndex].joins = {}; } }; @@ -149,6 +160,13 @@ return valid; } + function disableForm() { + CRM.alert(ts('This form is not currently open for submissions.'), ts('Sorry'), 'error'); + $('af-form[ng-form="' + ctrl.getFormMeta().name + '"]') + .addClass('disabled') + .find('button[ng-click="afform.submit()"]').prop('disabled', true); + } + this.submit = function() { // validate required fields on the form if (!ctrl.ngForm.$valid || !validateFileFields()) { diff --git a/civicrm/ext/afform/core/ang/afblockContactNote.aff.html b/civicrm/ext/afform/core/ang/afblockContactNote.aff.html new file mode 100644 index 0000000000000000000000000000000000000000..d02d2f6408c8a956a65267186ce4a3d75113afe1 --- /dev/null +++ b/civicrm/ext/afform/core/ang/afblockContactNote.aff.html @@ -0,0 +1,5 @@ +<div class="af-container af-layout-inline"> + <af-field name="note" /> + <af-field name="subject" /> + </div> + \ No newline at end of file diff --git a/civicrm/ext/afform/core/ang/afblockContactNote.aff.json b/civicrm/ext/afform/core/ang/afblockContactNote.aff.json new file mode 100644 index 0000000000000000000000000000000000000000..b3412870a7362710c6c9ae8fb516fc4f74e2bc9f --- /dev/null +++ b/civicrm/ext/afform/core/ang/afblockContactNote.aff.json @@ -0,0 +1,7 @@ +{ + "title": "Contact Note(s)", + "type": "block", + "entity_type": "Contact", + "join_entity": "Note" + } + \ No newline at end of file diff --git a/civicrm/ext/afform/core/info.xml b/civicrm/ext/afform/core/info.xml index 0baab18d64d40bba8b0d03b5e32850fb28a46b71..ac7f14d9e07ad56a4732edcdd0eef2beb9b6919f 100644 --- a/civicrm/ext/afform/core/info.xml +++ b/civicrm/ext/afform/core/info.xml @@ -13,15 +13,15 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>beta</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>The Form Core extension is required to use any dynamic form. To administer and edit forms, also install the FormBuilder extension.</comments> <civix> <namespace>CRM/Afform</namespace> - <format>23.02.0</format> + <format>23.02.1</format> </civix> <classloader> <psr4 prefix="Civi\" path="Civi"/> @@ -34,7 +34,7 @@ <mixin>ang-php@1.0.0</mixin> <mixin>mgd-php@1.0.0</mixin> <mixin>scan-classes@1.0.0</mixin> - <mixin>smarty-v2@1.0.0</mixin> + <mixin>smarty-v2@1.0.1</mixin> <mixin>entity-types-php@1.0.0</mixin> </mixins> <upgrader>CRM_Afform_Upgrader</upgrader> diff --git a/civicrm/ext/afform/core/managed/AfformSubmissionStatus.mgd.php b/civicrm/ext/afform/core/managed/AfformSubmissionStatus.mgd.php new file mode 100644 index 0000000000000000000000000000000000000000..0afae293c0e48fb7485e54be585c1f8a967e6303 --- /dev/null +++ b/civicrm/ext/afform/core/managed/AfformSubmissionStatus.mgd.php @@ -0,0 +1,88 @@ +<?php + +use CRM_Afform_ExtensionUtil as E; + +// Adds option group for Afform.status_id +return [ + [ + 'name' => 'AfformSubmissionStatus', + 'entity' => 'OptionGroup', + 'update' => 'always', + 'cleanup' => 'always', + 'params' => [ + 'version' => 4, + 'values' => [ + 'name' => 'afform_submission_status', + 'title' => E::ts('Afform Submission Status'), + 'description' => NULL, + 'data_type' => NULL, + 'is_reserved' => TRUE, + 'is_active' => TRUE, + 'is_locked' => FALSE, + 'option_value_fields' => [ + 'name', + 'label', + 'icon', + 'description', + ], + ], + 'match' => ['name'], + ], + ], + [ + 'name' => 'AfformSubmissionStatus:Processed', + 'entity' => 'OptionValue', + 'cleanup' => 'always', + 'update' => 'always', + 'params' => [ + 'version' => 4, + 'values' => [ + 'option_group_id.name' => 'afform_submission_status', + 'name' => 'Processed', + 'value' => 1, + 'label' => E::ts('Processed'), + 'grouping' => NULL, + 'filter' => 0, + 'is_default' => FALSE, + 'description' => NULL, + 'is_optgroup' => FALSE, + 'is_reserved' => FALSE, + 'is_active' => TRUE, + 'component_id' => NULL, + 'domain_id' => NULL, + 'visibility_id' => NULL, + 'icon' => 'fa-check', + 'color' => NULL, + ], + 'match' => ['option_group_id', 'name'], + ], + ], + [ + 'name' => 'AfformSubmissionStatus:Pending', + 'entity' => 'OptionValue', + 'cleanup' => 'always', + 'update' => 'always', + 'params' => [ + 'version' => 4, + 'values' => [ + 'option_group_id.name' => 'afform_submission_status', + 'name' => 'Pending', + 'value' => 2, + 'label' => E::ts('Pending'), + 'grouping' => NULL, + 'filter' => 0, + 'is_default' => FALSE, + 'description' => NULL, + 'is_optgroup' => FALSE, + 'is_reserved' => FALSE, + 'is_active' => TRUE, + 'component_id' => NULL, + 'domain_id' => NULL, + 'visibility_id' => NULL, + 'icon' => 'fa-exclamation', + 'color' => NULL, + ], + 'match' => ['option_group_id', 'name'], + ], + ], +]; diff --git a/civicrm/ext/afform/core/phpunit.xml.dist b/civicrm/ext/afform/core/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/afform/core/phpunit.xml.dist +++ b/civicrm/ext/afform/core/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/afform/core/sql/auto_install.sql b/civicrm/ext/afform/core/sql/auto_install.sql index e18f3df3a97a9cb2f28206816f51c2f4feb971d6..44103e83986664931e256d51dc7b338c6c009105 100644 --- a/civicrm/ext/afform/core/sql/auto_install.sql +++ b/civicrm/ext/afform/core/sql/auto_install.sql @@ -39,6 +39,7 @@ CREATE TABLE `civicrm_afform_submission` ( `afform_name` varchar(255) COMMENT 'Name of submitted afform', `data` text COMMENT 'IDs of saved entities', `submission_date` timestamp DEFAULT CURRENT_TIMESTAMP, + `status_id` int unsigned NOT NULL DEFAULT 1 COMMENT 'fk to Afform Submission Status options in civicrm_option_values', PRIMARY KEY (`id`), CONSTRAINT FK_civicrm_afform_submission_contact_id FOREIGN KEY (`contact_id`) REFERENCES `civicrm_contact`(`id`) ON DELETE SET NULL ) diff --git a/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php b/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php index f93fea9bdf38e0ab1745b7dc1509610724f0b53b..fa5766e857bd03cf5419ebe97adda40ac6cb8ebf 100644 --- a/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php +++ b/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformGetTest.php @@ -72,7 +72,9 @@ class AfformGetTest extends \PHPUnit\Framework\TestCase implements HeadlessInter } public function testAfformAutocomplete(): void { - $title = uniqid(); + // Use a numeric title to test that the "search by id" feature + // doesn't kick in for Afforms (which don't have a numeric "id") + $title = (string) rand(1000, 999999); Afform::create() ->addValue('name', $this->formName) ->addValue('title', $title) diff --git a/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformSubmissionTest.php b/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformSubmissionTest.php new file mode 100644 index 0000000000000000000000000000000000000000..90f8d332b756633782a79fc09b7ab61364c3ae0a --- /dev/null +++ b/civicrm/ext/afform/core/tests/phpunit/Civi/Afform/AfformSubmissionTest.php @@ -0,0 +1,24 @@ +<?php +namespace Civi\Afform; + +use Civi\Api4\AfformSubmission; +use Civi\Test\HeadlessInterface; + +/** + * @group headless + */ +class AfformSubmissionTest extends \PHPUnit\Framework\TestCase implements HeadlessInterface { + + public function setUpHeadless() { + return \Civi\Test::headless()->install(['org.civicrm.search_kit', 'org.civicrm.afform', 'org.civicrm.afform_admin'])->apply(); + } + + public function testGetFields():void { + $fields = AfformSubmission::getFields(FALSE) + ->setAction('get') + ->execute()->indexBy('name'); + $this->assertTrue($fields['afform_name']['options']); + $this->assertEquals(['name', 'label', 'description', 'abbr', 'icon', 'url'], $fields['afform_name']['suffixes']); + } + +} diff --git a/civicrm/ext/afform/core/xml/schema/CRM/Afform/AfformSubmission.xml b/civicrm/ext/afform/core/xml/schema/CRM/Afform/AfformSubmission.xml index 34f064f268eee76e1d9aa801febd905e53172d1a..70c12a67831b2334259b44eecd92551e18d8d297 100644 --- a/civicrm/ext/afform/core/xml/schema/CRM/Afform/AfformSubmission.xml +++ b/civicrm/ext/afform/core/xml/schema/CRM/Afform/AfformSubmission.xml @@ -52,6 +52,7 @@ <add>5.41</add> <pseudoconstant> <callback>CRM_Afform_BAO_AfformSubmission::getAllAfformsByName</callback> + <suffixes>name,label,description,abbr,icon,url</suffixes> </pseudoconstant> </field> @@ -76,4 +77,20 @@ <add>5.41</add> </field> + <field> + <name>status_id</name> + <title>Submission Status</title> + <type>int unsigned</type> + <required>true</required> + <html> + <type>Select</type> + </html> + <pseudoconstant> + <optionGroupName>afform_submission_status</optionGroupName> + </pseudoconstant> + <comment>fk to Afform Submission Status options in civicrm_option_values</comment> + <default>1</default> + <add>5.66</add> + </field> + </table> diff --git a/civicrm/ext/afform/html/info.xml b/civicrm/ext/afform/html/info.xml index a26a0a7836aec50164410a6c7c0c8e8c2e72a28e..ac068d7dae188f2f9d724077ab137025d336aae3 100644 --- a/civicrm/ext/afform/html/info.xml +++ b/civicrm/ext/afform/html/info.xml @@ -13,10 +13,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>alpha</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <requires> <ext>org.civicrm.afform</ext> diff --git a/civicrm/ext/afform/mock/ang/mockPublicForm.test.php b/civicrm/ext/afform/mock/ang/mockPublicForm.test.php index 0eff06c8299d05a3b6911f41a0f3354ce9f2c066..0fc9bf674f839e2a6ef6164389135a0bfff31592 100644 --- a/civicrm/ext/afform/mock/ang/mockPublicForm.test.php +++ b/civicrm/ext/afform/mock/ang/mockPublicForm.test.php @@ -76,7 +76,7 @@ class MockPublicFormTest extends \Civi\AfformMock\FormTestCase { $this->fail('Plain text message did not have URL in expected place: ' . $text); } $url = $m[1]; - $this->assertRegExp(';^https?:.*civicrm/mock-public-form.*;', $url, "URL should look plausible"); + $this->assertMatchesRegularExpression(';^https?:.*civicrm/mock-public-form.*;', $url, "URL should look plausible"); // Going to this page will cause us to authenticate as the target contact $http = $this->createGuzzle(['http_errors' => FALSE, 'cookies' => new \GuzzleHttp\Cookie\CookieJar()]); @@ -102,7 +102,7 @@ class MockPublicFormTest extends \Civi\AfformMock\FormTestCase { $this->fail('HTML message did not have URL in expected place: ' . $html); } $url = html_entity_decode($m[1]); - $this->assertRegExp(';^https?:.*civicrm/mock-public-form.*;', $url, "URL should look plausible"); + $this->assertMatchesRegularExpression(';^https?:.*civicrm/mock-public-form.*;', $url, "URL should look plausible"); // Going to this page will cause us to authenticate as the target contact $http = $this->createGuzzle(['cookies' => new \GuzzleHttp\Cookie\CookieJar()]); @@ -126,7 +126,7 @@ class MockPublicFormTest extends \Civi\AfformMock\FormTestCase { $this->assertEquals(1, $doc->find('a')->count(), 'Document should have hyperlink'); foreach ($doc->find('a') as $item) { /** @var \DOMElement $item */ - $this->assertRegExp(';^https?:.*civicrm/mock-public-form.*;', $item->getAttribute('href')); + $this->assertMatchesRegularExpression(';^https?:.*civicrm/mock-public-form.*;', $item->getAttribute('href')); $this->assertEquals('My public form', $item->firstChild->data); $url = $item->getAttribute('href'); } diff --git a/civicrm/ext/afform/mock/info.xml b/civicrm/ext/afform/mock/info.xml index 71485fc8522898fa136c524994c966463685cdf9..cf63a6fe963d0537287938932b37e3c4428ec3b5 100644 --- a/civicrm/ext/afform/mock/info.xml +++ b/civicrm/ext/afform/mock/info.xml @@ -12,13 +12,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-09</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <tags> <tag>mgmt:hidden</tag> </tags> <develStage>alpha</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <requires> <ext>org.civicrm.afform</ext> diff --git a/civicrm/ext/afform/mock/phpunit.xml.dist b/civicrm/ext/afform/mock/phpunit.xml.dist index e3e4c4c1513f0232178ddd7f20cf88888def893d..1f804252c562da890f8670f7810964be2cac9ad0 100644 --- a/civicrm/ext/afform/mock/phpunit.xml.dist +++ b/civicrm/ext/afform/mock/phpunit.xml.dist @@ -1,5 +1,22 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> @@ -8,11 +25,6 @@ <directory suffix=".test.php">./ang</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformAutocompleteUsageTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformAutocompleteUsageTest.php index 43b88fcf5ab14422d672f93452ddfe72a34e32c6..ade9f0c09cf54598f391fb24bf4213db73e5b6bf 100644 --- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformAutocompleteUsageTest.php +++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformAutocompleteUsageTest.php @@ -68,8 +68,8 @@ EOHTML; ->execute(); $this->assertCount(2, $result); - $this->assertEquals('A ' . $lastName, $result[0]['label']); - $this->assertEquals('B ' . $lastName, $result[1]['label']); + $this->assertEquals($lastName . ', A', $result[0]['label']); + $this->assertEquals($lastName . ', B', $result[1]['label']); // Ensure form validates submission, restricting it to contacts A & B $values = [ @@ -168,8 +168,8 @@ EOHTML; ->execute(); $this->assertCount(2, $result); - $this->assertEquals('A ' . $lastName, $result[0]['label']); - $this->assertEquals('B ' . $lastName, $result[1]['label']); + $this->assertEquals($lastName . ', A', $result[0]['label']); + $this->assertEquals($lastName . ', B', $result[1]['label']); // Ensure form validates submission, restricting it to contacts A & B $values = [ @@ -262,8 +262,8 @@ EOHTML; ->execute(); $this->assertCount(2, $result); - $this->assertEquals('A ' . $lastName, $result[0]['label']); - $this->assertEquals('C ' . $lastName, $result[1]['label']); + $this->assertEquals($lastName . ', A', $result[0]['label']); + $this->assertEquals($lastName . ', C', $result[1]['label']); // Ensure form validates submission, restricting it to contacts A & C $values = [ diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php index 33245f63c92fedaf53aa6a2cf3409f5e890f46d7..2457fb510b3df6c29015eae0b9def0fe5573b8e5 100644 --- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php +++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformContactUsageTest.php @@ -1,4 +1,6 @@ <?php +require_once __DIR__ . '/AfformTestCase.php'; +require_once __DIR__ . '/AfformUsageTestCase.php'; /** * Test case for Afform.prefill and Afform.submit. @@ -90,7 +92,7 @@ EOHTML; ->execute() ->indexBy('name'); $this->assertEquals('Logged In', $prefill['me']['values'][0]['fields']['first_name']); - $this->assertRegExp('/^User/', $prefill['me']['values'][0]['fields']['last_name']); + $this->assertMatchesRegularExpression('/^User/', $prefill['me']['values'][0]['fields']['last_name']); $submission = [ ['fields' => ['first_name' => 'Firsty', 'last_name' => 'Lasty']], @@ -496,4 +498,65 @@ EOHTML; } + public function testSubmissionLimit() { + $this->useValues([ + 'layout' => self::$layouts['aboutMe'], + 'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION, + 'create_submission' => TRUE, + 'submit_limit' => 3, + ]); + + $cid = $this->createLoggedInUser(); + CRM_Core_Config::singleton()->userPermissionTemp = new CRM_Core_Permission_Temp(); + + $submitValues = [ + ['fields' => ['first_name' => 'Firsty', 'last_name' => 'Lasty']], + ]; + + // Submit twice + Civi\Api4\Afform::submit() + ->setName($this->formName) + ->setValues(['me' => $submitValues]) + ->execute(); + Civi\Api4\Afform::submit() + ->setName($this->formName) + ->setValues(['me' => $submitValues]) + ->execute(); + + // Autofilling form works because limit hasn't been reached + Civi\Api4\Afform::prefill()->setName($this->formName)->execute(); + + // Last time + Civi\Api4\Afform::submit() + ->setName($this->formName) + ->setValues(['me' => $submitValues]) + ->execute(); + + // Stats should report that we've reached the submission limit + $stats = \Civi\Api4\Afform::get(FALSE) + ->addSelect('submit_enabled', 'submission_count', 'submit_currently_open') + ->addWhere('name', '=', $this->formName) + ->execute()->single(); + $this->assertTrue($stats['submit_enabled']); + $this->assertFalse($stats['submit_currently_open']); + $this->assertEquals(3, $stats['submission_count']); + + // Prefilling and submitting are no longer allowed. + try { + Civi\Api4\Afform::prefill()->setName($this->formName)->execute(); + $this->fail(); + } + catch (\Civi\API\Exception\UnauthorizedException $e) { + } + try { + Civi\Api4\Afform::submit() + ->setName($this->formName) + ->setValues(['me' => $submitValues]) + ->execute(); + $this->fail(); + } + catch (\Civi\API\Exception\UnauthorizedException $e) { + } + } + } diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformPrefillUsageTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformPrefillUsageTest.php new file mode 100644 index 0000000000000000000000000000000000000000..936eb8ed567cf3799d9ea5936c7cd262021a35f1 --- /dev/null +++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformPrefillUsageTest.php @@ -0,0 +1,165 @@ +<?php + +/** + * Test case for Afform with autocomplete. + * + * @group headless + */ +class api_v4_AfformPrefillUsageTest extends api_v4_AfformUsageTestCase { + use \Civi\Test\Api4TestTrait; + + /** + * Ensure that Afform restricts autocomplete results when it's set to use a SavedSearch + */ + public function testPrefillWithRepeat(): void { + $layout = <<<EOHTML +<af-form ctrl="afform"> + <af-entity data="{contact_type: 'Individual'}" type="Contact" name="Individual1" label="Individual 1" actions="{create: true, update: true}" security="RBAC" url-autofill="1" /> + <fieldset af-fieldset="Individual1" class="af-container" af-title="Individual 1" af-repeat="Add" min="1" max="3"> + <div class="af-container"> + <af-field name="id"></af-field> + <af-field name="preferred_communication_method"></af-field> + <afblock-name-individual></afblock-name-individual> + </div> + <div af-join="Email" af-repeat="Add" af-copy="Copy" min="1"> + <afblock-contact-email></afblock-contact-email> + </div> + <div af-join="Phone" af-repeat="Add" af-copy="Copy" min="1" max="2"> + <afblock-contact-phone></afblock-contact-phone> + </div> + </fieldset> +</af-form> +EOHTML; + + $this->useValues([ + 'layout' => $layout, + 'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION, + ]); + + $cid = $this->saveTestRecords('Contact', [ + 'records' => [ + ['first_name' => 'A', 'last_name' => '_A', 'preferred_communication_method' => [1, 3]], + ['first_name' => 'B', 'last_name' => '_B', 'email_primary.email' => 'b@afform.test'], + ['first_name' => 'C', 'last_name' => '_C'], + ['first_name' => 'D', 'last_name' => '_D', 'email_primary.email' => 'd@afform.test'], + ], + ])->column('id'); + + $this->saveTestRecords('Phone', [ + 'records' => [ + ['contact_id' => $cid[0], 'phone' => '0-1'], + ['contact_id' => $cid[0], 'phone' => '0-2'], + ['contact_id' => $cid[0], 'phone' => '0-3'], + ['contact_id' => $cid[2], 'phone' => '2-1'], + ['contact_id' => $cid[3], 'phone' => '3-1'], + ], + ]); + + $prefill = Civi\Api4\Afform::prefill() + ->setName($this->formName) + ->setArgs(['Individual1' => $cid]) + ->execute() + ->indexBy('name'); + + // Form entity has `max="3"` + $this->assertCount(3, $prefill['Individual1']['values']); + $this->assertEquals('A', $prefill['Individual1']['values'][0]['fields']['first_name']); + $this->assertEquals([1, 3], $prefill['Individual1']['values'][0]['fields']['preferred_communication_method']); + $this->assertEquals('B', $prefill['Individual1']['values'][1]['fields']['first_name']); + $this->assertEquals('C', $prefill['Individual1']['values'][2]['fields']['first_name']); + + // One email should have been filled + $this->assertCount(1, $prefill['Individual1']['values'][1]['joins']['Email']); + $this->assertEquals('b@afform.test', $prefill['Individual1']['values'][1]['joins']['Email'][0]['email']); + $this->assertEmpty($prefill['Individual1']['values'][0]['joins']['Email']); + $this->assertEmpty($prefill['Individual1']['values'][2]['joins']['Email']); + + // Phone join has `max="2"` + $this->assertCount(2, $prefill['Individual1']['values'][0]['joins']['Phone']); + $this->assertCount(1, $prefill['Individual1']['values'][2]['joins']['Phone']); + $this->assertEquals('2-1', $prefill['Individual1']['values'][2]['joins']['Phone'][0]['phone']); + $this->assertEmpty($prefill['Individual1']['values'][1]['joins']['Phone']); + + // Prefill a specific contact for the af-repeat entity + $prefill = Civi\Api4\Afform::prefill() + ->setName($this->formName) + ->setArgs(['Individual1' => [1 => $cid[3]]]) + ->execute() + ->indexBy('name'); + $this->assertCount(1, $prefill['Individual1']['values']); + $this->assertEquals('D', $prefill['Individual1']['values'][1]['fields']['first_name']); + $this->assertEquals('_D', $prefill['Individual1']['values'][1]['fields']['last_name']); + $this->assertEquals('d@afform.test', $prefill['Individual1']['values'][1]['joins']['Email'][0]['email']); + $this->assertEquals('3-1', $prefill['Individual1']['values'][1]['joins']['Phone'][0]['phone']); + + // Form entity has `max="3"` so a forth contact (index 3) is out-of-bounds + $prefill = Civi\Api4\Afform::prefill() + ->setName($this->formName) + ->setArgs(['Individual1' => [3 => $cid[0]]]) + ->execute(); + $this->assertTrue(empty($prefill['Individual1']['values'])); + } + + public function testPrefillByRelationship(): void { + + $layout = <<<EOHTML +<af-form ctrl="afform"> + <af-entity data="{contact_type: 'Individual', source: 'Child + parents'}" type="Contact" name="Children" label="Individual 1" actions="{create: true, update: true}" security="RBAC" autofill="relationship:Child of" autofill-relationship="user_contact_id" /> + <af-entity data="{contact_type: 'Individual', source: 'Child + parents'}" type="Contact" name="Parents" label="Individual 2" actions="{create: true, update: true}" security="RBAC" autofill="relationship:Parent of" autofill-relationship="Children" /> + <fieldset af-fieldset="Children" class="af-container" af-title="Individual 1" min="1" af-repeat="Add" af-copy="Copy"> + <afblock-name-individual></afblock-name-individual> + </fieldset> + <fieldset af-fieldset="Parents" class="af-container" af-title="Individual 2" min="1" af-repeat="Add" af-copy="Copy"> + <afblock-name-individual></afblock-name-individual> + </fieldset> + <button class="af-button btn btn-primary" crm-icon="fa-check" ng-click="afform.submit()">Submit</button> +</af-form> +EOHTML; + + $this->useValues([ + 'layout' => $layout, + 'permission' => CRM_Core_Permission::ALWAYS_ALLOW_PERMISSION, + ]); + + $uid = $this->createLoggedInUser(); + + $cid = $this->saveTestRecords('Contact', [ + 'records' => [ + ['first_name' => 'Co', 'last_name' => 'Parent'], + ['first_name' => 'First', 'last_name' => 'Child'], + ['first_name' => 'Second', 'last_name' => 'Child'], + ['first_name' => 'Third', 'last_name' => 'Child'], + ], + ])->column('id'); + + // Create parent/child relationships + foreach ([1, 2, 3] as $child) { + $values = [ + 'contact_id_a' => $cid[$child], + 'contact_id_b' => $cid[0], + 'relationship_type_id:name' => 'Child of', + ]; + civicrm_api4('Relationship', 'create', ['values' => $values]); + $values['contact_id_b'] = $uid; + civicrm_api4('Relationship', 'create', ['values' => $values]); + } + + $prefill = Civi\Api4\Afform::prefill() + ->setName($this->formName) + ->execute() + ->indexBy('name'); + + $this->assertCount(3, $prefill['Children']['values']); + $children = array_column($prefill['Children']['values'], 'fields'); + $this->assertContains('First', array_column($children, 'first_name')); + $this->assertContains('Second', array_column($children, 'first_name')); + $this->assertContains('Third', array_column($children, 'first_name')); + + $this->assertCount(2, $prefill['Parents']['values']); + $parents = array_column($prefill['Parents']['values'], 'fields'); + $this->assertContains('Co', array_column($parents, 'first_name')); + $this->assertContains($uid, array_column($parents, 'id')); + $this->assertContains($cid[0], array_column($parents, 'id')); + } + +} diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRoutingTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRoutingTest.php index 00eb9ef4019b2be8ee491d17d9bd2ecd83d24934..9e609605c6e3b25c50366f5e576123414bfabbc4 100644 --- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRoutingTest.php +++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformRoutingTest.php @@ -81,8 +81,8 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C private function assertNotAuthorized(Psr\Http\Message\ResponseInterface $result, $directive) { $contents = $result->getBody()->getContents(); $this->assertEquals(403, $result->getStatusCode()); - $this->assertRegExp(';You are not authorized to access;', $contents); - $this->assertNotRegExp(';' . preg_quote("<$directive>", ';') . ';', $contents); + $this->assertMatchesRegularExpression(';You are not authorized to access;', $contents); + $this->assertDoesNotMatchRegularExpression(';' . preg_quote("<$directive>", ';') . ';', $contents); } /** @@ -93,8 +93,8 @@ class api_v4_AfformRoutingTest extends \PHPUnit\Framework\TestCase implements \C private function assertOpensPage(Psr\Http\Message\ResponseInterface $result, $directive) { $contents = $result->getBody()->getContents(); $this->assertEquals(200, $result->getStatusCode()); - $this->assertNotRegExp(';You are not authorized to access;', $contents); - $this->assertRegExp(';' . preg_quote("<$directive>", ';') . ';', $contents); + $this->assertDoesNotMatchRegularExpression(';You are not authorized to access;', $contents); + $this->assertMatchesRegularExpression(';' . preg_quote("<$directive>", ';') . ';', $contents); } } diff --git a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php index 8f093eac42b4f2b673febd29035644232ddc8a21..6b381ed1fabe51a22308fa04518daf41fed0298e 100644 --- a/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php +++ b/civicrm/ext/afform/mock/tests/phpunit/api/v4/AfformTest.php @@ -31,10 +31,10 @@ class api_v4_AfformTest extends api_v4_AfformTestCase { public function getBasicDirectives() { return [ - ['mockPage', ['title' => '', 'description' => '', 'server_route' => 'civicrm/mock-page', 'permission' => 'access Foobar', 'is_dashlet' => TRUE]], - ['mockBareFile', ['title' => '', 'description' => '', 'permission' => 'access CiviCRM', 'is_dashlet' => FALSE]], - ['mockFoo', ['title' => '', 'description' => '', 'permission' => 'access CiviCRM']], - ['mock-weird-name', ['title' => 'Weird Name', 'description' => '', 'permission' => 'access CiviCRM']], + ['mockPage', ['title' => '', 'description' => '', 'server_route' => 'civicrm/mock-page', 'permission' => ['access Foobar'], 'is_dashlet' => TRUE, 'submit_enabled' => TRUE]], + ['mockBareFile', ['title' => '', 'description' => '', 'permission' => ['access CiviCRM'], 'is_dashlet' => FALSE, 'submit_enabled' => TRUE]], + ['mockFoo', ['title' => '', 'description' => '', 'permission' => ['access CiviCRM']], 'submit_enabled' => TRUE], + ['mock-weird-name', ['title' => 'Weird Name', 'description' => '', 'permission' => ['access CiviCRM']], 'submit_enabled' => TRUE], ]; } @@ -85,7 +85,7 @@ class api_v4_AfformTest extends api_v4_AfformTestCase { $result = Civi\Api4\Afform::update() ->addWhere('name', '=', $formName) ->addValue('description', 'The temporary description') - ->addValue('permission', 'access foo') + ->addValue('permission', ['access foo', 'access bar']) ->addValue('is_dashlet', empty($originalMetadata['is_dashlet'])) ->execute(); $this->assertEquals($formName, $result[0]['name'], $message); @@ -100,7 +100,7 @@ class api_v4_AfformTest extends api_v4_AfformTestCase { $this->assertEquals('The temporary description', $get($result[0], 'description'), $message); $this->assertEquals(empty($originalMetadata['is_dashlet']), $get($result[0], 'is_dashlet'), $message); $this->assertEquals($get($originalMetadata, 'server_route'), $get($result[0], 'server_route'), $message); - $this->assertEquals('access foo', $get($result[0], 'permission'), $message); + $this->assertEquals(['access foo', 'access bar'], $get($result[0], 'permission'), $message); $this->assertTrue(is_array($result[0]['layout']), $message); $this->assertEquals(TRUE, $get($result[0], 'has_base'), $message); $this->assertEquals(TRUE, $get($result[0], 'has_local'), $message); diff --git a/civicrm/ext/authx/Civi/Authx/Backdrop.php b/civicrm/ext/authx/Civi/Authx/Backdrop.php index c2d248f18038f26293fc23ad38c70854cbe3e4c1..1252f92f963a0c1d88d287ac02d21e96d34f3743 100644 --- a/civicrm/ext/authx/Civi/Authx/Backdrop.php +++ b/civicrm/ext/authx/Civi/Authx/Backdrop.php @@ -19,7 +19,7 @@ class Backdrop implements AuthxInterface { public function checkPassword(string $username, string $password) { $uid = user_authenticate($username, $password); // Ensure strict nullness. - return $uid ? $uid : NULL; + return $uid ?: NULL; } /** diff --git a/civicrm/ext/authx/Civi/Authx/Drupal.php b/civicrm/ext/authx/Civi/Authx/Drupal.php index e9722cab205a70e0d1242ebbb3f7996fa52d8b7b..f43e5b14a8afcbcde7418698c1e561685660cd88 100644 --- a/civicrm/ext/authx/Civi/Authx/Drupal.php +++ b/civicrm/ext/authx/Civi/Authx/Drupal.php @@ -19,7 +19,7 @@ class Drupal implements AuthxInterface { public function checkPassword(string $username, string $password) { $uid = user_authenticate($username, $password); // Ensure strict nullness. - return $uid ? $uid : NULL; + return $uid ?: NULL; } /** diff --git a/civicrm/ext/authx/Civi/Authx/Drupal8.php b/civicrm/ext/authx/Civi/Authx/Drupal8.php index 54f8c122a697a99aff98e9d3651fc1ea8850352f..89ff2d8d07713ef375ed360af51b5e90bd863328 100644 --- a/civicrm/ext/authx/Civi/Authx/Drupal8.php +++ b/civicrm/ext/authx/Civi/Authx/Drupal8.php @@ -19,7 +19,7 @@ class Drupal8 implements AuthxInterface { public function checkPassword(string $username, string $password) { $uid = \Drupal::service('user.auth')->authenticate($username, $password); // Ensure strict nullness. - return $uid ? $uid : NULL; + return $uid ?: NULL; } /** diff --git a/civicrm/ext/authx/info.xml b/civicrm/ext/authx/info.xml index d8570c9b9fd15c788ed164b2e126abfd251fe7c9..165c0c6d42c5d255b4b927bd0341431de0e6a06a 100644 --- a/civicrm/ext/authx/info.xml +++ b/civicrm/ext/authx/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-02-11</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>AuthX enables remote applications to connect to CiviCRM. Use it to enable and disable different forms of authentication (such as username-password, API key, and/or JWT).</comments> <classloader> diff --git a/civicrm/ext/authx/phpunit.xml.dist b/civicrm/ext/authx/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/authx/phpunit.xml.dist +++ b/civicrm/ext/authx/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php b/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php index 0afa38b43303d0801af8315a4eab16f54cf0794c..f02d9872113dcb1170d9c2c56017135a6c970204 100644 --- a/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php +++ b/civicrm/ext/authx/tests/phpunit/Civi/Authx/AllFlowsTest.php @@ -608,7 +608,7 @@ class AllFlowsTest extends \PHPUnit\Framework\TestCase implements EndToEndInterf $loginArgs = ['principal' => [$principalField => $principalValue]]; $report = $withCv(sprintf('try { return authx_login(%s); } catch (Exception $e) { return [get_class($e), $e->getMessage()]; }', var_export($loginArgs, 1))); $this->assertTrue(isset($report[0], $report[1]), "authx_login() should fail with invalid credentials ($principalField=>$principalValue). Received array: " . json_encode($report)); - $this->assertRegExp($expectExceptionMessage, $report[1], "Invalid principal ($principalField=>$principalValue) should generate exception."); + $this->assertMatchesRegularExpression($expectExceptionMessage, $report[1], "Invalid principal ($principalField=>$principalValue) should generate exception."); $this->assertEquals($expectExceptionClass, $report[0], "Invalid principal ($principalField=>$principalValue) should generate exception."); } } @@ -636,7 +636,7 @@ class AllFlowsTest extends \PHPUnit\Framework\TestCase implements EndToEndInterf $this->fail('Untrusted sessions should require authentication credentials'); } catch (JsonRpcMethodException $e) { - $this->assertRegExp(';not trusted;', $e->getMessage()); + $this->assertMatchesRegularExpression(';not trusted;', $e->getMessage()); } $login = $rpc->call('login', ['cred' => $this->credJwt($this->getDemoCID())]); diff --git a/civicrm/ext/civi_campaign/info.xml b/civicrm/ext/civi_campaign/info.xml index 57da6fdf3e5656b09178791d2515a825ec7f111b..b74ddd14cbe64d995fde69885839355258512caf 100644 --- a/civicrm/ext/civi_campaign/info.xml +++ b/civicrm/ext/civi_campaign/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_case/Civi/Api4/CiviCase.php b/civicrm/ext/civi_case/Civi/Api4/CiviCase.php index 2b0005fe66e157ee0b9b095fe17ae618b4faf3eb..23312605e726792040ad3b1452bfb36294c43b76 100644 --- a/civicrm/ext/civi_case/Civi/Api4/CiviCase.php +++ b/civicrm/ext/civi_case/Civi/Api4/CiviCase.php @@ -28,7 +28,7 @@ class CiviCase extends Generic\DAOEntity { * * @return string */ - protected static function getEntityName() { + public static function getEntityName(): string { return 'Case'; } diff --git a/civicrm/ext/civi_case/civi_case.php b/civicrm/ext/civi_case/civi_case.php index 444ef886e7dd2381ad6a596079265ef96352446b..82665f72e333d0451bd820c4b11132d9c47b73a6 100644 --- a/civicrm/ext/civi_case/civi_case.php +++ b/civicrm/ext/civi_case/civi_case.php @@ -1,3 +1,16 @@ <?php require_once 'civi_case.civix.php'; +use CRM_Case_ExtensionUtil as E; + +/** + * Implements hook_civicrm_managed(). + */ +function civi_case_civicrm_managed(&$entities, $modules) { + // Don't optimize for $modules because the below functions delegate to other extensions + $entities = array_merge($entities, + CRM_Case_ManagedEntities::createManagedCaseTypes(), + CRM_Case_ManagedEntities::createManagedActivityTypes(CRM_Case_XMLRepository::singleton(), CRM_Core_ManagedEntities::singleton()), + CRM_Case_ManagedEntities::createManagedRelationshipTypes(CRM_Case_XMLRepository::singleton(), CRM_Core_ManagedEntities::singleton()) + ); +} diff --git a/civicrm/ext/civi_case/info.xml b/civicrm/ext/civi_case/info.xml index 1a210ee5c05b69bf4bacdf1d4f06bf17b171a21e..8f9e6ffb85a6121b5db79961e81ee5c87afec0c5 100644 --- a/civicrm/ext/civi_case/info.xml +++ b/civicrm/ext/civi_case/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_contribute/Civi/Api4/Contribution.php b/civicrm/ext/civi_contribute/Civi/Api4/Contribution.php index 67d61be1f7b6af624e6451ffe8d37b8d09bbc0a7..b2a275d3536fee0f34e3ebb40f02bc663e693173 100644 --- a/civicrm/ext/civi_contribute/Civi/Api4/Contribution.php +++ b/civicrm/ext/civi_contribute/Civi/Api4/Contribution.php @@ -14,6 +14,7 @@ namespace Civi\Api4; * Contribution entity. * * @searchable primary + * @searchFields contact_id.sort_name,total_amount * @since 5.19 * @package Civi\Api4 */ diff --git a/civicrm/ext/civi_contribute/info.xml b/civicrm/ext/civi_contribute/info.xml index cae6cbbd5091cf6ef41a197cac40b815594dc288..f131a68c9b2dced54384b108525fa669338ea9a5 100644 --- a/civicrm/ext/civi_contribute/info.xml +++ b/civicrm/ext/civi_contribute/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_event/Civi/Api4/Participant.php b/civicrm/ext/civi_event/Civi/Api4/Participant.php index 425020067ebd2906593d24b0689f77d4ba29bfd9..3224d94bff40efa93f7d55ab1cbaddb2aff98e76 100644 --- a/civicrm/ext/civi_event/Civi/Api4/Participant.php +++ b/civicrm/ext/civi_event/Civi/Api4/Participant.php @@ -14,6 +14,7 @@ namespace Civi\Api4; * Participant entity, stores the participation record of a contact in an event. * * @searchable primary + * @searchFields contact_id.sort_name,event_id.title * @since 5.19 * @package Civi\Api4 */ diff --git a/civicrm/ext/civi_event/Civi/Api4/Service/Spec/Provider/EventCreationSpecProvider.php b/civicrm/ext/civi_event/Civi/Api4/Service/Spec/Provider/EventCreationSpecProvider.php index fb2b2b10ff493f16e7b42107c10cf92e74b43cb2..5a31a2419353d20ba73ad8a9a4e9f43c75c7ea37 100644 --- a/civicrm/ext/civi_event/Civi/Api4/Service/Spec/Provider/EventCreationSpecProvider.php +++ b/civicrm/ext/civi_event/Civi/Api4/Service/Spec/Provider/EventCreationSpecProvider.php @@ -30,10 +30,13 @@ class EventCreationSpecProvider extends \Civi\Core\Service\AutoService implement $spec->getFieldByName('start_date')->setRequiredIf('empty($values.is_template)'); $spec->getFieldByName('template_title')->setRequiredIf('!empty($values.is_template)'); - $template_id = new FieldSpec('template_id', 'Event', 'Integer'); - $template_id - ->setTitle('Template Id') - ->setDescription('Template on which to base this new event'); + $template_id = (new FieldSpec('template_id', 'Event', 'Integer')) + ->setTitle(ts('Event Template')) + ->setDescription(ts('Template on which to base this new event')) + ->setInputType('EntityRef') + // Afform-only (so far) metadata tells the form this field is used to create a new entity rather than update + ->setInputAttr('autofill', 'create') + ->setFkEntity('Event'); $spec->addFieldSpec($template_id); } diff --git a/civicrm/ext/civi_event/info.xml b/civicrm/ext/civi_event/info.xml index 5267e6d7dd0607374daf7e38260b02f9236ee429..564772fd0b245dea8cac29c993148b858483b10b 100644 --- a/civicrm/ext/civi_event/info.xml +++ b/civicrm/ext/civi_event/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_mail/info.xml b/civicrm/ext/civi_mail/info.xml index 72cd45acf57334edaf4508745188b8f425f2bf6a..4e2a06f0c1acd6becbee19c2deb14c5fe06f3428 100644 --- a/civicrm/ext/civi_mail/info.xml +++ b/civicrm/ext/civi_mail/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_member/Civi/Api4/Membership.php b/civicrm/ext/civi_member/Civi/Api4/Membership.php index 751cd65e32a8a1a1ec7a02019f67001ea00d3676..1a8eda1d217da6da8f62ae56fb80491a06487288 100644 --- a/civicrm/ext/civi_member/Civi/Api4/Membership.php +++ b/civicrm/ext/civi_member/Civi/Api4/Membership.php @@ -14,6 +14,7 @@ namespace Civi\Api4; * Membership entity. * * @searchable primary + * @searchFields contact_id.sort_name * @since 5.42 * @package Civi\Api4 */ diff --git a/civicrm/ext/civi_member/info.xml b/civicrm/ext/civi_member/info.xml index ba8c9db74c7f1b2bc2df98a3cfa477aef145c93a..67fe69e55102281eb7141fcb4118251fe717a6a6 100644 --- a/civicrm/ext/civi_member/info.xml +++ b/civicrm/ext/civi_member/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_pledge/Civi/Api4/Pledge.php b/civicrm/ext/civi_pledge/Civi/Api4/Pledge.php index c571f9d464fdd2836c93048387980b9fe80be3a4..df39ede1efd12392be11acbfecae0f1d8f561f6d 100644 --- a/civicrm/ext/civi_pledge/Civi/Api4/Pledge.php +++ b/civicrm/ext/civi_pledge/Civi/Api4/Pledge.php @@ -15,6 +15,7 @@ namespace Civi\Api4; * * @see https://docs.civicrm.org/user/en/latest/pledges/what-is-civipledge/ * @searchable primary + * @searchFields contact_id.display_name,amount * @since 5.35 * @package Civi\Api4 */ diff --git a/civicrm/ext/civi_pledge/info.xml b/civicrm/ext/civi_pledge/info.xml index f6299ac422e8fab62e445a04399590482ca67468..0a75749d04e52371cf3bcb59a6eb4adfaacd06d9 100644 --- a/civicrm/ext/civi_pledge/info.xml +++ b/civicrm/ext/civi_pledge/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civi_report/info.xml b/civicrm/ext/civi_report/info.xml index 04bd19e289c2239220f1d4d40dee2acb5e520b50..c633d0bbbcb71401345651c1da3c6dd653088f54 100644 --- a/civicrm/ext/civi_report/info.xml +++ b/civicrm/ext/civi_report/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-04-08</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>component</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core Component</comments> <upgrader>CRM_Extension_Upgrader_Component</upgrader> diff --git a/civicrm/ext/civicrm_admin_ui/ang/afsearchManageContributionPages.aff.html b/civicrm/ext/civicrm_admin_ui/ang/afsearchManageContributionPages.aff.html index 7c8cde1dcc7efb6ba248b221b335531175df0c88..d1dd1833a8d3796008ccb7c18027cd641ca8a941 100644 --- a/civicrm/ext/civicrm_admin_ui/ang/afsearchManageContributionPages.aff.html +++ b/civicrm/ext/civicrm_admin_ui/ang/afsearchManageContributionPages.aff.html @@ -3,7 +3,7 @@ </div> <div af-fieldset=""> <div class="af-container af-layout-inline"> - <af-field name="title" defn="{label: 'Title', input_attrs: {}, help_post: 'Complete OR partial Contribution Page Title'}" /> + <af-field name="title" defn="{label: 'Title', input_attrs: {}}" /> <af-field name="financial_type_id" defn="{input_type: 'CheckBox', input_attrs: {}}" /> </div> <div class="btn-group pull-right"> diff --git a/civicrm/ext/civicrm_admin_ui/ang/afsearchManageScheduledJobs.aff.html b/civicrm/ext/civicrm_admin_ui/ang/afsearchManageScheduledJobs.aff.html index 311a39dbe9c679d46163df386f27b4df6e21c938..282393cc5fdd9353740877f0dbbd9deeca94c10a 100644 --- a/civicrm/ext/civicrm_admin_ui/ang/afsearchManageScheduledJobs.aff.html +++ b/civicrm/ext/civicrm_admin_ui/ang/afsearchManageScheduledJobs.aff.html @@ -12,7 +12,7 @@ <af-field name="is_active" defn="{input_type: 'Radio', input_attrs: {}}" /> </div> <div class="btn-group pull-right"> - <a class="btn btn-primary" ng-href="{{:: crmUrl('civicrm/admin/job', {reset: 1, action: 'add'}) }}"> + <a class="btn btn-primary" ng-href="{{:: crmUrl('civicrm/admin/job/add', {reset: 1, action: 'add'}) }}"> <i class="crm-i fa-plus-circle"/> {{:: ts('Add Scheduled Job') }} </a> diff --git a/civicrm/ext/civicrm_admin_ui/info.xml b/civicrm/ext/civicrm_admin_ui/info.xml index bd5b2ddb18f65da90976cf9b5aedb378b4d35a06..9a5a0f17c032e2dd59e55c844d13f3feab4d9c75 100644 --- a/civicrm/ext/civicrm_admin_ui/info.xml +++ b/civicrm/ext/civicrm_admin_ui/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-01-02</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>beta</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <requires> <ext>org.civicrm.search_kit</ext> diff --git a/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Administer_Scheduled_Reminders.mgd.php b/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Administer_Scheduled_Reminders.mgd.php index c19aef775332cf6b4735954637adc8767e64af30..e6e3387768c4d94969ef1968b4a91c840ae7c9b4 100644 --- a/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Administer_Scheduled_Reminders.mgd.php +++ b/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Administer_Scheduled_Reminders.mgd.php @@ -32,7 +32,9 @@ return [ 'absolute_date', ], 'orderBy' => [], - 'where' => [], + 'where' => [ + ['used_for', 'IS EMPTY'], + ], 'groupBy' => [], 'join' => [], 'having' => [], diff --git a/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Manage_Mail_Accounts.mgd.php b/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Manage_Mail_Accounts.mgd.php index e76d2daa7268739d7280613da2bf06f83e37f556..3efe2e216d93504119734c2992feec0a1ecb509d 100644 --- a/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Manage_Mail_Accounts.mgd.php +++ b/civicrm/ext/civicrm_admin_ui/managed/SavedSearch_Manage_Mail_Accounts.mgd.php @@ -2,6 +2,7 @@ use CRM_CivicrmAdminUi_ExtensionUtil as E; +// This SearchDisplay shows an editable-in-place field for Enabled? for all rows, including the bounce processing mail account, which cannot actually be disabled (you can change it to No, but it won't actually be disabled). So this is FIXME for when we can set rows to edit-in-place conditionally. return [ [ 'name' => 'SavedSearch_Mail_Accounts', diff --git a/civicrm/ext/civicrm_search_ui/info.xml b/civicrm/ext/civicrm_search_ui/info.xml index 03ec5bc5bab2af0ec4eb8ae53c0e957d8b00ab5e..b2de1e81632f158e15fb535d76f42f8502577afc 100644 --- a/civicrm/ext/civicrm_search_ui/info.xml +++ b/civicrm/ext/civicrm_search_ui/info.xml @@ -15,14 +15,14 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2023-07-17</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>alpha</develStage> <requires> <ext>org.civicrm.search_kit</ext> <ext>org.civicrm.afform</ext> </requires> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Replacement SearchKit/FormBuilder pages for core Search pages.</comments> <classloader> diff --git a/civicrm/ext/civigrant/Civi/Api4/Grant.php b/civicrm/ext/civigrant/Civi/Api4/Grant.php index 96caf2375e86db49f63cba0ffab1ce221adb134b..83ad0f87d5d414449e90178ed18e0180bf2c57b6 100644 --- a/civicrm/ext/civigrant/Civi/Api4/Grant.php +++ b/civicrm/ext/civigrant/Civi/Api4/Grant.php @@ -18,6 +18,7 @@ namespace Civi\Api4; * @see https://docs.civicrm.org/user/en/latest/grants/what-is-civigrant/ * * @searchable primary + * @searchFields contact_id.sort_name,grant_type_id:label * @since 5.33 * @package Civi\Api4 */ diff --git a/civicrm/ext/civigrant/Civi/Api4/Service/Autocomplete/GrantAutocompleteProvider.php b/civicrm/ext/civigrant/Civi/Api4/Service/Autocomplete/GrantAutocompleteProvider.php deleted file mode 100644 index e5c038812624ebdc12a57276c3abe4938ab953e2..0000000000000000000000000000000000000000 --- a/civicrm/ext/civigrant/Civi/Api4/Service/Autocomplete/GrantAutocompleteProvider.php +++ /dev/null @@ -1,83 +0,0 @@ -<?php - -/* - +--------------------------------------------------------------------+ - | Copyright CiviCRM LLC. All rights reserved. | - | | - | This work is published under the GNU AGPLv3 license with some | - | permitted exceptions and without any warranty. For full license | - | and copyright information, see https://civicrm.org/licensing | - +--------------------------------------------------------------------+ - */ - -namespace Civi\Api4\Service\Autocomplete; - -use Civi\Core\Event\GenericHookEvent; -use Civi\Core\HookInterface; - -/** - * @service - * @internal - */ -class GrantAutocompleteProvider extends \Civi\Core\Service\AutoService implements HookInterface { - - /** - * Provide default SavedSearch for Grant autocompletes - * - * @param \Civi\Core\Event\GenericHookEvent $e - */ - public static function on_civi_search_autocompleteDefault(GenericHookEvent $e) { - if (!is_array($e->savedSearch) || $e->savedSearch['api_entity'] !== 'Grant') { - return; - } - $e->savedSearch['api_params'] = [ - 'version' => 4, - 'select' => [ - 'id', - 'contact_id.display_name', - 'grant_type_id:label', - 'financial_type_id:label', - 'status_id:label', - ], - 'orderBy' => [], - 'where' => [], - 'groupBy' => [], - 'join' => [], - 'having' => [], - ]; - } - - /** - * Provide default SearchDisplay for Grant autocompletes - * - * @param \Civi\Core\Event\GenericHookEvent $e - */ - public static function on_civi_search_defaultDisplay(GenericHookEvent $e) { - if ($e->display['settings'] || $e->display['type'] !== 'autocomplete' || $e->savedSearch['api_entity'] !== 'Grant') { - return; - } - $e->display['settings'] = [ - 'sort' => [ - ['contact_id.sort_name', 'ASC'], - ['application_received_date', 'DESC'], - ], - 'columns' => [ - [ - 'type' => 'field', - 'key' => 'contact_id.display_name', - 'rewrite' => '[contact_id.display_name] - [grant_type_id:label]', - ], - [ - 'type' => 'field', - 'key' => 'financial_type_id:label', - 'rewrite' => '#[id] [status_id:label]', - ], - [ - 'type' => 'field', - 'key' => 'financial_type_id:label', - ], - ], - ]; - } - -} diff --git a/civicrm/ext/civigrant/ang/afsearchGrants.aff.html b/civicrm/ext/civigrant/ang/afsearchTabGrant.aff.html similarity index 100% rename from civicrm/ext/civigrant/ang/afsearchGrants.aff.html rename to civicrm/ext/civigrant/ang/afsearchTabGrant.aff.html diff --git a/civicrm/ext/civigrant/ang/afsearchGrants.aff.json b/civicrm/ext/civigrant/ang/afsearchTabGrant.aff.json similarity index 100% rename from civicrm/ext/civigrant/ang/afsearchGrants.aff.json rename to civicrm/ext/civigrant/ang/afsearchTabGrant.aff.json diff --git a/civicrm/ext/civigrant/civigrant.php b/civicrm/ext/civigrant/civigrant.php index 9f4ca39e70fbd55c40570c5df9c78d6290837ce0..d0e24ed5ac4deecc7c2b671d47a649dc5aa3db86 100644 --- a/civicrm/ext/civigrant/civigrant.php +++ b/civicrm/ext/civigrant/civigrant.php @@ -39,7 +39,7 @@ function civigrant_civicrm_summaryActions(&$menu, $cid) { 'weight' => 26, 'ref' => 'new-grant', 'key' => 'grant', - 'tab' => 'afsearchGrants', + 'tab' => 'grant', 'href' => CRM_Utils_System::url('civicrm/contact/view/grant', 'reset=1&action=add&context=grant' ), diff --git a/civicrm/ext/civigrant/info.xml b/civicrm/ext/civigrant/info.xml index d2a23149eaa55e89e9f9fba85bd12357e8ce9d11..acd004a2103f2f9065fa9a106310dd1d7546c185 100644 --- a/civicrm/ext/civigrant/info.xml +++ b/civicrm/ext/civigrant/info.xml @@ -13,10 +13,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-11-11</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>CiviGrant was originally a core component before migrating to an extension</comments> <requires> diff --git a/civicrm/ext/civigrant/phpunit.xml.dist b/civicrm/ext/civigrant/phpunit.xml.dist index 0b6c17274e49233fc98691e86d7c6636ee5fb800..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/civigrant/phpunit.xml.dist +++ b/civicrm/ext/civigrant/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/civiimport/info.xml b/civicrm/ext/civiimport/info.xml index d00e307f6f10480b3f3b6c7bd5030689742c572d..3c03e8532ffb3415217e6f1e442b59027a830cb3 100644 --- a/civicrm/ext/civiimport/info.xml +++ b/civicrm/ext/civiimport/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-08-11</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>alpha</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Core extension for us to start moving import logic into, has more functionality</comments> <requires> diff --git a/civicrm/ext/civiimport/phpunit.xml.dist b/civicrm/ext/civiimport/phpunit.xml.dist index ea391745fa9f582494ad0d5c02a786788a191636..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/civiimport/phpunit.xml.dist +++ b/civicrm/ext/civiimport/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" cacheResult="false" bootstrap="tests/phpunit/bootstrap.php"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/ckeditor4/info.xml b/civicrm/ext/ckeditor4/info.xml index f29ff3f14e6faac9aaad5d52681bcd02643d861c..3dbe6e83b674ad6abf0cfd4b5b8a95aef1c5820d 100644 --- a/civicrm/ext/ckeditor4/info.xml +++ b/civicrm/ext/ckeditor4/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">https://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-05-23</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>This is the version of CKEditor that originally shipped with CiviCRM core</comments> <classloader> diff --git a/civicrm/ext/contributioncancelactions/info.xml b/civicrm/ext/contributioncancelactions/info.xml index 1fe224984fab6bbe676fa87536b193331ddcaccc..2bf04dbb951d12ccb4020a815c480f470a8974fe 100644 --- a/civicrm/ext/contributioncancelactions/info.xml +++ b/civicrm/ext/contributioncancelactions/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-12</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>This code has been moved from core to a separate extension in 5.32. Note that if you disable it failed or cancelled contributions will not cause related memberships and participant records to be updated</comments> <classloader> diff --git a/civicrm/ext/contributioncancelactions/phpunit.xml.dist b/civicrm/ext/contributioncancelactions/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/contributioncancelactions/phpunit.xml.dist +++ b/civicrm/ext/contributioncancelactions/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/elavon/info.xml b/civicrm/ext/elavon/info.xml index 1f73e243b30336d6e710848cc088a6a0c031300c..64fd0cfdb4bc0b14aafad77edc61562f41764f47 100644 --- a/civicrm/ext/elavon/info.xml +++ b/civicrm/ext/elavon/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-08-05</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments/> <classloader> diff --git a/civicrm/ext/elavon/phpunit.xml.dist b/civicrm/ext/elavon/phpunit.xml.dist index ea391745fa9f582494ad0d5c02a786788a191636..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/elavon/phpunit.xml.dist +++ b/civicrm/ext/elavon/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" cacheResult="false" bootstrap="tests/phpunit/bootstrap.php"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/eventcart/info.xml b/civicrm/ext/eventcart/info.xml index d46f9825b895c2a5df45eeeb51cdbbddf566be48..df2f2c851c6c20da88ced9b4b8fa2d2e70bb54d8 100644 --- a/civicrm/ext/eventcart/info.xml +++ b/civicrm/ext/eventcart/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-03</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <tags> <tag>mgmt:hidden</tag> </tags> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <classloader> <psr0 prefix="CRM_" path="."/> diff --git a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ConferenceEvents.tpl b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ConferenceEvents.tpl index 6069f6a1b218a6943f49dc583abbf8ea7d8de0d8..9e952522c6c32ad4e7941e70b8292dca154c446f 100644 --- a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ConferenceEvents.tpl +++ b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ConferenceEvents.tpl @@ -1,5 +1,3 @@ -{include file="CRM/common/TrackingFields.tpl"} - <h3>{ts 1=$mer_participant->display_name 2=$mer_participant->email}Choose Events For %1 (%2){/ts}</h3> {foreach from=$slot_fields key=slot_name item=field_name} diff --git a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ParticipantsAndPrices.tpl b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ParticipantsAndPrices.tpl index 5b465d625a83cbbe53f483d883ee4bf3b1576a0a..0d7dd4d0336f01ef7f58128ed9296921e8591a3e 100644 --- a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ParticipantsAndPrices.tpl +++ b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ParticipantsAndPrices.tpl @@ -1,5 +1,3 @@ -{include file="CRM/common/TrackingFields.tpl"} - <div class="crm-block crm-form-block crm-eventcart-participantsandprices"> {if $contact} diff --git a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl index 60d841abc3faee32dd033c9f24b35067bcb00182..3c7dd1d3e621d8e765c07dc9393e1d8fde86a178 100644 --- a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl +++ b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/Payment.tpl @@ -1,5 +1,3 @@ -{include file="CRM/common/TrackingFields.tpl"} - <table> <thead> <tr> diff --git a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ThankYou.tpl b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ThankYou.tpl index f149c2247bf181be1b0ea95097755a4ed5813066..d8c21fe709baaa773b210690a644b4049f72c606 100644 --- a/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ThankYou.tpl +++ b/civicrm/ext/eventcart/templates/CRM/Event/Cart/Form/Checkout/ThankYou.tpl @@ -1,5 +1,3 @@ -{include file="CRM/common/TrackingFields.tpl"} - <div class="crm-block crm-event-thankyou-form-block"> <p> {ts}This is your receipt of payment made for the following event registration.{/ts} diff --git a/civicrm/ext/ewaysingle/info.xml b/civicrm/ext/ewaysingle/info.xml index 38fce6560c397fb1066dfb873b456ed6b14919f1..0cdc9dc8351fc38c21fa1f3fdbe2c684398fe230 100644 --- a/civicrm/ext/ewaysingle/info.xml +++ b/civicrm/ext/ewaysingle/info.xml @@ -15,13 +15,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-07</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <tags> <tag>mgmt:hidden</tag> </tags> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>This is an extension to contain the eWAY Single Currency Payment Processor</comments> <classloader> diff --git a/civicrm/ext/ewaysingle/phpunit.xml.dist b/civicrm/ext/ewaysingle/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/ewaysingle/phpunit.xml.dist +++ b/civicrm/ext/ewaysingle/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/financialacls/financialacls.php b/civicrm/ext/financialacls/financialacls.php index 3265558fedd9811b885821b1589e8401c94e660a..0e079fe4010b8fa259ba8ce2d279f73c7b01841f 100644 --- a/civicrm/ext/financialacls/financialacls.php +++ b/civicrm/ext/financialacls/financialacls.php @@ -383,3 +383,28 @@ function financialacls_civicrm_alterMenu(array &$menu): void { } $menu['civicrm/admin/financial/financialType']['access_arguments'] = [['administer CiviCRM Financial Types']]; } + +/** + * Hide edit/enable/disable links for memberships of a given Financial Type + * Note: The $objectID param can be an int, string or null, hence not typed + * + * Implements hook_civicrm_links() + */ +function financialacls_civicrm_links(string $op, ?string $objectName, $objectID, array &$links, ?int &$mask, array &$values) { + if ($objectName === 'MembershipType') { + $financialType = CRM_Core_PseudoConstant::getName('CRM_Member_BAO_MembershipType', 'financial_type_id', CRM_Member_BAO_MembershipType::getMembershipType($objectID)['financial_type_id']); + $hasEditPermission = CRM_Core_Permission::check('edit contributions of type ' . $financialType); + $hasDeletePermission = CRM_Core_Permission::check('delete contributions of type ' . $financialType); + if (!$hasDeletePermission || !$hasEditPermission) { + foreach ($links as $index => $link) { + if (!$hasEditPermission && in_array($link['name'], ['Edit', 'Enable', 'Disable'], TRUE)) { + unset($links[$index]); + } + if (!$hasDeletePermission && $link['name'] === 'Delete') { + unset($links[$index]); + } + } + } + } + +} diff --git a/civicrm/ext/financialacls/info.xml b/civicrm/ext/financialacls/info.xml index 50def07d304dd77f6b7aeeca3e54f3a6ce3882a6..acb01d084718428d15a385b5b4367cc8089b5141 100644 --- a/civicrm/ext/financialacls/info.xml +++ b/civicrm/ext/financialacls/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-27</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <tags> <tag>mgmt:hidden</tag> diff --git a/civicrm/ext/financialacls/phpunit.xml.dist b/civicrm/ext/financialacls/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/financialacls/phpunit.xml.dist +++ b/civicrm/ext/financialacls/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/financialacls/tests/phpunit/Civi/Financialacls/MembershipTypesTest.php b/civicrm/ext/financialacls/tests/phpunit/Civi/Financialacls/MembershipTypesTest.php index 0d45587232e811688b88029d58cf6ee439efca1c..6b1370d07a03967a1dda00d96272bbd105e54cbf 100644 --- a/civicrm/ext/financialacls/tests/phpunit/Civi/Financialacls/MembershipTypesTest.php +++ b/civicrm/ext/financialacls/tests/phpunit/Civi/Financialacls/MembershipTypesTest.php @@ -32,12 +32,31 @@ class MembershipTypesTest extends BaseTestClass { $assigned = \CRM_Core_Smarty::singleton()->get_template_vars(); $this->assertArrayNotHasKey($types['Forbidden']['id'], $assigned['rows']); $this->assertArrayHasKey($types['Go for it']['id'], $assigned['rows']); + $links = $assigned['rows'][$types['Go for it']['id']]['action']; + $this->assertStringContainsString("title='Edit Membership Type' ", $links); + $this->assertStringContainsString("title='Disable Membership Type' ", $links); + $this->assertStringContainsString("title='Delete Membership Type' ", $links); + + // Now check that the edit & delete links are removed if we remove those permissions. + $permissions = \CRM_Core_Config::singleton()->userPermissionClass->permissions; + foreach ($permissions as $index => $permission) { + if (in_array($permission, ['edit contributions of type Donation', 'delete contributions of type Donation'], TRUE)) { + unset($permissions[$index]); + } + } + $this->setPermissions($permissions); + $page->browse(); + $assigned = \CRM_Core_Smarty::singleton()->get_template_vars(); + $this->assertEquals('<span></span>', $assigned['rows'][$types['Go for it']['id']]['action']); } /** + * Set up a membership scenario where the user can access one type but not the other. + * * @return \Civi\Api4\Generic\Result - * @throws \CRM_Core_Exception - * @throws \Civi\API\Exception\UnauthorizedException + * + * @noinspection PhpDocMissingThrowsInspection + * @noinspection PhpUnhandledExceptionInspection */ protected function setUpMembershipTypesACLLimited(): Result { $types = MembershipType::save(FALSE) diff --git a/civicrm/ext/flexmailer/info.xml b/civicrm/ext/flexmailer/info.xml index 56b62409a1f0333188bb5aeb5c19ad3a121872e1..04de8f7c41af6f79be2aff68c8817d333ede46ef 100644 --- a/civicrm/ext/flexmailer/info.xml +++ b/civicrm/ext/flexmailer/info.xml @@ -15,7 +15,7 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-08-05</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <comments> FlexMailer is an email delivery engine which replaces the internal guts @@ -23,7 +23,7 @@ to provide richer email features. </comments> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <tags> <tag>mgmt:required</tag> diff --git a/civicrm/ext/flexmailer/phpunit.xml.dist b/civicrm/ext/flexmailer/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/flexmailer/phpunit.xml.dist +++ b/civicrm/ext/flexmailer/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/flexmailer/src/FlexMailer.php b/civicrm/ext/flexmailer/src/FlexMailer.php index c46160a73801f4a981ab383d495752e8bb3d3921..844ee666598b1838bf85ebe311f799252169f3b5 100644 --- a/civicrm/ext/flexmailer/src/FlexMailer.php +++ b/civicrm/ext/flexmailer/src/FlexMailer.php @@ -133,7 +133,7 @@ class FlexMailer { */ public function __construct($context = array(), EventDispatcherInterface $dispatcher = NULL) { $this->context = $context; - $this->dispatcher = $dispatcher ? $dispatcher : \Civi::service('dispatcher'); + $this->dispatcher = $dispatcher ?: \Civi::service('dispatcher'); } /** diff --git a/civicrm/ext/flexmailer/src/Validator.php b/civicrm/ext/flexmailer/src/Validator.php index 455d6f0538815c7d820bae2b9e013a6eb92aae6e..549d028e3c3c64ab6572a3252acdbe7cd0da5c04 100644 --- a/civicrm/ext/flexmailer/src/Validator.php +++ b/civicrm/ext/flexmailer/src/Validator.php @@ -54,7 +54,7 @@ class Validator { * @param \Symfony\Component\EventDispatcher\EventDispatcherInterface $dispatcher */ public function __construct(EventDispatcherInterface $dispatcher = NULL) { - $this->dispatcher = $dispatcher ? $dispatcher : \Civi::service('dispatcher'); + $this->dispatcher = $dispatcher ?: \Civi::service('dispatcher'); } /** diff --git a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ValidatorTest.php b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ValidatorTest.php index 58e81083096e8b59bdbed0645fdbc13c064fc241..a0bd66b3d40f80a4089f543f9ea312aa3bf59fba 100644 --- a/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ValidatorTest.php +++ b/civicrm/ext/flexmailer/tests/phpunit/Civi/FlexMailer/ValidatorTest.php @@ -91,7 +91,7 @@ class ValidatorTest extends \CiviUnitTestCase { array_keys($expectedErrors) ); foreach ($expectedErrors as $key => $pat) { - $this->assertRegExp($pat, $actualErrors[$key], "Error for \"$key\" should match pattern"); + $this->assertMatchesRegularExpression($pat, $actualErrors[$key], "Error for \"$key\" should match pattern"); } } diff --git a/civicrm/ext/greenwich/info.xml b/civicrm/ext/greenwich/info.xml index 2436be1880af6db536585b96b7a3ee4bf558b0a0..47d165987d8095c7b06e9fb434befeb1e16d734f 100644 --- a/civicrm/ext/greenwich/info.xml +++ b/civicrm/ext/greenwich/info.xml @@ -15,13 +15,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-07-21</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <tags> <tag>mgmt:hidden</tag> </tags> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <classloader> <psr0 prefix="CRM_" path="."/> diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom.php index 2e5d19a28e65ec17c8073e7c80ce5dcec522462e..942cfea4aab4ee3bf270e2c3c010bb1f90b7917b 100644 --- a/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom.php +++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Form/Search/Custom.php @@ -138,7 +138,7 @@ class CRM_Contact_Form_Search_Custom extends CRM_Contact_Form_Search { $fileName = $this->_customClass->templateFile(); } - return $fileName ? $fileName : parent::getTemplateFileName(); + return $fileName ?: parent::getTemplateFileName(); } public function postProcess() { diff --git a/civicrm/ext/legacycustomsearches/CRM/Contact/Selector/Custom.php b/civicrm/ext/legacycustomsearches/CRM/Contact/Selector/Custom.php index 7170f7e82110169a26278d06c4014f65894f817c..06385ec856afad3c45ae5f0334c51aa0f3cbfd73 100644 --- a/civicrm/ext/legacycustomsearches/CRM/Contact/Selector/Custom.php +++ b/civicrm/ext/legacycustomsearches/CRM/Contact/Selector/Custom.php @@ -157,6 +157,7 @@ class CRM_Contact_Selector_Custom extends CRM_Contact_Selector { 'qs' => "reset=1&cid=%%id%%{$extraParams}{$searchContext}", 'class' => 'no-popup', 'title' => ts('View Contact Details'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Edit'), @@ -164,6 +165,7 @@ class CRM_Contact_Selector_Custom extends CRM_Contact_Selector { 'qs' => 'reset=1&action=update&cid=%%id%%', 'class' => 'no-popup', 'title' => ts('Edit Contact Details'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], ]; diff --git a/civicrm/ext/legacycustomsearches/info.xml b/civicrm/ext/legacycustomsearches/info.xml index d4d3e0a102186c652e9f4a63ded559f22105c312..9eb71cb67e7056b9e3f7ad64aa7f956e9425720e 100644 --- a/civicrm/ext/legacycustomsearches/info.xml +++ b/civicrm/ext/legacycustomsearches/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-07-25</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>This is our old search system which has limited support. All new effort is on SearchKit</comments> <classloader> diff --git a/civicrm/ext/legacycustomsearches/phpunit.xml.dist b/civicrm/ext/legacycustomsearches/phpunit.xml.dist index a55cbea553850a2e00146346b93bac9824db1d4b..c54932add47b700ee0f1b7fbebdcdce9a962d7d6 100644 --- a/civicrm/ext/legacycustomsearches/phpunit.xml.dist +++ b/civicrm/ext/legacycustomsearches/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="Legacy custom searches"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/message_admin/info.xml b/civicrm/ext/message_admin/info.xml index fcaa37db65d4ac3a6e6c521fb1c7607a67a5053a..ce9e985a6c7f392a3db657f61b7affa9f0f66f2c 100644 --- a/civicrm/ext/message_admin/info.xml +++ b/civicrm/ext/message_admin/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-06-12</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>alpha</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <requires> <ext>org.civicrm.afform</ext> diff --git a/civicrm/ext/oauth-client/info.xml b/civicrm/ext/oauth-client/info.xml index 3b1a1e8a1b227d6316aa56e27b789e11aa497dd2..d4904961d62ec8ac5a343bf7fa08c48911db520e 100644 --- a/civicrm/ext/oauth-client/info.xml +++ b/civicrm/ext/oauth-client/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-10-23</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <requires> <ext version="~4.5">org.civicrm.afform</ext> diff --git a/civicrm/ext/oauth-client/phpunit.xml.dist b/civicrm/ext/oauth-client/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/oauth-client/phpunit.xml.dist +++ b/civicrm/ext/oauth-client/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientGrantTest.php b/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientGrantTest.php index f33bf1cf0bec8ae9c880e77eb879bfb81774c367..923084a9b6b69f95bb8edb6166827bea12727210 100644 --- a/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientGrantTest.php +++ b/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientGrantTest.php @@ -48,11 +48,11 @@ class api_v4_OAuthClientGrantTest extends \PHPUnit\Framework\TestCase implements $this->assertEquals('/one/auth', $url['path']); \parse_str($url['query'], $actualQuery); $this->assertEquals('code', $actualQuery['response_type']); - $this->assertRegExp(';^[cs]_[a-zA-Z0-9]+$;', $actualQuery['state']); + $this->assertMatchesRegularExpression(';^[cs]_[a-zA-Z0-9]+$;', $actualQuery['state']); $this->assertEquals('scope-1-foo,scope-1-bar', $actualQuery['scope']); // ? // $this->assertEquals('auto', $actualQuery['approval_prompt']); $this->assertEquals('example-id', $actualQuery['client_id']); - $this->assertRegExp(';civicrm/oauth-client/return;', $actualQuery['redirect_uri']); + $this->assertMatchesRegularExpression(';civicrm/oauth-client/return;', $actualQuery['redirect_uri']); } } diff --git a/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientTest.php b/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientTest.php index b9186dac99d78b61be8e6c9cdd007d39b2a63dab..47a1a823746442d6d06066dc082bb196cee777ef 100644 --- a/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientTest.php +++ b/civicrm/ext/oauth-client/tests/phpunit/api/v4/OAuthClientTest.php @@ -79,7 +79,7 @@ class api_v4_OAuthClientTest extends \PHPUnit\Framework\TestCase implements Head $this->fail("Expected exception: invalid provider"); } catch (CRM_Core_Exception $e) { - $this->assertRegExp(';Invalid provider;', $e->getMessage()); + $this->assertMatchesRegularExpression(';Invalid provider;', $e->getMessage()); } } @@ -105,7 +105,7 @@ class api_v4_OAuthClientTest extends \PHPUnit\Framework\TestCase implements Head $this->fail("Expected exception: invalid provider"); } catch (CRM_Core_Exception $e) { - $this->assertRegExp(';Invalid provider;', $e->getMessage()); + $this->assertMatchesRegularExpression(';Invalid provider;', $e->getMessage()); } Civi\Api4\OAuthClient::update() diff --git a/civicrm/ext/payflowpro/info.xml b/civicrm/ext/payflowpro/info.xml index 01e4c021e4973ef683e7f37955eb1249829c03b3..fda22e8534f1ffd6bd4cb4d1971b6cea5df618d8 100644 --- a/civicrm/ext/payflowpro/info.xml +++ b/civicrm/ext/payflowpro/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-13</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>This extension is extraction of the original Core Payflow Pro Payment Processor</comments> <classloader> diff --git a/civicrm/ext/payflowpro/phpunit.xml.dist b/civicrm/ext/payflowpro/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/payflowpro/phpunit.xml.dist +++ b/civicrm/ext/payflowpro/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/recaptcha/info.xml b/civicrm/ext/recaptcha/info.xml index 29e4b907bd4ae7887a4ece34b6c7f3311b4f9fa6..35665f9481776a849a1f456464daac46dfcde027 100644 --- a/civicrm/ext/recaptcha/info.xml +++ b/civicrm/ext/recaptcha/info.xml @@ -13,13 +13,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-04-03</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <tags> <tag>mgmt:hidden</tag> </tags> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <classloader> <psr0 prefix="CRM_" path="."/> diff --git a/civicrm/ext/scheduled_communications/Civi/Search/ActionMapping.php b/civicrm/ext/scheduled_communications/Civi/Search/ActionMapping.php new file mode 100644 index 0000000000000000000000000000000000000000..7986f6f543d254010a1918b167b1643488d1f6e9 --- /dev/null +++ b/civicrm/ext/scheduled_communications/Civi/Search/ActionMapping.php @@ -0,0 +1,180 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +/** + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + */ + +namespace Civi\Search; + +use Civi\Api4\Generic\Traits\SavedSearchInspectorTrait; +use Civi\Api4\Query\Api4Query; +use Civi\Api4\Query\SqlExpression; +use Civi\Api4\SavedSearch; +use Civi\Api4\Utils\CoreUtil; + +/** + * This enables scheduled-reminders to be run based on a SavedSearch. + */ +class ActionMapping extends \Civi\ActionSchedule\MappingBase { + + use SavedSearchInspectorTrait; + + /** + * @return string + */ + public function getName(): string { + return 'saved_search'; + } + + public function getEntityName(): string { + return 'SavedSearch'; + } + + public function getEntityTable(\CRM_Core_DAO_ActionSchedule $actionSchedule): string { + $this->loadSavedSearch($actionSchedule->entity_value); + return \CRM_Core_DAO_AllCoreTables::getTableForEntityName($this->savedSearch['api_entity']); + } + + public function modifySpec(\Civi\Api4\Service\Spec\RequestSpec $spec) { + $spec->getFieldByName('entity_value') + ->setLabel(ts('Saved Search')) + ->setInputAttr('multiple', FALSE); + $spec->getFieldByName('entity_status') + ->setLabel(ts('Contact ID Field')) + ->setInputAttr('multiple', FALSE) + ->setRequired(TRUE); + } + + /** + * + * @return array + */ + public function getValueLabels(): array { + return SavedSearch::get(FALSE) + ->addSelect('id', 'name', 'label') + ->addOrderBy('label') + ->addWhere('api_entity', 'IS NOT NULL') + ->addWhere('is_current', '=', TRUE) + // Limit to searches that have something to do with contacts + // FIXME: Matching `api_params LIKE %contact%` is a cheap trick with no real understanding of the appropriateness of the SavedSearch for use as a Scheduled Reminder. + ->addClause('OR', ['api_entity', '=', 'Contact'], ['api_params', 'LIKE', '%contact%']) + ->execute()->getArrayCopy(); + } + + /** + * @param array|null $entityValue + * @return array + */ + public function getStatusLabels(?array $entityValue): array { + if (!$entityValue) { + return []; + } + $this->loadSavedSearch(\CRM_Utils_Array::first($entityValue)); + $fieldNames = []; + foreach ($this->getSelectClause() as $columnAlias => $columnInfo) { + // TODO: It would be nice to return only fields with an FK to contact.id + // For now returning fields of type Int or unknown + if (in_array($columnInfo['dataType'], ['Integer', NULL], TRUE)) { + $fieldNames[$columnAlias] = $this->getColumnLabel($columnInfo['expr']); + } + } + return $fieldNames; + } + + /** + * @param array|null $entityValue + * @return array + */ + public function getDateFields(?array $entityValue = NULL): array { + if (!$entityValue) { + return []; + } + $this->loadSavedSearch(\CRM_Utils_Array::first($entityValue)); + $fieldNames = []; + foreach ($this->getSelectClause() as $columnAlias => $columnInfo) { + // Only return date fields + // For now also including fields of unknown type since SQL functions sometimes don't know their return type + if (in_array($columnInfo['dataType'], ['Date', 'Timestamp', NULL], TRUE)) { + $fieldNames[$columnAlias] = $this->getColumnLabel($columnInfo['expr']); + } + } + return $fieldNames; + } + + /** + * @param $schedule + * @return bool + */ + public function resetOnTriggerDateChange($schedule): bool { + return FALSE; + } + + /** + * Generate a query to locate recipients. + * + * @param \CRM_Core_DAO_ActionSchedule $schedule + * The schedule as configured by the administrator. + * @param string $phase + * See, e.g., RecipientBuilder::PHASE_RELATION_FIRST. + * + * @param array $defaultParams + * + * @return \CRM_Utils_SQL_Select + * @see RecipientBuilder + */ + public function createQuery($schedule, $phase, $defaultParams): \CRM_Utils_SQL_Select { + $this->loadSavedSearch($schedule->entity_value); + $this->savedSearch['api_params']['checkPermissions'] = FALSE; + $mainTableAlias = Api4Query::MAIN_TABLE_ALIAS; + // This mapping type requires exactly one 'entity_status': the name of the contact.id field. + $contactIdFieldName = $schedule->entity_status; + // The RecipientBuilder needs to know the name of the Contact table. + // Check if Contact is the main table or an explicit join + if ($contactIdFieldName === 'id' || str_ends_with($contactIdFieldName, '.id')) { + $contactPrefix = substr($contactIdFieldName, 0, strrpos($contactIdFieldName, 'id')); + $contactJoin = $this->getJoin($contactPrefix); + $contactTable = $contactJoin['alias'] ?? $mainTableAlias; + } + // Else if contact id is an FK field, use implicit join syntax + else { + $contactPrefix = $contactIdFieldName . '.'; + } + // Exclude deceased and deleted contacts + $this->savedSearch['api_params']['where'][] = [$contactPrefix . 'is_deceased', '=', FALSE]; + $this->savedSearch['api_params']['where'][] = [$contactPrefix . 'is_deleted', '=', FALSE]; + // Refresh search query with new api params + $this->loadSavedSearch(); + $apiQuery = $this->getQuery(); + // If contact id is an FK field, find table name by rendering the id field and stripping off the field name + if (!isset($contactTable)) { + $contactIdSql = SqlExpression::convert($contactPrefix . 'id')->render($apiQuery); + $contactTable = str_replace('.`id`', '', $contactIdSql); + } + $apiQuery->getSql(); + $sqlSelect = \CRM_Utils_SQL_Select::from($apiQuery->getQuery()->getFrom()); + $sqlSelect->merge($apiQuery->getQuery(), ['joins', 'wheres']); + $sqlSelect->param($defaultParams); + $sqlSelect['casAddlCheckFrom'] = $sqlSelect->getFrom(); + $sqlSelect['casContactIdField'] = SqlExpression::convert($contactIdFieldName)->render($apiQuery); + $sqlSelect['casEntityIdField'] = '`' . $mainTableAlias . '`.`' . CoreUtil::getIdFieldName($this->savedSearch['api_entity']) . '`'; + $sqlSelect['casContactTableAlias'] = $contactTable; + if ($schedule->absolute_date) { + $sqlSelect['casDateField'] = "'" . \CRM_Utils_Type::escape($schedule->absolute_date, 'String') . "'"; + } + else { + $sqlSelect['casDateField'] = SqlExpression::convert($schedule->start_action_date)->render($apiQuery); + } + return $sqlSelect; + } + +} diff --git a/civicrm/ext/scheduled_communications/info.xml b/civicrm/ext/scheduled_communications/info.xml new file mode 100644 index 0000000000000000000000000000000000000000..f4ee882a24d4306b4537de1185556aff6a0ff2fc --- /dev/null +++ b/civicrm/ext/scheduled_communications/info.xml @@ -0,0 +1,34 @@ +<?xml version="1.0"?> +<extension key="scheduled_communications" type="module"> + <file>scheduled_communications</file> + <name>Scheduled Communications</name> + <description>Schedule communications using SearchKit</description> + <license>AGPL-3.0</license> + <maintainer> + <author>CiviCRM</author> + <email>info@civicrm.org</email> + </maintainer> + <urls> + <url desc="Chat">https://chat.civicrm.org/civicrm/channels/search-improvements</url> + <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> + </urls> + <releaseDate>2023-09-04</releaseDate> + <version>5.66.0</version> + <develStage>beta</develStage> + <compatibility> + <ver>5.66</ver> + </compatibility> + <comments>Click on the chat link above to discuss development, report problems or ask questions.</comments> + <classloader> + <psr0 prefix="CRM_" path="."/> + <psr4 prefix="Civi\" path="Civi"/> + </classloader> + <civix> + <namespace>CRM/ScheduledCommunications</namespace> + <format>23.02.1</format> + <angularModule>crmScheduledCommunications</angularModule> + </civix> + <mixins> + <mixin>scan-classes@1.0.0</mixin> + </mixins> +</extension> diff --git a/civicrm/ext/scheduled_communications/scheduled_communications.civix.php b/civicrm/ext/scheduled_communications/scheduled_communications.civix.php new file mode 100644 index 0000000000000000000000000000000000000000..3a1cbc6393c7f91d1593e90d91c2e182069d51f3 --- /dev/null +++ b/civicrm/ext/scheduled_communications/scheduled_communications.civix.php @@ -0,0 +1,200 @@ +<?php + +// AUTO-GENERATED FILE -- Civix may overwrite any changes made to this file + +/** + * The ExtensionUtil class provides small stubs for accessing resources of this + * extension. + */ +class CRM_ScheduledCommunications_ExtensionUtil { + const SHORT_NAME = 'scheduled_communications'; + const LONG_NAME = 'scheduled_communications'; + const CLASS_PREFIX = 'CRM_ScheduledCommunications'; + + /** + * Translate a string using the extension's domain. + * + * If the extension doesn't have a specific translation + * for the string, fallback to the default translations. + * + * @param string $text + * Canonical message text (generally en_US). + * @param array $params + * @return string + * Translated text. + * @see ts + */ + public static function ts($text, $params = []): string { + if (!array_key_exists('domain', $params)) { + $params['domain'] = [self::LONG_NAME, NULL]; + } + return ts($text, $params); + } + + /** + * Get the URL of a resource file (in this extension). + * + * @param string|NULL $file + * Ex: NULL. + * Ex: 'css/foo.css'. + * @return string + * Ex: 'http://example.org/sites/default/ext/org.example.foo'. + * Ex: 'http://example.org/sites/default/ext/org.example.foo/css/foo.css'. + */ + public static function url($file = NULL): string { + if ($file === NULL) { + return rtrim(CRM_Core_Resources::singleton()->getUrl(self::LONG_NAME), '/'); + } + return CRM_Core_Resources::singleton()->getUrl(self::LONG_NAME, $file); + } + + /** + * Get the path of a resource file (in this extension). + * + * @param string|NULL $file + * Ex: NULL. + * Ex: 'css/foo.css'. + * @return string + * Ex: '/var/www/example.org/sites/default/ext/org.example.foo'. + * Ex: '/var/www/example.org/sites/default/ext/org.example.foo/css/foo.css'. + */ + public static function path($file = NULL) { + // return CRM_Core_Resources::singleton()->getPath(self::LONG_NAME, $file); + return __DIR__ . ($file === NULL ? '' : (DIRECTORY_SEPARATOR . $file)); + } + + /** + * Get the name of a class within this extension. + * + * @param string $suffix + * Ex: 'Page_HelloWorld' or 'Page\\HelloWorld'. + * @return string + * Ex: 'CRM_Foo_Page_HelloWorld'. + */ + public static function findClass($suffix) { + return self::CLASS_PREFIX . '_' . str_replace('\\', '_', $suffix); + } + +} + +use CRM_ScheduledCommunications_ExtensionUtil as E; + +/** + * (Delegated) Implements hook_civicrm_config(). + * + * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_config + */ +function _scheduled_communications_civix_civicrm_config($config = NULL) { + static $configured = FALSE; + if ($configured) { + return; + } + $configured = TRUE; + + $extRoot = __DIR__ . DIRECTORY_SEPARATOR; + $include_path = $extRoot . PATH_SEPARATOR . get_include_path(); + set_include_path($include_path); + // Based on <compatibility>, this does not currently require mixin/polyfill.php. +} + +/** + * Implements hook_civicrm_install(). + * + * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_install + */ +function _scheduled_communications_civix_civicrm_install() { + _scheduled_communications_civix_civicrm_config(); + // Based on <compatibility>, this does not currently require mixin/polyfill.php. +} + +/** + * (Delegated) Implements hook_civicrm_enable(). + * + * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_enable + */ +function _scheduled_communications_civix_civicrm_enable(): void { + _scheduled_communications_civix_civicrm_config(); + // Based on <compatibility>, this does not currently require mixin/polyfill.php. +} + +/** + * Inserts a navigation menu item at a given place in the hierarchy. + * + * @param array $menu - menu hierarchy + * @param string $path - path to parent of this item, e.g. 'my_extension/submenu' + * 'Mailing', or 'Administer/System Settings' + * @param array $item - the item to insert (parent/child attributes will be + * filled for you) + * + * @return bool + */ +function _scheduled_communications_civix_insert_navigation_menu(&$menu, $path, $item) { + // If we are done going down the path, insert menu + if (empty($path)) { + $menu[] = [ + 'attributes' => array_merge([ + 'label' => $item['name'] ?? NULL, + 'active' => 1, + ], $item), + ]; + return TRUE; + } + else { + // Find an recurse into the next level down + $found = FALSE; + $path = explode('/', $path); + $first = array_shift($path); + foreach ($menu as $key => &$entry) { + if ($entry['attributes']['name'] == $first) { + if (!isset($entry['child'])) { + $entry['child'] = []; + } + $found = _scheduled_communications_civix_insert_navigation_menu($entry['child'], implode('/', $path), $item); + } + } + return $found; + } +} + +/** + * (Delegated) Implements hook_civicrm_navigationMenu(). + */ +function _scheduled_communications_civix_navigationMenu(&$nodes) { + if (!is_callable(['CRM_Core_BAO_Navigation', 'fixNavigationMenu'])) { + _scheduled_communications_civix_fixNavigationMenu($nodes); + } +} + +/** + * Given a navigation menu, generate navIDs for any items which are + * missing them. + */ +function _scheduled_communications_civix_fixNavigationMenu(&$nodes) { + $maxNavID = 1; + array_walk_recursive($nodes, function($item, $key) use (&$maxNavID) { + if ($key === 'navID') { + $maxNavID = max($maxNavID, $item); + } + }); + _scheduled_communications_civix_fixNavigationMenuItems($nodes, $maxNavID, NULL); +} + +function _scheduled_communications_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $parentID) { + $origKeys = array_keys($nodes); + foreach ($origKeys as $origKey) { + if (!isset($nodes[$origKey]['attributes']['parentID']) && $parentID !== NULL) { + $nodes[$origKey]['attributes']['parentID'] = $parentID; + } + // If no navID, then assign navID and fix key. + if (!isset($nodes[$origKey]['attributes']['navID'])) { + $newKey = ++$maxNavID; + $nodes[$origKey]['attributes']['navID'] = $newKey; + $nodes[$newKey] = $nodes[$origKey]; + unset($nodes[$origKey]); + $origKey = $newKey; + } + if (isset($nodes[$origKey]['child']) && is_array($nodes[$origKey]['child'])) { + _scheduled_communications_civix_fixNavigationMenuItems($nodes[$origKey]['child'], $maxNavID, $nodes[$origKey]['attributes']['navID']); + } + } +} diff --git a/civicrm/ext/scheduled_communications/scheduled_communications.php b/civicrm/ext/scheduled_communications/scheduled_communications.php new file mode 100644 index 0000000000000000000000000000000000000000..5a7c64a05652c811251730086f76fdcf64693737 --- /dev/null +++ b/civicrm/ext/scheduled_communications/scheduled_communications.php @@ -0,0 +1,47 @@ +<?php + +require_once 'scheduled_communications.civix.php'; +use CRM_ScheduledCommunications_ExtensionUtil as E; + +/** + * Implements hook_civicrm_config(). + * + * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_config/ + */ +function scheduled_communications_civicrm_config(&$config): void { + _scheduled_communications_civix_civicrm_config($config); +} + +/** + * Implements hook_civicrm_install(). + * + * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_install + */ +function scheduled_communications_civicrm_install(): void { + _scheduled_communications_civix_civicrm_install(); +} + +/** + * Implements hook_civicrm_enable(). + * + * @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_enable + */ +function scheduled_communications_civicrm_enable(): void { + _scheduled_communications_civix_civicrm_enable(); +} + +/** + * Implements hook_civicrm_post(). + */ +function scheduled_communications_civicrm_post($op, $entity, $id, $object): void { + // Delete scheduled communications linked to a deleted saved search + if ($entity === 'SavedSearch' && $op === 'delete' && $id) { + civicrm_api4('ActionSchedule', 'delete', [ + 'checkPermissions' => FALSE, + 'where' => [ + ['mapping_id', '=', 'saved_search'], + ['entity_value', '=', $id], + ], + ]); + } +} diff --git a/civicrm/ext/search_kit/CRM/Search/Upgrader.php b/civicrm/ext/search_kit/CRM/Search/Upgrader.php index aa37914a90dce868004463e28e5f8a6cfb232767..24f573e1c5677f17402c51aa705cdb7609bcffd1 100644 --- a/civicrm/ext/search_kit/CRM/Search/Upgrader.php +++ b/civicrm/ext/search_kit/CRM/Search/Upgrader.php @@ -121,8 +121,7 @@ class CRM_Search_Upgrader extends CRM_Extension_Upgrader_Base { */ public function upgrade_1005(): bool { $this->ctx->log->info('Applying update 1005 - add acl_bypass column.'); - $this->addTask('Add Cancel Button Setting to the Profile', 'addColumn', - 'civicrm_search_display', 'acl_bypass', "tinyint DEFAULT 0 COMMENT 'Skip permission checks and ACLs when running this display.'"); + $this->addColumn('civicrm_search_display', 'acl_bypass', "tinyint DEFAULT 0 COMMENT 'Skip permission checks and ACLs when running this display.'"); return TRUE; } @@ -158,7 +157,7 @@ class CRM_Search_Upgrader extends CRM_Extension_Upgrader_Base { */ public function upgrade_1007(): bool { $this->ctx->log->info('Applying update 1007 - add SearchSegment table.'); - if (!CRM_Core_DAO::singleValueQuery("SHOW TABLES LIKE 'civicrm_search_segment'")) { + if (!CRM_Core_DAO::checkTableExists('civicrm_search_segment')) { $createTable = " CREATE TABLE `civicrm_search_segment` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'Unique SearchSegment ID', diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php index f49ec49808cfa54d8298b4276e73a77572084963..78ae7ae59b8a7df586fd3ccafc1dd26eb45fc106 100644 --- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php +++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php @@ -89,6 +89,8 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { private $editableInfo = []; + private $currencyFields = []; + /** * Override execute method to change the result object type * @return \Civi\Api4\Result\SearchDisplayRunResult @@ -576,6 +578,15 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { } return TRUE; } + // Convert the conditional value of 'current_domain' into an actual value that filterCompare can work with + if ($item['condition'][2] === 'current_domain') { + if (str_ends_with($item['condition'][0], ':label') !== FALSE) { + $item['condition'][2] = \CRM_Core_BAO_Domain::getDomain()->name; + } + else { + $item['condition'][2] = \CRM_Core_Config::domainID(); + } + } return self::filterCompare($data, $item['condition']); } @@ -699,7 +710,7 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { /** * @param array $column * @param array $data - * @return array{entity: string, action: string, input_type: string, data_type: string, options: bool, serialize: bool, nullable: bool, fk_entity: string, value_key: string, record: array, value: mixed}|null + * @return array{entity: string, action: string, input_type: string, data_type: string, options: bool, serialize: bool, nullable: bool, fk_entity: string, value_key: string, record: array, value_path: string}|null */ private function formatEditableColumn($column, $data) { $editable = $this->getEditableInfo($column['key']); @@ -708,7 +719,6 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { if (!empty($data[$editable['id_path']])) { $editable['action'] = 'update'; $editable['record'][$editable['id_key']] = $data[$editable['id_path']]; - $editable['value'] = $data[$editable['value_path']]; // Ensure field is appropriate to this entity sub-type $field = $this->getField($column['key']); $entityValues = FormattingUtil::filterByPath($data, $editable['id_path'], $editable['id_key']); @@ -719,7 +729,6 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { // Generate params to create new record, if applicable elseif ($editable['explicit_join'] && !$this->getJoin($editable['explicit_join'])['bridge']) { $editable['action'] = 'create'; - $editable['value'] = NULL; $editable['nullable'] = FALSE; // Get values for creation from the join clause $join = $this->getQuery()->getExplicitJoin($editable['explicit_join']); @@ -769,8 +778,14 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { 'values' => $entityValues, ], 0)['access']; if ($access) { + // Add currency formatting info + if ($editable['data_type'] === 'Money') { + $currencyField = $this->getCurrencyField($column['key']); + $currency = is_string($data[$currencyField] ?? NULL) ? $data[$currencyField] : NULL; + $editable['currency_format'] = \Civi::format()->money(1234.56, $currency); + } // Remove info that's for internal use only - \CRM_Utils_Array::remove($editable, 'id_key', 'id_path', 'value_path', 'explicit_join', 'grouping_fields'); + \CRM_Utils_Array::remove($editable, 'id_key', 'id_path', 'explicit_join', 'grouping_fields'); return $editable; } } @@ -1113,7 +1128,8 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { foreach ($apiParams['select'] as $select) { // When selecting monetary fields, also select currency $currencyFieldName = $this->getCurrencyField($select); - if ($currencyFieldName) { + // Only select currency field if it doesn't break ONLY_FULL_GROUP_BY + if ($currencyFieldName && !$this->canAggregate($currencyFieldName)) { $this->addSelectExpression($currencyFieldName); } // Add field dependencies needed to resolve pseudoconstants @@ -1133,60 +1149,103 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { } /** - * Given a field that contains money, find the corresponding currency field + * Return the corresponding currency field if a select expression is monetary * * @param string $select * @return string|null */ - private function getCurrencyField(string $select):?string { + private function getCurrencyField(string $select): ?string { + // This function is called one or more times per row so cache the results + if (array_key_exists($select, $this->currencyFields)) { + return $this->currencyFields[$select]; + } + $this->currencyFields[$select] = NULL; + $clause = $this->getSelectExpression($select); // Only deal with fields of type money. - // TODO: In theory it might be possible to support aggregated columns but be careful about FULL_GROUP_BY errors - if (!($clause && $clause['dataType'] === 'Money' && $clause['fields'])) { + if (!$clause || !$clause['fields'] || $clause['dataType'] !== 'Money') { return NULL; } + $moneyFieldAlias = array_keys($clause['fields'])[0]; $moneyField = $clause['fields'][$moneyFieldAlias]; + $prefix = substr($moneyFieldAlias, 0, strrpos($moneyFieldAlias, $moneyField['name'])); + // Custom fields do their own thing wrt currency if ($moneyField['type'] === 'Custom') { return NULL; } - $prefix = substr($moneyFieldAlias, 0, strrpos($moneyFieldAlias, $moneyField['name'])); + // First look for a currency field on the same entity as the money field + $ownCurrencyField = $this->findCurrencyField($moneyField['entity']); + if ($ownCurrencyField) { + return $this->currencyFields[$select] = $prefix . $ownCurrencyField; + } - // If using aggregation, this will only work if grouping by currency - if ($clause['expr']->isType('SqlFunction')) { - $groupingByCurrency = array_intersect([$prefix . 'currency', 'currency'], $this->savedSearch['api_params']['groupBy'] ?? []); - return \CRM_Utils_Array::first($groupingByCurrency); + // Next look at the previously-joined entity + if ($prefix && $this->getQuery()) { + $parentJoin = $this->getQuery()->getJoinParent(rtrim($prefix, '.')); + $parentCurrencyField = $parentJoin ? $this->findCurrencyField($this->getQuery()->getExplicitJoin($parentJoin)['entity']) : NULL; + if ($parentCurrencyField) { + return $this->currencyFields[$select] = $parentJoin . '.' . $parentCurrencyField; + } } - // If the entity has a field named 'currency', just assume that's it. - if ($this->getField($prefix . 'currency')) { - return $prefix . 'currency'; + // Fall back on the base entity + $baseCurrencyField = $this->findCurrencyField($this->savedSearch['api_entity']); + if ($baseCurrencyField) { + return $this->currencyFields[$select] = $baseCurrencyField; } - // Some currency fields go by other names like `fee_currency`. We find them by checking the pseudoconstant. - $entityDao = CoreUtil::getInfoItem($moneyField['entity'], 'dao'); + + // Finally, try adding an implicit join + // e.g. the LineItem entity can use `contribution_id.currency` + foreach ($this->findFKFields($moneyField['entity']) as $fieldName => $fkEntity) { + $joinCurrencyField = $this->findCurrencyField($fkEntity); + if ($joinCurrencyField) { + return $this->currencyFields[$select] = $prefix . $fieldName . '.' . $joinCurrencyField; + } + } + return NULL; + } + + /** + * Find currency field for an entity. + * + * @param string $entityName + * @return string|null + */ + private function findCurrencyField(string $entityName): ?string { + $entityDao = CoreUtil::getInfoItem($entityName, 'dao'); if ($entityDao) { + // Check for a pseudoconstant that points to civicrm_currency. foreach ($entityDao::getSupportedFields() as $fieldName => $field) { if (($field['pseudoconstant']['table'] ?? NULL) === 'civicrm_currency') { - return $prefix . $fieldName; + return $fieldName; } } } - // If the base entity has a field named 'currency', fall back on that. - if ($this->getField('currency')) { - return 'currency'; - } - // Finally, if there's a FK field to civicrm_contribution, we can use an implicit join - // E.G. the LineItem entity has no `currency` field of its own & uses that of the contribution record + return NULL; + } + + /** + * Return all fields for this entity with a foreign key + * + * @param string $entityName + * @return string[] + */ + private function findFKFields(string $entityName): array { + $entityDao = CoreUtil::getInfoItem($entityName, 'dao'); + $fkFields = []; if ($entityDao) { + // Check for a pseudoconstant that points to civicrm_currency. foreach ($entityDao::getSupportedFields() as $fieldName => $field) { - if (($field['FKClassName'] ?? NULL) === 'CRM_Contribute_DAO_Contribution') { - return $prefix . $fieldName . '.currency'; + $fkEntity = !empty($field['FKClassName']) ? CoreUtil::getApiNameFromBAO($field['FKClassName']) : NULL; + if ($fkEntity) { + $fkFields[$fieldName] = $fkEntity; } } } - return NULL; + return $fkFields; } /** diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/GetDefault.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/GetDefault.php index 994e2018ec65cf0bc4e3451a40cebafbbd5a36c9..cad99c7697004b6523030b9df62fb85e9c40d953 100644 --- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/GetDefault.php +++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/GetDefault.php @@ -8,10 +8,7 @@ use Civi\Api4\Utils\FormattingUtil; use Civi\Core\Event\GenericHookEvent; use Civi\Search\Display; use CRM_Search_ExtensionUtil as E; -use Civi\Api4\Query\SqlEquation; -use Civi\Api4\Query\SqlExpression; use Civi\Api4\Query\SqlField; -use Civi\Api4\Query\SqlFunction; use Civi\Api4\Query\SqlFunctionGROUP_CONCAT; use Civi\Api4\Utils\CoreUtil; @@ -50,11 +47,6 @@ class GetDefault extends \Civi\Api4\Generic\AbstractAction { */ protected $context = []; - /** - * @var array - */ - private $_joinMap; - /** * @param \Civi\Api4\Generic\Result $result * @throws \CRM_Core_Exception @@ -109,7 +101,7 @@ class GetDefault extends \Civi\Api4\Generic\AbstractAction { } /** - * @param array{fields: array, expr: SqlExpression, dataType: string} $clause + * @param array{fields: array, expr: \Civi\Api4\Query\SqlExpression, dataType: string} $clause * @param string $key * @return array */ @@ -124,78 +116,15 @@ class GetDefault extends \Civi\Api4\Generic\AbstractAction { return $col; } - /** - * @param \Civi\Api4\Query\SqlExpression $expr - * @return string - */ - private function getColumnLabel(SqlExpression $expr) { - if ($expr instanceof SqlFunction) { - $args = []; - foreach ($expr->getArgs() as $arg) { - foreach ($arg['expr'] ?? [] as $ex) { - $args[] = $this->getColumnLabel($ex); - } - } - return '(' . $expr->getTitle() . ')' . ($args ? ' ' . implode(',', array_filter($args)) : ''); - } - if ($expr instanceof SqlEquation) { - $args = []; - foreach ($expr->getArgs() as $arg) { - if (is_array($arg) && !empty($arg['expr'])) { - $args[] = $this->getColumnLabel(SqlExpression::convert($arg['expr'])); - } - } - return '(' . implode(',', array_filter($args)) . ')'; - } - elseif ($expr instanceof SqlField) { - $field = $this->getField($expr->getExpr()); - $label = ''; - if (!empty($field['explicit_join'])) { - $label = $this->getJoinLabel($field['explicit_join']) . ': '; - } - if (!empty($field['implicit_join']) && empty($field['custom_field_id'])) { - $field = $this->getField(substr($expr->getAlias(), 0, -1 - strlen($field['name']))); - } - return $label . $field['label']; - } - else { - return NULL; - } - } - - /** - * @param string $joinAlias - * @return string - */ - private function getJoinLabel($joinAlias) { - if (!isset($this->_joinMap)) { - $this->_joinMap = []; - $joinCount = [$this->savedSearch['api_entity'] => 1]; - foreach ($this->savedSearch['api_params']['join'] ?? [] as $join) { - [$entityName, $alias] = explode(' AS ', $join[0]); - $num = ''; - if (!empty($joinCount[$entityName])) { - $num = ' ' . (++$joinCount[$entityName]); - } - else { - $joinCount[$entityName] = 1; - } - $label = CoreUtil::getInfoItem($entityName, 'title'); - $this->_joinMap[$alias] = $label . $num; - } - } - return $this->_joinMap[$joinAlias]; - } - /** * @param array $col - * @param array{fields: array, expr: SqlExpression, dataType: string} $clause + * @param array{fields: array, expr: \Civi\Api4\Query\SqlExpression, dataType: string} $clause */ private function getColumnLink(&$col, $clause) { if ($clause['expr'] instanceof SqlField || $clause['expr'] instanceof SqlFunctionGROUP_CONCAT) { $field = \CRM_Utils_Array::first($clause['fields'] ?? []); if ($field && - CoreUtil::getInfoItem($field['entity'], 'label_field') === $field['name'] && + in_array($field['name'], array_merge(CoreUtil::getSearchFields($field['entity']), [CoreUtil::getInfoItem($field['entity'], 'label_field')]), TRUE) && !empty(CoreUtil::getInfoItem($field['entity'], 'paths')['view']) ) { $col['link'] = [ diff --git a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php index 9eadab8c5e3d29e81dde443b129d291b82f49f15..3a66af498d7ef38f8f04f3dd5291d30c50bba643 100644 --- a/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php +++ b/civicrm/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php @@ -63,6 +63,7 @@ class Run extends AbstractRunAction { case 'tally': unset($apiParams['orderBy'], $apiParams['limit']); $api = Request::create($entityName, 'get', $apiParams); + $api->setDefaultWhereClause(); $query = new Api4SelectQuery($api); $query->forceSelectId = FALSE; $sql = $query->getSql(); diff --git a/civicrm/ext/search_kit/Civi/Api4/Event/Subscriber/DefaultDisplaySubscriber.php b/civicrm/ext/search_kit/Civi/Api4/Event/Subscriber/DefaultDisplaySubscriber.php index 20fa233a4b44be7f0ca165db13a99ba4203ad327..03649969ba12b98386ddeadbce72439b5fb491dd 100644 --- a/civicrm/ext/search_kit/Civi/Api4/Event/Subscriber/DefaultDisplaySubscriber.php +++ b/civicrm/ext/search_kit/Civi/Api4/Event/Subscriber/DefaultDisplaySubscriber.php @@ -59,8 +59,8 @@ class DefaultDisplaySubscriber extends \Civi\Core\Service\AutoService implements throw new \CRM_Core_Exception("Entity name is required to get autocomplete default display."); } $idField = CoreUtil::getIdFieldName($entityName); - $labelField = CoreUtil::getInfoItem($entityName, 'label_field'); - if (!$labelField) { + $searchFields = CoreUtil::getSearchFields($entityName); + if (!$searchFields) { throw new \CRM_Core_Exception("Entity $entityName has no default label field."); } @@ -69,11 +69,17 @@ class DefaultDisplaySubscriber extends \Civi\Core\Service\AutoService implements $apiGet = Request::create($entityName, 'get', ['version' => 4]); $fields = $apiGet->entityFields(); - $columns = [$labelField]; + $columns = array_slice($searchFields, 0, 1); // Add grouping fields like "event_type_id" in the description - $grouping = (array) (CoreUtil::getCustomGroupExtends($entityName)['grouping'] ?? []); + $grouping = (array) (CoreUtil::getCustomGroupExtends($entityName)['grouping'] ?? ['financial_type_id']); foreach ($grouping as $fieldName) { - $columns[] = "$fieldName:label"; + if (!empty($fields[$fieldName]['options']) && !in_array("$fieldName:label", $searchFields)) { + $columns[] = "$fieldName:label"; + } + } + $statusField = $fields['status_id'] ?? $fields[strtolower($entityName) . '_status_id'] ?? NULL; + if (!empty($statusField['options']) && !in_array("{$statusField['name']}:label", $searchFields)) { + $columns[] = "{$statusField['name']}:label"; } if (isset($fields['description'])) { $columns[] = 'description'; @@ -86,11 +92,15 @@ class DefaultDisplaySubscriber extends \Civi\Core\Service\AutoService implements 'key' => $columnField, ]; } + if (count($searchFields) > 1) { + $e->display['settings']['columns'][0]['rewrite'] = '[' . implode('] - [', $searchFields) . ']'; + } // Include entity id on the second line $e->display['settings']['columns'][1] = [ 'type' => 'field', - 'key' => $idField, + 'key' => $columns[1] ?? $idField, 'rewrite' => "#[$idField]" . (isset($columns[1]) ? " [$columns[1]]" : ''), + 'empty_value' => "#[$idField]", ]; // Default icons @@ -152,8 +162,12 @@ class DefaultDisplaySubscriber extends \Civi\Core\Service\AutoService implements * @return array */ protected static function getDefaultSort($entityName) { - $sortField = CoreUtil::getInfoItem($entityName, 'order_by') ?: CoreUtil::getInfoItem($entityName, 'label_field'); - return $sortField ? [[$sortField, 'ASC']] : []; + $result = []; + $sortFields = (array) (CoreUtil::getInfoItem($entityName, 'order_by') ?: CoreUtil::getSearchFields($entityName)); + foreach ($sortFields as $sortField) { + $result[] = [$sortField, 'ASC']; + } + return $result; } } diff --git a/civicrm/ext/search_kit/Civi/Search/Admin.php b/civicrm/ext/search_kit/Civi/Search/Admin.php index 1ebf8660166fa45f5409fb2da5b276909eef5485..6c224e1630c0cbe98725fc390553386bf7fdfb79 100644 --- a/civicrm/ext/search_kit/Civi/Search/Admin.php +++ b/civicrm/ext/search_kit/Civi/Search/Admin.php @@ -131,7 +131,7 @@ class Admin { public static function getSchema(): array { $schema = []; $entities = Entity::get() - ->addSelect('name', 'title', 'title_plural', 'bridge_title', 'type', 'primary_key', 'description', 'label_field', 'icon', 'dao', 'bridge', 'ui_join_filters', 'searchable', 'order_by') + ->addSelect('name', 'title', 'title_plural', 'bridge_title', 'type', 'primary_key', 'description', 'label_field', 'search_fields', 'icon', 'dao', 'bridge', 'ui_join_filters', 'searchable', 'order_by') ->addWhere('searchable', '!=', 'none') ->addOrderBy('title_plural') ->setChain([ @@ -154,7 +154,7 @@ class Admin { 'select' => ['name', 'title', 'label', 'description', 'type', 'options', 'input_type', 'input_attrs', 'data_type', 'serialize', 'entity', 'fk_entity', 'readonly', 'operators', 'suffixes', 'nullable'], 'where' => [['deprecated', '=', FALSE], ['name', 'NOT IN', ['api_key', 'hash']]], 'orderBy' => ['label'], - ]); + ])->indexBy('name'); } catch (\CRM_Core_Exception $e) { \Civi::log()->warning('Entity could not be loaded', ['entity' => $entity['name']]); @@ -170,6 +170,7 @@ class Admin { } $entity['fields'][] = $field; } + $entity['default_columns'] = self::getDefaultColumns($entity, $getFields); $params = $entity['get'][0]; // Entity must support at least these params or it is too weird for search kit if (!array_diff(['select', 'where', 'orderBy', 'limit', 'offset'], array_keys($params))) { @@ -182,6 +183,44 @@ class Admin { return $schema; } + /** + * Build default columns - these are used when creating a new search with this entity + * + * @param array $entity + * @param iterable $getFields + * @return array + */ + private static function getDefaultColumns(array $entity, iterable $getFields): array { + // Start with id & label + $defaultColumns = array_merge( + $entity['primary_key'], + $entity['search_fields'] ?? [] + ); + $possibleColumns = []; + // Include grouping fields like "event_type_id" + foreach ((array) (CoreUtil::getCustomGroupExtends($entity['name'])['grouping'] ?? []) as $column) { + $possibleColumns[$column] = "$column:label"; + } + // Other possible relevant columns... now we're just guessing + $possibleColumns['financial_type_id'] = 'financial_type_id:label'; + $possibleColumns['description'] = 'description'; + // E.g. "activity_status_id" + $possibleColumns[strtolower($entity['name']) . 'status_id'] = strtolower($entity['name']) . 'status_id:label'; + $possibleColumns['start_date'] = 'start_date'; + $possibleColumns['end_date'] = 'end_date'; + $possibleColumns['is_active'] = 'is_active'; + foreach ($possibleColumns as $fieldName => $columnName) { + if ( + (str_contains($columnName, ':') && !empty($getFields[$fieldName]['options'])) || + (!str_contains($columnName, ':') && !empty($getFields[$fieldName])) + ) { + $defaultColumns[] = $columnName; + } + } + // `array_unique` messes with the index so reset it with `array_values` so it cleanly encodes to a json array + return array_values(array_unique($defaultColumns)); + } + /** * Add in FK fields for implicit joins. * @@ -194,22 +233,27 @@ class Admin { foreach ($schema as &$entity) { if ($entity['searchable'] !== 'bridge') { foreach (array_reverse($entity['fields'] ?? [], TRUE) as $index => $field) { - if (!empty($field['fk_entity']) && !$field['options'] && !$field['suffixes'] && !empty($schema[$field['fk_entity']]['label_field'])) { - $isCustom = strpos($field['name'], '.'); - // Custom fields: append "Contact ID" etc. to original field label - if ($isCustom) { - $idField = array_column($schema[$field['fk_entity']]['fields'], NULL, 'name')['id']; - $entity['fields'][$index]['label'] .= ' ' . $idField['title']; - } - // DAO fields: use title instead of label since it represents the id (title usually ends in ID but label does not) - else { - $entity['fields'][$index]['label'] = $field['title']; + if (!empty($field['fk_entity']) && !$field['options'] && !$field['suffixes'] && !empty($schema[$field['fk_entity']]['search_fields'])) { + $labelFields = array_unique(array_merge($schema[$field['fk_entity']]['search_fields'], (array) ($schema[$field['fk_entity']]['label_field'] ?? []))); + foreach ($labelFields as $labelField) { + $isCustom = strpos($field['name'], '.'); + // Custom fields: append "Contact ID" etc. to original field label + if ($isCustom) { + $idField = array_column($schema[$field['fk_entity']]['fields'], NULL, 'name')['id']; + $entity['fields'][$index]['label'] .= ' ' . $idField['title']; + } + // DAO fields: use title instead of label since it represents the id (title usually ends in ID but label does not) + else { + $entity['fields'][$index]['label'] = $field['title']; + } + // Add the label field from the other entity to this entity's list of fields + $newField = \CRM_Utils_Array::findAll($schema[$field['fk_entity']]['fields'], ['name' => $labelField])[0] ?? NULL; + if ($newField) { + $newField['name'] = $field['name'] . '.' . $labelField; + $newField['label'] = $field['label'] . ' ' . $newField['label']; + array_splice($entity['fields'], $index + 1, 0, [$newField]); + } } - // Add the label field from the other entity to this entity's list of fields - $newField = \CRM_Utils_Array::findAll($schema[$field['fk_entity']]['fields'], ['name' => $schema[$field['fk_entity']]['label_field']])[0]; - $newField['name'] = $field['name'] . '.' . $schema[$field['fk_entity']]['label_field']; - $newField['label'] = $field['label'] . ' ' . $newField['label']; - array_splice($entity['fields'], $index, 0, [$newField]); } } // Useful address fields (see ContactSchemaMapSubscriber) diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js index 34633bed32f6688d89117db3ddce11d4984bd39b..970a83a86d6078eef67db5e2271814a444a0d016 100644 --- a/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js +++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/crmSearchAdmin.component.js @@ -61,7 +61,7 @@ if (!this.savedSearch.id) { var defaults = { version: 4, - select: getDefaultSelect(), + select: searchMeta.getEntity(ctrl.savedSearch.api_entity).default_columns, orderBy: {}, where: [], }; @@ -329,8 +329,15 @@ params.push(condition); }); ctrl.savedSearch.api_params.join.push(params); - if (entity.label_field && $scope.controls.joinType !== 'EXCLUDE') { - ctrl.savedSearch.api_params.select.push(join.alias + '.' + entity.label_field); + if (entity.search_fields && $scope.controls.joinType !== 'EXCLUDE') { + // Add columns for newly-joined entity + entity.search_fields.forEach((fieldName) => { + // Try to avoid adding duplicate columns + const simpleName = _.last(fieldName.split('.')); + if (!ctrl.savedSearch.api_params.select.join(',').includes(simpleName)) { + ctrl.savedSearch.api_params.select.push(join.alias + '.' + fieldName); + } + }); } loadFieldOptions(); } @@ -535,16 +542,6 @@ return {results: ctrl.getSelectFields()}; }; - // Sets the default select clause based on commonly-named fields - function getDefaultSelect() { - var entity = searchMeta.getEntity(ctrl.savedSearch.api_entity); - return _.transform(entity.fields, function(defaultSelect, field) { - if (field.name === 'id' || field.name === entity.label_field) { - defaultSelect.push(field.name); - } - }); - } - this.getAllFields = function(suffix, allowedTypes, disabledIf, topJoin) { disabledIf = disabledIf || _.noop; allowedTypes = allowedTypes || ['Field', 'Custom', 'Extra', 'Filter']; diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayAutocomplete.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayAutocomplete.component.js index df55c2e731e6250d11a932a882c5ca29919b34c5..c8803ef76d138182b254412c0aff14dede89d0f1 100644 --- a/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayAutocomplete.component.js +++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayAutocomplete.component.js @@ -26,8 +26,9 @@ sort: ctrl.parent.getDefaultSort(), columns: [] }; - var labelField = searchMeta.getEntity(ctrl.apiEntity).label_field; - _.each([labelField, 'description'], function(field) { + var searchFields = searchMeta.getEntity(ctrl.apiEntity).search_fields || []; + searchFields.push('description'); + searchFields.forEach((field) => { if (_.includes(ctrl.parent.savedSearch.api_params.select, field)) { ctrl.display.settings.columns.push(searchMeta.fieldToColumn(field, {})); } diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/communications.html b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/communications.html new file mode 100644 index 0000000000000000000000000000000000000000..5041de124fce108c126feb137f1d1a4ca98724f0 --- /dev/null +++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/communications.html @@ -0,0 +1,20 @@ +<div class="btn-group"> + <button type="button" ng-click="row.openScheduleMenu = true" class="btn btn-xs dropdown-toggle btn-primary-outline" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + {{:: row.data.schedule_id.length === 1 ? ts('1 Communication') : ts('%1 Communications', {1: row.data.schedule_id ? row.data.schedule_id.length : 0}) }} <span class="caret"></span> + </button> + <ul class="dropdown-menu" ng-if=":: row.openScheduleMenu"> + <li ng-repeat="schedule_id in row.data.schedule_id" title="{{:: ts('Edit Scheduled Communication') }}"> + <a ng-href="{{ crmUrl('civicrm/admin/scheduleReminders/edit?reset=1&action=update&mapping_id=saved_search&id=' + schedule_id + '&entity_value=' + row.data.id) }}" target="crm-popup"> + <i class="crm-i fa-pencil"></i> + {{ row.data.schedule_title[$index] }} + </a> + </li> + <li class="divider" role="separator"></li> + <li title="{{:: ts('Add Scheduled Communication') }}"> + <a ng-href="{{ crmUrl('civicrm/admin/scheduleReminders/edit?reset=1&action=add&mapping_id=saved_search&entity_value=' + row.data.id) }}" target="crm-popup"> + <i class="crm-i fa-plus"></i> + {{:: ts('New Communication') }} + </a> + </li> + </ul> +</div> diff --git a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js index 977e965f6940afb34596d3e49416b79d43436c0b..9cb68b2bf07862a0576bf8d5deeaf8a588aa0174 100644 --- a/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js +++ b/civicrm/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js @@ -14,11 +14,13 @@ ctrl = angular.extend(this, _.cloneDeep(searchDisplayBaseTrait), _.cloneDeep(searchDisplaySortableTrait)), afformLoad; + $scope.crmUrl = CRM.url; this.searchDisplayPath = CRM.url('civicrm/search'); this.afformPath = CRM.url('civicrm/admin/afform'); this.afformEnabled = 'org.civicrm.afform' in CRM.crmSearchAdmin.modules; this.afformAdminEnabled = (CRM.checkPerm('administer CiviCRM') || CRM.checkPerm('administer afform')) && 'org.civicrm.afform_admin' in CRM.crmSearchAdmin.modules; + const scheduledCommunicationsEnabled = 'scheduled_communications' in CRM.crmSearchAdmin.modules; this.apiEntity = 'SavedSearch'; this.search = { @@ -45,13 +47,16 @@ 'DATE(created_date) AS date_created', 'DATE(modified_date) AS date_modified', 'DATE(expires_date) AS expires', - 'GROUP_CONCAT(display.name ORDER BY display.id) AS display_name', - 'GROUP_CONCAT(display.label ORDER BY display.id) AS display_label', - 'GROUP_CONCAT(display.type:icon ORDER BY display.id) AS display_icon', - 'GROUP_CONCAT(display.acl_bypass ORDER BY display.id) AS display_acl_bypass', + // Get all search displays + 'GROUP_CONCAT(UNIQUE display.name ORDER BY display.label) AS display_name', + 'GROUP_CONCAT(UNIQUE display.label ORDER BY display.label) AS display_label', + 'GROUP_CONCAT(UNIQUE display.type:icon ORDER BY display.label) AS display_icon', + 'GROUP_CONCAT(UNIQUE display.acl_bypass ORDER BY display.label) AS display_acl_bypass', 'tags', // Not a selectable field but this hacks around the requirement that filters be in the select clause - 'GROUP_CONCAT(DISTINCT entity_tag.tag_id) AS tag_id', - 'GROUP_CONCAT(DISTINCT group.title) AS groups' + 'GROUP_CONCAT(UNIQUE entity_tag.tag_id) AS tag_id', + // Really there can only be 1 smart group per saved-search; aggregation is just for the sake of the query + 'GROUP_CONCAT(UNIQUE group.id) AS group_id', + 'GROUP_CONCAT(UNIQUE group.title) AS groups' ], join: [ ['SearchDisplay AS display', 'LEFT', ['id', '=', 'display.saved_search_id']], @@ -63,6 +68,13 @@ } }; + // Add scheduled communication to query if extension is enabled + if (scheduledCommunicationsEnabled) { + this.search.api_params.select.push('GROUP_CONCAT(UNIQUE schedule.id ORDER BY schedule.title) AS schedule_id'); + this.search.api_params.select.push('GROUP_CONCAT(UNIQUE schedule.title ORDER BY schedule.title) AS schedule_title'); + this.search.api_params.join.push(['ActionSchedule AS schedule', 'LEFT', ['schedule.mapping_id', '=', '"saved_search"'], ['id', '=', 'schedule.entity_value']]); + } + this.$onInit = function() { buildDisplaySettings(); this.initializeDisplay($scope, $element); @@ -136,6 +148,9 @@ _.each(search.groups, function (smartGroup) { msg += '<li class="crm-error"><i class="crm-i fa-exclamation-triangle"></i> ' + _.escape(ts('Smart group "%1" will also be deleted.', {1: smartGroup})) + '</li>'; }); + _.each(search.schedule_title, (communication) => { + msg += '<li class="crm-error"><i class="crm-i fa-exclamation-triangle"></i> ' + _.escape(ts('Communication "%1" will also be deleted.', {1: communication})) + '</li>'; + }); if (row.afform_count) { _.each(ctrl.afforms[search.name], function (afform) { msg += '<li class="crm-error"><i class="crm-i fa-exclamation-triangle"></i> ' + _.escape(ts('Form "%1" will also be deleted because it contains an embedded display from this search.', {1: afform.title})) + '</li>'; @@ -228,8 +243,16 @@ path: '~/crmSearchAdmin/searchListing/afforms.html' }); } + // Add scheduled communication column if extension is enabled + if (scheduledCommunicationsEnabled) { + ctrl.display.settings.columns.push({ + type: 'include', + label: ts('Communications'), + path: '~/crmSearchAdmin/searchListing/communications.html' + }); + } ctrl.display.settings.columns.push( - searchMeta.fieldToColumn('GROUP_CONCAT(DISTINCT group.title) AS groups', { + searchMeta.fieldToColumn('GROUP_CONCAT(UNIQUE group.title) AS groups', { label: ts('Smart Group') }) ); diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/colType/field.html b/civicrm/ext/search_kit/ang/crmSearchDisplay/colType/field.html index 06678c917ac8b69fe47074df7167e2734efb79ca..ceb1664696b988be39ec0b0961bd0b2446b6995e 100644 --- a/civicrm/ext/search_kit/ang/crmSearchDisplay/colType/field.html +++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/colType/field.html @@ -1,10 +1,10 @@ -<crm-search-display-editable row="row" col="colData" do-save="$ctrl.runSearch({inPlaceEdit: apiCall}, {}, row)" cancel="$ctrl.editing = null;" ng-if="colData.edit && $ctrl.editing && $ctrl.editing[0] === rowIndex && $ctrl.editing[1] === colIndex"></crm-search-display-editable> -<span ng-if="::!colData.links" ng-class="{'crm-editable-enabled': colData.edit && !$ctrl.editing, 'crm-editable-disabled': colData.edit && $ctrl.editing}" ng-click="colData.edit && !$ctrl.editing && ($ctrl.editing = [rowIndex, colIndex])"> +<crm-search-display-editable row="row" col="colData" cancel="$ctrl.editing = null;" ng-if="colData.edit && $ctrl.isEditing(rowIndex, colIndex)"></crm-search-display-editable> +<span ng-if="!colData.links && !$ctrl.isEditing(rowIndex, colIndex)" ng-class="{'crm-editable-enabled': colData.edit && !$ctrl.editing, 'crm-editable-disabled': colData.edit && $ctrl.editing}" ng-click="colData.edit && !$ctrl.editing && ($ctrl.editing = [rowIndex, colIndex])"> <i ng-repeat="icon in colData.icons" ng-if="icon.side === 'left'" class="crm-i {{:: icon['class'] }}"></i> {{:: $ctrl.formatFieldValue(colData) }} <i ng-repeat="icon in colData.icons" ng-if="icon.side === 'right'" class="crm-i {{:: icon['class'] }}"></i> </span> -<span ng-if="::colData.links"> +<span ng-if="colData.links && !$ctrl.isEditing(rowIndex, colIndex)"> <span ng-repeat="link in colData.links"> <a target="{{:: link.target }}" ng-href="{{:: link.url }}" title="{{:: link.title }}" ng-click="$ctrl.onClickLink(link, row.key, $event)"> <i ng-repeat="icon in colData.icons" ng-if="icon.side === 'left'" class="crm-i {{:: icon['class'] }}"></i> diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js index cedb4db87d53f463ccdea4e97b5928fa438d9a87..46eed4615d2175b9dac5ebb471571bbbc7b49a5a 100644 --- a/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js +++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/crmSearchDisplayEditable.component.js @@ -8,23 +8,23 @@ bindings: { row: '<', col: '<', - cancel: '&', - doSave: '&' + cancel: '&' }, templateUrl: '~/crmSearchDisplay/crmSearchDisplayEditable.html', - controller: function($scope, $element, crmApi4) { + controller: function($scope, $element, crmApi4, crmStatus) { var ctrl = this, initialValue, col; this.$onInit = function() { col = this.col; - this.value = _.cloneDeep(col.edit.value); - initialValue = _.cloneDeep(col.edit.value); + this.value = _.cloneDeep(this.row.data[col.edit.value_path]); + initialValue = _.cloneDeep(this.row.data[col.edit.value_path]); this.field = { data_type: col.edit.data_type, input_type: col.edit.input_type, + entity: col.edit.entity, name: col.edit.value_key, options: col.edit.options, fk_entity: col.edit.fk_entity, @@ -50,16 +50,52 @@ }; this.save = function() { - if (ctrl.value === initialValue) { - ctrl.cancel(); - return; + const value = formatDataType(ctrl.value); + if (value !== initialValue) { + col.edit.record[col.edit.value_key] = value; + crmStatus({}, crmApi4(col.edit.entity, col.edit.action, {values: col.edit.record})); + ctrl.row.data[col.edit.value_path] = value; + col.val = formatDisplayValue(value); } - var record = _.cloneDeep(col.edit.record); - record[col.edit.value_key] = ctrl.value; - $('input', $element).attr('disabled', true); - ctrl.doSave({apiCall: [col.edit.entity, col.edit.action, {values: record}]}); + ctrl.cancel(); }; + function formatDataType(val) { + if (_.isArray(val)) { + const formatted = angular.copy(val); + formatted.forEach((v, i) => formatted[i] = formatDataType(v)); + return formatted; + } + if (ctrl.field.data_type === 'Integer') { + return +val; + } + return val; + } + + function formatDisplayValue(val) { + let displayValue = angular.copy(val); + if (_.isArray(displayValue)) { + displayValue.forEach((v, i) => displayValue[i] = formatDisplayValue(v)); + return displayValue; + } + if (ctrl.field.options) { + ctrl.field.options.forEach((option) => { + if (('' + option.id) === ('' + val)) { + displayValue = option.label; + } + }); + } else if (ctrl.field.data_type === 'Boolean' && val === true) { + displayValue = ts('Yes'); + } else if (ctrl.field.data_type === 'Boolean' && val === false) { + displayValue = ts('No'); + } else if (ctrl.field.data_type === 'Date' || ctrl.field.data_type === 'Timestamp') { + displayValue = CRM.utils.formatDate(val, null, ctrl.field.data_type === 'Timestamp'); + } else if (ctrl.field.data_type === 'Money') { + displayValue = CRM.formatMoney(displayValue, false, col.edit.currency_format); + } + return displayValue; + } + function loadOptions() { var cacheKey = col.edit.entity + ' ' + ctrl.field.name; if (optionsCache[cacheKey]) { diff --git a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js index 1afb4aa559abda06c0ae9617a30e66946b3bfd57..e7d067bf7abf5b40abde8ce0d0abce1e9ad8f506 100644 --- a/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js +++ b/civicrm/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js @@ -201,6 +201,9 @@ }, formatFieldValue: function(colData) { return angular.isArray(colData.val) ? colData.val.join(', ') : colData.val; + }, + isEditing: function(rowIndex, colIndex) { + return this.editing && this.editing[0] === rowIndex && this.editing[1] === colIndex; } }; }); diff --git a/civicrm/ext/search_kit/css/crmSearchTasks.css b/civicrm/ext/search_kit/css/crmSearchTasks.css index d70be29ffffd45145c7c82b3f3eee138e543d03d..f6b6f6c795e25aac0b0a8a1ed5391a26af4b7fdf 100644 --- a/civicrm/ext/search_kit/css/crmSearchTasks.css +++ b/civicrm/ext/search_kit/css/crmSearchTasks.css @@ -14,10 +14,6 @@ position: relative; } -.crm-search-display crm-search-display-editable + span.crm-editable-disabled { - display: none !important; -} - .crm-search-display .crm-search-display-editable-buttons { position: absolute; bottom: -24px; diff --git a/civicrm/ext/search_kit/info.xml b/civicrm/ext/search_kit/info.xml index f04895703b523b8a28cce871f558f5421b69e1de..ce63c544b42f245877e27247dbafc5d5a1e8799a 100644 --- a/civicrm/ext/search_kit/info.xml +++ b/civicrm/ext/search_kit/info.xml @@ -15,13 +15,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2021-01-06</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>stable</develStage> <tags> <tag>mgmt:required</tag> </tags> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <comments>Click on the chat link above to discuss development, report problems or ask questions.</comments> <classloader> diff --git a/civicrm/ext/search_kit/phpunit.xml.dist b/civicrm/ext/search_kit/phpunit.xml.dist index 9de84911198d2b2ac92688c4b3e7b93c0460fbb8..7c3a69d0fec87212e2b48ef26736bf3871a0811c 100644 --- a/civicrm/ext/search_kit/phpunit.xml.dist +++ b/civicrm/ext/search_kit/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="SearchKit Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/AbstractRunActionTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/AbstractRunActionTest.php index f453238050fe0be6b05621d4d1cd240a72414d2e..47456076d65a221ee3eeb63d7a2b3147d49e0feb 100644 --- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/AbstractRunActionTest.php +++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/AbstractRunActionTest.php @@ -7,6 +7,7 @@ use Civi\Api4\CustomField; use Civi\Api4\Contact; use Civi\Test\HeadlessInterface; use Civi\Test\TransactionalInterface; +use Civi\Api4\Mailing; /** * @group headless @@ -205,4 +206,242 @@ class AbstractRunActionTest extends \PHPUnit\Framework\TestCase implements Headl $this->assertTrue(implode(', ', $resultData) === $result[0]['columns'][1]['val']); } + public function testDomainConditional(): void { + Mailing::create()->setValues([ + 'title' => 'Test Mailing' . __FUNCTION__, + 'body_html' => 'Test content', + ])->execute(); + $entity = 'SearchDisplay'; + $action = 'run'; + $params = [ + 'return' => 'page:1', + 'savedSearch' => [ + 'id' => 2, + 'name' => 'Test_Mailing', + 'label' => 'Test Mailing', + 'form_values' => NULL, + 'mapping_id' => NULL, + 'search_custom_id' => NULL, + 'api_entity' => 'Mailing', + 'api_params' => [ + 'version' => 4, + 'select' => [ + 'id', + 'name', + 'domain_id:label', + ], + 'orderBy' => [], + 'where' => [], + 'groupBy' => [], + 'join' => [], + 'having' => [], + ], + 'created_id' => 203, + 'modified_id' => 203, + 'expires_date' => NULL, + 'created_date' => '2022-08-12 13:49:17', + 'modified_date' => '2022-08-12 17:18:24', + 'description' => NULL, + 'tag_id' => [], + 'groups' => [], + 'displays' => [ + [ + 'id' => 2, + 'name' => 'Test_Mailing_Table_1', + 'label' => 'Test Mailing Table 1', + 'saved_search_id' => 2, + 'type' => 'table', + 'settings' => [ + 'description' => NULL, + 'sort' => [], + 'limit' => 50, + 'pager' => [], + 'placeholder' => 5, + 'columns' => [ + [ + 'type' => 'field', + 'key' => 'id', + 'dataType' => 'Integer', + 'label' => 'Mailing ID', + 'sortable' => TRUE, + ], + [ + 'type' => 'field', + 'key' => 'name', + 'dataType' => 'String', + 'label' => 'Mailing Name', + 'sortable' => TRUE, + ], + [ + 'type' => 'field', + 'key' => 'domain_id:label', + 'dataType' => 'Integer', + 'label' => 'Domain', + 'sortable' => TRUE, + ], + [ + 'text' => '', + 'style' => 'default', + 'size' => 'btn-xs', + 'icon' => 'fa-bars', + 'links' => [ + [ + 'entity' => 'Mailing', + 'action' => 'view', + 'join' => '', + 'target' => 'crm-popup', + 'icon' => 'fa-external-link', + 'text' => 'View Mailing', + 'style' => 'default', + 'path' => '', + 'task' => '', + 'condition' => [ + 'domain_id:label', + '=', + 'current_domain', + ], + ], + [ + 'entity' => 'Mailing', + 'action' => 'update', + 'join' => '', + 'target' => 'crm-popup', + 'icon' => 'fa-pencil', + 'text' => 'Update Mailing', + 'style' => 'default', + 'path' => '', + 'task' => '', + 'condition' => [], + ], + [ + 'entity' => 'Mailing', + 'action' => 'preview', + 'join' => '', + 'target' => 'crm-popup', + 'icon' => 'fa-eye', + 'text' => 'Preview Mailing', + 'style' => 'default', + 'path' => '', + 'task' => '', + 'condition' => [], + ], + ], + 'type' => 'menu', + 'alignment' => 'text-right', + ], + ], + 'actions' => TRUE, + 'classes' => [ + 'table', + 'table-striped', + ], + ], + 'acl_bypass' => FALSE, + ], + ], + ], + 'display' => [ + 'id' => 2, + 'name' => 'Test_Mailing_Table_1', + 'label' => 'Test Mailing Table 1', + 'saved_search_id' => 2, + 'type' => 'table', + 'settings' => [ + 'description' => NULL, + 'sort' => [], + 'limit' => 50, + 'pager' => [], + 'placeholder' => 5, + 'columns' => [ + [ + 'type' => 'field', + 'key' => 'id', + 'dataType' => 'Integer', + 'label' => 'Mailing ID', + 'sortable' => TRUE, + ], + [ + 'type' => 'field', + 'key' => 'name', + 'dataType' => 'String', + 'label' => 'Mailing Name', + 'sortable' => TRUE, + ], + [ + 'type' => 'field', + 'key' => 'domain_id:label', + 'dataType' => 'Integer', + 'label' => 'Domain', + 'sortable' => TRUE, + ], + [ + 'text' => '', + 'style' => 'default', + 'size' => 'btn-xs', + 'icon' => 'fa-bars', + 'links' => [ + [ + 'entity' => 'Mailing', + 'action' => 'view', + 'join' => '', + 'target' => 'crm-popup', + 'icon' => 'fa-external-link', + 'text' => 'View Mailing', + 'style' => 'default', + 'path' => '', + 'task' => '', + 'condition' => [ + 'domain_id:label', + '=', + 'current_domain', + ], + ], + [ + 'entity' => 'Mailing', + 'action' => 'update', + 'join' => '', + 'target' => 'crm-popup', + 'icon' => 'fa-pencil', + 'text' => 'Update Mailing', + 'style' => 'default', + 'path' => '', + 'task' => '', + 'condition' => [], + ], + [ + 'entity' => 'Mailing', + 'action' => 'preview', + 'join' => '', + 'target' => 'crm-popup', + 'icon' => 'fa-eye', + 'text' => 'Preview Mailing', + 'style' => 'default', + 'path' => '', + 'task' => '', + 'condition' => [], + ], + ], + 'type' => 'menu', + 'alignment' => 'text-right', + ], + ], + 'actions' => TRUE, + 'classes' => [ + 'table', + 'table-striped', + ], + ], + 'acl_bypass' => FALSE, + ], + 'limit' => 50, + 'seed' => 1660599799146, + 'filters' => [], + 'afform' => NULL, + 'debug' => TRUE, + 'checkPermissions' => TRUE, + ]; + $result = civicrm_api4($entity, $action, $params); + $this->assertCount(3, $result[0]['columns'][3]['links']); + } + } diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php index c55317d581bfd6afd791c3dabd08e98d3591737e..82f33532cce5517a6d5932e0c71f34e1320981a4 100644 --- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php +++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunTest.php @@ -553,7 +553,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('String', $result[0]['columns'][0]['edit']['data_type']); $this->assertEquals('first_name', $result[0]['columns'][0]['edit']['value_key']); $this->assertEquals('update', $result[0]['columns'][0]['edit']['action']); - $this->assertEquals('One', $result[0]['columns'][0]['edit']['value']); + $this->assertEquals('One', $result[0]['data'][$result[0]['columns'][0]['edit']['value_path']]); // Contact 1 email can be updated $this->assertEquals('testmail@unit.test', $result[0]['columns'][1]['val']); @@ -563,7 +563,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('String', $result[0]['columns'][1]['edit']['data_type']); $this->assertEquals('email', $result[0]['columns'][1]['edit']['value_key']); $this->assertEquals('update', $result[0]['columns'][1]['edit']['action']); - $this->assertEquals('testmail@unit.test', $result[0]['columns'][1]['edit']['value']); + $this->assertEquals('testmail@unit.test', $result[0]['data'][$result[0]['columns'][1]['edit']['value_path']]); // Contact 1 - new phone can be created $this->assertNull($result[0]['columns'][2]['val']); @@ -573,7 +573,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('String', $result[0]['columns'][2]['edit']['data_type']); $this->assertEquals('phone', $result[0]['columns'][2]['edit']['value_key']); $this->assertEquals('create', $result[0]['columns'][2]['edit']['action']); - $this->assertNull($result[0]['columns'][2]['edit']['value']); + $this->assertEquals('Contact_Phone_contact_id_01.phone', $result[0]['columns'][2]['edit']['value_path']); // Contact 2 first name can be added $this->assertNull($result[1]['columns'][0]['val']); @@ -583,7 +583,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('String', $result[1]['columns'][0]['edit']['data_type']); $this->assertEquals('first_name', $result[1]['columns'][0]['edit']['value_key']); $this->assertEquals('update', $result[1]['columns'][0]['edit']['action']); - $this->assertNull($result[1]['columns'][0]['edit']['value']); + $this->assertEquals('first_name', $result[1]['columns'][0]['edit']['value_path']); // Contact 2 - new email can be created $this->assertNull($result[1]['columns'][1]['val']); @@ -593,7 +593,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('String', $result[1]['columns'][1]['edit']['data_type']); $this->assertEquals('email', $result[1]['columns'][1]['edit']['value_key']); $this->assertEquals('create', $result[1]['columns'][1]['edit']['action']); - $this->assertNull($result[1]['columns'][1]['edit']['value']); + $this->assertEquals('Contact_Email_contact_id_01.email', $result[1]['columns'][1]['edit']['value_path']); // Contact 2 phone can be updated $this->assertEquals('123456', $result[1]['columns'][2]['val']); @@ -603,7 +603,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('String', $result[1]['columns'][2]['edit']['data_type']); $this->assertEquals('phone', $result[1]['columns'][2]['edit']['value_key']); $this->assertEquals('update', $result[1]['columns'][2]['edit']['action']); - $this->assertEquals('123456', $result[1]['columns'][2]['edit']['value']); + $this->assertEquals('123456', $result[1]['data'][$result[0]['columns'][2]['edit']['value_path']]); } /** @@ -1499,7 +1499,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { 'value_key' => 'first_name', 'record' => ['id' => $contact[0]['id']], 'action' => 'update', - 'value' => 'One', + 'value_path' => 'first_name', ]; // Ensure first_name is editable but not organization_name or household_name $this->assertEquals($expectedFirstNameEdit, $result[0]['columns'][0]['edit']); @@ -1508,7 +1508,6 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { // Second Individual $expectedFirstNameEdit['record']['id'] = $contact[1]['id']; - $expectedFirstNameEdit['value'] = NULL; $this->assertEquals($contact[1]['id'], $result[1]['key']); $this->assertEquals($expectedFirstNameEdit, $result[1]['columns'][0]['edit']); $this->assertTrue(!isset($result[1]['columns'][1]['edit'])); @@ -1517,6 +1516,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { // Third contact: Organization $expectedFirstNameEdit['record']['id'] = $contact[2]['id']; $expectedFirstNameEdit['value_key'] = 'organization_name'; + $expectedFirstNameEdit['value_path'] = 'organization_name'; $this->assertTrue(!isset($result[2]['columns'][0]['edit'])); $this->assertEquals($expectedFirstNameEdit, $result[2]['columns'][1]['edit']); $this->assertTrue(!isset($result[2]['columns'][2]['edit'])); @@ -1524,17 +1524,19 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { // Third contact: Household $expectedFirstNameEdit['record']['id'] = $contact[3]['id']; $expectedFirstNameEdit['value_key'] = 'household_name'; + $expectedFirstNameEdit['value_path'] = 'household_name'; $this->assertTrue(!isset($result[3]['columns'][0]['edit'])); $this->assertTrue(!isset($result[3]['columns'][1]['edit'])); $this->assertEquals($expectedFirstNameEdit, $result[3]['columns'][2]['edit']); } public function testContributionCurrency():void { + $cid = $this->saveTestRecords('Contact', ['records' => 3])->column('id'); $contributions = $this->saveTestRecords('Contribution', [ 'records' => [ - ['total_amount' => 100, 'currency' => 'GBP'], - ['total_amount' => 200, 'currency' => 'USD'], - ['total_amount' => 500, 'currency' => 'JPY'], + ['total_amount' => 100, 'currency' => 'GBP', 'contact_id' => $cid[0]], + ['total_amount' => 200, 'currency' => 'USD', 'contact_id' => $cid[1]], + ['total_amount' => 500, 'currency' => 'JPY', 'contact_id' => $cid[2]], ], ]); @@ -1545,6 +1547,7 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { 'api_entity' => 'Contribution', 'api_params' => [ 'version' => 4, + // Include `id` column so the `sort` works 'select' => ['total_amount', 'id'], 'where' => [['id', 'IN', $contributions->column('id')]], ], @@ -1588,15 +1591,41 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('JPY', $result[0]['data']['contribution_id.currency']); $this->assertEquals('Â¥500', $result[0]['columns'][0]['val']); + + // Now try it via joins + $params['savedSearch'] = [ + 'api_entity' => 'Contact', + 'api_params' => [ + 'version' => 4, + 'select' => ['line_item.line_total', 'id'], + 'where' => [['contribution.id', 'IN', $contributions->column('id')]], + 'join' => [ + ['Contribution AS contribution', 'INNER', ['id', '=', 'contribution.contact_id']], + ['LineItem AS line_item', 'INNER', ['contribution.id', '=', 'line_item.contribution_id']], + ], + ], + ]; + $result = civicrm_api4('SearchDisplay', 'run', $params); + $this->assertCount(3, $result); + + // The parent join should have been used rather than adding an unnecessary implicit join + $this->assertEquals('GBP', $result[2]['data']['contribution.currency']); + $this->assertEquals('£100.00', $result[2]['columns'][0]['val']); + + $this->assertEquals('USD', $result[1]['data']['contribution.currency']); + $this->assertEquals('$200.00', $result[1]['columns'][0]['val']); + + $this->assertEquals('JPY', $result[0]['data']['contribution.currency']); + $this->assertEquals('Â¥500', $result[0]['columns'][0]['val']); } public function testContributionAggregateCurrency():void { $contributions = $this->saveTestRecords('Contribution', [ 'records' => [ ['total_amount' => 100, 'currency' => 'GBP'], - ['total_amount' => 200, 'currency' => 'USD'], + ['total_amount' => 150, 'currency' => 'USD'], ['total_amount' => 500, 'currency' => 'JPY'], - ['total_amount' => 200, 'currency' => 'USD'], + ['total_amount' => 250, 'currency' => 'USD'], ], ]); @@ -1631,6 +1660,83 @@ class SearchRunTest extends Api4TestBase implements TransactionalInterface { $this->assertEquals('USD', $result[2]['data']['currency']); $this->assertEquals('$400.00', $result[2]['columns'][0]['val']); $this->assertEquals(2, $result[2]['columns'][1]['val']); + + $params = [ + 'checkPermissions' => FALSE, + 'return' => 'page:1', + 'savedSearch' => [ + 'api_entity' => 'Contribution', + 'api_params' => [ + 'version' => 4, + 'select' => ['SUM(line_item.line_total) AS total', 'id'], + 'where' => [['id', 'IN', $contributions->column('id')]], + 'groupBy' => ['id'], + 'join' => [ + ['LineItem AS line_item', 'INNER', ['id', '=', 'line_item.contribution_id']], + ], + ], + ], + 'display' => NULL, + 'sort' => [['id', 'ASC']], + ]; + + $result = civicrm_api4('SearchDisplay', 'run', $params); + $this->assertCount(4, $result); + + // Currency should have been used to format the aggregated values + $this->assertEquals('GBP', $result[0]['data']['currency']); + $this->assertEquals('£100.00', $result[0]['columns'][0]['val']); + + $this->assertEquals('USD', $result[1]['data']['currency']); + $this->assertEquals('$150.00', $result[1]['columns'][0]['val']); + + $this->assertEquals('JPY', $result[2]['data']['currency']); + $this->assertEquals('Â¥500', $result[2]['columns'][0]['val']); + + $this->assertEquals('USD', $result[3]['data']['currency']); + $this->assertEquals('$250.00', $result[3]['columns'][0]['val']); + } + + public function testContributionTotalCountWithTestAndTemplateContributions():void { + // Add a source here for the where below, as if we use id, we get the test and template contributions + $contributions = $this->saveTestRecords('Contribution', [ + 'records' => [ + ['is_test' => TRUE, 'source' => 'TestTemplate'], + ['is_template' => TRUE, 'source' => 'TestTemplate'], + ['source' => 'TestTemplate'], + ], + ]); + + $params = [ + 'checkPermissions' => FALSE, + 'return' => 'page:1', + 'savedSearch' => [ + 'api_entity' => 'Contribution', + 'api_params' => [ + 'version' => 4, + 'select' => ['id'], + 'where' => [['source', '=', 'TestTemplate']], + ], + ], + 'display' => [ + 'settings' => [ + 'columns' => [ + [ + 'type' => 'field', + 'key' => 'id', + 'tally' => [ + 'fn' => 'COUNT', + ], + ], + ], + ], + ], + ]; + + $return = civicrm_api4('SearchDisplay', 'run', $params); + $params['return'] = 'tally'; + $total = civicrm_api4('SearchDisplay', 'run', $params); + $this->assertEquals($return->rowCount, $total[0]['id']); } public function testSelectEquations() { diff --git a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunWithCustomFieldTest.php b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunWithCustomFieldTest.php index 5096e3f03cfaf093ed13245d507759419e4380f0..2cf32ba633b5e0fabd4ca0ab2eed12ab967350a1 100644 --- a/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunWithCustomFieldTest.php +++ b/civicrm/ext/search_kit/tests/phpunit/api/v4/SearchDisplay/SearchRunWithCustomFieldTest.php @@ -360,9 +360,9 @@ class SearchRunWithCustomFieldTest extends CustomTestBase { 'value_key' => 'meeting_phone.sub_field', 'record' => ['id' => $activity[0]['id']], 'action' => 'update', - 'value' => 'Abc', + 'value_path' => 'meeting_phone.sub_field', ]; - $expectedSubjectEdit = ['value_key' => 'subject', 'value' => $subject] + $expectedCustomFieldEdit; + $expectedSubjectEdit = ['value_key' => 'subject', 'value_path' => 'subject'] + $expectedCustomFieldEdit; // First Activity $this->assertEquals($expectedSubjectEdit, $result[0]['columns'][0]['edit']); @@ -372,7 +372,6 @@ class SearchRunWithCustomFieldTest extends CustomTestBase { // Second Activity $expectedSubjectEdit['record']['id'] = $activity[1]['id']; $expectedCustomFieldEdit['record']['id'] = $activity[1]['id']; - $expectedCustomFieldEdit['value'] = NULL; $this->assertEquals($expectedSubjectEdit, $result[1]['columns'][0]['edit']); $this->assertEquals($expectedCustomFieldEdit, $result[1]['columns'][1]['edit']); $this->assertEquals($activityTypes['Phone Call'], $result[1]['data']['activity_type_id']); diff --git a/civicrm/ext/sequentialcreditnotes/info.xml b/civicrm/ext/sequentialcreditnotes/info.xml index c7773e516734b09cc048a044a65c16420d962003..45722d5a618d8bb2eba33d09827fbc493fc407a0 100644 --- a/civicrm/ext/sequentialcreditnotes/info.xml +++ b/civicrm/ext/sequentialcreditnotes/info.xml @@ -15,13 +15,13 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2020-01-28</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <tags> <tag>mgmt:hidden</tag> </tags> <develStage>stable</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <mixins> <mixin>setting-php@1.0.0</mixin> diff --git a/civicrm/ext/sequentialcreditnotes/phpunit.xml.dist b/civicrm/ext/sequentialcreditnotes/phpunit.xml.dist index 01bca9b019d9c4a92727a206fd88a33b02b5ffa8..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/sequentialcreditnotes/phpunit.xml.dist +++ b/civicrm/ext/sequentialcreditnotes/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" bootstrap="tests/phpunit/bootstrap.php" cacheResult="false"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/ext/standaloneusers/CRM/Standaloneusers/Page/Login.php b/civicrm/ext/standaloneusers/CRM/Standaloneusers/Page/Login.php index dc52eb190b67a55c9a9aac4293f62fa61885e913..b3a40144e9baf8a3c69f310b69b8e490c4433ae7 100644 --- a/civicrm/ext/standaloneusers/CRM/Standaloneusers/Page/Login.php +++ b/civicrm/ext/standaloneusers/CRM/Standaloneusers/Page/Login.php @@ -20,7 +20,7 @@ class CRM_Standaloneusers_Page_Login extends CRM_Core_Page { /** * Log out. */ - public function logout() { + public static function logout() { Security::singleton()->logoutUser(); // Dump them back on the log-IN page. CRM_Utils_System::redirect('/civicrm/login?justLoggedOut'); diff --git a/civicrm/ext/standaloneusers/Civi/Standalone/Security.php b/civicrm/ext/standaloneusers/Civi/Standalone/Security.php index 411e4eca3d2cd1802ad91ac5c8e06397b4f2ab36..a6ddaa0792bcba0f1c353865c1a553f02faa0ab7 100644 --- a/civicrm/ext/standaloneusers/Civi/Standalone/Security.php +++ b/civicrm/ext/standaloneusers/Civi/Standalone/Security.php @@ -295,7 +295,7 @@ class Security { * @return array */ public function getCMSPermissionsUrlParams() { - return ['ufAccessURL' => '/fixme/standalone/permissions/url/params']; + return ['ufAccessURL' => '/civicrm/admin/roles']; } /** diff --git a/civicrm/ext/standaloneusers/ang/afsearchAdministerUserAccounts.aff.json b/civicrm/ext/standaloneusers/ang/afsearchAdministerUserAccounts.aff.json index 30cf8bf663f536d99bcdb47c14af68f432ee77f3..0608fbdfe33a83b0e11dc8b6ce69cd082d6fd887 100644 --- a/civicrm/ext/standaloneusers/ang/afsearchAdministerUserAccounts.aff.json +++ b/civicrm/ext/standaloneusers/ang/afsearchAdministerUserAccounts.aff.json @@ -16,8 +16,8 @@ "redirect": null, "create_submission": false, "navigation": { - "parent": "Administer", - "label": "Administer User Accounts", + "parent": "Users and Permissions", + "label": "User Accounts", "weight": 0 } } diff --git a/civicrm/ext/standaloneusers/ang/afsearchUserRoles.aff.json b/civicrm/ext/standaloneusers/ang/afsearchUserRoles.aff.json index cc62bb4a7efefa336dc663b4632b3d293aa43822..46224d8692dd7203576f431af77c3b8d4e47b12f 100644 --- a/civicrm/ext/standaloneusers/ang/afsearchUserRoles.aff.json +++ b/civicrm/ext/standaloneusers/ang/afsearchUserRoles.aff.json @@ -6,7 +6,7 @@ "server_route": "civicrm/admin/roles", "permission": "cms:administer users", "navigation": { - "parent": "Administer", + "parent": "Users and Permissions", "label": "User Roles", "weight": 0 }, diff --git a/civicrm/ext/standaloneusers/info.xml b/civicrm/ext/standaloneusers/info.xml index 97c33ff794604eb6216c3ccbf1b0ec28de9c5205..f27435bdd899c36ed991c28cd78c9b30fd7f990a 100644 --- a/civicrm/ext/standaloneusers/info.xml +++ b/civicrm/ext/standaloneusers/info.xml @@ -15,10 +15,10 @@ <url desc="Licensing">http://www.gnu.org/licenses/agpl-3.0.html</url> </urls> <releaseDate>2022-11-11</releaseDate> - <version>5.65.2</version> + <version>5.66.0</version> <develStage>alpha</develStage> <compatibility> - <ver>5.65</ver> + <ver>5.66</ver> </compatibility> <requires> <ext>org.civicrm.search_kit</ext> diff --git a/civicrm/ext/standaloneusers/phpunit.xml.dist b/civicrm/ext/standaloneusers/phpunit.xml.dist index ea391745fa9f582494ad0d5c02a786788a191636..5fe8daddfe832b411dbcde8873723779a3bd5123 100644 --- a/civicrm/ext/standaloneusers/phpunit.xml.dist +++ b/civicrm/ext/standaloneusers/phpunit.xml.dist @@ -1,15 +1,27 @@ <?xml version="1.0"?> -<phpunit backupGlobals="false" backupStaticAttributes="false" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" cacheResult="false" bootstrap="tests/phpunit/bootstrap.php"> +<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd" + backupGlobals="false" + backupStaticAttributes="false" + colors="true" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + convertDeprecationsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + bootstrap="tests/phpunit/bootstrap.php" + cacheResult="false"> + <coverage> + <include> + <directory suffix=".php">./</directory> + </include> + </coverage> <testsuites> <testsuite name="My Test Suite"> <directory>./tests/phpunit</directory> </testsuite> </testsuites> - <filter> - <whitelist> - <directory suffix=".php">./</directory> - </whitelist> - </filter> <listeners> <listener class="Civi\Test\CiviTestListener"> <arguments/> diff --git a/civicrm/js/crm.ajax.js b/civicrm/js/crm.ajax.js index 7478709d91f270cbbb23d5bb1c934465eaef584c..ecd7c73c5ef217680c0fbdd9cedfd5145b29d94c 100644 --- a/civicrm/js/crm.ajax.js +++ b/civicrm/js/crm.ajax.js @@ -304,7 +304,7 @@ }, refresh: function() { var that = this, - hash = this.options.url.split('#')[1]; + hash = this.options.url.split('#')[1], url = this._formatUrl(this.options.url, 'json'); $(this.element).data('urlHash', hash); if (this.options.crmForm) $('form', this.element).ajaxFormUnbind(); diff --git a/civicrm/js/crm.menubar.js b/civicrm/js/crm.menubar.js index 65fe533bf3a12628c1eccf47b91578b60e46e011..d5e98fd532a60f1b8b66cd51ec71a85de5b987fc 100644 --- a/civicrm/js/crm.menubar.js +++ b/civicrm/js/crm.menubar.js @@ -288,22 +288,28 @@ var option = $('input[name=quickSearchField]:checked'), params = { - name: request.term, - field_name: option.val() + formName: 'crmMenubar', + fieldName: 'crm-qsearch-input', + filters: {}, }; - CRM.api3('contact', 'getquick', params).done(function(result) { + if (option.val() === 'sort_name') { + params.input = request.term; + } else { + params.filters[option.val()] = request.term; + } + CRM.api4('Contact', 'autocomplete', params).then(function(result) { var ret = []; - if (result.values.length > 0) { + if (result.length > 0) { $('#crm-qsearch-input').autocomplete('widget').menu('option', 'disabled', false); - $.each(result.values, function(k, v) { - ret.push({value: v.id, label: v.data}); + $.each(result, function(key, item) { + ret.push({value: item.id, label: item.label}); }); } else { $('#crm-qsearch-input').autocomplete('widget').menu('option', 'disabled', true); var label = option.closest('label').text(); var msg = ts('%1 not found.', {1: label}); // Remind user they are not searching by contact name (unless they enter a number) - if (params.field_name !== 'sort_name' && !(/[\d].*/.test(params.name))) { + if (option.val() !== 'sort_name' && !(/[\d].*/.test(params.name))) { msg += ' ' + ts('Did you mean to search by Name/Email instead?'); } ret.push({value: '0', label: msg}); diff --git a/civicrm/packages/Smarty/plugins/modifier.escape.php b/civicrm/packages/Smarty/plugins/modifier.escape.php index a2f52b232c1316ee9b7d0a2ea70cfc41c1b012c6..aa7b4b9d02337732a900f9d92773a60da3161157 100644 --- a/civicrm/packages/Smarty/plugins/modifier.escape.php +++ b/civicrm/packages/Smarty/plugins/modifier.escape.php @@ -21,6 +21,11 @@ */ function smarty_modifier_escape($string, $esc_type = 'html', $char_set = 'ISO-8859-1') { + // Early return for null, '', or '0', none of which need to be escaped and null will cause e-notices. + if (empty($string)) { + return (string) $string; + } + switch ($esc_type) { case 'html': return htmlspecialchars($string, ENT_QUOTES, $char_set); diff --git a/civicrm/packages/html2text/rcube_html2text.php b/civicrm/packages/html2text/rcube_html2text.php deleted file mode 100644 index 42c568a9c1a6135996b9dc8ae62f71ab23c2886f..0000000000000000000000000000000000000000 --- a/civicrm/packages/html2text/rcube_html2text.php +++ /dev/null @@ -1,708 +0,0 @@ -<?php - -/** - * We have switched to using the roundcube version since it appears to - * be maintained and updated compared to the original version - * - * CRM-12766 - */ - -/** - +-----------------------------------------------------------------------+ - | This file is part of the Roundcube Webmail client | - | Copyright (C) 2008-2012, The Roundcube Dev Team | - | Copyright (c) 2005-2007, Jon Abernathy <jon@chuggnutt.com> | - | | - | Licensed under the GNU General Public License version 3 or | - | any later version with exceptions for skins & plugins. | - | See the README file for a full license statement. | - | | - | PURPOSE: | - | Converts HTML to formatted plain text (based on html2text class) | - +-----------------------------------------------------------------------+ - | Author: Thomas Bruederli <roundcube@gmail.com> | - | Author: Aleksander Machniak <alec@alec.pl> | - | Author: Jon Abernathy <jon@chuggnutt.com> | - +-----------------------------------------------------------------------+ - */ - -/** - * Takes HTML and converts it to formatted, plain text. - * - * Thanks to Alexander Krug (http://www.krugar.de/) to pointing out and - * correcting an error in the regexp search array. Fixed 7/30/03. - * - * Updated set_html() function's file reading mechanism, 9/25/03. - * - * Thanks to Joss Sanglier (http://www.dancingbear.co.uk/) for adding - * several more HTML entity codes to the $search and $replace arrays. - * Updated 11/7/03. - * - * Thanks to Darius Kasperavicius (http://www.dar.dar.lt/) for - * suggesting the addition of $allowed_tags and its supporting function - * (which I slightly modified). Updated 3/12/04. - * - * Thanks to Justin Dearing for pointing out that a replacement for the - * <TH> tag was missing, and suggesting an appropriate fix. - * Updated 8/25/04. - * - * Thanks to Mathieu Collas (http://www.myefarm.com/) for finding a - * display/formatting bug in the _build_link_list() function: email - * readers would show the left bracket and number ("[1") as part of the - * rendered email address. - * Updated 12/16/04. - * - * Thanks to Wojciech Bajon (http://histeria.pl/) for submitting code - * to handle relative links, which I hadn't considered. I modified his - * code a bit to handle normal HTTP links and MAILTO links. Also for - * suggesting three additional HTML entity codes to search for. - * Updated 03/02/05. - * - * Thanks to Jacob Chandler for pointing out another link condition - * for the _build_link_list() function: "https". - * Updated 04/06/05. - * - * Thanks to Marc Bertrand (http://www.dresdensky.com/) for - * suggesting a revision to the word wrapping functionality; if you - * specify a $width of 0 or less, word wrapping will be ignored. - * Updated 11/02/06. - * - * *** Big housecleaning updates below: - * - * Thanks to Colin Brown (http://www.sparkdriver.co.uk/) for - * suggesting the fix to handle </li> and blank lines (whitespace). - * Christian Basedau (http://www.movetheweb.de/) also suggested the - * blank lines fix. - * - * Special thanks to Marcus Bointon (http://www.synchromedia.co.uk/), - * Christian Basedau, Norbert Laposa (http://ln5.co.uk/), - * Bas van de Weijer, and Marijn van Butselaar - * for pointing out my glaring error in the <th> handling. Marcus also - * supplied a host of fixes. - * - * Thanks to Jeffrey Silverman (http://www.newtnotes.com/) for pointing - * out that extra spaces should be compressed--a problem addressed with - * Marcus Bointon's fixes but that I had not yet incorporated. - * - * Thanks to Daniel Schledermann (http://www.typoconsult.dk/) for - * suggesting a valuable fix with <a> tag handling. - * - * Thanks to Wojciech Bajon (again!) for suggesting fixes and additions, - * including the <a> tag handling that Daniel Schledermann pointed - * out but that I had not yet incorporated. I haven't (yet) - * incorporated all of Wojciech's changes, though I may at some - * future time. - * - * *** End of the housecleaning updates. Updated 08/08/07. - */ - -/** - * Converts HTML to formatted plain text - * - * @package Framework - * @subpackage Utils - */ -class rcube_html2text -{ - /** - * Contains the HTML content to convert. - * - * @var string $html - */ - protected $html; - - /** - * Contains the converted, formatted text. - * - * @var string $text - */ - protected $text; - - /** - * Maximum width of the formatted text, in columns. - * - * Set this value to 0 (or less) to ignore word wrapping - * and not constrain text to a fixed-width column. - * - * @var integer $width - */ - protected $width = 70; - - /** - * Target character encoding for output text - * - * @var string $charset - */ - protected $charset = 'UTF-8'; - - /** - * List of preg* regular expression patterns to search for, - * used in conjunction with $replace. - * - * @var array $search - * @see $replace - */ - protected $search = array( - "/\r/", // Non-legal carriage return - "/[\n\t]+/", // Newlines and tabs - '/<head[^>]*>.*?<\/head>/i', // <head> - '/<script[^>]*>.*?<\/script>/i', // <script>s -- which strip_tags supposedly has problems with - '/<style[^>]*>.*?<\/style>/i', // <style>s -- which strip_tags supposedly has problems with - '/<p[^>]*>/i', // <P> - '/<br[^>]*>/i', // <br> - '/<i[^>]*>(.*?)<\/i>/i', // <i> - '/<em[^>]*>(.*?)<\/em>/i', // <em> - '/(<ul[^>]*>|<\/ul>)/i', // <ul> and </ul> - '/(<ol[^>]*>|<\/ol>)/i', // <ol> and </ol> - '/<li[^>]*>(.*?)<\/li>/i', // <li> and </li> - '/<li[^>]*>/i', // <li> - '/<hr[^>]*>/i', // <hr> - '/<div[^>]*>/i', // <div> - '/(<table[^>]*>|<\/table>)/i', // <table> and </table> - '/(<tr[^>]*>|<\/tr>)/i', // <tr> and </tr> - '/<td[^>]*>(.*?)<\/td>/i', // <td> and </td> - ); - - /** - * List of pattern replacements corresponding to patterns searched. - * - * @var array $replace - * @see $search - */ - protected $replace = array( - '', // Non-legal carriage return - ' ', // Newlines and tabs - '', // <head> - '', // <script>s -- which strip_tags supposedly has problems with - '', // <style>s -- which strip_tags supposedly has problems with - "\n\n", // <P> - "\n", // <br> - '_\\1_', // <i> - '_\\1_', // <em> - "\n\n", // <ul> and </ul> - "\n\n", // <ol> and </ol> - "\t* \\1\n", // <li> and </li> - "\n\t* ", // <li> - "\n-------------------------\n", // <hr> - "<div>\n", // <div> - "\n\n", // <table> and </table> - "\n", // <tr> and </tr> - "\t\t\\1\n", // <td> and </td> - ); - - /** - * List of preg* regular expression patterns to search for, - * used in conjunction with $ent_replace. - * - * @var array $ent_search - * @see $ent_replace - */ - protected $ent_search = array( - '/&(nbsp|#160);/i', // Non-breaking space - '/&(quot|rdquo|ldquo|#8220|#8221|#147|#148);/i', - // Double quotes - '/&(apos|rsquo|lsquo|#8216|#8217);/i', // Single quotes - '/>/i', // Greater-than - '/</i', // Less-than - '/&(copy|#169);/i', // Copyright - '/&(trade|#8482|#153);/i', // Trademark - '/&(reg|#174);/i', // Registered - '/&(mdash|#151|#8212);/i', // mdash - '/&(ndash|minus|#8211|#8722);/i', // ndash - '/&(bull|#149|#8226);/i', // Bullet - '/&(pound|#163);/i', // Pound sign - '/&(euro|#8364);/i', // Euro sign - '/&(amp|#38);/i', // Ampersand: see _converter() - '/[ ]{2,}/', // Runs of spaces, post-handling - ); - - /** - * List of pattern replacements corresponding to patterns searched. - * - * @var array $ent_replace - * @see $ent_search - */ - protected $ent_replace = array( - ' ', // Non-breaking space - '"', // Double quotes - "'", // Single quotes - '>', - '<', - '(c)', - '(tm)', - '(R)', - '--', - '-', - '*', - '£', - 'EUR', // Euro sign. € ? - '|+|amp|+|', // Ampersand: see _converter() - ' ', // Runs of spaces, post-handling - ); - - /** - * List of preg* regular expression patterns to search for - * and replace using callback function. - * - * @var array $callback_search - */ - protected $callback_search = array( - '/<(a) [^>]*href=("|\')([^"\']+)\2[^>]*>(.*?)<\/a>/i', // <a href=""> - '/<(h)[123456]( [^>]*)?>(.*?)<\/h[123456]>/i', // h1 - h6 - '/<(b)( [^>]*)?>(.*?)<\/b>/i', // <b> - '/<(strong)( [^>]*)?>(.*?)<\/strong>/i', // <strong> - '/<(th)( [^>]*)?>(.*?)<\/th>/i', // <th> and </th> - ); - - /** - * List of preg* regular expression patterns to search for in PRE body, - * used in conjunction with $pre_replace. - * - * @var array $pre_search - * @see $pre_replace - */ - protected $pre_search = array( - "/\n/", - "/\t/", - '/ /', - '/<pre[^>]*>/', - '/<\/pre>/' - ); - - /** - * List of pattern replacements corresponding to patterns searched for PRE body. - * - * @var array $pre_replace - * @see $pre_search - */ - protected $pre_replace = array( - '<br>', - ' ', - ' ', - '', - '' - ); - - /** - * Contains a list of HTML tags to allow in the resulting text. - * - * @var string $allowed_tags - * @see set_allowed_tags() - */ - protected $allowed_tags = ''; - - /** - * Contains the base URL that relative links should resolve to. - * - * @var string $url - */ - protected $url; - - /** - * Indicates whether content in the $html variable has been converted yet. - * - * @var boolean $_converted - * @see $html, $text - */ - protected $_converted = false; - - /** - * Contains URL addresses from links to be rendered in plain text. - * - * @var array $_link_list - * @see _build_link_list() - */ - protected $_link_list = array(); - - /** - * Boolean flag, true if a table of link URLs should be listed after the text. - * - * @var boolean $_do_links - * @see __construct() - */ - protected $_do_links = true; - - /** - * Constructor. - * - * If the HTML source string (or file) is supplied, the class - * will instantiate with that source propagated, all that has - * to be done it to call get_text(). - * - * @param string $source HTML content - * @param boolean $from_file Indicates $source is a file to pull content from - * @param boolean $do_links Indicate whether a table of link URLs is desired - * @param integer $width Maximum width of the formatted text, 0 for no limit - */ - function __construct($source = '', $from_file = false, $do_links = true, $width = 75, $charset = 'UTF-8') - { - if (!empty($source)) { - $this->set_html($source, $from_file); - } - - $this->set_base_url(); - - $this->_do_links = $do_links; - $this->width = $width; - $this->charset = $charset; - } - - /** - * Loads source HTML into memory, either from $source string or a file. - * - * @param string $source HTML content - * @param boolean $from_file Indicates $source is a file to pull content from - */ - function set_html($source, $from_file = false) - { - if ($from_file && file_exists($source)) { - $this->html = file_get_contents($source); - } - else { - $this->html = $source; - } - - $this->_converted = false; - } - - /** - * Returns the text, converted from HTML. - * - * @return string Plain text - */ - function get_text() - { - if (!$this->_converted) { - $this->_convert(); - } - - return $this->text; - } - - /** - * Prints the text, converted from HTML. - */ - function print_text() - { - print $this->get_text(); - } - - /** - * Sets the allowed HTML tags to pass through to the resulting text. - * - * Tags should be in the form "<p>", with no corresponding closing tag. - */ - function set_allowed_tags($allowed_tags = '') - { - if (!empty($allowed_tags)) { - $this->allowed_tags = $allowed_tags; - } - } - - /** - * Sets a base URL to handle relative links. - */ - function set_base_url($url = '') - { - if (empty($url)) { - if (!empty($_SERVER['HTTP_HOST'])) { - $this->url = 'http://' . $_SERVER['HTTP_HOST']; - } - else { - $this->url = ''; - } - } - else { - // Strip any trailing slashes for consistency (relative - // URLs may already start with a slash like "/file.html") - if (substr($url, -1) == '/') { - $url = substr($url, 0, -1); - } - $this->url = $url; - } - } - - /** - * Workhorse function that does actual conversion (calls _converter() method). - */ - protected function _convert() - { - // Variables used for building the link list - $this->_link_list = array(); - - $text = trim(stripslashes($this->html)); - - // Convert HTML to TXT - $this->_converter($text); - - // Add link list - if (!empty($this->_link_list)) { - $text .= "\n\nLinks:\n------\n"; - foreach ($this->_link_list as $idx => $url) { - $text .= '[' . ($idx+1) . '] ' . $url . "\n"; - } - } - - $this->text = $text; - $this->_converted = true; - } - - /** - * Workhorse function that does actual conversion. - * - * First performs custom tag replacement specified by $search and - * $replace arrays. Then strips any remaining HTML tags, reduces whitespace - * and newlines to a readable format, and word wraps the text to - * $width characters. - * - * @param string Reference to HTML content string - */ - protected function _converter(&$text) - { - // Convert <BLOCKQUOTE> (before PRE!) - $this->_convert_blockquotes($text); - - // Convert <PRE> - $this->_convert_pre($text); - - // Run our defined tags search-and-replace - $text = preg_replace($this->search, $this->replace, $text); - - // Run our defined tags search-and-replace with callback - $text = preg_replace_callback($this->callback_search, array($this, 'tags_preg_callback'), $text); - - // Strip any other HTML tags - $text = strip_tags($text, $this->allowed_tags); - - // Run our defined entities/characters search-and-replace - $text = preg_replace($this->ent_search, $this->ent_replace, $text); - - // Replace known html entities - $text = html_entity_decode($text, ENT_QUOTES, $this->charset); - - // Remove unknown/unhandled entities (this cannot be done in search-and-replace block) - $text = preg_replace('/&([a-zA-Z0-9]{2,6}|#[0-9]{2,4});/', '', $text); - - // Convert "|+|amp|+|" into "&", need to be done after handling of unknown entities - // This properly handles situation of "&quot;" in input string - $text = str_replace('|+|amp|+|', '&', $text); - - // Bring down number of empty lines to 2 max - $text = preg_replace("/\n\s+\n/", "\n\n", $text); - $text = preg_replace("/[\n]{3,}/", "\n\n", $text); - - // remove leading empty lines (can be produced by eg. P tag on the beginning) - $text = ltrim($text, "\n"); - - // Wrap the text to a readable format - // for PHP versions >= 4.0.2. Default width is 75 - // If width is 0 or less, don't wrap the text. - if ( $this->width > 0 ) { - $text = wordwrap($text, $this->width); - } - } - - /** - * Helper function called by preg_replace() on link replacement. - * - * Maintains an internal list of links to be displayed at the end of the - * text, with numeric indices to the original point in the text they - * appeared. Also makes an effort at identifying and handling absolute - * and relative links. - * - * @param string $link URL of the link - * @param string $display Part of the text to associate number with - */ - protected function _build_link_list( $link, $display ) - { - if (!$this->_do_links || empty($link)) { - return $display; - } - - // Ignored link types - if (preg_match('!^(javascript:|mailto:|#)!i', $link)) { - return $display; - } - - if (preg_match('!^([a-z][a-z0-9.+-]+:)!i', $link)) { - $url = $link; - } - else { - $url = $this->url; - if (substr($link, 0, 1) != '/') { - $url .= '/'; - } - $url .= "$link"; - } - - if (($index = array_search($url, $this->_link_list)) === false) { - $index = count($this->_link_list); - $this->_link_list[] = $url; - } - - return $display . ' [' . ($index+1) . ']'; - } - - /** - * Helper function for PRE body conversion. - * - * @param string HTML content - */ - protected function _convert_pre(&$text) - { - // get the content of PRE element - while (preg_match('/<pre[^>]*>(.*)<\/pre>/ismU', $text, $matches)) { - $this->pre_content = $matches[1]; - - // Run our defined tags search-and-replace with callback - $this->pre_content = preg_replace_callback($this->callback_search, - array($this, 'tags_preg_callback'), $this->pre_content); - - // convert the content - $this->pre_content = sprintf('<div><br>%s<br></div>', - preg_replace($this->pre_search, $this->pre_replace, $this->pre_content)); - - // replace the content (use callback because content can contain $0 variable) - $text = preg_replace_callback('/<pre[^>]*>.*<\/pre>/ismU', - array($this, 'pre_preg_callback'), $text, 1); - - // free memory - $this->pre_content = ''; - } - } - - /** - * Helper function for BLOCKQUOTE body conversion. - * - * @param string HTML content - */ - protected function _convert_blockquotes(&$text) - { - $level = 0; - $offset = 0; - while (($start = strpos($text, '<blockquote', $offset)) !== false) { - $offset = $start + 12; - do { - $end = strpos($text, '</blockquote>', $offset); - $next = strpos($text, '<blockquote', $offset); - - // nested <blockquote>, skip - if ($next !== false && $next < $end) { - $offset = $next + 12; - $level++; - } - // nested </blockquote> tag - if ($end !== false && $level > 0) { - $offset = $end + 12; - $level--; - } - // found matching end tag - else if ($end !== false && $level == 0) { - $taglen = strpos($text, '>', $start) - $start; - $startpos = $start + $taglen + 1; - - // get blockquote content - $body = trim(substr($text, $startpos, $end - $startpos)); - - // adjust text wrapping width - $p_width = $this->width; - if ($this->width > 0) $this->width -= 2; - - // replace content with inner blockquotes - $this->_converter($body); - - // resore text width - $this->width = $p_width; - - // Add citation markers and create <pre> block - $body = preg_replace_callback('/((?:^|\n)>*)([^\n]*)/', array($this, 'blockquote_citation_ballback'), trim($body)); - $body = '<pre>' . htmlspecialchars($body) . '</pre>'; - - $text = substr($text, 0, $start) . $body . "\n" . substr($text, $end + 13); - $offset = 0; - break; - } - } while ($end || $next); - } - } - - /** - * Callback function to correctly add citation markers for blockquote contents - */ - public function blockquote_citation_ballback($m) - { - $line = ltrim($m[2]); - $space = $line[0] == '>' ? '' : ' '; - return $m[1] . '>' . $space . $line; - } - - /** - * Callback function for preg_replace_callback use. - * - * @param array PREG matches - * @return string - */ - public function tags_preg_callback($matches) - { - switch (strtolower($matches[1])) { - case 'b': - case 'strong': - return $this->_toupper($matches[3]); - case 'th': - return $this->_toupper("\t\t". $matches[3] ."\n"); - case 'h': - return $this->_toupper("\n\n". $matches[3] ."\n\n"); - case 'a': - // Remove spaces in URL (#1487805) - $url = str_replace(' ', '', $matches[3]); - return $this->_build_link_list($url, $matches[4]); - } - } - - /** - * Callback function for preg_replace_callback use in PRE content handler. - * - * @param array PREG matches - * @return string - */ - public function pre_preg_callback($matches) - { - return $this->pre_content; - } - - /** - * Strtoupper function with HTML tags and entities handling. - * - * @param string $str Text to convert - * @return string Converted text - */ - private function _toupper($str) - { - // string can containg HTML tags - $chunks = preg_split('/(<[^>]*>)/', $str, null, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); - - // convert toupper only the text between HTML tags - foreach ($chunks as $idx => $chunk) { - if ($chunk[0] != '<') { - $chunks[$idx] = $this->_strtoupper($chunk); - } - } - - return implode($chunks); - } - - /** - * Strtoupper multibyte wrapper function with HTML entities handling. - * - * @param string $str Text to convert - * @return string Converted text - */ - private function _strtoupper($str) - { - $str = html_entity_decode($str, ENT_COMPAT, $this->charset); - $str = mb_strtoupper($str); - $str = htmlspecialchars($str, ENT_COMPAT, $this->charset); - - return $str; - } -} diff --git a/civicrm/packages/kcfinder/conf/config.php b/civicrm/packages/kcfinder/conf/config.php index bb461e3114ea4afeec2dc42a637d4517de933049..c49f5ff5418bf02699d4f7b4ea01a7143dce5457 100644 --- a/civicrm/packages/kcfinder/conf/config.php +++ b/civicrm/packages/kcfinder/conf/config.php @@ -101,7 +101,7 @@ $_CONFIG = array( 'mime_magic' => "", - 'cookieDomain' => "", + 'cookieDomain' => preg_replace(';:\d+$;', '', $_SERVER['HTTP_HOST']), 'cookiePath' => "", 'cookiePrefix' => 'KCFINDER_', diff --git a/civicrm/packages/kcfinder/lib/class_fastImage.php b/civicrm/packages/kcfinder/lib/class_fastImage.php index bd4d5c24e207705f8a32535d00d6d5c72933b340..3f821028b2a88f9eff85bf2e984aefe34519be5a 100644 --- a/civicrm/packages/kcfinder/lib/class_fastImage.php +++ b/civicrm/packages/kcfinder/lib/class_fastImage.php @@ -202,6 +202,7 @@ class fastImage private function getChars($n) { $response = null; + $this->str = $this->str ?: ''; /* buffer should be a string */ // do we need more data? if ($this->strpos + $n -1 >= strlen($this->str)) diff --git a/civicrm/release-notes.md b/civicrm/release-notes.md index 2f17029cab0b5e903cb767a18803fda1c2a6ec23..a4ba38a48dfb31682fa78d3a3ad925a5a31c243a 100644 --- a/civicrm/release-notes.md +++ b/civicrm/release-notes.md @@ -15,23 +15,16 @@ Other resources for identifying changes are: * https://github.com/civicrm/civicrm-joomla * https://github.com/civicrm/civicrm-wordpress -## CiviCRM 5.65.2 +## CiviCRM 5.66.0 -Released September 19, 2023 +Released October 4, 2023 -- **[Synopsis](release-notes/5.65.2.md#synopsis)** -- **[Bugs resolved](release-notes/5.65.2.md#bugs)** -- **[Credits](release-notes/5.65.2.md#credits)** -- **[Feedback](release-notes/5.65.2.md#feedback)** - -## CiviCRM 5.65.1 - -Released September 8, 2023 - -- **[Synopsis](release-notes/5.65.1.md#synopsis)** -- **[Bugs resolved](release-notes/5.65.1.md#bugs)** -- **[Credits](release-notes/5.65.1.md#credits)** -- **[Feedback](release-notes/5.65.1.md#feedback)** +- **[Synopsis](release-notes/5.66.0.md#synopsis)** +- **[Features](release-notes/5.66.0.md#features)** +- **[Bugs resolved](release-notes/5.66.0.md#bugs)** +- **[Miscellany](release-notes/5.66.0.md#misc)** +- **[Credits](release-notes/5.66.0.md#credits)** +- **[Feedback](release-notes/5.66.0.md#feedback)** ## CiviCRM 5.65.0 diff --git a/civicrm/release-notes/5.65.1.md b/civicrm/release-notes/5.65.1.md deleted file mode 100644 index 2dcf34ef98b197580ad8fba91f07eb3ec10419d7..0000000000000000000000000000000000000000 --- a/civicrm/release-notes/5.65.1.md +++ /dev/null @@ -1,42 +0,0 @@ -# CiviCRM 5.65.1 - -Released September 8, 2023 - -- **[Synopsis](#synopsis)** -- **[Bugs resolved](#bugs)** -- **[Credits](#credits)** -- **[Feedback](#feedback)** - -## <a name="synopsis"></a>Synopsis - -| *Does this version...?* | | -| --------------------------------------------------------------- | -------- | -| Change the database schema? | no | -| Alter the API? | no | -| Require attention to configuration options? | no | -| **Fix problems installing or upgrading to a previous version?** | **yes** | -| Introduce features? | no | -| **Fix bugs?** | **yes** | -| Fix security vulnerabilities? | no | - -## <a name="bugs"></a>Bugs resolved - -* **_CiviEvent_: Token `{event.fee_label}` is blank ([#27372](https://github.com/civicrm/civicrm-core/pull/27372))** -* **_Upgrader_: Failure involving `MappingBase::getLabel() must be of the type string' ([#27354](https://github.com/civicrm/civicrm-core/pull/27354))** -* **_Upgrader_: Failure involving `CRM_*_DAO_* not found in CRM_Core_PseudoConstant::get()` ([#27358](https://github.com/civicrm/civicrm-core/pull/27358))** -* **_Upgrader_: Failure involving combination of multilingual and data-logging ([#27364](https://github.com/civicrm/civicrm-core/pull/27364))** -* **_Testing_: Test-suite compatibility ([drupal#671](https://github.com/civicrm/civicrm-drupal/pull/671))** - -## <a name="credits"></a>Credits - -This release was developed by the following authors and reviewers: - -Wildsight - Lars Sander-Green; Wikimedia Foundation - Eileen McNaughton; Squiffle -Consulting - Aidan Saunders; JMA Consulting - Seamus Lee; Fuzion - Peter Davis; Dave D; -CiviCRM - Coleman Watts, Tim Otten; catorghans - -## <a name="feedback"></a>Feedback - -These release notes are edited by Tim Otten and Andie Hunt. If you'd like to -provide feedback on them, please login to https://chat.civicrm.org/civicrm and -contact `@agh1`. diff --git a/civicrm/release-notes/5.65.2.md b/civicrm/release-notes/5.65.2.md deleted file mode 100644 index b6bd68520c8949f0f7dee6ea5bae8c9ec8ef169c..0000000000000000000000000000000000000000 --- a/civicrm/release-notes/5.65.2.md +++ /dev/null @@ -1,42 +0,0 @@ -# CiviCRM 5.65.2 - -Released September 19, 2023 - -- **[Synopsis](#synopsis)** -- **[Bugs resolved](#bugs)** -- **[Credits](#credits)** -- **[Feedback](#feedback)** - -## <a name="synopsis"></a>Synopsis - -| *Does this version...?* | | -| --------------------------------------------------------------- | -------- | -| Change the database schema? | no | -| Alter the API? | no | -| **Require attention to configuration options?** | **yes (rare)** | -| **Fix problems installing or upgrading to a previous version?** | **yes** | -| Introduce features? | no | -| **Fix bugs?** | **yes** | -| Fix security vulnerabilities? | no | - -## <a name="bugs"></a>Bugs resolved - -* **_Custom Data_: Restricted visibility of `$groupTree` may cause some customizations to fail ([#27492](https://github.com/civicrm/civicrm-core/pull/27492))** -* **_Status Check_: Display warning(s) if a previous upgrade left inconsistencies in the configuration of "Components" ([#27453](https://github.com/civicrm/civicrm-core/pull/27453), [#27475](https://github.com/civicrm/civicrm-core/pull/27475))** -* **_Upgrader_: Upgrades may fail if customizations depend on migrated component APIs ([dev/core#4521](https://lab.civicrm.org/dev/core/-/issues/4521): [#27481](https://github.com/civicrm/civicrm-core/pull/27481))** -* **_Upgrader_: Upgrades may fail due to interaction between migrated component APIs, breadcrumbs, and views/entities ([dev/core#4605](https://lab.civicrm.org/dev/core/-/issues/4605): [#27518](https://github.com/civicrm/civicrm-core/pull/27518))** - -## <a name="credits"></a>Credits - -This release was developed by the following authors and reviewers: - -Wildsight - Lars Sander-Green; Wikimedia Foundation - Eileen McNaughton; Megaphone -Technology Consulting - Jon Goldberg; Dave D; Coop SymbioTIC - Mathieu Lutfy; CiviCRM - -Coleman Watts, Tim Otten; Circle Interactive - Pradeep Nayak; BrightMinded Ltd - Bradley -Taylor; aiden_g; Agileware - Justin Freeman - -## <a name="feedback"></a>Feedback - -These release notes are edited by Tim Otten and Andie Hunt. If you'd like to -provide feedback on them, please login to https://chat.civicrm.org/civicrm and -contact `@agh1`. diff --git a/civicrm/release-notes/5.66.0.md b/civicrm/release-notes/5.66.0.md new file mode 100644 index 0000000000000000000000000000000000000000..4ff6cfb135ffa72251b24a0dfed02c712a58a631 --- /dev/null +++ b/civicrm/release-notes/5.66.0.md @@ -0,0 +1,1001 @@ +# CiviCRM 5.66.0 + +Released October 4, 2023 + +- **[Synopsis](#synopsis)** +- **[Security advisories](#security)** +- **[Features](#features)** +- **[Bugs resolved](#bugs)** +- **[Miscellany](#misc)** +- **[Credits](#credits)** +- **[Feedback](#feedback)** + +## <a name="synopsis"></a>Synopsis + +| *Does this version...?* | | +|:--------------------------------------------------------------- |:-------:| +| Fix security vulnerabilities? | no | +| **Change the database schema?** | **yes** | +| **Alter the API?** | **yes** | +| Require attention to configuration options? | no | +| **Fix problems installing or upgrading to a previous version?** | **yes** | +| **Introduce features?** | **yes** | +| **Fix bugs?** | **yes** | + +## <a name="features"></a>Features + +### Core CiviCRM + +- **Add "phpstorm" extension ([27168](https://github.com/civicrm/civicrm-core/pull/27168), + [27175](https://github.com/civicrm/civicrm-core/pull/27175), + [27178](https://github.com/civicrm/civicrm-core/pull/27178), + [27179](https://github.com/civicrm/civicrm-core/pull/27179), + [27239](https://github.com/civicrm/civicrm-core/pull/27239), and [27262](https://github.com/civicrm/civicrm-core/pull/27262))** + + Adds a "phpstorm" extension which implements a process for integrating some + dynamic data into PhpStorm. + +- **Improve FormBuilder handling of non logged in flows + (Work Towards [dev/core#4232](https://lab.civicrm.org/dev/core/-/issues/4232): + [27041](https://github.com/civicrm/civicrm-core/pull/27041))** + + Improves FormBuilder schema to better handle form flows for anonymous users. + +- **New core extension for scheduled reminders using criteria from + search-kit + ([dev/core#2644](https://lab.civicrm.org/dev/core/-/issues/2644): + [27081](https://github.com/civicrm/civicrm-core/pull/27081))** + + Adds the Scheduled Communications extension which makes it so one can set up + scheduled reminders using criteria from search-kit. + +- **User experience improvement, hide by default the Latitude and Longitude + fields, users can enable display if needed + ([dev/core#2640](https://lab.civicrm.org/dev/core/-/issues/2640): + [27100](https://github.com/civicrm/civicrm-core/pull/27100))** + + Hides the Latitude and Longitude fields by default. + +- **Pass html text through a formatter when translating it to tokens + ([27204](https://github.com/civicrm/civicrm-core/pull/27204) and + [27203](https://github.com/civicrm/civicrm-core/pull/27203))** + + Converts new lines to page breaks when rendering text tokens to html. + +- **Add custom data when creating smart group + ([23312](https://github.com/civicrm/civicrm-core/pull/23312))** + + Adds group custom fields when creating a new smart group from search action + Group -> Create Smart Group. + +- **Add sort for country/state fields in reports + ([dev/core#4532](https://lab.civicrm.org/dev/core/-/issues/4532): + [27135](https://github.com/civicrm/civicrm-core/pull/27135))** + + Adds sort for country/state fields in reports. + +- **Add system check for missing component extensions + ([27453](https://github.com/civicrm/civicrm-core/pull/27453))** + + Expands the system check for required extensions to also cover component + extensions. + +- **Bump search_autocomplete_count default from 10 to 15 + ([27116](https://github.com/civicrm/civicrm-core/pull/27116))** + + Improves the overall responsiveness of Autocompletes by fetching more results + at a time. + +- **Schema - Improve pseudoconstant metadata for `prefetch` and `controlField` + ([27054](https://github.com/civicrm/civicrm-core/pull/27054))** + + Improves schema metadata with an eye toward optimizing APIv4 pseudoconstant + lookups. + +- **Afform - Support multiple permissions in the GUI + ([27272](https://github.com/civicrm/civicrm-core/pull/27272))** + + Allows multiple permissions to be set for an Afform. + +- **Afform - Allow submissions to be disabled and limited + ([27211](https://github.com/civicrm/civicrm-core/pull/27211))** + + Adds FormBuilder settings to disable submissions or limit the number of + submissions. + +- **SearchKit - Improve handling of money currency + ([27202](https://github.com/civicrm/civicrm-core/pull/27202))** + + Improves SearchKit support for different types of monetary entities (e.g. the + Expenses extension). + +- **SearchKit - Expose sql functions provided by extensions + ([27197](https://github.com/civicrm/civicrm-core/pull/27197))** + + Allows extensions to contribute SqlFunctions to SearchKit. + +- **SearchKit - In-place edit without refreshing results + ([27105](https://github.com/civicrm/civicrm-core/pull/27105))** + + Speeds up the process of in-place-editing on a SearchKit display. + +- **Afform - Add Note as an afformEntity + ([27110](https://github.com/civicrm/civicrm-core/pull/27110))** + + Adds the Note entity to Form Builder. + +- **APIv4 Explorer - Keep list of suffixes in-sync + ([27109](https://github.com/civicrm/civicrm-core/pull/27109))** + + Keeps the list of available pseudoconstant suffixes in APIv4 Explorer + consistent with the master list. + +- **API - Switched to cached function for looking up pemissioned groups + ([27140](https://github.com/civicrm/civicrm-core/pull/27140))** + + Performance improvement for looking up acl groups. + +- **Afform - Enhance returned values from AfformSubmission.afform_name options + ([27108](https://github.com/civicrm/civicrm-core/pull/27108))** + + Improves the psueudoconstant options list returned from + AfformSubmission.afform_name so that more attributes of the afform can be + accessed. + +- **Allow for configuration of activity contacts, type and campaign for + email-to-activity + ([26905](https://github.com/civicrm/civicrm-core/pull/26905))** + + Adds more options when setting up email-to-activity. + +- **APIv4 - Proper ACLs for relationship entity + ([27183](https://github.com/civicrm/civicrm-core/pull/27183))** + + Improves v4 Relationship API to use fine-grained ACLs instead of + coarse-grained permission check which was too restrictive. + +- **APIv4 - Add missing input type options + ([27236](https://github.com/civicrm/civicrm-core/pull/27236))** + + Makes APIv4 aware of a couple more input types (both core and custom fields + can have these types). + +- **Add API-based EntityLookupTrait + ([27257](https://github.com/civicrm/civicrm-core/pull/27257))** + + Adds a helper class to make it easy to lookup entity values. + +- **Distmaker: add CiviCRM Standalone support + ([27104](https://github.com/civicrm/civicrm-core/pull/27104))** + + Adds support for building CiviCRM Standalone tar.gz archives for + nightly/rc/stable releases. + +- **Standalone: add error handler + ([26965](https://github.com/civicrm/civicrm-core/pull/26965))** + + Adds error handling for standalone implementations. + +- **Update a couple more tpl variables to tokens + ([27372](https://github.com/civicrm/civicrm-core/pull/27372), + [27004](https://github.com/civicrm/civicrm-core/pull/27004) and + [27017](https://github.com/civicrm/civicrm-core/pull/27017))** + + Updates a couple smarty template variables to use tokens instead. + +- **SearchKit - Use Contact.sort_name instead of display_name for searches and + Autocompletes ([27112](https://github.com/civicrm/civicrm-core/pull/27112))** + + Improves searchkit user experience by using contact sort name instead of + display name for searches and autocompletes. + +### CiviCase + +- **Be able to remove clients from a case from the manage case view + ([27200](https://github.com/civicrm/civicrm-core/pull/27200))** + + Makes it so users can remove clients from a case from the manage case view. + +### CiviContribute + +- **Add `Discount` to APIv4 + ([27122](https://github.com/civicrm/civicrm-core/pull/27122))** + + Adds APIv4 Discount entity. + +### CiviEvent + +- **Afform - Enable creating event from a template + ([27058](https://github.com/civicrm/civicrm-core/pull/27058))** + + Enables selecting an event template when using Afform to create a new event. + +### CiviMail + +- **Update SMS cannot send message to specify that a mobile phone number is + required ([27194](https://github.com/civicrm/civicrm-core/pull/27194))** + + Improves the error message when SMS cannot be sent to phone number because it + is not a mobile phone. + +### CiviMember + +- **Membership Detail improvements (Work towards + [dev/core#4522](https://lab.civicrm.org/dev/core/-/issues/4522): + [27118](https://github.com/civicrm/civicrm-core/pull/27118) and + [27249](https://github.com/civicrm/civicrm-core/pull/27249))** + + Improves the Membership detail report by adding: Membership Status, + Auto-Renew, Auto-Renew Subscription Status, Start Date and End Date to the + sorting tab. + +## <a name="bugs"></a>Bugs resolved + +### Core CiviCRM + +- **Admin UI: Attempting to delete custom field group with custom fields opens + the listing page in modal window + ([dev/core#4094](https://lab.civicrm.org/dev/core/-/issues/4094): + [27056](https://github.com/civicrm/civicrm-core/pull/27056))** + + Use statusBounce instead of redirect when a custom group cannot be deleted. + +- **Standalone: language change does not stick (Work towards + [dev/core#4425](https://lab.civicrm.org/dev/core/-/issues/4425): + [27040](https://github.com/civicrm/civicrm-core/pull/27040), [27639](https://github.com/civicrm/civicrm-core/pull/27639))** + + Ensures currentPath for Standalone implementations does not return empty so + that language-switcher extension can work. + +- **Import caching issue (Work towards + [dev/core#4467](https://lab.civicrm.org/dev/core/-/issues/4467): + [27076](https://github.com/civicrm/civicrm-core/pull/27076))** + + Ensure saving and updating an import field mapping saves correctly. + +- **Redis performance issue on delete contact + ([dev/core#4501](https://lab.civicrm.org/dev/core/-/issues/4501): + [27115](https://github.com/civicrm/civicrm-core/pull/27115))** + +- **Search Kit - Links conditional doesn't work with domain_id or domain = + current domain + ([dev/core#4509](https://lab.civicrm.org/dev/core/-/issues/4509): + [27093](https://github.com/civicrm/civicrm-core/pull/27093))** + +- **ACLs' priority sometimes does the opposite of what it says it does + ([dev/core#4542](https://lab.civicrm.org/dev/core/-/issues/4542): + [27381](https://github.com/civicrm/civicrm-core/pull/27381))** + +- **ACLs - Fix recent regression handling "edit all contacts" ([27409](https://github.com/civicrm/civicrm-core/pull/27409))** + +- **Autocomplete - Fix search-by-id for entities without a numeric id ([27629](https://github.com/civicrm/civicrm-core/pull/27629))** + +- **When using a Contribution Page with a Membership Price Set, the contribution + amount information never shows on the thank you page + ([dev/core#4555](https://lab.civicrm.org/dev/core/-/issues/4555): + [27330](https://github.com/civicrm/civicrm-core/pull/27330))** + +- **SearchKit: Totals include test, template and deleted entities, while rows do + not, leading to mismatch + ([dev/core#4559](https://lab.civicrm.org/dev/core/-/issues/4559): + [27383](https://github.com/civicrm/civicrm-core/pull/27383))** + +- **Auto-complete option values aren't available to anonymous users + ([dev/core#3049](https://lab.civicrm.org/dev/core/-/issues/3049): + [26841](https://github.com/civicrm/civicrm-core/pull/26841))** + +- **Add weights on profile fields page to fix notices + ([27452](https://github.com/civicrm/civicrm-core/pull/27452))** + +- **Upgrader - Skip snapshots on some MariaDB env's (roughly: 10.6.0-10.6.5) + ([27404](https://github.com/civicrm/civicrm-core/pull/27404), [27464](https://github.com/civicrm/civicrm-core/pull/27464))** + +- **APIv4: Implicit joins for email_primary, etc cause error + ([dev/core#4562](https://lab.civicrm.org/dev/core/-/issues/4562): + [27399](https://github.com/civicrm/civicrm-core/pull/27399))** + +- **APIv4 - Fix setting nullable/required/default_value field metadata + ([27302](https://github.com/civicrm/civicrm-core/pull/27302))** + +- **Let unset weights give an e-notice + ([26243](https://github.com/civicrm/civicrm-core/pull/26243))** + +- **Add weight to a few more links + ([27216](https://github.com/civicrm/civicrm-core/pull/27216), + [27323](https://github.com/civicrm/civicrm-core/pull/27323), + [27229](https://github.com/civicrm/civicrm-core/pull/27229), + [27283](https://github.com/civicrm/civicrm-core/pull/27283), + [27284](https://github.com/civicrm/civicrm-core/pull/27284) and + [27230](https://github.com/civicrm/civicrm-core/pull/27230))** + +- **Standalone: Fix ACL help/links, tweak Users and Permissions menu + ([27119](https://github.com/civicrm/civicrm-core/pull/27119))** + +- **Improve error handling by using civicrm_api3 not civicrm_api + ([27321](https://github.com/civicrm/civicrm-core/pull/27321))** + +- **Switch to using token for trxn_id, online contribution receipt + ([27295](https://github.com/civicrm/civicrm-core/pull/27295))** + +- **Delete probably-unused TrackingFields.tpl and adds a pre-upgrade message to + warn people ([27233](https://github.com/civicrm/civicrm-core/pull/27233) and + [27276](https://github.com/civicrm/civicrm-core/pull/27276))** + +- **Re-enable any queues that were disabled for background processing, on end + ([27023](https://github.com/civicrm/civicrm-core/pull/27023))** + +- **Update one of our complex confirm tests to use full form flow, fix + discovered failure to send to additional participants + ([27277](https://github.com/civicrm/civicrm-core/pull/27277))** + +- **Replace deprecated RegExp PHPUnit functions for v9 + ([27139](https://github.com/civicrm/civicrm-core/pull/27139))** + +- **Switch menubar search to use APIv4 & delete deprecated v3 'getquick' action + ([26676](https://github.com/civicrm/civicrm-core/pull/26676) and + [27263](https://github.com/civicrm/civicrm-core/pull/27263))** + +- **EntityLookupTrait - Skip queries when looking up id + ([27261](https://github.com/civicrm/civicrm-core/pull/27261))** + +- **PHP8 date range not rendered correctly + ([27228](https://github.com/civicrm/civicrm-core/pull/27228))** + +- **standaloneusers: logout function must be static + ([27265](https://github.com/civicrm/civicrm-core/pull/27265))**s + +- **Afform - make summary tab names less weird + ([27196](https://github.com/civicrm/civicrm-core/pull/27196))** + +- **Afform - Ensure prefill entities are populated correctly ([27615](https://github.com/civicrm/civicrm-core/pull/27615))** + +- **Improve initialization crash message + ([27138](https://github.com/civicrm/civicrm-core/pull/27138))** + +- **Set weight on Note Form + ([27106](https://github.com/civicrm/civicrm-core/pull/27106))** + +- **Make import parser external ID error message more helpful + ([27103](https://github.com/civicrm/civicrm-core/pull/27103))** + +- **Show which extension has a parse error in info.xml + ([27028](https://github.com/civicrm/civicrm-core/pull/27028))** + +- **E:: to make it look after the extension's translation + ([27027](https://github.com/civicrm/civicrm-core/pull/27027))** + +- **Use phpunit when running on PHP 7.3+ + ([27036](https://github.com/civicrm/civicrm-core/pull/27036))** + +- **ScheduledJob - Clean up form code & improve validation + ([26879](https://github.com/civicrm/civicrm-core/pull/26879))** + +- **Fix Domain Organization form for notices & PHP 8 compliance + ([27190](https://github.com/civicrm/civicrm-core/pull/27190))** + +- **Flush Redis `prevnext` cache when clearing `civicrm_cache` + ([27113](https://github.com/civicrm/civicrm-core/pull/27113))** + +- **Pass specific ids rather than ids array + ([27274](https://github.com/civicrm/civicrm-core/pull/27274))** + +- **Fix fatal on Manage Extensions caused by financialacls links + ([27264](https://github.com/civicrm/civicrm-core/pull/27264))** + +- **Fix weight notices on ActivityType (option values) pages + ([27395](https://github.com/civicrm/civicrm-core/pull/27395))** + +- **PseudoConstant - Prevent fatal when entity not available + ([27358](https://github.com/civicrm/civicrm-core/pull/27358))** + +- **SearchKit - Fix autocomplete filters on in-place-edit fields + ([27253](https://github.com/civicrm/civicrm-core/pull/27253))** + +- **Fix sort groups on PHP 8 + ([27210](https://github.com/civicrm/civicrm-core/pull/27210))** + +- **ContactSummary - Fix smarty notices in communication preferences section + ([27209](https://github.com/civicrm/civicrm-core/pull/27209))** + +- **Afform - Fix broken prefill functionality + ([27121](https://github.com/civicrm/civicrm-core/pull/27121))** + +- **E-notice fix - switch order of and params check around + ([27188](https://github.com/civicrm/civicrm-core/pull/27188))** + +- **Fix deprecation notice on ExecuteJob screen + ([27157](https://github.com/civicrm/civicrm-core/pull/27157))** + +- **Fix PHP8.1 repeated notice errors in Table.tpl + ([27137](https://github.com/civicrm/civicrm-core/pull/27137))** + +- **Fix notices, PHP errors on event location tab + ([27212](https://github.com/civicrm/civicrm-core/pull/27212))** + +- **Fix notices on domain.tpl by just adding what we need + ([27189](https://github.com/civicrm/civicrm-core/pull/27189))** + +- **Notice fix - schedule reminders + ([27154](https://github.com/civicrm/civicrm-core/pull/27154))** + +- **Undefined property fix + ([27148](https://github.com/civicrm/civicrm-core/pull/27148))** + +- **Notice fix on contact types browse + ([27153](https://github.com/civicrm/civicrm-core/pull/27153))** + +- **Fix e-notice by removing conditionality + ([27152](https://github.com/civicrm/civicrm-core/pull/27152))** + +- **Windows fix for CRM_Utils_File::isChildPath + ([27102](https://github.com/civicrm/civicrm-core/pull/27102))** + +- **Fix Standalone error handler: remove 5th argument + ([27099](https://github.com/civicrm/civicrm-core/pull/27099))** + +- **Fatal error fixes in PHP 8.1 + ([27077](https://github.com/civicrm/civicrm-core/pull/27077))** + +- **Path fixes + ([27026](https://github.com/civicrm/civicrm-core/pull/27026))** + +- **Fix warning caused by passing null to strpos + ([300](https://github.com/civicrm/civicrm-wordpress/pull/300))** + +- **kcfinder - Fix PHP 8.1 warnings from fastImage + ([368](https://github.com/civicrm/civicrm-packages/pull/368))** + +- **kcfinder - Fix cookies when running on alt HTTP port + ([367](https://github.com/civicrm/civicrm-packages/pull/367))** + +- **Smarty - Fix e-notice in modifier.escape.php + ([366](https://github.com/civicrm/civicrm-packages/pull/366))** + +- **Enotice fix ([27002](https://github.com/civicrm/civicrm-core/pull/27002))** + +- **E-notice fix ([27001](https://github.com/civicrm/civicrm-core/pull/27001))** + +- **E-notice fix, don't skip loading NULL fields + ([27048](https://github.com/civicrm/civicrm-core/pull/27048))** + +- **Fix missing weights on Custom data screen (notices) + ([27428](https://github.com/civicrm/civicrm-core/pull/27428))** + +- **Add weights on profile links (remove notices) + ([27432](https://github.com/civicrm/civicrm-core/pull/27432))** + +- **Fix mistake in just-merged email processor code + ([27408](https://github.com/civicrm/civicrm-core/pull/27408))** + +- **Fix undeclared properties in crufty old report + ([27220](https://github.com/civicrm/civicrm-core/pull/27220))** + +- **ajax.js - Fix undeclared variable + ([27269](https://github.com/civicrm/civicrm-core/pull/27269))** + +- **Move smarty assign to be always assigned (notices) + ([27207](https://github.com/civicrm/civicrm-core/pull/27207))** + +- **Fix undeclared property - use locally scoped variable + ([27090](https://github.com/civicrm/civicrm-core/pull/27090))** + +- **Smarty-notice fix - use array_key_exists + ([27117](https://github.com/civicrm/civicrm-core/pull/27117))** + +- **PHP 8.x fatal fix + bonus smarty consistency + ([27091](https://github.com/civicrm/civicrm-core/pull/27091))** + +### CiviCampaign + +- **avoid double clicks on petition page + ([27251](https://github.com/civicrm/civicrm-core/pull/27251))** + +### CiviCase + +- **Set link weight on manage case + ([27327](https://github.com/civicrm/civicrm-core/pull/27327))** + +- **Cannot add case type in multilingual installation with MariaDB 10.2 strict + mode ([dev/core#2581](https://lab.civicrm.org/dev/core/-/issues/2581): + [27226](https://github.com/civicrm/civicrm-core/pull/27226))** + +### CiviContribute + +- **Add contribution page tokens to contribution tokens + ([27201](https://github.com/civicrm/civicrm-core/pull/27201))** + + Adds contribution page tokens to contribution tokens. + +- **Fix Financial Items incorrectly recorded when using Payment API + ([26987](https://github.com/civicrm/civicrm-core/pull/26987))** + +- **Contribution pages with extra URL parameters lead to incorrect AJAX URL + constructed in buildPaymentBlock – users cannot proceed to pay + ([dev/core#4487](https://lab.civicrm.org/dev/core/-/issues/4487): + [27037](https://github.com/civicrm/civicrm-core/pull/27037))** + +- **Ensure tax_amount is not null + ([26993](https://github.com/civicrm/civicrm-core/pull/26993))** + +- **Fix permission check on Contribution form, clarify underlying functions + ([27013](https://github.com/civicrm/civicrm-core/pull/27013))** + +- **Fix PHP 8.0 implode on ContributionBase + ([27053](https://github.com/civicrm/civicrm-core/pull/27053))** + +- **Show Contribution Page receipt text in offline contribution receipt + ([27173](https://github.com/civicrm/civicrm-core/pull/27173))** + +- **Fix Contribution_Tab links to have weight, improve test + ([27227](https://github.com/civicrm/civicrm-core/pull/27227))** + +### CiviEvent + +- **Registering a participant with Pending event payment gives misleading + information. ([dev/core#3410](https://lab.civicrm.org/dev/core/-/issues/3410): + [27288](https://github.com/civicrm/civicrm-core/pull/27288))** + + Show 0 rather than nothing when paid amount is zero + +- **Event Dashboard: show events that have not ended yet + ([27329](https://github.com/civicrm/civicrm-core/pull/27329))** + + Ensure events that span more than 7 days don't disappear from the Event + Dashboard before the event ends. + +- **Crash when saving repeating event + ([dev/core#4550](https://lab.civicrm.org/dev/core/-/issues/4550): + [27315](https://github.com/civicrm/civicrm-core/pull/27315))** + +- **Replace Event Total with Total Amount on confirm/thankyou pages + ([dev/core#4485](https://lab.civicrm.org/dev/core/-/issues/4485): + [27024](https://github.com/civicrm/civicrm-core/pull/27024))** + +- **View and Edit links for event participants are inconsistent and in some + cases do not allow editing + ([dev/core/#3361](https://lab.civicrm.org/dev/core/-/issues/3361): + [24657](https://github.com/civicrm/civicrm-core/pull/24657))** + +- **Fix variable leakage in online event receipt + ([27443](https://github.com/civicrm/civicrm-core/pull/27443))** + +- **Fix notice on unpaid event + ([27367](https://github.com/civicrm/civicrm-core/pull/27367))** + +- **Fix incorrect event receipt regression + ([27159](https://github.com/civicrm/civicrm-core/pull/27159))** + +- **Fix Manage Events breadcrumb regression + ([27095](https://github.com/civicrm/civicrm-core/pull/27095))** + +- **Manage event - fix too many brackets + ([27061](https://github.com/civicrm/civicrm-core/pull/27061))** + +- **Fix event templates to use end_date token + ([27005](https://github.com/civicrm/civicrm-core/pull/27005))** + +- **Ensure event ID is an integer + ([27363](https://github.com/civicrm/civicrm-core/pull/27363))** + +- **Also add event confirm text as default receipt_text for edit Participant + ([27160](https://github.com/civicrm/civicrm-core/pull/27160))** + +- **Online Event Receipt - Remove deprecated backticks ([27671](https://github.com/civicrm/civicrm-core/pull/27671))** + +### CiviMail + +- **Scheduled Job, fetch_bounces with is_create_activities=1 parameter creates + a new Contact using the Return-path email address which is incorrect + (Work towards [dev/core#2800](https://lab.civicrm.org/dev/core/-/issues/2800): + [27356](https://github.com/civicrm/civicrm-core/pull/27356))** + + Fixes bounce processing to handle verp emails. + +- **Wording changes in the Unsubscribe form + ([27022](https://github.com/civicrm/civicrm-core/pull/27022))** + +- **"New Mailing" - Unsubscribe field doesn't appear ([27626](https://github.com/civicrm/civicrm-core/pull/27626))** + +- **Finish CiviCRM 2.1 deprecation - old-style VERP + ([27318](https://github.com/civicrm/civicrm-core/pull/27318))** + +### CiviMember + +- **Report improvements (Work towards + [dev/core#4536](https://lab.civicrm.org/dev/core/-/issues/4536): + [27169](https://github.com/civicrm/civicrm-core/pull/27169))** + + Fixes the 'Primary Membership' filter options in the Membership Details report + template. + +- **Membership renewal on Feb 29 of a leap year is calculated incorrectly + ([dev/core#4541](https://lab.civicrm.org/dev/core/-/issues/4541): + [27198](https://github.com/civicrm/civicrm-core/pull/27198))** + +- **Add weights to membership type links + ([27231](https://github.com/civicrm/civicrm-core/pull/27231))** + +### Backdrop Integration + +- **Global $language should be an object, not a string + ([dev/backdrop#80](https://lab.civicrm.org/dev/backdrop/-/issues/80): + [27038](https://github.com/civicrm/civicrm-core/pull/27038))** + +### Drupal Integration + +- **phpunit.xml.dist - Fix compatibility with phpunit9 + ([670](https://github.com/civicrm/civicrm-drupal/pull/670))** + +### WordPress Integration + +- **E2E_Core_PathUrlTest::testGetUrl_WpAdmin() fails because CiviCRM routing is + confusing (Work towards + [dev/core#4433](https://lab.civicrm.org/dev/core/-/issues/4433): + [26861](https://github.com/civicrm/civicrm-core/pull/26861))** + +- **Plugin compatibility architecture and loss of locale on "Secondary URLs" + when using Polylang + ([dev/wordpress#143](https://lab.civicrm.org/dev/wordpress/-/issues/143): + [27128](https://github.com/civicrm/civicrm-core/pull/27128) and + [301](https://github.com/civicrm/civicrm-wordpress/pull/301))** + +## <a name="misc"></a>Miscellany + +- **phpunit.xml.dist - Update extensions to use phpunit9 format + ([27133](https://github.com/civicrm/civicrm-core/pull/27133))** + +- **APIv3 - Delete API examples + ([27174](https://github.com/civicrm/civicrm-core/pull/27174))** + +- **EntityLookupTrait - Add isDefined and getDefinition methods + ([27275](https://github.com/civicrm/civicrm-core/pull/27275))** + +- **API - Soft-deprecate civicrm_api() wrapper + ([27180](https://github.com/civicrm/civicrm-core/pull/27180))** + +- **APIv3 Explorer - Delete unused code + ([27181](https://github.com/civicrm/civicrm-core/pull/27181))** + +- **Pass in function values, rather than handling by form-name + ([27092](https://github.com/civicrm/civicrm-core/pull/27092))** + +- **Use new lookup trait to eliminate use of undefined properties + `userDisplayName` + ([27259](https://github.com/civicrm/civicrm-core/pull/27259))** + + +- **Joomla - Add placeholder to fix errors related to deleted file ([27591](https://github.com/civicrm/civicrm-core/pull/27591))** + +- **Upgrader - Add breadcrumb guard ([27518](https://github.com/civicrm/civicrm-core/pull/27518))** + +- **Upgrader - Add multilingual schema updates ([27446](https://github.com/civicrm/civicrm-core/pull/27446))** + +- **CiviCampaign - Refactor civicrm_survey.recontact_interval + ([27268](https://github.com/civicrm/civicrm-core/pull/27268))** + +- **Move regex processing in EmailProcessor to handling class + ([27337](https://github.com/civicrm/civicrm-core/pull/27337))** + +- **Bump recommended PHP version to 8.1, min recommendation to 8.0 + ([26985](https://github.com/civicrm/civicrm-core/pull/26985))** + +- **Add code comments re the cleanup I didn't do + ([27451](https://github.com/civicrm/civicrm-core/pull/27451))** + +- **Fold deprecated function back into the caller + ([27345](https://github.com/civicrm/civicrm-core/pull/27345))** + +- **Replace another badly named undeclared property + ([27215](https://github.com/civicrm/civicrm-core/pull/27215))** + +- **Move no-longer-shared function back to it's form + ([27213](https://github.com/civicrm/civicrm-core/pull/27213))** + +- **Fold private function back into calling function + ([27145](https://github.com/civicrm/civicrm-core/pull/27145))** + +- **Further fix forms to full form flow + ([27256](https://github.com/civicrm/civicrm-core/pull/27256))** + +- **Move form specific code to relevant form (rather than access + mostly-undeclared property) + ([27069](https://github.com/civicrm/civicrm-core/pull/27069))** + +- **Extract `getDiscountID()` + ([27049](https://github.com/civicrm/civicrm-core/pull/27049) and + [27050](https://github.com/civicrm/civicrm-core/pull/27050))** + +- **ScheduledReminders - Rewrite entire form using metadata + ([27003](https://github.com/civicrm/civicrm-core/pull/27003))** + +- **Move form-specific check to form + ([27068](https://github.com/civicrm/civicrm-core/pull/27068))** + +- **Simplify queries of NOT NULL fields + ([27008](https://github.com/civicrm/civicrm-core/pull/27008))** + +- **Clarify doc-block for form variable + ([27051](https://github.com/civicrm/civicrm-core/pull/27051))** + +- **Separate getStatusMessage function + ([27015](https://github.com/civicrm/civicrm-core/pull/27015))** + +- **Added details for sebalis in contributor-key.xml + ([27039](https://github.com/civicrm/civicrm-core/pull/27039))** + +- **Move function to only form that calls it + ([27299](https://github.com/civicrm/civicrm-core/pull/27299))** + +- **Unconditionally assign smarty variable + ([27300](https://github.com/civicrm/civicrm-core/pull/27300))** + +- **Unconditionally assign smarty-var, remove unused variables + ([26051](https://github.com/civicrm/civicrm-core/pull/26051))** + +- **Make function private, after universe search in EmailProcessor + ([27309](https://github.com/civicrm/civicrm-core/pull/27309))** + +- **Make function private to reflect usage + ([27308](https://github.com/civicrm/civicrm-core/pull/27308))** + +- **Declare CRM_Core_Exception in cleanDir, add type hints + ([27306](https://github.com/civicrm/civicrm-core/pull/27306))** + +- **Make splitjob function static & private, Remove a couple of unused variables + ([27304](https://github.com/civicrm/civicrm-core/pull/27304))** + +- **Do the todo (move the function to the trait as suggested + ([27063](https://github.com/civicrm/civicrm-core/pull/27063))** + +- **Api4 - Remove unused key from getFields + ([27060](https://github.com/civicrm/civicrm-core/pull/27060))** + +- **CRM_Core_Form - Remove unused protected properties + ([27191](https://github.com/civicrm/civicrm-core/pull/27191))** + +- **Remove isset from Arb.xml + ([27224](https://github.com/civicrm/civicrm-core/pull/27224))** + +- **Remove some copy & paste code + ([27214](https://github.com/civicrm/civicrm-core/pull/27214))** + +- **Remove Html2text security check, package deleted + ([27218](https://github.com/civicrm/civicrm-core/pull/27218))** + +- **Remove decade-only typo + ([27219](https://github.com/civicrm/civicrm-core/pull/27219))** + +- **Remove some unnecessary variables & pass by ref + ([27273](https://github.com/civicrm/civicrm-core/pull/27273))** + +- **Remove unused profiles from offline event receipts + ([27150](https://github.com/civicrm/civicrm-core/pull/27150))** + +- **Remove unused CONST + ([27301](https://github.com/civicrm/civicrm-core/pull/27301))** + +- **Remove always-true empty check + ([27193](https://github.com/civicrm/civicrm-core/pull/27193))** + +- **Remove unusable assigns (copy & paste I believe) + ([26952](https://github.com/civicrm/civicrm-core/pull/26952))** + +- **Remove broken deprecated function + ([27163](https://github.com/civicrm/civicrm-core/pull/27163))** + +- **Remove use of sometimes-php8-warning causing `_quickConfig` property… (use + `isQuickConfig()` function) + ([27070](https://github.com/civicrm/civicrm-core/pull/27070))** + +- **Remove line that gives error & does nothing + ([27064](https://github.com/civicrm/civicrm-core/pull/27064))** + +- **Remove long-broken function + ([27317](https://github.com/civicrm/civicrm-core/pull/27317))** + +- **Remove unused variable + ([27350](https://github.com/civicrm/civicrm-core/pull/27350))** + +- **Remove unused parameter, pass by reference in private function with one + caller ([27320](https://github.com/civicrm/civicrm-core/pull/27320))** + +- **Remove some unused undefined properties from participant export + ([27298](https://github.com/civicrm/civicrm-core/pull/27298))** + +- **Remove unneeded descriptions and clean up on search forms + ([26292](https://github.com/civicrm/civicrm-core/pull/26292))** + +- **Remove do-nothing code. + ([27047](https://github.com/civicrm/civicrm-core/pull/27047))** + +- **Remove excessive data handling & some unused variables + ([27019](https://github.com/civicrm/civicrm-core/pull/27019))** + +- **Remove unused parse function for Incoming Mail + ([27011](https://github.com/civicrm/civicrm-core/pull/27011))** + +- **Remove unreachable page + ([27305](https://github.com/civicrm/civicrm-core/pull/27305))** + +- **Remove, extraneous: punctuation? + ([27297](https://github.com/civicrm/civicrm-core/pull/27297))** + +- **Delete html2text, not in use + ([370](https://github.com/civicrm/civicrm-packages/pull/370))** + +- **[REF] SearchKit - Cleanup upgrade code + ([27042](https://github.com/civicrm/civicrm-core/pull/27042))** + +- **(REF) civicrm_data.tpl - Stop using Smarty's {php} + ([27052](https://github.com/civicrm/civicrm-core/pull/27052))** + +- **[REF] APIv4 - Simplify entity name gathering + ([27177](https://github.com/civicrm/civicrm-core/pull/27177))** + +- **[REF] Remove unreachable handling + ([27192](https://github.com/civicrm/civicrm-core/pull/27192))** + +- **[REF] - Cleanup managed entities to all go through `hook_civicrm_managed` + and deprecate unnamed entities + ([27254](https://github.com/civicrm/civicrm-core/pull/27254))** + +- **[REF] Convert from session status to deprecation warning + ([27255](https://github.com/civicrm/civicrm-core/pull/27255))** + +- **[REF] Fix Notice Errors on ACL listing page by assigning fields consistently + ([27164](https://github.com/civicrm/civicrm-core/pull/27164))** + +- **[REF] Update Zetacomponents/mail to be 1.9.5 to fix email validation + handling ([27344](https://github.com/civicrm/civicrm-core/pull/27344))** + +- **Revert "[REF] Update Zetacomponents/mail to be 1.9.5 to fix email validation + handling" ([27394](https://github.com/civicrm/civicrm-core/pull/27394))** + +- **REF - Simplify inline conditionals with Elvis + ([27141](https://github.com/civicrm/civicrm-core/pull/27141))** + +- **[REF] Ensure that any NULL values in the title field are fixed prior to + changing the column + ([27368](https://github.com/civicrm/civicrm-core/pull/27368))** + +- **[REF] Improve cron job handling when there is an invalid report instance id + passed to mail_report job + ([27185](https://github.com/civicrm/civicrm-core/pull/27185))** + +- **[REF] Fix infinite loop when trying to load a report instance with an id + that does not exist + ([27184](https://github.com/civicrm/civicrm-core/pull/27184))** + +- **[REF] PCP - Update BAO to use writeRecord/deleteRecord + ([27127](https://github.com/civicrm/civicrm-core/pull/27127))** + +- **[REF] Add pseudoconstant suffixes to xml/dao + ([27172](https://github.com/civicrm/civicrm-core/pull/27172))** + +- **[REF] ðŸŒï¸ CRM_Utils_Array cleanup + ([27187](https://github.com/civicrm/civicrm-core/pull/27187))** + +- **[NFC] Be more confident and informative in the comment for + CRM_Core_Session::set() + ([27313](https://github.com/civicrm/civicrm-core/pull/27313))** + +- **[NFC] Test - Add return type hints to test functions + ([27186](https://github.com/civicrm/civicrm-core/pull/27186))** + +- **(NFC) Test class - Fix inconsistent namespace + ([27055](https://github.com/civicrm/civicrm-core/pull/27055))** + +- **[NFC] Add some email processor hooks tests + ([27097](https://github.com/civicrm/civicrm-core/pull/27097))** + +- **(NFC) Fix random test failures ([27574](https://github.com/civicrm/civicrm-core/pull/27574))** + +- **(NFC) Fix test failure on PHP 7.3 ([27714](https://github.com/civicrm/civicrm-core/pull/27714))** + +- **Update ca-config for better PHP 8.2 support ([27550](https://github.com/civicrm/civicrm-core/pull/27550))** + +- **Add missing weights for `hook_civicrm_links` ([27528](https://github.com/civicrm/civicrm-core/pull/27528), [27544](https://github.com/civicrm/civicrm-core/pull/27544), [27566](https://github.com/civicrm/civicrm-core/pull/27566), [27710](https://github.com/civicrm/civicrm-core/pull/27710))** + +- **Remove old tests that only test test functions + ([27208](https://github.com/civicrm/civicrm-core/pull/27208))** + +- **Concurrency Tests - Update ExternalBatch for symfony/proces v4.1+ (esp + Drupal 10) ([27072](https://github.com/civicrm/civicrm-core/pull/27072))** + +- **Simplify test + ([27205](https://github.com/civicrm/civicrm-core/pull/27205))** + +- **Test fix, towards full form flow + ([27067](https://github.com/civicrm/civicrm-core/pull/27067))** + +- **Remove never called testCleanUp function + ([27206](https://github.com/civicrm/civicrm-core/pull/27206))** + +- **Add test & fix for getOptions on options with a domain id + ([27161](https://github.com/civicrm/civicrm-core/pull/27161))** + +- **Test Cleanup - Refactor out uses of deprecated `callAPIAndDocument()` + ([27176](https://github.com/civicrm/civicrm-core/pull/27176))** + +- **Remove some unused parameters in test class + ([27166](https://github.com/civicrm/civicrm-core/pull/27166))** + +- **ActionScheduleTest - Update for compatibility with PHPUnit 9 + ([27101](https://github.com/civicrm/civicrm-core/pull/27101))** + +- **Unit tests - replace deprecated function with newer one + ([27032](https://github.com/civicrm/civicrm-core/pull/27032))** + +- **Fix forms to call full form flow + ([27250](https://github.com/civicrm/civicrm-core/pull/27250))** + +- **Add form helper for tests + ([27267](https://github.com/civicrm/civicrm-core/pull/27267))** + +- **Fix participantTest to not use transactions + ([27260](https://github.com/civicrm/civicrm-core/pull/27260))** + +- **Participant Form Test fixes + ([27245](https://github.com/civicrm/civicrm-core/pull/27245))** + +- **Superficial clean up in test class + ([27238](https://github.com/civicrm/civicrm-core/pull/27238))** + +- **Cleanup signature for test function `getFormObject` + ([27225](https://github.com/civicrm/civicrm-core/pull/27225))** + +- **Switch tests to use createTestEntity for payment processor + ([27217](https://github.com/civicrm/civicrm-core/pull/27217))** + +- **Add email helper to new form test helper + ([27384](https://github.com/civicrm/civicrm-core/pull/27384))** + +- **Fix financial transfer test to use form flow, allow all pending to transfer + ([27281](https://github.com/civicrm/civicrm-core/pull/27281))** + +- **Fix token consistency test with new lines and <br>s + ([27314](https://github.com/civicrm/civicrm-core/pull/27314))** + +- **Trivial cleanup in EmailProcessorTest + ([27307](https://github.com/civicrm/civicrm-core/pull/27307))** + +- **[test] [cleanup] Move _REQUEST cleanup to tearDown + ([27285](https://github.com/civicrm/civicrm-core/pull/27285))** + +- **Update further tests to additional form flow, lock in bug fix + ([27279](https://github.com/civicrm/civicrm-core/pull/27279))** + +- **Minor cleanup in test + ([27282](https://github.com/civicrm/civicrm-core/pull/27282))** + +## <a name="credits"></a>Credits + +This release was developed by the following code authors: + +AGH Strategies - Alice Frumin, Andie Hunt; ALL IN APPLI admin; Artful Robot - +Rich Lott; cdhassell; Christian Wach; Circle Interactive - Pradeep Nayak; +CiviCRM - Coleman Watts, Tim Otten; CiviDesk - Yashodha Chaku; civiservice.de - +Sebastian Lisken; Coop SymbioTIC - Mathieu Lutfy; Dave D; Humanists UK - Andrew +West; JMA Consulting - Seamus Lee; Just Hope - Phil Morice Brubaker; Lemniscus - +Noah Miller; Megaphone Technology Consulting - Jon Goldberg; MJW Consulting - +Matthew Wire; Progressive Technology Project - Jamie McClelland; Robert J. Lang; +SebastianLisken; Squiffle Consulting - Aidan Saunders; Third Sector Design - +Kurund Jalmi; Wikimedia Foundation - Damilare Adedoyin, Eileen McNaughton, +Wenjun Fan; Wildsight - Lars Sander-Green + +Most authors also reviewed code for this release; in addition, the following +reviewers contributed their comments: + +Agileware - Justin Freeman; Andy Clark; ASMAC (American Society of Music +Arrangers and Composers) - Jeff Kellem; Australian Greens - Andrew +Cormick-Dockery, John Twyman; Francesc Bassas i Bullich; Freeform Solutions - +Herb van den Dool; Guydn; JMA Consulting - Joe Murray, Monish Deb; Korlon - +Stuart Gaston; Megaphone Technology Consulting - Brienne Kordis; Tadpole +Collective - Kevin Cristiano; Third Sector Design - William Mortada; Tobias +Voigt; yurg + +## <a name="feedback"></a>Feedback + +These release notes are edited by Alice Frumin and Andie Hunt. If you'd like +to provide feedback on them, please log in to https://chat.civicrm.org/civicrm +and contact `@agh1`. diff --git a/civicrm/settings/Core.setting.php b/civicrm/settings/Core.setting.php index a8dbafd990bf6582774aa4c87594a44069638d8f..3a7309025b7d51f14abdb234b5077729c7fbc967 100644 --- a/civicrm/settings/Core.setting.php +++ b/civicrm/settings/Core.setting.php @@ -99,7 +99,7 @@ return [ 'pseudoconstant' => [ 'optionGroupName' => 'address_options', ], - 'default' => '12345689101112', + 'default' => '1234568910', 'add' => '4.1', 'title' => ts('Address Fields'), 'is_domain' => 1, diff --git a/civicrm/settings/Search.setting.php b/civicrm/settings/Search.setting.php index 62a97d836297de03f3c8b416390b237e8e40c22c..dfdbb46de98db257c8cdce6af0d02e64dab8b45f 100644 --- a/civicrm/settings/Search.setting.php +++ b/civicrm/settings/Search.setting.php @@ -25,7 +25,7 @@ return [ 'type' => 'Integer', 'quick_form_type' => 'Element', 'html_type' => 'number', - 'default' => 10, + 'default' => 15, 'add' => '4.3', 'title' => ts('Autocomplete Results'), 'is_domain' => 1, @@ -184,7 +184,19 @@ return [ 'pseudoconstant' => [ 'callback' => 'CRM_Core_SelectValues::quicksearchOptions', ], - 'default' => ['sort_name', 'contact_id', 'external_identifier', 'first_name', 'last_name', 'email', 'phone_numeric', 'street_address', 'city', 'postal_code', 'job_title'], + 'default' => [ + 'sort_name', + 'id', + 'external_identifier', + 'first_name', + 'last_name', + 'email_primary.email', + 'phone_primary.phone_numeric', + 'address_primary.street_address', + 'address_primary.city', + 'address_primary.postal_code', + 'job_title', + ], 'add' => '5.8', 'title' => ts('Quicksearch options'), 'is_domain' => '1', diff --git a/civicrm/setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php b/civicrm/setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php index 4f09d7c8328a5b2755b042340ac1628b0c1d9d0e..968a80bd89d3a1e5b93a79849825523bbdd33e73 100644 --- a/civicrm/setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php +++ b/civicrm/setup/plugins/checkRequirements/CheckDbWellFormed.civi-setup.php @@ -13,7 +13,12 @@ if (!defined('CIVI_SETUP')) { ->addListener('civi.setup.checkRequirements', function (\Civi\Setup\Event\CheckRequirementsEvent $e) { \Civi\Setup::log()->info(sprintf('[%s] Handle %s', basename(__FILE__), 'checkRequirements')); - $dbFields = array('db', 'cmsDb'); + $dbFields = ['db']; + + if ($e->getModel()->cms !== 'Standalone') { + $dbFields[] = 'cmsDb'; + } + foreach ($dbFields as $dbField) { $errors = 0; $db = $e->getModel()->{$dbField}; diff --git a/civicrm/setup/res/index.php.txt b/civicrm/setup/res/index.php.txt index 31e3af3e0724b77151751229d439e229da94a534..1af5a24da1b36e002b847655ee1b4e20d4d3b9b6 100644 --- a/civicrm/setup/res/index.php.txt +++ b/civicrm/setup/res/index.php.txt @@ -64,13 +64,60 @@ $classLoader = implode(DIRECTORY_SEPARATOR, [$civiCorePath, 'CRM', 'Core', 'Clas require_once $classLoader; CRM_Core_ClassLoader::singleton()->register(); +function standaloneErrorHandler( + int $errno, + string $errstr, + ?string $errfile, + ?int $errline) { + static $handlingError = FALSE; + if ($handlingError) { + throw new \RuntimeException("Died: error was thrown during error handling"); + } + $config = CRM_Core_Config::singleton(); + if (!$config->debug) { + // For these errors to show, we must be debugging. + return; + } + + $handlingError = TRUE; + $trace = ''; + if ($config->backtrace) { + // Backtrace is configured for errors. + $trace = []; + foreach (array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), 1) as $item) { + $_ = ''; + if (!empty($item['function'])) { + if (!empty($item['class']) && !empty($item['type'])) { + $_ = htmlspecialchars("$item[class]$item[type]$item[function]() "); + } + else { + $_ = htmlspecialchars("$item[function]() "); + } + } + $_ .= "<code>" . htmlspecialchars($item['file']) . '</code> line ' . $item['line']; + $trace[] = $_; + } + $trace = '<pre class=backtrace>' . implode("\n", $trace) . '</pre>'; + } + + if (!isset(Civi::$statics[__FUNCTION__])) { + Civi::$statics[__FUNCTION__] = []; + } + Civi::$statics[__FUNCTION__][] = '<li style="white-space:pre-wrap">' + . htmlspecialchars("$errstr [$errno]\n") . '<code>' . htmlspecialchars($errfile) . "</code> line $errline" + . $trace + . '</li>'; + CRM_Core_Smarty::singleton()->assign('standaloneErrors', implode("\n", Civi::$statics[__FUNCTION__])); + + $handlingError = FALSE; +} + if (file_exists(findStandaloneSettings())) { require_once findStandaloneSettings(); + set_error_handler('standaloneErrorHandler', E_ALL); invoke(); } else { - $coreUrl = '/assets/civicrm/core'; - \Civi\Setup::assertProtocolCompatibility(1.0); \Civi\Setup::init([ @@ -78,8 +125,10 @@ else { 'cms' => 'Standalone', 'srcPath' => $civiCorePath, ]); - $ctrl = \Civi\Setup::instance()->createController()->getCtrl(); + $coreUrl = \Civi\Setup::instance()->getModel()->mandatorySettings['userFrameworkResourceURL']; + + $ctrl = \Civi\Setup::instance()->createController()->getCtrl(); $ctrl->setUrls([ // The URL of this setup controller. May be used for POST-backs 'ctrl' => '/civicrm', /* @todo this had url('civicrm') ? */ diff --git a/civicrm/setup/src/Setup.php b/civicrm/setup/src/Setup.php index 18e38b89641e08b6f5434f614022bbacd266b683..1d7ead79db97aaf0e444cee9cc13437d6263cf27 100644 --- a/civicrm/setup/src/Setup.php +++ b/civicrm/setup/src/Setup.php @@ -77,7 +77,7 @@ class Setup { '/^civi\.setupui\./' => 'run', '/./' => 'fail', ]); - self::$instance->log = $log ? $log : new NullLogger(); + self::$instance->log = $log ?: new NullLogger(); $pluginDir = dirname(__DIR__) . '/plugins'; $pluginFiles = array(); diff --git a/civicrm/sql/civicrm.mysql b/civicrm/sql/civicrm.mysql index ae9301bdd89e62722d2adc3ca8324cac9a9dc19c..fdc591ae7b4ff0a0b203dfaf1b1c66c89801ba01 100644 --- a/civicrm/sql/civicrm.mysql +++ b/civicrm/sql/civicrm.mysql @@ -1062,7 +1062,6 @@ CREATE TABLE `civicrm_survey` ( `title` varchar(255) NOT NULL COMMENT 'Title of the Survey.', `campaign_id` int unsigned DEFAULT NULL COMMENT 'Foreign key to the Campaign.', `activity_type_id` int unsigned DEFAULT NULL COMMENT 'Implicit FK to civicrm_option_value where option_group = activity_type', - `recontact_interval` text COMMENT 'Recontact intervals for each status.', `instructions` text COMMENT 'Script instructions for volunteers to use for the survey.', `release_frequency` int unsigned DEFAULT NULL COMMENT 'Number of days for recurrence of release.', `max_number_of_contacts` int unsigned DEFAULT NULL COMMENT 'Maximum number of contacts to allow for survey.', @@ -1650,8 +1649,15 @@ CREATE TABLE `civicrm_mail_settings` ( `activity_status` varchar(255) COMMENT 'Name of status to use when creating email to activity.', `is_non_case_email_skipped` tinyint NOT NULL DEFAULT 0 COMMENT 'Enabling this option will have CiviCRM skip any emails that do not have the Case ID or Case Hash so that the system will only process emails that can be placed on case records. Any emails that are not processed will be moved to the ignored folder.', `is_contact_creation_disabled_if_no_match` tinyint NOT NULL DEFAULT 0, + `is_active` tinyint NOT NULL DEFAULT 1 COMMENT 'Ignored for bounce processing, only for email-to-activity', + `activity_type_id` int unsigned COMMENT 'Implicit FK to civicrm_option_value where option_group = activity_type', + `campaign_id` int unsigned DEFAULT NULL COMMENT 'Foreign key to the Campaign.', + `activity_source` varchar(4) COMMENT 'Which email recipient to add as the activity source (from, to, cc, bcc).', + `activity_targets` varchar(16) COMMENT 'Which email recipients to add as the activity targets (from, to, cc, bcc).', + `activity_assignees` varchar(16) COMMENT 'Which email recipients to add as the activity assignees (from, to, cc, bcc).', PRIMARY KEY (`id`), - CONSTRAINT FK_civicrm_mail_settings_domain_id FOREIGN KEY (`domain_id`) REFERENCES `civicrm_domain`(`id`) ON DELETE CASCADE + CONSTRAINT FK_civicrm_mail_settings_domain_id FOREIGN KEY (`domain_id`) REFERENCES `civicrm_domain`(`id`) ON DELETE CASCADE, + CONSTRAINT FK_civicrm_mail_settings_campaign_id FOREIGN KEY (`campaign_id`) REFERENCES `civicrm_campaign`(`id`) ON DELETE SET NULL ) ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; @@ -2733,7 +2739,7 @@ ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMA -- *******************************************************/ CREATE TABLE `civicrm_discount` ( `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT 'primary key', - `entity_table` varchar(64) COMMENT 'physical tablename for entity being joined to discount, e.g. civicrm_event', + `entity_table` varchar(64) NOT NULL COMMENT 'physical tablename for entity being joined to discount, e.g. civicrm_event', `entity_id` int unsigned NOT NULL COMMENT 'FK to entity table specified in entity_table column.', `price_set_id` int unsigned NOT NULL COMMENT 'FK to civicrm_price_set', `start_date` date COMMENT 'Date when discount starts.', @@ -2889,7 +2895,7 @@ ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ROW_FORMA -- *******************************************************/ CREATE TABLE `civicrm_action_schedule` ( `id` int unsigned NOT NULL AUTO_INCREMENT, - `name` varchar(64) COMMENT 'Name of the action(reminder)', + `name` varchar(64) NOT NULL COMMENT 'Name of the action(reminder)', `title` varchar(64) COMMENT 'Title of the action(reminder)', `recipient` varchar(64) COMMENT 'Recipient', `limit_to` int COMMENT 'Is this the recipient criteria limited to OR in addition to?', @@ -2931,6 +2937,7 @@ CREATE TABLE `civicrm_action_schedule` ( `effective_start_date` timestamp NULL COMMENT 'Earliest date to consider start events from.', `effective_end_date` timestamp NULL COMMENT 'Latest date to consider end events from.', PRIMARY KEY (`id`), + UNIQUE INDEX `UI_name`(name), CONSTRAINT FK_civicrm_action_schedule_group_id FOREIGN KEY (`group_id`) REFERENCES `civicrm_group`(`id`) ON DELETE SET NULL, CONSTRAINT FK_civicrm_action_schedule_msg_template_id FOREIGN KEY (`msg_template_id`) REFERENCES `civicrm_msg_template`(`id`) ON DELETE SET NULL, CONSTRAINT FK_civicrm_action_schedule_sms_template_id FOREIGN KEY (`sms_template_id`) REFERENCES `civicrm_msg_template`(`id`) ON DELETE SET NULL, @@ -3812,7 +3819,7 @@ CREATE TABLE `civicrm_contribution` ( `check_number` varchar(255), `campaign_id` int unsigned COMMENT 'The campaign for which this contribution has been triggered.', `creditnote_id` varchar(255) COMMENT 'unique credit note id, system generated or passed in', - `tax_amount` decimal(20,2) COMMENT 'Total tax amount of this contribution.', + `tax_amount` decimal(20,2) NOT NULL DEFAULT 0 COMMENT 'Total tax amount of this contribution.', `revenue_recognition_date` datetime COMMENT 'Stores the date when revenue should be recognized.', `is_template` tinyint NOT NULL DEFAULT 0 COMMENT 'Shows this is a template for recurring contributions.', PRIMARY KEY (`id`), @@ -4120,7 +4127,7 @@ CREATE TABLE `civicrm_line_item` ( `price_field_value_id` int unsigned DEFAULT NULL COMMENT 'FK to civicrm_price_field_value', `financial_type_id` int unsigned DEFAULT NULL COMMENT 'FK to Financial Type.', `non_deductible_amount` decimal(20,2) NOT NULL DEFAULT 0.0 COMMENT 'Portion of total amount which is NOT tax deductible.', - `tax_amount` decimal(20,2) COMMENT 'tax of each item', + `tax_amount` decimal(20,2) NOT NULL DEFAULT 0 COMMENT 'tax of each item', `membership_num_terms` int unsigned DEFAULT NULL COMMENT 'Number of terms for this membership (only supported in Order->Payment flow). If the field is NULL it means unknown and it will be assumed to be 1 during payment.create if entity_table is civicrm_membership', PRIMARY KEY (`id`), UNIQUE INDEX `UI_line_item_value`(entity_id, entity_table, contribution_id, price_field_value_id, price_field_id), diff --git a/civicrm/sql/civicrm_data.mysql b/civicrm/sql/civicrm_data.mysql index 1803f377b18defc9ad5225878c57ca7a74967980..da6d3c4e8d5bf1ddac1c2c27d3ba683c8aa7ba5d 100644 --- a/civicrm/sql/civicrm_data.mysql +++ b/civicrm/sql/civicrm_data.mysql @@ -4698,6 +4698,7 @@ INSERT INTO civicrm_location_type (`description`,`display_name`,`is_active`,`is_ ("Other location","Other","1","0","0","Other",NULL), ("Billing Address location","Billing","1","0","1","Billing",NULL) ; + INSERT INTO civicrm_relationship_type (`contact_type_a`,`contact_type_b`,`description`,`is_reserved`,`label_a_b`,`label_b_a`,`name_a_b`,`name_b_a`) VALUES ("Individual","Individual","Parent/child relationship.","0","Child of","Parent of","Child of","Parent of"), ("Individual","Individual","Spousal relationship.","0","Spouse of","Spouse of","Spouse of","Spouse of"), @@ -4710,6 +4711,7 @@ INSERT INTO civicrm_relationship_type (`contact_type_a`,`contact_type_b`,`descri ("Individual","Individual","Case Coordinator","0","Case Coordinator is","Case Coordinator","Case Coordinator is","Case Coordinator"), ("Individual","Individual","Immediate workplace supervisor","0","Supervised by","Supervisor","Supervised by","Supervisor") ; + INSERT INTO civicrm_tag (`description`,`name`,`parent_id`,`used_for`) VALUES ("Any not-for-profit organization.","Non-profit",NULL,"civicrm_contact"), ("For-profit organization.","Company",NULL,"civicrm_contact"), @@ -4717,6 +4719,7 @@ INSERT INTO civicrm_tag (`description`,`name`,`parent_id`,`used_for`) VALUES ("High-value supporter of our organization.","Major Donor",NULL,"civicrm_contact"), ("Active volunteers.","Volunteer",NULL,"civicrm_contact") ; + INSERT INTO civicrm_mailing_component (`body_html`,`body_text`,`component_type`,`is_active`,`is_default`,`name`,`subject`) VALUES ("Sample Header for HTML formatted content.","Sample Header for TEXT formatted content.","Header","1","1","Mailing Header","Descriptive Title for this Header"), ("Sample Footer for HTML formatted content<br/><a href=\"{action.optOutUrl}\">Unsubscribe</a> <br/> {domain.address}","to unsubscribe: {action.optOutUrl}\n{domain.address}","Footer","1","1","Mailing Footer","Descriptive Title for this Footer."), @@ -4727,12 +4730,14 @@ INSERT INTO civicrm_mailing_component (`body_html`,`body_text`,`component_type`, ("Your email address has been removed from {domain.name} mailing lists.","Your email address has been removed from {domain.name} mailing lists.","OptOut","1","1","Opt-out Message","Opt-out Confirmation"), ("This is an automated reply from an un-attended mailbox. Please send any inquiries to the contact email address listed on our web-site.","This is an automated reply from an un-attended mailbox. Please send any inquiries to the contact email address listed on our web-site.","Reply","1","1","Auto-responder","Please Send Inquiries to Our Contact Email Address") ; + INSERT INTO civicrm_financial_type (`is_active`,`is_deductible`,`is_reserved`,`name`) VALUES ("1","1","0","Donation"), ("1","1","0","Member Dues"), ("1","0","0","Campaign Contribution"), ("1","0","0","Event Fee") ; + INSERT INTO civicrm_option_group (`is_active`,`is_reserved`,`name`,`option_value_fields`,`title`) VALUES ("1","1","preferred_communication_method","name,label,description","Preferred Communication Method") ; @@ -4806,7 +4811,8 @@ INSERT INTO civicrm_option_value (`color`,`component_id`,`description`,`domain_i (NULL,NULL,"Emailed Invoice.",NULL,"1",NULL,NULL,"1","0","0","1","Emailed Invoice","Emailed Invoice",@this_option_group_id,"50",NULL,"50"), (NULL,NULL,"Contact Merged",NULL,"1",NULL,NULL,"1","0","0","1","Contact Merged","Contact Merged",@this_option_group_id,"51",NULL,"51"), (NULL,NULL,"Contact was merged into another contact",NULL,"1",NULL,NULL,"1","0","0","1","Contact Deleted by Merge","Contact Deleted by Merge",@this_option_group_id,"52",NULL,"52"), -(NULL,"2","Failed Payment",NULL,"1",NULL,NULL,"1","0","0","1","Failed Payment","Failed Payment",@this_option_group_id,"54",NULL,"54") +(NULL,"2","Failed Payment",NULL,"1",NULL,NULL,"1","0","0","1","Failed Payment","Failed Payment",@this_option_group_id,"54",NULL,"54"), +(NULL,"7","Case client was removed from a case",NULL,"0",NULL,"fa-trash","1","0","0","0","Case Client was removed from Case","Case Client Removed",@this_option_group_id,"55",NULL,"55") ; INSERT INTO civicrm_option_group (`data_type`,`description`,`is_active`,`is_reserved`,`name`,`option_value_fields`,`title`) VALUES ("Integer","CiviCRM is pre-configured with standard options for individual gender (Male, Female, Other). Modify these options as needed for your installation.","1","1","gender","name,label,description","Gender") @@ -6078,6 +6084,7 @@ INSERT INTO civicrm_option_group (`data_type`,`is_active`,`is_reserved`,`name`,` ("Integer","1","1","file_type","name,label,description","File Type") ; + -- CRM-6138 -- -- Generated from languages.tpl @@ -6307,6 +6314,7 @@ INSERT INTO civicrm_option_value (`color`,`component_id`,`description`,`domain_i (NULL,NULL,NULL,NULL,"0",NULL,NULL,"1","0","0","1","Letter Mail","letter_mail",@this_option_group_id,"5",NULL,"5") ; + INSERT INTO civicrm_membership_status (`end_event`,`end_event_adjust_interval`,`end_event_adjust_unit`,`is_active`,`is_admin`,`is_current_member`,`is_default`,`is_reserved`,`label`,`name`,`start_event`,`start_event_adjust_interval`,`start_event_adjust_unit`,`weight`) VALUES ("join_date","3","month","1","0","1","0","0","New","New","join_date",NULL,NULL,"1"), ("end_date",NULL,NULL,"1","0","1","1","0","Current","Current","start_date",NULL,NULL,"2"), @@ -6316,6 +6324,7 @@ INSERT INTO civicrm_membership_status (`end_event`,`end_event_adjust_interval`,` ("join_date",NULL,NULL,"1","0","0","0","1","Cancelled","Cancelled","join_date",NULL,NULL,"6"), (NULL,NULL,NULL,"1","1","0","0","1","Deceased","Deceased",NULL,NULL,NULL,"7") ; + INSERT INTO civicrm_preferences_date (`date_format`,`description`,`end`,`name`,`start`,`time_format`) VALUES ("","Date for relationships. activities. contributions: receive, receipt, cancel. membership: join, start, renew. case: start, end.","10","activityDate","20",""), ("","Date and time for activity: scheduled. participant: registered.","10","activityDateTime","20","1"), @@ -6325,6 +6334,7 @@ INSERT INTO civicrm_preferences_date (`date_format`,`description`,`end`,`name`,` ("","Date and time. Used for scheduling mailings.","1","mailing","0",""), ("","Used in search forms.","20","searchDate","20","") ; + INSERT INTO civicrm_payment_processor_type (`billing_mode`,`class_name`,`description`,`is_active`,`is_default`,`is_recur`,`name`,`password_label`,`signature_label`,`subject_label`,`title`,`url_api_default`,`url_api_test_default`,`url_button_default`,`url_button_test_default`,`url_recur_default`,`url_recur_test_default`,`url_site_default`,`url_site_test_default`,`user_name_label`) VALUES ("4","Payment_PayPalImpl",NULL,"1","0","1","PayPal_Standard",NULL,NULL,NULL,"PayPal - Website Payments Standard",NULL,NULL,NULL,NULL,"https://www.paypal.com/","https://www.sandbox.paypal.com/","https://www.paypal.com/","https://www.sandbox.paypal.com/","Merchant Account Email"), ("3","Payment_PayPalImpl",NULL,"1","0","1","PayPal","Password","Signature",NULL,"PayPal - Website Payments Pro","https://api-3t.paypal.com/","https://api-3t.sandbox.paypal.com/","https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif","https://www.paypal.com/en_US/i/btn/btn_xpressCheckout.gif","https://www.paypal.com/","https://www.sandbox.paypal.com/","https://www.paypal.com/","https://www.sandbox.paypal.com/","User Name"), @@ -6336,6 +6346,7 @@ INSERT INTO civicrm_payment_processor_type (`billing_mode`,`class_name`,`descrip ("1","Payment_FirstData","FirstData (aka linkpoint)","0","0","0","FirstData","certificate path",NULL,NULL,"FirstData (aka linkpoint)",NULL,NULL,NULL,NULL,NULL,NULL,"https://secure.linkpt.net","https://staging.linkpt.net","Store name") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Individual","1","IndividualSupervised","20","Name and Email (reserved)","Supervised") ; @@ -6348,6 +6359,7 @@ INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table (@drgid,"last_name","civicrm_contact","7"), (@drgid,"email","civicrm_email","10") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Organization","0","OrganizationSupervised","10","Name or Email","Supervised") ; @@ -6359,6 +6371,7 @@ INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table (@drgid,"organization_name","civicrm_contact","10"), (@drgid,"email","civicrm_email","10") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Household","0","HouseholdSupervised","10","Name or Email","Supervised") ; @@ -6370,6 +6383,7 @@ INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table (@drgid,"household_name","civicrm_contact","10"), (@drgid,"email","civicrm_email","10") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Individual","1","IndividualUnsupervised","10","Email (reserved)","Unsupervised") ; @@ -6380,6 +6394,7 @@ WHERE (name = "IndividualUnsupervised") INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table`,`rule_weight`) VALUES (@drgid,"email","civicrm_email","10") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Organization","0","OrganizationUnsupervised","10","Name or Email","Unsupervised") ; @@ -6391,6 +6406,7 @@ INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table (@drgid,"organization_name","civicrm_contact","10"), (@drgid,"email","civicrm_email","10") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Household","0","HouseholdUnsupervised","10","Name or Email","Unsupervised") ; @@ -6402,6 +6418,7 @@ INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table (@drgid,"household_name","civicrm_contact","10"), (@drgid,"email","civicrm_email","10") ; + INSERT INTO civicrm_dedupe_rule_group (`contact_type`,`is_reserved`,`name`,`threshold`,`title`,`used`) VALUES ("Individual","1","IndividualGeneral","15","Name and Address (reserved)","General") ; @@ -6417,6 +6434,7 @@ INSERT INTO civicrm_dedupe_rule (`dedupe_rule_group_id`,`rule_field`,`rule_table (@drgid,"suffix_id","civicrm_contact","1") ; + INSERT INTO civicrm_county (`name`,`state_province_id`) VALUES ("Alameda","1004"), ("Contra Costa","1004"), @@ -6426,6 +6444,7 @@ INSERT INTO civicrm_county (`name`,`state_province_id`) VALUES ("Santa Clara","1004") ; + -- Bounce classification patterns INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("AOL Terms of Service complaint","1","AOL") @@ -6437,6 +6456,7 @@ WHERE (name = "AOL") INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"Client TOS Notification") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Recipient is on vacation","30","Away") ; @@ -6448,6 +6468,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"(be|am)? (out of|away from) (the|my)? (office|computer|town)"), (@bounceTypeID,"i am on vacation") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Unable to resolve recipient domain","3","Dns") ; @@ -6462,6 +6483,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"Host or domain name not found"), (@bounceTypeID,"Unable to resolve MX record for") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Unable to deliver to destintation mail server","3","Host") ; @@ -6490,6 +6512,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"server requires authentication"), (@bounceTypeID,"authentication (is )?required") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("User account is no longer active","1","Inactive") ; @@ -6517,6 +6540,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"account that you tried to reach is disabled"), (@bounceTypeID,"User banned") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Email address is not valid","1","Invalid") ; @@ -6579,6 +6603,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"Elektronski naslov (je ukinjen|ne obstaja)"), (@bounceTypeID,"nepravilno nastavljen predal") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Mail routing error","3","Loop") ; @@ -6594,6 +6619,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"message was forwarded more than the maximum allowed times"), (@bounceTypeID,"too many (hops|recursive forwards)") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("User inbox is full","3","Quota") ; @@ -6620,6 +6646,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"exceeded storage allocation"), (@bounceTypeID,"running out of disk space") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Unable to reach destination mail server","3","Relay") ; @@ -6643,6 +6670,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"Rejected by next-hop"), (@bounceTypeID,"not permitted to( *550)? relay through this server") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Message caught by a content filter","1","Spam") ; @@ -6679,6 +6707,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"ni bilo mogo..?e dostaviti zaradi varnostnega pravilnika"), (@bounceTypeID,"abuse report") ; + INSERT INTO civicrm_mailing_bounce_type (`description`,`hold_threshold`,`name`) VALUES ("Error in SMTP transaction","3","Syntax") ; @@ -6692,6 +6721,7 @@ INSERT INTO civicrm_mailing_bounce_pattern (`bounce_type_id`,`pattern`) VALUES (@bounceTypeID,"unknown smtp code") ; + INSERT INTO civicrm_uf_group (`frontend_title`,`group_type`,`help_post`,`id`,`is_cms_user`,`is_reserved`,`name`,`title`) VALUES ("Name and Address","Individual,Contact",NULL,"1","0","0","name_and_address","Name and Address"), ("Supporter Profile","Individual,Contact","<p><strong>The information you provide will NOT be shared with any third party organisations.</strong></p><p>Thank you for getting involved in our campaign!</p>","2","2","0","supporter_profile","Supporter Profile"), @@ -6707,6 +6737,7 @@ INSERT INTO civicrm_uf_group (`frontend_title`,`group_type`,`help_post`,`id`,`is ("Your Registration Info","Individual,Contact",NULL,"12","0","0","event_registration","Your Registration Info"), ("Honoree Individual","Individual,Contact",NULL,"13","0","1","honoree_individual","Honoree Individual") ; + INSERT INTO civicrm_uf_join (`entity_id`,`entity_table`,`is_active`,`module`,`uf_group_id`,`weight`) VALUES (NULL,NULL,"1","User Registration","1","1"), (NULL,NULL,"1","User Account","1","1"), @@ -6714,6 +6745,7 @@ INSERT INTO civicrm_uf_join (`entity_id`,`entity_table`,`is_active`,`module`,`uf (NULL,NULL,"1","Profile","2","2"), (NULL,NULL,"1","Profile","12","11") ; + INSERT INTO civicrm_uf_field (`field_name`,`field_type`,`help_post`,`in_selector`,`is_required`,`is_reserved`,`is_searchable`,`label`,`location_type_id`,`phone_type_id`,`uf_group_id`,`visibility`,`weight`) VALUES ("first_name","Individual",NULL,"0","1","0","0","First Name",NULL,NULL,"1","User and User Admin Only","1"), ("last_name","Individual",NULL,"0","1","0","0","Last Name",NULL,NULL,"1","User and User Admin Only","2"), @@ -6790,6 +6822,7 @@ INSERT INTO civicrm_uf_field (`field_name`,`field_type`,`help_post`,`in_selector ("last_name","Individual",NULL,"0","1","1","0","Last Name",NULL,NULL,"13","User and User Admin Only","3"), ("email","Contact",NULL,"0","0","1","0","Email Address","1",NULL,"13","User and User Admin Only","4") ; + INSERT INTO civicrm_participant_status_type (`class`,`is_active`,`is_counted`,`is_reserved`,`label`,`name`,`visibility_id`,`weight`) VALUES ("Positive","1","1","1","Registered","Registered","1","1"), ("Positive","1","1","0","Attended","Attended","2","2"), @@ -6808,12 +6841,14 @@ INSERT INTO civicrm_participant_status_type (`class`,`is_active`,`is_counted`,`i ("Positive","1","1","1","Pending refund","Pending refund","2","15"), ("Negative","1","0","1","Transferred","Transferred","2","16") ; + INSERT INTO civicrm_contact_type (`icon`,`id`,`image_URL`,`is_active`,`is_reserved`,`label`,`name`,`parent_id`) VALUES ("fa-user","1",NULL,"1","1","Individual","Individual",NULL), ("fa-home","2",NULL,"1","1","Household","Household",NULL), ("fa-building","3",NULL,"1","1","Organization","Organization",NULL) ; + -- +--------------------------------------------------------------------+ -- | Copyright CiviCRM LLC. All rights reserved. | -- | | @@ -7381,7 +7416,10 @@ INSERT INTO civicrm_msg_template ('Contributions - Receipt (off-line)', '{ts}Contribution Receipt{/ts} - {contact.display_name} ', '{assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}{$greeting},{/if} -{ts}Below you will find a receipt for this contribution.{/ts} +{if {contribution.contribution_page_id.receipt_text|boolean}} +{contribution.contribution_page_id.receipt_text} +{else}{ts}Below you will find a receipt for this contribution.{/ts} +{/if} =========================================================== {ts}Contribution Information{/ts} @@ -7427,7 +7465,7 @@ INSERT INTO civicrm_msg_template {if \'{contribution.receipt_date}\'} {ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:"shortdate"} {/if} -{if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)} +{if {contribution.payment_instrument_id|boolean}} {ts}Paid By{/ts}: {contribution.payment_instrument_id:label} {if \'{contribution.check_number}\'} {ts}Check Number{/ts}: {contribution.check_number} @@ -7514,7 +7552,10 @@ INSERT INTO civicrm_msg_template <tr> <td> {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} - <p>{ts}Below you will find a receipt for this contribution.{/ts}</p> + <p> + {if {contribution.contribution_page_id.receipt_text|boolean}}{contribution.contribution_page_id.receipt_text} + {else}{ts}Below you will find a receipt for this contribution.{/ts}{/if} + </p> </td> </tr> <tr> @@ -7656,7 +7697,7 @@ INSERT INTO civicrm_msg_template </tr> {/if} - {if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)} + {if {contribution.payment_instrument_id|boolean}} <tr> <td {$labelStyle}> {ts}Paid By{/ts} @@ -7809,7 +7850,10 @@ INSERT INTO civicrm_msg_template ('Contributions - Receipt (off-line)', '{ts}Contribution Receipt{/ts} - {contact.display_name} ', '{assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}{$greeting},{/if} -{ts}Below you will find a receipt for this contribution.{/ts} +{if {contribution.contribution_page_id.receipt_text|boolean}} +{contribution.contribution_page_id.receipt_text} +{else}{ts}Below you will find a receipt for this contribution.{/ts} +{/if} =========================================================== {ts}Contribution Information{/ts} @@ -7855,7 +7899,7 @@ INSERT INTO civicrm_msg_template {if \'{contribution.receipt_date}\'} {ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:"shortdate"} {/if} -{if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)} +{if {contribution.payment_instrument_id|boolean}} {ts}Paid By{/ts}: {contribution.payment_instrument_id:label} {if \'{contribution.check_number}\'} {ts}Check Number{/ts}: {contribution.check_number} @@ -7942,7 +7986,10 @@ INSERT INTO civicrm_msg_template <tr> <td> {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} - <p>{ts}Below you will find a receipt for this contribution.{/ts}</p> + <p> + {if {contribution.contribution_page_id.receipt_text|boolean}}{contribution.contribution_page_id.receipt_text} + {else}{ts}Below you will find a receipt for this contribution.{/ts}{/if} + </p> </td> </tr> <tr> @@ -8084,7 +8131,7 @@ INSERT INTO civicrm_msg_template </tr> {/if} - {if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)} + {if {contribution.payment_instrument_id|boolean}} <tr> <td {$labelStyle}> {ts}Paid By{/ts} @@ -8291,8 +8338,8 @@ INSERT INTO civicrm_msg_template {ts}Date{/ts}: {$receive_date|crmDate} {/if} -{if !empty($is_monetary) and !empty($trxn_id)} -{ts}Transaction #{/ts}: {$trxn_id} +{if {contribution.trxn_id|boolean}} +{ts}Transaction #{/ts}: {contribution.trxn_id} {/if} {if !empty($is_recur)} @@ -8426,9 +8473,7 @@ INSERT INTO civicrm_msg_template =========================================================== {foreach from=$customPre item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} @@ -8439,9 +8484,7 @@ INSERT INTO civicrm_msg_template =========================================================== {foreach from=$customPost item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -8597,13 +8640,13 @@ INSERT INTO civicrm_msg_template </tr> {/if} - {if !empty($is_monetary) and !empty($trxn_id)} + {if {contribution.trxn_id|boolean}} <tr> <td {$labelStyle}> {ts}Transaction #{/ts} </td> <td {$valueStyle}> - {$trxn_id} + {contribution.trxn_id} </td> </tr> {/if} @@ -8853,7 +8896,6 @@ INSERT INTO civicrm_msg_template </th> </tr> {foreach from=$customPre item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -8862,7 +8904,6 @@ INSERT INTO civicrm_msg_template {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -8873,7 +8914,6 @@ INSERT INTO civicrm_msg_template </th> </tr> {foreach from=$customPost item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -8882,7 +8922,6 @@ INSERT INTO civicrm_msg_template {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -8946,8 +8985,8 @@ INSERT INTO civicrm_msg_template {ts}Date{/ts}: {$receive_date|crmDate} {/if} -{if !empty($is_monetary) and !empty($trxn_id)} -{ts}Transaction #{/ts}: {$trxn_id} +{if {contribution.trxn_id|boolean}} +{ts}Transaction #{/ts}: {contribution.trxn_id} {/if} {if !empty($is_recur)} @@ -9081,9 +9120,7 @@ INSERT INTO civicrm_msg_template =========================================================== {foreach from=$customPre item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} @@ -9094,9 +9131,7 @@ INSERT INTO civicrm_msg_template =========================================================== {foreach from=$customPost item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -9252,13 +9287,13 @@ INSERT INTO civicrm_msg_template </tr> {/if} - {if !empty($is_monetary) and !empty($trxn_id)} + {if {contribution.trxn_id|boolean}} <tr> <td {$labelStyle}> {ts}Transaction #{/ts} </td> <td {$valueStyle}> - {$trxn_id} + {contribution.trxn_id} </td> </tr> {/if} @@ -9508,7 +9543,6 @@ INSERT INTO civicrm_msg_template </th> </tr> {foreach from=$customPre item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -9517,7 +9551,6 @@ INSERT INTO civicrm_msg_template {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -9528,7 +9561,6 @@ INSERT INTO civicrm_msg_template </th> </tr> {foreach from=$customPost item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -9537,7 +9569,6 @@ INSERT INTO civicrm_msg_template {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -12703,7 +12734,7 @@ INSERT INTO civicrm_msg_template ==========================================================={if !empty($pricesetFieldsCount) }===================={/if} {event.title} -{event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} +{event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:"%Y%m%d"}\' === \'{event.start_date|crmDate:"%Y%m%d"}\'}{event.end_date|crmDate:"Time"}{else}{event.end_date}{/if}{/if} {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)} {ts}Participant Role{/ts}: {$event.participant_role} @@ -12732,7 +12763,7 @@ INSERT INTO civicrm_msg_template {/if} -{if !empty($event.is_public)} +{if {event.is_public|boolean}} {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} {ts}Download iCalendar entry for this event.{/ts} {$icalFeed} {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q="gCalendar=1&reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} @@ -12804,14 +12835,14 @@ INSERT INTO civicrm_msg_template {/foreach} {/if} -{if $totalTaxAmount} -{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency} +{if {contribution.tax_amount|boolean}} +{ts}Total Tax Amount{/ts}: {contribution.tax_amount} {/if} {if {event.is_monetary|boolean}} -{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {if {contribution.paid_amount|boolean}}{contribution.paid_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} +{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} {ts}Balance{/ts}: {contribution.balance_amount} -{else}{ts}Total Amount{/ts}: {if {contribution.total_amount|boolean}}{contribution.total_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} +{else}{ts}Total Amount{/ts}: {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} {/if} {if !empty($pricesetFieldsCount) } @@ -12841,8 +12872,8 @@ INSERT INTO civicrm_msg_template {/if} -{if $register_date} -{ts}Registration Date{/ts}: {$register_date|crmDate} +{if {participant.register_date|boolean}} +{ts}Registration Date{/ts}: {participant.register_date} {/if} {if $receive_date} {ts}Transaction Date{/ts}: {$receive_date|crmDate} @@ -12884,62 +12915,6 @@ INSERT INTO civicrm_msg_template {/if} {/if} {* End of conditional section for Paid events *} -{if !empty($customPre)} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{$customPre_grouptitle} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$customPre item=value key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} -{$customName}: {$value} -{/if} -{/foreach} -{/if} - -{if !empty($customPost)} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{$customPost_grouptitle} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$customPost item=value key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} -{$customName}: {$value} -{/if} -{/foreach} -{/if} -{if !empty($customProfile)} - -{foreach from=$customProfile item=value key=customName} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{ts 1=$customName+1}Participant Information - Participant %1{/ts} - -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$value item=val key=field} -{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' } -{if $field eq \'additionalCustomPre\' } -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{$additionalCustomPre_grouptitle} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{else} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{$additionalCustomPost_grouptitle} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{/if} -{foreach from=$val item=v key=f} -{$f}: {$v} -{/foreach} -{/if} -{/foreach} -{/foreach} -{/if} {if !empty($customGroup)} {foreach from=$customGroup item=value key=customName} =========================================================={if !empty($pricesetFieldsCount) }===================={/if} @@ -12979,7 +12954,7 @@ INSERT INTO civicrm_msg_template {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))} - <p>{$event.confirm_email_text|htmlize}</p> + <p>{$event.confirm_email_text}</p> {/if} {if !empty($isOnWaitlist)} @@ -13005,7 +12980,7 @@ INSERT INTO civicrm_msg_template <tr> <td colspan="2" {$valueStyle}> {event.title}<br /> - {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} + {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:"%Y%m%d"}\' === \'{event.start_date|crmDate:"%Y%m%d"}\'}{event.end_date|crmDate:"Time"}{else}{event.end_date}{/if}{/if} </td> </tr> @@ -13089,7 +13064,7 @@ INSERT INTO civicrm_msg_template {/if} - {if !empty($event.is_public)} + {if {event.is_public|boolean}} <tr> <td colspan="2" {$valueStyle}> {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} @@ -13225,13 +13200,13 @@ INSERT INTO civicrm_msg_template </tr> {/foreach} {/if} - {if $totalTaxAmount} + {if {contribution.tax_amount|boolean}} <tr> <td {$labelStyle}> {ts}Total Tax Amount{/ts} </td> <td {$valueStyle}> - {$totalTaxAmount|crmMoney:$currency} + {contribution.tax_amount} </td> </tr> {/if} @@ -13240,7 +13215,7 @@ INSERT INTO civicrm_msg_template <tr> <td {$labelStyle}>{ts}Total Paid{/ts}</td> <td {$valueStyle}> - {if {contribution.paid_amount|boolean}}{contribution.paid_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} + {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} </td> </tr> <tr> @@ -13251,7 +13226,7 @@ INSERT INTO civicrm_msg_template <tr> <td {$labelStyle}>{ts}Total Amount{/ts}</td> <td {$valueStyle}> - {if {contribution.total_amount|boolean}}{contribution.total_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} + {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} </td> </tr> {/if} @@ -13285,13 +13260,13 @@ INSERT INTO civicrm_msg_template </tr> {/if} - {if $register_date} + {if {participant.register_date|boolean}} <tr> <td {$labelStyle}> {ts}Registration Date{/ts} </td> <td {$valueStyle}> - {$register_date|crmDate} + {participant.register_date} </td> </tr> {/if} @@ -13384,79 +13359,6 @@ INSERT INTO civicrm_msg_template {/if} {* End of conditional section for Paid events *} - {if !empty($customPre)} - <tr> - <th {$headerStyle}> - {$customPre_grouptitle} - </th> - </tr> - {foreach from=$customPre item=value key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} - <tr> - <td {$labelStyle}> - {$customName} - </td> - <td {$valueStyle}> - {$value} - </td> - </tr> - {/if} - {/foreach} - {/if} - - {if !empty($customPost)} - <tr> - <th {$headerStyle}> - {$customPost_grouptitle} - </th> - </tr> - {foreach from=$customPost item=value key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} - <tr> - <td {$labelStyle}> - {$customName} - </td> - <td {$valueStyle}> - {$value} - </td> - </tr> - {/if} - {/foreach} - {/if} - - {if !empty($customProfile)} - {foreach from=$customProfile item=value key=customName} - <tr> - <th {$headerStyle}> - {ts 1=$customName+1}Participant Information - Participant %1{/ts} - </th> - </tr> - {foreach from=$value item=val key=field} - {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'} - <tr> - <td colspan="2" {$labelStyle}> - {if $field eq \'additionalCustomPre\'} - {$additionalCustomPre_grouptitle} - {else} - {$additionalCustomPost_grouptitle} - {/if} - </td> - </tr> - {foreach from=$val item=v key=f} - <tr> - <td {$labelStyle}> - {$f} - </td> - <td {$valueStyle}> - {$v} - </td> - </tr> - {/foreach} - {/if} - {/foreach} - {/foreach} - {/if} - {if !empty($customGroup)} {foreach from=$customGroup item=value key=customName} <tr> @@ -13527,7 +13429,7 @@ INSERT INTO civicrm_msg_template ==========================================================={if !empty($pricesetFieldsCount) }===================={/if} {event.title} -{event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} +{event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:"%Y%m%d"}\' === \'{event.start_date|crmDate:"%Y%m%d"}\'}{event.end_date|crmDate:"Time"}{else}{event.end_date}{/if}{/if} {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)} {ts}Participant Role{/ts}: {$event.participant_role} @@ -13556,7 +13458,7 @@ INSERT INTO civicrm_msg_template {/if} -{if !empty($event.is_public)} +{if {event.is_public|boolean}} {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} {ts}Download iCalendar entry for this event.{/ts} {$icalFeed} {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q="gCalendar=1&reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} @@ -13628,14 +13530,14 @@ INSERT INTO civicrm_msg_template {/foreach} {/if} -{if $totalTaxAmount} -{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency} +{if {contribution.tax_amount|boolean}} +{ts}Total Tax Amount{/ts}: {contribution.tax_amount} {/if} {if {event.is_monetary|boolean}} -{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {if {contribution.paid_amount|boolean}}{contribution.paid_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} +{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} {ts}Balance{/ts}: {contribution.balance_amount} -{else}{ts}Total Amount{/ts}: {if {contribution.total_amount|boolean}}{contribution.total_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} +{else}{ts}Total Amount{/ts}: {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} {/if} {if !empty($pricesetFieldsCount) } @@ -13665,8 +13567,8 @@ INSERT INTO civicrm_msg_template {/if} -{if $register_date} -{ts}Registration Date{/ts}: {$register_date|crmDate} +{if {participant.register_date|boolean}} +{ts}Registration Date{/ts}: {participant.register_date} {/if} {if $receive_date} {ts}Transaction Date{/ts}: {$receive_date|crmDate} @@ -13708,62 +13610,6 @@ INSERT INTO civicrm_msg_template {/if} {/if} {* End of conditional section for Paid events *} -{if !empty($customPre)} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{$customPre_grouptitle} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$customPre item=value key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} -{$customName}: {$value} -{/if} -{/foreach} -{/if} - -{if !empty($customPost)} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{$customPost_grouptitle} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$customPost item=value key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} -{$customName}: {$value} -{/if} -{/foreach} -{/if} -{if !empty($customProfile)} - -{foreach from=$customProfile item=value key=customName} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{ts 1=$customName+1}Participant Information - Participant %1{/ts} - -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$value item=val key=field} -{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' } -{if $field eq \'additionalCustomPre\' } -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{$additionalCustomPre_grouptitle} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{else} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{$additionalCustomPost_grouptitle} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{/if} -{foreach from=$val item=v key=f} -{$f}: {$v} -{/foreach} -{/if} -{/foreach} -{/foreach} -{/if} {if !empty($customGroup)} {foreach from=$customGroup item=value key=customName} =========================================================={if !empty($pricesetFieldsCount) }===================={/if} @@ -13803,7 +13649,7 @@ INSERT INTO civicrm_msg_template {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))} - <p>{$event.confirm_email_text|htmlize}</p> + <p>{$event.confirm_email_text}</p> {/if} {if !empty($isOnWaitlist)} @@ -13829,7 +13675,7 @@ INSERT INTO civicrm_msg_template <tr> <td colspan="2" {$valueStyle}> {event.title}<br /> - {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} + {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:"%Y%m%d"}\' === \'{event.start_date|crmDate:"%Y%m%d"}\'}{event.end_date|crmDate:"Time"}{else}{event.end_date}{/if}{/if} </td> </tr> @@ -13913,7 +13759,7 @@ INSERT INTO civicrm_msg_template {/if} - {if !empty($event.is_public)} + {if {event.is_public|boolean}} <tr> <td colspan="2" {$valueStyle}> {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} @@ -14049,13 +13895,13 @@ INSERT INTO civicrm_msg_template </tr> {/foreach} {/if} - {if $totalTaxAmount} + {if {contribution.tax_amount|boolean}} <tr> <td {$labelStyle}> {ts}Total Tax Amount{/ts} </td> <td {$valueStyle}> - {$totalTaxAmount|crmMoney:$currency} + {contribution.tax_amount} </td> </tr> {/if} @@ -14064,7 +13910,7 @@ INSERT INTO civicrm_msg_template <tr> <td {$labelStyle}>{ts}Total Paid{/ts}</td> <td {$valueStyle}> - {if {contribution.paid_amount|boolean}}{contribution.paid_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} + {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} </td> </tr> <tr> @@ -14075,7 +13921,7 @@ INSERT INTO civicrm_msg_template <tr> <td {$labelStyle}>{ts}Total Amount{/ts}</td> <td {$valueStyle}> - {if {contribution.total_amount|boolean}}{contribution.total_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} + {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} </td> </tr> {/if} @@ -14109,13 +13955,13 @@ INSERT INTO civicrm_msg_template </tr> {/if} - {if $register_date} + {if {participant.register_date|boolean}} <tr> <td {$labelStyle}> {ts}Registration Date{/ts} </td> <td {$valueStyle}> - {$register_date|crmDate} + {participant.register_date} </td> </tr> {/if} @@ -14208,79 +14054,6 @@ INSERT INTO civicrm_msg_template {/if} {* End of conditional section for Paid events *} - {if !empty($customPre)} - <tr> - <th {$headerStyle}> - {$customPre_grouptitle} - </th> - </tr> - {foreach from=$customPre item=value key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} - <tr> - <td {$labelStyle}> - {$customName} - </td> - <td {$valueStyle}> - {$value} - </td> - </tr> - {/if} - {/foreach} - {/if} - - {if !empty($customPost)} - <tr> - <th {$headerStyle}> - {$customPost_grouptitle} - </th> - </tr> - {foreach from=$customPost item=value key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} - <tr> - <td {$labelStyle}> - {$customName} - </td> - <td {$valueStyle}> - {$value} - </td> - </tr> - {/if} - {/foreach} - {/if} - - {if !empty($customProfile)} - {foreach from=$customProfile item=value key=customName} - <tr> - <th {$headerStyle}> - {ts 1=$customName+1}Participant Information - Participant %1{/ts} - </th> - </tr> - {foreach from=$value item=val key=field} - {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'} - <tr> - <td colspan="2" {$labelStyle}> - {if $field eq \'additionalCustomPre\'} - {$additionalCustomPre_grouptitle} - {else} - {$additionalCustomPost_grouptitle} - {/if} - </td> - </tr> - {foreach from=$val item=v key=f} - <tr> - <td {$labelStyle}> - {$f} - </td> - <td {$valueStyle}> - {$v} - </td> - </tr> - {/foreach} - {/if} - {/foreach} - {/foreach} - {/if} - {if !empty($customGroup)} {foreach from=$customGroup item=value key=customName} <tr> @@ -14544,9 +14317,7 @@ You were registered by: {$payer.name} ==========================================================={if !empty($pricesetFieldsCount)}===================={/if} {foreach from=$customPr item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/foreach} {/if} @@ -14559,9 +14330,7 @@ You were registered by: {$payer.name} ==========================================================={if !empty($pricesetFieldsCount)}===================={/if} {foreach from=$customPos item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/foreach} {/if} @@ -14591,7 +14360,7 @@ You were registered by: {$payer.name} {if !empty($event.allow_selfcancelxfer) } {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if} - {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture} + {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture} {ts}Transfer or cancel your registration:{/ts} {$selfService} {/if} ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -14622,8 +14391,8 @@ You were registered by: {$payer.name} <td> {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} - {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))} - <p>{$event.confirm_email_text|htmlize}</p> + {if {event.confirm_email_text|boolean} AND (empty($isOnWaitlist) AND empty($isRequireApproval))} + <p>{event.confirm_email_text}</p> {else} <p>{ts}Thank you for your registration.{/ts} @@ -14660,7 +14429,7 @@ You were registered by: {$payer.name} <tr> <td colspan="2" {$valueStyle}> {event.title}<br /> - {event.start_date|crmDate:"%A"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:"%A"} {$event.event_end_date|crmDate}{/if}{/if} + {event.start_date|crmDate:"%A"} {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:"%Y%m%d"}\' === \'{event.start_date|crmDate:"%Y%m%d"}\'}{event.end_date|crmDate:"Time"}{else}{event.end_date|crmDate:"%A"} {event.end_date|crmDate}{/if}{/if} </td> </tr> @@ -14785,12 +14554,12 @@ You were registered by: {$payer.name} </tr> {if $isShowLineItems} - {foreach from=$participants key=index item=participant} - {if $isPrimary || {participant.id} === $participant.id} + {foreach from=$participants key=index item=currentParticipant} + {if $isPrimary || {participant.id} === $currentParticipant.id} {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *} <tr> <td colspan="2" {$labelStyle}> - {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name} + {ts 1=$currentParticipant.index}Participant %1{/ts} {$currentParticipant.contact.display_name} </td> </tr> {/if} @@ -14809,7 +14578,7 @@ You were registered by: {$payer.name} <th>{ts}Total{/ts}</th> {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if} </tr> - {foreach from=$participant.line_items item=line} + {foreach from=$currentParticipant.line_items item=line} <tr> <td {$tdfirstStyle}>{$line.title}</td> <td {$tdStyle} align="middle">{$line.qty}</td> @@ -14830,9 +14599,9 @@ You were registered by: {$payer.name} {if $isShowTax} <tr {$participantTotal}> <td colspan=3>{ts}Participant Total{/ts}</td> - <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td> - <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td> - <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td> + <td colspan=2>{$currentParticipant.totals.total_amount_exclusive|crmMoney}</td> + <td colspan=1>{$currentParticipant.totals.tax_amount|crmMoney}</td> + <td colspan=2>{$currentParticipant.totals.total_amount_inclusive|crmMoney}</td> </tr> {/if} </table> @@ -15018,12 +14787,10 @@ You were registered by: {$payer.name} {foreach from=$customPre item=customPr key=i} <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr> {foreach from=$customPr item=customValue key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} <tr> <td {$labelStyle}>{$customName}</td> <td {$valueStyle}>{$customValue}</td> </tr> - {/if} {/foreach} {/foreach} {/if} @@ -15032,13 +14799,11 @@ You were registered by: {$payer.name} {foreach from=$customPost item=customPos key=j} <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr> {foreach from=$customPos item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} <tr> <td {$labelStyle}>{$customName}</td> <td {$valueStyle}>{$customValue}</td> </tr> -{/if} -{/foreach} + {/foreach} {/foreach} {/if} @@ -15063,7 +14828,7 @@ You were registered by: {$payer.name} <tr> <td colspan="2" {$valueStyle}> {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br /> - {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`{participant.id}`&{contact.checksum}" h=0 a=1 fe=1}{/capture} + {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture} <a href="{$selfService}">{ts}Click here to transfer or cancel your registration.{/ts}</a> </td> </tr> @@ -15305,9 +15070,7 @@ You were registered by: {$payer.name} ==========================================================={if !empty($pricesetFieldsCount)}===================={/if} {foreach from=$customPr item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/foreach} {/if} @@ -15320,9 +15083,7 @@ You were registered by: {$payer.name} ==========================================================={if !empty($pricesetFieldsCount)}===================={/if} {foreach from=$customPos item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/foreach} {/if} @@ -15352,7 +15113,7 @@ You were registered by: {$payer.name} {if !empty($event.allow_selfcancelxfer) } {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if} - {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture} + {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture} {ts}Transfer or cancel your registration:{/ts} {$selfService} {/if} ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -15383,8 +15144,8 @@ You were registered by: {$payer.name} <td> {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} - {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))} - <p>{$event.confirm_email_text|htmlize}</p> + {if {event.confirm_email_text|boolean} AND (empty($isOnWaitlist) AND empty($isRequireApproval))} + <p>{event.confirm_email_text}</p> {else} <p>{ts}Thank you for your registration.{/ts} @@ -15421,7 +15182,7 @@ You were registered by: {$payer.name} <tr> <td colspan="2" {$valueStyle}> {event.title}<br /> - {event.start_date|crmDate:"%A"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:"%A"} {$event.event_end_date|crmDate}{/if}{/if} + {event.start_date|crmDate:"%A"} {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:"%Y%m%d"}\' === \'{event.start_date|crmDate:"%Y%m%d"}\'}{event.end_date|crmDate:"Time"}{else}{event.end_date|crmDate:"%A"} {event.end_date|crmDate}{/if}{/if} </td> </tr> @@ -15546,12 +15307,12 @@ You were registered by: {$payer.name} </tr> {if $isShowLineItems} - {foreach from=$participants key=index item=participant} - {if $isPrimary || {participant.id} === $participant.id} + {foreach from=$participants key=index item=currentParticipant} + {if $isPrimary || {participant.id} === $currentParticipant.id} {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *} <tr> <td colspan="2" {$labelStyle}> - {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name} + {ts 1=$currentParticipant.index}Participant %1{/ts} {$currentParticipant.contact.display_name} </td> </tr> {/if} @@ -15570,7 +15331,7 @@ You were registered by: {$payer.name} <th>{ts}Total{/ts}</th> {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if} </tr> - {foreach from=$participant.line_items item=line} + {foreach from=$currentParticipant.line_items item=line} <tr> <td {$tdfirstStyle}>{$line.title}</td> <td {$tdStyle} align="middle">{$line.qty}</td> @@ -15591,9 +15352,9 @@ You were registered by: {$payer.name} {if $isShowTax} <tr {$participantTotal}> <td colspan=3>{ts}Participant Total{/ts}</td> - <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td> - <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td> - <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td> + <td colspan=2>{$currentParticipant.totals.total_amount_exclusive|crmMoney}</td> + <td colspan=1>{$currentParticipant.totals.tax_amount|crmMoney}</td> + <td colspan=2>{$currentParticipant.totals.total_amount_inclusive|crmMoney}</td> </tr> {/if} </table> @@ -15779,12 +15540,10 @@ You were registered by: {$payer.name} {foreach from=$customPre item=customPr key=i} <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr> {foreach from=$customPr item=customValue key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} <tr> <td {$labelStyle}>{$customName}</td> <td {$valueStyle}>{$customValue}</td> </tr> - {/if} {/foreach} {/foreach} {/if} @@ -15793,13 +15552,11 @@ You were registered by: {$payer.name} {foreach from=$customPost item=customPos key=j} <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr> {foreach from=$customPos item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} <tr> <td {$labelStyle}>{$customName}</td> <td {$valueStyle}>{$customValue}</td> </tr> -{/if} -{/foreach} + {/foreach} {/foreach} {/if} @@ -15824,7 +15581,7 @@ You were registered by: {$payer.name} <tr> <td colspan="2" {$valueStyle}> {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br /> - {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid=`{participant.id}`&{contact.checksum}" h=0 a=1 fe=1}{/capture} + {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture} <a href="{$selfService}">{ts}Click here to transfer or cancel your registration.{/ts}</a> </td> </tr> @@ -19102,9 +18859,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> =========================================================== {foreach from=$customPre item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} @@ -19115,9 +18870,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> =========================================================== {foreach from=$customPost item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -19634,7 +19387,6 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> </th> </tr> {foreach from=$customPre item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -19643,7 +19395,6 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -19896,9 +19647,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> =========================================================== {foreach from=$customPre item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} @@ -19909,9 +19658,7 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> =========================================================== {foreach from=$customPost item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} ', '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -20428,7 +20175,6 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> </th> </tr> {foreach from=$customPre item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -20437,7 +20183,6 @@ or want to inquire about reinstating your registration for this event.{/ts}</p> {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -23038,6 +22783,7 @@ INSERT INTO civicrm_job (`api_action`,`api_entity`,`description`,`domain_id`,`is ("update_email_resetdate","Mailing","Updates the reset_date on an email address to indicate that there was a valid delivery to this email address.",@domainID,"0",NULL,"Validate Email Address from Mailings.","minDays, maxDays=Consider mailings that have completed between minDays and maxDays","Daily") ; + -- financial accounts SELECT @option_group_id_fat := max(id) from civicrm_option_group where name = 'financial_account_type'; SELECT @opval := value FROM civicrm_option_value WHERE name = 'Revenue' and option_group_id = @option_group_id_fat; @@ -23062,6 +22808,7 @@ INSERT INTO civicrm_financial_account (`account_type_code`,`accounting_code`,`co ("OCLIAB","2740",@contactID,"Membership revenue to be recognized in future months",@opLiability,"1","0","0","0","Deferred Revenue - Member Dues") ; + SELECT @option_group_id_arel := max(id) from civicrm_option_group where name = 'account_relationship'; SELECT @option_value_rel_id := value FROM civicrm_option_value WHERE option_group_id = @option_group_id_arel AND name = 'Income Account is'; SELECT @option_value_rel_id_exp := value FROM civicrm_option_value WHERE option_group_id = @option_group_id_arel AND name = 'Expense Account is'; @@ -23157,6 +22904,7 @@ INSERT IGNORE INTO civicrm_extension (`file`,`full_name`,`is_active`,`label`,`na ("civi_pledge","civi_pledge","1","CiviPledge","CiviPledge","module"), ("civi_report","civi_report","1","CiviReport","CiviReport","module") ; + INSERT INTO civicrm_option_group (`is_active`,`is_reserved`,`name`,`option_value_fields`,`title`) VALUES ("1","1","soft_credit_type","name,label,description","Soft Credit Types") ; @@ -23177,6 +22925,7 @@ INSERT INTO civicrm_option_value (`color`,`component_id`,`description`,`domain_i (NULL,NULL,NULL,NULL,"0",NULL,NULL,"1","0","0","1","Personal Campaign Page","pcp",@this_option_group_id,"10",NULL,"10"), (NULL,NULL,NULL,NULL,"0",NULL,NULL,"1","0","0","1","Gift","gift",@this_option_group_id,"11",NULL,"11") ; + INSERT INTO civicrm_option_group (`is_active`,`is_reserved`,`name`,`option_value_fields`,`title`) VALUES ("1","1","recent_items_providers","name,label,description","Recent Items Providers") ; @@ -23545,8 +23294,8 @@ SET @usersPermslastID:=LAST_INSERT_ID(); INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) VALUES - ( @domainID, 'civicrm/admin/access?reset=1', 'Permissions (Access Control)', 'Permissions (Access Control)', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 1 ), - ( @domainID, 'civicrm/admin/synchUser?reset=1', 'Synchronize Users to Contacts', 'Synchronize Users to Contacts', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 2 ); + ( @domainID, 'civicrm/admin/access?reset=1', 'Access Control Lists', 'Permissions (Access Control)', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 5 ), + ( @domainID, 'civicrm/admin/synchUser?reset=1', 'Synchronize Users to Contacts', 'Synchronize Users to Contacts', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 10 ); INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) @@ -23952,4 +23701,4 @@ INSERT INTO `civicrm_report_instance` ( `domain_id`, `title`, `report_id`, `description`, `permission`, `form_values`) VALUES ( @domainID, 'Survey Details', 'survey/detail', 'Detailed report for canvassing, phone-banking, walk lists or other surveys.', 'access CiviReport', 'a:39:{s:6:"fields";a:2:{s:9:"sort_name";s:1:"1";s:6:"result";s:1:"1";}s:22:"assignee_contact_id_op";s:2:"eq";s:25:"assignee_contact_id_value";s:0:"";s:12:"sort_name_op";s:3:"has";s:15:"sort_name_value";s:0:"";s:17:"street_number_min";s:0:"";s:17:"street_number_max";s:0:"";s:16:"street_number_op";s:3:"lte";s:19:"street_number_value";s:0:"";s:14:"street_name_op";s:3:"has";s:17:"street_name_value";s:0:"";s:15:"postal_code_min";s:0:"";s:15:"postal_code_max";s:0:"";s:14:"postal_code_op";s:3:"lte";s:17:"postal_code_value";s:0:"";s:7:"city_op";s:3:"has";s:10:"city_value";s:0:"";s:20:"state_province_id_op";s:2:"in";s:23:"state_province_id_value";a:0:{}s:13:"country_id_op";s:2:"in";s:16:"country_id_value";a:0:{}s:12:"survey_id_op";s:2:"in";s:15:"survey_id_value";a:0:{}s:12:"status_id_op";s:2:"eq";s:15:"status_id_value";s:1:"1";s:11:"custom_1_op";s:2:"in";s:14:"custom_1_value";a:0:{}s:11:"custom_2_op";s:2:"in";s:14:"custom_2_value";a:0:{}s:17:"custom_3_relative";s:1:"0";s:13:"custom_3_from";s:0:"";s:11:"custom_3_to";s:0:"";s:11:"description";s:75:"Detailed report for canvassing, phone-banking, walk lists or other surveys.";s:13:"email_subject";s:0:"";s:8:"email_to";s:0:"";s:8:"email_cc";s:0:"";s:10:"permission";s:17:"access CiviReport";s:6:"groups";s:0:"";s:9:"domain_id";i:1;}'); -UPDATE civicrm_domain SET version = '5.65.2'; +UPDATE civicrm_domain SET version = '5.66.0'; diff --git a/civicrm/sql/civicrm_data/civicrm_option_group/activity_type.sqldata.php b/civicrm/sql/civicrm_data/civicrm_option_group/activity_type.sqldata.php index eb33c6d5c146b7e88b36bbf47db7cd35a5cf7680..0dae02cea2ae3012d1dd0b9bcb1632d4789bf959 100644 --- a/civicrm/sql/civicrm_data/civicrm_option_group/activity_type.sqldata.php +++ b/civicrm/sql/civicrm_data/civicrm_option_group/activity_type.sqldata.php @@ -469,5 +469,13 @@ return CRM_Core_CodeGen_OptionGroup::create('activity_type', 'a/0002') 'is_reserved' => 1, 'component_id' => 2, ], + [ + 'label' => ts('Case Client was removed from Case'), + 'value' => 55, + 'name' => 'Case Client Removed', + 'description' => ts('Case client was removed from a case'), + 'component_id' => 7, + 'icon' => 'fa-trash', + ], ]) ->syncColumns('fill', ['value' => 'weight']); diff --git a/civicrm/sql/civicrm_generated.mysql b/civicrm/sql/civicrm_generated.mysql index 81cf4e35bcc00e9a1c4c67ceb69b60c7599290dd..e0cb5a53a47f78905241acacde85480cc2f0e15c 100644 --- a/civicrm/sql/civicrm_generated.mysql +++ b/civicrm/sql/civicrm_generated.mysql @@ -53,7 +53,7 @@ LOCK TABLES `civicrm_acl_entity_role` WRITE; /*!40000 ALTER TABLE `civicrm_acl_entity_role` DISABLE KEYS */; INSERT INTO `civicrm_acl_entity_role` (`id`, `acl_role_id`, `entity_table`, `entity_id`, `is_active`) VALUES (1,1,'civicrm_group',1,1), - (2,868,'civicrm_group',4,1); + (2,869,'civicrm_group',4,1); /*!40000 ALTER TABLE `civicrm_acl_entity_role` ENABLE KEYS */; UNLOCK TABLES; @@ -82,647 +82,647 @@ UNLOCK TABLES; LOCK TABLES `civicrm_activity` WRITE; /*!40000 ALTER TABLE `civicrm_activity` DISABLE KEYS */; INSERT INTO `civicrm_activity` (`id`, `source_record_id`, `activity_type_id`, `subject`, `activity_date_time`, `duration`, `location`, `phone_id`, `phone_number`, `details`, `status_id`, `priority_id`, `parent_id`, `is_test`, `medium_id`, `is_auto`, `relationship_id`, `is_current_revision`, `original_id`, `result`, `is_deleted`, `campaign_id`, `engagement_level`, `weight`, `is_star`, `created_date`, `modified_date`) VALUES - (1,NULL,22,'Subject for Print/Merge Document','2023-08-10 23:44:03',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (2,NULL,1,'Subject for Meeting','2023-03-25 19:00:57',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (3,NULL,2,'Subject for Phone Call','2023-07-16 17:02:44',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (4,NULL,9,'Subject for Tell a Friend','2023-03-25 00:23:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (5,NULL,55,'Subject for Interview','2023-08-18 19:20:37',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (6,NULL,2,'Subject for Phone Call','2022-09-10 13:13:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (7,NULL,1,'Subject for Meeting','2023-05-14 13:42:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (8,NULL,2,'Subject for Phone Call','2022-09-27 18:13:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (9,NULL,22,'Subject for Print/Merge Document','2023-04-30 15:01:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (10,NULL,9,'Subject for Tell a Friend','2023-05-05 04:43:36',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (11,NULL,1,'Subject for Meeting','2023-01-29 18:28:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (12,NULL,9,'Subject for Tell a Friend','2023-02-16 18:11:03',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (13,NULL,22,'Subject for Print/Merge Document','2022-10-11 20:10:40',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (14,NULL,9,'Subject for Tell a Friend','2023-06-01 00:44:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (15,NULL,2,'Subject for Phone Call','2023-07-06 03:39:38',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (16,NULL,22,'Subject for Print/Merge Document','2023-07-30 06:33:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (17,NULL,55,'Subject for Interview','2023-03-20 16:30:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (18,NULL,55,'Subject for Interview','2022-09-27 01:21:01',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (19,NULL,1,'Subject for Meeting','2023-03-30 21:44:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (20,NULL,22,'Subject for Print/Merge Document','2023-07-14 12:33:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (21,NULL,9,'Subject for Tell a Friend','2023-05-24 08:26:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (22,NULL,9,'Subject for Tell a Friend','2022-09-16 08:07:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (23,NULL,55,'Subject for Interview','2023-04-17 19:12:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (24,NULL,55,'Subject for Interview','2023-06-22 02:55:28',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (25,NULL,22,'Subject for Print/Merge Document','2023-04-20 04:40:38',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (26,NULL,22,'Subject for Print/Merge Document','2023-01-09 17:05:07',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (27,NULL,55,'Subject for Interview','2022-10-19 11:59:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (28,NULL,22,'Subject for Print/Merge Document','2022-10-10 08:39:00',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (29,NULL,2,'Subject for Phone Call','2023-05-15 10:14:19',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (30,NULL,1,'Subject for Meeting','2023-08-24 17:02:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (31,NULL,1,'Subject for Meeting','2023-03-21 08:02:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (32,NULL,1,'Subject for Meeting','2023-01-07 12:49:11',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (33,NULL,22,'Subject for Print/Merge Document','2022-10-18 18:21:24',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (34,NULL,1,'Subject for Meeting','2022-09-24 16:08:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01'), - (35,NULL,1,'Subject for Meeting','2023-02-24 08:11:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (36,NULL,1,'Subject for Meeting','2023-06-11 13:04:16',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (37,NULL,9,'Subject for Tell a Friend','2022-09-08 07:08:02',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (38,NULL,1,'Subject for Meeting','2023-04-24 12:54:08',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (39,NULL,1,'Subject for Meeting','2022-11-10 02:12:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (40,NULL,9,'Subject for Tell a Friend','2023-04-26 15:29:52',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (41,NULL,55,'Subject for Interview','2023-01-05 07:04:28',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (42,NULL,22,'Subject for Print/Merge Document','2023-03-16 13:22:24',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (43,NULL,1,'Subject for Meeting','2023-01-03 03:43:54',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (44,NULL,9,'Subject for Tell a Friend','2023-05-28 16:25:10',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (45,NULL,9,'Subject for Tell a Friend','2023-03-26 03:14:38',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (46,NULL,9,'Subject for Tell a Friend','2023-05-17 03:49:09',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (47,NULL,1,'Subject for Meeting','2022-09-20 21:17:11',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (48,NULL,55,'Subject for Interview','2023-04-06 23:53:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (49,NULL,55,'Subject for Interview','2023-08-03 10:09:15',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (50,NULL,1,'Subject for Meeting','2023-06-12 10:50:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (51,NULL,55,'Subject for Interview','2023-07-27 20:51:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (52,NULL,1,'Subject for Meeting','2023-01-16 13:03:44',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (53,NULL,1,'Subject for Meeting','2023-03-20 19:10:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (54,NULL,1,'Subject for Meeting','2023-04-25 04:40:14',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (55,NULL,22,'Subject for Print/Merge Document','2023-01-19 23:26:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (56,NULL,1,'Subject for Meeting','2023-08-11 04:25:04',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (57,NULL,1,'Subject for Meeting','2023-08-16 09:28:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (58,NULL,22,'Subject for Print/Merge Document','2023-03-07 23:34:22',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (59,NULL,22,'Subject for Print/Merge Document','2023-03-21 09:59:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (60,NULL,22,'Subject for Print/Merge Document','2023-02-22 07:14:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (61,NULL,22,'Subject for Print/Merge Document','2023-03-20 22:07:24',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (62,NULL,1,'Subject for Meeting','2022-12-06 13:29:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (63,NULL,9,'Subject for Tell a Friend','2022-10-15 21:54:58',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (64,NULL,22,'Subject for Print/Merge Document','2023-03-11 20:46:04',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (65,NULL,22,'Subject for Print/Merge Document','2023-07-17 15:09:21',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (66,NULL,9,'Subject for Tell a Friend','2023-08-24 08:42:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (67,NULL,9,'Subject for Tell a Friend','2023-05-08 01:44:09',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (68,NULL,1,'Subject for Meeting','2023-05-31 06:33:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (69,NULL,22,'Subject for Print/Merge Document','2023-02-22 20:40:41',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (70,NULL,22,'Subject for Print/Merge Document','2023-05-10 00:12:44',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (71,NULL,55,'Subject for Interview','2022-10-26 18:44:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (72,NULL,55,'Subject for Interview','2022-11-27 06:51:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (73,NULL,9,'Subject for Tell a Friend','2023-01-28 18:55:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (74,NULL,2,'Subject for Phone Call','2022-11-04 22:10:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (75,NULL,9,'Subject for Tell a Friend','2023-01-05 04:02:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (76,NULL,2,'Subject for Phone Call','2023-09-05 08:27:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (77,NULL,9,'Subject for Tell a Friend','2023-07-14 01:15:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (78,NULL,55,'Subject for Interview','2022-12-29 03:33:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (79,NULL,2,'Subject for Phone Call','2023-04-06 15:16:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (80,NULL,22,'Subject for Print/Merge Document','2023-09-01 01:50:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (81,NULL,9,'Subject for Tell a Friend','2023-02-16 09:08:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (82,NULL,55,'Subject for Interview','2022-11-10 13:14:00',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (83,NULL,55,'Subject for Interview','2022-11-16 02:05:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (84,NULL,22,'Subject for Print/Merge Document','2023-07-05 05:58:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (85,NULL,22,'Subject for Print/Merge Document','2022-12-07 16:04:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (86,NULL,2,'Subject for Phone Call','2022-11-06 20:08:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (87,NULL,55,'Subject for Interview','2022-09-09 21:40:50',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (88,NULL,1,'Subject for Meeting','2023-08-23 12:37:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (89,NULL,1,'Subject for Meeting','2022-11-27 23:20:42',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (90,NULL,22,'Subject for Print/Merge Document','2023-02-05 13:57:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (91,NULL,1,'Subject for Meeting','2023-05-31 06:22:49',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (92,NULL,1,'Subject for Meeting','2023-08-25 18:58:31',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (93,NULL,1,'Subject for Meeting','2023-08-21 16:31:20',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (94,NULL,9,'Subject for Tell a Friend','2022-11-25 17:42:13',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (95,NULL,55,'Subject for Interview','2022-10-09 00:42:14',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (96,NULL,2,'Subject for Phone Call','2023-06-15 08:03:02',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (97,NULL,2,'Subject for Phone Call','2022-09-25 02:17:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (98,NULL,9,'Subject for Tell a Friend','2023-01-09 07:07:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (99,NULL,2,'Subject for Phone Call','2023-05-07 22:11:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (100,NULL,9,'Subject for Tell a Friend','2023-05-24 07:25:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (101,NULL,55,'Subject for Interview','2023-06-08 14:37:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (102,NULL,2,'Subject for Phone Call','2023-01-20 00:42:16',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (103,NULL,22,'Subject for Print/Merge Document','2023-01-10 06:36:44',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (104,NULL,1,'Subject for Meeting','2022-11-26 14:42:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (105,NULL,2,'Subject for Phone Call','2022-11-01 07:36:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (106,NULL,9,'Subject for Tell a Friend','2022-12-12 19:51:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (107,NULL,55,'Subject for Interview','2023-01-25 11:32:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (108,NULL,55,'Subject for Interview','2023-06-03 00:16:55',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (109,NULL,1,'Subject for Meeting','2022-12-19 00:47:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (110,NULL,1,'Subject for Meeting','2022-10-27 02:59:37',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (111,NULL,2,'Subject for Phone Call','2023-07-21 13:16:40',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (112,NULL,9,'Subject for Tell a Friend','2022-12-22 02:56:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (113,NULL,22,'Subject for Print/Merge Document','2023-04-25 06:43:18',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (114,NULL,1,'Subject for Meeting','2023-07-29 20:47:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (115,NULL,1,'Subject for Meeting','2022-11-12 09:11:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (116,NULL,55,'Subject for Interview','2022-12-06 17:21:01',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (117,NULL,9,'Subject for Tell a Friend','2023-05-26 16:40:17',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (118,NULL,22,'Subject for Print/Merge Document','2023-03-13 22:33:57',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (119,NULL,2,'Subject for Phone Call','2023-01-18 06:29:54',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (120,NULL,2,'Subject for Phone Call','2023-01-23 18:56:46',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (121,NULL,22,'Subject for Print/Merge Document','2023-04-14 06:50:31',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (122,NULL,55,'Subject for Interview','2023-07-05 05:49:43',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (123,NULL,55,'Subject for Interview','2023-02-09 22:05:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (124,NULL,22,'Subject for Print/Merge Document','2023-07-17 06:37:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (125,NULL,9,'Subject for Tell a Friend','2023-01-03 07:58:57',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (126,NULL,9,'Subject for Tell a Friend','2023-03-07 15:53:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (127,NULL,9,'Subject for Tell a Friend','2023-05-07 15:27:36',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (128,NULL,22,'Subject for Print/Merge Document','2022-10-05 07:25:57',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (129,NULL,9,'Subject for Tell a Friend','2023-03-03 08:01:53',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (130,NULL,1,'Subject for Meeting','2023-07-16 04:01:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (131,NULL,22,'Subject for Print/Merge Document','2022-12-21 09:23:15',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (132,NULL,22,'Subject for Print/Merge Document','2022-10-29 09:51:43',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (133,NULL,2,'Subject for Phone Call','2022-09-24 22:40:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (134,NULL,1,'Subject for Meeting','2023-07-07 18:30:42',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (135,NULL,22,'Subject for Print/Merge Document','2022-12-10 13:32:41',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (136,NULL,2,'Subject for Phone Call','2023-05-21 20:36:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (137,NULL,1,'Subject for Meeting','2023-08-15 11:15:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (138,NULL,1,'Subject for Meeting','2023-04-26 09:33:47',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (139,NULL,2,'Subject for Phone Call','2023-06-04 20:49:40',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (140,NULL,22,'Subject for Print/Merge Document','2022-10-11 02:46:17',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (141,NULL,55,'Subject for Interview','2022-09-10 14:07:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (142,NULL,9,'Subject for Tell a Friend','2023-07-17 06:51:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (143,NULL,2,'Subject for Phone Call','2023-07-31 21:45:46',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (144,NULL,2,'Subject for Phone Call','2023-08-05 14:56:31',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (145,NULL,55,'Subject for Interview','2023-03-24 14:13:29',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (146,NULL,1,'Subject for Meeting','2022-10-03 18:01:03',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (147,NULL,9,'Subject for Tell a Friend','2022-10-02 10:20:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (148,NULL,2,'Subject for Phone Call','2023-08-29 06:28:47',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (149,NULL,55,'Subject for Interview','2023-01-27 04:12:06',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (150,NULL,9,'Subject for Tell a Friend','2022-10-06 22:30:43',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (151,NULL,1,'Subject for Meeting','2023-08-09 03:06:43',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (152,NULL,2,'Subject for Phone Call','2023-08-06 20:43:30',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (153,NULL,1,'Subject for Meeting','2023-06-01 18:02:49',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (154,NULL,2,'Subject for Phone Call','2022-10-22 08:48:40',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (155,NULL,55,'Subject for Interview','2023-06-16 01:43:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (156,NULL,2,'Subject for Phone Call','2023-05-11 01:24:27',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (157,NULL,9,'Subject for Tell a Friend','2023-07-31 10:03:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (158,NULL,55,'Subject for Interview','2023-08-01 01:42:31',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (159,NULL,1,'Subject for Meeting','2023-04-09 13:24:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (160,NULL,2,'Subject for Phone Call','2023-04-17 20:29:18',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (161,NULL,9,'Subject for Tell a Friend','2022-12-30 21:58:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (162,NULL,2,'Subject for Phone Call','2023-03-20 07:55:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (163,NULL,1,'Subject for Meeting','2022-09-14 23:24:34',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (164,NULL,2,'Subject for Phone Call','2022-11-13 16:14:35',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (165,NULL,22,'Subject for Print/Merge Document','2023-08-02 13:12:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (166,NULL,1,'Subject for Meeting','2023-01-16 19:12:13',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (167,NULL,1,'Subject for Meeting','2022-09-17 05:23:06',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (168,NULL,22,'Subject for Print/Merge Document','2022-12-31 17:56:12',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (169,NULL,55,'Subject for Interview','2023-08-11 10:49:45',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (170,NULL,55,'Subject for Interview','2023-01-24 14:07:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (171,NULL,2,'Subject for Phone Call','2023-02-28 17:26:41',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (172,NULL,55,'Subject for Interview','2022-12-12 08:09:46',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (173,NULL,9,'Subject for Tell a Friend','2023-07-01 08:45:39',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (174,NULL,22,'Subject for Print/Merge Document','2022-12-21 00:44:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (175,NULL,2,'Subject for Phone Call','2022-12-03 11:44:08',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (176,NULL,55,'Subject for Interview','2023-09-02 18:49:44',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (177,NULL,9,'Subject for Tell a Friend','2022-12-17 13:27:12',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (178,NULL,9,'Subject for Tell a Friend','2023-08-16 14:18:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (179,NULL,2,'Subject for Phone Call','2022-12-24 14:37:06',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (180,NULL,9,'Subject for Tell a Friend','2023-04-08 16:56:32',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (181,NULL,22,'Subject for Print/Merge Document','2023-06-29 09:10:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (182,NULL,1,'Subject for Meeting','2022-11-22 12:50:12',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (183,NULL,22,'Subject for Print/Merge Document','2022-10-12 05:46:30',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (184,NULL,9,'Subject for Tell a Friend','2023-08-05 02:12:25',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (185,NULL,55,'Subject for Interview','2023-02-12 10:32:14',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (186,NULL,55,'Subject for Interview','2022-09-09 07:49:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (187,NULL,1,'Subject for Meeting','2023-02-17 00:07:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (188,NULL,22,'Subject for Print/Merge Document','2023-02-24 19:46:54',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (189,NULL,22,'Subject for Print/Merge Document','2023-01-27 16:24:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (190,NULL,22,'Subject for Print/Merge Document','2023-07-29 23:01:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (191,NULL,1,'Subject for Meeting','2023-08-30 03:20:59',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (192,NULL,55,'Subject for Interview','2022-11-16 17:06:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (193,NULL,9,'Subject for Tell a Friend','2023-07-19 23:37:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (194,NULL,2,'Subject for Phone Call','2022-12-02 14:02:42',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (195,NULL,1,'Subject for Meeting','2023-01-01 03:11:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (196,NULL,9,'Subject for Tell a Friend','2023-05-09 17:56:45',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (197,NULL,9,'Subject for Tell a Friend','2023-03-17 08:22:05',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (198,NULL,9,'Subject for Tell a Friend','2023-06-20 19:57:25',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (199,NULL,55,'Subject for Interview','2022-09-16 00:44:55',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (200,NULL,22,'Subject for Print/Merge Document','2023-08-28 10:42:42',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (201,NULL,1,'Subject for Meeting','2022-10-07 08:56:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (202,NULL,55,'Subject for Interview','2023-05-02 05:52:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (203,NULL,2,'Subject for Phone Call','2022-09-19 02:10:35',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (204,NULL,1,'Subject for Meeting','2023-06-21 00:17:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (205,NULL,9,'Subject for Tell a Friend','2023-04-13 16:39:50',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (206,NULL,55,'Subject for Interview','2022-10-02 05:24:43',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (207,NULL,2,'Subject for Phone Call','2022-12-10 07:14:19',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (208,NULL,1,'Subject for Meeting','2023-08-09 20:18:10',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (209,NULL,1,'Subject for Meeting','2023-01-02 20:26:25',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (210,NULL,9,'Subject for Tell a Friend','2022-09-27 18:52:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (211,NULL,9,'Subject for Tell a Friend','2023-09-05 23:33:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (212,NULL,55,'Subject for Interview','2022-09-12 06:00:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (213,NULL,9,'Subject for Tell a Friend','2022-12-07 13:44:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (214,NULL,2,'Subject for Phone Call','2022-11-08 06:04:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (215,NULL,55,'Subject for Interview','2023-05-22 09:24:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (216,NULL,55,'Subject for Interview','2023-02-12 00:39:18',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (217,NULL,2,'Subject for Phone Call','2023-07-24 14:13:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (218,NULL,1,'Subject for Meeting','2023-08-05 00:29:10',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (219,NULL,9,'Subject for Tell a Friend','2022-09-28 04:08:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (220,NULL,22,'Subject for Print/Merge Document','2023-06-14 08:17:24',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (221,NULL,55,'Subject for Interview','2022-12-28 19:42:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (222,NULL,9,'Subject for Tell a Friend','2023-01-09 15:57:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (223,NULL,2,'Subject for Phone Call','2022-09-13 22:33:43',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (224,NULL,55,'Subject for Interview','2023-07-15 01:02:49',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (225,NULL,55,'Subject for Interview','2023-02-20 14:30:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (226,NULL,9,'Subject for Tell a Friend','2023-07-24 06:55:08',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (227,NULL,2,'Subject for Phone Call','2023-08-05 09:35:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (228,NULL,55,'Subject for Interview','2023-05-01 10:56:39',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (229,NULL,55,'Subject for Interview','2023-08-13 08:57:43',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (230,NULL,55,'Subject for Interview','2022-12-22 15:03:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (231,NULL,1,'Subject for Meeting','2023-04-01 13:03:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (232,NULL,9,'Subject for Tell a Friend','2023-06-20 02:13:40',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (233,NULL,55,'Subject for Interview','2023-03-22 18:54:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (234,NULL,9,'Subject for Tell a Friend','2023-08-17 11:40:43',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (235,NULL,22,'Subject for Print/Merge Document','2023-06-20 16:15:58',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (236,NULL,2,'Subject for Phone Call','2022-11-24 20:44:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (237,NULL,55,'Subject for Interview','2022-10-14 14:46:18',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (238,NULL,9,'Subject for Tell a Friend','2022-12-26 13:13:56',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (239,NULL,2,'Subject for Phone Call','2023-03-28 06:00:45',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (240,NULL,1,'Subject for Meeting','2023-06-24 21:38:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (241,NULL,22,'Subject for Print/Merge Document','2023-07-06 01:27:02',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (242,NULL,1,'Subject for Meeting','2022-12-22 23:29:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (243,NULL,1,'Subject for Meeting','2023-02-05 22:30:08',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (244,NULL,1,'Subject for Meeting','2023-05-28 16:41:43',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (245,NULL,2,'Subject for Phone Call','2023-05-21 01:03:20',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (246,NULL,22,'Subject for Print/Merge Document','2023-09-02 10:25:34',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (247,NULL,2,'Subject for Phone Call','2022-10-04 18:40:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (248,NULL,2,'Subject for Phone Call','2022-11-26 10:10:24',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (249,NULL,55,'Subject for Interview','2023-07-14 13:38:10',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (250,NULL,22,'Subject for Print/Merge Document','2023-05-02 17:41:06',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (251,NULL,9,'Subject for Tell a Friend','2023-04-22 04:20:14',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (252,NULL,55,'Subject for Interview','2022-11-16 20:46:40',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (253,NULL,9,'Subject for Tell a Friend','2023-06-15 14:05:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (254,NULL,22,'Subject for Print/Merge Document','2023-03-24 13:16:28',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (255,NULL,55,'Subject for Interview','2023-06-23 17:19:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (256,NULL,9,'Subject for Tell a Friend','2023-06-01 09:08:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (257,NULL,1,'Subject for Meeting','2022-11-06 07:58:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (258,NULL,1,'Subject for Meeting','2023-08-26 04:00:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (259,NULL,55,'Subject for Interview','2023-07-07 17:44:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (260,NULL,1,'Subject for Meeting','2023-06-11 04:35:54',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (261,NULL,9,'Subject for Tell a Friend','2023-05-21 20:19:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (262,NULL,55,'Subject for Interview','2023-05-21 00:24:59',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (263,NULL,2,'Subject for Phone Call','2022-11-11 01:45:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (264,NULL,55,'Subject for Interview','2023-02-01 03:16:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (265,NULL,22,'Subject for Print/Merge Document','2023-07-31 03:47:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (266,NULL,55,'Subject for Interview','2023-05-31 07:29:49',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (267,NULL,2,'Subject for Phone Call','2023-08-13 09:29:14',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (268,NULL,22,'Subject for Print/Merge Document','2022-12-22 17:12:21',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (269,NULL,9,'Subject for Tell a Friend','2022-09-20 20:42:26',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (270,NULL,1,'Subject for Meeting','2023-08-21 19:38:50',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (271,NULL,9,'Subject for Tell a Friend','2023-05-02 15:17:54',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (272,NULL,1,'Subject for Meeting','2023-06-13 06:06:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (273,NULL,2,'Subject for Phone Call','2023-01-02 06:29:11',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (274,NULL,2,'Subject for Phone Call','2023-03-06 15:05:59',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (275,NULL,55,'Subject for Interview','2023-05-06 12:06:02',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (276,NULL,1,'Subject for Meeting','2023-07-04 19:03:36',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (277,NULL,55,'Subject for Interview','2023-05-21 18:09:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (278,NULL,55,'Subject for Interview','2023-05-08 07:17:33',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (279,NULL,9,'Subject for Tell a Friend','2022-12-29 09:03:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (280,NULL,22,'Subject for Print/Merge Document','2022-10-29 05:33:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (281,NULL,22,'Subject for Print/Merge Document','2023-06-03 11:57:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (282,NULL,1,'Subject for Meeting','2023-06-09 18:39:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (283,NULL,2,'Subject for Phone Call','2023-08-29 20:28:19',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (284,NULL,2,'Subject for Phone Call','2022-12-17 01:59:24',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (285,NULL,9,'Subject for Tell a Friend','2022-10-30 08:20:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (286,NULL,1,'Subject for Meeting','2023-09-06 01:53:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (287,NULL,55,'Subject for Interview','2023-06-15 02:26:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (288,NULL,9,'Subject for Tell a Friend','2022-09-14 06:17:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (289,NULL,1,'Subject for Meeting','2022-09-25 06:09:35',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (290,NULL,55,'Subject for Interview','2023-01-19 01:04:46',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (291,NULL,9,'Subject for Tell a Friend','2023-05-14 09:12:19',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (292,NULL,1,'Subject for Meeting','2023-01-14 15:36:22',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (293,NULL,9,'Subject for Tell a Friend','2023-07-16 11:52:10',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (294,NULL,55,'Subject for Interview','2023-07-06 11:34:21',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (295,NULL,1,'Subject for Meeting','2023-08-29 08:06:33',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (296,NULL,9,'Subject for Tell a Friend','2023-07-03 03:04:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (297,NULL,55,'Subject for Interview','2022-10-01 13:26:27',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (298,NULL,9,'Subject for Tell a Friend','2023-06-13 12:44:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (299,NULL,22,'Subject for Print/Merge Document','2023-05-21 04:47:15',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (300,NULL,1,'Subject for Meeting','2022-11-24 10:20:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (301,NULL,55,'Subject for Interview','2022-12-19 01:34:10',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (302,NULL,2,'Subject for Phone Call','2022-11-02 14:12:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (303,NULL,9,'Subject for Tell a Friend','2023-08-02 21:25:59',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (304,NULL,9,'Subject for Tell a Friend','2022-10-13 02:17:55',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (305,NULL,55,'Subject for Interview','2022-12-12 14:25:14',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (306,NULL,9,'Subject for Tell a Friend','2023-07-13 11:50:19',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (307,NULL,9,'Subject for Tell a Friend','2023-01-05 17:21:27',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (308,NULL,22,'Subject for Print/Merge Document','2023-07-28 01:30:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (309,NULL,9,'Subject for Tell a Friend','2023-08-02 02:15:53',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (310,NULL,9,'Subject for Tell a Friend','2023-01-13 14:27:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (311,NULL,1,'Subject for Meeting','2022-10-12 13:12:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (312,NULL,2,'Subject for Phone Call','2023-02-22 05:53:40',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (313,NULL,55,'Subject for Interview','2022-09-27 09:29:08',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (314,NULL,55,'Subject for Interview','2023-05-10 19:07:48',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (315,NULL,55,'Subject for Interview','2023-02-26 07:41:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (316,NULL,1,'Subject for Meeting','2023-06-03 13:01:57',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:02','2023-09-06 22:14:02'), - (317,NULL,55,'Subject for Interview','2022-10-05 11:13:53',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (318,NULL,1,'Subject for Meeting','2023-04-29 09:50:53',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (319,NULL,1,'Subject for Meeting','2023-06-07 05:07:14',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (320,NULL,2,'Subject for Phone Call','2023-07-21 20:42:44',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (321,NULL,55,'Subject for Interview','2022-11-09 17:27:34',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (322,NULL,55,'Subject for Interview','2022-09-27 02:12:13',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (323,NULL,1,'Subject for Meeting','2023-07-11 22:15:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (324,NULL,9,'Subject for Tell a Friend','2022-12-30 18:24:51',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (325,NULL,9,'Subject for Tell a Friend','2022-10-30 02:27:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (326,NULL,2,'Subject for Phone Call','2023-02-23 03:25:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (327,NULL,22,'Subject for Print/Merge Document','2023-03-02 15:25:18',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (328,NULL,2,'Subject for Phone Call','2023-06-29 10:33:22',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (329,NULL,9,'Subject for Tell a Friend','2023-02-01 06:24:33',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (330,NULL,22,'Subject for Print/Merge Document','2022-09-22 10:44:12',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (331,NULL,22,'Subject for Print/Merge Document','2023-04-08 17:20:21',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (332,NULL,55,'Subject for Interview','2023-02-26 03:54:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (333,NULL,22,'Subject for Print/Merge Document','2022-09-24 12:00:16',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (334,NULL,1,'Subject for Meeting','2023-02-09 13:55:16',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (335,NULL,22,'Subject for Print/Merge Document','2023-09-03 18:49:17',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (336,NULL,2,'Subject for Phone Call','2023-06-28 19:09:56',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (337,NULL,55,'Subject for Interview','2023-07-23 15:46:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (338,NULL,55,'Subject for Interview','2023-06-27 01:02:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (339,NULL,1,'Subject for Meeting','2022-09-10 11:16:14',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (340,NULL,55,'Subject for Interview','2023-03-20 14:26:57',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (341,NULL,22,'Subject for Print/Merge Document','2023-03-31 06:40:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (342,NULL,55,'Subject for Interview','2023-06-04 14:43:20',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (343,NULL,2,'Subject for Phone Call','2023-04-06 07:45:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (344,NULL,9,'Subject for Tell a Friend','2022-10-01 17:38:34',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (345,NULL,1,'Subject for Meeting','2023-08-22 06:00:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (346,NULL,2,'Subject for Phone Call','2023-03-25 02:03:18',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (347,NULL,2,'Subject for Phone Call','2023-05-19 02:10:46',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (348,NULL,9,'Subject for Tell a Friend','2022-09-18 01:29:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (349,NULL,2,'Subject for Phone Call','2023-08-11 10:07:53',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (350,NULL,9,'Subject for Tell a Friend','2023-05-18 11:11:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (351,NULL,1,'Subject for Meeting','2022-12-01 16:33:17',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (352,NULL,9,'Subject for Tell a Friend','2023-09-07 02:33:24',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (353,NULL,22,'Subject for Print/Merge Document','2023-03-15 10:33:12',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (354,NULL,1,'Subject for Meeting','2022-10-19 21:47:57',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (355,NULL,1,'Subject for Meeting','2023-04-21 03:06:16',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (356,NULL,9,'Subject for Tell a Friend','2022-09-28 19:20:26',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (357,NULL,2,'Subject for Phone Call','2022-09-12 02:15:50',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (358,NULL,1,'Subject for Meeting','2023-07-29 13:53:50',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (359,NULL,55,'Subject for Interview','2023-08-07 13:37:18',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (360,NULL,22,'Subject for Print/Merge Document','2023-02-16 07:34:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (361,NULL,22,'Subject for Print/Merge Document','2023-01-01 20:04:13',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (362,NULL,55,'Subject for Interview','2022-12-06 09:14:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (363,NULL,2,'Subject for Phone Call','2022-11-08 19:01:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (364,NULL,22,'Subject for Print/Merge Document','2023-01-03 15:30:20',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (365,NULL,55,'Subject for Interview','2023-02-25 16:15:53',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (366,NULL,2,'Subject for Phone Call','2023-03-06 14:27:42',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (367,NULL,2,'Subject for Phone Call','2023-02-12 05:58:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (368,NULL,1,'Subject for Meeting','2023-08-30 10:52:40',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (369,NULL,2,'Subject for Phone Call','2022-09-30 03:49:34',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (370,NULL,1,'Subject for Meeting','2022-10-07 19:44:55',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (371,NULL,2,'Subject for Phone Call','2023-03-11 00:06:44',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (372,NULL,1,'Subject for Meeting','2023-07-25 11:08:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (373,NULL,9,'Subject for Tell a Friend','2023-03-11 15:47:29',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (374,NULL,9,'Subject for Tell a Friend','2022-10-07 13:57:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (375,NULL,1,'Subject for Meeting','2023-04-18 04:01:17',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (376,NULL,9,'Subject for Tell a Friend','2023-06-29 13:43:42',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (377,NULL,9,'Subject for Tell a Friend','2023-03-11 08:56:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (378,NULL,2,'Subject for Phone Call','2022-12-12 15:54:59',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (379,NULL,55,'Subject for Interview','2023-02-09 08:03:42',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (380,NULL,9,'Subject for Tell a Friend','2023-02-13 06:39:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (381,NULL,1,'Subject for Meeting','2023-01-24 04:41:27',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (382,NULL,9,'Subject for Tell a Friend','2022-11-22 02:42:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (383,NULL,2,'Subject for Phone Call','2023-06-21 01:20:05',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (384,NULL,2,'Subject for Phone Call','2023-02-01 09:07:46',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (385,NULL,1,'Subject for Meeting','2023-01-13 17:00:06',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (386,NULL,2,'Subject for Phone Call','2022-10-26 16:39:14',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (387,NULL,22,'Subject for Print/Merge Document','2023-08-16 18:56:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (388,NULL,1,'Subject for Meeting','2022-12-18 13:19:34',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (389,NULL,1,'Subject for Meeting','2023-03-07 14:13:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (390,NULL,9,'Subject for Tell a Friend','2023-06-07 18:31:59',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (391,NULL,9,'Subject for Tell a Friend','2023-02-11 15:09:11',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (392,NULL,9,'Subject for Tell a Friend','2022-11-14 11:53:25',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (393,NULL,9,'Subject for Tell a Friend','2023-04-06 14:17:08',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (394,NULL,55,'Subject for Interview','2023-06-08 07:05:06',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (395,NULL,9,'Subject for Tell a Friend','2023-04-05 04:19:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (396,NULL,22,'Subject for Print/Merge Document','2023-03-07 08:32:33',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (397,NULL,22,'Subject for Print/Merge Document','2023-04-29 20:30:44',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (398,NULL,1,'Subject for Meeting','2023-03-19 19:56:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (399,NULL,22,'Subject for Print/Merge Document','2023-08-01 17:49:29',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (400,NULL,9,'Subject for Tell a Friend','2023-09-06 10:28:47',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (401,NULL,2,'Subject for Phone Call','2023-01-29 12:10:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (402,NULL,1,'Subject for Meeting','2023-04-28 12:35:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (403,NULL,22,'Subject for Print/Merge Document','2022-12-30 13:06:48',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (404,NULL,22,'Subject for Print/Merge Document','2023-04-08 21:03:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (405,NULL,55,'Subject for Interview','2023-08-01 02:33:47',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (406,NULL,22,'Subject for Print/Merge Document','2023-05-08 12:57:53',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (407,NULL,9,'Subject for Tell a Friend','2023-03-21 01:26:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (408,NULL,1,'Subject for Meeting','2022-10-22 02:42:16',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (409,NULL,22,'Subject for Print/Merge Document','2022-11-11 18:22:43',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (410,NULL,55,'Subject for Interview','2022-10-01 22:00:31',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (411,NULL,22,'Subject for Print/Merge Document','2023-01-10 15:00:57',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (412,NULL,22,'Subject for Print/Merge Document','2023-08-09 01:38:12',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (413,NULL,9,'Subject for Tell a Friend','2023-02-24 19:39:25',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (414,NULL,2,'Subject for Phone Call','2023-07-10 08:57:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (415,NULL,2,'Subject for Phone Call','2023-05-13 15:26:18',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (416,NULL,1,'Subject for Meeting','2022-10-01 20:13:21',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (417,NULL,9,'Subject for Tell a Friend','2022-10-09 05:22:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (418,NULL,1,'Subject for Meeting','2023-04-19 16:49:17',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (419,NULL,22,'Subject for Print/Merge Document','2023-02-02 19:09:07',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (420,NULL,22,'Subject for Print/Merge Document','2023-01-20 15:41:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (421,NULL,9,'Subject for Tell a Friend','2022-10-05 02:08:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (422,NULL,22,'Subject for Print/Merge Document','2023-08-05 18:24:05',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (423,NULL,9,'Subject for Tell a Friend','2023-06-30 14:23:29',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (424,NULL,1,'Subject for Meeting','2023-06-22 14:12:46',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (425,NULL,55,'Subject for Interview','2022-12-24 19:26:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (426,NULL,1,'Subject for Meeting','2023-02-03 10:08:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (427,NULL,9,'Subject for Tell a Friend','2023-02-08 16:42:10',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (428,NULL,1,'Subject for Meeting','2023-06-26 09:04:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (429,NULL,1,'Subject for Meeting','2023-03-30 02:31:45',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (430,NULL,2,'Subject for Phone Call','2023-08-18 03:54:07',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (431,NULL,1,'Subject for Meeting','2023-06-10 07:13:00',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (432,NULL,1,'Subject for Meeting','2023-08-09 08:01:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (433,NULL,22,'Subject for Print/Merge Document','2023-04-17 01:31:19',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (434,NULL,9,'Subject for Tell a Friend','2022-10-29 10:52:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (435,NULL,1,'Subject for Meeting','2023-01-01 01:17:00',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (436,NULL,22,'Subject for Print/Merge Document','2023-05-25 11:51:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (437,NULL,2,'Subject for Phone Call','2023-03-15 15:58:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (438,NULL,1,'Subject for Meeting','2023-03-30 02:21:26',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (439,NULL,55,'Subject for Interview','2022-12-21 01:49:11',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (440,NULL,9,'Subject for Tell a Friend','2023-03-07 14:01:22',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (441,NULL,55,'Subject for Interview','2022-09-10 05:25:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (442,NULL,55,'Subject for Interview','2023-01-12 15:39:17',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (443,NULL,1,'Subject for Meeting','2023-03-10 01:19:46',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (444,NULL,1,'Subject for Meeting','2023-04-29 11:42:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (445,NULL,55,'Subject for Interview','2023-05-08 12:19:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (446,NULL,22,'Subject for Print/Merge Document','2022-10-27 16:21:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (447,NULL,2,'Subject for Phone Call','2023-07-23 15:57:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (448,NULL,2,'Subject for Phone Call','2023-05-18 09:23:06',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (449,NULL,55,'Subject for Interview','2022-09-29 08:03:50',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (450,NULL,9,'Subject for Tell a Friend','2022-11-20 07:54:10',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (451,1,6,'$ 125 April Mailer 1','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (452,2,6,'$ 50 Online: Save the Penguins','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (453,3,6,'£ 25 April Mailer 1','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (454,4,6,'$ 50 Online: Save the Penguins','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (455,5,6,'$ 50 Online: Save the Penguins','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (456,6,6,'$ 500 April Mailer 1','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (457,7,6,'$ 1750 Online: Save the Penguins','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (458,8,6,'$ 50 Online: Save the Penguins','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (459,9,6,'$ 10 Online: Help CiviCRM','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (460,10,6,'$ 250 Online: Help CiviCRM','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (461,11,6,'Â¥ 500 ','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (462,12,6,'$ 50 Online: Save the Penguins','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (463,13,6,'$ 50 ','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (464,14,6,'$ 50 ','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (465,15,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (466,16,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (467,17,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (468,18,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (469,19,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (470,20,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (471,21,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (472,22,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (473,23,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (474,24,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (475,25,6,'$ 25 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (476,26,6,'$ 10 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (477,27,6,'$ 10 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (478,28,6,'$ 10 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (479,29,6,'$ 10 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (480,30,6,'$ 10 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (481,31,6,'€ 5 Recurring contribution','2023-11-07 08:14:03',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (482,1,7,'General','2023-09-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (483,2,7,'Student','2023-09-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (484,3,7,'General','2023-09-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (485,4,7,'Student','2023-09-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (486,5,7,'Student','2022-09-03 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (487,6,7,'Student','2023-09-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (488,7,7,'General','2023-09-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (489,8,7,'Student','2023-08-31 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (490,9,7,'General','2023-08-30 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (491,10,7,'Student','2022-08-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (492,11,7,'Lifetime','2023-08-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (493,12,7,'Student','2023-08-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (494,13,7,'General','2023-08-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (495,14,7,'Student','2023-08-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (496,15,7,'General','2021-05-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (497,16,7,'Student','2023-08-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (498,17,7,'General','2023-08-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (499,18,7,'Student','2023-08-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (500,19,7,'General','2023-08-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (501,20,7,'Student','2022-08-19 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (502,21,7,'General','2023-08-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (503,22,7,'Lifetime','2023-08-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (504,23,7,'General','2023-08-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (505,24,7,'Student','2023-08-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (506,25,7,'Student','2022-08-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (507,26,7,'Student','2023-08-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (508,27,7,'General','2023-08-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (509,28,7,'Student','2023-08-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (510,29,7,'General','2023-08-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (511,30,7,'Student','2022-08-09 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (512,32,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (513,33,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (514,34,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (515,35,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (516,36,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (517,37,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (518,38,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (519,39,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (520,40,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (521,41,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (523,43,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (524,44,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (525,45,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (526,46,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (527,47,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (528,48,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (529,49,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (530,50,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (531,51,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (532,52,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (533,53,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (534,54,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (535,55,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (536,56,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (537,57,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (538,58,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (539,59,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (540,60,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (541,61,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:14:03',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:03','2023-09-06 22:14:03'), - (543,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (544,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (545,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (546,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (547,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (548,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (549,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (550,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (551,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (552,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (553,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (554,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (555,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (556,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (557,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (558,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (559,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (560,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (561,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (562,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (563,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (564,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (565,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (566,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (567,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (568,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (569,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (570,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (571,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (572,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (573,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (574,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (575,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (576,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (577,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (578,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (579,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (580,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (581,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (582,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (583,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (584,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (585,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (586,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (587,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (588,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (589,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (590,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (591,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (592,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (593,63,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (594,64,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (595,65,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (596,66,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (597,67,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (598,68,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (599,69,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (600,70,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (601,71,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (602,72,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (603,73,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (604,74,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (605,75,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (606,76,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (607,77,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (608,78,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (609,79,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (610,80,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (611,81,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (612,82,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (613,83,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (614,84,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (615,85,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (616,86,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (617,87,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (618,88,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (620,90,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (621,91,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (622,92,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (623,93,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (624,94,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (625,95,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (626,96,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (627,97,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (628,98,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (629,99,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (630,100,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (631,101,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (632,102,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (633,103,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (634,104,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (635,105,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (636,106,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (637,107,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (638,108,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (639,109,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (640,110,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (641,111,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'), - (642,112,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:14:04',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:14:04','2023-09-06 22:14:04'); + (1,NULL,2,'Subject for Phone Call','2022-10-07 17:04:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (2,NULL,1,'Subject for Meeting','2023-01-29 08:33:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (3,NULL,9,'Subject for Tell a Friend','2023-02-04 20:31:54',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (4,NULL,2,'Subject for Phone Call','2023-01-05 14:28:31',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (5,NULL,2,'Subject for Phone Call','2022-09-20 11:44:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (6,NULL,22,'Subject for Print/Merge Document','2022-12-25 05:37:44',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (7,NULL,9,'Subject for Tell a Friend','2023-06-12 00:41:44',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (8,NULL,56,'Subject for Interview','2022-10-12 05:55:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (9,NULL,56,'Subject for Interview','2022-10-12 19:41:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (10,NULL,2,'Subject for Phone Call','2022-09-20 03:45:15',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (11,NULL,1,'Subject for Meeting','2023-04-26 22:59:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (12,NULL,56,'Subject for Interview','2023-08-17 21:30:36',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (13,NULL,9,'Subject for Tell a Friend','2023-04-27 23:57:57',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (14,NULL,9,'Subject for Tell a Friend','2023-09-06 22:01:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (15,NULL,1,'Subject for Meeting','2022-11-02 02:14:21',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (16,NULL,9,'Subject for Tell a Friend','2022-09-21 20:54:50',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (17,NULL,56,'Subject for Interview','2023-06-05 09:36:07',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (18,NULL,1,'Subject for Meeting','2023-08-03 14:59:43',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (19,NULL,9,'Subject for Tell a Friend','2022-10-30 17:15:27',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (20,NULL,1,'Subject for Meeting','2023-01-26 23:46:37',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (21,NULL,22,'Subject for Print/Merge Document','2023-03-18 23:00:52',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (22,NULL,9,'Subject for Tell a Friend','2023-04-27 17:58:01',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (23,NULL,56,'Subject for Interview','2022-11-18 21:15:38',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (24,NULL,1,'Subject for Meeting','2023-01-19 17:44:14',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (25,NULL,9,'Subject for Tell a Friend','2022-09-26 06:04:21',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (26,NULL,1,'Subject for Meeting','2023-07-20 03:35:39',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (27,NULL,1,'Subject for Meeting','2022-10-14 20:23:09',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (28,NULL,1,'Subject for Meeting','2023-05-10 13:03:47',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (29,NULL,56,'Subject for Interview','2022-12-27 04:57:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (30,NULL,2,'Subject for Phone Call','2023-03-22 23:53:41',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (31,NULL,1,'Subject for Meeting','2023-04-04 08:59:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (32,NULL,9,'Subject for Tell a Friend','2022-12-19 08:32:10',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (33,NULL,9,'Subject for Tell a Friend','2023-08-14 01:53:29',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (34,NULL,2,'Subject for Phone Call','2023-06-02 15:10:21',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (35,NULL,2,'Subject for Phone Call','2023-02-14 07:52:35',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (36,NULL,2,'Subject for Phone Call','2022-12-11 22:55:53',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (37,NULL,56,'Subject for Interview','2023-05-22 15:07:03',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (38,NULL,1,'Subject for Meeting','2023-03-26 13:19:28',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (39,NULL,2,'Subject for Phone Call','2023-01-15 01:11:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (40,NULL,1,'Subject for Meeting','2023-07-03 14:43:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (41,NULL,2,'Subject for Phone Call','2022-12-22 20:55:59',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (42,NULL,56,'Subject for Interview','2023-08-25 16:45:45',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (43,NULL,2,'Subject for Phone Call','2023-07-07 15:38:14',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (44,NULL,2,'Subject for Phone Call','2023-01-29 11:22:30',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (45,NULL,22,'Subject for Print/Merge Document','2022-09-22 13:46:20',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (46,NULL,22,'Subject for Print/Merge Document','2023-04-10 15:58:26',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (47,NULL,22,'Subject for Print/Merge Document','2023-08-08 04:59:13',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (48,NULL,9,'Subject for Tell a Friend','2023-01-25 07:38:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (49,NULL,56,'Subject for Interview','2023-01-20 10:33:05',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (50,NULL,2,'Subject for Phone Call','2023-05-11 19:41:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (51,NULL,22,'Subject for Print/Merge Document','2022-12-21 03:19:28',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (52,NULL,1,'Subject for Meeting','2023-03-15 01:52:41',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (53,NULL,56,'Subject for Interview','2023-08-17 12:19:35',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (54,NULL,1,'Subject for Meeting','2022-12-04 08:40:24',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (55,NULL,1,'Subject for Meeting','2023-05-08 15:10:29',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (56,NULL,22,'Subject for Print/Merge Document','2023-05-24 04:15:26',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (57,NULL,1,'Subject for Meeting','2023-03-10 12:19:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (58,NULL,22,'Subject for Print/Merge Document','2023-08-04 18:16:56',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (59,NULL,9,'Subject for Tell a Friend','2023-02-13 06:25:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (60,NULL,1,'Subject for Meeting','2023-07-17 16:35:20',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (61,NULL,56,'Subject for Interview','2023-08-03 21:34:52',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (62,NULL,2,'Subject for Phone Call','2022-10-25 03:56:22',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (63,NULL,2,'Subject for Phone Call','2023-06-10 02:17:03',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (64,NULL,56,'Subject for Interview','2023-04-05 05:01:10',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (65,NULL,56,'Subject for Interview','2022-10-22 18:54:18',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (66,NULL,22,'Subject for Print/Merge Document','2022-09-22 17:32:27',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (67,NULL,22,'Subject for Print/Merge Document','2023-01-12 04:53:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (68,NULL,22,'Subject for Print/Merge Document','2022-11-21 09:14:08',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (69,NULL,1,'Subject for Meeting','2022-11-19 18:44:03',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (70,NULL,2,'Subject for Phone Call','2023-01-09 08:36:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (71,NULL,1,'Subject for Meeting','2022-12-28 14:56:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (72,NULL,56,'Subject for Interview','2023-03-06 01:10:05',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (73,NULL,9,'Subject for Tell a Friend','2023-02-07 14:14:13',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (74,NULL,56,'Subject for Interview','2023-04-25 00:27:08',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (75,NULL,22,'Subject for Print/Merge Document','2023-05-03 22:49:30',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (76,NULL,9,'Subject for Tell a Friend','2022-12-04 20:14:25',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (77,NULL,1,'Subject for Meeting','2023-06-11 20:40:58',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (78,NULL,22,'Subject for Print/Merge Document','2022-10-08 05:33:14',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (79,NULL,56,'Subject for Interview','2023-02-17 05:32:55',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (80,NULL,22,'Subject for Print/Merge Document','2023-01-21 13:35:17',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (81,NULL,9,'Subject for Tell a Friend','2023-02-23 11:28:27',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (82,NULL,9,'Subject for Tell a Friend','2023-06-16 22:53:21',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (83,NULL,1,'Subject for Meeting','2023-03-09 02:57:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (84,NULL,2,'Subject for Phone Call','2023-03-04 03:15:08',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (85,NULL,9,'Subject for Tell a Friend','2023-08-28 12:49:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (86,NULL,9,'Subject for Tell a Friend','2023-02-18 12:32:33',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (87,NULL,9,'Subject for Tell a Friend','2022-09-27 20:58:09',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (88,NULL,2,'Subject for Phone Call','2023-07-15 11:11:57',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (89,NULL,9,'Subject for Tell a Friend','2023-01-19 03:03:17',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (90,NULL,1,'Subject for Meeting','2022-10-22 10:10:46',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (91,NULL,56,'Subject for Interview','2023-05-06 15:26:18',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (92,NULL,56,'Subject for Interview','2022-11-16 07:12:02',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (93,NULL,9,'Subject for Tell a Friend','2023-06-12 01:37:33',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (94,NULL,22,'Subject for Print/Merge Document','2022-10-18 01:26:24',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (95,NULL,22,'Subject for Print/Merge Document','2023-03-31 21:52:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (96,NULL,56,'Subject for Interview','2023-01-06 02:37:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (97,NULL,1,'Subject for Meeting','2023-09-04 08:17:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (98,NULL,2,'Subject for Phone Call','2023-03-21 07:41:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (99,NULL,2,'Subject for Phone Call','2023-01-27 20:45:38',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (100,NULL,22,'Subject for Print/Merge Document','2022-11-19 16:39:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (101,NULL,1,'Subject for Meeting','2023-06-07 09:30:52',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (102,NULL,2,'Subject for Phone Call','2023-05-13 17:03:07',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (103,NULL,9,'Subject for Tell a Friend','2022-09-30 18:51:14',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (104,NULL,56,'Subject for Interview','2022-12-13 01:31:02',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (105,NULL,1,'Subject for Meeting','2023-07-25 02:01:10',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (106,NULL,1,'Subject for Meeting','2023-01-07 13:06:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (107,NULL,56,'Subject for Interview','2023-03-26 19:03:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (108,NULL,2,'Subject for Phone Call','2023-03-18 20:56:28',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (109,NULL,1,'Subject for Meeting','2022-12-14 16:03:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (110,NULL,9,'Subject for Tell a Friend','2023-08-15 03:30:42',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (111,NULL,9,'Subject for Tell a Friend','2023-01-20 04:14:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (112,NULL,1,'Subject for Meeting','2023-04-01 14:10:35',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (113,NULL,22,'Subject for Print/Merge Document','2023-05-03 10:18:46',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (114,NULL,9,'Subject for Tell a Friend','2023-08-18 07:08:06',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (115,NULL,2,'Subject for Phone Call','2023-05-19 20:57:08',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (116,NULL,56,'Subject for Interview','2022-09-22 00:30:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (117,NULL,1,'Subject for Meeting','2023-07-16 19:03:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (118,NULL,1,'Subject for Meeting','2022-12-22 12:57:10',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (119,NULL,2,'Subject for Phone Call','2023-03-10 22:54:32',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (120,NULL,56,'Subject for Interview','2023-02-04 19:32:53',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (121,NULL,1,'Subject for Meeting','2023-05-29 15:01:22',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (122,NULL,9,'Subject for Tell a Friend','2023-01-29 09:50:21',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (123,NULL,22,'Subject for Print/Merge Document','2023-03-31 13:19:23',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (124,NULL,22,'Subject for Print/Merge Document','2022-09-12 13:13:38',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (125,NULL,2,'Subject for Phone Call','2023-05-26 20:38:09',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (126,NULL,2,'Subject for Phone Call','2023-04-22 06:59:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (127,NULL,1,'Subject for Meeting','2022-09-29 04:55:09',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (128,NULL,9,'Subject for Tell a Friend','2023-07-29 08:37:49',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (129,NULL,2,'Subject for Phone Call','2023-08-20 00:10:22',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (130,NULL,1,'Subject for Meeting','2022-11-23 09:04:47',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (131,NULL,56,'Subject for Interview','2023-04-10 16:25:38',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (132,NULL,56,'Subject for Interview','2023-02-04 10:34:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (133,NULL,9,'Subject for Tell a Friend','2023-07-19 00:40:55',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (134,NULL,22,'Subject for Print/Merge Document','2022-12-07 00:52:03',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (135,NULL,9,'Subject for Tell a Friend','2023-06-04 21:04:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (136,NULL,2,'Subject for Phone Call','2022-10-05 20:23:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (137,NULL,2,'Subject for Phone Call','2023-03-20 23:12:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (138,NULL,1,'Subject for Meeting','2023-02-28 01:48:27',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (139,NULL,56,'Subject for Interview','2023-06-10 06:04:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (140,NULL,22,'Subject for Print/Merge Document','2023-03-09 13:54:37',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (141,NULL,1,'Subject for Meeting','2023-05-06 20:54:47',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (142,NULL,56,'Subject for Interview','2023-06-24 07:48:56',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (143,NULL,2,'Subject for Phone Call','2023-05-12 03:41:01',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (144,NULL,56,'Subject for Interview','2023-06-26 02:26:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (145,NULL,1,'Subject for Meeting','2023-06-29 04:16:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (146,NULL,1,'Subject for Meeting','2023-04-14 19:01:04',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (147,NULL,1,'Subject for Meeting','2022-12-12 14:15:06',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (148,NULL,56,'Subject for Interview','2022-12-02 05:00:52',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (149,NULL,9,'Subject for Tell a Friend','2023-07-26 00:44:41',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (150,NULL,2,'Subject for Phone Call','2023-05-29 03:13:22',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (151,NULL,56,'Subject for Interview','2023-02-14 11:48:52',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (152,NULL,1,'Subject for Meeting','2023-05-17 00:50:10',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (153,NULL,22,'Subject for Print/Merge Document','2023-09-03 21:42:02',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (154,NULL,2,'Subject for Phone Call','2023-03-02 02:37:03',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (155,NULL,56,'Subject for Interview','2023-08-04 22:20:32',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (156,NULL,1,'Subject for Meeting','2023-09-02 12:59:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (157,NULL,1,'Subject for Meeting','2023-02-03 00:32:08',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (158,NULL,56,'Subject for Interview','2022-10-08 14:12:28',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (159,NULL,9,'Subject for Tell a Friend','2023-07-29 20:59:57',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (160,NULL,56,'Subject for Interview','2023-08-30 01:47:05',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (161,NULL,9,'Subject for Tell a Friend','2022-10-21 13:20:36',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (162,NULL,1,'Subject for Meeting','2023-07-31 18:59:40',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (163,NULL,56,'Subject for Interview','2023-04-11 21:16:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (164,NULL,56,'Subject for Interview','2023-05-11 14:58:34',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (165,NULL,56,'Subject for Interview','2022-10-21 20:15:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (166,NULL,56,'Subject for Interview','2022-10-17 06:45:37',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (167,NULL,9,'Subject for Tell a Friend','2022-10-08 03:33:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (168,NULL,56,'Subject for Interview','2023-07-14 07:45:18',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (169,NULL,56,'Subject for Interview','2023-05-15 19:19:40',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (170,NULL,9,'Subject for Tell a Friend','2023-09-04 12:47:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (171,NULL,22,'Subject for Print/Merge Document','2023-07-05 07:43:25',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (172,NULL,56,'Subject for Interview','2023-07-12 17:55:12',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (173,NULL,56,'Subject for Interview','2023-01-26 01:32:24',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (174,NULL,22,'Subject for Print/Merge Document','2023-08-31 14:08:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (175,NULL,56,'Subject for Interview','2023-08-24 12:56:35',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (176,NULL,22,'Subject for Print/Merge Document','2022-11-30 06:34:47',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (177,NULL,1,'Subject for Meeting','2023-01-03 08:23:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (178,NULL,9,'Subject for Tell a Friend','2022-12-10 04:37:43',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (179,NULL,22,'Subject for Print/Merge Document','2022-11-18 19:27:43',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (180,NULL,22,'Subject for Print/Merge Document','2023-09-03 10:13:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (181,NULL,2,'Subject for Phone Call','2022-12-30 02:36:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (182,NULL,9,'Subject for Tell a Friend','2022-10-02 04:21:32',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (183,NULL,9,'Subject for Tell a Friend','2023-02-25 22:54:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (184,NULL,2,'Subject for Phone Call','2023-04-25 16:48:31',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (185,NULL,2,'Subject for Phone Call','2023-06-30 18:45:33',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (186,NULL,2,'Subject for Phone Call','2022-09-12 18:36:17',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (187,NULL,9,'Subject for Tell a Friend','2023-03-04 05:55:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (188,NULL,9,'Subject for Tell a Friend','2023-01-04 01:51:35',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (189,NULL,22,'Subject for Print/Merge Document','2023-01-08 18:19:55',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (190,NULL,56,'Subject for Interview','2022-12-15 18:58:38',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (191,NULL,1,'Subject for Meeting','2023-03-30 15:19:34',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (192,NULL,22,'Subject for Print/Merge Document','2023-07-02 15:02:14',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (193,NULL,56,'Subject for Interview','2023-03-23 17:12:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (194,NULL,56,'Subject for Interview','2023-04-30 18:33:03',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (195,NULL,9,'Subject for Tell a Friend','2022-10-26 01:24:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (196,NULL,22,'Subject for Print/Merge Document','2022-12-06 00:39:49',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (197,NULL,9,'Subject for Tell a Friend','2022-12-12 09:57:22',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (198,NULL,1,'Subject for Meeting','2023-05-16 07:55:49',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (199,NULL,9,'Subject for Tell a Friend','2022-11-23 10:09:36',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (200,NULL,22,'Subject for Print/Merge Document','2023-07-04 10:30:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (201,NULL,22,'Subject for Print/Merge Document','2022-10-05 11:28:15',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (202,NULL,9,'Subject for Tell a Friend','2023-08-07 22:29:29',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (203,NULL,56,'Subject for Interview','2022-12-19 05:55:36',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (204,NULL,9,'Subject for Tell a Friend','2023-05-11 02:58:53',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (205,NULL,1,'Subject for Meeting','2023-01-05 09:07:44',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (206,NULL,2,'Subject for Phone Call','2023-06-07 11:05:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (207,NULL,56,'Subject for Interview','2023-01-22 12:00:17',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (208,NULL,2,'Subject for Phone Call','2023-04-14 05:30:28',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (209,NULL,1,'Subject for Meeting','2023-08-15 23:59:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (210,NULL,9,'Subject for Tell a Friend','2022-12-20 17:41:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (211,NULL,2,'Subject for Phone Call','2022-11-20 11:52:08',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (212,NULL,1,'Subject for Meeting','2022-11-01 10:01:22',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (213,NULL,56,'Subject for Interview','2023-05-20 18:18:58',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (214,NULL,9,'Subject for Tell a Friend','2023-03-14 21:20:47',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (215,NULL,22,'Subject for Print/Merge Document','2023-01-07 04:29:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (216,NULL,22,'Subject for Print/Merge Document','2022-11-08 02:30:04',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (217,NULL,2,'Subject for Phone Call','2022-12-18 20:51:50',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (218,NULL,56,'Subject for Interview','2022-09-25 12:10:56',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (219,NULL,9,'Subject for Tell a Friend','2023-04-10 00:37:33',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (220,NULL,56,'Subject for Interview','2023-04-17 17:50:42',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (221,NULL,22,'Subject for Print/Merge Document','2023-02-23 18:49:50',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (222,NULL,1,'Subject for Meeting','2023-04-28 01:56:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (223,NULL,22,'Subject for Print/Merge Document','2022-12-19 05:40:58',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (224,NULL,56,'Subject for Interview','2023-08-08 16:23:02',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (225,NULL,1,'Subject for Meeting','2022-12-26 04:57:10',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (226,NULL,1,'Subject for Meeting','2023-05-30 13:20:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (227,NULL,22,'Subject for Print/Merge Document','2023-01-19 17:30:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (228,NULL,2,'Subject for Phone Call','2023-03-27 05:06:35',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (229,NULL,22,'Subject for Print/Merge Document','2023-09-01 21:28:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (230,NULL,1,'Subject for Meeting','2023-05-09 15:16:22',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (231,NULL,56,'Subject for Interview','2023-05-19 17:33:17',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (232,NULL,56,'Subject for Interview','2023-09-06 02:42:31',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (233,NULL,9,'Subject for Tell a Friend','2023-08-20 17:46:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (234,NULL,2,'Subject for Phone Call','2022-09-08 19:59:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (235,NULL,22,'Subject for Print/Merge Document','2023-06-30 23:11:41',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (236,NULL,9,'Subject for Tell a Friend','2023-08-06 21:01:54',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (237,NULL,2,'Subject for Phone Call','2022-11-03 22:09:29',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (238,NULL,1,'Subject for Meeting','2022-09-12 10:23:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (239,NULL,1,'Subject for Meeting','2023-09-03 07:54:47',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (240,NULL,9,'Subject for Tell a Friend','2023-05-21 16:17:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (241,NULL,9,'Subject for Tell a Friend','2022-09-10 23:09:58',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (242,NULL,2,'Subject for Phone Call','2023-01-23 02:16:16',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (243,NULL,22,'Subject for Print/Merge Document','2022-09-08 20:28:22',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (244,NULL,22,'Subject for Print/Merge Document','2023-03-25 16:37:39',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (245,NULL,56,'Subject for Interview','2022-10-08 01:16:47',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (246,NULL,56,'Subject for Interview','2023-02-28 16:51:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (247,NULL,2,'Subject for Phone Call','2023-04-27 21:28:07',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (248,NULL,1,'Subject for Meeting','2023-06-23 02:39:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (249,NULL,56,'Subject for Interview','2022-11-14 09:00:03',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (250,NULL,9,'Subject for Tell a Friend','2023-07-29 11:04:54',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (251,NULL,2,'Subject for Phone Call','2022-10-01 08:21:09',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (252,NULL,2,'Subject for Phone Call','2023-03-22 21:52:39',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (253,NULL,22,'Subject for Print/Merge Document','2022-12-22 12:07:03',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (254,NULL,56,'Subject for Interview','2023-06-08 02:51:46',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (255,NULL,2,'Subject for Phone Call','2023-05-24 01:56:45',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (256,NULL,9,'Subject for Tell a Friend','2023-02-27 07:47:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (257,NULL,9,'Subject for Tell a Friend','2023-06-14 07:26:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (258,NULL,22,'Subject for Print/Merge Document','2023-01-10 14:04:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (259,NULL,1,'Subject for Meeting','2023-02-01 12:36:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (260,NULL,1,'Subject for Meeting','2023-05-18 19:38:06',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (261,NULL,56,'Subject for Interview','2023-06-30 07:19:08',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (262,NULL,1,'Subject for Meeting','2022-11-14 21:29:44',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (263,NULL,22,'Subject for Print/Merge Document','2023-07-13 23:23:53',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (264,NULL,22,'Subject for Print/Merge Document','2023-03-18 13:59:45',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (265,NULL,22,'Subject for Print/Merge Document','2023-07-25 10:43:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (266,NULL,56,'Subject for Interview','2023-04-25 22:52:45',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (267,NULL,22,'Subject for Print/Merge Document','2023-08-19 10:42:08',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (268,NULL,9,'Subject for Tell a Friend','2023-04-13 03:20:38',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (269,NULL,1,'Subject for Meeting','2023-05-27 18:51:19',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (270,NULL,1,'Subject for Meeting','2023-03-22 21:52:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (271,NULL,1,'Subject for Meeting','2022-09-21 12:19:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (272,NULL,9,'Subject for Tell a Friend','2023-08-19 12:02:34',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (273,NULL,1,'Subject for Meeting','2023-05-08 21:33:39',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (274,NULL,22,'Subject for Print/Merge Document','2023-04-24 22:20:58',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (275,NULL,2,'Subject for Phone Call','2022-09-30 15:42:46',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (276,NULL,9,'Subject for Tell a Friend','2023-03-12 07:55:21',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (277,NULL,1,'Subject for Meeting','2023-07-22 00:06:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (278,NULL,22,'Subject for Print/Merge Document','2022-09-08 10:41:32',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (279,NULL,9,'Subject for Tell a Friend','2023-08-16 11:15:50',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (280,NULL,2,'Subject for Phone Call','2023-03-15 15:46:53',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (281,NULL,9,'Subject for Tell a Friend','2022-11-02 16:51:14',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (282,NULL,2,'Subject for Phone Call','2023-05-19 10:31:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (283,NULL,2,'Subject for Phone Call','2023-02-11 05:02:19',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (284,NULL,2,'Subject for Phone Call','2022-09-24 14:23:41',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (285,NULL,56,'Subject for Interview','2022-11-27 14:18:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (286,NULL,56,'Subject for Interview','2022-09-24 17:20:34',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (287,NULL,22,'Subject for Print/Merge Document','2023-08-20 18:27:29',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (288,NULL,2,'Subject for Phone Call','2023-08-12 19:30:38',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (289,NULL,22,'Subject for Print/Merge Document','2023-02-18 15:39:07',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (290,NULL,22,'Subject for Print/Merge Document','2023-04-15 19:50:20',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (291,NULL,9,'Subject for Tell a Friend','2023-04-15 17:33:01',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (292,NULL,2,'Subject for Phone Call','2023-06-18 10:23:58',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (293,NULL,56,'Subject for Interview','2023-01-27 03:45:59',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (294,NULL,1,'Subject for Meeting','2022-11-01 20:15:35',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (295,NULL,2,'Subject for Phone Call','2023-04-06 13:16:30',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (296,NULL,9,'Subject for Tell a Friend','2023-08-27 08:40:54',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (297,NULL,1,'Subject for Meeting','2023-05-19 18:21:00',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (298,NULL,56,'Subject for Interview','2022-09-26 17:45:01',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (299,NULL,9,'Subject for Tell a Friend','2023-07-29 02:53:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (300,NULL,1,'Subject for Meeting','2022-09-29 02:02:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (301,NULL,22,'Subject for Print/Merge Document','2023-05-05 17:25:10',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (302,NULL,2,'Subject for Phone Call','2023-05-08 09:50:47',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (303,NULL,1,'Subject for Meeting','2022-09-11 02:26:09',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (304,NULL,56,'Subject for Interview','2023-05-17 07:51:18',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (305,NULL,56,'Subject for Interview','2023-06-06 21:07:28',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (306,NULL,9,'Subject for Tell a Friend','2023-03-06 21:15:01',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (307,NULL,56,'Subject for Interview','2022-09-12 16:38:17',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (308,NULL,22,'Subject for Print/Merge Document','2023-02-10 18:15:25',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (309,NULL,9,'Subject for Tell a Friend','2022-09-08 13:16:59',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (310,NULL,22,'Subject for Print/Merge Document','2023-06-16 08:16:17',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (311,NULL,22,'Subject for Print/Merge Document','2023-04-08 01:16:13',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (312,NULL,56,'Subject for Interview','2022-10-06 17:53:18',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (313,NULL,56,'Subject for Interview','2023-02-03 19:45:11',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (314,NULL,56,'Subject for Interview','2023-07-06 01:44:33',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (315,NULL,9,'Subject for Tell a Friend','2023-02-11 04:43:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (316,NULL,22,'Subject for Print/Merge Document','2023-05-02 11:24:45',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (317,NULL,2,'Subject for Phone Call','2022-10-05 08:19:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (318,NULL,9,'Subject for Tell a Friend','2023-05-05 06:09:45',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (319,NULL,56,'Subject for Interview','2023-06-16 12:30:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (320,NULL,22,'Subject for Print/Merge Document','2022-12-07 12:58:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (321,NULL,56,'Subject for Interview','2023-08-01 18:28:14',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (322,NULL,2,'Subject for Phone Call','2023-05-08 23:28:14',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (323,NULL,2,'Subject for Phone Call','2022-10-23 06:15:37',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (324,NULL,1,'Subject for Meeting','2022-11-11 16:33:06',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (325,NULL,56,'Subject for Interview','2023-03-27 21:09:58',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (326,NULL,2,'Subject for Phone Call','2023-06-23 19:36:02',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (327,NULL,2,'Subject for Phone Call','2023-06-13 02:49:59',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (328,NULL,56,'Subject for Interview','2023-01-22 06:49:00',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (329,NULL,1,'Subject for Meeting','2022-11-02 00:51:22',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (330,NULL,9,'Subject for Tell a Friend','2022-10-11 09:00:56',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (331,NULL,22,'Subject for Print/Merge Document','2023-02-23 05:23:34',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (332,NULL,1,'Subject for Meeting','2023-07-04 04:04:09',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (333,NULL,2,'Subject for Phone Call','2023-01-07 03:18:04',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (334,NULL,1,'Subject for Meeting','2022-12-09 13:08:02',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (335,NULL,9,'Subject for Tell a Friend','2023-01-02 07:12:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (336,NULL,56,'Subject for Interview','2022-10-05 10:11:53',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (337,NULL,56,'Subject for Interview','2023-07-07 16:46:24',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (338,NULL,22,'Subject for Print/Merge Document','2023-09-03 01:20:01',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (339,NULL,1,'Subject for Meeting','2023-04-22 17:48:38',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (340,NULL,9,'Subject for Tell a Friend','2023-04-13 07:23:50',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (341,NULL,9,'Subject for Tell a Friend','2023-06-30 09:33:39',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (342,NULL,22,'Subject for Print/Merge Document','2022-11-02 02:02:29',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (343,NULL,2,'Subject for Phone Call','2023-03-07 08:50:51',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (344,NULL,22,'Subject for Print/Merge Document','2023-08-23 17:51:46',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (345,NULL,1,'Subject for Meeting','2022-12-18 04:00:50',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:19','2023-09-06 22:52:19'), + (346,NULL,1,'Subject for Meeting','2023-05-30 06:20:30',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (347,NULL,22,'Subject for Print/Merge Document','2022-10-28 22:47:18',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (348,NULL,9,'Subject for Tell a Friend','2022-12-06 08:44:21',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (349,NULL,22,'Subject for Print/Merge Document','2023-04-26 13:16:41',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (350,NULL,22,'Subject for Print/Merge Document','2022-11-09 10:39:05',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (351,NULL,22,'Subject for Print/Merge Document','2023-04-04 10:27:29',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (352,NULL,2,'Subject for Phone Call','2023-09-04 10:10:21',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (353,NULL,2,'Subject for Phone Call','2022-11-29 07:52:44',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (354,NULL,9,'Subject for Tell a Friend','2023-08-31 16:02:34',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (355,NULL,1,'Subject for Meeting','2023-01-27 01:06:35',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (356,NULL,1,'Subject for Meeting','2023-03-24 15:02:29',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (357,NULL,2,'Subject for Phone Call','2023-04-18 02:23:29',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (358,NULL,1,'Subject for Meeting','2022-12-28 10:53:20',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (359,NULL,56,'Subject for Interview','2022-09-08 02:45:51',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (360,NULL,2,'Subject for Phone Call','2022-12-22 17:04:55',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (361,NULL,22,'Subject for Print/Merge Document','2022-12-22 05:07:49',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (362,NULL,1,'Subject for Meeting','2022-12-28 14:32:09',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (363,NULL,22,'Subject for Print/Merge Document','2022-10-26 19:48:44',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (364,NULL,1,'Subject for Meeting','2022-11-23 06:55:05',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (365,NULL,9,'Subject for Tell a Friend','2023-04-18 17:13:07',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (366,NULL,56,'Subject for Interview','2023-02-21 08:31:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (367,NULL,56,'Subject for Interview','2022-12-24 09:16:43',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (368,NULL,2,'Subject for Phone Call','2022-09-18 03:06:16',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (369,NULL,1,'Subject for Meeting','2023-05-09 08:31:10',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (370,NULL,56,'Subject for Interview','2022-09-17 12:11:06',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (371,NULL,9,'Subject for Tell a Friend','2023-05-27 17:57:50',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (372,NULL,22,'Subject for Print/Merge Document','2023-07-10 14:38:05',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (373,NULL,2,'Subject for Phone Call','2023-02-11 00:37:46',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (374,NULL,56,'Subject for Interview','2023-05-23 09:26:10',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (375,NULL,22,'Subject for Print/Merge Document','2023-02-21 09:28:18',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (376,NULL,22,'Subject for Print/Merge Document','2022-11-09 00:38:36',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (377,NULL,22,'Subject for Print/Merge Document','2023-06-13 20:10:48',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (378,NULL,22,'Subject for Print/Merge Document','2023-09-06 10:54:32',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (379,NULL,22,'Subject for Print/Merge Document','2023-03-02 13:18:19',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (380,NULL,22,'Subject for Print/Merge Document','2023-05-10 23:17:23',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (381,NULL,56,'Subject for Interview','2023-05-02 01:00:47',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (382,NULL,2,'Subject for Phone Call','2023-05-19 14:48:04',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (383,NULL,2,'Subject for Phone Call','2023-07-17 14:31:51',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (384,NULL,2,'Subject for Phone Call','2023-08-11 02:20:09',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (385,NULL,1,'Subject for Meeting','2022-11-09 11:35:33',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (386,NULL,56,'Subject for Interview','2023-05-11 20:19:06',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (387,NULL,9,'Subject for Tell a Friend','2023-02-08 11:20:36',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (388,NULL,22,'Subject for Print/Merge Document','2022-10-08 19:26:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (389,NULL,1,'Subject for Meeting','2022-12-11 14:00:35',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (390,NULL,2,'Subject for Phone Call','2022-09-28 06:01:52',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (391,NULL,1,'Subject for Meeting','2023-07-25 16:42:28',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (392,NULL,1,'Subject for Meeting','2023-08-13 18:46:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (393,NULL,9,'Subject for Tell a Friend','2023-02-12 09:06:05',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (394,NULL,9,'Subject for Tell a Friend','2022-10-09 13:09:55',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (395,NULL,56,'Subject for Interview','2023-01-19 01:12:52',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (396,NULL,22,'Subject for Print/Merge Document','2022-09-11 23:10:06',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (397,NULL,56,'Subject for Interview','2023-07-03 13:51:09',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (398,NULL,22,'Subject for Print/Merge Document','2022-11-02 17:42:37',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (399,NULL,1,'Subject for Meeting','2023-08-22 07:25:34',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (400,NULL,22,'Subject for Print/Merge Document','2023-06-16 22:02:44',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (401,NULL,2,'Subject for Phone Call','2023-03-02 17:18:43',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (402,NULL,56,'Subject for Interview','2023-04-22 10:01:21',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (403,NULL,9,'Subject for Tell a Friend','2022-09-19 08:59:23',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (404,NULL,9,'Subject for Tell a Friend','2022-11-16 23:14:16',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (405,NULL,9,'Subject for Tell a Friend','2023-04-23 10:18:34',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (406,NULL,9,'Subject for Tell a Friend','2022-12-31 01:25:45',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (407,NULL,1,'Subject for Meeting','2023-05-05 00:29:08',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (408,NULL,56,'Subject for Interview','2023-06-22 17:13:44',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (409,NULL,22,'Subject for Print/Merge Document','2023-05-15 20:21:44',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (410,NULL,56,'Subject for Interview','2023-03-11 01:37:12',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (411,NULL,56,'Subject for Interview','2023-03-28 12:36:11',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (412,NULL,22,'Subject for Print/Merge Document','2022-12-14 17:59:40',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (413,NULL,9,'Subject for Tell a Friend','2023-04-03 17:14:21',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (414,NULL,2,'Subject for Phone Call','2023-07-05 02:57:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (415,NULL,2,'Subject for Phone Call','2023-06-21 03:45:31',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (416,NULL,2,'Subject for Phone Call','2022-10-22 10:30:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (417,NULL,1,'Subject for Meeting','2022-10-14 02:21:38',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (418,NULL,56,'Subject for Interview','2023-02-06 11:31:31',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (419,NULL,9,'Subject for Tell a Friend','2023-08-06 18:40:11',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (420,NULL,56,'Subject for Interview','2023-08-10 05:01:48',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (421,NULL,1,'Subject for Meeting','2023-02-03 11:13:27',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (422,NULL,1,'Subject for Meeting','2023-02-21 14:32:47',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (423,NULL,2,'Subject for Phone Call','2022-11-07 05:45:27',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (424,NULL,56,'Subject for Interview','2023-07-19 02:23:25',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (425,NULL,56,'Subject for Interview','2023-07-31 07:14:44',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (426,NULL,9,'Subject for Tell a Friend','2023-08-24 10:06:12',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (427,NULL,1,'Subject for Meeting','2022-12-11 23:54:08',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (428,NULL,1,'Subject for Meeting','2022-10-20 05:54:12',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (429,NULL,2,'Subject for Phone Call','2022-09-26 21:33:00',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (430,NULL,56,'Subject for Interview','2023-03-25 20:40:35',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (431,NULL,1,'Subject for Meeting','2023-04-05 12:39:16',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (432,NULL,9,'Subject for Tell a Friend','2023-08-27 18:51:04',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (433,NULL,56,'Subject for Interview','2023-02-10 01:47:01',5,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (434,NULL,2,'Subject for Phone Call','2023-09-03 05:37:48',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (435,NULL,2,'Subject for Phone Call','2023-06-28 21:59:18',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (436,NULL,2,'Subject for Phone Call','2023-06-04 19:13:23',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (437,NULL,22,'Subject for Print/Merge Document','2022-11-15 03:24:12',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (438,NULL,22,'Subject for Print/Merge Document','2023-04-14 01:34:57',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (439,NULL,22,'Subject for Print/Merge Document','2023-04-03 14:27:58',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (440,NULL,56,'Subject for Interview','2023-07-24 15:26:40',1,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (441,NULL,22,'Subject for Print/Merge Document','2023-08-31 03:39:10',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (442,NULL,56,'Subject for Interview','2023-04-02 03:47:49',4,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (443,NULL,9,'Subject for Tell a Friend','2023-07-03 20:52:49',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (444,NULL,2,'Subject for Phone Call','2023-02-05 00:10:32',2,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (445,NULL,22,'Subject for Print/Merge Document','2022-09-16 23:01:47',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (446,NULL,1,'Subject for Meeting','2023-08-16 05:59:04',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (447,NULL,22,'Subject for Print/Merge Document','2022-12-14 02:51:56',3,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (448,NULL,2,'Subject for Phone Call','2023-08-22 08:05:07',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (449,NULL,2,'Subject for Phone Call','2023-06-04 12:30:31',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (450,NULL,9,'Subject for Tell a Friend','2023-05-05 14:56:51',6,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (451,1,6,'$ 125 April Mailer 1','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (452,2,6,'$ 50 Online: Save the Penguins','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (453,3,6,'£ 25 April Mailer 1','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (454,4,6,'$ 50 Online: Save the Penguins','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (455,5,6,'$ 50 Online: Save the Penguins','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (456,6,6,'$ 500 April Mailer 1','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (457,7,6,'$ 1750 Online: Save the Penguins','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (458,8,6,'$ 50 Online: Save the Penguins','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (459,9,6,'$ 10 Online: Help CiviCRM','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (460,10,6,'$ 250 Online: Help CiviCRM','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (461,11,6,'Â¥ 500 ','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (462,12,6,'$ 50 Online: Save the Penguins','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (463,13,6,'$ 50 ','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (464,14,6,'$ 50 ','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (465,15,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (466,16,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (467,17,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (468,18,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (469,19,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (470,20,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (471,21,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (472,22,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (473,23,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (474,24,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (475,25,6,'$ 25 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (476,26,6,'$ 10 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (477,27,6,'$ 10 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (478,28,6,'$ 10 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (479,29,6,'$ 10 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (480,30,6,'$ 10 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (481,31,6,'€ 5 Recurring contribution','2023-11-07 08:52:20',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (482,1,7,'General','2023-09-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (483,2,7,'Student','2023-09-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (484,3,7,'General','2023-09-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (485,4,7,'Student','2023-09-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (486,5,7,'General','2021-08-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (487,6,7,'Student','2023-09-02 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (488,7,7,'General','2023-09-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (489,8,7,'Student','2023-08-31 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (490,9,7,'General','2023-08-30 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (491,10,7,'Student','2022-08-29 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (492,11,7,'Lifetime','2023-08-28 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (493,12,7,'Student','2023-08-27 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (494,13,7,'General','2023-08-26 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (495,14,7,'Student','2023-08-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (496,15,7,'General','2021-05-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (497,16,7,'Student','2023-08-23 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (498,17,7,'General','2023-08-22 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (499,18,7,'Student','2023-08-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (500,19,7,'General','2023-08-20 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (501,20,7,'General','2021-04-08 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (502,21,7,'General','2023-08-18 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (503,22,7,'Lifetime','2023-08-17 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (504,23,7,'General','2023-08-16 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (505,24,7,'Student','2023-08-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (506,25,7,'Student','2022-08-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (507,26,7,'Student','2023-08-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (508,27,7,'General','2023-08-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (509,28,7,'Student','2023-08-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (510,29,7,'General','2023-08-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (511,30,7,'Student','2022-08-09 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (512,32,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (513,33,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (514,34,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (515,35,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (516,36,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (517,37,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (518,38,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (519,39,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (520,40,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (521,41,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (522,42,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (523,43,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (524,44,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (525,45,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (526,46,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (527,47,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (528,48,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (529,49,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (530,50,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (531,51,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (532,52,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (533,53,6,'$ 1200.00 - Lifetime Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (534,54,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (535,55,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (536,56,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (537,57,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (538,58,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (539,59,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (540,60,6,'$ 100.00 - General Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (541,61,6,'$ 50.00 - Student Membership: Offline signup','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Membership Payment',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (543,1,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (544,2,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (545,3,5,'NULL','2008-05-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (546,4,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (547,5,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (548,6,5,'NULL','2008-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (549,7,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (550,8,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (551,9,5,'NULL','2008-02-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (552,10,5,'NULL','2008-02-01 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (553,11,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (554,12,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (555,13,5,'NULL','2008-06-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (556,14,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (557,15,5,'NULL','2008-07-04 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (558,16,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (559,17,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (560,18,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (561,19,5,'NULL','2008-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (562,20,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (563,21,5,'NULL','2008-03-25 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (564,22,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (565,23,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (566,24,5,'NULL','2008-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (567,25,5,'NULL','2008-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (568,26,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (569,27,5,'NULL','2008-05-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (570,28,5,'NULL','2009-12-12 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (571,29,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (572,30,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (573,31,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (574,32,5,'NULL','2009-07-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (575,33,5,'NULL','2009-03-07 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (576,34,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (577,35,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (578,36,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (579,37,5,'NULL','2009-03-06 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (580,38,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (581,39,5,'NULL','2008-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (582,40,5,'NULL','2009-12-14 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (583,41,5,'NULL','2009-01-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (584,42,5,'NULL','2009-12-15 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (585,43,5,'NULL','2009-03-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (586,44,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (587,45,5,'NULL','2009-01-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (588,46,5,'NULL','2009-12-13 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (589,47,5,'NULL','2009-10-21 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (590,48,5,'NULL','2009-12-10 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (591,49,5,'NULL','2009-03-11 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (592,50,5,'NULL','2009-04-05 00:00:00',NULL,NULL,NULL,NULL,NULL,2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (593,63,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (594,64,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (595,65,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (596,66,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (597,67,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (598,68,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (599,69,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (600,70,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (601,71,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (602,72,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (603,73,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (604,74,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (605,75,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (606,76,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (607,77,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (608,78,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (609,79,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (610,80,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (611,81,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (612,82,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (613,83,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (614,84,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (615,85,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (616,86,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (617,87,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (618,88,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (619,89,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (620,90,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (621,91,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (622,92,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (623,93,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (624,94,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (625,95,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (626,96,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (627,97,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (628,98,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (629,99,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (630,100,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (631,101,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (632,102,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (633,103,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (634,104,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (635,105,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (636,106,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (637,107,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (638,108,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (639,109,6,'$ 50.00 - Fall Fundraiser Dinner : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (640,110,6,'$ 50.00 - Summer Solstice Festival Day Concert : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (641,111,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'), + (642,112,6,'$ 800.00 - Rain-forest Cup Youth Soccer Tournament : Offline registration','2023-09-07 08:52:20',NULL,NULL,NULL,NULL,'Participant',2,NULL,NULL,0,NULL,0,NULL,1,NULL,NULL,0,NULL,NULL,NULL,0,'2023-09-06 22:52:20','2023-09-06 22:52:20'); /*!40000 ALTER TABLE `civicrm_activity` ENABLE KEYS */; UNLOCK TABLES; @@ -733,967 +733,959 @@ UNLOCK TABLES; LOCK TABLES `civicrm_activity_contact` WRITE; /*!40000 ALTER TABLE `civicrm_activity_contact` DISABLE KEYS */; INSERT INTO `civicrm_activity_contact` (`id`, `activity_id`, `contact_id`, `record_type_id`) VALUES - (165,94,1,3), - (259,146,1,3), - (445,245,1,3), - (592,323,1,3), - (353,197,2,3), - (708,386,2,3), - (821,451,2,2), - (111,63,3,3), - (318,177,3,3), - (291,162,4,3), - (320,178,4,3), - (485,267,4,3), - (544,298,4,3), - (624,342,4,3), - (822,452,4,2), - (825,455,4,2), - (175,99,5,3), - (500,275,5,3), - (561,307,6,3), - (823,453,6,2), - (925,555,6,2), - (82,46,7,3), - (576,315,7,3), - (607,332,7,3), - (628,344,7,3), - (928,558,7,2), - (59,34,8,3), - (303,169,8,3), - (349,195,8,3), - (640,350,8,3), - (824,454,8,2), - (71,40,9,3), - (273,153,9,3), - (423,233,9,3), - (455,251,10,3), - (386,214,11,3), - (779,428,11,3), - (876,506,11,2), - (906,536,11,2), - (468,258,12,3), - (672,368,12,3), - (736,402,12,3), - (271,152,13,3), - (492,271,13,3), - (915,545,13,2), - (135,77,14,3), - (139,79,14,3), - (355,198,14,3), - (167,95,15,3), - (403,223,15,3), - (443,244,15,3), - (249,141,16,3), - (268,151,16,2), - (270,152,16,2), - (272,153,16,2), - (274,154,16,2), - (276,155,16,2), - (278,156,16,2), - (280,157,16,2), - (282,158,16,2), - (284,159,16,2), - (286,160,16,2), - (288,161,16,2), - (290,162,16,2), - (292,163,16,2), - (294,164,16,2), - (296,165,16,2), - (297,166,16,2), - (299,167,16,2), - (301,168,16,2), - (302,169,16,2), - (304,170,16,2), - (306,171,16,2), - (308,172,16,2), - (310,173,16,2), - (312,174,16,2), - (313,175,16,2), - (315,176,16,2), - (317,177,16,2), - (319,178,16,2), - (321,179,16,2), - (323,180,16,2), - (325,181,16,2), - (326,182,16,2), - (328,183,16,2), - (329,184,16,2), - (331,185,16,2), - (333,186,16,2), - (335,187,16,2), - (337,188,16,2), - (338,189,16,2), - (339,190,16,2), - (340,191,16,2), - (342,192,16,2), - (344,193,16,2), - (346,194,16,2), - (348,195,16,2), - (350,196,16,2), - (352,197,16,2), - (354,198,16,2), - (356,199,16,2), - (358,200,16,2), - (359,201,16,2), - (361,202,16,2), - (363,203,16,2), - (365,204,16,2), - (367,205,16,2), - (369,206,16,2), - (371,207,16,2), - (373,208,16,2), - (375,209,16,2), - (377,210,16,2), - (379,211,16,2), - (381,212,16,2), - (383,213,16,2), - (385,214,16,2), - (387,215,16,2), - (389,216,16,2), - (391,217,16,2), - (393,218,16,2), - (395,219,16,2), - (397,220,16,2), - (398,221,16,2), - (400,222,16,2), - (402,223,16,2), - (404,224,16,2), - (406,225,16,2), - (408,226,16,2), - (410,227,16,2), - (412,228,16,2), - (414,229,16,2), - (416,230,16,2), - (418,231,16,2), - (420,232,16,2), - (422,233,16,2), - (424,234,16,2), - (426,235,16,2), - (427,236,16,2), - (429,237,16,2), - (431,238,16,2), - (433,239,16,2), - (435,240,16,2), - (437,241,16,2), - (438,242,16,2), - (440,243,16,2), - (442,244,16,2), - (444,245,16,2), - (446,246,16,2), - (447,247,16,2), - (449,248,16,2), - (451,249,16,2), - (453,250,16,2), - (454,251,16,2), - (456,252,16,2), - (458,253,16,2), - (460,254,16,2), - (461,255,16,2), - (463,256,16,2), - (465,257,16,2), - (467,258,16,2), - (469,259,16,2), - (471,260,16,2), - (473,261,16,2), - (475,262,16,2), - (477,263,16,2), - (479,264,16,2), - (481,265,16,2), - (482,266,16,2), - (484,267,16,2), - (486,268,16,2), - (487,269,16,2), - (489,270,16,2), - (491,271,16,2), - (493,272,16,2), - (495,273,16,2), - (497,274,16,2), - (499,275,16,2), - (501,276,16,2), - (503,277,16,2), - (505,278,16,2), - (507,279,16,2), - (509,280,16,2), - (510,281,16,2), - (511,282,16,2), - (513,283,16,2), - (515,284,16,2), - (517,285,16,2), - (519,286,16,2), - (521,287,16,2), - (523,288,16,2), - (525,289,16,2), - (527,290,16,2), - (529,291,16,2), - (531,292,16,2), - (533,293,16,2), - (535,294,16,2), - (537,295,16,2), - (539,296,16,2), - (541,297,16,2), - (543,298,16,2), - (545,299,16,2), - (546,300,16,2), - (653,357,16,3), - (655,358,16,3), - (692,378,16,3), - (826,456,16,2), - (30,17,17,3), - (205,115,17,3), - (396,219,17,3), - (857,487,17,2), - (887,517,17,2), - (300,167,18,3), - (324,180,18,3), - (472,260,18,3), - (706,385,18,3), - (360,201,19,3), - (514,283,19,3), - (617,338,19,3), - (638,349,19,3), - (674,369,19,3), - (827,457,19,2), - (61,35,20,3), - (90,50,20,3), - (668,366,20,3), - (11,6,21,3), - (76,43,21,3), - (362,202,21,3), - (781,429,21,3), - (242,137,22,3), - (372,207,22,3), - (713,389,22,3), - (43,24,23,3), - (570,312,23,3), - (801,440,23,3), - (856,486,23,2), - (886,516,23,2), - (951,581,23,2), - (94,52,24,3), - (293,163,24,3), - (466,257,24,3), - (52,30,25,3), - (161,92,25,3), - (279,156,25,3), - (478,263,25,3), - (518,285,25,3), - (698,381,25,3), - (766,421,25,3), - (792,435,25,3), - (820,450,25,3), - (229,129,26,3), - (366,204,26,3), - (642,351,26,3), - (694,379,26,3), - (133,76,27,3), - (194,109,27,3), - (436,240,27,3), - (73,41,28,3), - (86,48,28,3), - (269,151,28,3), - (542,297,28,3), - (127,73,29,3), - (399,221,29,3), - (636,348,29,3), - (745,408,29,3), - (807,443,29,3), - (3,2,30,3), - (56,32,30,3), - (476,262,30,3), - (743,407,30,3), - (171,97,31,3), - (357,199,31,3), - (20,11,32,3), - (37,21,32,3), - (188,106,32,3), - (502,276,32,3), - (833,463,32,2), - (834,464,32,2), - (932,562,32,2), - (125,72,33,3), - (196,110,33,3), - (255,144,33,3), - (464,256,33,3), - (621,340,33,3), - (870,500,33,2), - (900,530,33,2), - (169,96,34,3), - (341,191,34,3), - (508,279,34,3), - (830,460,34,2), - (307,171,35,3), - (459,253,35,3), - (613,336,35,3), - (790,434,35,3), - (805,442,35,3), - (948,578,35,2), - (96,53,36,3), - (78,44,37,3), - (131,75,37,3), - (192,108,37,3), - (480,264,37,3), - (198,111,38,3), - (553,303,38,3), - (632,346,38,3), - (584,319,39,3), - (9,5,40,3), - (647,354,40,3), - (926,556,40,2), - (27,15,41,3), - (39,22,41,3), - (88,49,41,3), - (309,172,41,3), - (347,194,41,3), - (392,217,41,3), - (574,314,41,3), - (283,158,42,3), - (364,203,42,3), - (390,216,42,3), - (434,239,42,3), - (462,255,42,3), - (540,296,43,3), - (676,370,43,3), - (678,371,43,3), - (811,445,43,3), - (832,462,43,2), - (305,170,44,3), - (551,302,44,3), - (869,499,44,2), - (899,529,44,2), - (22,12,45,3), - (142,81,45,3), - (186,105,45,3), - (439,242,45,3), - (711,388,45,3), - (785,431,45,3), - (84,47,46,3), - (378,210,46,3), - (181,102,47,3), - (311,173,47,3), - (547,300,47,3), - (657,359,47,3), - (715,390,47,3), - (63,36,48,3), - (7,4,49,3), - (32,18,49,3), - (240,136,49,3), - (771,424,49,3), - (504,277,50,3), - (680,372,50,3), - (702,383,50,3), - (704,384,50,3), - (760,417,50,3), - (47,27,51,3), - (343,192,51,3), - (630,345,51,3), - (670,367,51,3), - (65,37,52,3), - (267,150,52,3), - (345,193,52,3), - (732,400,52,3), - (914,544,52,2), - (146,83,53,3), - (159,91,53,3), - (257,145,53,3), - (80,45,54,3), - (177,100,54,3), - (368,205,54,3), - (441,243,54,3), - (207,116,55,3), - (394,218,55,3), - (417,230,55,3), - (787,432,55,3), - (861,491,55,2), - (891,521,55,2), - (173,98,56,3), - (244,138,56,3), - (721,393,56,3), - (209,117,57,3), - (384,213,57,3), - (409,226,57,3), - (590,322,58,3), - (773,425,58,3), - (690,377,59,3), - (803,441,59,3), - (835,465,59,2), - (836,466,59,2), - (837,467,59,2), - (838,468,59,2), - (839,469,59,2), - (840,470,59,2), - (841,471,59,2), - (842,472,59,2), - (843,473,59,2), - (844,474,59,2), - (845,475,59,2), - (594,324,60,3), - (748,410,60,3), - (762,418,60,3), - (15,8,61,3), - (50,29,61,3), - (212,119,61,3), - (382,212,61,3), - (25,14,62,3), - (566,310,62,3), - (115,66,63,3), - (150,86,63,3), - (374,208,63,3), - (425,234,63,3), - (494,272,63,3), - (549,301,63,3), - (555,304,63,3), - (572,313,63,3), - (734,401,63,3), - (752,413,63,3), - (957,587,63,2), - (219,123,64,3), - (298,166,64,3), - (452,249,64,3), - (666,365,64,3), - (955,585,64,2), - (231,130,65,3), - (334,186,65,3), - (421,232,65,3), - (129,74,66,3), - (401,222,66,3), - (610,334,66,3), - (949,579,66,2), - (123,71,67,3), - (226,127,67,3), - (474,261,67,3), - (263,148,68,3), - (277,155,68,3), - (289,161,68,3), - (332,185,68,3), - (769,423,68,3), - (797,438,68,3), - (536,294,69,3), - (568,311,69,3), - (644,352,69,3), - (98,54,70,3), - (222,125,70,3), - (287,160,70,3), - (314,175,70,3), - (526,289,70,3), - (530,291,70,3), - (586,320,70,3), - (663,363,70,3), - (719,392,70,3), - (865,495,70,2), - (895,525,70,2), - (940,570,70,2), - (156,89,71,3), - (275,154,71,3), - (524,288,71,3), - (831,461,71,2), - (235,133,72,3), - (873,503,72,2), - (903,533,72,2), - (13,7,73,3), - (34,19,73,3), - (69,39,73,3), - (483,266,73,3), - (534,293,73,3), - (696,380,73,3), - (729,398,73,3), - (419,231,74,3), - (506,278,74,3), - (686,375,74,3), - (322,179,75,3), - (661,362,75,3), - (388,215,76,3), - (496,273,76,3), - (758,416,76,3), - (54,31,77,3), - (415,229,77,3), - (224,126,78,3), - (470,259,78,3), - (931,561,78,2), - (265,149,79,3), - (430,237,80,3), - (448,247,80,3), - (538,295,80,3), - (634,347,80,3), - (818,449,80,3), - (924,554,80,2), - (154,88,81,3), - (200,112,81,3), - (246,139,81,3), - (580,317,81,3), - (615,337,81,3), - (101,56,82,3), - (117,67,82,3), - (261,147,82,3), - (432,238,82,3), - (559,306,82,3), - (828,458,82,2), - (864,494,82,2), - (894,524,82,2), - (190,107,83,3), - (336,187,83,3), - (522,287,83,3), - (619,339,83,3), - (152,87,84,3), - (253,143,84,3), - (532,292,84,3), - (682,373,84,3), - (775,426,84,3), - (144,82,85,3), - (351,196,85,3), - (370,206,85,3), - (528,290,85,3), - (651,356,85,3), - (777,427,85,3), - (184,104,86,3), - (295,164,86,3), - (457,252,86,3), - (488,269,86,3), - (578,316,86,3), - (688,376,86,3), - (717,391,86,3), - (929,559,86,2), - (5,3,87,3), - (603,329,87,3), - (700,382,87,3), - (103,57,88,3), - (281,157,88,3), - (327,182,88,3), - (626,343,88,3), - (649,355,88,3), - (934,564,88,2), - (428,236,89,3), - (490,270,89,3), - (109,62,90,3), - (217,122,90,3), - (411,227,90,3), - (450,248,90,3), - (498,274,90,3), - (596,325,90,3), - (809,444,90,3), - (880,510,90,2), - (910,540,90,2), - (935,565,90,2), - (67,38,91,3), - (137,78,91,3), - (588,321,91,3), - (754,414,91,3), - (756,415,91,3), - (879,509,91,2), - (909,539,91,2), - (952,582,91,2), - (41,23,92,3), - (407,225,92,3), - (829,459,92,2), - (163,93,93,3), - (285,159,93,3), - (740,405,93,3), - (214,120,95,3), - (237,134,95,3), - (520,286,95,3), - (582,318,95,3), - (799,439,95,3), - (947,577,95,2), - (376,209,96,3), - (783,430,96,3), - (18,10,97,3), - (405,224,97,3), - (413,228,97,3), - (512,282,97,3), - (557,305,97,3), - (877,507,97,2), - (907,537,97,2), - (251,142,98,3), - (380,211,98,3), - (601,328,98,3), - (725,395,98,3), - (795,437,98,3), - (816,448,98,3), - (920,550,98,2), - (330,184,99,3), - (516,284,99,3), - (564,309,99,3), - (723,394,99,3), - (814,447,99,3), - (846,476,99,2), - (847,477,99,2), - (848,478,99,2), - (849,479,99,2), - (850,480,99,2), - (941,571,99,2), - (179,101,100,3), - (203,114,100,3), - (598,326,100,3), - (684,374,100,3), - (92,51,101,3), - (119,68,101,3), - (316,176,101,3), - (954,584,101,2), - (851,481,103,2), - (962,592,103,2), - (917,547,105,2), - (942,572,106,2), - (875,505,111,2), - (905,535,111,2), - (943,573,112,2), - (867,497,114,2), - (897,527,114,2), - (874,504,122,2), - (904,534,122,2), - (927,557,122,2), - (921,551,127,2), - (936,566,128,2), - (854,484,130,2), - (884,514,130,2), - (872,502,131,2), - (902,532,131,2), - (939,569,132,2), - (852,482,134,2), - (882,512,134,2), - (916,546,135,2), - (961,591,139,2), - (862,492,145,2), - (892,522,145,2), - (946,576,145,2), - (956,586,146,2), - (923,553,149,2), - (871,501,151,2), - (901,531,151,2), - (548,301,153,2), - (550,302,153,2), - (552,303,153,2), - (554,304,153,2), - (556,305,153,2), - (558,306,153,2), - (560,307,153,2), - (562,308,153,2), - (563,309,153,2), - (565,310,153,2), - (567,311,153,2), - (569,312,153,2), - (571,313,153,2), - (573,314,153,2), - (575,315,153,2), - (577,316,153,2), - (579,317,153,2), - (581,318,153,2), - (583,319,153,2), - (585,320,153,2), - (587,321,153,2), - (589,322,153,2), - (591,323,153,2), - (593,324,153,2), - (595,325,153,2), - (597,326,153,2), - (599,327,153,2), - (600,328,153,2), - (602,329,153,2), - (604,330,153,2), - (605,331,153,2), - (606,332,153,2), - (608,333,153,2), - (609,334,153,2), - (611,335,153,2), - (612,336,153,2), - (614,337,153,2), - (616,338,153,2), - (618,339,153,2), - (620,340,153,2), - (622,341,153,2), - (623,342,153,2), - (625,343,153,2), - (627,344,153,2), - (629,345,153,2), - (631,346,153,2), - (633,347,153,2), - (635,348,153,2), - (637,349,153,2), - (639,350,153,2), - (641,351,153,2), - (643,352,153,2), - (645,353,153,2), - (646,354,153,2), - (648,355,153,2), - (650,356,153,2), - (652,357,153,2), - (654,358,153,2), - (656,359,153,2), - (658,360,153,2), - (659,361,153,2), - (660,362,153,2), - (662,363,153,2), - (664,364,153,2), - (665,365,153,2), - (667,366,153,2), - (669,367,153,2), - (671,368,153,2), - (673,369,153,2), - (675,370,153,2), - (677,371,153,2), - (679,372,153,2), - (681,373,153,2), - (683,374,153,2), - (685,375,153,2), - (687,376,153,2), - (689,377,153,2), - (691,378,153,2), - (693,379,153,2), - (695,380,153,2), - (697,381,153,2), - (699,382,153,2), - (701,383,153,2), - (703,384,153,2), - (705,385,153,2), - (707,386,153,2), - (709,387,153,2), - (710,388,153,2), - (712,389,153,2), - (714,390,153,2), - (716,391,153,2), - (718,392,153,2), - (720,393,153,2), - (722,394,153,2), - (724,395,153,2), - (726,396,153,2), - (727,397,153,2), - (728,398,153,2), - (730,399,153,2), - (731,400,153,2), - (733,401,153,2), - (735,402,153,2), - (737,403,153,2), - (738,404,153,2), - (739,405,153,2), - (741,406,153,2), - (742,407,153,2), - (744,408,153,2), - (746,409,153,2), - (747,410,153,2), - (749,411,153,2), - (750,412,153,2), - (751,413,153,2), - (753,414,153,2), - (755,415,153,2), - (757,416,153,2), - (759,417,153,2), - (761,418,153,2), - (763,419,153,2), - (764,420,153,2), - (765,421,153,2), - (767,422,153,2), - (768,423,153,2), - (770,424,153,2), - (772,425,153,2), - (774,426,153,2), - (776,427,153,2), - (778,428,153,2), - (780,429,153,2), - (782,430,153,2), - (784,431,153,2), - (786,432,153,2), - (788,433,153,2), - (789,434,153,2), - (791,435,153,2), - (793,436,153,2), - (794,437,153,2), - (796,438,153,2), - (798,439,153,2), - (800,440,153,2), - (802,441,153,2), - (804,442,153,2), - (806,443,153,2), - (808,444,153,2), - (810,445,153,2), - (812,446,153,2), - (813,447,153,2), - (815,448,153,2), - (817,449,153,2), - (819,450,153,2), - (958,588,153,2), - (855,485,154,2), - (885,515,154,2), - (919,549,154,2), - (913,543,160,2), - (944,574,161,2), - (859,489,162,2), - (889,519,162,2), - (868,498,165,2), - (898,528,165,2), - (922,552,168,2), - (858,488,169,2), - (888,518,169,2), - (937,567,171,2), - (953,583,174,2), - (959,589,176,2), - (930,560,177,2), - (933,563,178,2), - (918,548,182,2), - (938,568,183,2), - (860,490,187,2), - (890,520,187,2), - (960,590,188,2), - (945,575,189,2), - (863,493,190,2), - (893,523,190,2), - (950,580,190,2), - (878,508,191,2), - (908,538,191,2), - (853,483,193,2), - (883,513,193,2), - (866,496,194,2), - (896,526,194,2), - (1,1,200,2), - (2,2,200,2), - (4,3,200,2), - (6,4,200,2), - (8,5,200,2), - (10,6,200,2), - (12,7,200,2), - (14,8,200,2), - (16,9,200,2), - (17,10,200,2), - (19,11,200,2), - (21,12,200,2), - (23,13,200,2), - (24,14,200,2), - (26,15,200,2), - (28,16,200,2), - (29,17,200,2), - (31,18,200,2), - (33,19,200,2), - (35,20,200,2), - (36,21,200,2), - (38,22,200,2), - (40,23,200,2), - (42,24,200,2), - (44,25,200,2), - (45,26,200,2), - (46,27,200,2), - (48,28,200,2), - (49,29,200,2), - (51,30,200,2), - (53,31,200,2), - (55,32,200,2), - (57,33,200,2), - (58,34,200,2), - (60,35,200,2), - (62,36,200,2), - (64,37,200,2), - (66,38,200,2), - (68,39,200,2), - (70,40,200,2), - (72,41,200,2), - (74,42,200,2), - (75,43,200,2), - (77,44,200,2), - (79,45,200,2), - (81,46,200,2), - (83,47,200,2), - (85,48,200,2), - (87,49,200,2), - (89,50,200,2), - (91,51,200,2), - (93,52,200,2), - (95,53,200,2), - (97,54,200,2), - (99,55,200,2), - (100,56,200,2), - (102,57,200,2), - (104,58,200,2), - (105,59,200,2), - (106,60,200,2), - (107,61,200,2), - (108,62,200,2), - (110,63,200,2), - (112,64,200,2), - (113,65,200,2), - (114,66,200,2), - (116,67,200,2), - (118,68,200,2), - (120,69,200,2), - (121,70,200,2), - (122,71,200,2), - (124,72,200,2), - (126,73,200,2), - (128,74,200,2), - (130,75,200,2), - (132,76,200,2), - (134,77,200,2), - (136,78,200,2), - (138,79,200,2), - (140,80,200,2), - (141,81,200,2), - (143,82,200,2), - (145,83,200,2), - (147,84,200,2), - (148,85,200,2), - (149,86,200,2), - (151,87,200,2), - (153,88,200,2), - (155,89,200,2), - (157,90,200,2), - (158,91,200,2), - (160,92,200,2), - (162,93,200,2), - (164,94,200,2), - (166,95,200,2), - (168,96,200,2), - (170,97,200,2), - (172,98,200,2), - (174,99,200,2), - (176,100,200,2), - (178,101,200,2), - (180,102,200,2), - (182,103,200,2), - (183,104,200,2), - (185,105,200,2), - (187,106,200,2), - (189,107,200,2), - (191,108,200,2), - (193,109,200,2), - (195,110,200,2), - (197,111,200,2), - (199,112,200,2), - (201,113,200,2), - (202,114,200,2), - (204,115,200,2), - (206,116,200,2), - (208,117,200,2), - (210,118,200,2), - (211,119,200,2), - (213,120,200,2), - (215,121,200,2), - (216,122,200,2), - (218,123,200,2), - (220,124,200,2), - (221,125,200,2), - (223,126,200,2), - (225,127,200,2), - (227,128,200,2), - (228,129,200,2), - (230,130,200,2), - (232,131,200,2), - (233,132,200,2), - (234,133,200,2), - (236,134,200,2), - (238,135,200,2), - (239,136,200,2), - (241,137,200,2), - (243,138,200,2), - (245,139,200,2), - (247,140,200,2), - (248,141,200,2), - (250,142,200,2), - (252,143,200,2), - (254,144,200,2), - (256,145,200,2), - (258,146,200,2), - (260,147,200,2), - (262,148,200,2), - (264,149,200,2), - (266,150,200,2), - (881,511,200,2), - (911,541,200,2); + (234,127,1,3), + (244,132,1,3), + (800,443,1,3), + (145,79,2,3), + (180,98,2,3), + (301,162,2,3), + (480,262,2,3), + (593,326,2,3), + (669,369,2,3), + (813,451,2,2), + (953,591,2,2), + (15,8,3,3), + (37,19,3,3), + (287,155,3,3), + (389,211,3,3), + (427,233,3,3), + (701,389,3,3), + (929,567,3,2), + (116,62,4,3), + (525,288,4,3), + (641,354,4,3), + (659,364,4,3), + (665,367,4,3), + (756,419,4,3), + (814,452,4,2), + (817,455,4,2), + (201,109,5,3), + (220,119,5,3), + (624,343,5,3), + (758,420,5,3), + (27,14,6,3), + (311,167,6,3), + (330,178,6,3), + (716,397,6,3), + (815,453,6,2), + (102,54,7,3), + (137,74,7,3), + (270,146,7,3), + (866,504,7,2), + (896,534,7,2), + (222,120,8,3), + (816,454,8,2), + (854,492,8,2), + (884,522,8,2), + (84,43,9,3), + (365,198,9,3), + (377,205,9,3), + (442,241,9,3), + (933,571,9,2), + (315,169,10,3), + (399,217,10,3), + (405,220,10,3), + (411,224,10,3), + (488,268,10,3), + (673,371,10,3), + (774,428,10,3), + (295,159,11,3), + (440,240,11,3), + (474,259,11,3), + (496,272,11,3), + (776,429,11,3), + (844,482,11,2), + (874,512,11,2), + (946,584,11,2), + (448,245,13,3), + (768,425,13,3), + (44,23,14,3), + (214,116,14,3), + (724,402,14,3), + (732,406,14,3), + (54,28,15,3), + (251,136,15,3), + (328,177,15,3), + (805,446,15,3), + (860,498,15,2), + (890,528,15,2), + (95,50,16,3), + (226,122,16,3), + (818,456,16,2), + (847,485,16,2), + (877,515,16,2), + (195,106,17,3), + (560,307,17,3), + (632,348,17,3), + (746,414,17,3), + (360,195,18,3), + (379,206,18,3), + (764,423,18,3), + (62,32,19,3), + (274,148,19,3), + (556,305,19,3), + (778,430,19,3), + (819,457,19,2), + (317,170,20,3), + (476,260,20,3), + (185,101,21,3), + (240,130,21,3), + (694,385,22,3), + (485,266,23,3), + (522,286,23,3), + (543,298,23,3), + (356,193,24,3), + (156,85,25,3), + (246,133,25,3), + (385,209,25,3), + (456,249,25,3), + (505,277,25,3), + (563,309,25,3), + (567,312,25,3), + (696,386,25,3), + (736,408,25,3), + (766,424,25,3), + (13,7,26,3), + (578,318,26,3), + (661,365,26,3), + (760,421,26,3), + (780,431,26,3), + (862,500,26,2), + (892,530,26,2), + (498,273,27,3), + (547,300,27,3), + (589,324,27,3), + (812,450,27,3), + (285,154,28,3), + (293,158,28,3), + (299,161,28,3), + (713,395,28,3), + (46,24,29,3), + (131,71,29,3), + (160,87,29,3), + (383,208,29,3), + (621,341,29,3), + (734,407,29,3), + (917,555,29,2), + (93,49,30,3), + (100,53,30,3), + (168,91,30,3), + (238,129,30,3), + (552,303,30,3), + (33,17,31,3), + (52,27,31,3), + (210,114,31,3), + (303,163,31,3), + (35,18,32,3), + (322,173,32,3), + (647,357,32,3), + (825,463,32,2), + (826,464,32,2), + (66,34,33,3), + (452,247,33,3), + (845,483,33,2), + (875,513,33,2), + (242,131,34,3), + (822,460,34,2), + (110,59,35,3), + (176,96,35,3), + (617,339,35,3), + (653,360,35,3), + (1,1,36,2), + (3,2,36,2), + (5,3,36,2), + (7,4,36,2), + (9,5,36,2), + (11,6,36,2), + (12,7,36,2), + (14,8,36,2), + (16,9,36,2), + (18,10,36,2), + (20,11,36,2), + (22,12,36,2), + (24,13,36,2), + (26,14,36,2), + (28,15,36,2), + (30,16,36,2), + (32,17,36,2), + (34,18,36,2), + (36,19,36,2), + (38,20,36,2), + (40,21,36,2), + (41,22,36,2), + (43,23,36,2), + (45,24,36,2), + (47,25,36,2), + (49,26,36,2), + (51,27,36,2), + (53,28,36,2), + (55,29,36,2), + (57,30,36,2), + (59,31,36,2), + (61,32,36,2), + (63,33,36,2), + (65,34,36,2), + (67,35,36,2), + (69,36,36,2), + (71,37,36,2), + (73,38,36,2), + (75,39,36,2), + (77,40,36,2), + (79,41,36,2), + (81,42,36,2), + (83,43,36,2), + (85,44,36,2), + (87,45,36,2), + (88,46,36,2), + (89,47,36,2), + (90,48,36,2), + (92,49,36,2), + (94,50,36,2), + (96,51,36,2), + (97,52,36,2), + (99,53,36,2), + (101,54,36,2), + (103,55,36,2), + (105,56,36,2), + (106,57,36,2), + (108,58,36,2), + (109,59,36,2), + (111,60,36,2), + (113,61,36,2), + (115,62,36,2), + (117,63,36,2), + (119,64,36,2), + (121,65,36,2), + (123,66,36,2), + (124,67,36,2), + (125,68,36,2), + (126,69,36,2), + (128,70,36,2), + (130,71,36,2), + (132,72,36,2), + (134,73,36,2), + (135,73,36,3), + (136,74,36,2), + (138,75,36,2), + (139,76,36,2), + (141,77,36,2), + (143,78,36,2), + (144,79,36,2), + (146,80,36,2), + (147,81,36,2), + (149,82,36,2), + (151,83,36,2), + (153,84,36,2), + (155,85,36,2), + (157,86,36,2), + (159,87,36,2), + (161,88,36,2), + (163,89,36,2), + (165,90,36,2), + (167,91,36,2), + (169,92,36,2), + (171,93,36,2), + (173,94,36,2), + (174,95,36,2), + (175,96,36,2), + (177,97,36,2), + (179,98,36,2), + (181,99,36,2), + (183,100,36,2), + (184,101,36,2), + (186,102,36,2), + (188,103,36,2), + (190,104,36,2), + (192,105,36,2), + (194,106,36,2), + (196,107,36,2), + (198,108,36,2), + (200,109,36,2), + (202,110,36,2), + (204,111,36,2), + (206,112,36,2), + (208,113,36,2), + (209,114,36,2), + (211,115,36,2), + (213,116,36,2), + (215,117,36,2), + (217,118,36,2), + (219,119,36,2), + (221,120,36,2), + (223,121,36,2), + (225,122,36,2), + (227,123,36,2), + (228,124,36,2), + (229,125,36,2), + (231,126,36,2), + (233,127,36,2), + (235,128,36,2), + (237,129,36,2), + (239,130,36,2), + (241,131,36,2), + (243,132,36,2), + (245,133,36,2), + (247,134,36,2), + (248,135,36,2), + (250,136,36,2), + (252,137,36,2), + (254,138,36,2), + (256,139,36,2), + (258,140,36,2), + (259,141,36,2), + (261,142,36,2), + (263,143,36,2), + (265,144,36,2), + (267,145,36,2), + (269,146,36,2), + (271,147,36,2), + (273,148,36,2), + (275,149,36,2), + (277,150,36,2), + (434,237,36,3), + (450,246,36,3), + (516,283,36,3), + (855,493,36,2), + (885,523,36,2), + (148,81,37,3), + (255,138,37,3), + (338,183,37,3), + (639,353,37,3), + (857,495,37,2), + (887,525,37,2), + (950,588,37,2), + (31,16,38,3), + (373,203,38,3), + (637,352,38,3), + (926,564,38,2), + (403,219,39,3), + (595,327,39,3), + (276,149,40,3), + (465,254,40,3), + (698,387,40,3), + (711,394,40,3), + (798,442,40,3), + (142,77,41,3), + (197,107,41,3), + (391,212,41,3), + (462,252,41,3), + (656,362,41,3), + (216,117,42,3), + (272,147,42,3), + (533,293,42,3), + (678,374,42,3), + (864,502,42,2), + (894,532,42,2), + (951,589,42,2), + (510,280,43,3), + (692,384,43,3), + (824,462,43,2), + (918,556,43,2), + (58,30,44,3), + (344,186,44,3), + (490,269,44,3), + (688,382,44,3), + (726,403,44,3), + (856,494,44,2), + (886,524,44,2), + (253,137,45,3), + (262,142,45,3), + (353,191,45,3), + (520,285,45,3), + (539,296,45,3), + (548,301,45,2), + (549,302,45,2), + (551,303,45,2), + (553,304,45,2), + (555,305,45,2), + (557,306,45,2), + (559,307,45,2), + (561,308,45,2), + (562,309,45,2), + (564,310,45,2), + (565,311,45,2), + (566,312,45,2), + (568,313,45,2), + (570,314,45,2), + (572,315,45,2), + (574,316,45,2), + (575,317,45,2), + (577,318,45,2), + (579,319,45,2), + (581,320,45,2), + (582,321,45,2), + (584,322,45,2), + (586,323,45,2), + (588,324,45,2), + (590,325,45,2), + (592,326,45,2), + (594,327,45,2), + (596,328,45,2), + (598,329,45,2), + (600,330,45,2), + (602,331,45,2), + (603,332,45,2), + (605,333,45,2), + (607,334,45,2), + (609,335,45,2), + (611,336,45,2), + (613,337,45,2), + (615,338,45,2), + (616,339,45,2), + (618,340,45,2), + (620,341,45,2), + (622,342,45,2), + (623,343,45,2), + (625,344,45,2), + (626,345,45,2), + (628,346,45,2), + (630,347,45,2), + (631,348,45,2), + (633,349,45,2), + (634,350,45,2), + (635,351,45,2), + (636,352,45,2), + (638,353,45,2), + (640,354,45,2), + (642,355,45,2), + (644,356,45,2), + (646,357,45,2), + (648,358,45,2), + (650,359,45,2), + (652,360,45,2), + (654,361,45,2), + (655,362,45,2), + (657,363,45,2), + (658,364,45,2), + (660,365,45,2), + (662,366,45,2), + (664,367,45,2), + (666,368,45,2), + (668,369,45,2), + (670,370,45,2), + (672,371,45,2), + (674,372,45,2), + (675,373,45,2), + (677,374,45,2), + (679,375,45,2), + (680,376,45,2), + (681,377,45,2), + (682,378,45,2), + (683,379,45,2), + (684,380,45,2), + (685,381,45,2), + (687,382,45,2), + (689,383,45,2), + (691,384,45,2), + (693,385,45,2), + (695,386,45,2), + (697,387,45,2), + (699,388,45,2), + (700,389,45,2), + (702,390,45,2), + (704,391,45,2), + (706,392,45,2), + (708,393,45,2), + (710,394,45,2), + (712,395,45,2), + (714,396,45,2), + (715,397,45,2), + (717,398,45,2), + (718,399,45,2), + (720,400,45,2), + (721,401,45,2), + (723,402,45,2), + (725,403,45,2), + (727,404,45,2), + (729,405,45,2), + (731,406,45,2), + (733,407,45,2), + (735,408,45,2), + (737,409,45,2), + (738,410,45,2), + (740,411,45,2), + (742,412,45,2), + (743,413,45,2), + (745,414,45,2), + (747,415,45,2), + (749,416,45,2), + (751,417,45,2), + (753,418,45,2), + (755,419,45,2), + (757,420,45,2), + (759,421,45,2), + (761,422,45,2), + (763,423,45,2), + (765,424,45,2), + (767,425,45,2), + (769,426,45,2), + (771,427,45,2), + (773,428,45,2), + (775,429,45,2), + (777,430,45,2), + (779,431,45,2), + (781,432,45,2), + (783,433,45,2), + (785,434,45,2), + (787,435,45,2), + (789,436,45,2), + (791,437,45,2), + (792,438,45,2), + (793,439,45,2), + (794,440,45,2), + (796,441,45,2), + (797,442,45,2), + (799,443,45,2), + (801,444,45,2), + (803,445,45,2), + (804,446,45,2), + (806,447,45,2), + (807,448,45,2), + (809,449,45,2), + (811,450,45,2), + (189,103,46,3), + (387,210,46,3), + (651,359,46,3), + (42,22,47,3), + (98,52,47,3), + (363,197,47,3), + (395,214,47,3), + (744,413,47,3), + (915,553,47,2), + (91,48,48,3), + (576,317,48,3), + (325,175,49,3), + (429,234,49,3), + (707,392,49,3), + (597,328,50,3), + (850,488,50,2), + (880,518,50,2), + (948,586,50,2), + (140,76,51,3), + (150,82,51,3), + (203,110,51,3), + (342,185,51,3), + (415,226,51,3), + (469,256,51,3), + (501,275,51,3), + (367,199,52,3), + (627,345,52,3), + (762,422,52,3), + (782,432,52,3), + (569,313,53,3), + (676,373,53,3), + (4,2,54,3), + (471,257,54,3), + (571,314,54,3), + (56,29,55,3), + (266,144,55,3), + (408,222,55,3), + (478,261,55,3), + (218,118,56,3), + (492,270,56,3), + (518,284,56,3), + (535,294,56,3), + (558,306,56,3), + (913,551,56,2), + (122,65,57,3), + (260,141,57,3), + (187,102,59,3), + (418,228,59,3), + (827,465,59,2), + (828,466,59,2), + (829,467,59,2), + (830,468,59,2), + (831,469,59,2), + (832,470,59,2), + (833,471,59,2), + (834,472,59,2), + (835,473,59,2), + (836,474,59,2), + (837,475,59,2), + (23,12,60,3), + (19,10,61,3), + (86,44,61,3), + (199,108,62,3), + (268,145,62,3), + (772,427,62,3), + (802,444,62,3), + (129,70,63,3), + (162,88,63,3), + (289,156,63,3), + (604,332,63,3), + (722,401,63,3), + (741,411,63,3), + (922,560,63,2), + (114,61,64,3), + (164,89,64,3), + (170,92,64,3), + (224,121,64,3), + (236,128,64,3), + (619,340,64,3), + (29,15,65,3), + (358,194,65,3), + (104,55,66,3), + (107,57,66,3), + (739,410,66,3), + (754,418,66,3), + (10,5,67,3), + (313,168,67,3), + (643,355,67,3), + (808,448,67,3), + (118,63,68,3), + (152,83,68,3), + (436,238,68,3), + (444,242,68,3), + (686,381,68,3), + (952,590,68,2), + (172,93,69,3), + (232,126,69,3), + (297,160,69,3), + (861,499,69,2), + (891,529,69,2), + (178,97,70,3), + (291,157,70,3), + (503,276,70,3), + (823,461,71,2), + (2,1,72,3), + (60,31,72,3), + (705,391,72,3), + (21,11,73,3), + (230,125,73,3), + (537,295,73,3), + (550,302,73,3), + (580,319,73,3), + (629,346,73,3), + (709,393,73,3), + (748,415,73,3), + (17,9,74,3), + (351,190,74,3), + (795,440,74,3), + (280,151,75,3), + (514,282,75,3), + (846,484,75,2), + (876,514,75,2), + (74,38,76,3), + (166,90,76,3), + (601,330,76,3), + (608,334,76,3), + (927,565,76,2), + (425,232,77,3), + (39,20,78,3), + (64,33,78,3), + (193,105,78,3), + (645,356,78,3), + (649,358,78,3), + (750,416,78,3), + (786,434,78,3), + (70,36,79,3), + (212,115,79,3), + (458,250,79,3), + (467,255,79,3), + (703,390,79,3), + (50,26,80,3), + (599,329,80,3), + (728,404,80,3), + (770,426,80,3), + (454,248,81,3), + (127,69,82,3), + (154,84,82,3), + (182,99,82,3), + (334,181,82,3), + (371,202,82,3), + (573,315,82,3), + (667,368,82,3), + (790,436,82,3), + (810,449,82,3), + (820,458,82,2), + (72,37,83,3), + (76,39,83,3), + (120,64,83,3), + (340,184,83,3), + (421,230,83,3), + (545,299,83,3), + (719,399,83,3), + (78,40,84,3), + (207,112,84,3), + (393,213,84,3), + (191,104,85,3), + (531,292,85,3), + (591,325,85,3), + (8,4,86,3), + (80,41,86,3), + (133,72,86,3), + (413,225,86,3), + (585,322,86,3), + (610,335,86,3), + (614,337,86,3), + (663,366,86,3), + (730,405,86,3), + (257,139,87,3), + (583,321,87,3), + (784,433,87,3), + (205,111,88,3), + (309,166,88,3), + (851,489,88,2), + (881,519,88,2), + (910,548,88,2), + (401,218,89,3), + (25,13,90,3), + (690,383,90,3), + (939,577,90,2), + (112,60,91,3), + (671,370,91,3), + (924,562,91,2), + (460,251,92,3), + (541,297,92,3), + (821,459,92,2), + (923,561,92,2), + (48,25,93,3), + (158,86,93,3), + (508,279,93,3), + (278,150,94,3), + (336,182,94,3), + (375,204,94,3), + (381,207,94,3), + (432,236,94,3), + (788,435,94,3), + (934,572,94,2), + (612,336,95,3), + (512,281,96,3), + (554,304,96,3), + (587,323,97,3), + (264,143,98,3), + (282,152,98,3), + (346,187,98,3), + (494,271,98,3), + (606,333,98,3), + (6,3,99,3), + (82,42,99,3), + (348,188,99,3), + (529,291,99,3), + (838,476,99,2), + (839,477,99,2), + (840,478,99,2), + (841,479,99,2), + (842,480,99,2), + (249,135,100,3), + (305,164,100,3), + (307,165,100,3), + (320,172,100,3), + (438,239,100,3), + (752,417,100,3), + (68,35,101,3), + (423,231,101,3), + (905,543,102,2), + (843,481,103,2), + (944,582,104,2), + (848,486,107,2), + (878,516,107,2), + (947,585,115,2), + (859,497,117,2), + (889,527,117,2), + (908,546,119,2), + (871,509,121,2), + (901,539,121,2), + (909,547,123,2), + (937,575,127,2), + (932,570,128,2), + (943,581,131,2), + (925,563,132,2), + (916,554,133,2), + (912,550,137,2), + (869,507,140,2), + (899,537,140,2), + (849,487,141,2), + (879,517,141,2), + (921,559,142,2), + (919,557,145,2), + (911,549,149,2), + (865,503,150,2), + (895,533,150,2), + (942,580,151,2), + (914,552,153,2), + (852,490,154,2), + (882,520,154,2), + (940,578,159,2), + (945,583,161,2), + (872,510,162,2), + (902,540,162,2), + (870,508,163,2), + (900,538,163,2), + (930,568,167,2), + (931,569,170,2), + (853,491,174,2), + (883,521,174,2), + (928,566,174,2), + (279,151,176,2), + (281,152,176,2), + (283,153,176,2), + (284,154,176,2), + (286,155,176,2), + (288,156,176,2), + (290,157,176,2), + (292,158,176,2), + (294,159,176,2), + (296,160,176,2), + (298,161,176,2), + (300,162,176,2), + (302,163,176,2), + (304,164,176,2), + (306,165,176,2), + (308,166,176,2), + (310,167,176,2), + (312,168,176,2), + (314,169,176,2), + (316,170,176,2), + (318,171,176,2), + (319,172,176,2), + (321,173,176,2), + (323,174,176,2), + (324,175,176,2), + (326,176,176,2), + (327,177,176,2), + (329,178,176,2), + (331,179,176,2), + (332,180,176,2), + (333,181,176,2), + (335,182,176,2), + (337,183,176,2), + (339,184,176,2), + (341,185,176,2), + (343,186,176,2), + (345,187,176,2), + (347,188,176,2), + (349,189,176,2), + (350,190,176,2), + (352,191,176,2), + (354,192,176,2), + (355,193,176,2), + (357,194,176,2), + (359,195,176,2), + (361,196,176,2), + (362,197,176,2), + (364,198,176,2), + (366,199,176,2), + (368,200,176,2), + (369,201,176,2), + (370,202,176,2), + (372,203,176,2), + (374,204,176,2), + (376,205,176,2), + (378,206,176,2), + (380,207,176,2), + (382,208,176,2), + (384,209,176,2), + (386,210,176,2), + (388,211,176,2), + (390,212,176,2), + (392,213,176,2), + (394,214,176,2), + (396,215,176,2), + (397,216,176,2), + (398,217,176,2), + (400,218,176,2), + (402,219,176,2), + (404,220,176,2), + (406,221,176,2), + (407,222,176,2), + (409,223,176,2), + (410,224,176,2), + (412,225,176,2), + (414,226,176,2), + (416,227,176,2), + (417,228,176,2), + (419,229,176,2), + (420,230,176,2), + (422,231,176,2), + (424,232,176,2), + (426,233,176,2), + (428,234,176,2), + (430,235,176,2), + (431,236,176,2), + (433,237,176,2), + (435,238,176,2), + (437,239,176,2), + (439,240,176,2), + (441,241,176,2), + (443,242,176,2), + (445,243,176,2), + (446,244,176,2), + (447,245,176,2), + (449,246,176,2), + (451,247,176,2), + (453,248,176,2), + (455,249,176,2), + (457,250,176,2), + (459,251,176,2), + (461,252,176,2), + (463,253,176,2), + (464,254,176,2), + (466,255,176,2), + (468,256,176,2), + (470,257,176,2), + (472,258,176,2), + (473,259,176,2), + (475,260,176,2), + (477,261,176,2), + (479,262,176,2), + (481,263,176,2), + (482,264,176,2), + (483,265,176,2), + (484,266,176,2), + (486,267,176,2), + (487,268,176,2), + (489,269,176,2), + (491,270,176,2), + (493,271,176,2), + (495,272,176,2), + (497,273,176,2), + (499,274,176,2), + (500,275,176,2), + (502,276,176,2), + (504,277,176,2), + (506,278,176,2), + (507,279,176,2), + (509,280,176,2), + (511,281,176,2), + (513,282,176,2), + (515,283,176,2), + (517,284,176,2), + (519,285,176,2), + (521,286,176,2), + (523,287,176,2), + (524,288,176,2), + (526,289,176,2), + (527,290,176,2), + (528,291,176,2), + (530,292,176,2), + (532,293,176,2), + (534,294,176,2), + (536,295,176,2), + (538,296,176,2), + (540,297,176,2), + (542,298,176,2), + (544,299,176,2), + (546,300,176,2), + (938,576,177,2), + (936,574,178,2), + (906,544,181,2), + (907,545,184,2), + (868,506,186,2), + (898,536,186,2), + (935,573,186,2), + (954,592,193,2), + (920,558,194,2), + (941,579,195,2), + (863,501,196,2), + (893,531,196,2), + (858,496,197,2), + (888,526,197,2), + (867,505,198,2), + (897,535,198,2), + (949,587,199,2), + (873,511,202,2), + (903,541,202,2); /*!40000 ALTER TABLE `civicrm_activity_contact` ENABLE KEYS */; UNLOCK TABLES; @@ -1704,184 +1696,188 @@ UNLOCK TABLES; LOCK TABLES `civicrm_address` WRITE; /*!40000 ALTER TABLE `civicrm_address` DISABLE KEYS */; INSERT INTO `civicrm_address` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `street_address`, `street_number`, `street_number_suffix`, `street_number_predirectional`, `street_name`, `street_type`, `street_number_postdirectional`, `street_unit`, `supplemental_address_1`, `supplemental_address_2`, `supplemental_address_3`, `city`, `county_id`, `state_province_id`, `postal_code_suffix`, `postal_code`, `usps_adc`, `country_id`, `geo_code_1`, `geo_code_2`, `manual_geo_code`, `timezone`, `name`, `master_id`) VALUES - (1,134,1,1,0,'174E Second Blvd N',174,'E',NULL,'Second','Blvd','N',NULL,NULL,NULL,NULL,'Gallupville',1,1031,NULL,'12073',NULL,1228,42.592287,-74.438129,0,NULL,NULL,NULL), - (2,88,1,1,0,'99N Bay Dr N',99,'N',NULL,'Bay','Dr','N',NULL,NULL,NULL,NULL,'Lowell',1,1021,NULL,'49331',NULL,1228,42.944838,-85.34928,0,NULL,NULL,NULL), - (3,117,1,1,0,'877H Pine St SE',877,'H',NULL,'Pine','St','SE',NULL,NULL,NULL,NULL,'Plover',1,1048,NULL,'54467',NULL,1228,44.452277,-89.54399,0,NULL,NULL,NULL), - (4,82,1,1,0,'927B Pine Blvd SE',927,'B',NULL,'Pine','Blvd','SE',NULL,NULL,NULL,NULL,'Colorado Springs',1,1005,NULL,'80906',NULL,1228,38.791242,-104.82492,0,NULL,NULL,NULL), - (5,72,1,1,0,'607F Dowlen Dr SW',607,'F',NULL,'Dowlen','Dr','SW',NULL,NULL,NULL,NULL,'Stuarts Draft',1,1045,NULL,'24477',NULL,1228,38.01473,-79.02733,0,NULL,NULL,NULL), - (6,135,1,1,0,'754G Cadell Blvd S',754,'G',NULL,'Cadell','Blvd','S',NULL,NULL,NULL,NULL,'Sugar Grove',1,1047,NULL,'26815',NULL,1228,38.482224,-79.33161,0,NULL,NULL,NULL), - (7,143,1,1,0,'2Y Woodbridge Way W',2,'Y',NULL,'Woodbridge','Way','W',NULL,NULL,NULL,NULL,'East Orange',1,1029,NULL,'07018',NULL,1228,40.75555,-74.21897,0,NULL,NULL,NULL), - (8,93,1,1,0,'799Z Martin Luther King Ave E',799,'Z',NULL,'Martin Luther King','Ave','E',NULL,NULL,NULL,NULL,'Fairfax',1,1045,NULL,'22034',NULL,1228,38.831813,-77.288755,0,NULL,NULL,NULL), - (9,25,1,1,0,'99W Lincoln Pl N',99,'W',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Northfield',1,1006,NULL,'06778',NULL,1228,41.694945,-73.10942,0,NULL,NULL,NULL), - (10,128,1,1,0,'457P Lincoln Pl SW',457,'P',NULL,'Lincoln','Pl','SW',NULL,NULL,NULL,NULL,'Omaha',1,1026,NULL,'68136',NULL,1228,41.177298,-96.18662,0,NULL,NULL,NULL), - (11,86,1,1,0,'311D Caulder Ave NE',311,'D',NULL,'Caulder','Ave','NE',NULL,NULL,NULL,NULL,'Fort Mill',1,1039,NULL,'29715',NULL,1228,35.008416,-80.91644,0,NULL,NULL,NULL), - (12,108,1,1,0,'831V Martin Luther King Rd NW',831,'V',NULL,'Martin Luther King','Rd','NW',NULL,NULL,NULL,NULL,'Sewanee',1,1041,NULL,'37375',NULL,1228,35.193891,-85.91048,0,NULL,NULL,NULL), - (13,95,1,1,0,'762W Woodbridge Rd SE',762,'W',NULL,'Woodbridge','Rd','SE',NULL,NULL,NULL,NULL,'Chicopee',1,1020,NULL,'01021',NULL,1228,42.170731,-72.604842,0,NULL,NULL,NULL), - (14,110,1,1,0,'982E Van Ness St NW',982,'E',NULL,'Van Ness','St','NW',NULL,NULL,NULL,NULL,'Deer Park',1,1004,NULL,'94576',NULL,1228,38.553087,-122.47725,0,NULL,NULL,NULL), - (15,54,1,1,0,'923I Caulder Pl E',923,'I',NULL,'Caulder','Pl','E',NULL,NULL,NULL,NULL,'Pine Grove',1,1017,NULL,'70453',NULL,1228,30.702471,-90.77604,0,NULL,NULL,NULL), - (16,12,1,1,0,'865U States Pl N',865,'U',NULL,'States','Pl','N',NULL,NULL,NULL,NULL,'Pierceville',1,1015,NULL,'67868',NULL,1228,37.881899,-100.67849,0,NULL,NULL,NULL), - (17,23,1,1,0,'885W Lincoln Path SE',885,'W',NULL,'Lincoln','Path','SE',NULL,NULL,NULL,NULL,'Waco',1,1042,NULL,'76707',NULL,1228,31.552266,-97.15957,0,NULL,NULL,NULL), - (18,96,1,1,0,'64S Pine Way SE',64,'S',NULL,'Pine','Way','SE',NULL,NULL,NULL,NULL,'Wright City',1,1035,NULL,'74766',NULL,1228,34.148691,-94.95546,0,NULL,NULL,NULL), - (19,176,1,1,0,'494E Caulder Path NE',494,'E',NULL,'Caulder','Path','NE',NULL,NULL,NULL,NULL,'Culver City',1,1004,NULL,'90231',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL), - (20,160,1,1,0,'562E Main Dr NW',562,'E',NULL,'Main','Dr','NW',NULL,NULL,NULL,NULL,'Duke Center',1,1037,NULL,'16729',NULL,1228,41.96192,-78.4841,0,NULL,NULL,NULL), - (21,190,1,1,0,'38W Beech Dr N',38,'W',NULL,'Beech','Dr','N',NULL,NULL,NULL,NULL,'Adelanto',1,1004,NULL,'92031',NULL,1228,34.587473,-117.406293,0,NULL,NULL,NULL), - (22,9,1,1,0,'396X Jackson Rd N',396,'X',NULL,'Jackson','Rd','N',NULL,NULL,NULL,NULL,'Madison Heights',1,1045,NULL,'24572',NULL,1228,37.461272,-79.09364,0,NULL,NULL,NULL), - (23,162,1,1,0,'238V Martin Luther King Rd N',238,'V',NULL,'Martin Luther King','Rd','N',NULL,NULL,NULL,NULL,'Chicago',1,1012,NULL,'60668',NULL,1228,41.811929,-87.68732,0,NULL,NULL,NULL), - (24,105,1,1,0,'233H Jackson Path N',233,'H',NULL,'Jackson','Path','N',NULL,NULL,NULL,NULL,'Bellville',1,1034,NULL,'44813',NULL,1228,40.606221,-82.52073,0,NULL,NULL,NULL), - (25,31,1,1,0,'453T Bay Ave SW',453,'T',NULL,'Bay','Ave','SW',NULL,NULL,NULL,NULL,'Columbia',1,1039,NULL,'29206',NULL,1228,34.037557,-80.96024,0,NULL,NULL,NULL), - (26,126,1,1,0,'804J Second Rd SW',804,'J',NULL,'Second','Rd','SW',NULL,NULL,NULL,NULL,'Masonville',1,1005,NULL,'80541',NULL,1228,40.529278,-105.372014,0,NULL,NULL,NULL), - (27,138,1,1,0,'626E College Way NW',626,'E',NULL,'College','Way','NW',NULL,NULL,NULL,NULL,'Deep Run',1,1032,NULL,'28525',NULL,1228,35.119845,-77.69208,0,NULL,NULL,NULL), - (28,150,1,1,0,'443G Maple Blvd N',443,'G',NULL,'Maple','Blvd','N',NULL,NULL,NULL,NULL,'Shawnee Mission',1,1015,NULL,'66201',NULL,1228,39.007755,-94.679486,0,NULL,NULL,NULL), - (29,200,1,1,0,'613B Beech Rd N',613,'B',NULL,'Beech','Rd','N',NULL,NULL,NULL,NULL,'Maquoketa',1,1014,NULL,'52060',NULL,1228,42.087769,-90.67352,0,NULL,NULL,NULL), - (30,5,1,1,0,'481L Van Ness Ln N',481,'L',NULL,'Van Ness','Ln','N',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10163',NULL,1228,40.780751,-73.977182,0,NULL,NULL,NULL), - (31,185,1,1,0,'695S Cadell Way SW',695,'S',NULL,'Cadell','Way','SW',NULL,NULL,NULL,NULL,'Pierce',1,1011,NULL,'83546',NULL,1228,46.525642,-115.82276,0,NULL,NULL,NULL), - (32,169,1,1,0,'107X Cadell Ln SE',107,'X',NULL,'Cadell','Ln','SE',NULL,NULL,NULL,NULL,'Patton',1,1024,NULL,'63662',NULL,1228,37.513967,-90.02477,0,NULL,NULL,NULL), - (33,173,1,1,0,'425G Woodbridge Rd S',425,'G',NULL,'Woodbridge','Rd','S',NULL,NULL,NULL,NULL,'Saint George',1,1043,NULL,'84790',NULL,1228,37.075039,-113.55568,0,NULL,NULL,NULL), - (34,84,1,1,0,'732S Cadell Path S',732,'S',NULL,'Cadell','Path','S',NULL,NULL,NULL,NULL,'Garrison',1,1042,NULL,'75946',NULL,1228,31.834379,-94.52629,0,NULL,NULL,NULL), - (35,142,1,1,0,'107H Second Rd N',107,'H',NULL,'Second','Rd','N',NULL,NULL,NULL,NULL,'Stoneboro',1,1037,NULL,'16153',NULL,1228,41.335391,-80.08895,0,NULL,NULL,NULL), - (36,120,1,1,0,'579V Green Pl S',579,'V',NULL,'Green','Pl','S',NULL,NULL,NULL,NULL,'Thomasville',1,1037,NULL,'17364',NULL,1228,39.92813,-76.9018,0,NULL,NULL,NULL), - (37,153,1,1,0,'627M Caulder Path S',627,'M',NULL,'Caulder','Path','S',NULL,NULL,NULL,NULL,'Sacramento',1,1004,NULL,'94230',NULL,1228,38.377411,-121.444429,0,NULL,NULL,NULL), - (38,109,1,1,0,'17E El Camino Ln E',17,'E',NULL,'El Camino','Ln','E',NULL,NULL,NULL,NULL,'West Dummerston',1,1044,NULL,'05357',NULL,1228,42.957233,-72.62408,0,NULL,NULL,NULL), - (39,30,1,1,0,'936O Bay Blvd E',936,'O',NULL,'Bay','Blvd','E',NULL,NULL,NULL,NULL,'Rocky Hill',1,1006,NULL,'06067',NULL,1228,41.660949,-72.66098,0,NULL,NULL,NULL), - (40,149,1,1,0,'857T Second Path SE',857,'T',NULL,'Second','Path','SE',NULL,NULL,NULL,NULL,'Belmont',1,1031,NULL,'14813',NULL,1228,42.238994,-78.01907,0,NULL,NULL,NULL), - (41,175,1,1,0,'482G Van Ness Rd W',482,'G',NULL,'Van Ness','Rd','W',NULL,NULL,NULL,NULL,'Elwell',1,1021,NULL,'48832',NULL,1228,43.411924,-84.77657,0,NULL,NULL,NULL), - (42,33,1,1,0,'153A Woodbridge Rd SW',153,'A',NULL,'Woodbridge','Rd','SW',NULL,NULL,NULL,NULL,'Comfort',1,1047,NULL,'25049',NULL,1228,38.131663,-81.56282,0,NULL,NULL,NULL), - (43,67,1,1,0,'411O Van Ness Rd W',411,'O',NULL,'Van Ness','Rd','W',NULL,NULL,NULL,NULL,'Norristown',1,1037,NULL,'19488',NULL,1228,39.983153,-75.748055,0,NULL,NULL,NULL), - (44,39,1,1,0,'210V Cadell Way W',210,'V',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Tarrytown',1,1031,NULL,'10592',NULL,1228,41.119008,-73.732996,0,NULL,NULL,NULL), - (45,158,1,1,0,'415D Dowlen Ln SW',415,'D',NULL,'Dowlen','Ln','SW',NULL,NULL,NULL,NULL,'Brawley',1,1004,NULL,'92227',NULL,1228,32.98975,-115.50475,0,NULL,NULL,NULL), - (46,167,1,1,0,'295B Woodbridge Way SW',295,'B',NULL,'Woodbridge','Way','SW',NULL,NULL,NULL,NULL,'Griffithville',1,1003,NULL,'72060',NULL,1228,35.091184,-91.58451,0,NULL,NULL,NULL), - (47,10,1,1,0,'246Q Maple Path E',246,'Q',NULL,'Maple','Path','E',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96827',NULL,1228,24.859832,-168.021815,0,NULL,NULL,NULL), - (48,177,1,1,0,'168T Green Blvd E',168,'T',NULL,'Green','Blvd','E',NULL,NULL,NULL,NULL,'Los Angeles',1,1004,NULL,'90087',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL), - (49,129,1,1,0,'524D Main Ave SW',524,'D',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Riverside',1,1004,NULL,'92521',NULL,1228,33.752886,-116.055617,0,NULL,NULL,NULL), - (50,174,1,1,0,'88B Second Rd S',88,'B',NULL,'Second','Rd','S',NULL,NULL,NULL,NULL,'South Heart',1,1033,NULL,'58655',NULL,1228,46.808668,-103.03364,0,NULL,NULL,NULL), - (51,65,1,1,0,'602H Jackson Pl W',602,'H',NULL,'Jackson','Pl','W',NULL,NULL,NULL,NULL,'Bellarthur',1,1032,NULL,'27811',NULL,1228,35.584685,-77.513357,0,NULL,NULL,NULL), - (52,179,1,1,0,'103N Pine Blvd NW',103,'N',NULL,'Pine','Blvd','NW',NULL,NULL,NULL,NULL,'Tyler',1,1042,NULL,'75704',NULL,1228,32.388631,-95.41373,0,NULL,NULL,NULL), - (53,50,1,1,0,'94F Main Rd N',94,'F',NULL,'Main','Rd','N',NULL,NULL,NULL,NULL,'Ware',1,1020,NULL,'01082',NULL,1228,42.270611,-72.26067,0,NULL,NULL,NULL), - (54,103,1,1,0,'208X El Camino Rd SE',208,'X',NULL,'El Camino','Rd','SE',NULL,NULL,NULL,NULL,'Wolcott',1,1031,NULL,'14590',NULL,1228,43.234753,-76.8252,0,NULL,NULL,NULL), - (55,198,1,1,0,'815J Cadell Dr S',815,'J',NULL,'Cadell','Dr','S',NULL,NULL,NULL,NULL,'Aberdeen',1,1032,NULL,'28315',NULL,1228,35.12416,-79.4415,0,NULL,NULL,NULL), - (56,52,1,1,0,'894R Maple Path SW',894,'R',NULL,'Maple','Path','SW',NULL,NULL,NULL,NULL,'Cypress',1,1042,NULL,'77410',NULL,1228,29.83399,-95.434241,0,NULL,NULL,NULL), - (57,188,1,1,0,'72N States Ln W',72,'N',NULL,'States','Ln','W',NULL,NULL,NULL,NULL,'Mohnton',1,1037,NULL,'19540',NULL,1228,40.250592,-75.96683,0,NULL,NULL,NULL), - (58,144,1,1,0,'676V States Rd NW',676,'V',NULL,'States','Rd','NW',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75245',NULL,1228,32.922499,-96.535191,0,NULL,NULL,NULL), - (59,182,1,1,0,'308K Lincoln Pl N',308,'K',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Lynchburg',1,1041,NULL,'37352',NULL,1228,35.276795,-86.35264,0,NULL,NULL,NULL), - (60,127,1,1,0,'115M Martin Luther King Rd SW',115,'M',NULL,'Martin Luther King','Rd','SW',NULL,NULL,NULL,NULL,'Stephenson',1,1021,NULL,'49887',NULL,1228,45.417184,-87.6281,0,NULL,NULL,NULL), - (61,197,1,1,0,'457P States Pl E',457,'P',NULL,'States','Pl','E',NULL,NULL,NULL,NULL,'Gramling',1,1039,NULL,'29348',NULL,1228,34.888237,-81.96902,0,NULL,NULL,NULL), - (62,19,1,1,0,'615X Jackson Dr N',615,'X',NULL,'Jackson','Dr','N',NULL,NULL,NULL,NULL,'Kings Mills',1,1034,NULL,'45034',NULL,1228,39.359268,-84.24898,0,NULL,NULL,NULL), - (63,38,1,1,0,'715F Main Ave E',715,'F',NULL,'Main','Ave','E',NULL,NULL,NULL,NULL,'Pacoima',1,1004,NULL,'91331',NULL,1228,34.254751,-118.42406,0,NULL,NULL,NULL), - (64,76,3,1,0,'510X Martin Luther King Dr SE',510,'X',NULL,'Martin Luther King','Dr','SE',NULL,'Receiving',NULL,NULL,'Lyons',1,1048,NULL,'53148',NULL,1228,42.649557,-88.35965,0,NULL,NULL,NULL), - (65,141,2,1,0,'510X Martin Luther King Dr SE',510,'X',NULL,'Martin Luther King','Dr','SE',NULL,'Receiving',NULL,NULL,'Lyons',1,1048,NULL,'53148',NULL,1228,42.649557,-88.35965,0,NULL,NULL,64), - (66,49,3,1,0,'787G Second Path S',787,'G',NULL,'Second','Path','S',NULL,'Cuffe Parade',NULL,NULL,'Mottville',1,1031,NULL,'13119',NULL,1228,42.97446,-76.440833,0,NULL,NULL,NULL), - (67,145,2,1,0,'787G Second Path S',787,'G',NULL,'Second','Path','S',NULL,'Cuffe Parade',NULL,NULL,'Mottville',1,1031,NULL,'13119',NULL,1228,42.97446,-76.440833,0,NULL,NULL,66), - (68,98,3,1,0,'658J Jackson St E',658,'J',NULL,'Jackson','St','E',NULL,'Community Relations',NULL,NULL,'San Angelo',1,1042,NULL,'76902',NULL,1228,31.39577,-100.68959,0,NULL,NULL,NULL), - (69,40,2,1,0,'658J Jackson St E',658,'J',NULL,'Jackson','St','E',NULL,'Community Relations',NULL,NULL,'San Angelo',1,1042,NULL,'76902',NULL,1228,31.39577,-100.68959,0,NULL,NULL,68), - (70,37,3,1,0,'101I States Way S',101,'I',NULL,'States','Way','S',NULL,'Urgent',NULL,NULL,'Spring Park',1,1022,NULL,'55384',NULL,1228,44.936423,-93.62868,0,NULL,NULL,NULL), - (71,110,2,0,0,'101I States Way S',101,'I',NULL,'States','Way','S',NULL,'Urgent',NULL,NULL,'Spring Park',1,1022,NULL,'55384',NULL,1228,44.936423,-93.62868,0,NULL,NULL,70), - (72,115,3,1,0,'555H Dowlen Blvd SE',555,'H',NULL,'Dowlen','Blvd','SE',NULL,'Attn: Development',NULL,NULL,'Bristol',1,1041,NULL,'37625',NULL,1228,36.504158,-82.26446,0,NULL,NULL,NULL), - (73,94,3,1,0,'675U Jackson Path NW',675,'U',NULL,'Jackson','Path','NW',NULL,'Payables Dept.',NULL,NULL,'Elkton',1,1022,NULL,'55933',NULL,1228,43.65099,-92.70596,0,NULL,NULL,NULL), - (74,140,3,1,0,'909N Caulder Path N',909,'N',NULL,'Caulder','Path','N',NULL,'Disbursements',NULL,NULL,'Orla',1,1042,NULL,'79770',NULL,1228,31.383297,-103.556598,0,NULL,NULL,NULL), - (75,96,2,0,0,'909N Caulder Path N',909,'N',NULL,'Caulder','Path','N',NULL,'Disbursements',NULL,NULL,'Orla',1,1042,NULL,'79770',NULL,1228,31.383297,-103.556598,0,NULL,NULL,74), - (76,124,3,1,0,'602K Maple Way SE',602,'K',NULL,'Maple','Way','SE',NULL,'Payables Dept.',NULL,NULL,'Cuttingsville',1,1044,NULL,'05738',NULL,1228,43.507854,-72.8642,0,NULL,NULL,NULL), - (77,185,2,0,0,'602K Maple Way SE',602,'K',NULL,'Maple','Way','SE',NULL,'Payables Dept.',NULL,NULL,'Cuttingsville',1,1044,NULL,'05738',NULL,1228,43.507854,-72.8642,0,NULL,NULL,76), - (78,66,3,1,0,'319R College Way SE',319,'R',NULL,'College','Way','SE',NULL,'Attn: Accounting',NULL,NULL,'Lyon Station',1,1037,NULL,'19536',NULL,1228,40.480194,-75.75698,0,NULL,NULL,NULL), - (79,83,2,1,0,'319R College Way SE',319,'R',NULL,'College','Way','SE',NULL,'Attn: Accounting',NULL,NULL,'Lyon Station',1,1037,NULL,'19536',NULL,1228,40.480194,-75.75698,0,NULL,NULL,78), - (80,119,3,1,0,'188C Second Pl SE',188,'C',NULL,'Second','Pl','SE',NULL,'c/o PO Plus',NULL,NULL,'Pompano Beach',1,1008,NULL,'33068',NULL,1228,26.21606,-80.21776,0,NULL,NULL,NULL), - (81,181,2,1,0,'188C Second Pl SE',188,'C',NULL,'Second','Pl','SE',NULL,'c/o PO Plus',NULL,NULL,'Pompano Beach',1,1008,NULL,'33068',NULL,1228,26.21606,-80.21776,0,NULL,NULL,80), - (82,101,3,1,0,'464F Dowlen Dr SE',464,'F',NULL,'Dowlen','Dr','SE',NULL,'Disbursements',NULL,NULL,'Harrisburg',1,1037,NULL,'17113',NULL,1228,40.23299,-76.82579,0,NULL,NULL,NULL), - (83,36,3,1,0,'86E Northpoint Ln N',86,'E',NULL,'Northpoint','Ln','N',NULL,'Urgent',NULL,NULL,'Providence',1,1038,NULL,'02907',NULL,1228,41.79855,-71.42449,0,NULL,NULL,NULL), - (84,175,2,0,0,'86E Northpoint Ln N',86,'E',NULL,'Northpoint','Ln','N',NULL,'Urgent',NULL,NULL,'Providence',1,1038,NULL,'02907',NULL,1228,41.79855,-71.42449,0,NULL,NULL,83), - (85,53,3,1,0,'412D Martin Luther King St SW',412,'D',NULL,'Martin Luther King','St','SW',NULL,'Payables Dept.',NULL,NULL,'Irvine',1,1004,NULL,'92709',NULL,1228,33.640302,-117.769442,0,NULL,NULL,NULL), - (86,6,3,1,0,'131E Van Ness Path SE',131,'E',NULL,'Van Ness','Path','SE',NULL,'Subscriptions Dept',NULL,NULL,'Paradise',1,1015,NULL,'67658',NULL,1228,39.118835,-98.91517,0,NULL,NULL,NULL), - (87,8,3,1,0,'660Q Caulder Ave NW',660,'Q',NULL,'Caulder','Ave','NW',NULL,'Donor Relations',NULL,NULL,'Hardinsburg',1,1016,NULL,'40143',NULL,1228,37.777083,-86.48345,0,NULL,NULL,NULL), - (88,4,3,1,0,'42L College St NE',42,'L',NULL,'College','St','NE',NULL,'Community Relations',NULL,NULL,'Austin',1,1042,NULL,'78760',NULL,1228,30.326374,-97.771258,0,NULL,NULL,NULL), - (89,168,2,1,0,'42L College St NE',42,'L',NULL,'College','St','NE',NULL,'Community Relations',NULL,NULL,'Austin',1,1042,NULL,'78760',NULL,1228,30.326374,-97.771258,0,NULL,NULL,88), - (90,121,3,1,0,'946A College St N',946,'A',NULL,'College','St','N',NULL,'Payables Dept.',NULL,NULL,'Mcalester',1,1035,NULL,'74501',NULL,1228,34.944399,-95.75709,0,NULL,NULL,NULL), - (91,186,3,1,0,'924T Caulder Ave S',924,'T',NULL,'Caulder','Ave','S',NULL,'Urgent',NULL,NULL,'Westfield',1,1032,NULL,'27053',NULL,1228,36.473951,-80.34752,0,NULL,NULL,NULL), - (92,104,2,1,0,'924T Caulder Ave S',924,'T',NULL,'Caulder','Ave','S',NULL,'Urgent',NULL,NULL,'Westfield',1,1032,NULL,'27053',NULL,1228,36.473951,-80.34752,0,NULL,NULL,91), - (93,2,3,1,0,'394A Second Blvd NE',394,'A',NULL,'Second','Blvd','NE',NULL,'Churchgate',NULL,NULL,'Concord',1,1032,NULL,'28026',NULL,1228,35.346285,-80.541088,0,NULL,NULL,NULL), - (94,183,2,1,0,'394A Second Blvd NE',394,'A',NULL,'Second','Blvd','NE',NULL,'Churchgate',NULL,NULL,'Concord',1,1032,NULL,'28026',NULL,1228,35.346285,-80.541088,0,NULL,NULL,93), - (95,7,3,1,0,'93V Second St E',93,'V',NULL,'Second','St','E',NULL,'Donor Relations',NULL,NULL,'Port Royal',1,1037,NULL,'17082',NULL,1228,40.508563,-77.42137,0,NULL,NULL,NULL), - (96,79,1,1,0,'210V Cadell Way W',210,'V',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Tarrytown',1,1031,NULL,'10592',NULL,1228,41.119008,-73.732996,0,NULL,NULL,44), - (97,112,1,1,0,'210V Cadell Way W',210,'V',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Tarrytown',1,1031,NULL,'10592',NULL,1228,41.119008,-73.732996,0,NULL,NULL,44), - (98,154,1,1,0,'210V Cadell Way W',210,'V',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Tarrytown',1,1031,NULL,'10592',NULL,1228,41.119008,-73.732996,0,NULL,NULL,44), - (99,67,1,0,0,'210V Cadell Way W',210,'V',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Tarrytown',1,1031,NULL,'10592',NULL,1228,41.119008,-73.732996,0,NULL,NULL,44), - (100,41,1,1,0,'415D Dowlen Ln SW',415,'D',NULL,'Dowlen','Ln','SW',NULL,NULL,NULL,NULL,'Brawley',1,1004,NULL,'92227',NULL,1228,32.98975,-115.50475,0,NULL,NULL,45), - (101,43,1,1,0,'415D Dowlen Ln SW',415,'D',NULL,'Dowlen','Ln','SW',NULL,NULL,NULL,NULL,'Brawley',1,1004,NULL,'92227',NULL,1228,32.98975,-115.50475,0,NULL,NULL,45), - (102,201,1,1,0,'415D Dowlen Ln SW',415,'D',NULL,'Dowlen','Ln','SW',NULL,NULL,NULL,NULL,'Brawley',1,1004,NULL,'92227',NULL,1228,32.98975,-115.50475,0,NULL,NULL,45), - (103,194,1,1,0,'512S Green Ave E',512,'S',NULL,'Green','Ave','E',NULL,NULL,NULL,NULL,'Powersite',1,1024,NULL,'65731',NULL,1228,36.655356,-93.12274,0,NULL,NULL,NULL), - (104,178,1,1,0,'295B Woodbridge Way SW',295,'B',NULL,'Woodbridge','Way','SW',NULL,NULL,NULL,NULL,'Griffithville',1,1003,NULL,'72060',NULL,1228,35.091184,-91.58451,0,NULL,NULL,46), - (105,80,1,1,0,'295B Woodbridge Way SW',295,'B',NULL,'Woodbridge','Way','SW',NULL,NULL,NULL,NULL,'Griffithville',1,1003,NULL,'72060',NULL,1228,35.091184,-91.58451,0,NULL,NULL,46), - (106,172,1,1,0,'295B Woodbridge Way SW',295,'B',NULL,'Woodbridge','Way','SW',NULL,NULL,NULL,NULL,'Griffithville',1,1003,NULL,'72060',NULL,1228,35.091184,-91.58451,0,NULL,NULL,46), - (107,171,1,1,0,'295B Woodbridge Way SW',295,'B',NULL,'Woodbridge','Way','SW',NULL,NULL,NULL,NULL,'Griffithville',1,1003,NULL,'72060',NULL,1228,35.091184,-91.58451,0,NULL,NULL,46), - (108,116,1,1,0,'246Q Maple Path E',246,'Q',NULL,'Maple','Path','E',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96827',NULL,1228,24.859832,-168.021815,0,NULL,NULL,47), - (109,165,1,1,0,'246Q Maple Path E',246,'Q',NULL,'Maple','Path','E',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96827',NULL,1228,24.859832,-168.021815,0,NULL,NULL,47), - (110,14,1,1,0,'246Q Maple Path E',246,'Q',NULL,'Maple','Path','E',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96827',NULL,1228,24.859832,-168.021815,0,NULL,NULL,47), - (111,152,1,1,0,'246Q Maple Path E',246,'Q',NULL,'Maple','Path','E',NULL,NULL,NULL,NULL,'Honolulu',1,1010,NULL,'96827',NULL,1228,24.859832,-168.021815,0,NULL,NULL,47), - (112,58,1,1,0,'168T Green Blvd E',168,'T',NULL,'Green','Blvd','E',NULL,NULL,NULL,NULL,'Los Angeles',1,1004,NULL,'90087',NULL,1228,33.786594,-118.298662,0,NULL,NULL,48), - (113,21,1,1,0,'168T Green Blvd E',168,'T',NULL,'Green','Blvd','E',NULL,NULL,NULL,NULL,'Los Angeles',1,1004,NULL,'90087',NULL,1228,33.786594,-118.298662,0,NULL,NULL,48), - (114,195,1,1,0,'168T Green Blvd E',168,'T',NULL,'Green','Blvd','E',NULL,NULL,NULL,NULL,'Los Angeles',1,1004,NULL,'90087',NULL,1228,33.786594,-118.298662,0,NULL,NULL,48), - (115,133,1,1,0,'649R Woodbridge Ln S',649,'R',NULL,'Woodbridge','Ln','S',NULL,NULL,NULL,NULL,'Harristown',1,1012,NULL,'62537',NULL,1228,39.867151,-89.11324,0,NULL,NULL,NULL), - (116,192,1,1,0,'524D Main Ave SW',524,'D',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Riverside',1,1004,NULL,'92521',NULL,1228,33.752886,-116.055617,0,NULL,NULL,49), - (117,90,1,1,0,'524D Main Ave SW',524,'D',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Riverside',1,1004,NULL,'92521',NULL,1228,33.752886,-116.055617,0,NULL,NULL,49), - (118,113,1,1,0,'524D Main Ave SW',524,'D',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Riverside',1,1004,NULL,'92521',NULL,1228,33.752886,-116.055617,0,NULL,NULL,49), - (119,187,1,1,0,'524D Main Ave SW',524,'D',NULL,'Main','Ave','SW',NULL,NULL,NULL,NULL,'Riverside',1,1004,NULL,'92521',NULL,1228,33.752886,-116.055617,0,NULL,NULL,49), - (120,118,1,1,0,'88B Second Rd S',88,'B',NULL,'Second','Rd','S',NULL,NULL,NULL,NULL,'South Heart',1,1033,NULL,'58655',NULL,1228,46.808668,-103.03364,0,NULL,NULL,50), - (121,114,1,1,0,'88B Second Rd S',88,'B',NULL,'Second','Rd','S',NULL,NULL,NULL,NULL,'South Heart',1,1033,NULL,'58655',NULL,1228,46.808668,-103.03364,0,NULL,NULL,50), - (122,155,1,1,0,'88B Second Rd S',88,'B',NULL,'Second','Rd','S',NULL,NULL,NULL,NULL,'South Heart',1,1033,NULL,'58655',NULL,1228,46.808668,-103.03364,0,NULL,NULL,50), - (123,147,1,1,0,'88B Second Rd S',88,'B',NULL,'Second','Rd','S',NULL,NULL,NULL,NULL,'South Heart',1,1033,NULL,'58655',NULL,1228,46.808668,-103.03364,0,NULL,NULL,50), - (124,125,1,1,0,'602H Jackson Pl W',602,'H',NULL,'Jackson','Pl','W',NULL,NULL,NULL,NULL,'Bellarthur',1,1032,NULL,'27811',NULL,1228,35.584685,-77.513357,0,NULL,NULL,51), - (125,68,1,1,0,'602H Jackson Pl W',602,'H',NULL,'Jackson','Pl','W',NULL,NULL,NULL,NULL,'Bellarthur',1,1032,NULL,'27811',NULL,1228,35.584685,-77.513357,0,NULL,NULL,51), - (126,45,1,1,0,'602H Jackson Pl W',602,'H',NULL,'Jackson','Pl','W',NULL,NULL,NULL,NULL,'Bellarthur',1,1032,NULL,'27811',NULL,1228,35.584685,-77.513357,0,NULL,NULL,51), - (127,161,1,1,0,'602H Jackson Pl W',602,'H',NULL,'Jackson','Pl','W',NULL,NULL,NULL,NULL,'Bellarthur',1,1032,NULL,'27811',NULL,1228,35.584685,-77.513357,0,NULL,NULL,51), - (128,159,1,1,0,'103N Pine Blvd NW',103,'N',NULL,'Pine','Blvd','NW',NULL,NULL,NULL,NULL,'Tyler',1,1042,NULL,'75704',NULL,1228,32.388631,-95.41373,0,NULL,NULL,52), - (129,64,1,1,0,'103N Pine Blvd NW',103,'N',NULL,'Pine','Blvd','NW',NULL,NULL,NULL,NULL,'Tyler',1,1042,NULL,'75704',NULL,1228,32.388631,-95.41373,0,NULL,NULL,52), - (130,199,1,1,0,'103N Pine Blvd NW',103,'N',NULL,'Pine','Blvd','NW',NULL,NULL,NULL,NULL,'Tyler',1,1042,NULL,'75704',NULL,1228,32.388631,-95.41373,0,NULL,NULL,52), - (131,69,1,1,0,'103N Pine Blvd NW',103,'N',NULL,'Pine','Blvd','NW',NULL,NULL,NULL,NULL,'Tyler',1,1042,NULL,'75704',NULL,1228,32.388631,-95.41373,0,NULL,NULL,52), - (132,181,1,0,0,'94F Main Rd N',94,'F',NULL,'Main','Rd','N',NULL,NULL,NULL,NULL,'Ware',1,1020,NULL,'01082',NULL,1228,42.270611,-72.26067,0,NULL,NULL,53), - (133,77,1,1,0,'94F Main Rd N',94,'F',NULL,'Main','Rd','N',NULL,NULL,NULL,NULL,'Ware',1,1020,NULL,'01082',NULL,1228,42.270611,-72.26067,0,NULL,NULL,53), - (134,191,1,1,0,'94F Main Rd N',94,'F',NULL,'Main','Rd','N',NULL,NULL,NULL,NULL,'Ware',1,1020,NULL,'01082',NULL,1228,42.270611,-72.26067,0,NULL,NULL,53), - (135,20,1,1,0,'517A Main Pl E',517,'A',NULL,'Main','Pl','E',NULL,NULL,NULL,NULL,'Kamas',1,1043,NULL,'84036',NULL,1228,40.625883,-111.20141,0,NULL,NULL,NULL), - (136,26,1,1,0,'208X El Camino Rd SE',208,'X',NULL,'El Camino','Rd','SE',NULL,NULL,NULL,NULL,'Wolcott',1,1031,NULL,'14590',NULL,1228,43.234753,-76.8252,0,NULL,NULL,54), - (137,180,1,1,0,'208X El Camino Rd SE',208,'X',NULL,'El Camino','Rd','SE',NULL,NULL,NULL,NULL,'Wolcott',1,1031,NULL,'14590',NULL,1228,43.234753,-76.8252,0,NULL,NULL,54), - (138,11,1,1,0,'208X El Camino Rd SE',208,'X',NULL,'El Camino','Rd','SE',NULL,NULL,NULL,NULL,'Wolcott',1,1031,NULL,'14590',NULL,1228,43.234753,-76.8252,0,NULL,NULL,54), - (139,156,1,1,0,'793C Maple Path N',793,'C',NULL,'Maple','Path','N',NULL,NULL,NULL,NULL,'Alpharetta',1,1009,NULL,'30022',NULL,1228,34.026238,-84.24506,0,NULL,NULL,NULL), - (140,91,1,1,0,'815J Cadell Dr S',815,'J',NULL,'Cadell','Dr','S',NULL,NULL,NULL,NULL,'Aberdeen',1,1032,NULL,'28315',NULL,1228,35.12416,-79.4415,0,NULL,NULL,55), - (141,3,1,1,0,'815J Cadell Dr S',815,'J',NULL,'Cadell','Dr','S',NULL,NULL,NULL,NULL,'Aberdeen',1,1032,NULL,'28315',NULL,1228,35.12416,-79.4415,0,NULL,NULL,55), - (142,73,1,1,0,'815J Cadell Dr S',815,'J',NULL,'Cadell','Dr','S',NULL,NULL,NULL,NULL,'Aberdeen',1,1032,NULL,'28315',NULL,1228,35.12416,-79.4415,0,NULL,NULL,55), - (143,99,1,1,0,'919I Martin Luther King St SE',919,'I',NULL,'Martin Luther King','St','SE',NULL,NULL,NULL,NULL,'North Highlands',1,1004,NULL,'95660',NULL,1228,38.676103,-121.37656,0,NULL,NULL,NULL), - (144,139,1,1,0,'894R Maple Path SW',894,'R',NULL,'Maple','Path','SW',NULL,NULL,NULL,NULL,'Cypress',1,1042,NULL,'77410',NULL,1228,29.83399,-95.434241,0,NULL,NULL,56), - (145,189,1,1,0,'894R Maple Path SW',894,'R',NULL,'Maple','Path','SW',NULL,NULL,NULL,NULL,'Cypress',1,1042,NULL,'77410',NULL,1228,29.83399,-95.434241,0,NULL,NULL,56), - (146,62,1,1,0,'894R Maple Path SW',894,'R',NULL,'Maple','Path','SW',NULL,NULL,NULL,NULL,'Cypress',1,1042,NULL,'77410',NULL,1228,29.83399,-95.434241,0,NULL,NULL,56), - (147,71,1,1,0,'894R Maple Path SW',894,'R',NULL,'Maple','Path','SW',NULL,NULL,NULL,NULL,'Cypress',1,1042,NULL,'77410',NULL,1228,29.83399,-95.434241,0,NULL,NULL,56), - (148,40,1,0,0,'72N States Ln W',72,'N',NULL,'States','Ln','W',NULL,NULL,NULL,NULL,'Mohnton',1,1037,NULL,'19540',NULL,1228,40.250592,-75.96683,0,NULL,NULL,57), - (149,92,1,1,0,'72N States Ln W',72,'N',NULL,'States','Ln','W',NULL,NULL,NULL,NULL,'Mohnton',1,1037,NULL,'19540',NULL,1228,40.250592,-75.96683,0,NULL,NULL,57), - (150,70,1,1,0,'72N States Ln W',72,'N',NULL,'States','Ln','W',NULL,NULL,NULL,NULL,'Mohnton',1,1037,NULL,'19540',NULL,1228,40.250592,-75.96683,0,NULL,NULL,57), - (151,87,1,1,0,'72N States Ln W',72,'N',NULL,'States','Ln','W',NULL,NULL,NULL,NULL,'Mohnton',1,1037,NULL,'19540',NULL,1228,40.250592,-75.96683,0,NULL,NULL,57), - (152,57,1,1,0,'676V States Rd NW',676,'V',NULL,'States','Rd','NW',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75245',NULL,1228,32.922499,-96.535191,0,NULL,NULL,58), - (153,157,1,1,0,'676V States Rd NW',676,'V',NULL,'States','Rd','NW',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75245',NULL,1228,32.922499,-96.535191,0,NULL,NULL,58), - (154,75,1,1,0,'676V States Rd NW',676,'V',NULL,'States','Rd','NW',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75245',NULL,1228,32.922499,-96.535191,0,NULL,NULL,58), - (155,32,1,1,0,'676V States Rd NW',676,'V',NULL,'States','Rd','NW',NULL,NULL,NULL,NULL,'Dallas',1,1042,NULL,'75245',NULL,1228,32.922499,-96.535191,0,NULL,NULL,58), - (156,51,1,1,0,'308K Lincoln Pl N',308,'K',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Lynchburg',1,1041,NULL,'37352',NULL,1228,35.276795,-86.35264,0,NULL,NULL,59), - (157,122,1,1,0,'308K Lincoln Pl N',308,'K',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Lynchburg',1,1041,NULL,'37352',NULL,1228,35.276795,-86.35264,0,NULL,NULL,59), - (158,196,1,1,0,'308K Lincoln Pl N',308,'K',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Lynchburg',1,1041,NULL,'37352',NULL,1228,35.276795,-86.35264,0,NULL,NULL,59), - (159,104,1,0,0,'308K Lincoln Pl N',308,'K',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Lynchburg',1,1041,NULL,'37352',NULL,1228,35.276795,-86.35264,0,NULL,NULL,59), - (160,44,1,1,0,'115M Martin Luther King Rd SW',115,'M',NULL,'Martin Luther King','Rd','SW',NULL,NULL,NULL,NULL,'Stephenson',1,1021,NULL,'49887',NULL,1228,45.417184,-87.6281,0,NULL,NULL,60), - (161,166,1,1,0,'115M Martin Luther King Rd SW',115,'M',NULL,'Martin Luther King','Rd','SW',NULL,NULL,NULL,NULL,'Stephenson',1,1021,NULL,'49887',NULL,1228,45.417184,-87.6281,0,NULL,NULL,60), - (162,89,1,1,0,'115M Martin Luther King Rd SW',115,'M',NULL,'Martin Luther King','Rd','SW',NULL,NULL,NULL,NULL,'Stephenson',1,1021,NULL,'49887',NULL,1228,45.417184,-87.6281,0,NULL,NULL,60), - (163,163,1,1,0,'193B El Camino Pl S',193,'B',NULL,'El Camino','Pl','S',NULL,NULL,NULL,NULL,'Greenfield',1,1012,NULL,'62044',NULL,1228,39.362285,-90.22147,0,NULL,NULL,NULL), - (164,107,1,1,0,'457P States Pl E',457,'P',NULL,'States','Pl','E',NULL,NULL,NULL,NULL,'Gramling',1,1039,NULL,'29348',NULL,1228,34.888237,-81.96902,0,NULL,NULL,61), - (165,130,1,1,0,'457P States Pl E',457,'P',NULL,'States','Pl','E',NULL,NULL,NULL,NULL,'Gramling',1,1039,NULL,'29348',NULL,1228,34.888237,-81.96902,0,NULL,NULL,61), - (166,183,1,0,0,'457P States Pl E',457,'P',NULL,'States','Pl','E',NULL,NULL,NULL,NULL,'Gramling',1,1039,NULL,'29348',NULL,1228,34.888237,-81.96902,0,NULL,NULL,61), - (167,97,1,1,0,'457P States Pl E',457,'P',NULL,'States','Pl','E',NULL,NULL,NULL,NULL,'Gramling',1,1039,NULL,'29348',NULL,1228,34.888237,-81.96902,0,NULL,NULL,61), - (168,18,1,1,0,'615X Jackson Dr N',615,'X',NULL,'Jackson','Dr','N',NULL,NULL,NULL,NULL,'Kings Mills',1,1034,NULL,'45034',NULL,1228,39.359268,-84.24898,0,NULL,NULL,62), - (169,85,1,1,0,'615X Jackson Dr N',615,'X',NULL,'Jackson','Dr','N',NULL,NULL,NULL,NULL,'Kings Mills',1,1034,NULL,'45034',NULL,1228,39.359268,-84.24898,0,NULL,NULL,62), - (170,56,1,1,0,'615X Jackson Dr N',615,'X',NULL,'Jackson','Dr','N',NULL,NULL,NULL,NULL,'Kings Mills',1,1034,NULL,'45034',NULL,1228,39.359268,-84.24898,0,NULL,NULL,62), - (171,55,1,1,0,'615X Jackson Dr N',615,'X',NULL,'Jackson','Dr','N',NULL,NULL,NULL,NULL,'Kings Mills',1,1034,NULL,'45034',NULL,1228,39.359268,-84.24898,0,NULL,NULL,62), - (172,22,1,1,0,'715F Main Ave E',715,'F',NULL,'Main','Ave','E',NULL,NULL,NULL,NULL,'Pacoima',1,1004,NULL,'91331',NULL,1228,34.254751,-118.42406,0,NULL,NULL,63), - (173,193,1,1,0,'715F Main Ave E',715,'F',NULL,'Main','Ave','E',NULL,NULL,NULL,NULL,'Pacoima',1,1004,NULL,'91331',NULL,1228,34.254751,-118.42406,0,NULL,NULL,63), - (174,168,1,0,0,'715F Main Ave E',715,'F',NULL,'Main','Ave','E',NULL,NULL,NULL,NULL,'Pacoima',1,1004,NULL,'91331',NULL,1228,34.254751,-118.42406,0,NULL,NULL,63), - (175,28,1,1,0,'715F Main Ave E',715,'F',NULL,'Main','Ave','E',NULL,NULL,NULL,NULL,'Pacoima',1,1004,NULL,'91331',NULL,1228,34.254751,-118.42406,0,NULL,NULL,63), - (176,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL), - (177,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL), - (178,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL); + (1,41,1,1,0,'118B Pine Pl SE',118,'B',NULL,'Pine','Pl','SE',NULL,NULL,NULL,NULL,'Dahlonega',1,1009,NULL,'30597',NULL,1228,34.527671,-83.980879,0,NULL,NULL,NULL), + (2,171,1,1,0,'848R Main Pl W',848,'R',NULL,'Main','Pl','W',NULL,NULL,NULL,NULL,'Brushton',1,1031,NULL,'12916',NULL,1228,44.830736,-74.51434,0,NULL,NULL,NULL), + (3,64,1,1,0,'399Y Woodbridge Ave W',399,'Y',NULL,'Woodbridge','Ave','W',NULL,NULL,NULL,NULL,'Houston',1,1042,NULL,'77253',NULL,1228,29.83399,-95.434241,0,NULL,NULL,NULL), + (4,178,1,1,0,'441M Jackson St SE',441,'M',NULL,'Jackson','St','SE',NULL,NULL,NULL,NULL,'Palm Bay',1,1008,NULL,'32908',NULL,1228,27.958982,-80.68591,0,NULL,NULL,NULL), + (5,24,1,1,0,'327M States Pl NE',327,'M',NULL,'States','Pl','NE',NULL,NULL,NULL,NULL,'Grand Mound',1,1014,NULL,'52751',NULL,1228,41.836317,-90.67008,0,NULL,NULL,NULL), + (6,146,1,1,0,'192S Jackson Pl SE',192,'S',NULL,'Jackson','Pl','SE',NULL,NULL,NULL,NULL,'Waccabuc',1,1031,NULL,'10597',NULL,1228,41.289162,-73.58834,0,NULL,NULL,NULL), + (7,4,1,1,0,'299U Lincoln Pl N',299,'U',NULL,'Lincoln','Pl','N',NULL,NULL,NULL,NULL,'Tulsa',1,1035,NULL,'74182',NULL,1228,36.139826,-96.029725,0,NULL,NULL,NULL), + (8,37,1,1,0,'725K Second St NE',725,'K',NULL,'Second','St','NE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10116',NULL,1228,40.780751,-73.977182,0,NULL,NULL,NULL), + (9,160,1,1,0,'249O Dowlen Way S',249,'O',NULL,'Dowlen','Way','S',NULL,NULL,NULL,NULL,'Munfordville',1,1016,NULL,'42765',NULL,1228,37.291869,-85.90786,0,NULL,NULL,NULL), + (10,82,1,1,0,'728X Dowlen Ave SE',728,'X',NULL,'Dowlen','Ave','SE',NULL,NULL,NULL,NULL,'Duluth',1,1009,NULL,'30099',NULL,1228,33.959535,-84.105011,0,NULL,NULL,NULL), + (11,102,1,1,0,'784J Maple Blvd S',784,'J',NULL,'Maple','Blvd','S',NULL,NULL,NULL,NULL,'Bloomington',1,1013,NULL,'47404',NULL,1228,39.188246,-86.56779,0,NULL,NULL,NULL), + (12,124,1,1,0,'307U Green Ave NW',307,'U',NULL,'Green','Ave','NW',NULL,NULL,NULL,NULL,'Lowden',1,1014,NULL,'52255',NULL,1228,41.86521,-90.94316,0,NULL,NULL,NULL), + (13,28,1,1,0,'609L Martin Luther King St E',609,'L',NULL,'Martin Luther King','St','E',NULL,NULL,NULL,NULL,'Wrigley',1,1016,NULL,'41477',NULL,1228,37.914002,-83.233761,0,NULL,NULL,NULL), + (14,40,1,1,0,'148R Martin Luther King Ln N',148,'R',NULL,'Martin Luther King','Ln','N',NULL,NULL,NULL,NULL,'Albuquerque',1,1030,NULL,'87201',NULL,1228,35.044339,-106.672872,0,NULL,NULL,NULL), + (15,32,1,1,0,'576E Beech Blvd W',576,'E',NULL,'Beech','Blvd','W',NULL,NULL,NULL,NULL,'Steep Falls',1,1018,NULL,'04085',NULL,1228,43.770432,-70.63812,0,NULL,NULL,NULL), + (16,199,1,1,0,'979E Dowlen Ave SE',979,'E',NULL,'Dowlen','Ave','SE',NULL,NULL,NULL,NULL,'Clothier',1,1047,NULL,'25047',NULL,1228,37.950033,-81.78924,0,NULL,NULL,NULL), + (17,180,1,1,0,'717Z Second Pl N',717,'Z',NULL,'Second','Pl','N',NULL,NULL,NULL,NULL,'Huntsville',1,1000,NULL,'35824',NULL,1228,34.654126,-86.73987,0,NULL,NULL,NULL), + (18,192,1,1,0,'449G States Ln W',449,'G',NULL,'States','Ln','W',NULL,NULL,NULL,NULL,'West Bloomfield',1,1031,NULL,'14585',NULL,1228,42.901162,-77.54848,0,NULL,NULL,NULL), + (19,141,1,1,0,'774H Maple Way NW',774,'H',NULL,'Maple','Way','NW',NULL,NULL,NULL,NULL,'Fort Morgan',1,1005,NULL,'80701',NULL,1228,40.226357,-103.80625,0,NULL,NULL,NULL), + (20,59,1,1,0,'836A Dowlen Ave W',836,'A',NULL,'Dowlen','Ave','W',NULL,NULL,NULL,NULL,'Wakpala',1,1040,NULL,'57658',NULL,1228,45.68838,-100.51908,0,NULL,NULL,NULL), + (21,100,1,1,0,'49T Cadell St SW',49,'T',NULL,'Cadell','St','SW',NULL,NULL,NULL,NULL,'Ross',1,1042,NULL,'76684',NULL,1228,31.717293,-97.118754,0,NULL,NULL,NULL), + (22,11,1,1,0,'388F Northpoint Blvd SW',388,'F',NULL,'Northpoint','Blvd','SW',NULL,NULL,NULL,NULL,'New Bedford',1,1020,NULL,'02741',NULL,1228,41.756214,-71.067062,0,NULL,NULL,NULL), + (23,144,1,1,0,'860L Lincoln Way NE',860,'L',NULL,'Lincoln','Way','NE',NULL,NULL,NULL,NULL,'Oakland',1,1004,NULL,'94606',NULL,1228,37.793177,-122.24352,0,NULL,NULL,NULL), + (24,75,1,1,0,'692H Dowlen Pl E',692,'H',NULL,'Dowlen','Pl','E',NULL,NULL,NULL,NULL,'Oakdale',1,1037,NULL,'15071',NULL,1228,40.420319,-80.18692,0,NULL,NULL,NULL), + (25,112,1,1,0,'987Z Jackson Rd NE',987,'Z',NULL,'Jackson','Rd','NE',NULL,NULL,NULL,NULL,'Gray Mountain',1,1002,NULL,'86016',NULL,1228,35.675689,-111.49474,0,NULL,NULL,NULL), + (26,182,1,1,0,'826E Bay Ave NW',826,'E',NULL,'Bay','Ave','NW',NULL,NULL,NULL,NULL,'Golf',1,1012,NULL,'60029',NULL,1228,42.056529,-87.79286,0,NULL,NULL,NULL), + (27,165,1,1,0,'329F Main Path SW',329,'F',NULL,'Main','Path','SW',NULL,NULL,NULL,NULL,'Nada',1,1042,NULL,'77460',NULL,1228,29.60466,-96.524899,0,NULL,NULL,NULL), + (28,132,1,1,0,'981C Beech Path NE',981,'C',NULL,'Beech','Path','NE',NULL,NULL,NULL,NULL,'Big Island',1,1045,NULL,'24526',NULL,1228,37.528701,-79.39812,0,NULL,NULL,NULL), + (29,172,1,1,0,'858Y Second Rd NE',858,'Y',NULL,'Second','Rd','NE',NULL,NULL,NULL,NULL,'El Paso',1,1042,NULL,'79960',NULL,1228,31.694842,-106.299987,0,NULL,NULL,NULL), + (30,186,1,1,0,'797F Beech Path N',797,'F',NULL,'Beech','Path','N',NULL,NULL,NULL,NULL,'Bivins',1,1042,NULL,'75555',NULL,1228,32.930895,-94.13542,0,NULL,NULL,NULL), + (31,90,1,1,0,'841M Cadell Blvd SE',841,'M',NULL,'Cadell','Blvd','SE',NULL,NULL,NULL,NULL,'Pasadena',1,1004,NULL,'91114',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL), + (32,155,1,1,0,'320H Van Ness Ln S',320,'H',NULL,'Van Ness','Ln','S',NULL,NULL,NULL,NULL,'Montgomery',1,1037,NULL,'17752',NULL,1228,41.173254,-76.88449,0,NULL,NULL,NULL), + (33,96,1,1,0,'455X Martin Luther King Ln S',455,'X',NULL,'Martin Luther King','Ln','S',NULL,NULL,NULL,NULL,'New Windsor',1,1019,NULL,'21776',NULL,1228,39.529834,-77.09715,0,NULL,NULL,NULL), + (34,108,1,1,0,'915O Dowlen Way SW',915,'O',NULL,'Dowlen','Way','SW',NULL,NULL,NULL,NULL,'Jerome',1,1002,NULL,'86631',NULL,1228,34.748879,-112.115853,0,NULL,NULL,NULL), + (35,78,1,1,0,'214V Maple Dr S',214,'V',NULL,'Maple','Dr','S',NULL,NULL,NULL,NULL,'Reading',1,1037,NULL,'19605',NULL,1228,40.390943,-75.9375,0,NULL,NULL,NULL), + (36,103,1,1,0,'238J Second Pl SE',238,'J',NULL,'Second','Pl','SE',NULL,NULL,NULL,NULL,'Organ',1,1030,NULL,'88052',NULL,1228,32.437435,-106.60256,0,NULL,NULL,NULL), + (37,107,1,1,0,'155S Bay Way NW',155,'S',NULL,'Bay','Way','NW',NULL,NULL,NULL,NULL,'Camargo',1,1012,NULL,'61919',NULL,1228,39.783794,-88.13861,0,NULL,NULL,NULL), + (38,44,1,1,0,'443H El Camino Dr SE',443,'H',NULL,'El Camino','Dr','SE',NULL,NULL,NULL,NULL,'Kailua Kona',1,1010,NULL,'96740',NULL,1228,19.675386,-155.97588,0,NULL,NULL,NULL), + (39,115,1,1,0,'999X States Path SE',999,'X',NULL,'States','Path','SE',NULL,NULL,NULL,NULL,'Clearwater',1,1015,NULL,'67026',NULL,1228,37.518342,-97.49452,0,NULL,NULL,NULL), + (40,56,1,1,0,'423U Caulder Pl SW',423,'U',NULL,'Caulder','Pl','SW',NULL,NULL,NULL,NULL,'Dighton',1,1015,NULL,'67839',NULL,1228,38.514924,-100.43776,0,NULL,NULL,NULL), + (41,183,1,1,0,'22J College Ave S',22,'J',NULL,'College','Ave','S',NULL,NULL,NULL,NULL,'Auburn',1,1026,NULL,'68305',NULL,1228,40.376356,-95.84422,0,NULL,NULL,NULL), + (42,62,1,1,0,'334N Second Way SW',334,'N',NULL,'Second','Way','SW',NULL,NULL,NULL,NULL,'Sorrento',1,1008,NULL,'32776',NULL,1228,28.804039,-81.53689,0,NULL,NULL,NULL), + (43,121,1,1,0,'494X Second Rd NW',494,'X',NULL,'Second','Rd','NW',NULL,NULL,NULL,NULL,'Bowring',1,1035,NULL,'74009',NULL,1228,36.665794,-96.398424,0,NULL,NULL,NULL), + (44,143,1,1,0,'880H Lincoln Way S',880,'H',NULL,'Lincoln','Way','S',NULL,NULL,NULL,NULL,'Waccabuc',1,1031,NULL,'10597',NULL,1228,41.289162,-73.58834,0,NULL,NULL,NULL), + (45,39,1,1,0,'258B Dowlen Dr S',258,'B',NULL,'Dowlen','Dr','S',NULL,NULL,NULL,NULL,'Tarzan',1,1042,NULL,'79783',NULL,1228,32.369835,-102.03317,0,NULL,NULL,NULL), + (46,190,1,1,0,'817L Caulder Way SE',817,'L',NULL,'Caulder','Way','SE',NULL,NULL,NULL,NULL,'Bullhead City',1,1002,NULL,'86429',NULL,1228,35.172854,-114.54696,0,NULL,NULL,NULL), + (47,10,1,1,0,'106Z Beech Dr NE',106,'Z',NULL,'Beech','Dr','NE',NULL,NULL,NULL,NULL,'Weston',1,1047,NULL,'26452',NULL,1228,39.04101,-80.47731,0,NULL,NULL,NULL), + (48,156,1,1,0,'624S Martin Luther King Pl SW',624,'S',NULL,'Martin Luther King','Pl','SW',NULL,NULL,NULL,NULL,'Shawnee Mission',1,1015,NULL,'66208',NULL,1228,38.999505,-94.63102,0,NULL,NULL,NULL), + (49,131,1,1,0,'435P Jackson St E',435,'P',NULL,'Jackson','St','E',NULL,NULL,NULL,NULL,'Sunnyside',1,1031,NULL,'11104',NULL,1228,40.743796,-73.91949,0,NULL,NULL,NULL), + (50,118,1,1,0,'971J Main Way NW',971,'J',NULL,'Main','Way','NW',NULL,NULL,NULL,NULL,'Irmo',1,1039,NULL,'29063',NULL,1228,34.120487,-81.19686,0,NULL,NULL,NULL), + (51,5,1,1,0,'374F College St W',374,'F',NULL,'College','St','W',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33174',NULL,1228,25.763044,-80.35919,0,NULL,NULL,NULL), + (52,113,1,1,0,'304E Lincoln Ln E',304,'E',NULL,'Lincoln','Ln','E',NULL,NULL,NULL,NULL,'San Jose',1,1004,NULL,'95113',NULL,1228,37.333941,-121.89154,0,NULL,NULL,NULL), + (53,149,1,1,0,'282O Bay Dr SE',282,'O',NULL,'Bay','Dr','SE',NULL,NULL,NULL,NULL,'Bowie',1,1042,NULL,'76230',NULL,1228,33.54007,-97.88575,0,NULL,NULL,NULL), + (54,134,1,1,0,'724H Lincoln Ave SE',724,'H',NULL,'Lincoln','Ave','SE',NULL,NULL,NULL,NULL,'Las Vegas',1,1027,NULL,'89199',NULL,1228,35.927901,-114.972061,0,NULL,NULL,NULL), + (55,92,1,1,0,'849L Jackson Way SE',849,'L',NULL,'Jackson','Way','SE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10149',NULL,1228,40.780751,-73.977182,0,NULL,NULL,NULL), + (56,14,1,1,0,'625L Martin Luther King Blvd SW',625,'L',NULL,'Martin Luther King','Blvd','SW',NULL,NULL,NULL,NULL,'Burlington',1,1044,NULL,'05401',NULL,1228,44.484038,-73.22126,0,NULL,NULL,NULL), + (57,201,1,1,0,'628X Lincoln Dr NW',628,'X',NULL,'Lincoln','Dr','NW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49507',NULL,1228,42.933077,-85.65435,0,NULL,NULL,NULL), + (58,161,1,1,0,'776O Van Ness St S',776,'O',NULL,'Van Ness','St','S',NULL,NULL,NULL,NULL,'Renfrew',1,1037,NULL,'16053',NULL,1228,40.808934,-79.97811,0,NULL,NULL,NULL), + (59,68,1,1,0,'508N Pine Blvd NE',508,'N',NULL,'Pine','Blvd','NE',NULL,NULL,NULL,NULL,'Chatsworth',1,1004,NULL,'91312',NULL,1228,33.786594,-118.298662,0,NULL,NULL,NULL), + (60,52,1,1,0,'346I States Pl W',346,'I',NULL,'States','Pl','W',NULL,NULL,NULL,NULL,'Spencer',1,1041,NULL,'38585',NULL,1228,35.69653,-85.41146,0,NULL,NULL,NULL), + (61,6,1,1,0,'851W Woodbridge Pl N',851,'W',NULL,'Woodbridge','Pl','N',NULL,NULL,NULL,NULL,'Harrison',1,1031,NULL,'10528',NULL,1228,40.972667,-73.71886,0,NULL,NULL,NULL), + (62,111,1,1,0,'327Y Maple Path W',327,'Y',NULL,'Maple','Path','W',NULL,NULL,NULL,NULL,'Glencoe',1,1030,NULL,'88324',NULL,1228,33.429637,-105.48489,0,NULL,NULL,NULL), + (63,138,1,1,0,'763F Main St SW',763,'F',NULL,'Main','St','SW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49555',NULL,1228,43.031413,-85.550267,0,NULL,NULL,NULL), + (64,168,1,1,0,'99G Cadell Way W',99,'G',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Gardner',1,1012,NULL,'60424',NULL,1228,41.174117,-88.30954,0,NULL,NULL,NULL), + (65,142,1,1,0,'273D Caulder Blvd NE',273,'D',NULL,'Caulder','Blvd','NE',NULL,NULL,NULL,NULL,'Sioux Falls',1,1040,NULL,'57108',NULL,1228,43.488472,-96.72258,0,NULL,NULL,NULL), + (66,12,1,1,0,'876H Martin Luther King Ave NE',876,'H',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Detroit',1,1021,NULL,'48243',NULL,1228,42.239933,-83.150823,0,NULL,NULL,NULL), + (67,48,3,1,0,'792M Beech St S',792,'M',NULL,'Beech','St','S',NULL,'Subscriptions Dept',NULL,NULL,'Prattsville',1,1031,NULL,'12468',NULL,1228,42.297725,-74.40063,0,NULL,NULL,NULL), + (68,27,2,1,0,'792M Beech St S',792,'M',NULL,'Beech','St','S',NULL,'Subscriptions Dept',NULL,NULL,'Prattsville',1,1031,NULL,'12468',NULL,1228,42.297725,-74.40063,0,NULL,NULL,67), + (69,105,3,1,0,'402W Second Blvd N',402,'W',NULL,'Second','Blvd','N',NULL,'Editorial Dept',NULL,NULL,'Earling',1,1014,NULL,'51530',NULL,1228,41.77364,-95.42761,0,NULL,NULL,NULL), + (70,53,2,1,0,'402W Second Blvd N',402,'W',NULL,'Second','Blvd','N',NULL,'Editorial Dept',NULL,NULL,'Earling',1,1014,NULL,'51530',NULL,1228,41.77364,-95.42761,0,NULL,NULL,69), + (71,43,3,1,0,'752F States Ln SW',752,'F',NULL,'States','Ln','SW',NULL,'Editorial Dept',NULL,NULL,'Star',1,1032,NULL,'27356',NULL,1228,35.414095,-79.78487,0,NULL,NULL,NULL), + (72,145,2,1,0,'752F States Ln SW',752,'F',NULL,'States','Ln','SW',NULL,'Editorial Dept',NULL,NULL,'Star',1,1032,NULL,'27356',NULL,1228,35.414095,-79.78487,0,NULL,NULL,71), + (73,128,3,1,0,'660O Green Path SW',660,'O',NULL,'Green','Path','SW',NULL,'Subscriptions Dept',NULL,NULL,'Crystal Lake',1,1012,NULL,'60039',NULL,1228,42.324761,-88.452481,0,NULL,NULL,NULL), + (74,3,2,1,0,'660O Green Path SW',660,'O',NULL,'Green','Path','SW',NULL,'Subscriptions Dept',NULL,NULL,'Crystal Lake',1,1012,NULL,'60039',NULL,1228,42.324761,-88.452481,0,NULL,NULL,73), + (75,169,3,1,0,'524Q Northpoint Blvd W',524,'Q',NULL,'Northpoint','Blvd','W',NULL,'Cuffe Parade',NULL,NULL,'Riegelsville',1,1037,NULL,'18077',NULL,1228,40.576989,-75.22121,0,NULL,NULL,NULL), + (76,177,3,1,0,'823R Northpoint Blvd W',823,'R',NULL,'Northpoint','Blvd','W',NULL,'Attn: Accounting',NULL,NULL,'Draper',1,1043,NULL,'84020',NULL,1228,40.514843,-111.87294,0,NULL,NULL,NULL), + (77,50,2,1,0,'823R Northpoint Blvd W',823,'R',NULL,'Northpoint','Blvd','W',NULL,'Attn: Accounting',NULL,NULL,'Draper',1,1043,NULL,'84020',NULL,1228,40.514843,-111.87294,0,NULL,NULL,76), + (78,101,3,1,0,'597H El Camino Rd SE',597,'H',NULL,'El Camino','Rd','SE',NULL,'Disbursements',NULL,NULL,'Laurel',1,1023,NULL,'39442',NULL,1228,31.682254,-89.040622,0,NULL,NULL,NULL), + (79,39,2,0,0,'597H El Camino Rd SE',597,'H',NULL,'El Camino','Rd','SE',NULL,'Disbursements',NULL,NULL,'Laurel',1,1023,NULL,'39442',NULL,1228,31.682254,-89.040622,0,NULL,NULL,78), + (80,153,3,1,0,'933A Woodbridge St S',933,'A',NULL,'Woodbridge','St','S',NULL,'c/o OPDC',NULL,NULL,'Hurricane Mills',1,1041,NULL,'37078',NULL,1228,35.924976,-87.77219,0,NULL,NULL,NULL), + (81,82,2,0,0,'933A Woodbridge St S',933,'A',NULL,'Woodbridge','St','S',NULL,'c/o OPDC',NULL,NULL,'Hurricane Mills',1,1041,NULL,'37078',NULL,1228,35.924976,-87.77219,0,NULL,NULL,80), + (82,91,3,1,0,'877V Beech St S',877,'V',NULL,'Beech','St','S',NULL,'Community Relations',NULL,NULL,'Reydell',1,1003,NULL,'72133',NULL,1228,34.165734,-91.57169,0,NULL,NULL,NULL), + (83,154,2,1,0,'877V Beech St S',877,'V',NULL,'Beech','St','S',NULL,'Community Relations',NULL,NULL,'Reydell',1,1003,NULL,'72133',NULL,1228,34.165734,-91.57169,0,NULL,NULL,82), + (84,67,3,1,0,'996K Woodbridge Ln W',996,'K',NULL,'Woodbridge','Ln','W',NULL,'Churchgate',NULL,NULL,'Industry',1,1037,NULL,'15052',NULL,1228,40.665001,-80.42534,0,NULL,NULL,NULL), + (85,49,3,1,0,'776A Second Ln NE',776,'A',NULL,'Second','Ln','NE',NULL,'Attn: Accounting',NULL,NULL,'Alexandria',1,1037,NULL,'16611',NULL,1228,40.561651,-78.10583,0,NULL,NULL,NULL), + (86,157,3,1,0,'711P Bay Pl W',711,'P',NULL,'Bay','Pl','W',NULL,'Urgent',NULL,NULL,'Burgess',1,1045,NULL,'22432',NULL,1228,37.860549,-76.35637,0,NULL,NULL,NULL), + (87,172,2,0,0,'711P Bay Pl W',711,'P',NULL,'Bay','Pl','W',NULL,'Urgent',NULL,NULL,'Burgess',1,1045,NULL,'22432',NULL,1228,37.860549,-76.35637,0,NULL,NULL,86), + (88,129,3,1,0,'953K Maple Way SE',953,'K',NULL,'Maple','Way','SE',NULL,'c/o OPDC',NULL,NULL,'Greenville',1,1004,NULL,'95947',NULL,1228,40.144573,-120.88311,0,NULL,NULL,NULL), + (89,96,2,0,0,'953K Maple Way SE',953,'K',NULL,'Maple','Way','SE',NULL,'c/o OPDC',NULL,NULL,'Greenville',1,1004,NULL,'95947',NULL,1228,40.144573,-120.88311,0,NULL,NULL,88), + (90,188,3,1,0,'597T Dowlen Ln S',597,'T',NULL,'Dowlen','Ln','S',NULL,'Receiving',NULL,NULL,'San Francisco',1,1004,NULL,'94132',NULL,1228,37.724231,-122.47958,0,NULL,NULL,NULL), + (91,193,3,1,0,'429Z Beech Path N',429,'Z',NULL,'Beech','Path','N',NULL,'Payables Dept.',NULL,NULL,'Modesto',1,1004,NULL,'95356',NULL,1228,37.704138,-121.02187,0,NULL,NULL,NULL), + (92,73,3,1,0,'884K Bay Ln E',884,'K',NULL,'Bay','Ln','E',NULL,'Receiving',NULL,NULL,'Surveyor',1,1047,NULL,'25932',NULL,1228,37.764498,-81.3169,0,NULL,NULL,NULL), + (93,166,2,1,0,'884K Bay Ln E',884,'K',NULL,'Bay','Ln','E',NULL,'Receiving',NULL,NULL,'Surveyor',1,1047,NULL,'25932',NULL,1228,37.764498,-81.3169,0,NULL,NULL,92), + (94,61,3,1,0,'654T Northpoint Pl SW',654,'T',NULL,'Northpoint','Pl','SW',NULL,'Payables Dept.',NULL,NULL,'Port Wing',1,1048,NULL,'54865',NULL,1228,46.757192,-91.39611,0,NULL,NULL,NULL), + (95,152,3,1,0,'408K Woodbridge Path NW',408,'K',NULL,'Woodbridge','Path','NW',NULL,'c/o PO Plus',NULL,NULL,'Terre Haute',1,1013,NULL,'47805',NULL,1228,39.535285,-87.35222,0,NULL,NULL,NULL), + (96,26,2,1,0,'408K Woodbridge Path NW',408,'K',NULL,'Woodbridge','Path','NW',NULL,'c/o PO Plus',NULL,NULL,'Terre Haute',1,1013,NULL,'47805',NULL,1228,39.535285,-87.35222,0,NULL,NULL,95), + (97,51,3,1,0,'87L Dowlen Dr SW',87,'L',NULL,'Dowlen','Dr','SW',NULL,'Urgent',NULL,NULL,'Lewisville',1,1042,NULL,'75077',NULL,1228,33.075138,-97.0529,0,NULL,NULL,NULL), + (98,76,2,1,0,'87L Dowlen Dr SW',87,'L',NULL,'Dowlen','Dr','SW',NULL,'Urgent',NULL,NULL,'Lewisville',1,1042,NULL,'75077',NULL,1228,33.075138,-97.0529,0,NULL,NULL,97), + (99,135,3,1,0,'845T Second Dr W',845,'T',NULL,'Second','Dr','W',NULL,'Urgent',NULL,NULL,'Deland',1,1008,NULL,'32724',NULL,1228,29.039757,-81.27927,0,NULL,NULL,NULL), + (100,85,1,1,0,'106Z Beech Dr NE',106,'Z',NULL,'Beech','Dr','NE',NULL,NULL,NULL,NULL,'Weston',1,1047,NULL,'26452',NULL,1228,39.04101,-80.47731,0,NULL,NULL,47), + (101,13,1,1,0,'106Z Beech Dr NE',106,'Z',NULL,'Beech','Dr','NE',NULL,NULL,NULL,NULL,'Weston',1,1047,NULL,'26452',NULL,1228,39.04101,-80.47731,0,NULL,NULL,47), + (102,53,1,0,0,'106Z Beech Dr NE',106,'Z',NULL,'Beech','Dr','NE',NULL,NULL,NULL,NULL,'Weston',1,1047,NULL,'26452',NULL,1228,39.04101,-80.47731,0,NULL,NULL,47), + (103,190,1,0,0,'512C Northpoint Ave NE',512,'C',NULL,'Northpoint','Ave','NE',NULL,NULL,NULL,NULL,'Allentown',1,1037,NULL,'18109',NULL,1228,40.693376,-75.471156,0,NULL,NULL,NULL), + (104,106,1,1,0,'624S Martin Luther King Pl SW',624,'S',NULL,'Martin Luther King','Pl','SW',NULL,NULL,NULL,NULL,'Shawnee Mission',1,1015,NULL,'66208',NULL,1228,38.999505,-94.63102,0,NULL,NULL,48), + (105,154,1,0,0,'624S Martin Luther King Pl SW',624,'S',NULL,'Martin Luther King','Pl','SW',NULL,NULL,NULL,NULL,'Shawnee Mission',1,1015,NULL,'66208',NULL,1228,38.999505,-94.63102,0,NULL,NULL,48), + (106,23,1,1,0,'624S Martin Luther King Pl SW',624,'S',NULL,'Martin Luther King','Pl','SW',NULL,NULL,NULL,NULL,'Shawnee Mission',1,1015,NULL,'66208',NULL,1228,38.999505,-94.63102,0,NULL,NULL,48), + (107,58,1,1,0,'624S Martin Luther King Pl SW',624,'S',NULL,'Martin Luther King','Pl','SW',NULL,NULL,NULL,NULL,'Shawnee Mission',1,1015,NULL,'66208',NULL,1228,38.999505,-94.63102,0,NULL,NULL,48), + (108,20,1,1,0,'435P Jackson St E',435,'P',NULL,'Jackson','St','E',NULL,NULL,NULL,NULL,'Sunnyside',1,1031,NULL,'11104',NULL,1228,40.743796,-73.91949,0,NULL,NULL,49), + (109,30,1,1,0,'435P Jackson St E',435,'P',NULL,'Jackson','St','E',NULL,NULL,NULL,NULL,'Sunnyside',1,1031,NULL,'11104',NULL,1228,40.743796,-73.91949,0,NULL,NULL,49), + (110,15,1,1,0,'435P Jackson St E',435,'P',NULL,'Jackson','St','E',NULL,NULL,NULL,NULL,'Sunnyside',1,1031,NULL,'11104',NULL,1228,40.743796,-73.91949,0,NULL,NULL,49), + (111,151,1,1,0,'783Q Green Pl S',783,'Q',NULL,'Green','Pl','S',NULL,NULL,NULL,NULL,'Clarksburg',1,1024,NULL,'65025',NULL,1228,38.662989,-92.67253,0,NULL,NULL,NULL), + (112,194,1,1,0,'971J Main Way NW',971,'J',NULL,'Main','Way','NW',NULL,NULL,NULL,NULL,'Irmo',1,1039,NULL,'29063',NULL,1228,34.120487,-81.19686,0,NULL,NULL,50), + (113,140,1,1,0,'971J Main Way NW',971,'J',NULL,'Main','Way','NW',NULL,NULL,NULL,NULL,'Irmo',1,1039,NULL,'29063',NULL,1228,34.120487,-81.19686,0,NULL,NULL,50), + (114,87,1,1,0,'971J Main Way NW',971,'J',NULL,'Main','Way','NW',NULL,NULL,NULL,NULL,'Irmo',1,1039,NULL,'29063',NULL,1228,34.120487,-81.19686,0,NULL,NULL,50), + (115,50,1,0,0,'955H College Rd W',955,'H',NULL,'College','Rd','W',NULL,NULL,NULL,NULL,'Norwood',1,1022,NULL,'55554',NULL,1228,44.805487,-93.766524,0,NULL,NULL,NULL), + (116,63,1,1,0,'374F College St W',374,'F',NULL,'College','St','W',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33174',NULL,1228,25.763044,-80.35919,0,NULL,NULL,51), + (117,8,1,1,0,'374F College St W',374,'F',NULL,'College','St','W',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33174',NULL,1228,25.763044,-80.35919,0,NULL,NULL,51), + (118,189,1,1,0,'374F College St W',374,'F',NULL,'College','St','W',NULL,NULL,NULL,NULL,'Miami',1,1008,NULL,'33174',NULL,1228,25.763044,-80.35919,0,NULL,NULL,51), + (119,18,1,1,0,'587I Cadell Pl N',587,'I',NULL,'Cadell','Pl','N',NULL,NULL,NULL,NULL,'San Antonio',1,1042,NULL,'78212',NULL,1228,29.460381,-98.49649,0,NULL,NULL,NULL), + (120,104,1,1,0,'304E Lincoln Ln E',304,'E',NULL,'Lincoln','Ln','E',NULL,NULL,NULL,NULL,'San Jose',1,1004,NULL,'95113',NULL,1228,37.333941,-121.89154,0,NULL,NULL,52), + (121,137,1,1,0,'304E Lincoln Ln E',304,'E',NULL,'Lincoln','Ln','E',NULL,NULL,NULL,NULL,'San Jose',1,1004,NULL,'95113',NULL,1228,37.333941,-121.89154,0,NULL,NULL,52), + (122,126,1,1,0,'304E Lincoln Ln E',304,'E',NULL,'Lincoln','Ln','E',NULL,NULL,NULL,NULL,'San Jose',1,1004,NULL,'95113',NULL,1228,37.333941,-121.89154,0,NULL,NULL,52), + (123,80,1,1,0,'98A Pine Rd SE',98,'A',NULL,'Pine','Rd','SE',NULL,NULL,NULL,NULL,'Bloomingburg',1,1031,NULL,'12721',NULL,1228,41.564426,-74.4265,0,NULL,NULL,NULL), + (124,27,1,0,0,'282O Bay Dr SE',282,'O',NULL,'Bay','Dr','SE',NULL,NULL,NULL,NULL,'Bowie',1,1042,NULL,'76230',NULL,1228,33.54007,-97.88575,0,NULL,NULL,53), + (125,35,1,1,0,'282O Bay Dr SE',282,'O',NULL,'Bay','Dr','SE',NULL,NULL,NULL,NULL,'Bowie',1,1042,NULL,'76230',NULL,1228,33.54007,-97.88575,0,NULL,NULL,53), + (126,3,1,0,0,'282O Bay Dr SE',282,'O',NULL,'Bay','Dr','SE',NULL,NULL,NULL,NULL,'Bowie',1,1042,NULL,'76230',NULL,1228,33.54007,-97.88575,0,NULL,NULL,53), + (127,163,1,1,0,'622T Pine Ln N',622,'T',NULL,'Pine','Ln','N',NULL,NULL,NULL,NULL,'Eagle Creek',1,1036,NULL,'97022',NULL,1228,45.349244,-122.33554,0,NULL,NULL,NULL), + (128,164,1,1,0,'724H Lincoln Ave SE',724,'H',NULL,'Lincoln','Ave','SE',NULL,NULL,NULL,NULL,'Las Vegas',1,1027,NULL,'89199',NULL,1228,35.927901,-114.972061,0,NULL,NULL,54), + (129,191,1,1,0,'724H Lincoln Ave SE',724,'H',NULL,'Lincoln','Ave','SE',NULL,NULL,NULL,NULL,'Las Vegas',1,1027,NULL,'89199',NULL,1228,35.927901,-114.972061,0,NULL,NULL,54), + (130,122,1,1,0,'724H Lincoln Ave SE',724,'H',NULL,'Lincoln','Ave','SE',NULL,NULL,NULL,NULL,'Las Vegas',1,1027,NULL,'89199',NULL,1228,35.927901,-114.972061,0,NULL,NULL,54), + (131,147,1,1,0,'724H Lincoln Ave SE',724,'H',NULL,'Lincoln','Ave','SE',NULL,NULL,NULL,NULL,'Las Vegas',1,1027,NULL,'89199',NULL,1228,35.927901,-114.972061,0,NULL,NULL,54), + (132,81,1,1,0,'849L Jackson Way SE',849,'L',NULL,'Jackson','Way','SE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10149',NULL,1228,40.780751,-73.977182,0,NULL,NULL,55), + (133,150,1,1,0,'849L Jackson Way SE',849,'L',NULL,'Jackson','Way','SE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10149',NULL,1228,40.780751,-73.977182,0,NULL,NULL,55), + (134,127,1,1,0,'849L Jackson Way SE',849,'L',NULL,'Jackson','Way','SE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10149',NULL,1228,40.780751,-73.977182,0,NULL,NULL,55), + (135,16,1,1,0,'849L Jackson Way SE',849,'L',NULL,'Jackson','Way','SE',NULL,NULL,NULL,NULL,'New York',1,1031,NULL,'10149',NULL,1228,40.780751,-73.977182,0,NULL,NULL,55), + (136,72,1,1,0,'625L Martin Luther King Blvd SW',625,'L',NULL,'Martin Luther King','Blvd','SW',NULL,NULL,NULL,NULL,'Burlington',1,1044,NULL,'05401',NULL,1228,44.484038,-73.22126,0,NULL,NULL,56), + (137,125,1,1,0,'625L Martin Luther King Blvd SW',625,'L',NULL,'Martin Luther King','Blvd','SW',NULL,NULL,NULL,NULL,'Burlington',1,1044,NULL,'05401',NULL,1228,44.484038,-73.22126,0,NULL,NULL,56), + (138,17,1,1,0,'625L Martin Luther King Blvd SW',625,'L',NULL,'Martin Luther King','Blvd','SW',NULL,NULL,NULL,NULL,'Burlington',1,1044,NULL,'05401',NULL,1228,44.484038,-73.22126,0,NULL,NULL,56), + (139,95,1,1,0,'148Z Green Way NE',148,'Z',NULL,'Green','Way','NE',NULL,NULL,NULL,NULL,'Laurinburg',1,1032,NULL,'28352',NULL,1228,34.779227,-79.45745,0,NULL,NULL,NULL), + (140,139,1,1,0,'628X Lincoln Dr NW',628,'X',NULL,'Lincoln','Dr','NW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49507',NULL,1228,42.933077,-85.65435,0,NULL,NULL,57), + (141,88,1,1,0,'628X Lincoln Dr NW',628,'X',NULL,'Lincoln','Dr','NW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49507',NULL,1228,42.933077,-85.65435,0,NULL,NULL,57), + (142,77,1,1,0,'628X Lincoln Dr NW',628,'X',NULL,'Lincoln','Dr','NW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49507',NULL,1228,42.933077,-85.65435,0,NULL,NULL,57), + (143,173,1,1,0,'628X Lincoln Dr NW',628,'X',NULL,'Lincoln','Dr','NW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49507',NULL,1228,42.933077,-85.65435,0,NULL,NULL,57), + (144,99,1,1,0,'776O Van Ness St S',776,'O',NULL,'Van Ness','St','S',NULL,NULL,NULL,NULL,'Renfrew',1,1037,NULL,'16053',NULL,1228,40.808934,-79.97811,0,NULL,NULL,58), + (145,116,1,1,0,'776O Van Ness St S',776,'O',NULL,'Van Ness','St','S',NULL,NULL,NULL,NULL,'Renfrew',1,1037,NULL,'16053',NULL,1228,40.808934,-79.97811,0,NULL,NULL,58), + (146,29,1,1,0,'776O Van Ness St S',776,'O',NULL,'Van Ness','St','S',NULL,NULL,NULL,NULL,'Renfrew',1,1037,NULL,'16053',NULL,1228,40.808934,-79.97811,0,NULL,NULL,58), + (147,31,1,1,0,'690V States St NE',690,'V',NULL,'States','St','NE',NULL,NULL,NULL,NULL,'Welda',1,1015,NULL,'66091',NULL,1228,38.185196,-95.33705,0,NULL,NULL,NULL), + (148,60,1,1,0,'508N Pine Blvd NE',508,'N',NULL,'Pine','Blvd','NE',NULL,NULL,NULL,NULL,'Chatsworth',1,1004,NULL,'91312',NULL,1228,33.786594,-118.298662,0,NULL,NULL,59), + (149,170,1,1,0,'508N Pine Blvd NE',508,'N',NULL,'Pine','Blvd','NE',NULL,NULL,NULL,NULL,'Chatsworth',1,1004,NULL,'91312',NULL,1228,33.786594,-118.298662,0,NULL,NULL,59), + (150,38,1,1,0,'508N Pine Blvd NE',508,'N',NULL,'Pine','Blvd','NE',NULL,NULL,NULL,NULL,'Chatsworth',1,1004,NULL,'91312',NULL,1228,33.786594,-118.298662,0,NULL,NULL,59), + (151,86,1,1,0,'508N Pine Blvd NE',508,'N',NULL,'Pine','Blvd','NE',NULL,NULL,NULL,NULL,'Chatsworth',1,1004,NULL,'91312',NULL,1228,33.786594,-118.298662,0,NULL,NULL,59), + (152,65,1,1,0,'346I States Pl W',346,'I',NULL,'States','Pl','W',NULL,NULL,NULL,NULL,'Spencer',1,1041,NULL,'38585',NULL,1228,35.69653,-85.41146,0,NULL,NULL,60), + (153,94,1,1,0,'346I States Pl W',346,'I',NULL,'States','Pl','W',NULL,NULL,NULL,NULL,'Spencer',1,1041,NULL,'38585',NULL,1228,35.69653,-85.41146,0,NULL,NULL,60), + (154,195,1,1,0,'346I States Pl W',346,'I',NULL,'States','Pl','W',NULL,NULL,NULL,NULL,'Spencer',1,1041,NULL,'38585',NULL,1228,35.69653,-85.41146,0,NULL,NULL,60), + (155,7,1,1,0,'958R Martin Luther King Ln N',958,'R',NULL,'Martin Luther King','Ln','N',NULL,NULL,NULL,NULL,'West Forks',1,1018,NULL,'04985',NULL,1228,45.380034,-69.90892,0,NULL,NULL,NULL), + (156,42,1,1,0,'851W Woodbridge Pl N',851,'W',NULL,'Woodbridge','Pl','N',NULL,NULL,NULL,NULL,'Harrison',1,1031,NULL,'10528',NULL,1228,40.972667,-73.71886,0,NULL,NULL,61), + (157,176,1,1,0,'851W Woodbridge Pl N',851,'W',NULL,'Woodbridge','Pl','N',NULL,NULL,NULL,NULL,'Harrison',1,1031,NULL,'10528',NULL,1228,40.972667,-73.71886,0,NULL,NULL,61), + (158,36,1,1,0,'851W Woodbridge Pl N',851,'W',NULL,'Woodbridge','Pl','N',NULL,NULL,NULL,NULL,'Harrison',1,1031,NULL,'10528',NULL,1228,40.972667,-73.71886,0,NULL,NULL,61), + (159,45,1,1,0,'851W Woodbridge Pl N',851,'W',NULL,'Woodbridge','Pl','N',NULL,NULL,NULL,NULL,'Harrison',1,1031,NULL,'10528',NULL,1228,40.972667,-73.71886,0,NULL,NULL,61), + (160,25,1,1,0,'327Y Maple Path W',327,'Y',NULL,'Maple','Path','W',NULL,NULL,NULL,NULL,'Glencoe',1,1030,NULL,'88324',NULL,1228,33.429637,-105.48489,0,NULL,NULL,62), + (161,19,1,1,0,'327Y Maple Path W',327,'Y',NULL,'Maple','Path','W',NULL,NULL,NULL,NULL,'Glencoe',1,1030,NULL,'88324',NULL,1228,33.429637,-105.48489,0,NULL,NULL,62), + (162,97,1,1,0,'327Y Maple Path W',327,'Y',NULL,'Maple','Path','W',NULL,NULL,NULL,NULL,'Glencoe',1,1030,NULL,'88324',NULL,1228,33.429637,-105.48489,0,NULL,NULL,62), + (163,133,1,1,0,'327Y Maple Path W',327,'Y',NULL,'Maple','Path','W',NULL,NULL,NULL,NULL,'Glencoe',1,1030,NULL,'88324',NULL,1228,33.429637,-105.48489,0,NULL,NULL,62), + (164,93,1,1,0,'763F Main St SW',763,'F',NULL,'Main','St','SW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49555',NULL,1228,43.031413,-85.550267,0,NULL,NULL,63), + (165,76,1,0,0,'763F Main St SW',763,'F',NULL,'Main','St','SW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49555',NULL,1228,43.031413,-85.550267,0,NULL,NULL,63), + (166,187,1,1,0,'763F Main St SW',763,'F',NULL,'Main','St','SW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49555',NULL,1228,43.031413,-85.550267,0,NULL,NULL,63), + (167,46,1,1,0,'763F Main St SW',763,'F',NULL,'Main','St','SW',NULL,NULL,NULL,NULL,'Grand Rapids',1,1021,NULL,'49555',NULL,1228,43.031413,-85.550267,0,NULL,NULL,63), + (168,179,1,1,0,'99G Cadell Way W',99,'G',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Gardner',1,1012,NULL,'60424',NULL,1228,41.174117,-88.30954,0,NULL,NULL,64), + (169,185,1,1,0,'99G Cadell Way W',99,'G',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Gardner',1,1012,NULL,'60424',NULL,1228,41.174117,-88.30954,0,NULL,NULL,64), + (170,197,1,1,0,'99G Cadell Way W',99,'G',NULL,'Cadell','Way','W',NULL,NULL,NULL,NULL,'Gardner',1,1012,NULL,'60424',NULL,1228,41.174117,-88.30954,0,NULL,NULL,64), + (171,74,1,1,0,'329E Green Path W',329,'E',NULL,'Green','Path','W',NULL,NULL,NULL,NULL,'Santa Ana',1,1004,NULL,'92712',NULL,1228,33.640302,-117.769442,0,NULL,NULL,NULL), + (172,119,1,1,0,'273D Caulder Blvd NE',273,'D',NULL,'Caulder','Blvd','NE',NULL,NULL,NULL,NULL,'Sioux Falls',1,1040,NULL,'57108',NULL,1228,43.488472,-96.72258,0,NULL,NULL,65), + (173,2,1,1,0,'273D Caulder Blvd NE',273,'D',NULL,'Caulder','Blvd','NE',NULL,NULL,NULL,NULL,'Sioux Falls',1,1040,NULL,'57108',NULL,1228,43.488472,-96.72258,0,NULL,NULL,65), + (174,57,1,1,0,'273D Caulder Blvd NE',273,'D',NULL,'Caulder','Blvd','NE',NULL,NULL,NULL,NULL,'Sioux Falls',1,1040,NULL,'57108',NULL,1228,43.488472,-96.72258,0,NULL,NULL,65), + (175,184,1,1,0,'273D Caulder Blvd NE',273,'D',NULL,'Caulder','Blvd','NE',NULL,NULL,NULL,NULL,'Sioux Falls',1,1040,NULL,'57108',NULL,1228,43.488472,-96.72258,0,NULL,NULL,65), + (176,9,1,1,0,'876H Martin Luther King Ave NE',876,'H',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Detroit',1,1021,NULL,'48243',NULL,1228,42.239933,-83.150823,0,NULL,NULL,66), + (177,89,1,1,0,'876H Martin Luther King Ave NE',876,'H',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Detroit',1,1021,NULL,'48243',NULL,1228,42.239933,-83.150823,0,NULL,NULL,66), + (178,54,1,1,0,'876H Martin Luther King Ave NE',876,'H',NULL,'Martin Luther King','Ave','NE',NULL,NULL,NULL,NULL,'Detroit',1,1021,NULL,'48243',NULL,1228,42.239933,-83.150823,0,NULL,NULL,66), + (179,110,1,1,0,'15D Maple Blvd SW',15,'D',NULL,'Maple','Blvd','SW',NULL,NULL,NULL,NULL,'Arcola',1,1024,NULL,'65603',NULL,1228,37.557203,-93.86589,0,NULL,NULL,NULL), + (180,NULL,1,1,1,'14S El Camino Way E',14,'S',NULL,'El Camino','Way',NULL,NULL,NULL,NULL,NULL,'Collinsville',NULL,1006,NULL,'6022',NULL,1228,41.8328,-72.9253,0,NULL,NULL,NULL), + (181,NULL,1,1,1,'11B Woodbridge Path SW',11,'B',NULL,'Woodbridge','Path',NULL,NULL,NULL,NULL,NULL,'Dayton',NULL,1034,NULL,'45417',NULL,1228,39.7531,-84.2471,0,NULL,NULL,NULL), + (182,NULL,1,1,1,'581O Lincoln Dr SW',581,'O',NULL,'Lincoln','Dr',NULL,NULL,NULL,NULL,NULL,'Santa Fe',NULL,1030,NULL,'87594',NULL,1228,35.5212,-105.982,0,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_address` ENABLE KEYS */; UNLOCK TABLES; @@ -1991,208 +1987,208 @@ UNLOCK TABLES; LOCK TABLES `civicrm_contact` WRITE; /*!40000 ALTER TABLE `civicrm_contact` DISABLE KEYS */; INSERT INTO `civicrm_contact` (`id`, `contact_type`, `external_identifier`, `display_name`, `organization_name`, `contact_sub_type`, `first_name`, `middle_name`, `last_name`, `do_not_email`, `do_not_phone`, `do_not_mail`, `do_not_sms`, `do_not_trade`, `is_opt_out`, `legal_identifier`, `sort_name`, `nick_name`, `legal_name`, `image_URL`, `preferred_communication_method`, `preferred_language`, `hash`, `api_key`, `source`, `prefix_id`, `suffix_id`, `formal_title`, `communication_style_id`, `email_greeting_id`, `email_greeting_custom`, `email_greeting_display`, `postal_greeting_id`, `postal_greeting_custom`, `postal_greeting_display`, `addressee_id`, `addressee_custom`, `addressee_display`, `job_title`, `gender_id`, `birth_date`, `is_deceased`, `deceased_date`, `household_name`, `primary_contact_id`, `sic_code`, `user_unique_id`, `employer_id`, `is_deleted`, `created_date`, `modified_date`, `preferred_mail_format`) VALUES - (1,'Organization',NULL,'Default Organization','Default Organization',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Default Organization',NULL,'Default Organization',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'2023-09-06 22:13:42','Both'), - (2,'Organization',NULL,'Local Advocacy Services','Local Advocacy Services',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Local Advocacy Services',NULL,NULL,NULL,NULL,NULL,'182397216',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Local Advocacy Services',NULL,NULL,NULL,0,NULL,NULL,183,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (3,'Individual',NULL,'Roland Terry-Smith',NULL,NULL,'Roland','V','Terry-Smith',0,0,0,0,0,0,NULL,'Terry-Smith, Roland',NULL,NULL,NULL,NULL,NULL,'266084877',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Terry-Smith',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (4,'Organization',NULL,'United Health Association','United Health Association',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'United Health Association',NULL,NULL,NULL,'3',NULL,'2031431698',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Health Association',NULL,NULL,NULL,0,NULL,NULL,168,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (5,'Individual',NULL,'Ashlie Wagner',NULL,NULL,'Ashlie','','Wagner',0,0,0,0,0,0,NULL,'Wagner, Ashlie',NULL,NULL,NULL,'3',NULL,'3661734493',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Wagner',NULL,NULL,'1969-01-25',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (6,'Organization',NULL,'Sierra Wellness Trust','Sierra Wellness Trust',NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Sierra Wellness Trust',NULL,NULL,NULL,'5',NULL,'1849237991',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Sierra Wellness Trust',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (7,'Organization',NULL,'Progressive Wellness Services','Progressive Wellness Services',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Progressive Wellness Services',NULL,NULL,NULL,'3',NULL,'900079396',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Progressive Wellness Services',NULL,NULL,NULL,0,NULL,NULL,48,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (8,'Organization',NULL,'Creative Empowerment Association','Creative Empowerment Association',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Creative Empowerment Association',NULL,NULL,NULL,NULL,NULL,'2288188557',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Creative Empowerment Association',NULL,NULL,NULL,0,NULL,NULL,137,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (9,'Individual',NULL,'Lou Yadav Sr.',NULL,NULL,'Lou','','Yadav',0,0,0,0,0,0,NULL,'Yadav, Lou',NULL,NULL,NULL,'4',NULL,'1442954395',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Yadav Sr.',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (10,'Household',NULL,'Ivanov-Jameson family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Ivanov-Jameson family',NULL,NULL,NULL,'4',NULL,'473363544',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Ivanov-Jameson family',5,NULL,'Dear Ivanov-Jameson family',2,NULL,'Ivanov-Jameson family',NULL,NULL,NULL,0,NULL,'Ivanov-Jameson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (11,'Individual',NULL,'Ms. Juliann Jacobs',NULL,NULL,'Juliann','','Jacobs',0,0,0,0,0,0,NULL,'Jacobs, Juliann',NULL,NULL,NULL,'2',NULL,'3009811288',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Ms. Juliann Jacobs',NULL,1,'1982-10-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (12,'Individual',NULL,'Esta Blackwell',NULL,NULL,'Esta','Z','Blackwell',0,0,0,0,0,0,NULL,'Blackwell, Esta',NULL,NULL,NULL,NULL,NULL,'534629196',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Esta Blackwell',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (13,'Individual',NULL,'Sonny Ivanov III',NULL,NULL,'Sonny','T','Ivanov',0,0,0,0,0,0,NULL,'Ivanov, Sonny',NULL,NULL,NULL,NULL,NULL,'3391307655',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Ivanov III',NULL,2,'1993-03-04',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (14,'Individual',NULL,'Ms. Justina Ivanov-Jameson',NULL,NULL,'Justina','','Ivanov-Jameson',0,1,0,0,0,0,NULL,'Ivanov-Jameson, Justina',NULL,NULL,NULL,NULL,NULL,'3229777594',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Ms. Justina Ivanov-Jameson',NULL,NULL,'1987-04-13',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (15,'Individual',NULL,'sr.barkley@testmail.com',NULL,NULL,NULL,NULL,NULL,1,0,0,0,1,0,NULL,'sr.barkley@testmail.com',NULL,NULL,NULL,NULL,NULL,'3196194876',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear sr.barkley@testmail.com',1,NULL,'Dear sr.barkley@testmail.com',1,NULL,'sr.barkley@testmail.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (16,'Individual',NULL,'Ms. Felisha Adams',NULL,NULL,'Felisha','N','Adams',0,0,0,0,0,0,NULL,'Adams, Felisha',NULL,NULL,NULL,'4',NULL,'3474297773',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Ms. Felisha Adams',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (17,'Individual',NULL,'Mr. Daren Reynolds',NULL,NULL,'Daren','','Reynolds',0,0,0,0,0,0,NULL,'Reynolds, Daren',NULL,NULL,NULL,'1',NULL,'3938117907',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Mr. Daren Reynolds',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (18,'Individual',NULL,'Dr. Kiara Nielsen-Samuels',NULL,NULL,'Kiara','','Nielsen-Samuels',0,0,0,0,0,0,NULL,'Nielsen-Samuels, Kiara',NULL,NULL,NULL,NULL,NULL,'543578806',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Dr. Kiara Nielsen-Samuels',NULL,NULL,'1960-07-20',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (19,'Household',NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,NULL,'350459294',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels family',5,NULL,'Dear Samuels family',2,NULL,'Samuels family',NULL,NULL,NULL,0,NULL,'Samuels family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (20,'Individual',NULL,'Mr. Teddy Dimitrov Sr.',NULL,NULL,'Teddy','Q','Dimitrov',0,0,0,0,1,0,NULL,'Dimitrov, Teddy',NULL,NULL,NULL,NULL,NULL,'3038060476',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Mr. Teddy Dimitrov Sr.',NULL,2,'1969-02-19',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (21,'Individual',NULL,'wagner.norris79@airmail.org',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'wagner.norris79@airmail.org',NULL,NULL,NULL,NULL,NULL,'329100903',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear wagner.norris79@airmail.org',1,NULL,'Dear wagner.norris79@airmail.org',1,NULL,'wagner.norris79@airmail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (22,'Individual',NULL,'Ms. Merrie Jameson-Barkley-Robertson',NULL,NULL,'Merrie','','Jameson-Barkley-Robertson',0,0,0,0,0,0,NULL,'Jameson-Barkley-Robertson, Merrie',NULL,NULL,NULL,NULL,NULL,'3069678742',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Merrie',1,NULL,'Dear Merrie',1,NULL,'Ms. Merrie Jameson-Barkley-Robertson',NULL,1,'1984-06-21',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (23,'Individual',NULL,'Mrs. Princess Roberts',NULL,NULL,'Princess','','Roberts',1,0,0,0,0,0,NULL,'Roberts, Princess',NULL,NULL,NULL,'5',NULL,'3265575644',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Mrs. Princess Roberts',NULL,1,'1977-03-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (24,'Individual',NULL,'Lou Barkley III',NULL,NULL,'Lou','','Barkley',0,0,0,0,0,0,NULL,'Barkley, Lou',NULL,NULL,NULL,NULL,NULL,'1999867359',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Barkley III',NULL,2,'2009-06-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:58','Both'), - (25,'Individual',NULL,'Ms. Brittney Deforest',NULL,NULL,'Brittney','W','Deforest',1,0,0,0,0,0,NULL,'Deforest, Brittney',NULL,NULL,NULL,NULL,NULL,'1540368141',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Ms. Brittney Deforest',NULL,1,'1992-12-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (26,'Individual',NULL,'roberts-jacobs.juliann@notmail.info',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'roberts-jacobs.juliann@notmail.info',NULL,NULL,NULL,NULL,NULL,'4218190229',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear roberts-jacobs.juliann@notmail.info',1,NULL,'Dear roberts-jacobs.juliann@notmail.info',1,NULL,'roberts-jacobs.juliann@notmail.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (27,'Individual',NULL,'Ivey Reynolds',NULL,NULL,'Ivey','W','Reynolds',0,1,0,0,1,0,NULL,'Reynolds, Ivey',NULL,NULL,NULL,'4',NULL,'2588274493',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ivey Reynolds',NULL,NULL,'1946-11-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (28,'Individual',NULL,'Mr. Craig Robertson',NULL,NULL,'Craig','','Robertson',0,0,0,0,0,0,NULL,'Robertson, Craig',NULL,NULL,NULL,'5',NULL,'3925632970',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Mr. Craig Robertson',NULL,2,'1952-08-13',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (29,'Individual',NULL,'Dr. Juliann Parker',NULL,NULL,'Juliann','','Parker',0,0,0,0,1,0,NULL,'Parker, Juliann',NULL,NULL,NULL,NULL,NULL,'1013304220',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Dr. Juliann Parker',NULL,NULL,'1945-08-07',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (30,'Individual',NULL,'Ms. Brigette DÃaz',NULL,NULL,'Brigette','F','DÃaz',1,0,0,0,0,0,NULL,'DÃaz, Brigette',NULL,NULL,NULL,NULL,NULL,'939555461',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Ms. Brigette DÃaz',NULL,1,'1961-07-16',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (31,'Individual',NULL,'Dr. Sharyn Wilson',NULL,NULL,'Sharyn','O','Wilson',1,1,0,0,1,0,NULL,'Wilson, Sharyn',NULL,NULL,NULL,'1',NULL,'652898932',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Dr. Sharyn Wilson',NULL,1,'1961-11-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (32,'Individual',NULL,'Barry Smith II',NULL,NULL,'Barry','','Smith',0,0,0,0,0,0,NULL,'Smith, Barry',NULL,NULL,NULL,'1',NULL,'3850252418',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Barry Smith II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (33,'Individual',NULL,'Kacey Jensen',NULL,NULL,'Kacey','A','Jensen',0,1,0,0,0,0,NULL,'Jensen, Kacey',NULL,NULL,NULL,'3',NULL,'752145203',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Kacey Jensen',NULL,NULL,'1972-09-08',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (34,'Individual',NULL,'Ms. Ashley Cooper',NULL,NULL,'Ashley','','Cooper',0,1,0,0,0,0,NULL,'Cooper, Ashley',NULL,NULL,NULL,NULL,NULL,'495032298',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ms. Ashley Cooper',NULL,1,'1965-01-17',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (35,'Individual',NULL,'Allen Wattson',NULL,NULL,'Allen','P','Wattson',0,0,0,0,0,0,NULL,'Wattson, Allen',NULL,NULL,NULL,NULL,NULL,'2599799993',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Allen Wattson',NULL,NULL,'1948-02-05',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (36,'Organization',NULL,'Providence Empowerment Fund','Providence Empowerment Fund',NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Providence Empowerment Fund',NULL,NULL,NULL,NULL,NULL,'465255906',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Providence Empowerment Fund',NULL,NULL,NULL,0,NULL,NULL,175,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (37,'Organization',NULL,'States Arts Partnership','States Arts Partnership',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'States Arts Partnership',NULL,NULL,NULL,'5',NULL,'1005571823',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'States Arts Partnership',NULL,NULL,NULL,0,NULL,NULL,110,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (38,'Household',NULL,'Barkley-Robertson family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Barkley-Robertson family',NULL,NULL,NULL,'2',NULL,'3179092235',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Barkley-Robertson family',5,NULL,'Dear Barkley-Robertson family',2,NULL,'Barkley-Robertson family',NULL,NULL,NULL,0,NULL,'Barkley-Robertson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (39,'Household',NULL,'Prentice family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Prentice family',NULL,NULL,NULL,NULL,NULL,'3313623671',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Prentice family',5,NULL,'Dear Prentice family',2,NULL,'Prentice family',NULL,NULL,NULL,0,NULL,'Prentice family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (40,'Individual',NULL,'Laree Jones','Sierra Arts Alliance',NULL,'Laree','N','Jones',0,0,0,0,0,0,NULL,'Jones, Laree',NULL,NULL,NULL,NULL,NULL,'4205271200',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Jones',NULL,NULL,'1973-03-15',0,NULL,NULL,NULL,NULL,NULL,98,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (41,'Individual',NULL,'rodrigoz70@airmail.biz',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'rodrigoz70@airmail.biz',NULL,NULL,NULL,NULL,NULL,'873262734',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear rodrigoz70@airmail.biz',1,NULL,'Dear rodrigoz70@airmail.biz',1,NULL,'rodrigoz70@airmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (42,'Individual',NULL,'Ms. Kiara Barkley',NULL,NULL,'Kiara','','Barkley',0,0,0,0,1,0,NULL,'Barkley, Kiara',NULL,NULL,NULL,'1',NULL,'2141749595',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Ms. Kiara Barkley',NULL,1,'2000-09-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (43,'Individual',NULL,'Mr. Rodrigo McReynolds',NULL,NULL,'Rodrigo','','McReynolds',0,0,0,0,0,0,NULL,'McReynolds, Rodrigo',NULL,NULL,NULL,'3',NULL,'1946017872',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Mr. Rodrigo McReynolds',NULL,2,'1982-08-31',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (44,'Individual',NULL,'Esta Smith',NULL,NULL,'Esta','J','Smith',1,0,0,0,1,0,NULL,'Smith, Esta',NULL,NULL,NULL,'4',NULL,'4101330541',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Esta Smith',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (45,'Individual',NULL,'elbertj59@mymail.co.nz',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'elbertj59@mymail.co.nz',NULL,NULL,NULL,NULL,NULL,'846047959',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear elbertj59@mymail.co.nz',1,NULL,'Dear elbertj59@mymail.co.nz',1,NULL,'elbertj59@mymail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (46,'Individual',NULL,'Dr. Rosario Terry',NULL,NULL,'Rosario','L','Terry',0,1,0,0,1,0,NULL,'Terry, Rosario',NULL,NULL,NULL,'2',NULL,'1264009879',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Dr. Rosario Terry',NULL,2,'1969-06-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (47,'Individual',NULL,'Omar Olsen',NULL,NULL,'Omar','','Olsen',1,0,0,0,0,0,NULL,'Olsen, Omar',NULL,NULL,NULL,NULL,NULL,'2675601131',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Omar Olsen',NULL,2,'1951-01-18',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (48,'Individual',NULL,'Mrs. Ivey Jacobs','Progressive Wellness Services',NULL,'Ivey','','Jacobs',0,0,0,0,0,0,NULL,'Jacobs, Ivey',NULL,NULL,NULL,'3',NULL,'4026790678',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Mrs. Ivey Jacobs',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,7,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (49,'Organization',NULL,'Mottville Action School','Mottville Action School',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Mottville Action School',NULL,NULL,NULL,NULL,NULL,'1830652197',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Mottville Action School',NULL,NULL,NULL,0,NULL,NULL,145,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (50,'Household',NULL,'Dimitrov family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Dimitrov family',NULL,NULL,NULL,'2',NULL,'3351288571',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Dimitrov family',5,NULL,'Dear Dimitrov family',2,NULL,'Dimitrov family',NULL,NULL,NULL,0,NULL,'Dimitrov family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (51,'Individual',NULL,'Dr. Elizabeth Wilson',NULL,NULL,'Elizabeth','','Wilson',1,0,0,0,0,0,NULL,'Wilson, Elizabeth',NULL,NULL,NULL,'1',NULL,'690212617',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Dr. Elizabeth Wilson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (52,'Household',NULL,'Smith-Nielsen family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Smith-Nielsen family',NULL,NULL,NULL,'2',NULL,'3808504977',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Smith-Nielsen family',5,NULL,'Dear Smith-Nielsen family',2,NULL,'Smith-Nielsen family',NULL,NULL,NULL,0,NULL,'Smith-Nielsen family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (53,'Organization',NULL,'California Education Systems','California Education Systems',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'California Education Systems',NULL,NULL,NULL,'3',NULL,'1396102351',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'California Education Systems',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (54,'Individual',NULL,'Ms. Princess Wagner',NULL,NULL,'Princess','','Wagner',0,0,0,0,0,0,NULL,'Wagner, Princess',NULL,NULL,NULL,'2',NULL,'1934457200',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Ms. Princess Wagner',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (55,'Individual',NULL,'BrzÄ™czysÅ‚aw Samuels II',NULL,NULL,'BrzÄ™czysÅ‚aw','C','Samuels',0,0,0,0,1,0,NULL,'Samuels, BrzÄ™czysÅ‚aw',NULL,NULL,NULL,'3',NULL,'1240846534',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'BrzÄ™czysÅ‚aw Samuels II',NULL,NULL,'1969-10-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (56,'Individual',NULL,'Dr. BrzÄ™czysÅ‚aw Samuels',NULL,NULL,'BrzÄ™czysÅ‚aw','K','Samuels',1,1,0,0,0,0,NULL,'Samuels, BrzÄ™czysÅ‚aw',NULL,NULL,NULL,'4',NULL,'1240846534',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dr. BrzÄ™czysÅ‚aw Samuels',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (57,'Individual',NULL,'Dr. Megan Barkley-Smith',NULL,NULL,'Megan','','Barkley-Smith',1,0,0,0,0,0,NULL,'Barkley-Smith, Megan',NULL,NULL,NULL,'2',NULL,'1923578528',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Dr. Megan Barkley-Smith',NULL,NULL,'2001-03-30',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (58,'Individual',NULL,'Ms. Kiara Wagner',NULL,NULL,'Kiara','','Wagner',0,0,0,0,0,0,NULL,'Wagner, Kiara',NULL,NULL,NULL,NULL,NULL,'2385501712',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Ms. Kiara Wagner',NULL,1,'1972-08-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (59,'Individual',NULL,'Dr. Alexia Smith',NULL,NULL,'Alexia','','Smith',1,0,0,0,0,0,NULL,'Smith, Alexia',NULL,NULL,NULL,'2',NULL,'528182465',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Dr. Alexia Smith',NULL,1,'1996-10-11',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (60,'Individual',NULL,'Betty Reynolds',NULL,NULL,'Betty','L','Reynolds',0,0,0,0,0,0,NULL,'Reynolds, Betty',NULL,NULL,NULL,NULL,NULL,'1042239873',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Betty Reynolds',NULL,1,'1966-07-18',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (61,'Individual',NULL,'Mrs. Jina Barkley',NULL,NULL,'Jina','O','Barkley',0,1,0,0,0,0,NULL,'Barkley, Jina',NULL,NULL,NULL,'3',NULL,'1987881599',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Mrs. Jina Barkley',NULL,1,'1997-08-08',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (62,'Individual',NULL,'Kandace Smith-Nielsen',NULL,NULL,'Kandace','','Smith-Nielsen',0,0,0,0,0,0,NULL,'Smith-Nielsen, Kandace',NULL,NULL,NULL,NULL,NULL,'406524693',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Smith-Nielsen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (63,'Individual',NULL,'Mr. Andrew Yadav II',NULL,NULL,'Andrew','Z','Yadav',0,1,0,0,0,0,NULL,'Yadav, Andrew',NULL,NULL,NULL,'1',NULL,'3652555424',NULL,'Sample Data',3,3,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Mr. Andrew Yadav II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (64,'Individual',NULL,'valener@fishmail.co.uk',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'valener@fishmail.co.uk',NULL,NULL,NULL,'4',NULL,'489343695',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear valener@fishmail.co.uk',1,NULL,'Dear valener@fishmail.co.uk',1,NULL,'valener@fishmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (65,'Household',NULL,'Jacobs-Roberts family',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Jacobs-Roberts family',NULL,NULL,NULL,NULL,NULL,'1859885034',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jacobs-Roberts family',5,NULL,'Dear Jacobs-Roberts family',2,NULL,'Jacobs-Roberts family',NULL,NULL,NULL,0,NULL,'Jacobs-Roberts family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (66,'Organization',NULL,'Local Music Association','Local Music Association',NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Local Music Association',NULL,NULL,NULL,'5',NULL,'157843381',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Local Music Association',NULL,NULL,NULL,0,NULL,NULL,83,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (67,'Individual',NULL,'Ashlie Bachman',NULL,NULL,'Ashlie','','Bachman',0,0,0,0,0,0,NULL,'Bachman, Ashlie',NULL,NULL,NULL,'1',NULL,'628441271',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Bachman',NULL,NULL,'1965-02-28',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (68,'Individual',NULL,'Princess Jacobs-Roberts',NULL,NULL,'Princess','','Jacobs-Roberts',0,0,0,0,0,0,NULL,'Jacobs-Roberts, Princess',NULL,NULL,NULL,'2',NULL,'3709229487',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Princess Jacobs-Roberts',NULL,1,'1982-12-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (69,'Individual',NULL,'Mr. Teddy Reynolds Jr.',NULL,NULL,'Teddy','','Reynolds',0,0,0,0,1,0,NULL,'Reynolds, Teddy',NULL,NULL,NULL,NULL,NULL,'2270921346',NULL,'Sample Data',3,1,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Mr. Teddy Reynolds Jr.',NULL,2,'1991-09-11',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (70,'Individual',NULL,'Mrs. Kathlyn Jones',NULL,NULL,'Kathlyn','','Jones',0,0,0,0,0,0,NULL,'Jones, Kathlyn',NULL,NULL,NULL,'3',NULL,'1774529515',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Kathlyn',1,NULL,'Dear Kathlyn',1,NULL,'Mrs. Kathlyn Jones',NULL,1,'1990-01-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (71,'Individual',NULL,'Mr. Daren Smith',NULL,NULL,'Daren','','Smith',0,0,0,0,0,0,NULL,'Smith, Daren',NULL,NULL,NULL,'4',NULL,'3966682227',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Mr. Daren Smith',NULL,2,'1960-11-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (72,'Individual',NULL,'jameson.bernadette@fakemail.org',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'jameson.bernadette@fakemail.org',NULL,NULL,NULL,'5',NULL,'9927664',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear jameson.bernadette@fakemail.org',1,NULL,'Dear jameson.bernadette@fakemail.org',1,NULL,'jameson.bernadette@fakemail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (73,'Individual',NULL,'Kacey Terry-Smith',NULL,NULL,'Kacey','S','Terry-Smith',1,0,0,0,0,0,NULL,'Terry-Smith, Kacey',NULL,NULL,NULL,NULL,NULL,'2994588725',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Kacey Terry-Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (74,'Individual',NULL,'Lawerence Müller II',NULL,NULL,'Lawerence','','Müller',0,0,0,0,0,0,NULL,'Müller, Lawerence',NULL,NULL,NULL,'5',NULL,'3263544089',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Lawerence Müller II',NULL,2,'1955-07-07',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (75,'Individual',NULL,'ma.smith94@spamalot.co.uk',NULL,NULL,NULL,NULL,NULL,0,1,0,0,1,0,NULL,'ma.smith94@spamalot.co.uk',NULL,NULL,NULL,'2',NULL,'2510646797',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear ma.smith94@spamalot.co.uk',1,NULL,'Dear ma.smith94@spamalot.co.uk',1,NULL,'ma.smith94@spamalot.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (76,'Organization',NULL,'Martin Luther King Legal Services','Martin Luther King Legal Services',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Martin Luther King Legal Services',NULL,NULL,NULL,'5',NULL,'2690626934',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Martin Luther King Legal Services',NULL,NULL,NULL,0,NULL,NULL,141,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (77,'Individual',NULL,'Rodrigo Dimitrov Sr.',NULL,NULL,'Rodrigo','T','Dimitrov',0,0,0,0,1,0,NULL,'Dimitrov, Rodrigo',NULL,NULL,NULL,'4',NULL,'3624892269',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Dimitrov Sr.',NULL,NULL,'1981-09-04',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (78,'Individual',NULL,'elinadimitrov77@testing.co.in',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'elinadimitrov77@testing.co.in',NULL,NULL,NULL,NULL,NULL,'1987389095',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear elinadimitrov77@testing.co.in',1,NULL,'Dear elinadimitrov77@testing.co.in',1,NULL,'elinadimitrov77@testing.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (79,'Individual',NULL,'Dr. Justina Prentice',NULL,NULL,'Justina','','Prentice',0,0,0,0,0,0,NULL,'Prentice, Justina',NULL,NULL,NULL,'2',NULL,'642394673',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Dr. Justina Prentice',NULL,NULL,'1985-01-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (80,'Individual',NULL,'Carlos Nielsen-Barkley',NULL,NULL,'Carlos','S','Nielsen-Barkley',0,0,0,0,1,0,NULL,'Nielsen-Barkley, Carlos',NULL,NULL,NULL,NULL,NULL,'3056188346',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Carlos Nielsen-Barkley',NULL,2,'2013-06-10',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (81,'Individual',NULL,'shermanw@testmail.co.pl',NULL,NULL,NULL,NULL,NULL,1,0,0,0,1,0,NULL,'shermanw@testmail.co.pl',NULL,NULL,NULL,NULL,NULL,'1410146747',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear shermanw@testmail.co.pl',1,NULL,'Dear shermanw@testmail.co.pl',1,NULL,'shermanw@testmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (82,'Individual',NULL,'Jed Terrell III',NULL,NULL,'Jed','','Terrell',0,1,0,0,0,0,NULL,'Terrell, Jed',NULL,NULL,NULL,NULL,NULL,'1773288305',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Jed Terrell III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:58','Both'), - (83,'Individual',NULL,'Dr. Delana McReynolds','Local Music Association',NULL,'Delana','','McReynolds',0,0,0,0,1,0,NULL,'McReynolds, Delana',NULL,NULL,NULL,NULL,NULL,'3428146397',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Dr. Delana McReynolds',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,66,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (84,'Individual',NULL,'Dr. Carylon Lee',NULL,NULL,'Carylon','','Lee',0,0,0,0,0,0,NULL,'Lee, Carylon',NULL,NULL,NULL,'2',NULL,'4019076192',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Dr. Carylon Lee',NULL,1,'1955-08-22',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (85,'Individual',NULL,'Ms. Elina Samuels',NULL,NULL,'Elina','','Samuels',0,0,0,0,0,0,NULL,'Samuels, Elina',NULL,NULL,NULL,NULL,NULL,'2816803566',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Ms. Elina Samuels',NULL,1,'1980-09-13',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (86,'Individual',NULL,'nielsen.megan27@testmail.co.in',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'nielsen.megan27@testmail.co.in',NULL,NULL,NULL,'3',NULL,'2466411464',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear nielsen.megan27@testmail.co.in',1,NULL,'Dear nielsen.megan27@testmail.co.in',1,NULL,'nielsen.megan27@testmail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (87,'Individual',NULL,'Landon Jones',NULL,NULL,'Landon','I','Jones',0,0,0,0,0,0,NULL,'Jones, Landon',NULL,NULL,NULL,NULL,NULL,'1338428920',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Jones',NULL,2,'1969-03-07',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (88,'Individual',NULL,'herminiag@example.com',NULL,NULL,NULL,NULL,NULL,1,1,0,0,0,0,NULL,'herminiag@example.com',NULL,NULL,NULL,NULL,NULL,'2883265573',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear herminiag@example.com',1,NULL,'Dear herminiag@example.com',1,NULL,'herminiag@example.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:58','Both'), - (89,'Individual',NULL,'Kacey Smith',NULL,NULL,'Kacey','','Smith',0,0,0,0,0,0,NULL,'Smith, Kacey',NULL,NULL,NULL,'3',NULL,'4027129634',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kacey',1,NULL,'Dear Kacey',1,NULL,'Kacey Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (90,'Individual',NULL,'Roland Parker Sr.',NULL,NULL,'Roland','','Parker',0,0,0,0,0,0,NULL,'Parker, Roland',NULL,NULL,NULL,'3',NULL,'3318650576',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Parker Sr.',NULL,2,'1981-11-10',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (91,'Individual',NULL,'Mrs. Princess Smith',NULL,NULL,'Princess','','Smith',0,0,0,0,1,0,NULL,'Smith, Princess',NULL,NULL,NULL,'5',NULL,'1829040268',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Mrs. Princess Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (92,'Individual',NULL,'Dr. Junko Jones',NULL,NULL,'Junko','','Jones',0,0,0,0,0,0,NULL,'Jones, Junko',NULL,NULL,NULL,NULL,NULL,'3254186828',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Dr. Junko Jones',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (93,'Individual',NULL,'Craig Olsen',NULL,NULL,'Craig','L','Olsen',1,0,0,0,0,0,NULL,'Olsen, Craig',NULL,NULL,NULL,NULL,NULL,'1378827194',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Craig',1,NULL,'Dear Craig',1,NULL,'Craig Olsen',NULL,2,'1967-02-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (94,'Organization',NULL,'Minnesota Advocacy Trust','Minnesota Advocacy Trust',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Minnesota Advocacy Trust',NULL,NULL,NULL,'5',NULL,'2584972181',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Minnesota Advocacy Trust',NULL,NULL,NULL,0,NULL,NULL,100,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (95,'Individual',NULL,'Rosario Cruz',NULL,NULL,'Rosario','W','Cruz',0,0,0,0,0,0,NULL,'Cruz, Rosario',NULL,NULL,NULL,'5',NULL,'2057831420',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Cruz',NULL,2,'1977-12-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (96,'Individual',NULL,'Teddy Parker','United Agriculture Association',NULL,'Teddy','A','Parker',0,1,0,0,1,0,NULL,'Parker, Teddy',NULL,NULL,NULL,'2',NULL,'1804413700',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Parker',NULL,2,'1971-05-27',0,NULL,NULL,NULL,NULL,NULL,140,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (97,'Individual',NULL,'Norris Dimitrov II',NULL,NULL,'Norris','','Dimitrov',0,0,0,0,0,0,NULL,'Dimitrov, Norris',NULL,NULL,NULL,NULL,NULL,'378198335',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Dimitrov II',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (98,'Organization',NULL,'Sierra Arts Alliance','Sierra Arts Alliance',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Sierra Arts Alliance',NULL,NULL,NULL,NULL,NULL,'2493739571',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Sierra Arts Alliance',NULL,NULL,NULL,0,NULL,NULL,40,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (99,'Individual',NULL,'Andrew Terry III',NULL,NULL,'Andrew','M','Terry',0,0,0,0,0,0,NULL,'Terry, Andrew',NULL,NULL,NULL,'4',NULL,'3371971091',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Andrew Terry III',NULL,NULL,'1986-01-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (100,'Individual',NULL,'Daren Yadav','Minnesota Advocacy Trust',NULL,'Daren','','Yadav',0,0,0,0,1,0,NULL,'Yadav, Daren',NULL,NULL,NULL,NULL,NULL,'1994068290',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Yadav',NULL,NULL,'1992-04-27',0,NULL,NULL,NULL,NULL,NULL,94,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (101,'Organization',NULL,'Harrisburg Software Association','Harrisburg Software Association',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Harrisburg Software Association',NULL,NULL,NULL,NULL,NULL,'1022393806',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Harrisburg Software Association',NULL,NULL,NULL,0,NULL,NULL,138,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (102,'Individual',NULL,'Ms. Megan Smith',NULL,NULL,'Megan','','Smith',1,0,0,0,0,0,NULL,'Smith, Megan',NULL,NULL,NULL,NULL,NULL,'278762954',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Ms. Megan Smith',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (103,'Household',NULL,'Jacobs family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Jacobs family',NULL,NULL,NULL,NULL,NULL,'1498986649',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jacobs family',5,NULL,'Dear Jacobs family',2,NULL,'Jacobs family',NULL,NULL,NULL,0,NULL,'Jacobs family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (104,'Individual',NULL,'Sonny Wilson','Caulder Peace Trust',NULL,'Sonny','I','Wilson',0,0,0,0,0,0,NULL,'Wilson, Sonny',NULL,NULL,NULL,'1',NULL,'1288997537',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Sonny',1,NULL,'Dear Sonny',1,NULL,'Sonny Wilson',NULL,2,'1997-09-05',0,NULL,NULL,NULL,NULL,NULL,186,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (105,'Individual',NULL,'Ashley Blackwell',NULL,NULL,'Ashley','','Blackwell',0,1,0,0,0,0,NULL,'Blackwell, Ashley',NULL,NULL,NULL,NULL,NULL,'2843113739',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Blackwell',NULL,2,'1950-02-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (106,'Individual',NULL,'Mr. Jackson Jensen',NULL,NULL,'Jackson','P','Jensen',1,0,0,0,0,0,NULL,'Jensen, Jackson',NULL,NULL,NULL,'2',NULL,'2839026195',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Mr. Jackson Jensen',NULL,2,'1949-04-08',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (107,'Individual',NULL,'Dr. Herminia Dimitrov',NULL,NULL,'Herminia','','Dimitrov',0,0,0,0,0,0,NULL,'Dimitrov, Herminia',NULL,NULL,NULL,NULL,NULL,'4241728416',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Dr. Herminia Dimitrov',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (108,'Individual',NULL,'Dr. Kenny Zope III',NULL,NULL,'Kenny','','Zope',0,0,0,0,0,0,NULL,'Zope, Kenny',NULL,NULL,NULL,'5',NULL,'89544599',NULL,'Sample Data',4,4,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Dr. Kenny Zope III',NULL,2,'1998-05-26',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (109,'Individual',NULL,'prenticee46@fishmail.co.nz',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'prenticee46@fishmail.co.nz',NULL,NULL,NULL,NULL,NULL,'2619859908',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear prenticee46@fishmail.co.nz',1,NULL,'Dear prenticee46@fishmail.co.nz',1,NULL,'prenticee46@fishmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (110,'Individual',NULL,'yadave78@airmail.org','States Arts Partnership',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'yadave78@airmail.org',NULL,NULL,NULL,'2',NULL,'2029777414',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear yadave78@airmail.org',1,NULL,'Dear yadave78@airmail.org',1,NULL,'yadave78@airmail.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,37,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (111,'Individual',NULL,'Dr. Laree Jacobs',NULL,NULL,'Laree','','Jacobs',0,1,0,0,0,0,NULL,'Jacobs, Laree',NULL,NULL,NULL,NULL,NULL,'3788424198',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Dr. Laree Jacobs',NULL,1,'1936-03-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (112,'Individual',NULL,'Mr. Lawerence Prentice Jr.',NULL,NULL,'Lawerence','','Prentice',0,0,0,0,0,0,NULL,'Prentice, Lawerence',NULL,NULL,NULL,NULL,NULL,'1400144571',NULL,'Sample Data',3,1,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Mr. Lawerence Prentice Jr.',NULL,2,'1983-09-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (113,'Individual',NULL,'Norris Parker Sr.',NULL,NULL,'Norris','','Parker',0,0,0,0,0,0,NULL,'Parker, Norris',NULL,NULL,NULL,NULL,NULL,'3555621557',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Parker Sr.',NULL,2,'1979-01-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (114,'Individual',NULL,'Ivey Jones',NULL,NULL,'Ivey','','Jones',0,0,0,0,0,0,NULL,'Jones, Ivey',NULL,NULL,NULL,'4',NULL,'2553949763',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ivey',1,NULL,'Dear Ivey',1,NULL,'Ivey Jones',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (115,'Organization',NULL,'Urban Advocacy Academy','Urban Advocacy Academy',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Urban Advocacy Academy',NULL,NULL,NULL,NULL,NULL,'740763449',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Urban Advocacy Academy',NULL,NULL,NULL,0,NULL,NULL,154,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (116,'Individual',NULL,'Sharyn Jameson',NULL,NULL,'Sharyn','Z','Jameson',0,1,0,0,0,0,NULL,'Jameson, Sharyn',NULL,NULL,NULL,NULL,NULL,'2205307194',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Sharyn Jameson',NULL,1,'1966-09-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (117,'Individual',NULL,'Kathleen Cooper',NULL,NULL,'Kathleen','P','Cooper',1,0,0,0,0,0,NULL,'Cooper, Kathleen',NULL,NULL,NULL,NULL,NULL,'2978095571',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:58','Both'), - (118,'Individual',NULL,'Ms. Juliann Jones',NULL,NULL,'Juliann','V','Jones',0,0,0,0,0,0,NULL,'Jones, Juliann',NULL,NULL,NULL,'1',NULL,'2994916401',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Ms. Juliann Jones',NULL,1,'1992-06-26',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (119,'Organization',NULL,'Second Legal Initiative','Second Legal Initiative',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Second Legal Initiative',NULL,NULL,NULL,NULL,NULL,'1538190431',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Second Legal Initiative',NULL,NULL,NULL,0,NULL,NULL,181,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (120,'Individual',NULL,'Elbert ÅÄ…chowski III',NULL,NULL,'Elbert','','ÅÄ…chowski',0,0,0,0,0,0,NULL,'ÅÄ…chowski, Elbert',NULL,NULL,NULL,'3',NULL,'473197543',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert ÅÄ…chowski III',NULL,NULL,'2001-02-21',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (121,'Organization',NULL,'College Peace Solutions','College Peace Solutions',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'College Peace Solutions',NULL,NULL,NULL,'3',NULL,'4273729758',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'College Peace Solutions',NULL,NULL,NULL,0,NULL,NULL,126,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (122,'Individual',NULL,'Ms. Arlyne Wilson',NULL,NULL,'Arlyne','U','Wilson',1,1,0,0,0,0,NULL,'Wilson, Arlyne',NULL,NULL,NULL,NULL,NULL,'785003749',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Ms. Arlyne Wilson',NULL,NULL,'1987-12-31',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (123,'Individual',NULL,'Mrs. Margaret Wattson',NULL,NULL,'Margaret','L','Wattson',1,1,0,0,0,0,NULL,'Wattson, Margaret',NULL,NULL,NULL,'4',NULL,'2865119341',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Mrs. Margaret Wattson',NULL,1,'1941-03-06',1,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (124,'Organization',NULL,'Maple Agriculture Trust','Maple Agriculture Trust',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Maple Agriculture Trust',NULL,NULL,NULL,NULL,NULL,'3666418584',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Maple Agriculture Trust',NULL,NULL,NULL,0,NULL,NULL,185,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (125,'Individual',NULL,'Mr. Lawerence Roberts',NULL,NULL,'Lawerence','Y','Roberts',0,0,0,0,0,0,NULL,'Roberts, Lawerence',NULL,NULL,NULL,NULL,NULL,'2250722466',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Mr. Lawerence Roberts',NULL,2,'1981-07-30',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (126,'Individual',NULL,'Allen Wilson III','College Peace Solutions',NULL,'Allen','','Wilson',1,0,0,0,0,0,NULL,'Wilson, Allen',NULL,NULL,NULL,NULL,NULL,'669149647',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Allen Wilson III',NULL,NULL,'1978-10-15',0,NULL,NULL,NULL,NULL,NULL,121,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (127,'Household',NULL,'Smith family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Smith family',NULL,NULL,NULL,NULL,NULL,'4082772645',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Smith family',5,NULL,'Dear Smith family',2,NULL,'Smith family',NULL,NULL,NULL,0,NULL,'Smith family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (128,'Individual',NULL,'Sharyn Smith',NULL,NULL,'Sharyn','A','Smith',1,0,0,0,0,0,NULL,'Smith, Sharyn',NULL,NULL,NULL,NULL,NULL,'4235031760',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Sharyn Smith',NULL,1,'1944-03-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (129,'Household',NULL,'Parker family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Parker family',NULL,NULL,NULL,NULL,NULL,'425242179',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Parker family',5,NULL,'Dear Parker family',2,NULL,'Parker family',NULL,NULL,NULL,0,NULL,'Parker family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (130,'Individual',NULL,'Elina Dimitrov',NULL,NULL,'Elina','','Dimitrov',1,0,0,0,1,0,NULL,'Dimitrov, Elina',NULL,NULL,NULL,NULL,NULL,'1959136651',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Dimitrov',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (131,'Individual',NULL,'robertson.rosario@fishmail.net',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'robertson.rosario@fishmail.net',NULL,NULL,NULL,NULL,NULL,'3840046335',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear robertson.rosario@fishmail.net',1,NULL,'Dear robertson.rosario@fishmail.net',1,NULL,'robertson.rosario@fishmail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (132,'Individual',NULL,'Dr. Lou Samuels II',NULL,NULL,'Lou','','Samuels',1,0,0,0,0,0,NULL,'Samuels, Lou',NULL,NULL,NULL,NULL,NULL,'2036666964',NULL,'Sample Data',4,3,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Dr. Lou Samuels II',NULL,2,'1939-12-21',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (133,'Individual',NULL,'Ms. Santina Wagner',NULL,NULL,'Santina','P','Wagner',0,0,0,0,0,0,NULL,'Wagner, Santina',NULL,NULL,NULL,NULL,NULL,'3136401348',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Ms. Santina Wagner',NULL,NULL,'1971-09-29',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (134,'Individual',NULL,'Nicole Samson',NULL,NULL,'Nicole','','Samson',0,0,0,0,0,0,NULL,'Samson, Nicole',NULL,NULL,NULL,'4',NULL,'1649974700',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Samson',NULL,NULL,'1944-11-16',1,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:58','Both'), - (135,'Individual',NULL,'Nicole Reynolds',NULL,NULL,'Nicole','T','Reynolds',0,0,0,0,1,0,NULL,'Reynolds, Nicole',NULL,NULL,NULL,NULL,NULL,'761347684',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Reynolds',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (136,'Individual',NULL,'dazd54@sample.co.in',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'dazd54@sample.co.in',NULL,NULL,NULL,NULL,NULL,'4280503550',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear dazd54@sample.co.in',1,NULL,'Dear dazd54@sample.co.in',1,NULL,'dazd54@sample.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (137,'Individual',NULL,'Roland Adams Sr.','Creative Empowerment Association',NULL,'Roland','','Adams',0,0,0,0,0,0,NULL,'Adams, Roland',NULL,NULL,NULL,'2',NULL,'2320657874',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland Adams Sr.',NULL,2,'1984-01-24',0,NULL,NULL,NULL,NULL,NULL,8,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (138,'Individual',NULL,'Alida ÅÄ…chowski','Harrisburg Software Association',NULL,'Alida','','ÅÄ…chowski',0,0,0,0,0,0,NULL,'ÅÄ…chowski, Alida',NULL,NULL,NULL,NULL,NULL,'856739005',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Alida ÅÄ…chowski',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,101,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (139,'Individual',NULL,'Dr. Jay Nielsen',NULL,NULL,'Jay','','Nielsen',0,0,0,0,0,0,NULL,'Nielsen, Jay',NULL,NULL,NULL,'1',NULL,'1092213488',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Dr. Jay Nielsen',NULL,2,'1970-02-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (140,'Organization',NULL,'United Agriculture Association','United Agriculture Association',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'United Agriculture Association',NULL,NULL,NULL,'3',NULL,'1260809011',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'United Agriculture Association',NULL,NULL,NULL,0,NULL,NULL,96,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (141,'Individual',NULL,'Erik Zope II','Martin Luther King Legal Services',NULL,'Erik','N','Zope',0,0,0,0,0,0,NULL,'Zope, Erik',NULL,NULL,NULL,'3',NULL,'2683786262',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Erik Zope II',NULL,2,'2000-01-22',0,NULL,NULL,NULL,NULL,NULL,76,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (142,'Individual',NULL,'Mr. Andrew Wattson III',NULL,NULL,'Andrew','P','Wattson',0,0,0,0,0,0,NULL,'Wattson, Andrew',NULL,NULL,NULL,'5',NULL,'3954041415',NULL,'Sample Data',3,4,NULL,NULL,1,NULL,'Dear Andrew',1,NULL,'Dear Andrew',1,NULL,'Mr. Andrew Wattson III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (143,'Individual',NULL,'Megan Robertson',NULL,NULL,'Megan','W','Robertson',0,0,0,0,0,0,NULL,'Robertson, Megan',NULL,NULL,NULL,NULL,NULL,'780859539',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Robertson',NULL,1,'1939-03-01',1,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (144,'Household',NULL,'Smith family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Smith family',NULL,NULL,NULL,'3',NULL,'4082772645',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Smith family',5,NULL,'Dear Smith family',2,NULL,'Smith family',NULL,NULL,NULL,0,NULL,'Smith family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (145,'Individual',NULL,'Mr. Troy Barkley Sr.','Mottville Action School',NULL,'Troy','R','Barkley',1,0,0,0,0,0,NULL,'Barkley, Troy',NULL,NULL,NULL,'1',NULL,'3703467861',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Mr. Troy Barkley Sr.',NULL,2,'1978-10-10',0,NULL,NULL,NULL,NULL,NULL,49,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (146,'Individual',NULL,'Dr. Kathleen Samuels',NULL,NULL,'Kathleen','L','Samuels',0,0,0,0,0,0,NULL,'Samuels, Kathleen',NULL,NULL,NULL,'3',NULL,'4106798550',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Dr. Kathleen Samuels',NULL,NULL,'1969-06-20',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (147,'Individual',NULL,'Ashley Jones III',NULL,NULL,'Ashley','H','Jones',1,1,0,0,0,0,NULL,'Jones, Ashley',NULL,NULL,NULL,NULL,NULL,'3141302765',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Ashley',1,NULL,'Dear Ashley',1,NULL,'Ashley Jones III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (148,'Individual',NULL,'Scott Patel II',NULL,NULL,'Scott','','Patel',1,1,0,0,0,0,NULL,'Patel, Scott',NULL,NULL,NULL,'2',NULL,'3200761732',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Scott Patel II',NULL,2,'1944-02-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (149,'Individual',NULL,'Dr. Alexia Bachman',NULL,NULL,'Alexia','','Bachman',0,0,0,0,1,0,NULL,'Bachman, Alexia',NULL,NULL,NULL,'1',NULL,'703420300',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Dr. Alexia Bachman',NULL,1,'1953-05-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (150,'Individual',NULL,'Lincoln Terrell',NULL,NULL,'Lincoln','','Terrell',0,1,0,0,0,0,NULL,'Terrell, Lincoln',NULL,NULL,NULL,'5',NULL,'1872516790',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Terrell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (151,'Individual',NULL,'Brent ÅÄ…chowski',NULL,NULL,'Brent','','ÅÄ…chowski',0,0,0,0,0,0,NULL,'ÅÄ…chowski, Brent',NULL,NULL,NULL,'4',NULL,'1516135364',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent ÅÄ…chowski',NULL,2,NULL,1,'2023-05-13',NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (152,'Individual',NULL,'Lincoln Ivanov',NULL,NULL,'Lincoln','','Ivanov',0,0,0,0,0,0,NULL,'Ivanov, Lincoln',NULL,NULL,NULL,NULL,NULL,'1295096764',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Ivanov',NULL,2,'1989-07-27',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (153,'Individual',NULL,'Mei Adams',NULL,NULL,'Mei','','Adams',1,0,0,0,1,0,NULL,'Adams, Mei',NULL,NULL,NULL,NULL,NULL,'407770009',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mei Adams',NULL,1,'1995-06-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (154,'Individual',NULL,'Scott Prentice','Urban Advocacy Academy',NULL,'Scott','H','Prentice',0,0,0,0,0,0,NULL,'Prentice, Scott',NULL,NULL,NULL,'3',NULL,'406414833',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Scott',1,NULL,'Dear Scott',1,NULL,'Scott Prentice',NULL,2,'2006-12-02',0,NULL,NULL,NULL,NULL,NULL,115,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (155,'Individual',NULL,'Dr. Princess Jones',NULL,NULL,'Princess','','Jones',0,0,0,0,0,0,NULL,'Jones, Princess',NULL,NULL,NULL,'4',NULL,'3647166533',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Dr. Princess Jones',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (156,'Individual',NULL,'Landon Jacobs',NULL,NULL,'Landon','K','Jacobs',0,0,0,0,0,0,NULL,'Jacobs, Landon',NULL,NULL,NULL,'3',NULL,'1885905593',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Landon Jacobs',NULL,2,'1965-05-29',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (157,'Individual',NULL,'Elbert Smith Sr.',NULL,NULL,'Elbert','','Smith',0,0,0,0,0,0,NULL,'Smith, Elbert',NULL,NULL,NULL,NULL,NULL,'3374844220',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Elbert Smith Sr.',NULL,NULL,'1987-04-29',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (158,'Household',NULL,'McReynolds family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'McReynolds family',NULL,NULL,NULL,'4',NULL,'3032680972',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear McReynolds family',5,NULL,'Dear McReynolds family',2,NULL,'McReynolds family',NULL,NULL,NULL,0,NULL,'McReynolds family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (159,'Individual',NULL,'Mrs. Josefa Reynolds',NULL,NULL,'Josefa','','Reynolds',1,0,0,0,0,0,NULL,'Reynolds, Josefa',NULL,NULL,NULL,NULL,NULL,'2579265288',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Mrs. Josefa Reynolds',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (160,'Individual',NULL,'Alida ÅÄ…chowski',NULL,NULL,'Alida','','ÅÄ…chowski',0,0,0,0,0,0,NULL,'ÅÄ…chowski, Alida',NULL,NULL,NULL,NULL,NULL,'856739005',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Alida',1,NULL,'Dear Alida',1,NULL,'Alida ÅÄ…chowski',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (161,'Individual',NULL,'Dr. Lawerence Jacobs Jr.',NULL,NULL,'Lawerence','','Jacobs',0,0,0,0,1,0,NULL,'Jacobs, Lawerence',NULL,NULL,NULL,NULL,NULL,'2914828015',NULL,'Sample Data',4,1,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Dr. Lawerence Jacobs Jr.',NULL,NULL,'1995-09-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (162,'Individual',NULL,'Dr. Errol Jameson',NULL,NULL,'Errol','','Jameson',0,0,0,0,0,0,NULL,'Jameson, Errol',NULL,NULL,NULL,NULL,NULL,'4067151192',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Dr. Errol Jameson',NULL,NULL,'1997-05-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (163,'Individual',NULL,'Dr. Elbert Smith',NULL,NULL,'Elbert','L','Smith',0,1,0,0,1,0,NULL,'Smith, Elbert',NULL,NULL,NULL,'3',NULL,'3374844220',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Elbert',1,NULL,'Dear Elbert',1,NULL,'Dr. Elbert Smith',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (164,'Individual',NULL,'Esta ÅÄ…chowski',NULL,NULL,'Esta','O','ÅÄ…chowski',0,0,0,0,1,0,NULL,'ÅÄ…chowski, Esta',NULL,NULL,NULL,'3',NULL,'195412899',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Esta ÅÄ…chowski',NULL,1,'1937-01-19',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (165,'Individual',NULL,'Alexia Ivanov-Jameson',NULL,NULL,'Alexia','','Ivanov-Jameson',0,0,0,0,0,0,NULL,'Ivanov-Jameson, Alexia',NULL,NULL,NULL,'4',NULL,'3700985534',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Ivanov-Jameson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (166,'Individual',NULL,'smith.claudio@testmail.co.nz',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'smith.claudio@testmail.co.nz',NULL,NULL,NULL,'5',NULL,'3983845230',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear smith.claudio@testmail.co.nz',1,NULL,'Dear smith.claudio@testmail.co.nz',1,NULL,'smith.claudio@testmail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (167,'Household',NULL,'Nielsen-Barkley family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Nielsen-Barkley family',NULL,NULL,NULL,'1',NULL,'1261260403',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Nielsen-Barkley family',5,NULL,'Dear Nielsen-Barkley family',2,NULL,'Nielsen-Barkley family',NULL,NULL,NULL,0,NULL,'Nielsen-Barkley family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (168,'Individual',NULL,'Allen Barkley-Robertson','United Health Association',NULL,'Allen','U','Barkley-Robertson',0,0,0,0,0,0,NULL,'Barkley-Robertson, Allen',NULL,NULL,NULL,'2',NULL,'2390437386',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Allen Barkley-Robertson',NULL,NULL,'2010-10-03',0,NULL,NULL,NULL,NULL,NULL,4,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (169,'Individual',NULL,'Justina Samuels',NULL,NULL,'Justina','','Samuels',0,0,0,0,1,0,NULL,'Samuels, Justina',NULL,NULL,NULL,'5',NULL,'1737971561',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Justina',1,NULL,'Dear Justina',1,NULL,'Justina Samuels',NULL,NULL,'1938-06-16',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (170,'Individual',NULL,'Dr. Margaret Yadav',NULL,NULL,'Margaret','','Yadav',0,0,0,0,1,0,NULL,'Yadav, Margaret',NULL,NULL,NULL,'2',NULL,'3959187042',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Yadav',NULL,1,'1985-01-16',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (171,'Individual',NULL,'Mr. Jed Nielsen',NULL,NULL,'Jed','','Nielsen',0,0,0,0,0,0,NULL,'Nielsen, Jed',NULL,NULL,NULL,'1',NULL,'1181971245',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Mr. Jed Nielsen',NULL,2,'1980-01-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (172,'Individual',NULL,'Barry Nielsen-Barkley',NULL,NULL,'Barry','C','Nielsen-Barkley',0,0,0,0,0,0,NULL,'Nielsen-Barkley, Barry',NULL,NULL,NULL,NULL,NULL,'1560892500',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Barry',1,NULL,'Dear Barry',1,NULL,'Barry Nielsen-Barkley',NULL,NULL,'2011-07-20',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (173,'Individual',NULL,'Dr. Valene DÃaz',NULL,NULL,'Valene','T','DÃaz',0,0,0,0,0,0,NULL,'DÃaz, Valene',NULL,NULL,NULL,'3',NULL,'3532656393',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Dr. Valene DÃaz',NULL,NULL,'1953-03-28',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (174,'Household',NULL,'Jones family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Jones family',NULL,NULL,NULL,NULL,NULL,'1110516799',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jones family',5,NULL,'Dear Jones family',2,NULL,'Jones family',NULL,NULL,NULL,0,NULL,'Jones family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (175,'Individual',NULL,'Iris Wagner','Providence Empowerment Fund',NULL,'Iris','F','Wagner',0,0,0,0,0,0,NULL,'Wagner, Iris',NULL,NULL,NULL,NULL,NULL,'2617223006',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Iris',1,NULL,'Dear Iris',1,NULL,'Iris Wagner',NULL,NULL,'1937-10-07',0,NULL,NULL,NULL,NULL,NULL,36,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (176,'Individual',NULL,'barkley.rosario26@infomail.co.in',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'barkley.rosario26@infomail.co.in',NULL,NULL,NULL,NULL,NULL,'1083757600',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear barkley.rosario26@infomail.co.in',1,NULL,'Dear barkley.rosario26@infomail.co.in',1,NULL,'barkley.rosario26@infomail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (177,'Household',NULL,'Wagner family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Wagner family',NULL,NULL,NULL,NULL,NULL,'1570966486',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Wagner family',5,NULL,'Dear Wagner family',2,NULL,'Wagner family',NULL,NULL,NULL,0,NULL,'Wagner family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (178,'Individual',NULL,'Dr. Ashlie Barkley',NULL,NULL,'Ashlie','T','Barkley',0,0,0,0,0,0,NULL,'Barkley, Ashlie',NULL,NULL,NULL,NULL,NULL,'1002355994',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Dr. Ashlie Barkley',NULL,1,'1958-09-18',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (179,'Household',NULL,'Reynolds family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Reynolds family',NULL,NULL,NULL,NULL,NULL,'4119726021',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Reynolds family',5,NULL,'Dear Reynolds family',2,NULL,'Reynolds family',NULL,NULL,NULL,0,NULL,'Reynolds family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (180,'Individual',NULL,'Nicole Jacobs',NULL,NULL,'Nicole','K','Jacobs',0,0,0,0,0,0,NULL,'Jacobs, Nicole',NULL,NULL,NULL,'1',NULL,'1326511364',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Nicole',1,NULL,'Dear Nicole',1,NULL,'Nicole Jacobs',NULL,NULL,'2010-03-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (181,'Individual',NULL,'Ms. Margaret Zope-Dimitrov','Second Legal Initiative',NULL,'Margaret','','Zope-Dimitrov',0,1,0,0,0,0,NULL,'Zope-Dimitrov, Margaret',NULL,NULL,NULL,NULL,NULL,'1151842680',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Ms. Margaret Zope-Dimitrov',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,119,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (182,'Household',NULL,'Wilson family',NULL,NULL,NULL,NULL,NULL,1,1,0,0,0,0,NULL,'Wilson family',NULL,NULL,NULL,'2',NULL,'350510798',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Wilson family',5,NULL,'Dear Wilson family',2,NULL,'Wilson family',NULL,NULL,NULL,0,NULL,'Wilson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (183,'Individual',NULL,'Alexia Dimitrov','Local Advocacy Services',NULL,'Alexia','A','Dimitrov',1,0,0,0,0,0,NULL,'Dimitrov, Alexia',NULL,NULL,NULL,NULL,NULL,'2476509826',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Dimitrov',NULL,1,'1983-08-28',0,NULL,NULL,NULL,NULL,NULL,2,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (184,'Individual',NULL,'Ms. Delana Robertson',NULL,NULL,'Delana','A','Robertson',1,1,0,0,0,0,NULL,'Robertson, Delana',NULL,NULL,NULL,NULL,NULL,'1905336460',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Ms. Delana Robertson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (185,'Individual',NULL,'Sanford Zope','Maple Agriculture Trust',NULL,'Sanford','L','Zope',0,1,0,0,0,0,NULL,'Zope, Sanford',NULL,NULL,NULL,NULL,NULL,'3485406852',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Zope',NULL,2,'1951-04-24',0,NULL,NULL,NULL,NULL,NULL,124,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (186,'Organization',NULL,'Caulder Peace Trust','Caulder Peace Trust',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Caulder Peace Trust',NULL,NULL,NULL,NULL,NULL,'3117940848',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Caulder Peace Trust',NULL,NULL,NULL,0,NULL,NULL,104,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (187,'Individual',NULL,'Dr. Allen Parker',NULL,NULL,'Allen','','Parker',0,1,0,0,0,0,NULL,'Parker, Allen',NULL,NULL,NULL,'4',NULL,'710842690',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Dr. Allen Parker',NULL,2,'1962-04-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (188,'Household',NULL,'Jones family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Jones family',NULL,NULL,NULL,NULL,NULL,'1110516799',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jones family',5,NULL,'Dear Jones family',2,NULL,'Jones family',NULL,NULL,NULL,0,NULL,'Jones family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (189,'Individual',NULL,'Winford Smith-Nielsen II',NULL,NULL,'Winford','','Smith-Nielsen',0,1,0,0,0,0,NULL,'Smith-Nielsen, Winford',NULL,NULL,NULL,'1',NULL,'3495924165',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Winford Smith-Nielsen II',NULL,2,'2012-11-26',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (190,'Individual',NULL,'Dr. Jay Samson',NULL,NULL,'Jay','Z','Samson',0,0,0,0,0,0,NULL,'Samson, Jay',NULL,NULL,NULL,'4',NULL,'4164694386',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Dr. Jay Samson',NULL,NULL,'1936-06-08',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (191,'Individual',NULL,'Shauna Dimitrov',NULL,NULL,'Shauna','L','Dimitrov',0,0,0,0,0,0,NULL,'Dimitrov, Shauna',NULL,NULL,NULL,NULL,NULL,'3774422289',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Dimitrov',NULL,1,'2004-12-27',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (192,'Individual',NULL,'Megan Parker',NULL,NULL,'Megan','','Parker',0,0,0,0,0,0,NULL,'Parker, Megan',NULL,NULL,NULL,NULL,NULL,'4204728620',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Parker',NULL,1,'1963-05-28',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (193,'Individual',NULL,'Ms. Teresa Barkley-Robertson',NULL,NULL,'Teresa','V','Barkley-Robertson',0,0,0,0,1,0,NULL,'Barkley-Robertson, Teresa',NULL,NULL,NULL,'1',NULL,'424513946',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Ms. Teresa Barkley-Robertson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (194,'Individual',NULL,'Dr. Bob McReynolds Sr.',NULL,NULL,'Bob','','McReynolds',0,0,0,0,0,0,NULL,'McReynolds, Bob',NULL,NULL,NULL,'4',NULL,'3806973538',NULL,'Sample Data',4,2,NULL,NULL,1,NULL,'Dear Bob',1,NULL,'Dear Bob',1,NULL,'Dr. Bob McReynolds Sr.',NULL,NULL,'1978-09-25',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (195,'Individual',NULL,'Kandace Wagner',NULL,NULL,'Kandace','F','Wagner',0,0,0,0,1,0,NULL,'Wagner, Kandace',NULL,NULL,NULL,'5',NULL,'34193694',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Wagner',NULL,1,'2010-02-25',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (196,'Individual',NULL,'Erik Wilson',NULL,NULL,'Erik','','Wilson',0,0,0,0,0,0,NULL,'Wilson, Erik',NULL,NULL,NULL,NULL,NULL,'3965179222',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Erik',1,NULL,'Dear Erik',1,NULL,'Erik Wilson',NULL,2,'1995-01-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (197,'Household',NULL,'Dimitrov family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Dimitrov family',NULL,NULL,NULL,NULL,NULL,'3351288571',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Dimitrov family',5,NULL,'Dear Dimitrov family',2,NULL,'Dimitrov family',NULL,NULL,NULL,0,NULL,'Dimitrov family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (198,'Household',NULL,'Terry-Smith family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Terry-Smith family',NULL,NULL,NULL,NULL,NULL,'2972645810',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Terry-Smith family',5,NULL,'Dear Terry-Smith family',2,NULL,'Terry-Smith family',NULL,NULL,NULL,0,NULL,'Terry-Smith family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (199,'Individual',NULL,'Dr. Allen Reynolds',NULL,NULL,'Allen','N','Reynolds',0,0,0,0,0,0,NULL,'Reynolds, Allen',NULL,NULL,NULL,'1',NULL,'3330814148',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Allen',1,NULL,'Dear Allen',1,NULL,'Dr. Allen Reynolds',NULL,2,'1988-06-20',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (200,'Individual',NULL,'Ms. Arlyne Adams',NULL,NULL,'Arlyne','','Adams',0,1,0,0,0,0,NULL,'Adams, Arlyne',NULL,NULL,NULL,'5',NULL,'4065496202',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Ms. Arlyne Adams',NULL,NULL,'1954-12-22',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:13:59','Both'), - (201,'Individual',NULL,'Shauna McReynolds',NULL,NULL,'Shauna','','McReynolds',0,0,0,0,0,0,NULL,'McReynolds, Shauna',NULL,NULL,NULL,NULL,NULL,'3277027646',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna McReynolds',NULL,1,'1991-04-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:13:58','2023-09-06 22:14:00','Both'), - (202,'Individual',NULL,'Jenny Lee',NULL,NULL,'Jenny',NULL,'Lee',0,0,0,0,0,0,NULL,'Lee, Jenny',NULL,NULL,NULL,NULL,'en_US','f2cb586af6c125f5cae77bb95fb4c1eb',NULL,NULL,NULL,NULL,NULL,1,1,NULL,'Dear Jenny',1,NULL,'Dear Jenny',1,NULL,'Jenny Lee','Volunteer coordinator',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:14:01','2023-09-06 22:14:01','Both'); + (1,'Organization',NULL,'Default Organization','Default Organization',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Default Organization',NULL,'Default Organization',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,'2023-09-06 22:52:06','Both'), + (2,'Individual',NULL,'Winford Samuels-Robertson II',NULL,NULL,'Winford','','Samuels-Robertson',1,0,0,0,0,0,NULL,'Samuels-Robertson, Winford',NULL,NULL,NULL,'5',NULL,'1931755287',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Winford Samuels-Robertson II',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (3,'Individual',NULL,'Omar Wattson II','Crystal Lake Sports Services',NULL,'Omar','K','Wattson',0,0,0,0,0,0,NULL,'Wattson, Omar',NULL,NULL,NULL,'3',NULL,'2457180487',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Omar',1,NULL,'Dear Omar',1,NULL,'Omar Wattson II',NULL,2,'2006-11-22',0,NULL,NULL,NULL,NULL,NULL,128,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (4,'Individual',NULL,'BrzÄ™czysÅ‚aw Jones',NULL,NULL,'BrzÄ™czysÅ‚aw','Y','Jones',0,0,0,0,1,0,NULL,'Jones, BrzÄ™czysÅ‚aw',NULL,NULL,NULL,NULL,NULL,'1102443663',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'BrzÄ™czysÅ‚aw Jones',NULL,2,'1979-12-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (5,'Household',NULL,'Wilson family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Wilson family',NULL,NULL,NULL,'3',NULL,'350510798',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Wilson family',5,NULL,'Dear Wilson family',2,NULL,'Wilson family',NULL,NULL,NULL,0,NULL,'Wilson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (6,'Household',NULL,'Adams-DÃaz family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Adams-DÃaz family',NULL,NULL,NULL,NULL,NULL,'2213874085',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Adams-DÃaz family',5,NULL,'Dear Adams-DÃaz family',2,NULL,'Adams-DÃaz family',NULL,NULL,NULL,0,NULL,'Adams-DÃaz family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (7,'Individual',NULL,'Dr. Winford Zope',NULL,NULL,'Winford','F','Zope',1,1,0,0,1,0,NULL,'Zope, Winford',NULL,NULL,NULL,NULL,NULL,'3617829114',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Winford',1,NULL,'Dear Winford',1,NULL,'Dr. Winford Zope',NULL,2,'1974-03-15',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (8,'Individual',NULL,'Dr. Toby Wilson',NULL,NULL,'Toby','','Wilson',0,0,0,0,0,0,NULL,'Wilson, Toby',NULL,NULL,NULL,'2',NULL,'4291852',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Dr. Toby Wilson',NULL,2,'1996-05-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (9,'Individual',NULL,'Dr. Shad Blackwell',NULL,NULL,'Shad','U','Blackwell',0,0,0,0,0,0,NULL,'Blackwell, Shad',NULL,NULL,NULL,'4',NULL,'1023646981',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Dr. Shad Blackwell',NULL,2,'1955-04-15',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:18','Both'), + (10,'Household',NULL,'Prentice family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Prentice family',NULL,NULL,NULL,'3',NULL,'3313623671',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Prentice family',5,NULL,'Dear Prentice family',2,NULL,'Prentice family',NULL,NULL,NULL,0,NULL,'Prentice family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (11,'Individual',NULL,'Mr. Jackson Parker',NULL,NULL,'Jackson','C','Parker',1,1,0,0,0,0,NULL,'Parker, Jackson',NULL,NULL,NULL,'3',NULL,'2328007188',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Mr. Jackson Parker',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (12,'Household',NULL,'Dimitrov-Blackwell family',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Dimitrov-Blackwell family',NULL,NULL,NULL,'5',NULL,'3980350456',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Dimitrov-Blackwell family',5,NULL,'Dear Dimitrov-Blackwell family',2,NULL,'Dimitrov-Blackwell family',NULL,NULL,NULL,0,NULL,'Dimitrov-Blackwell family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (13,'Individual',NULL,'Dr. Sherman Prentice',NULL,NULL,'Sherman','','Prentice',0,0,0,0,1,0,NULL,'Prentice, Sherman',NULL,NULL,NULL,NULL,NULL,'2980148757',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Dr. Sherman Prentice',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (14,'Household',NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,1,0,0,0,1,0,NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,'558108751',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Terry family',5,NULL,'Dear Terry family',2,NULL,'Terry family',NULL,NULL,NULL,0,NULL,'Terry family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (15,'Individual',NULL,'Arlyne Müller',NULL,NULL,'Arlyne','Y','Müller',1,0,0,0,1,0,NULL,'Müller, Arlyne',NULL,NULL,NULL,NULL,NULL,'908962805',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Arlyne Müller',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (16,'Individual',NULL,'Mr. Rosario Dimitrov Jr.',NULL,NULL,'Rosario','','Dimitrov',1,0,0,0,0,0,NULL,'Dimitrov, Rosario',NULL,NULL,NULL,NULL,NULL,'3331564945',NULL,'Sample Data',3,1,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Mr. Rosario Dimitrov Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (17,'Individual',NULL,'terry.f.teddy@fishmail.co.uk',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'terry.f.teddy@fishmail.co.uk',NULL,NULL,NULL,NULL,NULL,'3990920317',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear terry.f.teddy@fishmail.co.uk',1,NULL,'Dear terry.f.teddy@fishmail.co.uk',1,NULL,'terry.f.teddy@fishmail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (18,'Individual',NULL,'wilson.sonny@mymail.net',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'wilson.sonny@mymail.net',NULL,NULL,NULL,NULL,NULL,'2137801864',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear wilson.sonny@mymail.net',1,NULL,'Dear wilson.sonny@mymail.net',1,NULL,'wilson.sonny@mymail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (19,'Individual',NULL,'Carylon Terry',NULL,NULL,'Carylon','E','Terry',0,0,0,0,0,0,NULL,'Terry, Carylon',NULL,NULL,NULL,NULL,NULL,'803011383',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Carylon',1,NULL,'Dear Carylon',1,NULL,'Carylon Terry',NULL,1,'1980-06-27',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (20,'Individual',NULL,'Valene Müller',NULL,NULL,'Valene','G','Müller',1,0,0,0,0,0,NULL,'Müller, Valene',NULL,NULL,NULL,'2',NULL,'444739216',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Müller',NULL,1,'1967-11-04',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (21,'Individual',NULL,'Sanford Nielsen III',NULL,NULL,'Sanford','','Nielsen',0,0,0,0,0,0,NULL,'Nielsen, Sanford',NULL,NULL,NULL,'5',NULL,'2540808507',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Nielsen III',NULL,NULL,'1996-12-09',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (22,'Individual',NULL,'Truman Cooper Jr.',NULL,NULL,'Truman','S','Cooper',0,1,0,0,0,0,NULL,'Cooper, Truman',NULL,NULL,NULL,'3',NULL,'938772676',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Truman',1,NULL,'Dear Truman',1,NULL,'Truman Cooper Jr.',NULL,NULL,'1965-05-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (23,'Individual',NULL,'Bob Terrell',NULL,NULL,'Bob','P','Terrell',0,1,0,0,1,0,NULL,'Terrell, Bob',NULL,NULL,NULL,NULL,NULL,'1949116278',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Bob',1,NULL,'Dear Bob',1,NULL,'Bob Terrell',NULL,2,'2003-06-08',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (24,'Individual',NULL,'jeromewilson@lol.net',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'jeromewilson@lol.net',NULL,NULL,NULL,'5',NULL,'1863810386',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear jeromewilson@lol.net',1,NULL,'Dear jeromewilson@lol.net',1,NULL,'jeromewilson@lol.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (25,'Individual',NULL,'Valene Yadav-Terry',NULL,NULL,'Valene','Q','Yadav-Terry',1,0,0,0,1,0,NULL,'Yadav-Terry, Valene',NULL,NULL,NULL,'3',NULL,'218067921',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Yadav-Terry',NULL,NULL,'1969-06-30',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (26,'Individual',NULL,'daz.e.justina43@fakemail.co.nz','Terre Haute Action Collective',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'daz.e.justina43@fakemail.co.nz',NULL,NULL,NULL,NULL,NULL,'578424690',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear daz.e.justina43@fakemail.co.nz',1,NULL,'Dear daz.e.justina43@fakemail.co.nz',1,NULL,'daz.e.justina43@fakemail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,152,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (27,'Individual',NULL,'Dr. Arlyne Wattson','Urban Sustainability Partners',NULL,'Arlyne','','Wattson',0,0,0,0,1,0,NULL,'Wattson, Arlyne',NULL,NULL,NULL,'4',NULL,'2534537033',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Arlyne',1,NULL,'Dear Arlyne',1,NULL,'Dr. Arlyne Wattson',NULL,NULL,'1986-02-06',0,NULL,NULL,NULL,NULL,NULL,48,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (28,'Individual',NULL,'Mrs. Heidi Terry','Beech Action Systems',NULL,'Heidi','D','Terry',1,0,0,0,1,0,NULL,'Terry, Heidi',NULL,NULL,NULL,'2',NULL,'3824053436',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Heidi',1,NULL,'Dear Heidi',1,NULL,'Mrs. Heidi Terry',NULL,1,'1933-11-10',1,NULL,NULL,NULL,NULL,NULL,193,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (29,'Individual',NULL,'Kiara Dimitrov',NULL,NULL,'Kiara','','Dimitrov',0,0,0,0,1,0,NULL,'Dimitrov, Kiara',NULL,NULL,NULL,NULL,NULL,'340545341',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Dimitrov',NULL,1,'1982-08-22',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (30,'Individual',NULL,'Eleonor Müller',NULL,NULL,'Eleonor','Y','Müller',1,1,0,0,0,0,NULL,'Müller, Eleonor',NULL,NULL,NULL,'4',NULL,'4009103845',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Müller',NULL,NULL,'1983-09-19',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (31,'Individual',NULL,'Norris Dimitrov',NULL,NULL,'Norris','C','Dimitrov',0,1,0,0,0,0,NULL,'Dimitrov, Norris',NULL,NULL,NULL,NULL,NULL,'378198335',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Norris',1,NULL,'Dear Norris',1,NULL,'Norris Dimitrov',NULL,2,'1989-09-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (32,'Individual',NULL,'Margaret Wilson',NULL,NULL,'Margaret','','Wilson',0,0,0,0,0,0,NULL,'Wilson, Margaret',NULL,NULL,NULL,'4',NULL,'2853804377',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Margaret Wilson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (33,'Individual',NULL,'Dr. Troy Robertson II',NULL,NULL,'Troy','G','Robertson',0,0,0,0,0,0,NULL,'Robertson, Troy',NULL,NULL,NULL,NULL,NULL,'3729972619',NULL,'Sample Data',4,3,NULL,NULL,1,NULL,'Dear Troy',1,NULL,'Dear Troy',1,NULL,'Dr. Troy Robertson II',NULL,2,'1991-12-05',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (34,'Individual',NULL,'Brittney Jensen',NULL,NULL,'Brittney','B','Jensen',0,1,0,0,0,0,NULL,'Jensen, Brittney',NULL,NULL,NULL,NULL,NULL,'3335875143',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Brittney',1,NULL,'Dear Brittney',1,NULL,'Brittney Jensen',NULL,NULL,'1974-09-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (35,'Individual',NULL,'Angelika Wattson',NULL,NULL,'Angelika','','Wattson',0,0,0,0,0,0,NULL,'Wattson, Angelika',NULL,NULL,NULL,NULL,NULL,'868071594',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Angelika Wattson',NULL,NULL,'2020-09-05',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (36,'Individual',NULL,'adams-dazm89@infomail.net',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'adams-dazm89@infomail.net',NULL,NULL,NULL,NULL,NULL,'3264570238',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear adams-dazm89@infomail.net',1,NULL,'Dear adams-dazm89@infomail.net',1,NULL,'adams-dazm89@infomail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (37,'Individual',NULL,'Dr. Iris Zope',NULL,NULL,'Iris','S','Zope',0,0,0,0,0,0,NULL,'Zope, Iris',NULL,NULL,NULL,'5',NULL,'3326964728',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Iris',1,NULL,'Dear Iris',1,NULL,'Dr. Iris Zope',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (38,'Individual',NULL,'Jina Roberts',NULL,NULL,'Jina','','Roberts',0,0,0,0,1,0,NULL,'Roberts, Jina',NULL,NULL,NULL,NULL,NULL,'3944144091',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Jina',1,NULL,'Dear Jina',1,NULL,'Jina Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (39,'Individual',NULL,'Shad Terrell Jr.','Mississippi Food Partners',NULL,'Shad','','Terrell',0,0,0,0,0,0,NULL,'Terrell, Shad',NULL,NULL,NULL,'3',NULL,'3876111966',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Shad',1,NULL,'Dear Shad',1,NULL,'Shad Terrell Jr.',NULL,2,'1963-05-02',0,NULL,NULL,NULL,NULL,NULL,101,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (40,'Individual',NULL,'Ashlie Samuels',NULL,NULL,'Ashlie','B','Samuels',0,0,0,0,0,0,NULL,'Samuels, Ashlie',NULL,NULL,NULL,'3',NULL,'2718903137',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Samuels',NULL,NULL,'1996-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (41,'Individual',NULL,'Valene Jameson',NULL,NULL,'Valene','J','Jameson',0,0,0,0,1,0,NULL,'Jameson, Valene',NULL,NULL,NULL,'5',NULL,'2818413262',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Valene',1,NULL,'Dear Valene',1,NULL,'Valene Jameson',NULL,NULL,'1967-05-16',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (42,'Individual',NULL,'Beula DÃaz',NULL,NULL,'Beula','Y','DÃaz',0,0,0,0,1,0,NULL,'DÃaz, Beula',NULL,NULL,NULL,'1',NULL,'3664256087',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Beula',1,NULL,'Dear Beula',1,NULL,'Beula DÃaz',NULL,1,'1979-12-11',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (43,'Organization',NULL,'Star Environmental Association','Star Environmental Association',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Star Environmental Association',NULL,NULL,NULL,NULL,NULL,'2791975676',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Star Environmental Association',NULL,NULL,NULL,0,NULL,NULL,145,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (44,'Individual',NULL,'terry.craig83@lol.org',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'terry.craig83@lol.org',NULL,NULL,NULL,'1',NULL,'2873019635',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear terry.craig83@lol.org',1,NULL,'Dear terry.craig83@lol.org',1,NULL,'terry.craig83@lol.org',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (45,'Individual',NULL,'Dr. Tanya Adams',NULL,NULL,'Tanya','','Adams',1,0,0,0,1,0,NULL,'Adams, Tanya',NULL,NULL,NULL,'5',NULL,'1181850988',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Dr. Tanya Adams',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (46,'Individual',NULL,'Toby Roberts Jr.',NULL,NULL,'Toby','V','Roberts',0,0,0,0,1,0,NULL,'Roberts, Toby',NULL,NULL,NULL,NULL,NULL,'3766769567',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Toby',1,NULL,'Dear Toby',1,NULL,'Toby Roberts Jr.',NULL,2,'1970-06-18',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (47,'Individual',NULL,'Esta Dimitrov',NULL,NULL,'Esta','Z','Dimitrov',0,1,0,0,0,0,NULL,'Dimitrov, Esta',NULL,NULL,NULL,NULL,NULL,'1897476',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Esta',1,NULL,'Dear Esta',1,NULL,'Esta Dimitrov',NULL,NULL,'1972-04-25',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (48,'Organization',NULL,'Urban Sustainability Partners','Urban Sustainability Partners',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Urban Sustainability Partners',NULL,NULL,NULL,NULL,NULL,'199075669',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Urban Sustainability Partners',NULL,NULL,NULL,0,NULL,NULL,27,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (49,'Organization',NULL,'Global Peace Trust','Global Peace Trust',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Global Peace Trust',NULL,NULL,NULL,NULL,NULL,'2469867703',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Global Peace Trust',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (50,'Individual',NULL,'Lincoln Jameson III','Local Poetry Association',NULL,'Lincoln','','Jameson',0,0,0,0,0,0,NULL,'Jameson, Lincoln',NULL,NULL,NULL,NULL,NULL,'2753899992',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Lincoln Jameson III',NULL,2,'1969-04-16',0,NULL,NULL,NULL,NULL,NULL,177,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (51,'Organization',NULL,'Dowlen Arts Partnership','Dowlen Arts Partnership',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Dowlen Arts Partnership',NULL,NULL,NULL,'4',NULL,'2015684674',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Dowlen Arts Partnership',NULL,NULL,NULL,0,NULL,NULL,76,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (52,'Household',NULL,'Zope family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Zope family',NULL,NULL,NULL,'2',NULL,'1649131487',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Zope family',5,NULL,'Dear Zope family',2,NULL,'Zope family',NULL,NULL,NULL,0,NULL,'Zope family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (53,'Individual',NULL,'Tanya Prentice','Iowa Legal School',NULL,'Tanya','W','Prentice',1,0,0,0,0,0,NULL,'Prentice, Tanya',NULL,NULL,NULL,NULL,NULL,'3651240443',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Tanya',1,NULL,'Dear Tanya',1,NULL,'Tanya Prentice',NULL,NULL,'1986-01-21',0,NULL,NULL,NULL,NULL,NULL,105,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (54,'Individual',NULL,'rosariod@testing.info',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'rosariod@testing.info',NULL,NULL,NULL,'3',NULL,'1148276092',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear rosariod@testing.info',1,NULL,'Dear rosariod@testing.info',1,NULL,'rosariod@testing.info',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:18','Both'), + (55,'Individual',NULL,'Errol Dimitrov Jr.',NULL,NULL,'Errol','','Dimitrov',0,0,0,0,0,0,NULL,'Dimitrov, Errol',NULL,NULL,NULL,NULL,NULL,'3017354314',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Dimitrov Jr.',NULL,NULL,'2007-10-19',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (56,'Individual',NULL,'Scarlet Barkley',NULL,NULL,'Scarlet','U','Barkley',0,0,0,0,0,0,NULL,'Barkley, Scarlet',NULL,NULL,NULL,'2',NULL,'817435173',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Scarlet Barkley',NULL,NULL,'1959-03-22',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (57,'Individual',NULL,'Mrs. Scarlet Samuels-Robertson',NULL,NULL,'Scarlet','','Samuels-Robertson',1,0,0,0,0,0,NULL,'Samuels-Robertson, Scarlet',NULL,NULL,NULL,'2',NULL,'1638483408',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Mrs. Scarlet Samuels-Robertson',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (58,'Individual',NULL,'Mr. BrzÄ™czysÅ‚aw Terrell',NULL,NULL,'BrzÄ™czysÅ‚aw','','Terrell',0,1,0,0,0,0,NULL,'Terrell, BrzÄ™czysÅ‚aw',NULL,NULL,NULL,'2',NULL,'2155865046',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Mr. BrzÄ™czysÅ‚aw Terrell',NULL,2,'1956-07-05',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (59,'Individual',NULL,'Alexia Bachman',NULL,NULL,'Alexia','','Bachman',0,0,0,0,0,0,NULL,'Bachman, Alexia',NULL,NULL,NULL,NULL,NULL,'703420300',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Alexia',1,NULL,'Dear Alexia',1,NULL,'Alexia Bachman',NULL,1,'1945-05-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (60,'Individual',NULL,'Mrs. Elina Roberts','Deland Action Systems',NULL,'Elina','','Roberts',0,0,0,0,0,0,NULL,'Roberts, Elina',NULL,NULL,NULL,'3',NULL,'3456421482',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Mrs. Elina Roberts',NULL,1,'1997-10-20',0,NULL,NULL,NULL,NULL,NULL,135,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (61,'Organization',NULL,'Global Advocacy Initiative','Global Advocacy Initiative',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Global Advocacy Initiative',NULL,NULL,NULL,'3',NULL,'611717485',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Global Advocacy Initiative',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (62,'Individual',NULL,'Dr. Teresa Patel',NULL,NULL,'Teresa','H','Patel',0,0,0,0,0,0,NULL,'Patel, Teresa',NULL,NULL,NULL,NULL,NULL,'1615801119',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Dr. Teresa Patel',NULL,1,'1997-05-16',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (63,'Individual',NULL,'Ms. Herminia Wilson',NULL,NULL,'Herminia','C','Wilson',0,1,0,0,0,0,NULL,'Wilson, Herminia',NULL,NULL,NULL,'4',NULL,'1306948243',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Ms. Herminia Wilson',NULL,1,'1968-07-20',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (64,'Individual',NULL,'Dr. Lou ÅÄ…chowski Sr.',NULL,NULL,'Lou','','ÅÄ…chowski',0,0,0,0,0,0,NULL,'ÅÄ…chowski, Lou',NULL,NULL,NULL,NULL,NULL,'4023887052',NULL,'Sample Data',4,2,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Dr. Lou ÅÄ…chowski Sr.',NULL,2,'1996-02-19',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (65,'Individual',NULL,'josefabachman-zope@fakemail.biz',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'josefabachman-zope@fakemail.biz',NULL,NULL,NULL,NULL,NULL,'395997919',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear josefabachman-zope@fakemail.biz',1,NULL,'Dear josefabachman-zope@fakemail.biz',1,NULL,'josefabachman-zope@fakemail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (66,'Individual',NULL,'Mr. Rolando Nielsen Sr.',NULL,NULL,'Rolando','E','Nielsen',0,0,0,0,0,0,NULL,'Nielsen, Rolando',NULL,NULL,NULL,NULL,NULL,'1720954446',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear Rolando',1,NULL,'Dear Rolando',1,NULL,'Mr. Rolando Nielsen Sr.',NULL,2,'1996-10-30',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (67,'Organization',NULL,'Woodbridge Literacy Association','Woodbridge Literacy Association',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Woodbridge Literacy Association',NULL,NULL,NULL,NULL,NULL,'3999176872',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Woodbridge Literacy Association',NULL,NULL,NULL,0,NULL,NULL,165,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (68,'Household',NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,'2097305882',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Roberts family',5,NULL,'Dear Roberts family',2,NULL,'Roberts family',NULL,NULL,NULL,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (69,'Individual',NULL,'Jay Deforest',NULL,NULL,'Jay','','Deforest',0,0,0,0,0,0,NULL,'Deforest, Jay',NULL,NULL,NULL,'3',NULL,'3714093983',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Jay',1,NULL,'Dear Jay',1,NULL,'Jay Deforest',NULL,2,'1951-06-03',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (70,'Individual',NULL,'Dr. Ray Jones Sr.',NULL,NULL,'Ray','','Jones',0,0,0,0,0,0,NULL,'Jones, Ray',NULL,NULL,NULL,NULL,NULL,'3868531541',NULL,'Sample Data',4,2,NULL,NULL,1,NULL,'Dear Ray',1,NULL,'Dear Ray',1,NULL,'Dr. Ray Jones Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (71,'Individual',NULL,'Elina DÃaz',NULL,NULL,'Elina','E','DÃaz',0,0,0,0,0,0,NULL,'DÃaz, Elina',NULL,NULL,NULL,'3',NULL,'843757403',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina DÃaz',NULL,NULL,'1953-04-20',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (72,'Individual',NULL,'Dr. Betty Terry',NULL,NULL,'Betty','','Terry',0,0,0,0,0,0,NULL,'Terry, Betty',NULL,NULL,NULL,'5',NULL,'3939845643',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Betty',1,NULL,'Dear Betty',1,NULL,'Dr. Betty Terry',NULL,1,'1968-01-07',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (73,'Organization',NULL,'Surveyor Development Services','Surveyor Development Services',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Surveyor Development Services',NULL,NULL,NULL,NULL,NULL,'3185551255',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Surveyor Development Services',NULL,NULL,NULL,0,NULL,NULL,166,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (74,'Individual',NULL,'Mr. Lawerence Müller Sr.',NULL,NULL,'Lawerence','','Müller',1,0,0,0,0,0,NULL,'Müller, Lawerence',NULL,NULL,NULL,'3',NULL,'3263544089',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Mr. Lawerence Müller Sr.',NULL,2,'1975-04-13',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (75,'Individual',NULL,'Carlos Patel II',NULL,NULL,'Carlos','','Patel',1,1,0,0,0,0,NULL,'Patel, Carlos',NULL,NULL,NULL,NULL,NULL,'2432936038',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Carlos Patel II',NULL,2,'1973-04-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (76,'Individual',NULL,'Dr. Bryon Roberts II','Dowlen Arts Partnership',NULL,'Bryon','L','Roberts',0,1,0,0,0,0,NULL,'Roberts, Bryon',NULL,NULL,NULL,'3',NULL,'1499512182',NULL,'Sample Data',4,3,NULL,NULL,1,NULL,'Dear Bryon',1,NULL,'Dear Bryon',1,NULL,'Dr. Bryon Roberts II',NULL,2,'1985-09-13',0,NULL,NULL,NULL,NULL,NULL,51,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (77,'Individual',NULL,'Kandace Jensen',NULL,NULL,'Kandace','Q','Jensen',0,0,0,0,1,0,NULL,'Jensen, Kandace',NULL,NULL,NULL,'4',NULL,'2339972314',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kandace',1,NULL,'Dear Kandace',1,NULL,'Kandace Jensen',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (78,'Individual',NULL,'Laree Yadav',NULL,NULL,'Laree','Z','Yadav',0,0,0,0,0,0,NULL,'Yadav, Laree',NULL,NULL,NULL,'1',NULL,'3514401547',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Laree',1,NULL,'Dear Laree',1,NULL,'Laree Yadav',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (79,'Individual',NULL,'terry.u.herminia10@notmail.co.pl',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'terry.u.herminia10@notmail.co.pl',NULL,NULL,NULL,NULL,NULL,'536505869',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear terry.u.herminia10@notmail.co.pl',1,NULL,'Dear terry.u.herminia10@notmail.co.pl',1,NULL,'terry.u.herminia10@notmail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (80,'Individual',NULL,'jensent17@mymail.co.nz',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'jensent17@mymail.co.nz',NULL,NULL,NULL,'4',NULL,'1690688771',NULL,'Sample Data',4,3,NULL,NULL,1,NULL,'Dear jensent17@mymail.co.nz',1,NULL,'Dear jensent17@mymail.co.nz',1,NULL,'jensent17@mymail.co.nz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (81,'Individual',NULL,'Scarlet ÅÄ…chowski',NULL,NULL,'Scarlet','','ÅÄ…chowski',0,0,0,0,0,0,NULL,'ÅÄ…chowski, Scarlet',NULL,NULL,NULL,'5',NULL,'2169485989',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Scarlet',1,NULL,'Dear Scarlet',1,NULL,'Scarlet ÅÄ…chowski',NULL,1,'1966-07-07',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (82,'Individual',NULL,'Mr. Lincoln Cruz III','Friends Health Services',NULL,'Lincoln','G','Cruz',0,0,0,0,0,0,NULL,'Cruz, Lincoln',NULL,NULL,NULL,NULL,NULL,'3085396026',NULL,'Sample Data',3,4,NULL,NULL,1,NULL,'Dear Lincoln',1,NULL,'Dear Lincoln',1,NULL,'Mr. Lincoln Cruz III',NULL,NULL,'1965-05-25',0,NULL,NULL,NULL,NULL,NULL,153,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (83,'Individual',NULL,'Dr. Felisha Parker',NULL,NULL,'Felisha','','Parker',0,0,0,0,0,0,NULL,'Parker, Felisha',NULL,NULL,NULL,NULL,NULL,'559181434',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Dr. Felisha Parker',NULL,1,'1974-07-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (84,'Individual',NULL,'Miguel Terrell',NULL,NULL,'Miguel','R','Terrell',0,1,0,0,0,0,NULL,'Terrell, Miguel',NULL,NULL,NULL,'5',NULL,'2002488569',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Miguel',1,NULL,'Dear Miguel',1,NULL,'Miguel Terrell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (85,'Individual',NULL,'Damaris Prentice',NULL,NULL,'Damaris','','Prentice',1,0,0,0,0,0,NULL,'Prentice, Damaris',NULL,NULL,NULL,NULL,NULL,'4205720753',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Damaris Prentice',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (86,'Individual',NULL,'Dr. BrzÄ™czysÅ‚aw Roberts Jr.',NULL,NULL,'BrzÄ™czysÅ‚aw','S','Roberts',0,1,0,0,0,0,NULL,'Roberts, BrzÄ™czysÅ‚aw',NULL,NULL,NULL,'5',NULL,'3691213570',NULL,'Sample Data',4,1,NULL,NULL,1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dr. BrzÄ™czysÅ‚aw Roberts Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (87,'Individual',NULL,'Kiara Jameson',NULL,NULL,'Kiara','L','Jameson',0,0,0,0,0,0,NULL,'Jameson, Kiara',NULL,NULL,NULL,NULL,NULL,'1442754095',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kiara',1,NULL,'Dear Kiara',1,NULL,'Kiara Jameson',NULL,NULL,'1995-10-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (88,'Individual',NULL,'Mrs. Angelika Jensen',NULL,NULL,'Angelika','','Jensen',0,0,0,0,0,0,NULL,'Jensen, Angelika',NULL,NULL,NULL,NULL,NULL,'2460194929',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Angelika',1,NULL,'Dear Angelika',1,NULL,'Mrs. Angelika Jensen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (89,'Individual',NULL,'Delana Dimitrov-Blackwell',NULL,NULL,'Delana','F','Dimitrov-Blackwell',0,0,0,0,0,0,NULL,'Dimitrov-Blackwell, Delana',NULL,NULL,NULL,NULL,NULL,'1994167937',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Delana',1,NULL,'Dear Delana',1,NULL,'Delana Dimitrov-Blackwell',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:18','Both'), + (90,'Individual',NULL,'rolandowagner@fishmail.biz',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'rolandowagner@fishmail.biz',NULL,NULL,NULL,'5',NULL,'1565157219',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear rolandowagner@fishmail.biz',1,NULL,'Dear rolandowagner@fishmail.biz',1,NULL,'rolandowagner@fishmail.biz',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (91,'Organization',NULL,'Arkansas Literacy Partnership','Arkansas Literacy Partnership',NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Arkansas Literacy Partnership',NULL,NULL,NULL,NULL,NULL,'4284050225',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Arkansas Literacy Partnership',NULL,NULL,NULL,0,NULL,NULL,154,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (92,'Household',NULL,'Dimitrov-ÅÄ…chowski family',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'Dimitrov-ÅÄ…chowski family',NULL,NULL,NULL,NULL,NULL,'2362970834',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Dimitrov-ÅÄ…chowski family',5,NULL,'Dear Dimitrov-ÅÄ…chowski family',2,NULL,'Dimitrov-ÅÄ…chowski family',NULL,NULL,NULL,0,NULL,'Dimitrov-ÅÄ…chowski family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (93,'Individual',NULL,'Mr. Maxwell Roberts Sr.',NULL,NULL,'Maxwell','I','Roberts',0,0,0,0,0,0,NULL,'Roberts, Maxwell',NULL,NULL,NULL,'2',NULL,'3618827003',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Mr. Maxwell Roberts Sr.',NULL,NULL,'1973-08-31',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (94,'Individual',NULL,'Ms. Brigette Zope',NULL,NULL,'Brigette','F','Zope',1,0,0,0,0,0,NULL,'Zope, Brigette',NULL,NULL,NULL,NULL,NULL,'3799032348',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Brigette',1,NULL,'Dear Brigette',1,NULL,'Ms. Brigette Zope',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (95,'Individual',NULL,'Sherman Terry Jr.',NULL,NULL,'Sherman','','Terry',0,0,0,0,0,0,NULL,'Terry, Sherman',NULL,NULL,NULL,'2',NULL,'4119706907',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Sherman',1,NULL,'Dear Sherman',1,NULL,'Sherman Terry Jr.',NULL,NULL,'1987-11-08',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (96,'Individual',NULL,'Shauna Jones','California Poetry Collective',NULL,'Shauna','Z','Jones',0,0,0,0,0,0,NULL,'Jones, Shauna',NULL,NULL,NULL,'3',NULL,'2088102406',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Shauna Jones',NULL,1,'1971-05-10',0,NULL,NULL,NULL,NULL,NULL,129,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (97,'Individual',NULL,'Maria Terry II',NULL,NULL,'Maria','','Terry',0,0,0,0,0,0,NULL,'Terry, Maria',NULL,NULL,NULL,'2',NULL,'258657909',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Maria',1,NULL,'Dear Maria',1,NULL,'Maria Terry II',NULL,2,'1996-04-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (98,'Individual',NULL,'Roland ÅÄ…chowski',NULL,NULL,'Roland','','ÅÄ…chowski',0,1,0,0,0,0,NULL,'ÅÄ…chowski, Roland',NULL,NULL,NULL,'2',NULL,'1498526146',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Roland',1,NULL,'Dear Roland',1,NULL,'Roland ÅÄ…chowski',NULL,2,'1941-02-23',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (99,'Individual',NULL,'Mrs. Juliann Dimitrov',NULL,NULL,'Juliann','','Dimitrov',0,1,0,0,0,0,NULL,'Dimitrov, Juliann',NULL,NULL,NULL,'4',NULL,'835568897',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Mrs. Juliann Dimitrov',NULL,1,'1973-10-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (100,'Individual',NULL,'Kathleen Nielsen',NULL,NULL,'Kathleen','Q','Nielsen',0,0,0,0,0,0,NULL,'Nielsen, Kathleen',NULL,NULL,NULL,'5',NULL,'1768989959',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Kathleen Nielsen',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (101,'Organization',NULL,'Mississippi Food Partners','Mississippi Food Partners',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Mississippi Food Partners',NULL,NULL,NULL,NULL,NULL,'2602253458',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Mississippi Food Partners',NULL,NULL,NULL,0,NULL,NULL,39,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (102,'Individual',NULL,'Elizabeth Roberts',NULL,NULL,'Elizabeth','','Roberts',1,0,0,0,0,0,NULL,'Roberts, Elizabeth',NULL,NULL,NULL,NULL,NULL,'3104864980',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Elizabeth',1,NULL,'Dear Elizabeth',1,NULL,'Elizabeth Roberts',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (103,'Individual',NULL,'patel.miguel@infomail.co.uk',NULL,NULL,NULL,NULL,NULL,1,0,0,0,0,0,NULL,'patel.miguel@infomail.co.uk',NULL,NULL,NULL,'4',NULL,'3982946382',NULL,'Sample Data',3,3,NULL,NULL,1,NULL,'Dear patel.miguel@infomail.co.uk',1,NULL,'Dear patel.miguel@infomail.co.uk',1,NULL,'patel.miguel@infomail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (104,'Individual',NULL,'Ashlie Jensen',NULL,NULL,'Ashlie','S','Jensen',0,0,0,0,0,0,NULL,'Jensen, Ashlie',NULL,NULL,NULL,'2',NULL,'2039449284',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ashlie Jensen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (105,'Organization',NULL,'Iowa Legal School','Iowa Legal School',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Iowa Legal School',NULL,NULL,NULL,NULL,NULL,'377860758',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Iowa Legal School',NULL,NULL,NULL,0,NULL,NULL,53,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (106,'Individual',NULL,'Mrs. Junko Terrell',NULL,NULL,'Junko','V','Terrell',1,1,0,0,1,0,NULL,'Terrell, Junko',NULL,NULL,NULL,NULL,NULL,'3229402674',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Junko',1,NULL,'Dear Junko',1,NULL,'Mrs. Junko Terrell',NULL,1,'1952-10-26',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (107,'Individual',NULL,'Dr. Margaret Cooper',NULL,NULL,'Margaret','I','Cooper',0,0,0,0,0,0,NULL,'Cooper, Margaret',NULL,NULL,NULL,NULL,NULL,'897960138',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Cooper',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (108,'Individual',NULL,'Dr. Allan Terry II',NULL,NULL,'Allan','T','Terry',1,0,0,0,0,0,NULL,'Terry, Allan',NULL,NULL,NULL,NULL,NULL,'1982784074',NULL,'Sample Data',4,3,NULL,NULL,1,NULL,'Dear Allan',1,NULL,'Dear Allan',1,NULL,'Dr. Allan Terry II',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (109,'Individual',NULL,'Damaris Parker',NULL,NULL,'Damaris','','Parker',0,0,0,0,0,0,NULL,'Parker, Damaris',NULL,NULL,NULL,'4',NULL,'1055790628',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Damaris',1,NULL,'Dear Damaris',1,NULL,'Damaris Parker',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (110,'Individual',NULL,'dimitrovs@infomail.net',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'dimitrovs@infomail.net',NULL,NULL,NULL,'5',NULL,'959352248',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear dimitrovs@infomail.net',1,NULL,'Dear dimitrovs@infomail.net',1,NULL,'dimitrovs@infomail.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:18','Both'), + (111,'Household',NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,1,1,0,0,0,0,NULL,'Terry family',NULL,NULL,NULL,NULL,NULL,'558108751',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Terry family',5,NULL,'Dear Terry family',2,NULL,'Terry family',NULL,NULL,NULL,0,NULL,'Terry family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (112,'Individual',NULL,'Bryon Lee',NULL,NULL,'Bryon','','Lee',0,0,0,0,1,0,NULL,'Lee, Bryon',NULL,NULL,NULL,NULL,NULL,'369670244',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Bryon',1,NULL,'Dear Bryon',1,NULL,'Bryon Lee',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (113,'Household',NULL,'Jensen family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Jensen family',NULL,NULL,NULL,NULL,NULL,'797435572',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jensen family',5,NULL,'Dear Jensen family',2,NULL,'Jensen family',NULL,NULL,NULL,0,NULL,'Jensen family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (114,'Individual',NULL,'Mr. Ray Robertson Sr.',NULL,NULL,'Ray','','Robertson',0,0,0,0,0,0,NULL,'Robertson, Ray',NULL,NULL,NULL,NULL,NULL,'2006955715',NULL,'Sample Data',3,2,NULL,NULL,1,NULL,'Dear Ray',1,NULL,'Dear Ray',1,NULL,'Mr. Ray Robertson Sr.',NULL,2,'1962-02-13',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (115,'Individual',NULL,'Brent Grant III',NULL,NULL,'Brent','','Grant',1,0,0,0,0,0,NULL,'Grant, Brent',NULL,NULL,NULL,'5',NULL,'356521495',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Grant III',NULL,NULL,'1991-06-21',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (116,'Individual',NULL,'Eleonor Dimitrov',NULL,NULL,'Eleonor','','Dimitrov',0,0,0,0,1,0,NULL,'Dimitrov, Eleonor',NULL,NULL,NULL,'1',NULL,'3445748005',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Dimitrov',NULL,NULL,'2013-08-06',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (117,'Individual',NULL,'Herminia DÃaz',NULL,NULL,'Herminia','N','DÃaz',0,0,0,0,0,0,NULL,'DÃaz, Herminia',NULL,NULL,NULL,NULL,NULL,'2340298735',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Herminia',1,NULL,'Dear Herminia',1,NULL,'Herminia DÃaz',NULL,NULL,'2001-01-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:16','Both'), + (118,'Household',NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,NULL,'2255649769',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jameson family',5,NULL,'Dear Jameson family',2,NULL,'Jameson family',NULL,NULL,NULL,0,NULL,'Jameson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:15','2023-09-06 22:52:17','Both'), + (119,'Individual',NULL,'Eleonor Robertson',NULL,NULL,'Eleonor','','Robertson',0,0,0,0,0,0,NULL,'Robertson, Eleonor',NULL,NULL,NULL,NULL,NULL,'2051195654',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Eleonor Robertson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (120,'Individual',NULL,'Dr. Elina Terry',NULL,NULL,'Elina','','Terry',0,0,0,0,0,0,NULL,'Terry, Elina',NULL,NULL,NULL,'4',NULL,'2453833535',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Dr. Elina Terry',NULL,1,'1944-03-09',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (121,'Individual',NULL,'Mrs. Mei Zope','Dowlen Education Collective',NULL,'Mei','P','Zope',1,0,0,0,0,0,NULL,'Zope, Mei',NULL,NULL,NULL,'4',NULL,'1279923749',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Mei',1,NULL,'Dear Mei',1,NULL,'Mrs. Mei Zope',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,188,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (122,'Individual',NULL,'Mr. Landon Bachman III',NULL,NULL,'Landon','','Bachman',0,0,0,0,0,0,NULL,'Bachman, Landon',NULL,NULL,NULL,NULL,NULL,'1765533665',NULL,'Sample Data',3,4,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Mr. Landon Bachman III',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (123,'Individual',NULL,'Russell Reynolds Jr.',NULL,NULL,'Russell','L','Reynolds',1,0,0,0,0,0,NULL,'Reynolds, Russell',NULL,NULL,NULL,NULL,NULL,'2896350648',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Reynolds Jr.',NULL,NULL,'1973-01-09',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (124,'Individual',NULL,'Ms. Teresa Yadav',NULL,NULL,'Teresa','','Yadav',0,0,0,0,1,0,NULL,'Yadav, Teresa',NULL,NULL,NULL,'3',NULL,'2032766377',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Teresa',1,NULL,'Dear Teresa',1,NULL,'Ms. Teresa Yadav',NULL,NULL,'1946-03-25',1,'2023-04-25',NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (125,'Individual',NULL,'Russell Terry',NULL,NULL,'Russell','F','Terry',0,1,0,0,1,0,NULL,'Terry, Russell',NULL,NULL,NULL,'1',NULL,'3994938484',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Russell',1,NULL,'Dear Russell',1,NULL,'Russell Terry',NULL,2,'2018-03-03',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (126,'Individual',NULL,'Rosario Jensen Jr.',NULL,NULL,'Rosario','','Jensen',0,1,0,0,0,0,NULL,'Jensen, Rosario',NULL,NULL,NULL,'3',NULL,'3904971531',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Jensen Jr.',NULL,NULL,'2009-10-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (127,'Individual',NULL,'Rosario Dimitrov-ÅÄ…chowski II',NULL,NULL,'Rosario','L','Dimitrov-ÅÄ…chowski',0,0,0,0,0,0,NULL,'Dimitrov-ÅÄ…chowski, Rosario',NULL,NULL,NULL,NULL,NULL,'1639348848',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Rosario Dimitrov-ÅÄ…chowski II',NULL,NULL,'1984-01-24',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (128,'Organization',NULL,'Crystal Lake Sports Services','Crystal Lake Sports Services',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Crystal Lake Sports Services',NULL,NULL,NULL,'1',NULL,'1594113915',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Crystal Lake Sports Services',NULL,NULL,NULL,0,NULL,NULL,3,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (129,'Organization',NULL,'California Poetry Collective','California Poetry Collective',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'California Poetry Collective',NULL,NULL,NULL,'4',NULL,'3043444793',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'California Poetry Collective',NULL,NULL,NULL,0,NULL,NULL,96,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (130,'Individual',NULL,'Dr. Margaret Olsen',NULL,NULL,'Margaret','','Olsen',1,0,0,0,0,0,NULL,'Olsen, Margaret',NULL,NULL,NULL,NULL,NULL,'3839484919',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Olsen',NULL,NULL,'1949-01-29',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (131,'Household',NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,'1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (132,'Individual',NULL,'Brent Deforest',NULL,NULL,'Brent','T','Deforest',1,0,0,0,0,0,NULL,'Deforest, Brent',NULL,NULL,NULL,'1',NULL,'368083228',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Deforest',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (133,'Individual',NULL,'sonnyterry@example.co.uk',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'sonnyterry@example.co.uk',NULL,NULL,NULL,'2',NULL,'2015273871',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear sonnyterry@example.co.uk',1,NULL,'Dear sonnyterry@example.co.uk',1,NULL,'sonnyterry@example.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (134,'Household',NULL,'Bachman family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Bachman family',NULL,NULL,NULL,'3',NULL,'1714131215',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Bachman family',5,NULL,'Dear Bachman family',2,NULL,'Bachman family',NULL,NULL,NULL,0,NULL,'Bachman family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (135,'Organization',NULL,'Deland Action Systems','Deland Action Systems',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Deland Action Systems',NULL,NULL,NULL,'2',NULL,'1780999107',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Deland Action Systems',NULL,NULL,NULL,0,NULL,NULL,60,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (136,'Individual',NULL,'Ms. Santina Parker',NULL,NULL,'Santina','','Parker',0,0,0,0,0,0,NULL,'Parker, Santina',NULL,NULL,NULL,NULL,NULL,'276546055',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Ms. Santina Parker',NULL,NULL,'1966-08-17',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (137,'Individual',NULL,'Brent Jensen',NULL,NULL,'Brent','U','Jensen',0,1,0,0,0,0,NULL,'Jensen, Brent',NULL,NULL,NULL,'4',NULL,'4204826871',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Jensen',NULL,2,'2016-07-22',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (138,'Household',NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,NULL,'2097305882',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Roberts family',5,NULL,'Dear Roberts family',2,NULL,'Roberts family',NULL,NULL,NULL,0,NULL,'Roberts family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (139,'Individual',NULL,'Felisha Jensen',NULL,NULL,'Felisha','J','Jensen',0,0,0,0,1,0,NULL,'Jensen, Felisha',NULL,NULL,NULL,'2',NULL,'45016701',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Felisha',1,NULL,'Dear Felisha',1,NULL,'Felisha Jensen',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (140,'Individual',NULL,'Jacob Jameson',NULL,NULL,'Jacob','T','Jameson',0,0,0,0,0,0,NULL,'Jameson, Jacob',NULL,NULL,NULL,'3',NULL,'3368765112',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Jameson',NULL,NULL,'2004-08-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (141,'Individual',NULL,'Ms. Kathleen Bachman',NULL,NULL,'Kathleen','U','Bachman',0,0,0,0,1,0,NULL,'Bachman, Kathleen',NULL,NULL,NULL,'1',NULL,'4190804197',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Kathleen',1,NULL,'Dear Kathleen',1,NULL,'Ms. Kathleen Bachman',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (142,'Household',NULL,'Samuels-Robertson family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Samuels-Robertson family',NULL,NULL,NULL,NULL,NULL,'2584738538',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Samuels-Robertson family',5,NULL,'Dear Samuels-Robertson family',2,NULL,'Samuels-Robertson family',NULL,NULL,NULL,0,NULL,'Samuels-Robertson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (143,'Individual',NULL,'Dr. Kenny Smith',NULL,NULL,'Kenny','','Smith',0,0,0,0,0,0,NULL,'Smith, Kenny',NULL,NULL,NULL,'4',NULL,'2487730925',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Dr. Kenny Smith',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (144,'Individual',NULL,'Mrs. Shauna McReynolds',NULL,NULL,'Shauna','','McReynolds',0,0,0,0,0,0,NULL,'McReynolds, Shauna',NULL,NULL,NULL,NULL,NULL,'3277027646',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Shauna',1,NULL,'Dear Shauna',1,NULL,'Mrs. Shauna McReynolds',NULL,NULL,'1968-09-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (145,'Individual',NULL,'Lou Ivanov III','Star Environmental Association',NULL,'Lou','','Ivanov',0,0,0,0,0,0,NULL,'Ivanov, Lou',NULL,NULL,NULL,'1',NULL,'211844515',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Lou',1,NULL,'Dear Lou',1,NULL,'Lou Ivanov III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,43,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (146,'Individual',NULL,'Mr. Rosario González III',NULL,NULL,'Rosario','','González',0,0,0,0,0,0,NULL,'González, Rosario',NULL,NULL,NULL,'2',NULL,'3206727065',NULL,'Sample Data',3,4,NULL,NULL,1,NULL,'Dear Rosario',1,NULL,'Dear Rosario',1,NULL,'Mr. Rosario González III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (147,'Individual',NULL,'Ms. Eleonor Bachman',NULL,NULL,'Eleonor','','Bachman',1,0,0,0,0,0,NULL,'Bachman, Eleonor',NULL,NULL,NULL,'4',NULL,'711175679',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Eleonor',1,NULL,'Dear Eleonor',1,NULL,'Ms. Eleonor Bachman',NULL,1,'1975-10-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (148,'Individual',NULL,'Sanford Grant',NULL,NULL,'Sanford','','Grant',0,0,0,0,0,0,NULL,'Grant, Sanford',NULL,NULL,NULL,NULL,NULL,'27540077',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Sanford',1,NULL,'Dear Sanford',1,NULL,'Sanford Grant',NULL,2,'1974-02-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (149,'Household',NULL,'Wattson family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Wattson family',NULL,NULL,NULL,'4',NULL,'2851339192',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Wattson family',5,NULL,'Dear Wattson family',2,NULL,'Wattson family',NULL,NULL,NULL,0,NULL,'Wattson family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (150,'Individual',NULL,'Jed Dimitrov-ÅÄ…chowski Jr.',NULL,NULL,'Jed','Q','Dimitrov-ÅÄ…chowski',0,0,0,0,1,0,NULL,'Dimitrov-ÅÄ…chowski, Jed',NULL,NULL,NULL,'5',NULL,'702730648',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Jed',1,NULL,'Dear Jed',1,NULL,'Jed Dimitrov-ÅÄ…chowski Jr.',NULL,2,'2012-05-12',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (151,'Individual',NULL,'Errol Müller Jr.',NULL,NULL,'Errol','','Müller',0,0,0,0,0,0,NULL,'Müller, Errol',NULL,NULL,NULL,'4',NULL,'807767976',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Errol Müller Jr.',NULL,2,'1968-06-01',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (152,'Organization',NULL,'Terre Haute Action Collective','Terre Haute Action Collective',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Terre Haute Action Collective',NULL,NULL,NULL,'5',NULL,'416209860',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Terre Haute Action Collective',NULL,NULL,NULL,0,NULL,NULL,26,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (153,'Organization',NULL,'Friends Health Services','Friends Health Services',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Friends Health Services',NULL,NULL,NULL,NULL,NULL,'2746682770',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Friends Health Services',NULL,NULL,NULL,0,NULL,NULL,82,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (154,'Individual',NULL,'Brent Terrell','Arkansas Literacy Partnership',NULL,'Brent','','Terrell',0,0,0,0,0,0,NULL,'Terrell, Brent',NULL,NULL,NULL,NULL,NULL,'2526832386',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Brent',1,NULL,'Dear Brent',1,NULL,'Brent Terrell',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,91,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (155,'Individual',NULL,'sk.prentice64@fakemail.co.uk',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'sk.prentice64@fakemail.co.uk',NULL,NULL,NULL,'2',NULL,'772869971',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear sk.prentice64@fakemail.co.uk',1,NULL,'Dear sk.prentice64@fakemail.co.uk',1,NULL,'sk.prentice64@fakemail.co.uk',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (156,'Household',NULL,'Terrell family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Terrell family',NULL,NULL,NULL,'4',NULL,'1136333121',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Terrell family',5,NULL,'Dear Terrell family',2,NULL,'Terrell family',NULL,NULL,NULL,0,NULL,'Terrell family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (157,'Organization',NULL,'Creative Health School','Creative Health School',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Creative Health School',NULL,NULL,NULL,NULL,NULL,'3971821012',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Creative Health School',NULL,NULL,NULL,0,NULL,NULL,172,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (158,'Individual',NULL,'Santina Jameson',NULL,NULL,'Santina','G','Jameson',0,0,0,0,1,0,NULL,'Jameson, Santina',NULL,NULL,NULL,NULL,NULL,'2989109013',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Santina',1,NULL,'Dear Santina',1,NULL,'Santina Jameson',NULL,1,'1995-01-03',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (159,'Individual',NULL,'Bernadette Terry',NULL,NULL,'Bernadette','','Terry',1,0,0,0,0,0,NULL,'Terry, Bernadette',NULL,NULL,NULL,NULL,NULL,'2401458356',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Bernadette Terry',NULL,1,'1968-09-27',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (160,'Individual',NULL,'Dr. Carlos Patel',NULL,NULL,'Carlos','','Patel',0,0,0,0,0,0,NULL,'Patel, Carlos',NULL,NULL,NULL,NULL,NULL,'2432936038',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Dr. Carlos Patel',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (161,'Household',NULL,'Dimitrov family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Dimitrov family',NULL,NULL,NULL,NULL,NULL,'3351288571',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Dimitrov family',5,NULL,'Dear Dimitrov family',2,NULL,'Dimitrov family',NULL,NULL,NULL,0,NULL,'Dimitrov family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (162,'Individual',NULL,'Josefa Dimitrov',NULL,NULL,'Josefa','X','Dimitrov',0,0,0,0,1,0,NULL,'Dimitrov, Josefa',NULL,NULL,NULL,NULL,NULL,'1492067390',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Josefa',1,NULL,'Dear Josefa',1,NULL,'Josefa Dimitrov',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (163,'Individual',NULL,'Jackson Wattson Sr.',NULL,NULL,'Jackson','T','Wattson',1,1,0,0,0,0,NULL,'Wattson, Jackson',NULL,NULL,NULL,'5',NULL,'1720434610',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Jackson Wattson Sr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (164,'Individual',NULL,'Lawerence Bachman',NULL,NULL,'Lawerence','','Bachman',0,0,0,0,0,0,NULL,'Bachman, Lawerence',NULL,NULL,NULL,NULL,NULL,'2961144560',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Lawerence',1,NULL,'Dear Lawerence',1,NULL,'Lawerence Bachman',NULL,NULL,'1992-09-29',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (165,'Individual',NULL,'Bernadette Samson','Woodbridge Literacy Association',NULL,'Bernadette','','Samson',1,0,0,0,0,0,NULL,'Samson, Bernadette',NULL,NULL,NULL,'5',NULL,'1089960007',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Bernadette',1,NULL,'Dear Bernadette',1,NULL,'Bernadette Samson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,67,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (166,'Individual',NULL,'Dr. Landon Parker Sr.','Surveyor Development Services',NULL,'Landon','Y','Parker',1,0,0,0,0,0,NULL,'Parker, Landon',NULL,NULL,NULL,NULL,NULL,'372152677',NULL,'Sample Data',4,2,NULL,NULL,1,NULL,'Dear Landon',1,NULL,'Dear Landon',1,NULL,'Dr. Landon Parker Sr.',NULL,NULL,'1990-10-15',0,NULL,NULL,NULL,NULL,NULL,73,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (167,'Individual',NULL,'Juliann Parker',NULL,NULL,'Juliann','V','Parker',0,1,0,0,0,0,NULL,'Parker, Juliann',NULL,NULL,NULL,NULL,NULL,'1013304220',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Juliann',1,NULL,'Dear Juliann',1,NULL,'Juliann Parker',NULL,NULL,'1985-11-27',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (168,'Household',NULL,'Müller family',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Müller family',NULL,NULL,NULL,'2',NULL,'1144797465',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Müller family',5,NULL,'Dear Müller family',2,NULL,'Müller family',NULL,NULL,NULL,0,NULL,'Müller family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (169,'Organization',NULL,'Community Education Center','Community Education Center',NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'Community Education Center',NULL,NULL,NULL,NULL,NULL,'2848846788',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Community Education Center',NULL,NULL,NULL,0,NULL,NULL,183,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (170,'Individual',NULL,'Dr. Jackson Roberts',NULL,NULL,'Jackson','','Roberts',0,0,0,0,0,0,NULL,'Roberts, Jackson',NULL,NULL,NULL,NULL,NULL,'3261233132',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Jackson',1,NULL,'Dear Jackson',1,NULL,'Dr. Jackson Roberts',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (171,'Individual',NULL,'Daren Jensen Jr.',NULL,NULL,'Daren','','Jensen',0,0,0,0,1,0,NULL,'Jensen, Daren',NULL,NULL,NULL,'1',NULL,'817039458',NULL,'Sample Data',NULL,1,NULL,NULL,1,NULL,'Dear Daren',1,NULL,'Dear Daren',1,NULL,'Daren Jensen Jr.',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (172,'Individual',NULL,'Mr. Errol González','Creative Health School',NULL,'Errol','','González',0,0,0,0,0,0,NULL,'González, Errol',NULL,NULL,NULL,'4',NULL,'3063008863',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Errol',1,NULL,'Dear Errol',1,NULL,'Mr. Errol González',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,157,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (173,'Individual',NULL,'Kenny Jensen III',NULL,NULL,'Kenny','E','Jensen',1,0,0,0,0,0,NULL,'Jensen, Kenny',NULL,NULL,NULL,NULL,NULL,'1218055932',NULL,'Sample Data',NULL,4,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Kenny Jensen III',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (174,'Individual',NULL,'Jacob Parker II',NULL,NULL,'Jacob','','Parker',0,0,0,0,0,0,NULL,'Parker, Jacob',NULL,NULL,NULL,NULL,NULL,'1474401042',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Parker II',NULL,2,'1935-07-17',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (175,'Individual',NULL,'lareej@fakemail.co.in',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'lareej@fakemail.co.in',NULL,NULL,NULL,'3',NULL,'1330731483',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear lareej@fakemail.co.in',1,NULL,'Dear lareej@fakemail.co.in',1,NULL,'lareej@fakemail.co.in',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (176,'Individual',NULL,'Carlos Adams-DÃaz',NULL,NULL,'Carlos','','Adams-DÃaz',0,1,0,0,0,0,NULL,'Adams-DÃaz, Carlos',NULL,NULL,NULL,NULL,NULL,'3645969436',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Carlos',1,NULL,'Dear Carlos',1,NULL,'Carlos Adams-DÃaz',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (177,'Organization',NULL,'Local Poetry Association','Local Poetry Association',NULL,NULL,NULL,NULL,1,1,0,0,0,0,NULL,'Local Poetry Association',NULL,NULL,NULL,NULL,NULL,'3261821491',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Local Poetry Association',NULL,NULL,NULL,0,NULL,NULL,50,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (178,'Individual',NULL,'Mr. Ray Roberts',NULL,NULL,'Ray','C','Roberts',0,1,0,0,0,0,NULL,'Roberts, Ray',NULL,NULL,NULL,'4',NULL,'1321167237',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear Ray',1,NULL,'Dear Ray',1,NULL,'Mr. Ray Roberts',NULL,NULL,'1960-11-02',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (179,'Individual',NULL,'kaceymller@mymail.co.pl',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'kaceymller@mymail.co.pl',NULL,NULL,NULL,'4',NULL,'1097671879',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear kaceymller@mymail.co.pl',1,NULL,'Dear kaceymller@mymail.co.pl',1,NULL,'kaceymller@mymail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (180,'Individual',NULL,'Jerome Jensen',NULL,NULL,'Jerome','S','Jensen',0,0,0,0,0,0,NULL,'Jensen, Jerome',NULL,NULL,NULL,'3',NULL,'2774980739',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Jerome',1,NULL,'Dear Jerome',1,NULL,'Jerome Jensen',NULL,2,'1944-11-04',1,'2022-10-19',NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (181,'Individual',NULL,'Dr. Ashlie ÅÄ…chowski',NULL,NULL,'Ashlie','A','ÅÄ…chowski',0,1,0,0,0,0,NULL,'ÅÄ…chowski, Ashlie',NULL,NULL,NULL,'4',NULL,'3338606881',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Dr. Ashlie ÅÄ…chowski',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (182,'Individual',NULL,'Mrs. Sharyn DÃaz',NULL,NULL,'Sharyn','M','DÃaz',0,0,0,0,1,0,NULL,'DÃaz, Sharyn',NULL,NULL,NULL,NULL,NULL,'4129279229',NULL,'Sample Data',1,NULL,NULL,NULL,1,NULL,'Dear Sharyn',1,NULL,'Dear Sharyn',1,NULL,'Mrs. Sharyn DÃaz',NULL,1,'1973-01-07',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (183,'Individual',NULL,'iz.cooper@fakemail.co.pl','Community Education Center',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'iz.cooper@fakemail.co.pl',NULL,NULL,NULL,'2',NULL,'3574521128',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear iz.cooper@fakemail.co.pl',1,NULL,'Dear iz.cooper@fakemail.co.pl',1,NULL,'iz.cooper@fakemail.co.pl',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,169,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (184,'Individual',NULL,'Kenny Samuels II',NULL,NULL,'Kenny','U','Samuels',1,0,0,0,0,0,NULL,'Samuels, Kenny',NULL,NULL,NULL,'1',NULL,'1946058198',NULL,'Sample Data',NULL,3,NULL,NULL,1,NULL,'Dear Kenny',1,NULL,'Dear Kenny',1,NULL,'Kenny Samuels II',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (185,'Individual',NULL,'Princess Müller',NULL,NULL,'Princess','J','Müller',0,1,0,0,0,0,NULL,'Müller, Princess',NULL,NULL,NULL,'1',NULL,'1686008496',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Princess',1,NULL,'Dear Princess',1,NULL,'Princess Müller',NULL,1,'1990-04-03',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (186,'Individual',NULL,'Elina Grant',NULL,NULL,'Elina','Y','Grant',0,0,0,0,0,0,NULL,'Grant, Elina',NULL,NULL,NULL,'5',NULL,'1935800100',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Elina',1,NULL,'Dear Elina',1,NULL,'Elina Grant',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (187,'Individual',NULL,'brentr@testing.net',NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'brentr@testing.net',NULL,NULL,NULL,NULL,NULL,'307506130',NULL,'Sample Data',3,NULL,NULL,NULL,1,NULL,'Dear brentr@testing.net',1,NULL,'Dear brentr@testing.net',1,NULL,'brentr@testing.net',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (188,'Organization',NULL,'Dowlen Education Collective','Dowlen Education Collective',NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Dowlen Education Collective',NULL,NULL,NULL,NULL,NULL,'4183720313',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Dowlen Education Collective',NULL,NULL,NULL,0,NULL,NULL,121,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (189,'Individual',NULL,'wilsonc98@spamalot.com',NULL,NULL,NULL,NULL,NULL,0,0,0,0,1,0,NULL,'wilsonc98@spamalot.com',NULL,NULL,NULL,NULL,NULL,'873744776',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear wilsonc98@spamalot.com',1,NULL,'Dear wilsonc98@spamalot.com',1,NULL,'wilsonc98@spamalot.com',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (190,'Individual',NULL,'Ms. Ashlie Barkley',NULL,NULL,'Ashlie','H','Barkley',0,0,0,0,1,0,NULL,'Barkley, Ashlie',NULL,NULL,NULL,'4',NULL,'1002355994',NULL,'Sample Data',2,NULL,NULL,NULL,1,NULL,'Dear Ashlie',1,NULL,'Dear Ashlie',1,NULL,'Ms. Ashlie Barkley',NULL,1,'1936-08-05',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (191,'Individual',NULL,'Teddy Bachman',NULL,NULL,'Teddy','I','Bachman',1,0,0,0,1,0,NULL,'Bachman, Teddy',NULL,NULL,NULL,'3',NULL,'352195656',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Teddy',1,NULL,'Dear Teddy',1,NULL,'Teddy Bachman',NULL,2,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (192,'Individual',NULL,'Rodrigo Nielsen',NULL,NULL,'Rodrigo','G','Nielsen',0,0,0,0,1,0,NULL,'Nielsen, Rodrigo',NULL,NULL,NULL,NULL,NULL,'976050360',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Nielsen',NULL,2,'1943-12-02',1,'2023-07-07',NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (193,'Organization',NULL,'Beech Action Systems','Beech Action Systems',NULL,NULL,NULL,NULL,0,0,0,0,0,0,NULL,'Beech Action Systems',NULL,NULL,NULL,'2',NULL,'1495349270',NULL,'Sample Data',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,3,NULL,'Beech Action Systems',NULL,NULL,NULL,0,NULL,NULL,28,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (194,'Individual',NULL,'Megan Jones-Jameson',NULL,NULL,'Megan','','Jones-Jameson',0,1,0,0,1,0,NULL,'Jones-Jameson, Megan',NULL,NULL,NULL,'5',NULL,'183304244',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Megan',1,NULL,'Dear Megan',1,NULL,'Megan Jones-Jameson',NULL,1,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (195,'Individual',NULL,'Dr. Maxwell Zope Jr.',NULL,NULL,'Maxwell','G','Zope',0,1,0,0,0,0,NULL,'Zope, Maxwell',NULL,NULL,NULL,NULL,NULL,'676762100',NULL,'Sample Data',4,1,NULL,NULL,1,NULL,'Dear Maxwell',1,NULL,'Dear Maxwell',1,NULL,'Dr. Maxwell Zope Jr.',NULL,2,'1978-07-14',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (196,'Individual',NULL,'Dr. Margaret Terrell',NULL,NULL,'Margaret','Y','Terrell',1,1,0,0,0,0,NULL,'Terrell, Margaret',NULL,NULL,NULL,NULL,NULL,'3427129884',NULL,'Sample Data',4,NULL,NULL,NULL,1,NULL,'Dear Margaret',1,NULL,'Dear Margaret',1,NULL,'Dr. Margaret Terrell',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (197,'Individual',NULL,'Jacob Müller Sr.',NULL,NULL,'Jacob','','Müller',1,1,0,0,0,0,NULL,'Müller, Jacob',NULL,NULL,NULL,'2',NULL,'176489544',NULL,'Sample Data',NULL,2,NULL,NULL,1,NULL,'Dear Jacob',1,NULL,'Dear Jacob',1,NULL,'Jacob Müller Sr.',NULL,NULL,'2012-08-30',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (198,'Individual',NULL,'BrzÄ™czysÅ‚aw Barkley',NULL,NULL,'BrzÄ™czysÅ‚aw','K','Barkley',1,1,0,0,0,0,NULL,'Barkley, BrzÄ™czysÅ‚aw',NULL,NULL,NULL,'2',NULL,'2169122499',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'Dear BrzÄ™czysÅ‚aw',1,NULL,'BrzÄ™czysÅ‚aw Barkley',NULL,2,'1937-10-11',0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (199,'Individual',NULL,'Rodrigo Jensen',NULL,NULL,'Rodrigo','','Jensen',0,1,0,0,0,0,NULL,'Jensen, Rodrigo',NULL,NULL,NULL,'4',NULL,'4133351927',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Rodrigo',1,NULL,'Dear Rodrigo',1,NULL,'Rodrigo Jensen',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (200,'Individual',NULL,'Rebekah Samuels',NULL,NULL,'Rebekah','A','Samuels',1,0,0,0,1,0,NULL,'Samuels, Rebekah',NULL,NULL,NULL,NULL,NULL,'2023061910',NULL,'Sample Data',NULL,NULL,NULL,NULL,1,NULL,'Dear Rebekah',1,NULL,'Dear Rebekah',1,NULL,'Rebekah Samuels',NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:16','Both'), + (201,'Household',NULL,'Jensen family',NULL,NULL,NULL,NULL,NULL,0,1,0,0,0,0,NULL,'Jensen family',NULL,NULL,NULL,'1',NULL,'797435572',NULL,'Sample Data',NULL,NULL,NULL,NULL,5,NULL,'Dear Jensen family',5,NULL,'Dear Jensen family',2,NULL,'Jensen family',NULL,NULL,NULL,0,NULL,'Jensen family',NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:16','2023-09-06 22:52:17','Both'), + (202,'Individual',NULL,'Jenny Lee',NULL,NULL,'Jenny',NULL,'Lee',0,0,0,0,0,0,NULL,'Lee, Jenny',NULL,NULL,NULL,NULL,'en_US','3dfdac7ea62842e59902c0e6d697c926',NULL,NULL,NULL,NULL,NULL,1,1,NULL,'Dear Jenny',1,NULL,'Dear Jenny',1,NULL,'Jenny Lee','Volunteer coordinator',NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,0,'2023-09-06 22:52:18','2023-09-06 22:52:18','Both'); /*!40000 ALTER TABLE `civicrm_contact` ENABLE KEYS */; UNLOCK TABLES; @@ -2221,117 +2217,117 @@ UNLOCK TABLES; LOCK TABLES `civicrm_contribution` WRITE; /*!40000 ALTER TABLE `civicrm_contribution` DISABLE KEYS */; INSERT INTO `civicrm_contribution` (`id`, `contact_id`, `financial_type_id`, `contribution_page_id`, `payment_instrument_id`, `receive_date`, `non_deductible_amount`, `total_amount`, `fee_amount`, `net_amount`, `trxn_id`, `invoice_id`, `invoice_number`, `currency`, `cancel_date`, `cancel_reason`, `receipt_date`, `thankyou_date`, `source`, `amount_level`, `contribution_recur_id`, `is_test`, `is_pay_later`, `contribution_status_id`, `address_id`, `check_number`, `campaign_id`, `creditnote_id`, `tax_amount`, `revenue_recognition_date`, `is_template`) VALUES - (1,2,1,NULL,4,'2013-09-07 08:14:03',0.00,125.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'1041',NULL,NULL,NULL,NULL,0), - (2,4,1,NULL,1,'2021-06-07 08:14:03',0.00,50.00,NULL,NULL,'P20901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (3,6,1,NULL,4,'2017-08-12 19:14:03',0.00,25.00,NULL,NULL,'GBP12',NULL,NULL,'GBP',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'2095',NULL,NULL,NULL,NULL,0), - (4,8,1,NULL,4,'2021-06-07 08:14:03',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'10552',NULL,NULL,NULL,NULL,0), - (5,4,1,NULL,1,'2021-06-07 08:14:03',0.00,50.00,NULL,NULL,'Q90901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (6,16,1,NULL,4,'2023-06-14 07:32:03',0.00,500.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'509',NULL,NULL,NULL,NULL,0), - (7,19,1,NULL,1,'2023-09-05 08:14:03',0.00,1750.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'102',NULL,NULL,NULL,NULL,0), - (8,82,1,NULL,1,'2023-01-13 16:25:03',0.00,50.00,NULL,NULL,'P20193L2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (9,92,1,NULL,1,'2022-10-07 08:14:03',0.00,10.00,NULL,NULL,'P40232Y3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (10,34,1,NULL,1,'2019-04-14 10:14:03',0.00,250.00,NULL,NULL,'P20193L6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (11,71,1,NULL,1,'2023-09-06 04:14:03',0.00,500.00,NULL,NULL,'PL71',NULL,NULL,'JPY',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (12,43,1,NULL,1,'2022-06-06 21:40:43',0.00,50.00,NULL,NULL,'P291X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (13,32,1,NULL,1,'2023-06-07 00:00:00',0.00,50.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (14,32,1,NULL,1,'2023-07-07 00:00:00',0.00,50.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (15,59,1,NULL,1,'2022-06-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I591',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (16,59,1,NULL,1,'2022-07-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I592',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (17,59,1,NULL,1,'2022-08-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I593',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (18,59,1,NULL,1,'2022-09-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I594',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (19,59,1,NULL,1,'2022-10-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I595',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (20,59,1,NULL,1,'2022-11-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I596',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (21,59,1,NULL,1,'2022-12-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I597',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (22,59,1,NULL,1,'2023-01-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I598',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (23,59,1,NULL,1,'2023-02-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I599',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (24,59,1,NULL,1,'2023-03-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I5910',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (25,59,1,NULL,1,'2023-04-07 08:14:03',0.00,25.00,NULL,NULL,'PL32I5911',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (26,99,1,NULL,1,'2023-01-07 08:14:03',0.00,10.00,NULL,NULL,'PL32I991',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (27,99,1,NULL,1,'2023-02-07 08:14:03',0.00,10.00,NULL,NULL,'PL32I992',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (28,99,1,NULL,1,'2023-03-07 08:14:03',0.00,10.00,NULL,NULL,'PL32I993',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (29,99,1,NULL,1,'2023-04-07 08:14:03',0.00,10.00,NULL,NULL,'PL32I994',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (30,99,1,NULL,1,'2023-05-07 08:14:03',0.00,10.00,NULL,NULL,'PL32I995',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (31,103,1,NULL,1,'2023-08-07 08:14:03',0.00,5.00,NULL,NULL,'PL32I1031',NULL,NULL,'EUR',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,3,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (32,134,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'64513c6b182dd113',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (33,193,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'c5a3302fcb3e2b0d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (34,130,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'09ee74f9ecb823ec',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (35,154,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'d3f9b7e3a0f32567',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (36,23,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'0b8a02400a70bc02',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (37,17,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'7b5542f56c10cf47',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (38,169,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'4ce9aedf1f234da0',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (39,162,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'43e8695c96d705be',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (40,187,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'512b3d1dc8a5f445',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (41,55,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'74f30aa71ec48b62',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (42,145,2,NULL,1,'2023-09-07 08:14:03',0.00,1200.00,NULL,NULL,'59eae501e7d56e51',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (43,190,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'7e3b938ada287d13',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (44,82,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'eb95fb812af107b4',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (45,70,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'010bb9d39ae6a543',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (46,194,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'0f5727c4f2fba19d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (47,114,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'df652d2ee2efed9a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (48,165,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'627c915408145f96',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (49,44,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'723ef4f1b30eec0d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (50,33,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'e42e6b0e9e4db574',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (51,151,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'6152710332f36ae2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (52,131,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'f664fee8723012b3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (53,72,2,NULL,1,'2023-09-07 08:14:03',0.00,1200.00,NULL,NULL,'7df84e94209fc3c8',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (54,122,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'486111c13c141599',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (55,111,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'cf32704c35ebc613',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (56,11,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'8219ebeba14e643a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (57,97,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'60817723ca94ab56',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (58,191,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'9327cb33c0c0dea3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (59,91,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'93b36441cf4b0a54',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (60,90,2,NULL,1,'2023-09-07 08:14:03',0.00,100.00,NULL,NULL,'b6fe67eaec8fe919',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (61,200,2,NULL,1,'2023-09-07 08:14:03',0.00,50.00,NULL,NULL,'ec602fce6cc9def0',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (63,160,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'0282223cd697c327',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (64,52,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'de1c401ec81388ef',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (65,13,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'325d6dc39b8f23aa',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (66,135,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'a793a37b727b4d6b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (67,105,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'81a32d48faca3c52',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (68,182,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'3fa31226078ab28d',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (69,154,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'bf30d04b0d0e4579',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (70,98,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'fb3d8c3560407846',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (71,127,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'5bf0c054a3c6738b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (72,168,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'01ecfdb055ee1f7f',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (73,149,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'ee05e52900771408',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (74,80,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'f3b2b4e17cec608b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (75,6,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'34f755c2672bbf29',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (76,40,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'f98e8385f4424e2b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (77,122,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'d07e620ed65884f5',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (78,7,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'a15ce82b4e4ff9fb',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (79,86,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'831fe88311326c59',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (80,177,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'a550b48b852dbd89',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (81,78,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'364dde884027a52b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (82,32,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'0337f0d5f0d0a860',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (83,178,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'f67aba800bcacc50',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (84,88,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'d50d7d7b6708bc3f',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (85,90,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'135f5d79c9f28d4f',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (86,128,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'dd62e9f8e6d401e2',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (87,171,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'5ef0258b063c9ad9',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (88,183,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'8a32de8f5c050637',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (89,132,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'2cc0ccfa0d26ea3d',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (90,70,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'b3c10539a416b64a',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (91,99,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'b81deee06e40e758',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (92,106,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'5fe1503cda9e48f0',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (93,112,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'4ae4ebe7d483f5b6',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (94,161,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'47a7606f17fa5b53',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (95,189,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'71ac264db2075be3',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (96,145,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'bc8675814a2d0d62',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (97,95,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'e09221a89baaa665',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (98,35,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'b9aeec333cbd58be',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (99,66,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'8f88be0e4578e656',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (100,190,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'9563cfbdebfd9ffd',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (101,23,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'d8ed5eb7553d6771',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (102,91,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'1d03defa293ebc5b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (103,174,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'4e6045f8f6292323',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (104,101,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'092ce1dc2fde4d80',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (105,64,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'14b57c53021522cb',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (106,146,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'b1775049dab40826',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (107,63,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'ad5f81f6741c976b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (108,153,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'72935daddbe81c24',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (109,176,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'2f861f1eab4a68d0',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (110,188,4,NULL,1,'2023-09-07 08:14:04',0.00,50.00,NULL,NULL,'88fd57e0394cf9fe',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (111,139,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'a719351eb2134647',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0), - (112,103,4,NULL,1,'2023-09-07 08:14:04',0.00,800.00,NULL,NULL,'7f6bdc42de380f23',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:14:04',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL,NULL,0); + (1,2,1,NULL,4,'2013-09-07 08:52:20',0.00,125.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'1041',NULL,NULL,0.00,NULL,0), + (2,4,1,NULL,1,'2021-06-07 08:52:20',0.00,50.00,NULL,NULL,'P20901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (3,6,1,NULL,4,'2017-08-12 19:52:20',0.00,25.00,NULL,NULL,'GBP12',NULL,NULL,'GBP',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'2095',NULL,NULL,0.00,NULL,0), + (4,8,1,NULL,4,'2021-06-07 08:52:20',0.00,50.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'10552',NULL,NULL,0.00,NULL,0), + (5,4,1,NULL,1,'2021-06-07 08:52:20',0.00,50.00,NULL,NULL,'Q90901X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (6,16,1,NULL,4,'2023-06-14 08:10:20',0.00,500.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'April Mailer 1',NULL,NULL,0,0,1,NULL,'509',NULL,NULL,0.00,NULL,0), + (7,19,1,NULL,1,'2023-09-05 08:52:20',0.00,1750.00,NULL,NULL,NULL,NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,'102',NULL,NULL,0.00,NULL,0), + (8,82,1,NULL,1,'2023-01-13 17:03:20',0.00,50.00,NULL,NULL,'P20193L2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (9,92,1,NULL,1,'2022-10-07 08:52:20',0.00,10.00,NULL,NULL,'P40232Y3',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (10,34,1,NULL,1,'2019-04-14 10:52:20',0.00,250.00,NULL,NULL,'P20193L6',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Help CiviCRM',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (11,71,1,NULL,1,'2023-09-06 04:52:20',0.00,500.00,NULL,NULL,'PL71',NULL,NULL,'JPY',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (12,43,1,NULL,1,'2022-06-06 22:19:00',0.00,50.00,NULL,NULL,'P291X1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Online: Save the Penguins',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (13,32,1,NULL,1,'2023-06-07 00:00:00',0.00,50.00,NULL,NULL,'PL32I',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (14,32,1,NULL,1,'2023-07-07 00:00:00',0.00,50.00,NULL,NULL,'PL32II',NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (15,59,1,NULL,1,'2022-06-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I591',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (16,59,1,NULL,1,'2022-07-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I592',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (17,59,1,NULL,1,'2022-08-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I593',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (18,59,1,NULL,1,'2022-09-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I594',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (19,59,1,NULL,1,'2022-10-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I595',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (20,59,1,NULL,1,'2022-11-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I596',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (21,59,1,NULL,1,'2022-12-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I597',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (22,59,1,NULL,1,'2023-01-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I598',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (23,59,1,NULL,1,'2023-02-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I599',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (24,59,1,NULL,1,'2023-03-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I5910',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (25,59,1,NULL,1,'2023-04-07 08:52:20',0.00,25.00,NULL,NULL,'PL32I5911',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,1,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (26,99,1,NULL,1,'2023-01-07 08:52:20',0.00,10.00,NULL,NULL,'PL32I991',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (27,99,1,NULL,1,'2023-02-07 08:52:20',0.00,10.00,NULL,NULL,'PL32I992',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (28,99,1,NULL,1,'2023-03-07 08:52:20',0.00,10.00,NULL,NULL,'PL32I993',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (29,99,1,NULL,1,'2023-04-07 08:52:20',0.00,10.00,NULL,NULL,'PL32I994',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (30,99,1,NULL,1,'2023-05-07 08:52:20',0.00,10.00,NULL,NULL,'PL32I995',NULL,NULL,'CAD',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,2,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (31,103,1,NULL,1,'2023-08-07 08:52:20',0.00,5.00,NULL,NULL,'PL32I1031',NULL,NULL,'EUR',NULL,NULL,NULL,NULL,'Recurring contribution',NULL,3,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (32,11,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'f35f748912345b9a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (33,33,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'738f047c3933ff17',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (34,75,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'dd391b553f4f7037',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (35,16,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'b4662a764f39f413',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (36,107,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'2da4195398db1ae0',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (37,141,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'147d7e7900ea9163',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (38,50,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'8cf4116bdebff877',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (39,88,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'62009b8346478628',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (40,154,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'20ab7ccf151901d9',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (41,174,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'e13a915046d57644',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (42,8,2,NULL,1,'2023-09-07 08:52:20',0.00,1200.00,NULL,NULL,'0892a3502e515853',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (43,36,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'94888675227342d8',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (44,44,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'298a429ada534815',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (45,37,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'c3a01540d471682a',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (46,197,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'192bd422f162a438',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (47,117,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'2bcacb63fbdd6c7e',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (48,15,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'4a15317962a69a81',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (49,69,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'352e858c7b02b0db',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (50,26,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'c549161b722ae0e2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (51,196,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'b0b1c5a7c9f648ea',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (52,42,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'7702196e43a3e0bd',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (53,150,2,NULL,1,'2023-09-07 08:52:20',0.00,1200.00,NULL,NULL,'67949dd99a2da188',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Lifetime Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (54,7,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'f694cbe423ce5eb1',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (55,198,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'78e6fd67eb8c1988',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (56,186,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'1d0c36f4ec1a8c97',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (57,140,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'d0736a30cccfd4d2',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (58,163,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'d5148071d9a8be10',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (59,121,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'074c387c1b91896d',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (60,162,2,NULL,1,'2023-09-07 08:52:20',0.00,100.00,NULL,NULL,'6ca3e34d81c40b8c',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'General Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (61,202,2,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'1aa0e1ab9c39369e',NULL,NULL,'USD',NULL,NULL,NULL,NULL,'Student Membership: Offline signup',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (63,102,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'79c783e5ae59fa0f',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (64,181,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'4965afacf35fbeb7',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (65,184,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'ae656e5ff51eebca',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (66,119,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'f5b612106db16c15',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (67,123,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'e1b3816831d52eba',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (68,88,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'7815807a33652156',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (69,149,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'b701d89308b0dc75',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (70,137,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'3932cb472bbe4923',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (71,56,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'fc388eeb07a269da',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (72,153,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'d38d992b9d596f66',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (73,47,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'39ca5190991329ec',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (74,133,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'f1f08848f07f7972',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (75,29,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'8c55cda559f74822',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (76,43,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'fff2347b446d8133',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (77,145,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'e15f7530fcfe0c49',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (78,194,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'c1ab79895d394891',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (79,142,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'84321fe483b3a002',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (80,63,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'f2d8d1ef5ab09c03',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (81,92,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'0b70d01281d94174',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (82,91,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'287d120bec064cfc',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (83,132,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'0798a94b9b3fcea8',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (84,38,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'e41605930d1c3179',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (85,76,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'1d5c72a7ba1ab008',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (86,174,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'c6dded079f482f42',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (87,3,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'8ab94d8353ac55f7',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (88,167,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'859374cc5860dd44',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (89,170,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'b4da6cbb44ed18e2',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (90,128,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'7937bcc6b55ee936',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (91,9,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'05e1df46874a0aa9',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (92,94,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'96809d2b209570b6',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (93,186,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'95b6f8aaf69ff40b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (94,178,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'d0c30ff7377ab5de',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (95,127,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'74bac1d50ecee85d',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (96,177,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'4dd65030b75bc608',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (97,90,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'a8bc4bbb21ddadbd',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (98,159,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'3c7cd46f0bf3348b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (99,195,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'03ed936885020f0d',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (100,151,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'1a8ffab23ccff9f5',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (101,131,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'87c4eb44a576dbbf',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (102,104,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'5d9f0f0c6e602361',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (103,161,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'9fd3e5c674b24e6d',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (104,11,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'114039dd0b31e601',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (105,115,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'f6faa89eb9fc1e2e',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (106,50,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'e1856457692f0c1e',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (107,199,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'5ec3c525c53e3d83',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (108,37,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'868dc65a6102069e',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (109,42,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'fe3e6113a8559c6c',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Fall Fundraiser Dinner : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (110,68,4,NULL,1,'2023-09-07 08:52:20',0.00,50.00,NULL,NULL,'7f5ef93011b78e2b',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Summer Solstice Festival Day Concert : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (111,2,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'5589f478beddc83c',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0), + (112,193,4,NULL,1,'2023-09-07 08:52:20',0.00,800.00,NULL,NULL,'f9de548fc713fb79',NULL,NULL,'USD',NULL,NULL,'2023-09-07 08:52:20',NULL,'Rain-forest Cup Youth Soccer Tournament : Offline registration',NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,0.00,NULL,0); /*!40000 ALTER TABLE `civicrm_contribution` ENABLE KEYS */; UNLOCK TABLES; @@ -2364,9 +2360,9 @@ UNLOCK TABLES; LOCK TABLES `civicrm_contribution_recur` WRITE; /*!40000 ALTER TABLE `civicrm_contribution_recur` DISABLE KEYS */; INSERT INTO `civicrm_contribution_recur` (`id`, `contact_id`, `amount`, `currency`, `frequency_unit`, `frequency_interval`, `installments`, `start_date`, `create_date`, `modified_date`, `cancel_date`, `cancel_reason`, `end_date`, `processor_id`, `payment_token_id`, `trxn_id`, `invoice_id`, `contribution_status_id`, `is_test`, `cycle_day`, `next_sched_contribution_date`, `failure_count`, `failure_retry_date`, `auto_renew`, `payment_processor_id`, `financial_type_id`, `payment_instrument_id`, `campaign_id`, `is_email_receipt`) VALUES - (1,59,25.00,'USD','month',1,12,'2022-06-07 08:14:03','2023-09-07 08:14:03','2023-09-06 22:14:03',NULL,'',NULL,'CLC45',NULL,'56799',NULL,1,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1), - (2,99,10.00,'CAD','month',1,6,'2023-01-07 08:14:03','2023-09-07 08:14:03','2023-09-06 22:14:03','2023-08-07 08:14:03','No longer interested',NULL,'CLR35',NULL,'22799',NULL,3,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1), - (3,103,5.00,'EUR','month',3,3,'2023-08-07 08:14:03','2023-09-07 08:14:03','2023-09-06 22:14:03',NULL,'',NULL,'EGR12',NULL,'44889',NULL,5,0,1,'2023-11-07 08:14:03',0,NULL,0,1,NULL,NULL,NULL,1); + (1,59,25.00,'USD','month',1,12,'2022-06-07 08:52:20','2023-09-07 08:52:20','2023-09-06 22:52:20',NULL,'',NULL,'CLC45',NULL,'56799',NULL,1,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1), + (2,99,10.00,'CAD','month',1,6,'2023-01-07 08:52:20','2023-09-07 08:52:20','2023-09-06 22:52:20','2023-08-07 08:52:20','No longer interested',NULL,'CLR35',NULL,'22799',NULL,3,0,1,NULL,0,NULL,0,1,NULL,NULL,NULL,1), + (3,103,5.00,'EUR','month',3,3,'2023-08-07 08:52:20','2023-09-07 08:52:20','2023-09-06 22:52:20',NULL,'',NULL,'EGR12',NULL,'44889',NULL,5,0,1,'2023-11-07 08:52:20',0,NULL,0,1,NULL,NULL,NULL,1); /*!40000 ALTER TABLE `civicrm_contribution_recur` ENABLE KEYS */; UNLOCK TABLES; @@ -2377,8 +2373,8 @@ UNLOCK TABLES; LOCK TABLES `civicrm_contribution_soft` WRITE; /*!40000 ALTER TABLE `civicrm_contribution_soft` DISABLE KEYS */; INSERT INTO `civicrm_contribution_soft` (`id`, `contribution_id`, `contact_id`, `amount`, `currency`, `pcp_id`, `pcp_display_in_roll`, `pcp_roll_nickname`, `pcp_personal_note`, `soft_credit_type_id`) VALUES - (1,9,117,10.00,'USD',1,1,'Jones Family','Helping Hands',10), - (2,10,117,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10); + (1,9,171,10.00,'USD',1,1,'Jones Family','Helping Hands',10), + (2,10,171,250.00,'USD',1,1,'Annie and the kids','Annie Helps',10); /*!40000 ALTER TABLE `civicrm_contribution_soft` ENABLE KEYS */; UNLOCK TABLES; @@ -2976,7 +2972,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_domain` WRITE; /*!40000 ALTER TABLE `civicrm_domain` DISABLE KEYS */; INSERT INTO `civicrm_domain` (`id`, `name`, `description`, `version`, `contact_id`, `locales`, `locale_custom_strings`) VALUES - (1,'Default Domain Name',NULL,'5.65.2',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); + (1,'Default Domain Name',NULL,'5.66.0',1,NULL,'a:1:{s:5:\"en_US\";a:0:{}}'); /*!40000 ALTER TABLE `civicrm_domain` ENABLE KEYS */; UNLOCK TABLES; @@ -2988,215 +2984,198 @@ LOCK TABLES `civicrm_email` WRITE; /*!40000 ALTER TABLE `civicrm_email` DISABLE KEYS */; INSERT INTO `civicrm_email` (`id`, `contact_id`, `location_type_id`, `email`, `is_primary`, `is_billing`, `on_hold`, `is_bulkmail`, `hold_date`, `reset_date`, `signature_text`, `signature_html`) VALUES (1,1,1,'fixme.domainemail@example.org',1,0,0,0,NULL,NULL,NULL,NULL), - (2,24,1,'loubarkley@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL), - (3,24,1,'loub@airmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (4,134,1,'nicoles@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (5,88,1,'herminiag@example.com',1,0,0,0,NULL,NULL,NULL,NULL), - (6,117,1,'kp.cooper@spamalot.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (7,117,1,'kathleencooper@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (8,72,1,'bm.jameson95@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (9,72,1,'jameson.bernadette@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL), - (10,151,1,'bchowski@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL), - (11,151,1,'brentchowski81@airmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), - (12,143,1,'robertson.megan@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (13,13,1,'ivanov.t.sonny@sample.org',1,0,0,0,NULL,NULL,NULL,NULL), - (14,13,1,'ivanovs46@lol.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (15,141,1,'zope.n.erik25@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (16,141,1,'en.zope@example.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (17,78,1,'elinad91@infomail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (18,78,1,'elinadimitrov77@testing.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (19,128,1,'smith.sharyn75@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (20,128,1,'smith.a.sharyn85@fishmail.info',0,0,0,0,NULL,NULL,NULL,NULL), - (21,63,1,'yadav.andrew@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (22,63,1,'yadav.z.andrew59@testing.org',0,0,0,0,NULL,NULL,NULL,NULL), - (23,170,1,'margarety29@sample.net',1,0,0,0,NULL,NULL,NULL,NULL), - (24,86,1,'nielsen.megan27@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (25,15,1,'sr.barkley@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (26,108,1,'kennyz@spamalot.org',1,0,0,0,NULL,NULL,NULL,NULL), - (27,95,1,'rw.cruz22@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (28,131,1,'robertson.rosario@lol.info',1,0,0,0,NULL,NULL,NULL,NULL), - (29,131,1,'robertson.rosario@fishmail.net',0,0,0,0,NULL,NULL,NULL,NULL), - (30,46,1,'rl.terry@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (31,110,1,'yadave@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL), - (32,110,1,'yadave78@airmail.org',0,0,0,0,NULL,NULL,NULL,NULL), - (33,54,1,'wagner.princess22@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (34,54,1,'wagner.princess51@infomail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (35,23,1,'roberts.princess@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (36,23,1,'proberts@fishmail.org',0,0,0,0,NULL,NULL,NULL,NULL), - (37,96,1,'parker.teddy@fakemail.net',1,0,0,0,NULL,NULL,NULL,NULL), - (38,96,1,'teddyp@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (39,176,1,'barkley.rosario26@infomail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (40,123,1,'wattson.margaret14@infomail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (41,123,1,'wattsonm72@testmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (42,160,1,'achowski80@lol.info',1,0,0,0,NULL,NULL,NULL,NULL), - (43,190,1,'jays@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (44,190,1,'jz.samson@fakemail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), - (45,100,1,'yadavd68@sample.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (46,162,1,'ejameson@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (47,162,1,'jamesone@airmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (48,184,1,'robertson.delana@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (49,102,1,'megansmith@example.org',1,0,0,0,NULL,NULL,NULL,NULL), - (50,102,1,'smith.megan@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL), - (51,29,1,'juliannp86@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL), - (52,126,1,'wilson.allen15@sample.org',1,0,0,0,NULL,NULL,NULL,NULL), - (53,126,1,'wilson.allen@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (54,150,1,'terrell.lincoln38@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (55,150,1,'terrelll49@testing.info',0,0,0,0,NULL,NULL,NULL,NULL), - (56,137,1,'rolandadams22@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (57,137,1,'adams.roland@sample.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (58,136,1,'dg.daz@lol.net',1,0,0,0,NULL,NULL,NULL,NULL), - (59,136,1,'dazd54@sample.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (60,5,1,'awagner@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (61,5,1,'awagner@sample.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (62,17,1,'reynoldsd98@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (63,61,1,'barkleyj@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (64,61,1,'jo.barkley@notmail.net',0,0,0,0,NULL,NULL,NULL,NULL), - (65,145,1,'barkley.r.troy@example.com',1,0,0,0,NULL,NULL,NULL,NULL), - (66,34,1,'coopera@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (67,34,1,'acooper@notmail.org',0,0,0,0,NULL,NULL,NULL,NULL), - (68,173,1,'vt.daz91@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (69,173,1,'vt.daz@spamalot.info',0,0,0,0,NULL,NULL,NULL,NULL), - (70,84,1,'leec@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL), - (71,84,1,'carylonl@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (72,59,1,'smitha80@lol.com',1,0,0,0,NULL,NULL,NULL,NULL), - (73,59,1,'smith.alexia17@airmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (74,142,1,'ap.wattson40@testmail.org',1,0,0,0,NULL,NULL,NULL,NULL), - (75,142,1,'andreww@example.com',0,0,0,0,NULL,NULL,NULL,NULL), - (76,120,1,'chowski.elbert35@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (77,81,1,'wattson.sherman@mymail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (78,81,1,'shermanw@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (79,153,1,'adamsm89@fishmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (80,153,1,'madams43@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (81,109,1,'prenticee46@fishmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (82,30,1,'dazb94@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (83,149,1,'alexiabachman@example.net',1,0,0,0,NULL,NULL,NULL,NULL), - (84,106,1,'jacksonj@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL), - (85,106,1,'jensen.p.jackson8@fishmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (86,175,1,'wagneri@sample.info',1,0,0,0,NULL,NULL,NULL,NULL), - (87,27,1,'iveyreynolds@notmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (88,27,1,'reynolds.w.ivey@testing.net',0,0,0,0,NULL,NULL,NULL,NULL), - (89,35,1,'wattson.allen97@lol.net',1,0,0,0,NULL,NULL,NULL,NULL), - (90,35,1,'allenw@notmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (91,16,1,'fn.adams18@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (92,16,1,'adamsf@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), - (93,47,1,'oolsen19@testing.org',1,0,0,0,NULL,NULL,NULL,NULL), - (94,47,1,'olseno95@example.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (95,67,1,'bachmana80@example.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (96,112,1,'lawerenceprentice@sample.com',1,0,0,0,NULL,NULL,NULL,NULL), - (97,112,1,'prentice.lawerence@mymail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (98,194,1,'mcreynoldsb40@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (99,41,1,'rodrigoz81@fishmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (100,41,1,'rodrigoz70@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (101,43,1,'rodrigom@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (102,178,1,'barkleya92@infomail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (103,80,1,'nielsen-barkleyc@fishmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (104,80,1,'carlosn68@spamalot.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (105,172,1,'nielsen-barkley.c.barry52@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (106,172,1,'nielsen-barkley.barry60@testing.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (107,14,1,'ivanov-jamesonj80@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (108,14,1,'jivanov-jameson@mymail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (109,133,1,'wagner.p.santina@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (110,133,1,'wagner.p.santina@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL), - (111,58,1,'kiarawagner59@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (112,58,1,'kiarawagner14@example.net',0,0,0,0,NULL,NULL,NULL,NULL), - (113,21,1,'norriswagner@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (114,21,1,'wagner.norris79@airmail.org',0,0,0,0,NULL,NULL,NULL,NULL), - (115,195,1,'kandacewagner@fakemail.info',1,0,0,0,NULL,NULL,NULL,NULL), - (116,195,1,'wagnerk@example.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (117,187,1,'allenparker@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (118,187,1,'allenp@spamalot.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (119,192,1,'meganparker@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (120,90,1,'parker.roland@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (121,113,1,'norrisp@airmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (122,147,1,'jonesa@fakemail.org',1,0,0,0,NULL,NULL,NULL,NULL), - (123,147,1,'jonesa@lol.org',0,0,0,0,NULL,NULL,NULL,NULL), - (124,118,1,'jonesj89@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL), - (125,118,1,'jones.v.juliann@mymail.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (126,155,1,'princessjones@lol.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (127,161,1,'jacobs.lawerence@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (128,161,1,'jacobs.lawerence93@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (129,125,1,'lawerencer@testing.org',1,0,0,0,NULL,NULL,NULL,NULL), - (130,45,1,'elbertj59@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (131,69,1,'reynoldst54@testmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (132,64,1,'valener@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (133,20,1,'dimitrovt65@testing.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (134,20,1,'dimitrov.teddy80@infomail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (135,181,1,'margaretzope-dimitrov89@sample.net',1,0,0,0,NULL,NULL,NULL,NULL), - (136,181,1,'zope-dimitrovm@notmail.net',0,0,0,0,NULL,NULL,NULL,NULL), - (137,77,1,'dimitrov.t.rodrigo@infomail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (138,77,1,'rodrigodimitrov@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (139,191,1,'shaunad@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (140,191,1,'dimitrovs92@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (141,156,1,'jacobs.k.landon@sample.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (142,26,1,'roberts-jacobs.juliann@notmail.info',1,0,0,0,NULL,NULL,NULL,NULL), - (143,180,1,'jacobsn25@fishmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), - (144,91,1,'smith.princess68@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL), - (145,91,1,'princesssmith@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (146,3,1,'terry-smith.v.roland@infomail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (147,73,1,'terry-smith.s.kacey51@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (148,71,1,'dsmith@testmail.info',1,0,0,0,NULL,NULL,NULL,NULL), - (149,71,1,'smith.daren@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (150,139,1,'nielsenj@fakemail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), - (151,139,1,'jnielsen@lol.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), - (152,62,1,'kandaces@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (153,70,1,'jones.kathlyn@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (154,70,1,'jones.kathlyn41@testmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (155,32,1,'bsmith@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (156,75,1,'smithm@lol.net',1,0,0,0,NULL,NULL,NULL,NULL), - (157,75,1,'ma.smith94@spamalot.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), - (158,51,1,'wilson.elizabeth@sample.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (159,51,1,'wilsone66@fishmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (160,122,1,'wilsona@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (161,196,1,'erikw@sample.org',1,0,0,0,NULL,NULL,NULL,NULL), - (162,163,1,'el.smith@lol.net',1,0,0,0,NULL,NULL,NULL,NULL), - (163,44,1,'smith.j.esta43@notmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (164,44,1,'estas4@testing.com',0,0,0,0,NULL,NULL,NULL,NULL), - (165,166,1,'smithc@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), - (166,166,1,'smith.claudio@testmail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), - (167,107,1,'hdimitrov64@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (168,107,1,'herminiad24@airmail.biz',0,0,0,0,NULL,NULL,NULL,NULL), - (169,130,1,'edimitrov@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), - (170,130,1,'edimitrov6@fishmail.com',0,0,0,0,NULL,NULL,NULL,NULL), - (171,55,1,'samuels.c.brzczysaw74@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (172,55,1,'brzczysaws@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), - (173,28,1,'crobertson@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL), - (174,22,1,'jameson-barkley-robertsonm@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), - (175,193,1,'tv.barkley-robertson@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL), - (176,193,1,'tv.barkley-robertson@example.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), - (177,76,3,'sales@mlkinglegal.org',1,0,0,0,NULL,NULL,NULL,NULL), - (178,141,2,'zopee52@mlkinglegal.org',0,0,0,0,NULL,NULL,NULL,NULL), - (179,98,3,'sales@sierraartsalliance.org',1,0,0,0,NULL,NULL,NULL,NULL), - (180,40,2,'ln.jones45@sierraartsalliance.org',1,0,0,0,NULL,NULL,NULL,NULL), - (181,37,3,'info@statesartspartnership.org',1,0,0,0,NULL,NULL,NULL,NULL), - (182,110,2,'adams.valene@statesartspartnership.org',0,0,0,0,NULL,NULL,NULL,NULL), - (183,115,3,'sales@urbanadvocacyacademy.org',1,0,0,0,NULL,NULL,NULL,NULL), - (184,154,2,'prentices70@urbanadvocacyacademy.org',1,0,0,0,NULL,NULL,NULL,NULL), - (185,94,3,'sales@minnesotaadvocacy.org',1,0,0,0,NULL,NULL,NULL,NULL), - (186,100,2,'yadav.daren@minnesotaadvocacy.org',0,0,0,0,NULL,NULL,NULL,NULL), - (187,140,3,'service@unitedagriculture.org',1,0,0,0,NULL,NULL,NULL,NULL), - (188,96,2,'parkert@unitedagriculture.org',0,0,0,0,NULL,NULL,NULL,NULL), - (189,124,3,'feedback@mapleagriculturetrust.org',1,0,0,0,NULL,NULL,NULL,NULL), - (190,185,2,'zope.sanford@mapleagriculturetrust.org',1,0,0,0,NULL,NULL,NULL,NULL), - (191,119,3,'info@secondinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL), - (192,181,2,'margaretz@secondinitiative.org',0,0,0,0,NULL,NULL,NULL,NULL), - (193,36,3,'info@providenceempowermentfund.org',1,0,0,0,NULL,NULL,NULL,NULL), - (194,175,2,'wagner.f.iris@providenceempowermentfund.org',0,0,0,0,NULL,NULL,NULL,NULL), - (195,53,3,'contact@californiaeducationsystems.org',1,0,0,0,NULL,NULL,NULL,NULL), - (196,6,3,'info@sierratrust.org',1,0,0,0,NULL,NULL,NULL,NULL), - (197,4,3,'feedback@unitedhealthassociation.org',1,0,0,0,NULL,NULL,NULL,NULL), - (198,168,2,'allenb80@unitedhealthassociation.org',1,0,0,0,NULL,NULL,NULL,NULL), - (199,121,3,'contact@collegepeacesolutions.org',1,0,0,0,NULL,NULL,NULL,NULL), - (200,126,2,'allenw@collegepeacesolutions.org',0,0,0,0,NULL,NULL,NULL,NULL), - (201,186,3,'feedback@caulderpeace.org',1,0,0,0,NULL,NULL,NULL,NULL), - (202,104,2,'sonnywilson@caulderpeace.org',1,0,0,0,NULL,NULL,NULL,NULL), - (203,2,3,'sales@localadvocacy.org',1,0,0,0,NULL,NULL,NULL,NULL), - (204,183,2,'dimitrov.alexia45@localadvocacy.org',1,0,0,0,NULL,NULL,NULL,NULL), - (205,7,3,'contact@progressivewellness.org',1,0,0,0,NULL,NULL,NULL,NULL), - (206,48,2,'jacobs.ivey@progressivewellness.org',1,0,0,0,NULL,NULL,NULL,NULL), - (207,202,1,'jenny@example.com',1,0,0,0,NULL,NULL,NULL,NULL), - (208,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL), - (209,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL), - (210,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL); + (2,41,1,'jameson.j.valene80@lol.org',1,0,0,0,NULL,NULL,NULL,NULL), + (3,41,1,'jameson.valene@spamalot.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (4,171,1,'darenj@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (5,171,1,'darenj72@testing.com',0,0,0,0,NULL,NULL,NULL,NULL), + (6,123,1,'reynoldsr@sample.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (7,178,1,'rc.roberts96@infomail.org',1,0,0,0,NULL,NULL,NULL,NULL), + (8,24,1,'jeromewilson@lol.net',1,0,0,0,NULL,NULL,NULL,NULL), + (9,146,1,'rgonzlez86@notmail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (10,146,1,'gonzlez.rosario@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL), + (11,4,1,'by.jones@mymail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (12,98,1,'chowski.roland@example.info',1,0,0,0,NULL,NULL,NULL,NULL), + (13,98,1,'roland@testmail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (14,79,1,'terry.u.herminia10@notmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (15,158,1,'jameson.g.santina@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (16,158,1,'jameson.g.santina90@airmail.com',0,0,0,0,NULL,NULL,NULL,NULL), + (17,145,1,'ivanovl70@fakemail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (18,82,1,'cruzl@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (19,175,1,'lt.jacobs@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (20,175,1,'lareej@fakemail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), + (21,117,1,'dazh@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (22,117,1,'daz.n.herminia@fishmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), + (23,124,1,'teresay20@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (24,124,1,'teresay@lol.co.in',0,0,0,0,NULL,NULL,NULL,NULL), + (25,28,1,'terryh@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (26,40,1,'ab.samuels@spamalot.com',1,0,0,0,NULL,NULL,NULL,NULL), + (27,66,1,'nielsenr@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (28,66,1,'re.nielsen@spamalot.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (29,32,1,'wilson.margaret84@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL), + (30,32,1,'margaretw@testmail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), + (31,162,1,'josefadimitrov@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL), + (32,26,1,'daz.e.justina43@fakemail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (33,180,1,'jeromej@spamalot.net',1,0,0,0,NULL,NULL,NULL,NULL), + (34,180,1,'jeromej93@infomail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (35,192,1,'nielsen.g.rodrigo30@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (36,100,1,'kathleenn37@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (37,11,1,'jacksonparker@airmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (38,11,1,'jacksonp@example.info',0,0,0,0,NULL,NULL,NULL,NULL), + (39,200,1,'samuels.rebekah@lol.net',1,0,0,0,NULL,NULL,NULL,NULL), + (40,182,1,'sharyndaz@testmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (41,182,1,'daz.m.sharyn@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL), + (42,136,1,'santinaparker85@mymail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (43,172,1,'gonzleze@testmail.com',1,0,0,0,NULL,NULL,NULL,NULL), + (44,90,1,'wagnerr@spamalot.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (45,90,1,'rolandowagner@fishmail.biz',0,0,0,0,NULL,NULL,NULL,NULL), + (46,83,1,'felishap@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (47,83,1,'fparker@fakemail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (48,120,1,'terry.elina63@infomail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (49,174,1,'parker.jacob@testing.com',1,0,0,0,NULL,NULL,NULL,NULL), + (50,174,1,'jparker@lol.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), + (51,109,1,'parker.damaris65@mymail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (52,155,1,'sk.prentice64@fakemail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (53,167,1,'parkerj@testmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (54,159,1,'bernadettet@fishmail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (55,78,1,'lareeyadav14@notmail.org',1,0,0,0,NULL,NULL,NULL,NULL), + (56,70,1,'jones.ray95@example.org',1,0,0,0,NULL,NULL,NULL,NULL), + (57,103,1,'miguelpatel22@lol.org',1,0,0,0,NULL,NULL,NULL,NULL), + (58,103,1,'patel.miguel@infomail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), + (59,44,1,'terry.craig83@lol.org',1,0,0,0,NULL,NULL,NULL,NULL), + (60,21,1,'nielsens34@example.info',1,0,0,0,NULL,NULL,NULL,NULL), + (61,21,1,'nielsens36@spamalot.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (62,71,1,'daze96@spamalot.info',1,0,0,0,NULL,NULL,NULL,NULL), + (63,71,1,'elinadaz@sample.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), + (64,56,1,'barkley.u.scarlet31@sample.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (65,56,1,'barkley.scarlet@testing.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (66,183,1,'iz.cooper@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (67,62,1,'patel.h.teresa63@example.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (68,62,1,'patel.h.teresa@airmail.org',0,0,0,0,NULL,NULL,NULL,NULL), + (69,166,1,'parker.landon59@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL), + (70,166,1,'parkerl18@lol.info',0,0,0,0,NULL,NULL,NULL,NULL), + (71,198,1,'barkley.brzczysaw@lol.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (72,198,1,'brzczysawb81@fishmail.org',0,0,0,0,NULL,NULL,NULL,NULL), + (73,39,1,'shadterrell56@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (74,39,1,'sterrell@testing.biz',0,0,0,0,NULL,NULL,NULL,NULL), + (75,130,1,'molsen@spamalot.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (76,190,1,'ashliebarkley43@spamalot.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (77,190,1,'barkleya@testing.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (78,85,1,'damarisp@notmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (79,53,1,'prentice.w.tanya@infomail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (80,58,1,'brzczysawt@lol.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (81,58,1,'brzczysawterrell3@fishmail.org',0,0,0,0,NULL,NULL,NULL,NULL), + (82,154,1,'terrellb@fakemail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (83,154,1,'brentterrell@sample.info',0,0,0,0,NULL,NULL,NULL,NULL), + (84,23,1,'terrell.bob@fishmail.info',1,0,0,0,NULL,NULL,NULL,NULL), + (85,23,1,'terrellb22@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL), + (86,18,1,'wilsons@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (87,18,1,'wilson.sonny@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL), + (88,8,1,'tobywilson@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (89,189,1,'wilson.carylon26@airmail.com',1,0,0,0,NULL,NULL,NULL,NULL), + (90,189,1,'wilsonc98@spamalot.com',0,0,0,0,NULL,NULL,NULL,NULL), + (91,80,1,'jensent17@mymail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (92,104,1,'ashliej31@sample.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (93,104,1,'jensena@infomail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (94,137,1,'brentj@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (95,126,1,'jensenr@testing.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (96,126,1,'rosariojensen@fakemail.org',0,0,0,0,NULL,NULL,NULL,NULL), + (97,27,1,'arlynewattson60@fishmail.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (98,27,1,'awattson@fakemail.net',0,0,0,0,NULL,NULL,NULL,NULL), + (99,35,1,'angelikawattson@fakemail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (100,35,1,'angelikawattson@fishmail.com',0,0,0,0,NULL,NULL,NULL,NULL), + (101,147,1,'eleonorbachman@sample.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (102,147,1,'ebachman@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (103,164,1,'lawerencebachman71@testing.org',1,0,0,0,NULL,NULL,NULL,NULL), + (104,164,1,'bachmanl@mymail.com',0,0,0,0,NULL,NULL,NULL,NULL), + (105,191,1,'teddyb@example.info',1,0,0,0,NULL,NULL,NULL,NULL), + (106,191,1,'bachmant@fishmail.info',0,0,0,0,NULL,NULL,NULL,NULL), + (107,81,1,'scarletchowski36@testing.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (108,81,1,'scarletchowski86@notmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), + (109,150,1,'jedd31@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (110,150,1,'dimitrov-chowskij@spamalot.org',0,0,0,0,NULL,NULL,NULL,NULL), + (111,127,1,'rosariodimitrov-chowski@sample.com',1,0,0,0,NULL,NULL,NULL,NULL), + (112,127,1,'rosariod@example.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (113,72,1,'terry.betty@spamalot.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (114,72,1,'bettyterry3@infomail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), + (115,125,1,'rf.terry41@infomail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (116,125,1,'terryr29@mymail.net',0,0,0,0,NULL,NULL,NULL,NULL), + (117,17,1,'terry.f.teddy@fishmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (118,139,1,'jensen.felisha@spamalot.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (119,139,1,'felishajensen41@testing.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (120,116,1,'edimitrov31@spamalot.com',1,0,0,0,NULL,NULL,NULL,NULL), + (121,116,1,'eleonordimitrov@mymail.com',0,0,0,0,NULL,NULL,NULL,NULL), + (122,86,1,'robertsb@lol.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (123,170,1,'jacksonr@fakemail.com',1,0,0,0,NULL,NULL,NULL,NULL), + (124,170,1,'roberts.jackson@mymail.co.uk',0,0,0,0,NULL,NULL,NULL,NULL), + (125,38,1,'roberts.jina@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (126,65,1,'bachman-zope.josefa@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (127,65,1,'josefabachman-zope@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL), + (128,94,1,'bf.zope@airmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (129,94,1,'bf.zope@fishmail.info',0,0,0,0,NULL,NULL,NULL,NULL), + (130,195,1,'mg.zope@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (131,45,1,'adams.tanya52@lol.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (132,45,1,'adams.tanya49@infomail.biz',0,0,0,0,NULL,NULL,NULL,NULL), + (133,176,1,'adams-dazc55@airmail.org',1,0,0,0,NULL,NULL,NULL,NULL), + (134,36,1,'adams-dazm89@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (135,133,1,'sonnyterry@example.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (136,19,1,'carylonterry@testmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (137,19,1,'carylonterry@fakemail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (138,97,1,'mariat@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (139,97,1,'mariat@fishmail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), + (140,46,1,'roberts.toby@testing.co.pl',1,0,0,0,NULL,NULL,NULL,NULL), + (141,46,1,'tobyroberts63@mymail.co.nz',0,0,0,0,NULL,NULL,NULL,NULL), + (142,93,1,'roberts.i.maxwell25@testmail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (143,93,1,'maxwellr10@mymail.co.in',0,0,0,0,NULL,NULL,NULL,NULL), + (144,76,1,'roberts.bryon36@fakemail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (145,187,1,'broberts88@infomail.info',1,0,0,0,NULL,NULL,NULL,NULL), + (146,187,1,'brentr@testing.net',0,0,0,0,NULL,NULL,NULL,NULL), + (147,74,1,'lmller@notmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (148,179,1,'kaceymller99@mymail.co.uk',1,0,0,0,NULL,NULL,NULL,NULL), + (149,179,1,'kaceymller@mymail.co.pl',0,0,0,0,NULL,NULL,NULL,NULL), + (150,185,1,'princessmller@example.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (151,185,1,'mllerp@fakemail.biz',0,0,0,0,NULL,NULL,NULL,NULL), + (152,197,1,'jmller73@airmail.biz',1,0,0,0,NULL,NULL,NULL,NULL), + (153,197,1,'mllerj1@sample.net',0,0,0,0,NULL,NULL,NULL,NULL), + (154,184,1,'samuelsk59@sample.org',1,0,0,0,NULL,NULL,NULL,NULL), + (155,2,1,'samuels-robertson.winford93@airmail.co.nz',1,0,0,0,NULL,NULL,NULL,NULL), + (156,110,1,'dimitrovs@infomail.net',1,0,0,0,NULL,NULL,NULL,NULL), + (157,9,1,'blackwell.shad25@airmail.co.in',1,0,0,0,NULL,NULL,NULL,NULL), + (158,54,1,'rosariod@testing.info',1,0,0,0,NULL,NULL,NULL,NULL), + (159,48,3,'info@urbansustainability.org',1,0,0,0,NULL,NULL,NULL,NULL), + (160,27,2,'awattson@urbansustainability.org',0,0,0,0,NULL,NULL,NULL,NULL), + (161,43,3,'service@starenvironmental.org',1,0,0,0,NULL,NULL,NULL,NULL), + (162,145,2,'livanov@starenvironmental.org',0,0,0,0,NULL,NULL,NULL,NULL), + (163,169,3,'info@communityeducation.org',1,0,0,0,NULL,NULL,NULL,NULL), + (164,183,2,'yadav.allen69@communityeducation.org',0,0,0,0,NULL,NULL,NULL,NULL), + (165,177,3,'sales@localpoetryassociation.org',1,0,0,0,NULL,NULL,NULL,NULL), + (166,50,2,'jamesonl@localpoetryassociation.org',1,0,0,0,NULL,NULL,NULL,NULL), + (167,101,3,'contact@mississippifood.org',1,0,0,0,NULL,NULL,NULL,NULL), + (168,39,2,'terrell.shad39@mississippifood.org',0,0,0,0,NULL,NULL,NULL,NULL), + (169,153,3,'contact@friendshealth.org',1,0,0,0,NULL,NULL,NULL,NULL), + (170,82,2,'lincolnc@friendshealth.org',0,0,0,0,NULL,NULL,NULL,NULL), + (171,91,3,'sales@arkansasliteracy.org',1,0,0,0,NULL,NULL,NULL,NULL), + (172,154,2,'brentt@arkansasliteracy.org',0,0,0,0,NULL,NULL,NULL,NULL), + (173,157,3,'sales@creativeschool.org',1,0,0,0,NULL,NULL,NULL,NULL), + (174,172,2,'gonzleze@creativeschool.org',0,0,0,0,NULL,NULL,NULL,NULL), + (175,129,3,'feedback@californiacollective.org',1,0,0,0,NULL,NULL,NULL,NULL), + (176,96,2,'jones.shauna@californiacollective.org',1,0,0,0,NULL,NULL,NULL,NULL), + (177,188,3,'info@dowleneducationcollective.org',1,0,0,0,NULL,NULL,NULL,NULL), + (178,121,2,'meizope@dowleneducationcollective.org',1,0,0,0,NULL,NULL,NULL,NULL), + (179,193,3,'feedback@beechactionsystems.org',1,0,0,0,NULL,NULL,NULL,NULL), + (180,28,2,'terry.heidi31@beechactionsystems.org',0,0,0,0,NULL,NULL,NULL,NULL), + (181,73,3,'info@surveyordevelopmentservices.org',1,0,0,0,NULL,NULL,NULL,NULL), + (182,166,2,'parkerl@surveyordevelopmentservices.org',0,0,0,0,NULL,NULL,NULL,NULL), + (183,61,3,'service@globaladvocacyinitiative.org',1,0,0,0,NULL,NULL,NULL,NULL), + (184,152,3,'feedback@thactioncollective.org',1,0,0,0,NULL,NULL,NULL,NULL), + (185,26,2,'craigt@thactioncollective.org',0,0,0,0,NULL,NULL,NULL,NULL), + (186,51,3,'service@dowlenpartnership.org',1,0,0,0,NULL,NULL,NULL,NULL), + (187,76,2,'roberts.bryon@dowlenpartnership.org',0,0,0,0,NULL,NULL,NULL,NULL), + (188,135,3,'contact@delandactionsystems.org',1,0,0,0,NULL,NULL,NULL,NULL), + (189,60,2,'roberts.elina@delandactionsystems.org',1,0,0,0,NULL,NULL,NULL,NULL), + (190,202,1,'jenny@example.com',1,0,0,0,NULL,NULL,NULL,NULL), + (191,NULL,1,'development@example.org',0,0,0,0,NULL,NULL,NULL,NULL), + (192,NULL,1,'tournaments@example.org',0,0,0,0,NULL,NULL,NULL,NULL), + (193,NULL,1,'celebration@example.org',0,0,0,0,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_email` ENABLE KEYS */; UNLOCK TABLES; @@ -3243,11 +3222,11 @@ INSERT INTO `civicrm_entity_financial_account` (`id`, `entity_table`, `entity_id (16,'civicrm_financial_type',4,1,4), (17,'civicrm_financial_type',4,12,13), (18,'civicrm_financial_type',4,7,9), - (19,'civicrm_option_value',91,6,6), - (20,'civicrm_option_value',92,6,6), - (21,'civicrm_option_value',93,6,6), - (22,'civicrm_option_value',89,6,12), - (23,'civicrm_option_value',90,6,12); + (19,'civicrm_option_value',92,6,6), + (20,'civicrm_option_value',93,6,6), + (21,'civicrm_option_value',94,6,6), + (22,'civicrm_option_value',90,6,12), + (23,'civicrm_option_value',91,6,12); /*!40000 ALTER TABLE `civicrm_entity_financial_account` ENABLE KEYS */; UNLOCK TABLES; @@ -3324,47 +3303,47 @@ INSERT INTO `civicrm_entity_financial_trxn` (`id`, `entity_table`, `entity_id`, (64,'civicrm_financial_item',32,32,100.00), (65,'civicrm_contribution',34,33,100.00), (66,'civicrm_financial_item',33,33,100.00), - (67,'civicrm_contribution',38,34,100.00), + (67,'civicrm_contribution',36,34,100.00), (68,'civicrm_financial_item',34,34,100.00), - (69,'civicrm_contribution',40,35,100.00), + (69,'civicrm_contribution',38,35,100.00), (70,'civicrm_financial_item',35,35,100.00), - (71,'civicrm_contribution',44,36,100.00), + (71,'civicrm_contribution',40,36,100.00), (72,'civicrm_financial_item',36,36,100.00), - (73,'civicrm_contribution',46,37,100.00), + (73,'civicrm_contribution',44,37,100.00), (74,'civicrm_financial_item',37,37,100.00), - (75,'civicrm_contribution',48,38,100.00), + (75,'civicrm_contribution',46,38,100.00), (76,'civicrm_financial_item',38,38,100.00), - (77,'civicrm_contribution',50,39,100.00), + (77,'civicrm_contribution',48,39,100.00), (78,'civicrm_financial_item',39,39,100.00), - (79,'civicrm_contribution',52,40,100.00), + (79,'civicrm_contribution',50,40,100.00), (80,'civicrm_financial_item',40,40,100.00), - (81,'civicrm_contribution',54,41,100.00), + (81,'civicrm_contribution',51,41,100.00), (82,'civicrm_financial_item',41,41,100.00), - (83,'civicrm_contribution',58,42,100.00), + (83,'civicrm_contribution',52,42,100.00), (84,'civicrm_financial_item',42,42,100.00), - (85,'civicrm_contribution',60,43,100.00), + (85,'civicrm_contribution',54,43,100.00), (86,'civicrm_financial_item',43,43,100.00), - (87,'civicrm_contribution',33,44,50.00), - (88,'civicrm_financial_item',44,44,50.00), - (89,'civicrm_contribution',35,45,50.00), - (90,'civicrm_financial_item',45,45,50.00), - (91,'civicrm_contribution',36,46,50.00), + (87,'civicrm_contribution',58,44,100.00), + (88,'civicrm_financial_item',44,44,100.00), + (89,'civicrm_contribution',60,45,100.00), + (90,'civicrm_financial_item',45,45,100.00), + (91,'civicrm_contribution',33,46,50.00), (92,'civicrm_financial_item',46,46,50.00), - (93,'civicrm_contribution',37,47,50.00), + (93,'civicrm_contribution',35,47,50.00), (94,'civicrm_financial_item',47,47,50.00), - (95,'civicrm_contribution',39,48,50.00), + (95,'civicrm_contribution',37,48,50.00), (96,'civicrm_financial_item',48,48,50.00), - (97,'civicrm_contribution',41,49,50.00), + (97,'civicrm_contribution',39,49,50.00), (98,'civicrm_financial_item',49,49,50.00), - (99,'civicrm_contribution',43,50,50.00), + (99,'civicrm_contribution',41,50,50.00), (100,'civicrm_financial_item',50,50,50.00), - (101,'civicrm_contribution',45,51,50.00), + (101,'civicrm_contribution',43,51,50.00), (102,'civicrm_financial_item',51,51,50.00), - (103,'civicrm_contribution',47,52,50.00), + (103,'civicrm_contribution',45,52,50.00), (104,'civicrm_financial_item',52,52,50.00), - (105,'civicrm_contribution',49,53,50.00), + (105,'civicrm_contribution',47,53,50.00), (106,'civicrm_financial_item',53,53,50.00), - (107,'civicrm_contribution',51,54,50.00), + (107,'civicrm_contribution',49,54,50.00), (108,'civicrm_financial_item',54,54,50.00), (109,'civicrm_contribution',55,55,50.00), (110,'civicrm_financial_item',55,55,50.00), @@ -3490,126 +3469,115 @@ UNLOCK TABLES; LOCK TABLES `civicrm_entity_tag` WRITE; /*!40000 ALTER TABLE `civicrm_entity_tag` DISABLE KEYS */; INSERT INTO `civicrm_entity_tag` (`id`, `entity_table`, `entity_id`, `tag_id`) VALUES - (10,'civicrm_contact',2,1), - (101,'civicrm_contact',3,4), - (102,'civicrm_contact',3,5), - (8,'civicrm_contact',8,3), - (32,'civicrm_contact',12,4), - (33,'civicrm_contact',12,5), - (67,'civicrm_contact',16,5), - (53,'civicrm_contact',17,4), - (93,'civicrm_contact',20,4), - (79,'civicrm_contact',21,4), - (80,'civicrm_contact',21,5), - (11,'civicrm_contact',24,4), - (12,'civicrm_contact',24,5), - (119,'civicrm_contact',28,4), - (46,'civicrm_contact',29,4), - (109,'civicrm_contact',32,5), - (65,'civicrm_contact',33,4), - (66,'civicrm_contact',33,5), - (55,'civicrm_contact',34,4), - (71,'civicrm_contact',43,4), - (49,'civicrm_contact',48,4), - (50,'civicrm_contact',48,5), - (7,'civicrm_contact',53,2), - (117,'civicrm_contact',55,5), - (57,'civicrm_contact',59,5), - (26,'civicrm_contact',60,4), - (27,'civicrm_contact',60,5), - (23,'civicrm_contact',63,4), - (24,'civicrm_contact',63,5), - (92,'civicrm_contact',64,5), - (5,'civicrm_contact',66,2), - (68,'civicrm_contact',67,5), - (89,'civicrm_contact',68,5), - (90,'civicrm_contact',69,4), - (91,'civicrm_contact',69,5), - (103,'civicrm_contact',71,4), - (61,'civicrm_contact',74,4), - (1,'civicrm_contact',76,1), - (94,'civicrm_contact',77,4), - (20,'civicrm_contact',78,4), - (21,'civicrm_contact',78,5), - (74,'civicrm_contact',80,4), - (14,'civicrm_contact',82,5), - (60,'civicrm_contact',83,5), - (118,'civicrm_contact',85,5), - (25,'civicrm_contact',86,5), - (106,'civicrm_contact',87,4), - (107,'civicrm_contact',87,5), - (13,'civicrm_contact',88,5), - (82,'civicrm_contact',90,4), - (83,'civicrm_contact',90,5), - (108,'civicrm_contact',92,4), - (18,'civicrm_contact',93,4), - (19,'civicrm_contact',93,5), - (34,'civicrm_contact',96,4), - (35,'civicrm_contact',96,5), - (115,'civicrm_contact',97,4), - (2,'civicrm_contact',98,1), - (99,'civicrm_contact',99,4), - (100,'civicrm_contact',99,5), - (6,'civicrm_contact',101,2), - (111,'civicrm_contact',104,5), - (43,'civicrm_contact',105,4), - (44,'civicrm_contact',105,5), - (28,'civicrm_contact',108,4), - (29,'civicrm_contact',108,5), - (62,'civicrm_contact',109,4), - (31,'civicrm_contact',110,5), - (39,'civicrm_contact',111,4), - (40,'civicrm_contact',111,5), - (69,'civicrm_contact',112,5), - (86,'civicrm_contact',114,4), - (87,'civicrm_contact',114,5), - (3,'civicrm_contact',115,1), - (58,'civicrm_contact',120,4), - (59,'civicrm_contact',120,5), - (9,'civicrm_contact',121,2), - (112,'civicrm_contact',122,5), - (36,'civicrm_contact',123,4), - (37,'civicrm_contact',123,5), - (22,'civicrm_contact',128,5), - (116,'civicrm_contact',130,4), - (30,'civicrm_contact',131,5), - (78,'civicrm_contact',133,4), - (15,'civicrm_contact',135,4), - (16,'civicrm_contact',135,5), - (52,'civicrm_contact',136,4), - (47,'civicrm_contact',138,4), - (48,'civicrm_contact',138,5), - (4,'civicrm_contact',140,1), - (17,'civicrm_contact',143,5), - (54,'civicrm_contact',145,4), - (84,'civicrm_contact',147,4), - (85,'civicrm_contact',147,5), - (63,'civicrm_contact',149,5), - (75,'civicrm_contact',152,5), - (95,'civicrm_contact',156,4), - (96,'civicrm_contact',156,5), - (110,'civicrm_contact',157,4), - (88,'civicrm_contact',161,4), - (41,'civicrm_contact',162,4), - (42,'civicrm_contact',162,5), - (113,'civicrm_contact',163,5), - (76,'civicrm_contact',165,4), - (77,'civicrm_contact',165,5), - (114,'civicrm_contact',166,4), - (72,'civicrm_contact',171,4), - (73,'civicrm_contact',171,5), - (56,'civicrm_contact',173,4), - (64,'civicrm_contact',175,4), - (97,'civicrm_contact',180,4), - (98,'civicrm_contact',180,5), - (45,'civicrm_contact',184,4), - (81,'civicrm_contact',187,4), - (104,'civicrm_contact',189,4), - (105,'civicrm_contact',189,5), - (38,'civicrm_contact',190,5), - (120,'civicrm_contact',193,4), - (70,'civicrm_contact',194,4), - (51,'civicrm_contact',200,4); + (107,'civicrm_contact',2,4), + (95,'civicrm_contact',7,5), + (76,'civicrm_contact',8,4), + (34,'civicrm_contact',11,5), + (66,'civicrm_contact',13,4), + (84,'civicrm_contact',16,4), + (74,'civicrm_contact',18,4), + (75,'civicrm_contact',18,5), + (101,'civicrm_contact',19,5), + (36,'civicrm_contact',22,5), + (30,'civicrm_contact',26,4), + (25,'civicrm_contact',28,4), + (70,'civicrm_contact',30,4), + (71,'civicrm_contact',30,5), + (91,'civicrm_contact',31,5), + (12,'civicrm_contact',34,4), + (80,'civicrm_contact',35,5), + (17,'civicrm_contact',37,4), + (63,'civicrm_contact',39,4), + (64,'civicrm_contact',39,5), + (2,'civicrm_contact',43,1), + (54,'civicrm_contact',44,4), + (97,'civicrm_contact',45,4), + (98,'civicrm_contact',45,5), + (102,'civicrm_contact',46,5), + (1,'civicrm_contact',48,2), + (6,'civicrm_contact',49,3), + (72,'civicrm_contact',50,5), + (10,'civicrm_contact',51,3), + (11,'civicrm_contact',55,5), + (67,'civicrm_contact',58,5), + (33,'civicrm_contact',59,4), + (9,'civicrm_contact',61,2), + (59,'civicrm_contact',62,5), + (26,'civicrm_contact',66,4), + (27,'civicrm_contact',66,5), + (46,'civicrm_contact',69,4), + (47,'civicrm_contact',69,5), + (104,'civicrm_contact',74,4), + (103,'civicrm_contact',76,4), + (51,'civicrm_contact',78,4), + (52,'civicrm_contact',78,5), + (20,'civicrm_contact',79,4), + (77,'civicrm_contact',80,5), + (43,'civicrm_contact',83,4), + (55,'civicrm_contact',84,4), + (56,'civicrm_contact',84,5), + (93,'civicrm_contact',86,4), + (90,'civicrm_contact',88,5), + (109,'civicrm_contact',89,4), + (5,'civicrm_contact',91,3), + (96,'civicrm_contact',94,5), + (87,'civicrm_contact',95,5), + (18,'civicrm_contact',98,4), + (4,'civicrm_contact',101,1), + (53,'civicrm_contact',103,5), + (108,'civicrm_contact',110,4), + (37,'civicrm_contact',112,5), + (61,'civicrm_contact',114,4), + (62,'civicrm_contact',114,5), + (57,'civicrm_contact',115,4), + (92,'civicrm_contact',116,5), + (23,'civicrm_contact',117,4), + (24,'civicrm_contact',117,5), + (13,'civicrm_contact',123,4), + (14,'civicrm_contact',123,5), + (88,'civicrm_contact',125,4), + (7,'civicrm_contact',129,2), + (100,'civicrm_contact',133,4), + (40,'civicrm_contact',136,5), + (78,'civicrm_contact',137,4), + (73,'civicrm_contact',140,5), + (21,'civicrm_contact',145,4), + (16,'civicrm_contact',146,4), + (81,'civicrm_contact',147,4), + (82,'civicrm_contact',147,5), + (85,'civicrm_contact',150,4), + (86,'civicrm_contact',150,5), + (69,'civicrm_contact',151,5), + (68,'civicrm_contact',154,4), + (49,'civicrm_contact',159,4), + (50,'civicrm_contact',159,5), + (19,'civicrm_contact',160,4), + (28,'civicrm_contact',162,4), + (29,'civicrm_contact',162,5), + (79,'civicrm_contact',163,4), + (38,'civicrm_contact',165,4), + (39,'civicrm_contact',165,5), + (60,'civicrm_contact',166,4), + (48,'civicrm_contact',167,4), + (3,'civicrm_contact',169,1), + (94,'civicrm_contact',170,4), + (89,'civicrm_contact',173,4), + (44,'civicrm_contact',174,4), + (45,'civicrm_contact',174,5), + (22,'civicrm_contact',175,5), + (99,'civicrm_contact',176,4), + (15,'civicrm_contact',178,4), + (106,'civicrm_contact',184,4), + (105,'civicrm_contact',185,5), + (41,'civicrm_contact',186,4), + (42,'civicrm_contact',186,5), + (65,'civicrm_contact',190,4), + (83,'civicrm_contact',191,4), + (31,'civicrm_contact',192,4), + (32,'civicrm_contact',192,5), + (8,'civicrm_contact',193,3), + (58,'civicrm_contact',196,4), + (35,'civicrm_contact',200,5); /*!40000 ALTER TABLE `civicrm_entity_tag` ENABLE KEYS */; UNLOCK TABLES; @@ -3711,117 +3679,117 @@ UNLOCK TABLES; LOCK TABLES `civicrm_financial_item` WRITE; /*!40000 ALTER TABLE `civicrm_financial_item` DISABLE KEYS */; INSERT INTO `civicrm_financial_item` (`id`, `created_date`, `transaction_date`, `contact_id`, `description`, `amount`, `currency`, `financial_account_id`, `status_id`, `entity_table`, `entity_id`) VALUES - (1,'2023-09-06 22:14:04','2013-09-07 08:14:03',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1), - (2,'2023-09-06 22:14:04','2021-06-07 08:14:03',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2), - (3,'2023-09-06 22:14:04','2017-08-12 19:14:03',6,'Contribution Amount',25.00,'GBP',1,1,'civicrm_line_item',3), - (4,'2023-09-06 22:14:04','2021-06-07 08:14:03',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4), - (5,'2023-09-06 22:14:04','2021-06-07 08:14:03',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',5), - (6,'2023-09-06 22:14:04','2023-06-14 07:32:03',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',6), - (7,'2023-09-06 22:14:04','2023-09-05 08:14:03',19,'Contribution Amount',1750.00,'USD',1,1,'civicrm_line_item',7), - (8,'2023-09-06 22:14:04','2023-01-13 16:25:03',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',8), - (9,'2023-09-06 22:14:04','2022-10-07 08:14:03',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',9), - (10,'2023-09-06 22:14:04','2019-04-14 10:14:03',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',10), - (11,'2023-09-06 22:14:04','2023-09-06 04:14:03',71,'Contribution Amount',500.00,'JPY',1,1,'civicrm_line_item',11), - (12,'2023-09-06 22:14:04','2022-06-06 21:40:43',43,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',12), - (13,'2023-09-06 22:14:04','2023-06-07 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',13), - (14,'2023-09-06 22:14:04','2023-07-07 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',14), - (15,'2023-09-06 22:14:04','2022-06-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',15), - (16,'2023-09-06 22:14:04','2022-07-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',16), - (17,'2023-09-06 22:14:04','2022-08-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',17), - (18,'2023-09-06 22:14:04','2022-09-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',18), - (19,'2023-09-06 22:14:04','2022-10-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',19), - (20,'2023-09-06 22:14:04','2022-11-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',20), - (21,'2023-09-06 22:14:04','2022-12-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',21), - (22,'2023-09-06 22:14:04','2023-01-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',22), - (23,'2023-09-06 22:14:04','2023-02-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',23), - (24,'2023-09-06 22:14:04','2023-03-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',24), - (25,'2023-09-06 22:14:04','2023-04-07 08:14:03',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',25), - (26,'2023-09-06 22:14:04','2023-01-07 08:14:03',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',26), - (27,'2023-09-06 22:14:04','2023-02-07 08:14:03',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',27), - (28,'2023-09-06 22:14:04','2023-03-07 08:14:03',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',28), - (29,'2023-09-06 22:14:04','2023-04-07 08:14:03',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',29), - (30,'2023-09-06 22:14:04','2023-05-07 08:14:03',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',30), - (31,'2023-09-06 22:14:04','2023-08-07 08:14:03',103,'Contribution Amount',5.00,'EUR',1,1,'civicrm_line_item',31), - (32,'2023-09-06 22:14:04','2023-09-07 08:14:03',134,'General',100.00,'USD',2,1,'civicrm_line_item',32), - (33,'2023-09-06 22:14:04','2023-09-07 08:14:03',130,'General',100.00,'USD',2,1,'civicrm_line_item',33), - (34,'2023-09-06 22:14:04','2023-09-07 08:14:03',169,'General',100.00,'USD',2,1,'civicrm_line_item',34), - (35,'2023-09-06 22:14:04','2023-09-07 08:14:03',187,'General',100.00,'USD',2,1,'civicrm_line_item',35), - (36,'2023-09-06 22:14:04','2023-09-07 08:14:03',82,'General',100.00,'USD',2,1,'civicrm_line_item',36), - (37,'2023-09-06 22:14:04','2023-09-07 08:14:03',194,'General',100.00,'USD',2,1,'civicrm_line_item',37), - (38,'2023-09-06 22:14:04','2023-09-07 08:14:03',165,'General',100.00,'USD',2,1,'civicrm_line_item',38), - (39,'2023-09-06 22:14:04','2023-09-07 08:14:03',33,'General',100.00,'USD',2,1,'civicrm_line_item',39), - (40,'2023-09-06 22:14:04','2023-09-07 08:14:03',131,'General',100.00,'USD',2,1,'civicrm_line_item',40), - (41,'2023-09-06 22:14:04','2023-09-07 08:14:03',122,'General',100.00,'USD',2,1,'civicrm_line_item',41), - (42,'2023-09-06 22:14:04','2023-09-07 08:14:03',191,'General',100.00,'USD',2,1,'civicrm_line_item',42), - (43,'2023-09-06 22:14:04','2023-09-07 08:14:03',90,'General',100.00,'USD',2,1,'civicrm_line_item',43), - (44,'2023-09-06 22:14:04','2023-09-07 08:14:03',193,'Student',50.00,'USD',2,1,'civicrm_line_item',44), - (45,'2023-09-06 22:14:04','2023-09-07 08:14:03',154,'Student',50.00,'USD',2,1,'civicrm_line_item',45), - (46,'2023-09-06 22:14:04','2023-09-07 08:14:03',23,'Student',50.00,'USD',2,1,'civicrm_line_item',46), - (47,'2023-09-06 22:14:04','2023-09-07 08:14:03',17,'Student',50.00,'USD',2,1,'civicrm_line_item',47), - (48,'2023-09-06 22:14:04','2023-09-07 08:14:03',162,'Student',50.00,'USD',2,1,'civicrm_line_item',48), - (49,'2023-09-06 22:14:04','2023-09-07 08:14:03',55,'Student',50.00,'USD',2,1,'civicrm_line_item',49), - (50,'2023-09-06 22:14:04','2023-09-07 08:14:03',190,'Student',50.00,'USD',2,1,'civicrm_line_item',50), - (51,'2023-09-06 22:14:04','2023-09-07 08:14:03',70,'Student',50.00,'USD',2,1,'civicrm_line_item',51), - (52,'2023-09-06 22:14:04','2023-09-07 08:14:03',114,'Student',50.00,'USD',2,1,'civicrm_line_item',52), - (53,'2023-09-06 22:14:04','2023-09-07 08:14:03',44,'Student',50.00,'USD',2,1,'civicrm_line_item',53), - (54,'2023-09-06 22:14:04','2023-09-07 08:14:03',151,'Student',50.00,'USD',2,1,'civicrm_line_item',54), - (55,'2023-09-06 22:14:04','2023-09-07 08:14:03',111,'Student',50.00,'USD',2,1,'civicrm_line_item',55), - (56,'2023-09-06 22:14:04','2023-09-07 08:14:03',11,'Student',50.00,'USD',2,1,'civicrm_line_item',56), - (57,'2023-09-06 22:14:04','2023-09-07 08:14:03',97,'Student',50.00,'USD',2,1,'civicrm_line_item',57), - (58,'2023-09-06 22:14:04','2023-09-07 08:14:03',91,'Student',50.00,'USD',2,1,'civicrm_line_item',58), - (59,'2023-09-06 22:14:04','2023-09-07 08:14:03',200,'Student',50.00,'USD',2,1,'civicrm_line_item',59), - (60,'2023-09-06 22:14:04','2023-09-07 08:14:03',145,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',60), - (61,'2023-09-06 22:14:04','2023-09-07 08:14:03',72,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',61), - (62,'2023-09-06 22:14:04','2023-09-07 08:14:04',52,'Soprano',50.00,'USD',2,1,'civicrm_line_item',97), - (63,'2023-09-06 22:14:04','2023-09-07 08:14:04',105,'Soprano',50.00,'USD',2,1,'civicrm_line_item',98), - (64,'2023-09-06 22:14:04','2023-09-07 08:14:04',98,'Soprano',50.00,'USD',2,1,'civicrm_line_item',99), - (65,'2023-09-06 22:14:04','2023-09-07 08:14:04',149,'Soprano',50.00,'USD',2,1,'civicrm_line_item',100), - (66,'2023-09-06 22:14:04','2023-09-07 08:14:04',40,'Soprano',50.00,'USD',2,1,'civicrm_line_item',101), - (67,'2023-09-06 22:14:04','2023-09-07 08:14:04',86,'Soprano',50.00,'USD',2,1,'civicrm_line_item',102), - (68,'2023-09-06 22:14:04','2023-09-07 08:14:04',32,'Soprano',50.00,'USD',2,1,'civicrm_line_item',103), - (69,'2023-09-06 22:14:04','2023-09-07 08:14:04',90,'Soprano',50.00,'USD',2,1,'civicrm_line_item',104), - (70,'2023-09-06 22:14:04','2023-09-07 08:14:04',132,'Soprano',50.00,'USD',2,1,'civicrm_line_item',105), - (71,'2023-09-06 22:14:04','2023-09-07 08:14:04',106,'Soprano',50.00,'USD',2,1,'civicrm_line_item',106), - (72,'2023-09-06 22:14:04','2023-09-07 08:14:04',189,'Soprano',50.00,'USD',2,1,'civicrm_line_item',107), - (73,'2023-09-06 22:14:04','2023-09-07 08:14:04',35,'Soprano',50.00,'USD',2,1,'civicrm_line_item',108), - (74,'2023-09-06 22:14:04','2023-09-07 08:14:04',23,'Soprano',50.00,'USD',2,1,'civicrm_line_item',109), - (75,'2023-09-06 22:14:04','2023-09-07 08:14:04',101,'Soprano',50.00,'USD',2,1,'civicrm_line_item',110), - (76,'2023-09-06 22:14:04','2023-09-07 08:14:04',63,'Soprano',50.00,'USD',2,1,'civicrm_line_item',111), - (77,'2023-09-06 22:14:04','2023-09-07 08:14:04',188,'Soprano',50.00,'USD',2,1,'civicrm_line_item',112), - (78,'2023-09-06 22:14:04','2023-09-07 08:14:04',13,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63), - (79,'2023-09-06 22:14:04','2023-09-07 08:14:04',182,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64), - (80,'2023-09-06 22:14:04','2023-09-07 08:14:04',127,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',65), - (81,'2023-09-06 22:14:04','2023-09-07 08:14:04',80,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',66), - (82,'2023-09-06 22:14:04','2023-09-07 08:14:04',122,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',67), - (83,'2023-09-06 22:14:04','2023-09-07 08:14:04',177,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',68), - (84,'2023-09-06 22:14:04','2023-09-07 08:14:04',178,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',69), - (85,'2023-09-06 22:14:04','2023-09-07 08:14:04',128,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',70), - (86,'2023-09-06 22:14:04','2023-09-07 08:14:04',171,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',71), - (87,'2023-09-06 22:14:04','2023-09-07 08:14:04',70,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',72), - (88,'2023-09-06 22:14:04','2023-09-07 08:14:04',112,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',73), - (89,'2023-09-06 22:14:04','2023-09-07 08:14:04',145,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',74), - (90,'2023-09-06 22:14:04','2023-09-07 08:14:04',66,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',75), - (91,'2023-09-06 22:14:04','2023-09-07 08:14:04',91,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',76), - (92,'2023-09-06 22:14:04','2023-09-07 08:14:04',64,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',77), - (93,'2023-09-06 22:14:04','2023-09-07 08:14:04',153,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',78), - (94,'2023-09-06 22:14:04','2023-09-07 08:14:04',139,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',79), - (95,'2023-09-06 22:14:04','2023-09-07 08:14:04',103,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',80), - (96,'2023-09-06 22:14:04','2023-09-07 08:14:04',160,'Single',50.00,'USD',4,1,'civicrm_line_item',81), - (97,'2023-09-06 22:14:04','2023-09-07 08:14:04',135,'Single',50.00,'USD',4,1,'civicrm_line_item',82), - (98,'2023-09-06 22:14:04','2023-09-07 08:14:04',154,'Single',50.00,'USD',4,1,'civicrm_line_item',83), - (99,'2023-09-06 22:14:04','2023-09-07 08:14:04',168,'Single',50.00,'USD',4,1,'civicrm_line_item',84), - (100,'2023-09-06 22:14:04','2023-09-07 08:14:04',6,'Single',50.00,'USD',4,1,'civicrm_line_item',85), - (101,'2023-09-06 22:14:04','2023-09-07 08:14:04',7,'Single',50.00,'USD',4,1,'civicrm_line_item',86), - (102,'2023-09-06 22:14:04','2023-09-07 08:14:04',78,'Single',50.00,'USD',4,1,'civicrm_line_item',87), - (103,'2023-09-06 22:14:04','2023-09-07 08:14:04',88,'Single',50.00,'USD',4,1,'civicrm_line_item',88), - (104,'2023-09-06 22:14:04','2023-09-07 08:14:04',183,'Single',50.00,'USD',4,1,'civicrm_line_item',89), - (105,'2023-09-06 22:14:04','2023-09-07 08:14:04',99,'Single',50.00,'USD',4,1,'civicrm_line_item',90), - (106,'2023-09-06 22:14:04','2023-09-07 08:14:04',161,'Single',50.00,'USD',4,1,'civicrm_line_item',91), - (107,'2023-09-06 22:14:04','2023-09-07 08:14:04',95,'Single',50.00,'USD',4,1,'civicrm_line_item',92), - (108,'2023-09-06 22:14:04','2023-09-07 08:14:04',190,'Single',50.00,'USD',4,1,'civicrm_line_item',93), - (109,'2023-09-06 22:14:04','2023-09-07 08:14:04',174,'Single',50.00,'USD',4,1,'civicrm_line_item',94), - (110,'2023-09-06 22:14:04','2023-09-07 08:14:04',146,'Single',50.00,'USD',4,1,'civicrm_line_item',95), - (111,'2023-09-06 22:14:04','2023-09-07 08:14:04',176,'Single',50.00,'USD',4,1,'civicrm_line_item',96); + (1,'2023-09-06 22:52:20','2013-09-07 08:52:20',2,'Contribution Amount',125.00,'USD',1,1,'civicrm_line_item',1), + (2,'2023-09-06 22:52:20','2021-06-07 08:52:20',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',2), + (3,'2023-09-06 22:52:20','2017-08-12 19:52:20',6,'Contribution Amount',25.00,'GBP',1,1,'civicrm_line_item',3), + (4,'2023-09-06 22:52:20','2021-06-07 08:52:20',8,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',4), + (5,'2023-09-06 22:52:20','2021-06-07 08:52:20',4,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',5), + (6,'2023-09-06 22:52:20','2023-06-14 08:10:20',16,'Contribution Amount',500.00,'USD',1,1,'civicrm_line_item',6), + (7,'2023-09-06 22:52:20','2023-09-05 08:52:20',19,'Contribution Amount',1750.00,'USD',1,1,'civicrm_line_item',7), + (8,'2023-09-06 22:52:20','2023-01-13 17:03:20',82,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',8), + (9,'2023-09-06 22:52:20','2022-10-07 08:52:20',92,'Contribution Amount',10.00,'USD',1,1,'civicrm_line_item',9), + (10,'2023-09-06 22:52:20','2019-04-14 10:52:20',34,'Contribution Amount',250.00,'USD',1,1,'civicrm_line_item',10), + (11,'2023-09-06 22:52:20','2023-09-06 04:52:20',71,'Contribution Amount',500.00,'JPY',1,1,'civicrm_line_item',11), + (12,'2023-09-06 22:52:20','2022-06-06 22:19:00',43,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',12), + (13,'2023-09-06 22:52:20','2023-06-07 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',13), + (14,'2023-09-06 22:52:20','2023-07-07 00:00:00',32,'Contribution Amount',50.00,'USD',1,1,'civicrm_line_item',14), + (15,'2023-09-06 22:52:20','2022-06-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',15), + (16,'2023-09-06 22:52:20','2022-07-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',16), + (17,'2023-09-06 22:52:20','2022-08-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',17), + (18,'2023-09-06 22:52:20','2022-09-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',18), + (19,'2023-09-06 22:52:20','2022-10-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',19), + (20,'2023-09-06 22:52:20','2022-11-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',20), + (21,'2023-09-06 22:52:20','2022-12-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',21), + (22,'2023-09-06 22:52:20','2023-01-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',22), + (23,'2023-09-06 22:52:20','2023-02-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',23), + (24,'2023-09-06 22:52:20','2023-03-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',24), + (25,'2023-09-06 22:52:20','2023-04-07 08:52:20',59,'Contribution Amount',25.00,'USD',1,1,'civicrm_line_item',25), + (26,'2023-09-06 22:52:20','2023-01-07 08:52:20',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',26), + (27,'2023-09-06 22:52:20','2023-02-07 08:52:20',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',27), + (28,'2023-09-06 22:52:20','2023-03-07 08:52:20',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',28), + (29,'2023-09-06 22:52:20','2023-04-07 08:52:20',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',29), + (30,'2023-09-06 22:52:20','2023-05-07 08:52:20',99,'Contribution Amount',10.00,'CAD',1,1,'civicrm_line_item',30), + (31,'2023-09-06 22:52:20','2023-08-07 08:52:20',103,'Contribution Amount',5.00,'EUR',1,1,'civicrm_line_item',31), + (32,'2023-09-06 22:52:20','2023-09-07 08:52:20',11,'General',100.00,'USD',2,1,'civicrm_line_item',32), + (33,'2023-09-06 22:52:20','2023-09-07 08:52:20',75,'General',100.00,'USD',2,1,'civicrm_line_item',33), + (34,'2023-09-06 22:52:20','2023-09-07 08:52:20',107,'General',100.00,'USD',2,1,'civicrm_line_item',34), + (35,'2023-09-06 22:52:20','2023-09-07 08:52:20',50,'General',100.00,'USD',2,1,'civicrm_line_item',35), + (36,'2023-09-06 22:52:20','2023-09-07 08:52:20',154,'General',100.00,'USD',2,1,'civicrm_line_item',36), + (37,'2023-09-06 22:52:20','2023-09-07 08:52:20',44,'General',100.00,'USD',2,1,'civicrm_line_item',37), + (38,'2023-09-06 22:52:20','2023-09-07 08:52:20',197,'General',100.00,'USD',2,1,'civicrm_line_item',38), + (39,'2023-09-06 22:52:20','2023-09-07 08:52:20',15,'General',100.00,'USD',2,1,'civicrm_line_item',39), + (40,'2023-09-06 22:52:20','2023-09-07 08:52:20',26,'General',100.00,'USD',2,1,'civicrm_line_item',40), + (41,'2023-09-06 22:52:20','2023-09-07 08:52:20',196,'General',100.00,'USD',2,1,'civicrm_line_item',41), + (42,'2023-09-06 22:52:20','2023-09-07 08:52:20',42,'General',100.00,'USD',2,1,'civicrm_line_item',42), + (43,'2023-09-06 22:52:20','2023-09-07 08:52:20',7,'General',100.00,'USD',2,1,'civicrm_line_item',43), + (44,'2023-09-06 22:52:20','2023-09-07 08:52:20',163,'General',100.00,'USD',2,1,'civicrm_line_item',44), + (45,'2023-09-06 22:52:20','2023-09-07 08:52:20',162,'General',100.00,'USD',2,1,'civicrm_line_item',45), + (46,'2023-09-06 22:52:20','2023-09-07 08:52:20',33,'Student',50.00,'USD',2,1,'civicrm_line_item',46), + (47,'2023-09-06 22:52:20','2023-09-07 08:52:20',16,'Student',50.00,'USD',2,1,'civicrm_line_item',47), + (48,'2023-09-06 22:52:20','2023-09-07 08:52:20',141,'Student',50.00,'USD',2,1,'civicrm_line_item',48), + (49,'2023-09-06 22:52:20','2023-09-07 08:52:20',88,'Student',50.00,'USD',2,1,'civicrm_line_item',49), + (50,'2023-09-06 22:52:20','2023-09-07 08:52:20',174,'Student',50.00,'USD',2,1,'civicrm_line_item',50), + (51,'2023-09-06 22:52:20','2023-09-07 08:52:20',36,'Student',50.00,'USD',2,1,'civicrm_line_item',51), + (52,'2023-09-06 22:52:20','2023-09-07 08:52:20',37,'Student',50.00,'USD',2,1,'civicrm_line_item',52), + (53,'2023-09-06 22:52:20','2023-09-07 08:52:20',117,'Student',50.00,'USD',2,1,'civicrm_line_item',53), + (54,'2023-09-06 22:52:20','2023-09-07 08:52:20',69,'Student',50.00,'USD',2,1,'civicrm_line_item',54), + (55,'2023-09-06 22:52:20','2023-09-07 08:52:20',198,'Student',50.00,'USD',2,1,'civicrm_line_item',55), + (56,'2023-09-06 22:52:20','2023-09-07 08:52:20',186,'Student',50.00,'USD',2,1,'civicrm_line_item',56), + (57,'2023-09-06 22:52:20','2023-09-07 08:52:20',140,'Student',50.00,'USD',2,1,'civicrm_line_item',57), + (58,'2023-09-06 22:52:20','2023-09-07 08:52:20',121,'Student',50.00,'USD',2,1,'civicrm_line_item',58), + (59,'2023-09-06 22:52:20','2023-09-07 08:52:20',202,'Student',50.00,'USD',2,1,'civicrm_line_item',59), + (60,'2023-09-06 22:52:20','2023-09-07 08:52:20',8,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',60), + (61,'2023-09-06 22:52:20','2023-09-07 08:52:20',150,'Lifetime',1200.00,'USD',2,1,'civicrm_line_item',61), + (62,'2023-09-06 22:52:20','2023-09-07 08:52:20',181,'Soprano',50.00,'USD',2,1,'civicrm_line_item',97), + (63,'2023-09-06 22:52:20','2023-09-07 08:52:20',123,'Soprano',50.00,'USD',2,1,'civicrm_line_item',98), + (64,'2023-09-06 22:52:20','2023-09-07 08:52:20',137,'Soprano',50.00,'USD',2,1,'civicrm_line_item',99), + (65,'2023-09-06 22:52:20','2023-09-07 08:52:20',47,'Soprano',50.00,'USD',2,1,'civicrm_line_item',100), + (66,'2023-09-06 22:52:20','2023-09-07 08:52:20',43,'Soprano',50.00,'USD',2,1,'civicrm_line_item',101), + (67,'2023-09-06 22:52:20','2023-09-07 08:52:20',142,'Soprano',50.00,'USD',2,1,'civicrm_line_item',102), + (68,'2023-09-06 22:52:21','2023-09-07 08:52:20',91,'Soprano',50.00,'USD',2,1,'civicrm_line_item',103), + (69,'2023-09-06 22:52:21','2023-09-07 08:52:20',76,'Soprano',50.00,'USD',2,1,'civicrm_line_item',104), + (70,'2023-09-06 22:52:21','2023-09-07 08:52:20',170,'Soprano',50.00,'USD',2,1,'civicrm_line_item',105), + (71,'2023-09-06 22:52:21','2023-09-07 08:52:20',94,'Soprano',50.00,'USD',2,1,'civicrm_line_item',106), + (72,'2023-09-06 22:52:21','2023-09-07 08:52:20',127,'Soprano',50.00,'USD',2,1,'civicrm_line_item',107), + (73,'2023-09-06 22:52:21','2023-09-07 08:52:20',159,'Soprano',50.00,'USD',2,1,'civicrm_line_item',108), + (74,'2023-09-06 22:52:21','2023-09-07 08:52:20',131,'Soprano',50.00,'USD',2,1,'civicrm_line_item',109), + (75,'2023-09-06 22:52:21','2023-09-07 08:52:20',11,'Soprano',50.00,'USD',2,1,'civicrm_line_item',110), + (76,'2023-09-06 22:52:21','2023-09-07 08:52:20',199,'Soprano',50.00,'USD',2,1,'civicrm_line_item',111), + (77,'2023-09-06 22:52:21','2023-09-07 08:52:20',68,'Soprano',50.00,'USD',2,1,'civicrm_line_item',112), + (78,'2023-09-06 22:52:21','2023-09-07 08:52:20',184,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',63), + (79,'2023-09-06 22:52:21','2023-09-07 08:52:20',88,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',64), + (80,'2023-09-06 22:52:21','2023-09-07 08:52:20',56,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',65), + (81,'2023-09-06 22:52:21','2023-09-07 08:52:20',133,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',66), + (82,'2023-09-06 22:52:21','2023-09-07 08:52:20',145,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',67), + (83,'2023-09-06 22:52:21','2023-09-07 08:52:20',63,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',68), + (84,'2023-09-06 22:52:21','2023-09-07 08:52:20',132,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',69), + (85,'2023-09-06 22:52:21','2023-09-07 08:52:20',174,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',70), + (86,'2023-09-06 22:52:21','2023-09-07 08:52:20',3,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',71), + (87,'2023-09-06 22:52:21','2023-09-07 08:52:20',128,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',72), + (88,'2023-09-06 22:52:21','2023-09-07 08:52:20',186,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',73), + (89,'2023-09-06 22:52:21','2023-09-07 08:52:20',177,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',74), + (90,'2023-09-06 22:52:21','2023-09-07 08:52:20',195,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',75), + (91,'2023-09-06 22:52:21','2023-09-07 08:52:20',104,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',76), + (92,'2023-09-06 22:52:21','2023-09-07 08:52:20',115,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',77), + (93,'2023-09-06 22:52:21','2023-09-07 08:52:20',37,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',78), + (94,'2023-09-06 22:52:21','2023-09-07 08:52:20',2,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',79), + (95,'2023-09-06 22:52:21','2023-09-07 08:52:20',193,'Tiny-tots (ages 5-8)',800.00,'USD',4,1,'civicrm_line_item',80), + (96,'2023-09-06 22:52:21','2023-09-07 08:52:20',102,'Single',50.00,'USD',4,1,'civicrm_line_item',81), + (97,'2023-09-06 22:52:21','2023-09-07 08:52:20',119,'Single',50.00,'USD',4,1,'civicrm_line_item',82), + (98,'2023-09-06 22:52:21','2023-09-07 08:52:20',149,'Single',50.00,'USD',4,1,'civicrm_line_item',83), + (99,'2023-09-06 22:52:21','2023-09-07 08:52:20',153,'Single',50.00,'USD',4,1,'civicrm_line_item',84), + (100,'2023-09-06 22:52:21','2023-09-07 08:52:20',29,'Single',50.00,'USD',4,1,'civicrm_line_item',85), + (101,'2023-09-06 22:52:21','2023-09-07 08:52:20',194,'Single',50.00,'USD',4,1,'civicrm_line_item',86), + (102,'2023-09-06 22:52:21','2023-09-07 08:52:20',92,'Single',50.00,'USD',4,1,'civicrm_line_item',87), + (103,'2023-09-06 22:52:21','2023-09-07 08:52:20',38,'Single',50.00,'USD',4,1,'civicrm_line_item',88), + (104,'2023-09-06 22:52:21','2023-09-07 08:52:20',167,'Single',50.00,'USD',4,1,'civicrm_line_item',89), + (105,'2023-09-06 22:52:21','2023-09-07 08:52:20',9,'Single',50.00,'USD',4,1,'civicrm_line_item',90), + (106,'2023-09-06 22:52:21','2023-09-07 08:52:20',178,'Single',50.00,'USD',4,1,'civicrm_line_item',91), + (107,'2023-09-06 22:52:21','2023-09-07 08:52:20',90,'Single',50.00,'USD',4,1,'civicrm_line_item',92), + (108,'2023-09-06 22:52:21','2023-09-07 08:52:20',151,'Single',50.00,'USD',4,1,'civicrm_line_item',93), + (109,'2023-09-06 22:52:21','2023-09-07 08:52:20',161,'Single',50.00,'USD',4,1,'civicrm_line_item',94), + (110,'2023-09-06 22:52:21','2023-09-07 08:52:20',50,'Single',50.00,'USD',4,1,'civicrm_line_item',95), + (111,'2023-09-06 22:52:21','2023-09-07 08:52:20',42,'Single',50.00,'USD',4,1,'civicrm_line_item',96); /*!40000 ALTER TABLE `civicrm_financial_item` ENABLE KEYS */; UNLOCK TABLES; @@ -3832,117 +3800,117 @@ UNLOCK TABLES; LOCK TABLES `civicrm_financial_trxn` WRITE; /*!40000 ALTER TABLE `civicrm_financial_trxn` DISABLE KEYS */; INSERT INTO `civicrm_financial_trxn` (`id`, `from_financial_account_id`, `to_financial_account_id`, `trxn_date`, `total_amount`, `fee_amount`, `net_amount`, `currency`, `is_payment`, `trxn_id`, `trxn_result_code`, `status_id`, `payment_processor_id`, `payment_instrument_id`, `card_type_id`, `check_number`, `pan_truncation`, `order_reference`) VALUES - (1,NULL,6,'2013-09-07 08:14:03',125.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'1041',NULL,NULL), - (2,NULL,6,'2021-06-07 08:14:03',50.00,NULL,NULL,'USD',1,'P20901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (3,NULL,6,'2017-08-12 19:14:03',25.00,NULL,NULL,'GBP',1,'GBP12',NULL,1,NULL,4,NULL,'2095',NULL,NULL), - (4,NULL,6,'2021-06-07 08:14:03',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'10552',NULL,NULL), - (5,NULL,6,'2021-06-07 08:14:03',50.00,NULL,NULL,'USD',1,'Q90901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (6,NULL,6,'2023-06-14 07:32:03',500.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'509',NULL,NULL), - (7,NULL,6,'2023-09-05 08:14:03',1750.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,'102',NULL,NULL), - (8,NULL,6,'2023-01-13 16:25:03',50.00,NULL,NULL,'USD',1,'P20193L2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (9,NULL,6,'2022-10-07 08:14:03',10.00,NULL,NULL,'USD',1,'P40232Y3',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (10,NULL,6,'2019-04-14 10:14:03',250.00,NULL,NULL,'USD',1,'P20193L6',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (11,NULL,6,'2023-09-06 04:14:03',500.00,NULL,NULL,'JPY',1,'PL71',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (12,NULL,6,'2022-06-06 21:40:43',50.00,NULL,NULL,'USD',1,'P291X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (1,NULL,6,'2013-09-07 08:52:20',125.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'1041',NULL,NULL), + (2,NULL,6,'2021-06-07 08:52:20',50.00,NULL,NULL,'USD',1,'P20901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (3,NULL,6,'2017-08-12 19:52:20',25.00,NULL,NULL,'GBP',1,'GBP12',NULL,1,NULL,4,NULL,'2095',NULL,NULL), + (4,NULL,6,'2021-06-07 08:52:20',50.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'10552',NULL,NULL), + (5,NULL,6,'2021-06-07 08:52:20',50.00,NULL,NULL,'USD',1,'Q90901X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (6,NULL,6,'2023-06-14 08:10:20',500.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,4,NULL,'509',NULL,NULL), + (7,NULL,6,'2023-09-05 08:52:20',1750.00,NULL,NULL,'USD',1,NULL,NULL,1,NULL,1,NULL,'102',NULL,NULL), + (8,NULL,6,'2023-01-13 17:03:20',50.00,NULL,NULL,'USD',1,'P20193L2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (9,NULL,6,'2022-10-07 08:52:20',10.00,NULL,NULL,'USD',1,'P40232Y3',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (10,NULL,6,'2019-04-14 10:52:20',250.00,NULL,NULL,'USD',1,'P20193L6',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (11,NULL,6,'2023-09-06 04:52:20',500.00,NULL,NULL,'JPY',1,'PL71',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (12,NULL,6,'2022-06-06 22:19:00',50.00,NULL,NULL,'USD',1,'P291X1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), (13,NULL,6,'2023-06-07 00:00:00',50.00,NULL,NULL,'USD',1,'PL32I',NULL,1,NULL,1,NULL,NULL,NULL,NULL), (14,NULL,6,'2023-07-07 00:00:00',50.00,NULL,NULL,'USD',1,'PL32II',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (15,NULL,6,'2022-06-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I591',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (16,NULL,6,'2022-07-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I592',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (17,NULL,6,'2022-08-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I593',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (18,NULL,6,'2022-09-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I594',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (19,NULL,6,'2022-10-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I595',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (20,NULL,6,'2022-11-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I596',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (21,NULL,6,'2022-12-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I597',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (22,NULL,6,'2023-01-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I598',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (23,NULL,6,'2023-02-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I599',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (24,NULL,6,'2023-03-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I5910',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (25,NULL,6,'2023-04-07 08:14:03',25.00,NULL,NULL,'USD',1,'PL32I5911',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (26,NULL,6,'2023-01-07 08:14:03',10.00,NULL,NULL,'CAD',1,'PL32I991',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (27,NULL,6,'2023-02-07 08:14:03',10.00,NULL,NULL,'CAD',1,'PL32I992',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (28,NULL,6,'2023-03-07 08:14:03',10.00,NULL,NULL,'CAD',1,'PL32I993',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (29,NULL,6,'2023-04-07 08:14:03',10.00,NULL,NULL,'CAD',1,'PL32I994',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (30,NULL,6,'2023-05-07 08:14:03',10.00,NULL,NULL,'CAD',1,'PL32I995',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (31,NULL,6,'2023-08-07 08:14:03',5.00,NULL,NULL,'EUR',1,'PL32I1031',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (32,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'64513c6b182dd113',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (33,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'09ee74f9ecb823ec',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (34,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'4ce9aedf1f234da0',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (35,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'512b3d1dc8a5f445',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (36,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'eb95fb812af107b4',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (37,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'0f5727c4f2fba19d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (38,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'627c915408145f96',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (39,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'e42e6b0e9e4db574',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (40,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'f664fee8723012b3',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (41,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'486111c13c141599',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (42,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'9327cb33c0c0dea3',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (43,NULL,6,'2023-09-07 08:14:03',100.00,NULL,NULL,'USD',1,'b6fe67eaec8fe919',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (44,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'c5a3302fcb3e2b0d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (45,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'d3f9b7e3a0f32567',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (46,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'0b8a02400a70bc02',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (47,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'7b5542f56c10cf47',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (48,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'43e8695c96d705be',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (49,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'74f30aa71ec48b62',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (50,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'7e3b938ada287d13',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (51,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'010bb9d39ae6a543',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (52,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'df652d2ee2efed9a',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (53,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'723ef4f1b30eec0d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (54,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'6152710332f36ae2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (55,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'cf32704c35ebc613',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (56,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'8219ebeba14e643a',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (57,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'60817723ca94ab56',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (58,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'93b36441cf4b0a54',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (59,NULL,6,'2023-09-07 08:14:03',50.00,NULL,NULL,'USD',1,'ec602fce6cc9def0',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (60,NULL,6,'2023-09-07 08:14:03',1200.00,NULL,NULL,'USD',1,'59eae501e7d56e51',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (61,NULL,6,'2023-09-07 08:14:03',1200.00,NULL,NULL,'USD',1,'7df84e94209fc3c8',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (62,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'de1c401ec81388ef',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (63,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'81a32d48faca3c52',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (64,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'fb3d8c3560407846',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (65,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'ee05e52900771408',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (66,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'f98e8385f4424e2b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (67,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'831fe88311326c59',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (68,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'0337f0d5f0d0a860',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (69,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'135f5d79c9f28d4f',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (70,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'2cc0ccfa0d26ea3d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (71,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'5fe1503cda9e48f0',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (72,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'71ac264db2075be3',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (73,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'b9aeec333cbd58be',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (74,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'d8ed5eb7553d6771',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (75,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'092ce1dc2fde4d80',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (76,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'ad5f81f6741c976b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (77,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'88fd57e0394cf9fe',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (78,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'325d6dc39b8f23aa',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (79,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'3fa31226078ab28d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (80,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'5bf0c054a3c6738b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (81,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'f3b2b4e17cec608b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (82,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'d07e620ed65884f5',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (83,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'a550b48b852dbd89',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (84,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'f67aba800bcacc50',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (85,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'dd62e9f8e6d401e2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (86,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'5ef0258b063c9ad9',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (87,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'b3c10539a416b64a',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (88,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'4ae4ebe7d483f5b6',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (89,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'bc8675814a2d0d62',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (90,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'8f88be0e4578e656',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (91,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'1d03defa293ebc5b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (92,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'14b57c53021522cb',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (93,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'72935daddbe81c24',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (94,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'a719351eb2134647',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (95,NULL,6,'2023-09-07 08:14:04',800.00,NULL,NULL,'USD',1,'7f6bdc42de380f23',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (96,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'0282223cd697c327',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (97,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'a793a37b727b4d6b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (98,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'bf30d04b0d0e4579',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (99,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'01ecfdb055ee1f7f',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (100,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'34f755c2672bbf29',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (101,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'a15ce82b4e4ff9fb',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (102,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'364dde884027a52b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (103,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'d50d7d7b6708bc3f',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (104,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'8a32de8f5c050637',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (105,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'b81deee06e40e758',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (106,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'47a7606f17fa5b53',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (107,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'e09221a89baaa665',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (108,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'9563cfbdebfd9ffd',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (109,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'4e6045f8f6292323',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (110,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'b1775049dab40826',NULL,1,NULL,1,NULL,NULL,NULL,NULL), - (111,NULL,6,'2023-09-07 08:14:04',50.00,NULL,NULL,'USD',1,'2f861f1eab4a68d0',NULL,1,NULL,1,NULL,NULL,NULL,NULL); + (15,NULL,6,'2022-06-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I591',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (16,NULL,6,'2022-07-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I592',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (17,NULL,6,'2022-08-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I593',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (18,NULL,6,'2022-09-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I594',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (19,NULL,6,'2022-10-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I595',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (20,NULL,6,'2022-11-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I596',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (21,NULL,6,'2022-12-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I597',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (22,NULL,6,'2023-01-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I598',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (23,NULL,6,'2023-02-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I599',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (24,NULL,6,'2023-03-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I5910',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (25,NULL,6,'2023-04-07 08:52:20',25.00,NULL,NULL,'USD',1,'PL32I5911',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (26,NULL,6,'2023-01-07 08:52:20',10.00,NULL,NULL,'CAD',1,'PL32I991',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (27,NULL,6,'2023-02-07 08:52:20',10.00,NULL,NULL,'CAD',1,'PL32I992',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (28,NULL,6,'2023-03-07 08:52:20',10.00,NULL,NULL,'CAD',1,'PL32I993',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (29,NULL,6,'2023-04-07 08:52:20',10.00,NULL,NULL,'CAD',1,'PL32I994',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (30,NULL,6,'2023-05-07 08:52:20',10.00,NULL,NULL,'CAD',1,'PL32I995',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (31,NULL,6,'2023-08-07 08:52:20',5.00,NULL,NULL,'EUR',1,'PL32I1031',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (32,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'f35f748912345b9a',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (33,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'dd391b553f4f7037',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (34,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'2da4195398db1ae0',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (35,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'8cf4116bdebff877',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (36,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'20ab7ccf151901d9',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (37,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'298a429ada534815',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (38,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'192bd422f162a438',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (39,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'4a15317962a69a81',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (40,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'c549161b722ae0e2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (41,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'b0b1c5a7c9f648ea',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (42,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'7702196e43a3e0bd',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (43,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'f694cbe423ce5eb1',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (44,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'d5148071d9a8be10',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (45,NULL,6,'2023-09-07 08:52:20',100.00,NULL,NULL,'USD',1,'6ca3e34d81c40b8c',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (46,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'738f047c3933ff17',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (47,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'b4662a764f39f413',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (48,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'147d7e7900ea9163',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (49,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'62009b8346478628',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (50,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'e13a915046d57644',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (51,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'94888675227342d8',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (52,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'c3a01540d471682a',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (53,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'2bcacb63fbdd6c7e',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (54,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'352e858c7b02b0db',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (55,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'78e6fd67eb8c1988',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (56,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'1d0c36f4ec1a8c97',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (57,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'d0736a30cccfd4d2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (58,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'074c387c1b91896d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (59,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'1aa0e1ab9c39369e',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (60,NULL,6,'2023-09-07 08:52:20',1200.00,NULL,NULL,'USD',1,'0892a3502e515853',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (61,NULL,6,'2023-09-07 08:52:20',1200.00,NULL,NULL,'USD',1,'67949dd99a2da188',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (62,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'4965afacf35fbeb7',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (63,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'e1b3816831d52eba',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (64,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'3932cb472bbe4923',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (65,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'39ca5190991329ec',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (66,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'fff2347b446d8133',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (67,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'84321fe483b3a002',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (68,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'287d120bec064cfc',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (69,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'1d5c72a7ba1ab008',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (70,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'b4da6cbb44ed18e2',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (71,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'96809d2b209570b6',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (72,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'74bac1d50ecee85d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (73,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'3c7cd46f0bf3348b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (74,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'87c4eb44a576dbbf',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (75,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'114039dd0b31e601',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (76,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'5ec3c525c53e3d83',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (77,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'7f5ef93011b78e2b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (78,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'ae656e5ff51eebca',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (79,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'7815807a33652156',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (80,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'fc388eeb07a269da',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (81,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'f1f08848f07f7972',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (82,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'e15f7530fcfe0c49',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (83,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'f2d8d1ef5ab09c03',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (84,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'0798a94b9b3fcea8',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (85,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'c6dded079f482f42',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (86,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'8ab94d8353ac55f7',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (87,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'7937bcc6b55ee936',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (88,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'95b6f8aaf69ff40b',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (89,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'4dd65030b75bc608',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (90,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'03ed936885020f0d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (91,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'5d9f0f0c6e602361',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (92,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'f6faa89eb9fc1e2e',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (93,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'868dc65a6102069e',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (94,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'5589f478beddc83c',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (95,NULL,6,'2023-09-07 08:52:20',800.00,NULL,NULL,'USD',1,'f9de548fc713fb79',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (96,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'79c783e5ae59fa0f',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (97,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'f5b612106db16c15',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (98,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'b701d89308b0dc75',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (99,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'d38d992b9d596f66',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (100,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'8c55cda559f74822',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (101,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'c1ab79895d394891',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (102,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'0b70d01281d94174',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (103,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'e41605930d1c3179',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (104,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'859374cc5860dd44',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (105,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'05e1df46874a0aa9',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (106,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'d0c30ff7377ab5de',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (107,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'a8bc4bbb21ddadbd',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (108,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'1a8ffab23ccff9f5',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (109,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'9fd3e5c674b24e6d',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (110,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'e1856457692f0c1e',NULL,1,NULL,1,NULL,NULL,NULL,NULL), + (111,NULL,6,'2023-09-07 08:52:20',50.00,NULL,NULL,'USD',1,'fe3e6113a8559c6c',NULL,1,NULL,1,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_financial_trxn` ENABLE KEYS */; UNLOCK TABLES; @@ -3981,89 +3949,89 @@ UNLOCK TABLES; LOCK TABLES `civicrm_group_contact` WRITE; /*!40000 ALTER TABLE `civicrm_group_contact` DISABLE KEYS */; INSERT INTO `civicrm_group_contact` (`id`, `group_id`, `contact_id`, `status`, `location_id`, `email_id`) VALUES - (1,2,24,'Added',NULL,NULL), - (2,2,134,'Added',NULL,NULL), - (3,2,88,'Added',NULL,NULL), - (4,2,117,'Added',NULL,NULL), - (5,2,82,'Added',NULL,NULL), - (6,2,72,'Added',NULL,NULL), - (7,2,135,'Added',NULL,NULL), - (8,2,151,'Added',NULL,NULL), - (9,2,143,'Added',NULL,NULL), - (10,2,13,'Added',NULL,NULL), - (11,2,93,'Added',NULL,NULL), - (12,2,141,'Added',NULL,NULL), - (13,2,78,'Added',NULL,NULL), - (14,2,25,'Added',NULL,NULL), - (15,2,128,'Added',NULL,NULL), - (16,2,132,'Added',NULL,NULL), - (17,2,63,'Added',NULL,NULL), - (18,2,170,'Added',NULL,NULL), - (19,2,86,'Added',NULL,NULL), - (20,2,15,'Added',NULL,NULL), - (21,2,60,'Added',NULL,NULL), - (22,2,146,'Added',NULL,NULL), - (23,2,108,'Added',NULL,NULL), - (24,2,95,'Added',NULL,NULL), - (25,2,131,'Added',NULL,NULL), - (26,2,46,'Added',NULL,NULL), - (27,2,110,'Added',NULL,NULL), - (28,2,54,'Added',NULL,NULL), - (29,2,12,'Added',NULL,NULL), - (30,2,23,'Added',NULL,NULL), - (31,2,96,'Added',NULL,NULL), - (32,2,176,'Added',NULL,NULL), - (33,2,123,'Added',NULL,NULL), - (34,2,160,'Added',NULL,NULL), - (35,2,190,'Added',NULL,NULL), + (1,2,55,'Added',NULL,NULL), + (2,2,41,'Added',NULL,NULL), + (3,2,34,'Added',NULL,NULL), + (4,2,171,'Added',NULL,NULL), + (5,2,123,'Added',NULL,NULL), + (6,2,64,'Added',NULL,NULL), + (7,2,178,'Added',NULL,NULL), + (8,2,24,'Added',NULL,NULL), + (9,2,146,'Added',NULL,NULL), + (10,2,4,'Added',NULL,NULL), + (11,2,37,'Added',NULL,NULL), + (12,2,181,'Added',NULL,NULL), + (13,2,98,'Added',NULL,NULL), + (14,2,33,'Added',NULL,NULL), + (15,2,160,'Added',NULL,NULL), + (16,2,148,'Added',NULL,NULL), + (17,2,79,'Added',NULL,NULL), + (18,2,158,'Added',NULL,NULL), + (19,2,145,'Added',NULL,NULL), + (20,2,82,'Added',NULL,NULL), + (21,2,175,'Added',NULL,NULL), + (22,2,102,'Added',NULL,NULL), + (23,2,117,'Added',NULL,NULL), + (24,2,124,'Added',NULL,NULL), + (25,2,28,'Added',NULL,NULL), + (26,2,40,'Added',NULL,NULL), + (27,2,66,'Added',NULL,NULL), + (28,2,32,'Added',NULL,NULL), + (29,2,162,'Added',NULL,NULL), + (30,2,199,'Added',NULL,NULL), + (31,2,26,'Added',NULL,NULL), + (32,2,180,'Added',NULL,NULL), + (33,2,192,'Added',NULL,NULL), + (34,2,141,'Added',NULL,NULL), + (35,2,59,'Added',NULL,NULL), (36,2,100,'Added',NULL,NULL), - (37,2,111,'Added',NULL,NULL), - (38,2,9,'Added',NULL,NULL), - (39,2,162,'Added',NULL,NULL), - (40,2,148,'Added',NULL,NULL), - (41,2,105,'Added',NULL,NULL), - (42,2,31,'Added',NULL,NULL), - (43,2,184,'Added',NULL,NULL), - (44,2,102,'Added',NULL,NULL), - (45,2,29,'Added',NULL,NULL), - (46,2,126,'Added',NULL,NULL), - (47,2,138,'Added',NULL,NULL), - (48,2,150,'Added',NULL,NULL), - (49,2,48,'Added',NULL,NULL), - (50,2,137,'Added',NULL,NULL), - (51,2,200,'Added',NULL,NULL), - (52,2,164,'Added',NULL,NULL), - (53,2,136,'Added',NULL,NULL), - (54,2,5,'Added',NULL,NULL), - (55,2,17,'Added',NULL,NULL), - (56,2,61,'Added',NULL,NULL), - (57,2,145,'Added',NULL,NULL), - (58,2,185,'Added',NULL,NULL), - (59,2,34,'Added',NULL,NULL), - (60,2,169,'Added',NULL,NULL), - (61,3,173,'Added',NULL,NULL), - (62,3,84,'Added',NULL,NULL), - (63,3,59,'Added',NULL,NULL), - (64,3,142,'Added',NULL,NULL), - (65,3,120,'Added',NULL,NULL), - (66,3,81,'Added',NULL,NULL), - (67,3,83,'Added',NULL,NULL), - (68,3,153,'Added',NULL,NULL), - (69,3,74,'Added',NULL,NULL), - (70,3,42,'Added',NULL,NULL), - (71,3,109,'Added',NULL,NULL), - (72,3,30,'Added',NULL,NULL), - (73,3,149,'Added',NULL,NULL), - (74,3,106,'Added',NULL,NULL), - (75,3,175,'Added',NULL,NULL), - (76,4,24,'Added',NULL,NULL), - (77,4,151,'Added',NULL,NULL), - (78,4,128,'Added',NULL,NULL), - (79,4,146,'Added',NULL,NULL), - (80,4,12,'Added',NULL,NULL), + (37,2,11,'Added',NULL,NULL), + (38,2,144,'Added',NULL,NULL), + (39,2,200,'Added',NULL,NULL), + (40,2,47,'Added',NULL,NULL), + (41,2,22,'Added',NULL,NULL), + (42,2,75,'Added',NULL,NULL), + (43,2,112,'Added',NULL,NULL), + (44,2,182,'Added',NULL,NULL), + (45,2,165,'Added',NULL,NULL), + (46,2,132,'Added',NULL,NULL), + (47,2,136,'Added',NULL,NULL), + (48,2,172,'Added',NULL,NULL), + (49,2,186,'Added',NULL,NULL), + (50,2,90,'Added',NULL,NULL), + (51,2,83,'Added',NULL,NULL), + (52,2,120,'Added',NULL,NULL), + (53,2,174,'Added',NULL,NULL), + (54,2,109,'Added',NULL,NULL), + (55,2,69,'Added',NULL,NULL), + (56,2,155,'Added',NULL,NULL), + (57,2,167,'Added',NULL,NULL), + (58,2,96,'Added',NULL,NULL), + (59,2,159,'Added',NULL,NULL), + (60,2,108,'Added',NULL,NULL), + (61,3,78,'Added',NULL,NULL), + (62,3,70,'Added',NULL,NULL), + (63,3,103,'Added',NULL,NULL), + (64,3,107,'Added',NULL,NULL), + (65,3,44,'Added',NULL,NULL), + (66,3,21,'Added',NULL,NULL), + (67,3,84,'Added',NULL,NULL), + (68,3,71,'Added',NULL,NULL), + (69,3,115,'Added',NULL,NULL), + (70,3,56,'Added',NULL,NULL), + (71,3,196,'Added',NULL,NULL), + (72,3,183,'Added',NULL,NULL), + (73,3,62,'Added',NULL,NULL), + (74,3,121,'Added',NULL,NULL), + (75,3,166,'Added',NULL,NULL), + (76,4,55,'Added',NULL,NULL), + (77,4,24,'Added',NULL,NULL), + (78,4,160,'Added',NULL,NULL), + (79,4,102,'Added',NULL,NULL), + (80,4,162,'Added',NULL,NULL), (81,4,100,'Added',NULL,NULL), - (82,4,184,'Added',NULL,NULL), - (83,4,137,'Added',NULL,NULL), + (82,4,112,'Added',NULL,NULL), + (83,4,90,'Added',NULL,NULL), (84,4,202,'Added',NULL,NULL); /*!40000 ALTER TABLE `civicrm_group_contact` ENABLE KEYS */; UNLOCK TABLES; @@ -4147,117 +4115,117 @@ UNLOCK TABLES; LOCK TABLES `civicrm_line_item` WRITE; /*!40000 ALTER TABLE `civicrm_line_item` DISABLE KEYS */; INSERT INTO `civicrm_line_item` (`id`, `entity_table`, `entity_id`, `contribution_id`, `price_field_id`, `label`, `qty`, `unit_price`, `line_total`, `participant_count`, `price_field_value_id`, `financial_type_id`, `non_deductible_amount`, `tax_amount`, `membership_num_terms`) VALUES - (1,'civicrm_contribution',1,1,1,'Contribution Amount',1.00,125.00,125.00,0,1,1,0.00,NULL,NULL), - (2,'civicrm_contribution',2,2,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (3,'civicrm_contribution',3,3,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (4,'civicrm_contribution',4,4,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (5,'civicrm_contribution',5,5,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (6,'civicrm_contribution',6,6,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,NULL,NULL), - (7,'civicrm_contribution',7,7,1,'Contribution Amount',1.00,1750.00,1750.00,0,1,1,0.00,NULL,NULL), - (8,'civicrm_contribution',8,8,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (9,'civicrm_contribution',9,9,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL,NULL), - (10,'civicrm_contribution',10,10,1,'Contribution Amount',1.00,250.00,250.00,0,1,1,0.00,NULL,NULL), - (11,'civicrm_contribution',11,11,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,NULL,NULL), - (12,'civicrm_contribution',12,12,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (13,'civicrm_contribution',13,13,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (14,'civicrm_contribution',14,14,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,NULL,NULL), - (15,'civicrm_contribution',15,15,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (16,'civicrm_contribution',16,16,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (17,'civicrm_contribution',17,17,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (18,'civicrm_contribution',18,18,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (19,'civicrm_contribution',19,19,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (20,'civicrm_contribution',20,20,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (21,'civicrm_contribution',21,21,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (22,'civicrm_contribution',22,22,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (23,'civicrm_contribution',23,23,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (24,'civicrm_contribution',24,24,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (25,'civicrm_contribution',25,25,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,NULL,NULL), - (26,'civicrm_contribution',26,26,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL,NULL), - (27,'civicrm_contribution',27,27,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL,NULL), - (28,'civicrm_contribution',28,28,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL,NULL), - (29,'civicrm_contribution',29,29,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL,NULL), - (30,'civicrm_contribution',30,30,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,NULL,NULL), - (31,'civicrm_contribution',31,31,1,'Contribution Amount',1.00,5.00,5.00,0,1,1,0.00,NULL,NULL), - (32,'civicrm_membership',1,32,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (33,'civicrm_membership',3,34,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (34,'civicrm_membership',7,38,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (35,'civicrm_membership',9,40,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (36,'civicrm_membership',13,44,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (37,'civicrm_membership',15,46,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (38,'civicrm_membership',17,48,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (39,'civicrm_membership',19,50,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (40,'civicrm_membership',21,52,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (41,'civicrm_membership',23,54,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (42,'civicrm_membership',27,58,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (43,'civicrm_membership',29,60,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,NULL,NULL), - (44,'civicrm_membership',2,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (45,'civicrm_membership',4,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (46,'civicrm_membership',5,36,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (47,'civicrm_membership',6,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (48,'civicrm_membership',8,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (49,'civicrm_membership',10,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (50,'civicrm_membership',12,43,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (51,'civicrm_membership',14,45,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (52,'civicrm_membership',16,47,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (53,'civicrm_membership',18,49,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (54,'civicrm_membership',20,51,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (55,'civicrm_membership',24,55,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (56,'civicrm_membership',25,56,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (57,'civicrm_membership',26,57,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (58,'civicrm_membership',28,59,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (59,'civicrm_membership',30,61,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,NULL,NULL), - (60,'civicrm_membership',11,42,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL,NULL), - (61,'civicrm_membership',22,53,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,NULL,NULL), - (63,'civicrm_participant',3,65,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (64,'civicrm_participant',6,68,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (65,'civicrm_participant',9,71,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (66,'civicrm_participant',12,74,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (67,'civicrm_participant',15,77,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (68,'civicrm_participant',18,80,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (69,'civicrm_participant',21,83,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (70,'civicrm_participant',24,86,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (71,'civicrm_participant',25,87,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (72,'civicrm_participant',28,90,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (73,'civicrm_participant',31,93,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (74,'civicrm_participant',34,96,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (75,'civicrm_participant',37,99,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (76,'civicrm_participant',40,102,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (77,'civicrm_participant',43,105,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (78,'civicrm_participant',46,108,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (79,'civicrm_participant',49,111,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (80,'civicrm_participant',50,112,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,NULL,NULL), - (81,'civicrm_participant',1,63,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (82,'civicrm_participant',4,66,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (83,'civicrm_participant',7,69,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (84,'civicrm_participant',10,72,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (85,'civicrm_participant',13,75,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (86,'civicrm_participant',16,78,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (87,'civicrm_participant',19,81,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (88,'civicrm_participant',22,84,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (89,'civicrm_participant',26,88,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (90,'civicrm_participant',29,91,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (91,'civicrm_participant',32,94,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (92,'civicrm_participant',35,97,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (93,'civicrm_participant',38,100,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (94,'civicrm_participant',41,103,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (95,'civicrm_participant',44,106,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (96,'civicrm_participant',47,109,8,'Single',1.00,50.00,50.00,0,16,4,0.00,NULL,NULL), - (97,'civicrm_participant',2,64,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (98,'civicrm_participant',5,67,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (99,'civicrm_participant',8,70,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (100,'civicrm_participant',11,73,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (101,'civicrm_participant',14,76,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (102,'civicrm_participant',17,79,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (103,'civicrm_participant',20,82,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (104,'civicrm_participant',23,85,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (105,'civicrm_participant',27,89,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (106,'civicrm_participant',30,92,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (107,'civicrm_participant',33,95,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (108,'civicrm_participant',36,98,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (109,'civicrm_participant',39,101,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (110,'civicrm_participant',42,104,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (111,'civicrm_participant',45,107,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL), - (112,'civicrm_participant',48,110,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,NULL,NULL); + (1,'civicrm_contribution',1,1,1,'Contribution Amount',1.00,125.00,125.00,0,1,1,0.00,0.00,NULL), + (2,'civicrm_contribution',2,2,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (3,'civicrm_contribution',3,3,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (4,'civicrm_contribution',4,4,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (5,'civicrm_contribution',5,5,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (6,'civicrm_contribution',6,6,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,0.00,NULL), + (7,'civicrm_contribution',7,7,1,'Contribution Amount',1.00,1750.00,1750.00,0,1,1,0.00,0.00,NULL), + (8,'civicrm_contribution',8,8,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (9,'civicrm_contribution',9,9,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,0.00,NULL), + (10,'civicrm_contribution',10,10,1,'Contribution Amount',1.00,250.00,250.00,0,1,1,0.00,0.00,NULL), + (11,'civicrm_contribution',11,11,1,'Contribution Amount',1.00,500.00,500.00,0,1,1,0.00,0.00,NULL), + (12,'civicrm_contribution',12,12,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (13,'civicrm_contribution',13,13,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (14,'civicrm_contribution',14,14,1,'Contribution Amount',1.00,50.00,50.00,0,1,1,0.00,0.00,NULL), + (15,'civicrm_contribution',15,15,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (16,'civicrm_contribution',16,16,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (17,'civicrm_contribution',17,17,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (18,'civicrm_contribution',18,18,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (19,'civicrm_contribution',19,19,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (20,'civicrm_contribution',20,20,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (21,'civicrm_contribution',21,21,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (22,'civicrm_contribution',22,22,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (23,'civicrm_contribution',23,23,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (24,'civicrm_contribution',24,24,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (25,'civicrm_contribution',25,25,1,'Contribution Amount',1.00,25.00,25.00,0,1,1,0.00,0.00,NULL), + (26,'civicrm_contribution',26,26,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,0.00,NULL), + (27,'civicrm_contribution',27,27,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,0.00,NULL), + (28,'civicrm_contribution',28,28,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,0.00,NULL), + (29,'civicrm_contribution',29,29,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,0.00,NULL), + (30,'civicrm_contribution',30,30,1,'Contribution Amount',1.00,10.00,10.00,0,1,1,0.00,0.00,NULL), + (31,'civicrm_contribution',31,31,1,'Contribution Amount',1.00,5.00,5.00,0,1,1,0.00,0.00,NULL), + (32,'civicrm_membership',1,32,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (33,'civicrm_membership',3,34,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (34,'civicrm_membership',5,36,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (35,'civicrm_membership',7,38,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (36,'civicrm_membership',9,40,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (37,'civicrm_membership',13,44,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (38,'civicrm_membership',15,46,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (39,'civicrm_membership',17,48,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (40,'civicrm_membership',19,50,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (41,'civicrm_membership',20,51,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (42,'civicrm_membership',21,52,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (43,'civicrm_membership',23,54,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (44,'civicrm_membership',27,58,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (45,'civicrm_membership',29,60,4,'General',1.00,100.00,100.00,NULL,7,2,0.00,0.00,NULL), + (46,'civicrm_membership',2,33,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (47,'civicrm_membership',4,35,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (48,'civicrm_membership',6,37,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (49,'civicrm_membership',8,39,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (50,'civicrm_membership',10,41,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (51,'civicrm_membership',12,43,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (52,'civicrm_membership',14,45,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (53,'civicrm_membership',16,47,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (54,'civicrm_membership',18,49,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (55,'civicrm_membership',24,55,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (56,'civicrm_membership',25,56,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (57,'civicrm_membership',26,57,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (58,'civicrm_membership',28,59,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (59,'civicrm_membership',30,61,4,'Student',1.00,50.00,50.00,NULL,8,2,0.00,0.00,NULL), + (60,'civicrm_membership',11,42,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,0.00,NULL), + (61,'civicrm_membership',22,53,4,'Lifetime',1.00,1200.00,1200.00,NULL,9,2,0.00,0.00,NULL), + (63,'civicrm_participant',3,65,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (64,'civicrm_participant',6,68,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (65,'civicrm_participant',9,71,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (66,'civicrm_participant',12,74,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (67,'civicrm_participant',15,77,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (68,'civicrm_participant',18,80,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (69,'civicrm_participant',21,83,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (70,'civicrm_participant',24,86,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (71,'civicrm_participant',25,87,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (72,'civicrm_participant',28,90,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (73,'civicrm_participant',31,93,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (74,'civicrm_participant',34,96,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (75,'civicrm_participant',37,99,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (76,'civicrm_participant',40,102,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (77,'civicrm_participant',43,105,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (78,'civicrm_participant',46,108,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (79,'civicrm_participant',49,111,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (80,'civicrm_participant',50,112,7,'Tiny-tots (ages 5-8)',1.00,800.00,800.00,0,13,4,0.00,0.00,NULL), + (81,'civicrm_participant',1,63,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (82,'civicrm_participant',4,66,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (83,'civicrm_participant',7,69,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (84,'civicrm_participant',10,72,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (85,'civicrm_participant',13,75,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (86,'civicrm_participant',16,78,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (87,'civicrm_participant',19,81,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (88,'civicrm_participant',22,84,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (89,'civicrm_participant',26,88,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (90,'civicrm_participant',29,91,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (91,'civicrm_participant',32,94,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (92,'civicrm_participant',35,97,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (93,'civicrm_participant',38,100,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (94,'civicrm_participant',41,103,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (95,'civicrm_participant',44,106,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (96,'civicrm_participant',47,109,8,'Single',1.00,50.00,50.00,0,16,4,0.00,0.00,NULL), + (97,'civicrm_participant',2,64,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (98,'civicrm_participant',5,67,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (99,'civicrm_participant',8,70,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (100,'civicrm_participant',11,73,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (101,'civicrm_participant',14,76,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (102,'civicrm_participant',17,79,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (103,'civicrm_participant',20,82,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (104,'civicrm_participant',23,85,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (105,'civicrm_participant',27,89,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (106,'civicrm_participant',30,92,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (107,'civicrm_participant',33,95,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (108,'civicrm_participant',36,98,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (109,'civicrm_participant',39,101,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (110,'civicrm_participant',42,104,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (111,'civicrm_participant',45,107,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL), + (112,'civicrm_participant',48,110,9,'Soprano',1.00,50.00,50.00,0,21,2,0.00,0.00,NULL); /*!40000 ALTER TABLE `civicrm_line_item` ENABLE KEYS */; UNLOCK TABLES; @@ -4268,9 +4236,9 @@ UNLOCK TABLES; LOCK TABLES `civicrm_loc_block` WRITE; /*!40000 ALTER TABLE `civicrm_loc_block` DISABLE KEYS */; INSERT INTO `civicrm_loc_block` (`id`, `address_id`, `email_id`, `phone_id`, `im_id`, `address_2_id`, `email_2_id`, `phone_2_id`, `im_2_id`) VALUES - (1,176,208,161,NULL,NULL,NULL,NULL,NULL), - (2,177,209,162,NULL,NULL,NULL,NULL,NULL), - (3,178,210,163,NULL,NULL,NULL,NULL,NULL); + (1,180,191,162,NULL,NULL,NULL,NULL,NULL), + (2,181,192,163,NULL,NULL,NULL,NULL,NULL), + (3,182,193,164,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_loc_block` ENABLE KEYS */; UNLOCK TABLES; @@ -4296,7 +4264,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_log` WRITE; /*!40000 ALTER TABLE `civicrm_log` DISABLE KEYS */; INSERT INTO `civicrm_log` (`id`, `entity_table`, `entity_id`, `data`, `modified_id`, `modified_date`) VALUES - (1,'civicrm_contact',202,'civicrm_contact,202',202,'2023-09-07 08:14:01'); + (1,'civicrm_contact',202,'civicrm_contact,202',202,'2023-09-07 08:52:18'); /*!40000 ALTER TABLE `civicrm_log` ENABLE KEYS */; UNLOCK TABLES; @@ -4306,8 +4274,8 @@ UNLOCK TABLES; LOCK TABLES `civicrm_mail_settings` WRITE; /*!40000 ALTER TABLE `civicrm_mail_settings` DISABLE KEYS */; -INSERT INTO `civicrm_mail_settings` (`id`, `domain_id`, `name`, `is_default`, `domain`, `localpart`, `return_path`, `protocol`, `server`, `port`, `username`, `password`, `is_ssl`, `source`, `activity_status`, `is_non_case_email_skipped`, `is_contact_creation_disabled_if_no_match`) VALUES - (1,1,'default',1,'EXAMPLE.ORG',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0); +INSERT INTO `civicrm_mail_settings` (`id`, `domain_id`, `name`, `is_default`, `domain`, `localpart`, `return_path`, `protocol`, `server`, `port`, `username`, `password`, `is_ssl`, `source`, `activity_status`, `is_non_case_email_skipped`, `is_contact_creation_disabled_if_no_match`, `is_active`, `activity_type_id`, `campaign_id`, `activity_source`, `activity_targets`, `activity_assignees`) VALUES + (1,1,'default',1,'EXAMPLE.ORG',NULL,NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_mail_settings` ENABLE KEYS */; UNLOCK TABLES; @@ -4716,36 +4684,36 @@ UNLOCK TABLES; LOCK TABLES `civicrm_membership` WRITE; /*!40000 ALTER TABLE `civicrm_membership` DISABLE KEYS */; INSERT INTO `civicrm_membership` (`id`, `contact_id`, `membership_type_id`, `join_date`, `start_date`, `end_date`, `source`, `status_id`, `is_override`, `status_override_end_date`, `owner_membership_id`, `max_related`, `is_test`, `is_pay_later`, `contribution_recur_id`, `campaign_id`) VALUES - (1,134,1,'2023-09-07','2023-09-07','2025-09-06','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (2,193,2,'2023-09-06','2023-09-06','2024-09-05','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (3,130,1,'2023-09-05','2023-09-05','2025-09-04','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (4,154,2,'2023-09-04','2023-09-04','2024-09-03','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (5,23,2,'2022-09-03','2022-09-03','2023-09-02','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL), - (6,17,2,'2023-09-02','2023-09-02','2024-09-01','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (7,169,1,'2023-09-01','2023-09-01','2025-08-31','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (8,162,2,'2023-08-31','2023-08-31','2024-08-30','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (9,187,1,'2023-08-30','2023-08-30','2025-08-29','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (10,55,2,'2022-08-29','2022-08-29','2023-08-28','Donation',4,0,NULL,NULL,NULL,0,0,NULL,NULL), - (11,145,3,'2023-08-28','2023-08-28',NULL,'Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (12,190,2,'2023-08-27','2023-08-27','2024-08-26','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (13,82,1,'2023-08-26','2023-08-26','2025-08-25','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (14,70,2,'2023-08-25','2023-08-25','2024-08-24','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (15,194,1,'2021-05-18','2021-05-18','2023-05-17','Check',3,0,NULL,NULL,NULL,0,0,NULL,NULL), - (16,114,2,'2023-08-23','2023-08-23','2024-08-22','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (17,165,1,'2023-08-22','2023-08-22','2025-08-21','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (18,44,2,'2023-08-21','2023-08-21','2024-08-20','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (19,33,1,'2023-08-20','2023-08-20','2025-08-19','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (20,151,2,'2022-08-19','2022-08-19','2023-08-18','Donation',4,0,NULL,NULL,NULL,0,0,NULL,NULL), - (21,131,1,'2023-08-18','2023-08-18','2025-08-17','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (22,72,3,'2023-08-17','2023-08-17',NULL,'Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (23,122,1,'2023-08-16','2023-08-16','2025-08-15','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (24,111,2,'2023-08-15','2023-08-15','2024-08-14','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (25,11,2,'2022-08-14','2022-08-14','2023-08-13','Donation',4,0,NULL,NULL,NULL,0,0,NULL,NULL), - (26,97,2,'2023-08-13','2023-08-13','2024-08-12','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (27,191,1,'2023-08-12','2023-08-12','2025-08-11','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (28,91,2,'2023-08-11','2023-08-11','2024-08-10','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (29,90,1,'2023-08-10','2023-08-10','2025-08-09','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), - (30,200,2,'2022-08-09','2022-08-09','2023-08-08','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL); + (1,11,1,'2023-09-07','2023-09-07','2025-09-06','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (2,33,2,'2023-09-06','2023-09-06','2024-09-05','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (3,75,1,'2023-09-05','2023-09-05','2025-09-04','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (4,16,2,'2023-09-04','2023-09-04','2024-09-03','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (5,107,1,'2021-08-06','2021-08-06','2023-08-05','Donation',3,0,NULL,NULL,NULL,0,0,NULL,NULL), + (6,141,2,'2023-09-02','2023-09-02','2024-09-01','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (7,50,1,'2023-09-01','2023-09-01','2025-08-31','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (8,88,2,'2023-08-31','2023-08-31','2024-08-30','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (9,154,1,'2023-08-30','2023-08-30','2025-08-29','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (10,174,2,'2022-08-29','2022-08-29','2023-08-28','Payment',4,0,NULL,NULL,NULL,0,0,NULL,NULL), + (11,8,3,'2023-08-28','2023-08-28',NULL,'Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (12,36,2,'2023-08-27','2023-08-27','2024-08-26','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (13,44,1,'2023-08-26','2023-08-26','2025-08-25','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (14,37,2,'2023-08-25','2023-08-25','2024-08-24','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (15,197,1,'2021-05-18','2021-05-18','2023-05-17','Check',3,0,NULL,NULL,NULL,0,0,NULL,NULL), + (16,117,2,'2023-08-23','2023-08-23','2024-08-22','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (17,15,1,'2023-08-22','2023-08-22','2025-08-21','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (18,69,2,'2023-08-21','2023-08-21','2024-08-20','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (19,26,1,'2023-08-20','2023-08-20','2025-08-19','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (20,196,1,'2021-04-08','2021-04-08','2023-04-07','Payment',3,0,NULL,NULL,NULL,0,0,NULL,NULL), + (21,42,1,'2023-08-18','2023-08-18','2025-08-17','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (22,150,3,'2023-08-17','2023-08-17',NULL,'Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (23,7,1,'2023-08-16','2023-08-16','2025-08-15','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (24,198,2,'2023-08-15','2023-08-15','2024-08-14','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (25,186,2,'2022-08-14','2022-08-14','2023-08-13','Check',4,0,NULL,NULL,NULL,0,0,NULL,NULL), + (26,140,2,'2023-08-13','2023-08-13','2024-08-12','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (27,163,1,'2023-08-12','2023-08-12','2025-08-11','Payment',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (28,121,2,'2023-08-11','2023-08-11','2024-08-10','Donation',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (29,162,1,'2023-08-10','2023-08-10','2025-08-09','Check',1,0,NULL,NULL,NULL,0,0,NULL,NULL), + (30,202,2,'2022-08-09','2022-08-09','2023-08-08','Check',4,0,NULL,NULL,NULL,0,0,NULL,NULL); /*!40000 ALTER TABLE `civicrm_membership` ENABLE KEYS */; UNLOCK TABLES; @@ -4767,36 +4735,36 @@ UNLOCK TABLES; LOCK TABLES `civicrm_membership_log` WRITE; /*!40000 ALTER TABLE `civicrm_membership_log` DISABLE KEYS */; INSERT INTO `civicrm_membership_log` (`id`, `membership_id`, `status_id`, `start_date`, `end_date`, `modified_id`, `modified_date`, `membership_type_id`, `max_related`) VALUES - (1,25,4,'2022-08-14','2023-08-13',11,'2023-09-07',2,NULL), - (2,6,1,'2023-09-02','2024-09-01',17,'2023-09-07',2,NULL), - (3,5,4,'2022-09-03','2023-09-02',23,'2023-09-07',2,NULL), - (4,19,1,'2023-08-20','2025-08-19',33,'2023-09-07',1,NULL), - (5,18,1,'2023-08-21','2024-08-20',44,'2023-09-07',2,NULL), - (6,10,4,'2022-08-29','2023-08-28',55,'2023-09-07',2,NULL), - (7,14,1,'2023-08-25','2024-08-24',70,'2023-09-07',2,NULL), - (8,22,1,'2023-08-17',NULL,72,'2023-09-07',3,NULL), - (9,13,1,'2023-08-26','2025-08-25',82,'2023-09-07',1,NULL), - (10,29,1,'2023-08-10','2025-08-09',90,'2023-09-07',1,NULL), - (11,28,1,'2023-08-11','2024-08-10',91,'2023-09-07',2,NULL), - (12,26,1,'2023-08-13','2024-08-12',97,'2023-09-07',2,NULL), - (13,24,1,'2023-08-15','2024-08-14',111,'2023-09-07',2,NULL), - (14,16,1,'2023-08-23','2024-08-22',114,'2023-09-07',2,NULL), - (15,23,1,'2023-08-16','2025-08-15',122,'2023-09-07',1,NULL), - (16,3,1,'2023-09-05','2025-09-04',130,'2023-09-07',1,NULL), - (17,21,1,'2023-08-18','2025-08-17',131,'2023-09-07',1,NULL), - (18,1,1,'2023-09-07','2025-09-06',134,'2023-09-07',1,NULL), - (19,11,1,'2023-08-28',NULL,145,'2023-09-07',3,NULL), - (20,20,4,'2022-08-19','2023-08-18',151,'2023-09-07',2,NULL), - (21,4,1,'2023-09-04','2024-09-03',154,'2023-09-07',2,NULL), - (22,8,1,'2023-08-31','2024-08-30',162,'2023-09-07',2,NULL), - (23,17,1,'2023-08-22','2025-08-21',165,'2023-09-07',1,NULL), - (24,7,1,'2023-09-01','2025-08-31',169,'2023-09-07',1,NULL), - (25,9,1,'2023-08-30','2025-08-29',187,'2023-09-07',1,NULL), - (26,12,1,'2023-08-27','2024-08-26',190,'2023-09-07',2,NULL), - (27,27,1,'2023-08-12','2025-08-11',191,'2023-09-07',1,NULL), - (28,2,1,'2023-09-06','2024-09-05',193,'2023-09-07',2,NULL), - (29,15,3,'2021-05-18','2023-05-17',194,'2023-09-07',1,NULL), - (30,30,4,'2022-08-09','2023-08-08',200,'2023-09-07',2,NULL); + (1,23,1,'2023-08-16','2025-08-15',7,'2023-09-07',1,NULL), + (2,11,1,'2023-08-28',NULL,8,'2023-09-07',3,NULL), + (3,1,1,'2023-09-07','2025-09-06',11,'2023-09-07',1,NULL), + (4,17,1,'2023-08-22','2025-08-21',15,'2023-09-07',1,NULL), + (5,4,1,'2023-09-04','2024-09-03',16,'2023-09-07',2,NULL), + (6,19,1,'2023-08-20','2025-08-19',26,'2023-09-07',1,NULL), + (7,2,1,'2023-09-06','2024-09-05',33,'2023-09-07',2,NULL), + (8,12,1,'2023-08-27','2024-08-26',36,'2023-09-07',2,NULL), + (9,14,1,'2023-08-25','2024-08-24',37,'2023-09-07',2,NULL), + (10,21,1,'2023-08-18','2025-08-17',42,'2023-09-07',1,NULL), + (11,13,1,'2023-08-26','2025-08-25',44,'2023-09-07',1,NULL), + (12,7,1,'2023-09-01','2025-08-31',50,'2023-09-07',1,NULL), + (13,18,1,'2023-08-21','2024-08-20',69,'2023-09-07',2,NULL), + (14,3,1,'2023-09-05','2025-09-04',75,'2023-09-07',1,NULL), + (15,8,1,'2023-08-31','2024-08-30',88,'2023-09-07',2,NULL), + (16,5,3,'2021-08-06','2023-08-05',107,'2023-09-07',1,NULL), + (17,16,1,'2023-08-23','2024-08-22',117,'2023-09-07',2,NULL), + (18,28,1,'2023-08-11','2024-08-10',121,'2023-09-07',2,NULL), + (19,26,1,'2023-08-13','2024-08-12',140,'2023-09-07',2,NULL), + (20,6,1,'2023-09-02','2024-09-01',141,'2023-09-07',2,NULL), + (21,22,1,'2023-08-17',NULL,150,'2023-09-07',3,NULL), + (22,9,1,'2023-08-30','2025-08-29',154,'2023-09-07',1,NULL), + (23,29,1,'2023-08-10','2025-08-09',162,'2023-09-07',1,NULL), + (24,27,1,'2023-08-12','2025-08-11',163,'2023-09-07',1,NULL), + (25,10,4,'2022-08-29','2023-08-28',174,'2023-09-07',2,NULL), + (26,25,4,'2022-08-14','2023-08-13',186,'2023-09-07',2,NULL), + (27,20,3,'2021-04-08','2023-04-07',196,'2023-09-07',1,NULL), + (28,15,3,'2021-05-18','2023-05-17',197,'2023-09-07',1,NULL), + (29,24,1,'2023-08-15','2024-08-14',198,'2023-09-07',2,NULL), + (30,30,4,'2022-08-09','2023-08-08',202,'2023-09-07',2,NULL); /*!40000 ALTER TABLE `civicrm_membership_log` ENABLE KEYS */; UNLOCK TABLES; @@ -4913,436 +4881,433 @@ INSERT INTO `civicrm_menu` (`id`, `domain_id`, `path`, `path_arguments`, `title` (34,1,'civicrm/ajax/attachment',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:29:\"CRM_Core_Page_AJAX_Attachment\";i:1;s:10:\"attachFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), (35,1,'civicrm/api',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), (36,1,'civicrm/api3',NULL,'CiviCRM API v3','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_APIExplorer\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (37,1,'civicrm/ajax/apiexample',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:14:\"getExampleFile\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (38,1,'civicrm/ajax/apidoc',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:6:\"getDoc\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (39,1,'civicrm/ajax/rest',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:4:\"ajax\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (40,1,'civicrm/api/json',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:8:\"ajaxJson\";}','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (41,1,'civicrm/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:12:\"loadTemplate\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (42,1,'civicrm/ajax/chart',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (43,1,'civicrm/asset/builder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"\\Civi\\Core\\AssetBuilder\";i:1;s:7:\"pageRun\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (44,1,'civicrm/contribute/ajax/tableview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (45,1,'civicrm/payment/ipn',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Core_Payment\";i:1;s:9:\"handleIPN\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,1,1,0,1,1,0,0,'a:0:{}'), - (46,1,'civicrm/batch',NULL,'Batch Data Entry','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (47,1,'civicrm/batch/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Batch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (48,1,'civicrm/batch/entry',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Entry\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (49,1,'civicrm/ajax/batch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:9:\"batchSave\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (50,1,'civicrm/ajax/batchlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:12:\"getBatchList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (51,1,'civicrm/ajax/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Page_AJAX\";i:1;s:3:\"run\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (52,1,'civicrm/dev/qunit',NULL,'QUnit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_Core_Page_QUnit\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (53,1,'civicrm/dev/fake-error',NULL,'Fake Error','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Page_FakeError\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (54,1,'civicrm/profile-editor/schema',NULL,'ProfileEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:25:\"CRM_UF_Page_ProfileEditor\";i:1;s:13:\"getSchemaJSON\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (55,1,'civicrm/a',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"\\Civi\\Angular\\Page\\Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (56,1,'civicrm/ajax/angular-modules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"\\Civi\\Angular\\Page\\Modules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (57,1,'civicrm/ajax/recurringentity/update-mode',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:34:\"CRM_Core_Page_AJAX_RecurringEntity\";i:1;s:10:\"updateMode\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (58,1,'civicrm/recurringentity/preview',NULL,'Confirm dates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Core_Page_RecurringEntityPreview\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (59,1,'civicrm/shortcode',NULL,'Insert CiviCRM Content','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Form_ShortCode\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (60,1,'civicrm/task/add-to-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Form_Task_AddToGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (61,1,'civicrm/task/remove-from-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contact_Form_Task_RemoveFromGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (62,1,'civicrm/task/add-to-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contact_Form_Task_AddToTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (63,1,'civicrm/task/remove-from-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Form_Task_RemoveFromTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (64,1,'civicrm/task/send-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (65,1,'civicrm/task/make-mailing-label',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Label\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (66,1,'civicrm/task/pick-profile',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contact_Form_Task_PickProfile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (67,1,'civicrm/task/print-document',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (68,1,'civicrm/task/unhold-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Unhold\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (69,1,'civicrm/task/alter-contact-preference',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contact_Form_Task_AlterPreferences\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (70,1,'civicrm/task/delete-contact',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (71,1,'civicrm/task/add-activity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (72,1,'civicrm/payment/form',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Financial_Form_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,1,1,0,0,1,0,0,'a:0:{}'), - (73,1,'civicrm/payment/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Financial_Form_PaymentEdit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (74,1,'civicrm/import',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,400,1,1,0,'a:0:{}'), - (75,1,'civicrm/import/contact',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,410,1,1,0,'a:0:{}'), - (76,1,'civicrm/import/contact/summary',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Import_Form_Summary\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Import Contacts\";s:3:\"url\";s:31:\"/civicrm/import/contact?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,410,1,1,0,'a:0:{}'), - (77,1,'civicrm/import/outcome',NULL,'Import results','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Import_Forms\";i:1;s:9:\"outputCSV\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (78,1,'civicrm/import/activity',NULL,'Import Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,420,1,1,0,'a:0:{}'), - (79,1,'civicrm/import/contribution',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,520,1,1,0,'a:0:{}'), - (80,1,'civicrm/import/custom','id=%%id%%','Import Multi-value Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Custom_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,420,1,1,0,'a:0:{}'), - (81,1,'civicrm/ajax/status',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Contact_Import_Page_AJAX\";i:1;s:6:\"status\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (82,1,'civicrm/import/datasource',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Import_Form_DataSourceConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,450,1,1,0,'a:0:{}'), - (83,1,'civicrm/custom/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Custom_Form_CustomData\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (84,1,'civicrm/ajax/optionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:13:\"getOptionList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (85,1,'civicrm/ajax/reorder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:11:\"fixOrdering\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (86,1,'civicrm/ajax/multirecordfieldlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:23:\"getMultiRecordFieldList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (87,1,'civicrm/admin/custom/group',NULL,'Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (88,1,'civicrm/admin/custom/group/edit',NULL,'Configure Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (89,1,'civicrm/admin/custom/group/preview',NULL,'Custom Field Preview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:23:\"CRM_Custom_Form_Preview\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (90,1,'civicrm/admin/custom/group/delete',NULL,'Delete Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:27:\"CRM_Custom_Form_DeleteGroup\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (91,1,'civicrm/admin/custom/group/field',NULL,'Custom Data Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,11,1,0,0,'a:0:{}'), - (92,1,'civicrm/admin/custom/group/field/delete',NULL,'Delete Custom Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:27:\"CRM_Custom_Form_DeleteField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (93,1,'civicrm/admin/custom/group/field/option',NULL,'Custom Field - Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:22:\"CRM_Custom_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (94,1,'civicrm/admin/custom/group/field/add',NULL,'Custom Field - Add','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (95,1,'civicrm/admin/custom/group/field/update',NULL,'Custom Field - Edit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (96,1,'civicrm/admin/custom/group/field/move',NULL,'Custom Field - Move','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:25:\"CRM_Custom_Form_MoveField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (97,1,'civicrm/admin/uf/group',NULL,'Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:2:{s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (98,1,'civicrm/admin/uf/group/preview',NULL,'Preview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_UF_Form_Preview\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (99,1,'civicrm/admin/uf/group/field',NULL,'CiviCRM Profile Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,21,1,0,0,'a:0:{}'), - (100,1,'civicrm/admin/uf/group/field/add',NULL,'Add Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,22,1,0,0,'a:0:{}'), - (101,1,'civicrm/admin/uf/group/field/update',NULL,'Edit Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,23,1,0,0,'a:0:{}'), - (102,1,'civicrm/admin/uf/group/add',NULL,'New CiviCRM Profile','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,24,1,0,0,'a:0:{}'), - (103,1,'civicrm/admin/uf/group/update',NULL,'Profile Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,25,1,0,0,'a:0:{}'), - (104,1,'civicrm/admin/uf/group/setting',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_UF_Form_AdvanceSetting\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,0,1,0,0,'a:0:{}'), - (105,1,'civicrm/admin/options/activity_type',NULL,'Activity Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:2:{s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (106,1,'civicrm/admin/reltype',NULL,'Relationship Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_RelationshipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,35,1,0,0,'a:2:{s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (107,1,'civicrm/admin/reltype/edit',NULL,'Edit Relationship Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_RelationshipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:18:\"Relationship Types\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (108,1,'civicrm/admin/options/subtype',NULL,'Contact Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_ContactType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (109,1,'civicrm/admin/options/subtype/edit',NULL,'Edit Contact Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_ContactType\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:13:\"Contact Types\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (110,1,'civicrm/admin/options/gender',NULL,'Gender Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,45,1,0,0,'a:2:{s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (111,1,'civicrm/admin/options/individual_prefix',NULL,'Individual Prefixes (Ms, Mr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,50,1,0,0,'a:2:{s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (112,1,'civicrm/admin/options/individual_suffix',NULL,'Individual Suffixes (Jr, Sr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,55,1,0,0,'a:2:{s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (113,1,'civicrm/admin/locationType',NULL,'Location Types (Home, Work...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LocationType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,60,1,0,0,'a:2:{s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (114,1,'civicrm/admin/locationType/edit',NULL,'Edit Location Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_LocationType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (115,1,'civicrm/admin/options/website_type',NULL,'Website Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,65,1,0,0,'a:2:{s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (116,1,'civicrm/admin/options/instant_messenger_service',NULL,'Instant Messenger Services','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,70,1,0,0,'a:2:{s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (117,1,'civicrm/admin/options/mobile_provider',NULL,'Mobile Phone Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,75,1,0,0,'a:2:{s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (118,1,'civicrm/admin/options/phone_type',NULL,'Phone Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,80,1,0,0,'a:2:{s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n Mobile, Fax, Pager)\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (119,1,'civicrm/admin/setting/preferences/display',NULL,'Display Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Display\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,90,1,0,0,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (120,1,'civicrm/admin/setting/search',NULL,'Search Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Form_Setting_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,95,1,0,0,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (121,1,'civicrm/admin/setting/preferences/date',NULL,'View Date Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Page_PreferencesDate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (122,1,'civicrm/admin/menu',NULL,'Navigation Menu','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Navigation\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,100,1,0,0,'a:2:{s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (123,1,'civicrm/admin/options/wordreplacements',NULL,'Word Replacements','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_WordReplacements\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,105,1,0,0,'a:2:{s:4:\"desc\";s:18:\"Word Replacements.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (124,1,'civicrm/admin/options/custom_search',NULL,'Manage Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,110,1,0,0,'a:2:{s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (125,1,'civicrm/admin/domain','action=update','Organization Address and Contact Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contact_Form_Domain\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (126,1,'civicrm/admin/options/from_email_address',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (127,1,'civicrm/admin/messageTemplates',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Page_MessageTemplates\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:2:{s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (128,1,'civicrm/admin/messageTemplates/add',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Form_MessageTemplates\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Message Templates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,262,1,0,0,'a:1:{s:4:\"desc\";s:26:\"Add/Edit Message Templates\";}'), - (129,1,'civicrm/admin/scheduleReminders',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCRM data\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Page_ScheduleReminders\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:2:{s:4:\"desc\";s:19:\"Schedule Reminders.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (130,1,'civicrm/admin/scheduleReminders/edit',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCRM data\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Form_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:18:\"Schedule Reminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (131,1,'civicrm/admin/weight',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_Weight\";i:1;s:8:\"fixOrder\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (132,1,'civicrm/admin/options/preferred_communication_method',NULL,'Preferred Communication Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,50,1,0,0,'a:2:{s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (133,1,'civicrm/admin/labelFormats',NULL,'Label Page Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LabelFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,60,1,0,0,'a:2:{s:4:\"desc\";s:82:\"Configure label sizes and page layouts that are used when printing mailing labels.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (134,1,'civicrm/admin/pdfFormats',NULL,'Print Page (PDF) Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_PdfFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,70,1,0,0,'a:2:{s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (135,1,'civicrm/admin/options/communication_style',NULL,'Communication Style Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,75,1,0,0,'a:2:{s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (136,1,'civicrm/admin/options/email_greeting',NULL,'Email Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,80,1,0,0,'a:2:{s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (137,1,'civicrm/admin/options/postal_greeting',NULL,'Postal Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,90,1,0,0,'a:2:{s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (138,1,'civicrm/admin/options/addressee',NULL,'Addressee Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,100,1,0,0,'a:2:{s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), - (139,1,'civicrm/admin/setting/localization',NULL,'Languages, Currency, Locations','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Form_Setting_Localization\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'), - (140,1,'civicrm/admin/setting/preferences/address',NULL,'Address Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Address\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'), - (141,1,'civicrm/admin/setting/date',NULL,'Date Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Date\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'), - (142,1,'civicrm/admin/options/languages',NULL,'Preferred Languages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:2:{s:4:\"desc\";s:30:\"Options for contact languages.\";s:10:\"adminGroup\";s:12:\"Localization\";}'), - (143,1,'civicrm/admin/access',NULL,'Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_Access\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'), - (144,1,'civicrm/admin/access/wp-permissions',NULL,'WordPress Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_ACL_Form_WordPress_Permissions\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Access Control\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:1:{s:4:\"desc\";s:65:\"Grant access to CiviCRM components and other CiviCRM permissions.\";}'), - (145,1,'civicrm/admin/synchUser',NULL,'Synchronize Users to Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_CMSUser\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:2:{s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'), - (146,1,'civicrm/admin/configtask',NULL,'Configuration Checklist','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_ConfigTaskList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}','civicrm/admin/configtask',NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (147,1,'civicrm/admin/setting/component',NULL,'Enable CiviCRM Components','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (148,1,'civicrm/admin/extensions',NULL,'Manage Extensions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Extensions\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,120,1,0,0,'a:2:{s:4:\"desc\";s:0:\"\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (149,1,'civicrm/admin/extensions/upgrade',NULL,'Database Upgrades','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ExtensionsUpgrade\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Manage Extensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (150,1,'civicrm/admin/setting/smtp',NULL,'Outbound Email Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Smtp\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (151,1,'civicrm/admin/paymentProcessor',NULL,'Settings - Payment Processor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_PaymentProcessor\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:2:{s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (152,1,'civicrm/admin/paymentProcessor/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_PaymentProcessor\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (153,1,'civicrm/admin/setting/mapping',NULL,'Mapping and Geocoding','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Form_Setting_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (154,1,'civicrm/admin/setting/misc',NULL,'Misc (Undelete, PDFs, Limits, Logging, etc.)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Form_Setting_Miscellaneous\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,50,1,0,0,'a:2:{s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (155,1,'civicrm/admin/setting/path',NULL,'Directories','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Path\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,60,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (156,1,'civicrm/admin/setting/url',NULL,'Resource URLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_Setting_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,70,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (157,1,'civicrm/admin/setting/updateConfigBackend',NULL,'Cleanup Caches and Update Paths','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Admin_Form_Setting_UpdateConfigBackend\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,80,1,0,0,'a:2:{s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (158,1,'civicrm/admin/setting/uf',NULL,'CMS Database Integration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Form_Setting_UF\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,90,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (159,1,'civicrm/admin/options/safe_file_extension',NULL,'Safe File Extension Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,100,1,0,0,'a:2:{s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (160,1,'civicrm/admin/options',NULL,'Option Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,105,1,0,0,'a:2:{s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (161,1,'civicrm/admin/mapping',NULL,'Import/Export Mappings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,110,1,0,0,'a:2:{s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (162,1,'civicrm/admin/setting/debug',NULL,'Debugging','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Debugging\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,120,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (163,1,'civicrm/admin/setting/preferences/multisite',NULL,'Multi Site Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,130,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (164,1,'civicrm/admin/setting/preferences/campaign',NULL,'CiviCampaign Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:3:{s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), - (165,1,'civicrm/admin/setting/preferences/event',NULL,'CiviEvent Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:2:{s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (166,1,'civicrm/admin/setting/preferences/mailing',NULL,'CiviMail Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Mailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,430,1,0,0,'a:2:{s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), - (167,1,'civicrm/admin/setting/preferences/member',NULL,'CiviMember Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Admin_Form_Preferences_Member\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:2:{s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'), - (168,1,'civicrm/admin/runjobs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:20:\"executeScheduledJobs\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:36:\"URL used for running scheduled jobs.\";}'), - (169,1,'civicrm/admin/job',NULL,'Scheduled Jobs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1370,1,0,0,'a:2:{s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (170,1,'civicrm/admin/job/add',NULL,'Add Scheduled Job','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1371,1,0,0,'a:2:{s:4:\"desc\";s:31:\"Add a periodially running task.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (171,1,'civicrm/admin/job/edit',NULL,'Edit Scheduled Job','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1372,1,0,0,'a:2:{s:4:\"desc\";s:32:\"Edit a periodially running task.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (172,1,'civicrm/admin/joblog',NULL,'Scheduled Jobs Log','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_JobLog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1380,1,0,0,'a:2:{s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:10:\"adminGroup\";s:6:\"Manage\";}'), - (173,1,'civicrm/admin/options/grant_type',NULL,'Grant Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,385,1,0,0,'a:2:{s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > System Settings > Enable Components if you want to track grants.)\";s:10:\"adminGroup\";s:12:\"Option Lists\";}'), - (174,1,'civicrm/admin/paymentProcessorType',NULL,'Payment Processor Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Page_PaymentProcessorType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:1:{s:4:\"desc\";s:34:\"Payment Processor type information\";}'), - (175,1,'civicrm/admin',NULL,'Administer','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Admin_Page_Admin\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,9000,1,1,0,'a:0:{}'), - (176,1,'civicrm/ajax/navmenu',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:7:\"navMenu\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (177,1,'civicrm/ajax/menutree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:8:\"menuTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,3,0,'a:0:{}'), - (178,1,'civicrm/ajax/statusmsg',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:12:\"getStatusMsg\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (179,1,'civicrm/admin/price',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:2:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:10:\"adminGroup\";s:9:\"Customize\";}'), - (180,1,'civicrm/admin/price/add','action=add','New Price Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";}'), - (181,1,'civicrm/admin/price/edit',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (182,1,'civicrm/admin/price/field',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (183,1,'civicrm/admin/price/field/edit',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (184,1,'civicrm/admin/price/field/option',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (185,1,'civicrm/admin/price/field/option/edit',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}i:3;a:2:{s:5:\"title\";s:19:\"Price Field Options\";s:3:\"url\";s:41:\"/civicrm/admin/price/field/option?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (186,1,'civicrm/ajax/mapping',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:11:\"mappingList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (187,1,'civicrm/ajax/recipientListing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:16:\"recipientListing\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (188,1,'civicrm/admin/sms/provider',NULL,'Sms Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Provider\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,500,1,0,0,'a:2:{s:4:\"desc\";s:27:\"To configure a sms provider\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (189,1,'civicrm/sms/send',NULL,'New Mass SMS','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:23:\"CRM_SMS_Controller_Send\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,610,1,1,0,'a:0:{}'), - (190,1,'civicrm/sms/callback',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Callback\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (191,1,'civicrm/admin/badgelayout','action=browse','Event Name Badge Layouts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Page_Layout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,399,1,0,0,'a:2:{s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (192,1,'civicrm/admin/badgelayout/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Form_Layout\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?reset=1&action=browse\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (193,1,'civicrm',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:0:{}',NULL,NULL,NULL,1,0,1,0,0,1,0,0,'a:0:{}'), - (194,1,'civicrm/dashboard',NULL,'CiviCRM Home','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,0,1,1,0,'a:0:{}'), - (195,1,'civicrm/contact/search',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,10,1,1,0,'a:0:{}'), - (196,1,'civicrm/contact/image',NULL,'Process Uploaded Images','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"CRM_Contact_BAO_Contact\";i:1;s:12:\"processImage\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (197,1,'civicrm/contact/imagefile',NULL,'Get Image File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_ImageFile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (198,1,'civicrm/contact/search/basic',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (199,1,'civicrm/contact/search/advanced',NULL,'Advanced Search','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=512\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,12,1,1,0,'a:0:{}'), - (200,1,'civicrm/contact/search/builder',NULL,'Search Builder','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:9:\"mode=8192\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,14,1,1,0,'a:0:{}'), - (201,1,'civicrm/contact/add',NULL,'New Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (202,1,'civicrm/contact/add/individual','ct=Individual','New Individual','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (203,1,'civicrm/contact/add/household','ct=Household','New Household','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (204,1,'civicrm/contact/add/organization','ct=Organization','New Organization','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (205,1,'civicrm/contact/relatedcontact',NULL,'Edit Related Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_RelatedContact\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (206,1,'civicrm/contact/merge',NULL,'Merge Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:22:\"CRM_Contact_Form_Merge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (207,1,'civicrm/contact/email',NULL,'Email a Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (208,1,'civicrm/contact/map',NULL,'Map Location(s)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_Map\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (209,1,'civicrm/contact/map/event',NULL,'Map Event Location','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_Task_Map_Event\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Map Location(s)\";s:3:\"url\";s:28:\"/civicrm/contact/map?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (210,1,'civicrm/contact/view','cid=%%cid%%','Contact Summary','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Summary\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (211,1,'civicrm/contact/view/delete',NULL,'Delete Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (212,1,'civicrm/contact/view/activity','show=1,cid=%%cid%%','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:21:\"CRM_Activity_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (213,1,'civicrm/activity/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (214,1,'civicrm/activity/email/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (215,1,'civicrm/activity/pdf/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (216,1,'civicrm/contact/view/rel','cid=%%cid%%','Relationships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_Relationship\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (217,1,'civicrm/contact/view/group','cid=%%cid%%','Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_GroupContact\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (218,1,'civicrm/contact/view/smartgroup','cid=%%cid%%','Smart Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:39:\"CRM_Contact_Page_View_ContactSmartGroup\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (219,1,'civicrm/contact/view/note','cid=%%cid%%','Notes','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Contact_Page_View_Note\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (220,1,'civicrm/contact/view/tag','cid=%%cid%%','Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Tag\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (221,1,'civicrm/contact/view/cd',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:32:\"CRM_Contact_Page_View_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (222,1,'civicrm/contact/view/cd/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Form_CustomData\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (223,1,'civicrm/contact/view/vcard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Vcard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (224,1,'civicrm/contact/view/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Print\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (225,1,'civicrm/contact/view/log',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Log\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (226,1,'civicrm/user',NULL,'Contact Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Page_View_UserDashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,0,1,0,0,'a:0:{}'), - (227,1,'civicrm/dashlet/activity',NULL,'Activity Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_Activity\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (228,1,'civicrm/dashlet/blog',NULL,'CiviCRM Blog','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Dashlet_Page_Blog\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (229,1,'civicrm/dashlet/getting-started',NULL,'CiviCRM Resources','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Dashlet_Page_GettingStarted\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (230,1,'civicrm/ajax/relation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"relationship\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,3,0,'a:0:{}'), - (231,1,'civicrm/ajax/groupTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"groupTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (232,1,'civicrm/ajax/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:11:\"customField\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (233,1,'civicrm/ajax/customvalue',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:17:\"deleteCustomValue\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,3,0,'a:0:{}'), - (234,1,'civicrm/ajax/cmsuser',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"checkUserName\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (235,1,'civicrm/ajax/checkemail',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactEmail\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (236,1,'civicrm/ajax/checkphone',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactPhone\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (237,1,'civicrm/ajax/subtype',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"buildSubTypes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (238,1,'civicrm/ajax/signature',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"getSignature\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (239,1,'civicrm/ajax/pdfFormat',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"pdfFormat\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (240,1,'civicrm/ajax/paperSize',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"paperSize\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (241,1,'civicrm/ajax/contactref',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:31:\"access contact reference fields\";i:1;s:15:\" access CiviCRM\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"contactReference\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (242,1,'civicrm/dashlet/myCases',NULL,'Case Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Dashlet_Page_MyCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (243,1,'civicrm/dashlet/allCases',NULL,'All Cases Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_AllCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (244,1,'civicrm/dashlet/casedashboard',NULL,'Case Dashboard Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Dashlet_Page_CaseDashboard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (245,1,'civicrm/contact/deduperules',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer dedupe rules\";i:1;s:24:\"merge duplicate contacts\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Page_DedupeRules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,105,1,0,0,'a:2:{s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:10:\"adminGroup\";s:6:\"Manage\";}'), - (246,1,'civicrm/contact/dedupefind',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Page_DedupeFind\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (247,1,'civicrm/ajax/dedupefind',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:10:\"getDedupes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (248,1,'civicrm/contact/dedupemerge',NULL,'Batch Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Page_DedupeMerge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (249,1,'civicrm/dedupe/exception',NULL,'Dedupe Exceptions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Page_DedupeException\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,110,1,0,0,'a:1:{s:10:\"adminGroup\";s:6:\"Manage\";}'), - (250,1,'civicrm/ajax/dedupeRules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"buildDedupeRules\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (251,1,'civicrm/contact/view/useradd','cid=%%cid%%','Add User','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Useradd\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (252,1,'civicrm/ajax/markSelection',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:22:\"selectUnselectContacts\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (253,1,'civicrm/ajax/toggleDedupeSelect',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:18:\"toggleDedupeSelect\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (254,1,'civicrm/ajax/flipDupePairs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"flipDupePairs\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (255,1,'civicrm/activity/sms/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_SMS\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (256,1,'civicrm/ajax/contactrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"view my contact\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:23:\"getContactRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (257,1,'civicrm/ajax/jqState',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:7:\"jqState\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (258,1,'civicrm/ajax/jqCounty',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:8:\"jqCounty\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (259,1,'civicrm/group',NULL,'Manage Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Page_Group\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,30,1,1,0,'a:0:{}'), - (260,1,'civicrm/group/search',NULL,'Group Members','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:7:\"comment\";s:164:\"Note: group search already respect ACL, so a strict permission at url level is not required. A simple/basic permission like \'access CiviCRM\' could be used. CRM-5417\";}'), - (261,1,'civicrm/group/add',NULL,'New Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (262,1,'civicrm/group/edit',NULL,'Edit Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:19:\"CRM_Group_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (263,1,'civicrm/ajax/grouplist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Group_Page_AJAX\";i:1;s:12:\"getGroupList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (264,1,'civicrm/tag',NULL,'Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:16:\"CRM_Tag_Page_Tag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,25,1,0,0,'a:2:{s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), - (265,1,'civicrm/tag/edit','action=add','New Tag','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:17:\"CRM_Tag_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (266,1,'civicrm/tag/merge',NULL,'Merge Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:18:\"CRM_Tag_Form_Merge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (267,1,'civicrm/ajax/tagTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:10:\"getTagTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (268,1,'civicrm/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Custom_Form_CustomDataByType\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (269,1,'civicrm/event/manage/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_PCP_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,540,1,1,0,'a:0:{}'), - (270,1,'civicrm/event/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), - (271,1,'civicrm/event/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), - (272,1,'civicrm/event',NULL,'CiviEvent Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,1,1,0,1,0,800,1,1,0,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'), - (273,1,'civicrm/participant/add','action=add','Register New Participant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'), - (274,1,'civicrm/event/info',NULL,'Event Information','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), - (275,1,'civicrm/event/register',NULL,'Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Controller_Registration\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,1,1,1,0,0,'a:0:{}'), - (276,1,'civicrm/event/confirm',NULL,'Confirm Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:46:\"CRM_Event_Form_Registration_ParticipantConfirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,1,1,1,0,0,'a:0:{}'), - (277,1,'civicrm/event/ical',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_ICalendar\";i:1;s:3:\"run\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), - (278,1,'civicrm/event/list',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','s:19:\"CRM_Event_Page_List\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), - (279,1,'civicrm/event/participant',NULL,'Event Participants List','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"view event participants\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Page_ParticipantListing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), - (280,1,'civicrm/admin/event',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,370,1,0,0,'a:2:{s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (281,1,'civicrm/admin/eventTemplate',NULL,'Event Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Admin_Page_EventTemplate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,375,1,0,0,'a:2:{s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (282,1,'civicrm/admin/options/event_type',NULL,'Event Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,385,1,0,0,'a:2:{s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (283,1,'civicrm/admin/participant_status',NULL,'Participant Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Page_ParticipantStatusType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:2:{s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (284,1,'civicrm/admin/options/participant_role',NULL,'Participant Role','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,395,1,0,0,'a:2:{s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (285,1,'civicrm/admin/options/participant_listing',NULL,'Participant Listing Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,398,1,0,0,'a:2:{s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (286,1,'civicrm/admin/options/conference_slot',NULL,'Conference Slot Labels','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,415,1,0,0,'a:2:{s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), - (287,1,'civicrm/event/search',NULL,'Find Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,810,1,1,0,'a:0:{}'), - (288,1,'civicrm/event/manage',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,1,820,1,1,0,'a:0:{}'), - (289,1,'civicrm/event/badge',NULL,'Print Event Name Badge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:25:\"CRM_Event_Form_Task_Badge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,1,1,0,0,'a:0:{}'), - (290,1,'civicrm/event/manage/settings',NULL,'Event Info and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,910,1,0,0,'a:0:{}'), - (291,1,'civicrm/event/manage/location',NULL,'Event Location','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:35:\"CRM_Event_Form_ManageEvent_Location\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,930,1,0,0,'a:0:{}'), - (292,1,'civicrm/event/manage/fee',NULL,'Event Fees','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_ManageEvent_Fee\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,920,1,0,0,'a:0:{}'), - (293,1,'civicrm/event/manage/registration',NULL,'Event Online Registration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:39:\"CRM_Event_Form_ManageEvent_Registration\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,930,1,0,0,'a:0:{}'), - (294,1,'civicrm/event/manage/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Friend_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,940,1,0,0,'a:0:{}'), - (295,1,'civicrm/event/manage/reminder',NULL,'Schedule Reminders','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:44:\"CRM_Event_Form_ManageEvent_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,950,1,0,0,'a:0:{}'), - (296,1,'civicrm/event/manage/repeat',NULL,'Repeat Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Form_ManageEvent_Repeat\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,960,1,0,0,'a:0:{}'), - (297,1,'civicrm/event/manage/conference',NULL,'Conference Slots','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:37:\"CRM_Event_Form_ManageEvent_Conference\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,950,1,0,0,'a:0:{}'), - (298,1,'civicrm/event/add','action=add','New Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,830,1,0,0,'a:0:{}'), - (299,1,'civicrm/event/import',NULL,'Import Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:23:\"edit event participants\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,840,1,1,0,'a:0:{}'), - (300,1,'civicrm/event/price',NULL,'Manage Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,850,1,1,0,'a:0:{}'), - (301,1,'civicrm/event/selfsvcupdate',NULL,'Self-service Registration Update','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Form_SelfSvcUpdate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,880,1,1,0,'a:0:{}'), - (302,1,'civicrm/event/selfsvctransfer',NULL,'Self-service Registration Transfer','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_SelfSvcTransfer\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,890,1,1,0,'a:0:{}'), - (303,1,'civicrm/contact/view/participant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,4,1,0,0,'a:0:{}'), - (304,1,'civicrm/ajax/eventFee',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_Page_AJAX\";i:1;s:8:\"eventFee\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (305,1,'civicrm/ajax/locBlock',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:11:\"getLocBlock\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (306,1,'civicrm/event/participant/feeselection',NULL,'Change Registration Selections','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:38:\"CRM_Event_Form_ParticipantFeeSelection\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:23:\"Event Participants List\";s:3:\"url\";s:34:\"/civicrm/event/participant?reset=1\";}}',NULL,NULL,1,1,0,1,0,1,1,0,0,'a:0:{}'), - (307,1,'civicrm/admin/contribute/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_PCP_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,450,1,0,0,'a:0:{}'), - (308,1,'civicrm/contribute/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,1,1,0,0,1,0,0,'a:0:{}'), - (309,1,'civicrm/contribute',NULL,'CiviContribute Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,1,0,1,0,500,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (310,1,'civicrm/contribute/add','action=add','New Contribution','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (311,1,'civicrm/contribute/chart',NULL,'Contribution Summary - Chart View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (312,1,'civicrm/contribute/transact',NULL,'CiviContribute','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Controller_Contribution\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,1,1,1,0,1,0,0,'a:0:{}'), - (313,1,'civicrm/admin/contribute',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,360,1,0,0,'a:2:{s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (314,1,'civicrm/admin/contribute/settings',NULL,'Title and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_Settings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:0:{}'), - (315,1,'civicrm/admin/contribute/amount',NULL,'Contribution Amounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Amount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,410,1,0,0,'a:0:{}'), - (316,1,'civicrm/admin/contribute/membership',NULL,'Membership Section','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Member_Form_MembershipBlock\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:0:{}'), - (317,1,'civicrm/admin/contribute/custom',NULL,'Include Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Custom\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,430,1,0,0,'a:0:{}'), - (318,1,'civicrm/admin/contribute/thankyou',NULL,'Thank-you and Receipting','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_ThankYou\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,430,1,0,0,'a:0:{}'), - (319,1,'civicrm/admin/contribute/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Friend_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,440,1,0,0,'a:0:{}'), - (320,1,'civicrm/admin/contribute/widget',NULL,'Configure Widget','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Widget\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,460,1,0,0,'a:0:{}'), - (321,1,'civicrm/admin/contribute/premium',NULL,'Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:44:\"CRM_Contribute_Form_ContributionPage_Premium\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,470,1,0,0,'a:0:{}'), - (322,1,'civicrm/admin/contribute/addProductToPage',NULL,'Add Products to This Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:47:\"CRM_Contribute_Form_ContributionPage_AddProduct\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,480,1,0,0,'a:0:{}'), - (323,1,'civicrm/admin/contribute/add','action=add','New Contribution Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Contribute_Controller_ContributionPage\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (324,1,'civicrm/admin/contribute/managePremiums',NULL,'Manage Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Page_ManagePremiums\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,365,1,0,0,'a:2:{s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (325,1,'civicrm/admin/financial/financialType',NULL,'Financial Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Page_FinancialType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,580,1,0,0,'a:2:{s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (326,1,'civicrm/admin/financial/financialType/edit',NULL,'Edit Financial Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Form_FinancialType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (327,1,'civicrm/payment','action=add','New Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Form_AdditionalPayment\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (328,1,'civicrm/admin/financial/financialAccount',NULL,'Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_FinancialAccount\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,370,1,0,0,'a:2:{s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (329,1,'civicrm/admin/financial/financialAccount/edit',NULL,'Edit Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Form_FinancialAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:18:\"Financial Accounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (330,1,'civicrm/admin/options/payment_instrument',NULL,'Payment Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:2:{s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (331,1,'civicrm/admin/options/accept_creditcard',NULL,'Accepted Credit Cards','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,395,1,0,0,'a:2:{s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (332,1,'civicrm/admin/options/soft_credit_type',NULL,'Soft Credit Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (333,1,'civicrm/contact/view/contribution',NULL,'Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (334,1,'civicrm/contact/view/contributionrecur',NULL,'Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:37:\"CRM_Contribute_Page_ContributionRecur\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (335,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (336,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,510,1,1,0,'a:0:{}'), - (337,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,588,1,1,0,'a:0:{}'), - (338,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,530,1,1,0,'a:0:{}'), - (339,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,0,1,0,0,'a:0:{}'), - (340,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (341,1,'civicrm/contribute/unsubscribe',NULL,'Cancel Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_CancelSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (342,1,'civicrm/contribute/onbehalf',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_Contribution_OnBehalfOf\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (343,1,'civicrm/contribute/updatebilling',NULL,'Update Billing Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contribute_Form_UpdateBilling\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (344,1,'civicrm/contribute/updaterecur',NULL,'Update Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_UpdateSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (345,1,'civicrm/contribute/subscriptionstatus',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Page_SubscriptionStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (346,1,'civicrm/admin/financial/financialType/accounts',NULL,'Financial Type Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:39:\"CRM_Financial_Page_FinancialTypeAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,581,1,0,0,'a:0:{}'), - (347,1,'civicrm/financial/batch',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:33:\"CRM_Financial_Page_FinancialBatch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,585,1,0,0,'a:0:{}'), - (348,1,'civicrm/financial/financialbatches',NULL,'Accounting Batches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Financial_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,586,1,0,0,'a:0:{}'), - (349,1,'civicrm/batchtransaction',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_BatchTransaction\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,600,1,0,0,'a:0:{}'), - (350,1,'civicrm/financial/batch/export',NULL,'Accounting Batch Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:25:\"CRM_Financial_Form_Export\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Accounting Batch\";s:3:\"url\";s:32:\"/civicrm/financial/batch?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,610,1,0,0,'a:0:{}'), - (351,1,'civicrm/payment/view','action=view','View Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contribute_Page_PaymentInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (352,1,'civicrm/admin/setting/preferences/contribute',NULL,'CiviContribute Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Admin_Form_Preferences_Contribute\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), - (353,1,'civicrm/contribute/invoice',NULL,'PDF Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Contribute_Form_Task_Invoice\";i:1;s:11:\"getPrintPDF\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,620,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (354,1,'civicrm/contribute/invoice/email',NULL,'Email Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Form_Task_Invoice\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"PDF Invoice\";s:3:\"url\";s:35:\"/civicrm/contribute/invoice?reset=1\";}}',NULL,NULL,2,1,0,1,0,630,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), - (355,1,'civicrm/ajax/softcontributionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:24:\"CRM_Contribute_Page_AJAX\";i:1;s:23:\"getSoftContributionRows\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (356,1,'civicrm/contribute/contributionrecur-payments',NULL,'Recurring Contribution\'s Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Page_ContributionRecurPayments\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (357,1,'civicrm/membership/recurring-contributions',NULL,'Membership Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Member_Page_RecurringContributions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (358,1,'civicrm/contribute/widget',NULL,'CiviContribute','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contribute_Page_Widget\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,1,1,0,0,1,0,0,'a:0:{}'), - (359,1,'civicrm/contribute/task',NULL,'Contribution Task','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contribute_Controller_Task\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), - (360,1,'civicrm/member',NULL,'CiviMember Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:25:\"CRM_Member_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,3,1,0,1,0,700,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'), - (361,1,'civicrm/member/add','action=add','New Membership','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'), - (362,1,'civicrm/admin/member/membershipType',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Page_MembershipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,370,1,0,0,'a:2:{s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'), - (363,1,'civicrm/admin/member/membershipStatus',NULL,'Membership Status Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Member_Page_MembershipStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:2:{s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'), - (364,1,'civicrm/contact/view/membership','force=1,cid=%%cid%%','Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,2,1,0,0,'a:0:{}'), - (365,1,'civicrm/membership/view',NULL,'Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipView\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,390,1,0,0,'a:0:{}'), - (366,1,'civicrm/member/search',NULL,'Find Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,1,0,1,0,710,1,1,0,'a:0:{}'), - (367,1,'civicrm/member/import',NULL,'Import Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:16:\"edit memberships\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,1,0,1,0,720,1,1,0,'a:0:{}'), - (368,1,'civicrm/ajax/memType',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Member_Page_AJAX\";i:1;s:21:\"getMemberTypeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (369,1,'civicrm/admin/member/membershipType/add',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:16:\"Membership Types\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (370,1,'civicrm/mailing',NULL,'CiviMail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,4,1,0,1,0,600,1,1,0,'a:1:{s:9:\"component\";s:8:\"CiviMail\";}'), - (371,1,'civicrm/admin/mail',NULL,'Mailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Mail\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), - (372,1,'civicrm/admin/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,410,1,0,0,'a:2:{s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), - (373,1,'civicrm/admin/options/from_email_address/civimail',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:20:\"From Email Addresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,415,1,0,0,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), - (374,1,'civicrm/admin/mailSettings',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_MailSettings\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:2:{s:4:\"desc\";s:20:\"List email accounts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), - (375,1,'civicrm/admin/mailSettings/edit',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_MailSettings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Mail Accounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:0:{}'), - (376,1,'civicrm/mailing/send',NULL,'New Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:27:\"CRM_Mailing_Controller_Send\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,610,1,1,0,'a:0:{}'), - (377,1,'civicrm/mailing/browse/scheduled','scheduled=true','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:5:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";i:4;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,620,1,1,0,'a:0:{}'), - (378,1,'civicrm/mailing/browse/unscheduled','scheduled=false','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,620,1,1,0,'a:0:{}'), - (379,1,'civicrm/mailing/browse/archived',NULL,'Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,625,1,1,0,'a:0:{}'), - (380,1,'civicrm/mailing/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,630,1,1,0,'a:0:{}'), - (381,1,'civicrm/mailing/unsubscribe',NULL,'Unsubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Form_Unsubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,640,1,0,0,'a:0:{}'), - (382,1,'civicrm/mailing/resubscribe',NULL,'Resubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Page_Resubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,645,1,0,0,'a:0:{}'), - (383,1,'civicrm/mailing/optout',NULL,'Opt-out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Form_Optout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,650,1,0,0,'a:0:{}'), - (384,1,'civicrm/mailing/confirm',NULL,'Confirm','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:24:\"CRM_Mailing_Page_Confirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,660,1,0,0,'a:0:{}'), - (385,1,'civicrm/mailing/subscribe',NULL,'Subscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Form_Subscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,660,1,0,0,'a:0:{}'), - (386,1,'civicrm/mailing/preview',NULL,'Preview Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Page_Preview\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,670,1,0,0,'a:0:{}'), - (387,1,'civicrm/mailing/report','mid=%%mid%%','Mailing Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,680,1,0,0,'a:0:{}'), - (388,1,'civicrm/mailing/forward',NULL,'Forward Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:31:\"CRM_Mailing_Form_ForwardMailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,685,1,0,0,'a:0:{}'), - (389,1,'civicrm/mailing/report/event',NULL,'Mailing Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:22:\"CRM_Mailing_Page_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Mailing Report\";s:3:\"url\";s:47:\"/civicrm/mailing/report?reset=1&mid=%%mid%%\";}}',NULL,NULL,4,1,0,1,0,695,1,0,0,'a:0:{}'), - (390,1,'civicrm/ajax/template',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:8:\"template\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (391,1,'civicrm/mailing/view',NULL,'View Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:28:\"view public CiviMail content\";i:1;s:15:\"access CiviMail\";i:2;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:21:\"CRM_Mailing_Page_View\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,800,1,0,0,'a:0:{}'), - (392,1,'civicrm/mailing/approve',NULL,'Approve Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Form_Approve\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,850,1,0,0,'a:0:{}'), - (393,1,'civicrm/contact/view/mailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:20:\"CRM_Mailing_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (394,1,'civicrm/ajax/contactmailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:18:\"getContactMailings\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (395,1,'civicrm/ajax/setupMailAccount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:5:\"setup\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (396,1,'civicrm/mailing/url',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:20:\"CRM_Mailing_Page_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,1,1,0,0,'a:0:{}'), - (397,1,'civicrm/mailing/open',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:21:\"CRM_Mailing_Page_Open\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,1,1,0,0,'a:0:{}'), - (398,1,'civicrm/pledge',NULL,'CiviPledge Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:25:\"CRM_Pledge_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,6,1,0,1,0,550,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'), - (399,1,'civicrm/pledge/search',NULL,'Find Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:28:\"CRM_Pledge_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,1,0,1,0,560,1,1,0,'a:0:{}'), - (400,1,'civicrm/contact/view/pledge','force=1,cid=%%cid%%','Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,570,1,0,0,'a:0:{}'), - (401,1,'civicrm/pledge/add','action=add','New Pledge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'), - (402,1,'civicrm/pledge/payment',NULL,'Pledge Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:23:\"CRM_Pledge_Page_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,1,0,1,0,580,1,0,0,'a:0:{}'), - (403,1,'civicrm/ajax/pledgeAmount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviPledge\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Pledge_Page_AJAX\";i:1;s:17:\"getPledgeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (404,1,'civicrm/case',NULL,'CiviCase Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Case_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,7,1,0,1,0,900,1,1,0,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'), - (405,1,'civicrm/case/add',NULL,'Open Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Case_Form_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'), - (406,1,'civicrm/case/search',NULL,'Find Cases','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,910,1,1,0,'a:0:{}'), - (407,1,'civicrm/case/activity',NULL,'Case Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Case_Form_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (408,1,'civicrm/case/report',NULL,'Case Activity Audit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:20:\"CRM_Case_Form_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (409,1,'civicrm/case/cd/edit',NULL,'Case Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (410,1,'civicrm/contact/view/case',NULL,'Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:17:\"CRM_Case_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (411,1,'civicrm/case/activity/view',NULL,'Activity View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Form_ActivityView\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Case Activity\";s:3:\"url\";s:30:\"/civicrm/case/activity?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (412,1,'civicrm/contact/view/case/editClient',NULL,'Assign to Another Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Case_Form_EditClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (413,1,'civicrm/case/addToCase',NULL,'File on Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Case_Form_ActivityToCase\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (414,1,'civicrm/case/details',NULL,'Case Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Case_Page_CaseDetails\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (415,1,'civicrm/admin/setting/case',NULL,'CiviCase Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:1:{s:10:\"adminGroup\";s:8:\"CiviCase\";}'), - (416,1,'civicrm/admin/options/case_type',NULL,'Case Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:24:\"url=civicrm/a/#/caseType\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:2:{s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), - (417,1,'civicrm/admin/options/redaction_rule',NULL,'Redaction Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), - (418,1,'civicrm/admin/options/case_status',NULL,'Case Statuses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), - (419,1,'civicrm/admin/options/encounter_medium',NULL,'Encounter Mediums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:26:\"List of encounter mediums.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), - (420,1,'civicrm/case/report/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Case_XMLProcessor_Report\";i:1;s:15:\"printCaseReport\";}',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:19:\"Case Activity Audit\";s:3:\"url\";s:28:\"/civicrm/case/report?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (421,1,'civicrm/case/ajax/addclient',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:9:\"addClient\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (422,1,'civicrm/case/ajax/processtags',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"processCaseTags\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,3,0,'a:0:{}'), - (423,1,'civicrm/case/ajax/details',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:11:\"CaseDetails\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (424,1,'civicrm/ajax/delcaserole',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"deleteCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (425,1,'civicrm/ajax/get-cases',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:8:\"getCases\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (426,1,'civicrm/case/email/add','action=add,task=email','Email','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_Task_Email\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), - (427,1,'civicrm/report',NULL,'CiviReport','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:22:\"CRM_Report_Page_Report\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,8,1,0,1,0,1200,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviReport\";}'), - (428,1,'civicrm/report/list',NULL,'CiviCRM Reports','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1,1,0,0,'a:0:{}'), - (429,1,'civicrm/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1220,1,1,0,'a:0:{}'), - (430,1,'civicrm/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1241,1,1,0,'a:0:{}'), - (431,1,'civicrm/admin/report/register',NULL,'Register Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Form_Register\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:30:\"Register the Report templates.\";}'), - (432,1,'civicrm/report/instance',NULL,'Report','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Page_Instance\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1,1,0,0,'a:0:{}'), - (433,1,'civicrm/admin/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:10:\"adminGroup\";s:10:\"CiviReport\";}'), - (434,1,'civicrm/admin/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:10:\"adminGroup\";s:10:\"CiviReport\";}'), - (435,1,'civicrm/admin/report/list',NULL,'Reports Listing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:10:\"adminGroup\";s:10:\"CiviReport\";}'), - (436,1,'civicrm/campaign',NULL,'Campaign Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:27:\"CRM_Campaign_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), - (437,1,'civicrm/campaign/add',NULL,'New Campaign','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Campaign\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), - (438,1,'civicrm/survey/add',NULL,'New Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), - (439,1,'civicrm/campaign/vote',NULL,'Conduct Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"reserve campaign contacts\";i:3;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Page_Vote\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), - (440,1,'civicrm/admin/campaign/surveyType',NULL,'Survey Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCampaign\";}i:1;s:3:\"and\";}','s:28:\"CRM_Campaign_Page_SurveyType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), - (441,1,'civicrm/admin/options/campaign_type',NULL,'Campaign Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,2,1,0,0,'a:3:{s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), - (442,1,'civicrm/admin/options/campaign_status',NULL,'Campaign Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,3,1,0,0,'a:3:{s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), - (443,1,'civicrm/admin/options/engagement_index',NULL,'Engagement Index','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,4,1,0,0,'a:3:{s:4:\"desc\";s:18:\"Engagement levels.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), - (444,1,'civicrm/survey/search','op=interview','Record Respondents Interview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:30:\"CRM_Campaign_Controller_Search\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), - (445,1,'civicrm/campaign/gotv',NULL,'GOTV (Track Voters)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"release campaign contacts\";i:3;s:22:\"gotv campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Form_Gotv\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), - (446,1,'civicrm/petition/add',NULL,'New Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (447,1,'civicrm/petition/sign',NULL,'Sign Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:36:\"CRM_Campaign_Form_Petition_Signature\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (448,1,'civicrm/petition/browse',NULL,'View Petition Signatures','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Campaign_Page_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (449,1,'civicrm/petition/confirm',NULL,'Email address verified','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:34:\"CRM_Campaign_Page_Petition_Confirm\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (450,1,'civicrm/petition/thankyou',NULL,'Thank You','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:35:\"CRM_Campaign_Page_Petition_ThankYou\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (451,1,'civicrm/campaign/registerInterview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','a:2:{i:0;s:22:\"CRM_Campaign_Page_AJAX\";i:1;s:17:\"registerInterview\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:0:{}'), - (452,1,'civicrm/survey/configure/main',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (453,1,'civicrm/survey/configure/questions',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:34:\"CRM_Campaign_Form_Survey_Questions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (454,1,'civicrm/survey/configure/results',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:32:\"CRM_Campaign_Form_Survey_Results\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (455,1,'civicrm/survey/delete',NULL,'Delete Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:31:\"CRM_Campaign_Form_Survey_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), - (456,1,'civicrm/admin/ckeditor',NULL,'Configure CKEditor 4','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Ckeditor4_Form_CKEditorConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), - (457,1,'civicrm/ajax/event/add_participant_to_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:23:\"add_participant_to_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (458,1,'civicrm/ajax/event/remove_participant_from_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:28:\"remove_participant_from_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), - (459,1,'civicrm/event/add_to_cart',NULL,'Add Event To Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:29:\"CRM_Event_Cart_Page_AddToCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), - (460,1,'civicrm/event/cart_checkout',NULL,'Cart Checkout','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Controller_Checkout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,1,1,1,0,0,'a:0:{}'), - (461,1,'civicrm/event/remove_from_cart',NULL,'Remove From Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Page_RemoveFromCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), - (462,1,'civicrm/event/view_cart',NULL,'View Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Cart_Page_ViewCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), - (463,1,'civicrm/contact/search/custom',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Legacycustomsearches_Controller_Search\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,10,1,1,0,'a:0:{}'), - (464,1,'civicrm/contact/search/custom/list',NULL,'Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Page_CustomSearch\";','s:10:\"mode=16384\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:38:\"/civicrm/contact/search/custom?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,16,1,1,0,'a:0:{}'), - (465,1,'civicrm/admin/setting/recaptcha',NULL,'reCAPTCHA Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:43:\"Configure anti-abuse/bot-prevention service\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), - (466,1,'admin',NULL,NULL,NULL,NULL,NULL,NULL,'a:15:{s:14:\"CiviContribute\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:32:\"{weight}.Personal Campaign Pages\";a:6:{s:5:\"title\";s:23:\"Personal Campaign Pages\";s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:2:\"id\";s:21:\"PersonalCampaignPages\";s:3:\"url\";s:49:\"/civicrm/admin/pcp?context=contribute&reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Manage Contribution Pages\";a:6:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:2:\"id\";s:23:\"ManageContributionPages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Manage Premiums\";a:6:{s:5:\"title\";s:15:\"Manage Premiums\";s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:2:\"id\";s:14:\"ManagePremiums\";s:3:\"url\";s:48:\"/civicrm/admin/contribute/managePremiums?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Financial Types\";a:6:{s:5:\"title\";s:15:\"Financial Types\";s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:2:\"id\";s:14:\"FinancialTypes\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Financial Accounts\";a:6:{s:5:\"title\";s:18:\"Financial Accounts\";s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:2:\"id\";s:17:\"FinancialAccounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Payment Methods\";a:6:{s:5:\"title\";s:15:\"Payment Methods\";s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:2:\"id\";s:14:\"PaymentMethods\";s:3:\"url\";s:49:\"/civicrm/admin/options/payment_instrument?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Accepted Credit Cards\";a:6:{s:5:\"title\";s:21:\"Accepted Credit Cards\";s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:2:\"id\";s:19:\"AcceptedCreditCards\";s:3:\"url\";s:48:\"/civicrm/admin/options/accept_creditcard?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Soft Credit Types\";a:6:{s:5:\"title\";s:17:\"Soft Credit Types\";s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:2:\"id\";s:15:\"SoftCreditTypes\";s:3:\"url\";s:47:\"/civicrm/admin/options/soft_credit_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.CiviContribute Component Settings\";a:6:{s:5:\"title\";s:33:\"CiviContribute Component Settings\";s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:2:\"id\";s:31:\"CiviContributeComponentSettings\";s:3:\"url\";s:53:\"/civicrm/admin/setting/preferences/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:26:\"Customize Data and Screens\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:20:\"{weight}.Custom Data\";a:6:{s:5:\"title\";s:11:\"Custom Data\";s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:2:\"id\";s:10:\"CustomData\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:17:\"{weight}.Profiles\";a:6:{s:5:\"title\";s:8:\"Profiles\";s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:2:\"id\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Activity Types\";a:6:{s:5:\"title\";s:14:\"Activity Types\";s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:2:\"id\";s:13:\"ActivityTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/activity_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Relationship Types\";a:6:{s:5:\"title\";s:18:\"Relationship Types\";s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:2:\"id\";s:17:\"RelationshipTypes\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Contact Types\";a:6:{s:5:\"title\";s:13:\"Contact Types\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ContactTypes\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Gender Options\";a:6:{s:5:\"title\";s:14:\"Gender Options\";s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:2:\"id\";s:13:\"GenderOptions\";s:3:\"url\";s:37:\"/civicrm/admin/options/gender?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Prefixes (Ms, Mr...)\";a:6:{s:5:\"title\";s:31:\"Individual Prefixes (Ms, Mr...)\";s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:2:\"id\";s:27:\"IndividualPrefixes_Ms_Mr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_prefix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Suffixes (Jr, Sr...)\";a:6:{s:5:\"title\";s:31:\"Individual Suffixes (Jr, Sr...)\";s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:2:\"id\";s:27:\"IndividualSuffixes_Jr_Sr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_suffix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:39:\"{weight}.Location Types (Home, Work...)\";a:6:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:2:\"id\";s:26:\"LocationTypes_Home_Work...\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Website Types\";a:6:{s:5:\"title\";s:13:\"Website Types\";s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:2:\"id\";s:12:\"WebsiteTypes\";s:3:\"url\";s:43:\"/civicrm/admin/options/website_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:35:\"{weight}.Instant Messenger Services\";a:6:{s:5:\"title\";s:26:\"Instant Messenger Services\";s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:2:\"id\";s:24:\"InstantMessengerServices\";s:3:\"url\";s:56:\"/civicrm/admin/options/instant_messenger_service?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Mobile Phone Providers\";a:6:{s:5:\"title\";s:22:\"Mobile Phone Providers\";s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:2:\"id\";s:20:\"MobilePhoneProviders\";s:3:\"url\";s:46:\"/civicrm/admin/options/mobile_provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Phone Type\";a:6:{s:5:\"title\";s:10:\"Phone Type\";s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n Mobile, Fax, Pager)\";s:2:\"id\";s:9:\"PhoneType\";s:3:\"url\";s:41:\"/civicrm/admin/options/phone_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Display Preferences\";a:6:{s:5:\"title\";s:19:\"Display Preferences\";s:4:\"desc\";N;s:2:\"id\";s:18:\"DisplayPreferences\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/display?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Search Preferences\";a:6:{s:5:\"title\";s:18:\"Search Preferences\";s:4:\"desc\";N;s:2:\"id\";s:17:\"SearchPreferences\";s:3:\"url\";s:37:\"/civicrm/admin/setting/search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Navigation Menu\";a:6:{s:5:\"title\";s:15:\"Navigation Menu\";s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:2:\"id\";s:14:\"NavigationMenu\";s:3:\"url\";s:27:\"/civicrm/admin/menu?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Word Replacements\";a:6:{s:5:\"title\";s:17:\"Word Replacements\";s:4:\"desc\";s:18:\"Word Replacements.\";s:2:\"id\";s:16:\"WordReplacements\";s:3:\"url\";s:47:\"/civicrm/admin/options/wordreplacements?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Manage Custom Searches\";a:6:{s:5:\"title\";s:22:\"Manage Custom Searches\";s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:2:\"id\";s:20:\"ManageCustomSearches\";s:3:\"url\";s:44:\"/civicrm/admin/options/custom_search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:13:\"{weight}.Tags\";a:6:{s:5:\"title\";s:4:\"Tags\";s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:2:\"id\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:14:\"Communications\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:11:{s:46:\"{weight}.Organization Address and Contact Info\";a:6:{s:5:\"title\";s:37:\"Organization Address and Contact Info\";s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:2:\"id\";s:33:\"OrganizationAddressandContactInfo\";s:3:\"url\";s:47:\"/civicrm/admin/domain?action=update&reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Message Templates\";a:6:{s:5:\"title\";s:17:\"Message Templates\";s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:2:\"id\";s:16:\"MessageTemplates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Schedule Reminders\";a:6:{s:5:\"title\";s:18:\"Schedule Reminders\";s:4:\"desc\";s:19:\"Schedule Reminders.\";s:2:\"id\";s:17:\"ScheduleReminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Preferred Communication Methods\";a:6:{s:5:\"title\";s:31:\"Preferred Communication Methods\";s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:2:\"id\";s:29:\"PreferredCommunicationMethods\";s:3:\"url\";s:61:\"/civicrm/admin/options/preferred_communication_method?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Label Page Formats\";a:6:{s:5:\"title\";s:18:\"Label Page Formats\";s:4:\"desc\";s:82:\"Configure label sizes and page layouts that are used when printing mailing labels.\";s:2:\"id\";s:16:\"LabelPageFormats\";s:3:\"url\";s:35:\"/civicrm/admin/labelFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Print Page (PDF) Formats\";a:6:{s:5:\"title\";s:24:\"Print Page (PDF) Formats\";s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:2:\"id\";s:20:\"PrintPage_PDFFormats\";s:3:\"url\";s:33:\"/civicrm/admin/pdfFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Communication Style Options\";a:6:{s:5:\"title\";s:27:\"Communication Style Options\";s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:2:\"id\";s:25:\"CommunicationStyleOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/communication_style?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Email Greeting Formats\";a:6:{s:5:\"title\";s:22:\"Email Greeting Formats\";s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:2:\"id\";s:20:\"EmailGreetingFormats\";s:3:\"url\";s:45:\"/civicrm/admin/options/email_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Postal Greeting Formats\";a:6:{s:5:\"title\";s:23:\"Postal Greeting Formats\";s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:2:\"id\";s:21:\"PostalGreetingFormats\";s:3:\"url\";s:46:\"/civicrm/admin/options/postal_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Addressee Formats\";a:6:{s:5:\"title\";s:17:\"Addressee Formats\";s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:2:\"id\";s:16:\"AddresseeFormats\";s:3:\"url\";s:40:\"/civicrm/admin/options/addressee?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Localization\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:4:{s:39:\"{weight}.Languages, Currency, Locations\";a:6:{s:5:\"title\";s:30:\"Languages, Currency, Locations\";s:4:\"desc\";N;s:2:\"id\";s:28:\"Languages_Currency_Locations\";s:3:\"url\";s:43:\"/civicrm/admin/setting/localization?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Address Settings\";a:6:{s:5:\"title\";s:16:\"Address Settings\";s:4:\"desc\";N;s:2:\"id\";s:15:\"AddressSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Date Formats\";a:6:{s:5:\"title\";s:12:\"Date Formats\";s:4:\"desc\";N;s:2:\"id\";s:11:\"DateFormats\";s:3:\"url\";s:35:\"/civicrm/admin/setting/date?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Preferred Languages\";a:6:{s:5:\"title\";s:19:\"Preferred Languages\";s:4:\"desc\";s:30:\"Options for contact languages.\";s:2:\"id\";s:18:\"PreferredLanguages\";s:3:\"url\";s:40:\"/civicrm/admin/options/languages?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:21:\"Users and Permissions\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:2:{s:23:\"{weight}.Access Control\";a:6:{s:5:\"title\";s:14:\"Access Control\";s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:2:\"id\";s:13:\"AccessControl\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Synchronize Users to Contacts\";a:6:{s:5:\"title\";s:29:\"Synchronize Users to Contacts\";s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:2:\"id\";s:26:\"SynchronizeUserstoContacts\";s:3:\"url\";s:32:\"/civicrm/admin/synchUser?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:15:\"System Settings\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:21:{s:32:\"{weight}.Configuration Checklist\";a:6:{s:5:\"title\";s:23:\"Configuration Checklist\";s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:2:\"id\";s:22:\"ConfigurationChecklist\";s:3:\"url\";s:33:\"/civicrm/admin/configtask?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Enable CiviCRM Components\";a:6:{s:5:\"title\";s:25:\"Enable CiviCRM Components\";s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:2:\"id\";s:23:\"EnableCiviCRMComponents\";s:3:\"url\";s:40:\"/civicrm/admin/setting/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Manage Extensions\";a:6:{s:5:\"title\";s:17:\"Manage Extensions\";s:4:\"desc\";s:0:\"\";s:2:\"id\";s:16:\"ManageExtensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Outbound Email Settings\";a:6:{s:5:\"title\";s:23:\"Outbound Email Settings\";s:4:\"desc\";N;s:2:\"id\";s:21:\"OutboundEmailSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/smtp?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:37:\"{weight}.Settings - Payment Processor\";a:6:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:2:\"id\";s:25:\"Settings-PaymentProcessor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Mapping and Geocoding\";a:6:{s:5:\"title\";s:21:\"Mapping and Geocoding\";s:4:\"desc\";N;s:2:\"id\";s:19:\"MappingandGeocoding\";s:3:\"url\";s:38:\"/civicrm/admin/setting/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:53:\"{weight}.Misc (Undelete, PDFs, Limits, Logging, etc.)\";a:6:{s:5:\"title\";s:44:\"Misc (Undelete, PDFs, Limits, Logging, etc.)\";s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:2:\"id\";s:38:\"Misc_Undelete_PDFs_Limits_Logging_etc.\";s:3:\"url\";s:35:\"/civicrm/admin/setting/misc?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Directories\";a:6:{s:5:\"title\";s:11:\"Directories\";s:4:\"desc\";N;s:2:\"id\";s:11:\"Directories\";s:3:\"url\";s:35:\"/civicrm/admin/setting/path?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Resource URLs\";a:6:{s:5:\"title\";s:13:\"Resource URLs\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ResourceURLs\";s:3:\"url\";s:34:\"/civicrm/admin/setting/url?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Cleanup Caches and Update Paths\";a:6:{s:5:\"title\";s:31:\"Cleanup Caches and Update Paths\";s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:2:\"id\";s:27:\"CleanupCachesandUpdatePaths\";s:3:\"url\";s:50:\"/civicrm/admin/setting/updateConfigBackend?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.CMS Database Integration\";a:6:{s:5:\"title\";s:24:\"CMS Database Integration\";s:4:\"desc\";N;s:2:\"id\";s:22:\"CMSDatabaseIntegration\";s:3:\"url\";s:33:\"/civicrm/admin/setting/uf?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Safe File Extension Options\";a:6:{s:5:\"title\";s:27:\"Safe File Extension Options\";s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:2:\"id\";s:24:\"SafeFileExtensionOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/safe_file_extension?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Option Groups\";a:6:{s:5:\"title\";s:13:\"Option Groups\";s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:2:\"id\";s:12:\"OptionGroups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Import/Export Mappings\";a:6:{s:5:\"title\";s:22:\"Import/Export Mappings\";s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:2:\"id\";s:21:\"Import_ExportMappings\";s:3:\"url\";s:30:\"/civicrm/admin/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:18:\"{weight}.Debugging\";a:6:{s:5:\"title\";s:9:\"Debugging\";s:4:\"desc\";N;s:2:\"id\";s:9:\"Debugging\";s:3:\"url\";s:36:\"/civicrm/admin/setting/debug?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Multi Site Settings\";a:6:{s:5:\"title\";s:19:\"Multi Site Settings\";s:4:\"desc\";N;s:2:\"id\";s:17:\"MultiSiteSettings\";s:3:\"url\";s:52:\"/civicrm/admin/setting/preferences/multisite?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Scheduled Jobs\";a:6:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:2:\"id\";s:13:\"ScheduledJobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Add Scheduled Job\";a:6:{s:5:\"title\";s:17:\"Add Scheduled Job\";s:4:\"desc\";s:31:\"Add a periodially running task.\";s:2:\"id\";s:15:\"AddScheduledJob\";s:3:\"url\";s:30:\"/civicrm/admin/job/add?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Edit Scheduled Job\";a:6:{s:5:\"title\";s:18:\"Edit Scheduled Job\";s:4:\"desc\";s:32:\"Edit a periodially running task.\";s:2:\"id\";s:16:\"EditScheduledJob\";s:3:\"url\";s:31:\"/civicrm/admin/job/edit?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Sms Providers\";a:6:{s:5:\"title\";s:13:\"Sms Providers\";s:4:\"desc\";s:27:\"To configure a sms provider\";s:2:\"id\";s:12:\"SmsProviders\";s:3:\"url\";s:35:\"/civicrm/admin/sms/provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.reCAPTCHA Settings\";a:6:{s:5:\"title\";s:18:\"reCAPTCHA Settings\";s:4:\"desc\";s:43:\"Configure anti-abuse/bot-prevention service\";s:2:\"id\";s:17:\"reCAPTCHASettings\";s:3:\"url\";s:40:\"/civicrm/admin/setting/recaptcha?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"CiviCampaign\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:40:\"{weight}.CiviCampaign Component Settings\";a:6:{s:5:\"title\";s:31:\"CiviCampaign Component Settings\";s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:2:\"id\";s:29:\"CiviCampaignComponentSettings\";s:3:\"url\";s:51:\"/civicrm/admin/setting/preferences/campaign?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Survey Types\";a:6:{s:5:\"title\";s:12:\"Survey Types\";s:4:\"desc\";N;s:2:\"id\";s:11:\"SurveyTypes\";s:3:\"url\";s:42:\"/civicrm/admin/campaign/surveyType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Campaign Types\";a:6:{s:5:\"title\";s:14:\"Campaign Types\";s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:2:\"id\";s:13:\"CampaignTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/campaign_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Campaign Status\";a:6:{s:5:\"title\";s:15:\"Campaign Status\";s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:2:\"id\";s:14:\"CampaignStatus\";s:3:\"url\";s:46:\"/civicrm/admin/options/campaign_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Engagement Index\";a:6:{s:5:\"title\";s:16:\"Engagement Index\";s:4:\"desc\";s:18:\"Engagement levels.\";s:2:\"id\";s:15:\"EngagementIndex\";s:3:\"url\";s:47:\"/civicrm/admin/options/engagement_index?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"CiviEvent\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:37:\"{weight}.CiviEvent Component Settings\";a:6:{s:5:\"title\";s:28:\"CiviEvent Component Settings\";s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:2:\"id\";s:26:\"CiviEventComponentSettings\";s:3:\"url\";s:48:\"/civicrm/admin/setting/preferences/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Event Name Badge Layouts\";a:6:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:2:\"id\";s:21:\"EventNameBadgeLayouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?action=browse&reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Manage Events\";a:6:{s:5:\"title\";s:13:\"Manage Events\";s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:2:\"id\";s:12:\"ManageEvents\";s:3:\"url\";s:28:\"/civicrm/admin/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Event Templates\";a:6:{s:5:\"title\";s:15:\"Event Templates\";s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:2:\"id\";s:14:\"EventTemplates\";s:3:\"url\";s:36:\"/civicrm/admin/eventTemplate?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Event Types\";a:6:{s:5:\"title\";s:11:\"Event Types\";s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:2:\"id\";s:10:\"EventTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/event_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Participant Status\";a:6:{s:5:\"title\";s:18:\"Participant Status\";s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:2:\"id\";s:17:\"ParticipantStatus\";s:3:\"url\";s:41:\"/civicrm/admin/participant_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Participant Role\";a:6:{s:5:\"title\";s:16:\"Participant Role\";s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:2:\"id\";s:15:\"ParticipantRole\";s:3:\"url\";s:47:\"/civicrm/admin/options/participant_role?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Participant Listing Templates\";a:6:{s:5:\"title\";s:29:\"Participant Listing Templates\";s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:2:\"id\";s:27:\"ParticipantListingTemplates\";s:3:\"url\";s:50:\"/civicrm/admin/options/participant_listing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Conference Slot Labels\";a:6:{s:5:\"title\";s:22:\"Conference Slot Labels\";s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:2:\"id\";s:20:\"ConferenceSlotLabels\";s:3:\"url\";s:46:\"/civicrm/admin/options/conference_slot?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviMail\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:36:\"{weight}.CiviMail Component Settings\";a:6:{s:5:\"title\";s:27:\"CiviMail Component Settings\";s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:2:\"id\";s:25:\"CiviMailComponentSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/mailing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Mailer Settings\";a:6:{s:5:\"title\";s:15:\"Mailer Settings\";s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:2:\"id\";s:14:\"MailerSettings\";s:3:\"url\";s:27:\"/civicrm/admin/mail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:49:\"{weight}.Headers, Footers, and Automated Messages\";a:6:{s:5:\"title\";s:40:\"Headers, Footers, and Automated Messages\";s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:2:\"id\";s:36:\"Headers_Footers_andAutomatedMessages\";s:3:\"url\";s:32:\"/civicrm/admin/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:58:\"/civicrm/admin/options/from_email_address/civimail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Mail Accounts\";a:6:{s:5:\"title\";s:13:\"Mail Accounts\";s:4:\"desc\";s:20:\"List email accounts.\";s:2:\"id\";s:12:\"MailAccounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviMember\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:38:\"{weight}.CiviMember Component Settings\";a:6:{s:5:\"title\";s:29:\"CiviMember Component Settings\";s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:2:\"id\";s:27:\"CiviMemberComponentSettings\";s:3:\"url\";s:49:\"/civicrm/admin/setting/preferences/member?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Membership Types\";a:6:{s:5:\"title\";s:16:\"Membership Types\";s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:2:\"id\";s:15:\"MembershipTypes\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Membership Status Rules\";a:6:{s:5:\"title\";s:23:\"Membership Status Rules\";s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:2:\"id\";s:21:\"MembershipStatusRules\";s:3:\"url\";s:46:\"/civicrm/admin/member/membershipStatus?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:6:\"Manage\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:27:\"{weight}.Scheduled Jobs Log\";a:6:{s:5:\"title\";s:18:\"Scheduled Jobs Log\";s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:2:\"id\";s:16:\"ScheduledJobsLog\";s:3:\"url\";s:29:\"/civicrm/admin/joblog?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.Find and Merge Duplicate Contacts\";a:6:{s:5:\"title\";s:33:\"Find and Merge Duplicate Contacts\";s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:2:\"id\";s:29:\"FindandMergeDuplicateContacts\";s:3:\"url\";s:36:\"/civicrm/contact/deduperules?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Dedupe Exceptions\";a:6:{s:5:\"title\";s:17:\"Dedupe Exceptions\";s:4:\"desc\";N;s:2:\"id\";s:16:\"DedupeExceptions\";s:3:\"url\";s:33:\"/civicrm/dedupe/exception?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Option Lists\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:20:\"{weight}.Grant Types\";a:6:{s:5:\"title\";s:11:\"Grant Types\";s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > System Settings > Enable Components if you want to track grants.)\";s:2:\"id\";s:10:\"GrantTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/grant_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"Customize\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:19:\"{weight}.Price Sets\";a:6:{s:5:\"title\";s:10:\"Price Sets\";s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:2:\"id\";s:9:\"PriceSets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviCase\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:26:\"{weight}.CiviCase Settings\";a:6:{s:5:\"title\";s:17:\"CiviCase Settings\";s:4:\"desc\";N;s:2:\"id\";s:16:\"CiviCaseSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/case?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Case Types\";a:6:{s:5:\"title\";s:10:\"Case Types\";s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:2:\"id\";s:9:\"CaseTypes\";s:3:\"url\";s:40:\"/civicrm/admin/options/case_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Redaction Rules\";a:6:{s:5:\"title\";s:15:\"Redaction Rules\";s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:2:\"id\";s:14:\"RedactionRules\";s:3:\"url\";s:45:\"/civicrm/admin/options/redaction_rule?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Case Statuses\";a:6:{s:5:\"title\";s:13:\"Case Statuses\";s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:2:\"id\";s:12:\"CaseStatuses\";s:3:\"url\";s:42:\"/civicrm/admin/options/case_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Encounter Mediums\";a:6:{s:5:\"title\";s:17:\"Encounter Mediums\";s:4:\"desc\";s:26:\"List of encounter mediums.\";s:2:\"id\";s:16:\"EncounterMediums\";s:3:\"url\";s:47:\"/civicrm/admin/options/encounter_medium?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviReport\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:40:\"{weight}.Create New Report from Template\";a:6:{s:5:\"title\";s:31:\"Create New Report from Template\";s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:2:\"id\";s:27:\"CreateNewReportfromTemplate\";s:3:\"url\";s:43:\"/civicrm/admin/report/template/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Manage Templates\";a:6:{s:5:\"title\";s:16:\"Manage Templates\";s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:2:\"id\";s:15:\"ManageTemplates\";s:3:\"url\";s:53:\"/civicrm/admin/report/options/report_template?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Reports Listing\";a:6:{s:5:\"title\";s:15:\"Reports Listing\";s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:2:\"id\";s:14:\"ReportsListing\";s:3:\"url\";s:34:\"/civicrm/admin/report/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}}',NULL,NULL,NULL,1,0,1,1,1,1,1,0,'a:0:{}'); + (37,1,'civicrm/ajax/apidoc',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:26:\"CRM_Admin_Page_APIExplorer\";i:1;s:6:\"getDoc\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (38,1,'civicrm/ajax/rest',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access AJAX API\";}i:1;s:2:\"or\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:4:\"ajax\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (39,1,'civicrm/api/json',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:8:\"ajaxJson\";}','s:16:\"url=civicrm/api3\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (40,1,'civicrm/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:14:\"CRM_Utils_REST\";i:1;s:12:\"loadTemplate\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (41,1,'civicrm/ajax/chart',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (42,1,'civicrm/asset/builder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"\\Civi\\Core\\AssetBuilder\";i:1;s:7:\"pageRun\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (43,1,'civicrm/contribute/ajax/tableview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (44,1,'civicrm/payment/ipn',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Core_Payment\";i:1;s:9:\"handleIPN\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,1,1,0,1,1,0,0,'a:0:{}'), + (45,1,'civicrm/batch',NULL,'Batch Data Entry','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (46,1,'civicrm/batch/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Batch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (47,1,'civicrm/batch/entry',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:20:\"CRM_Batch_Form_Entry\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Batch Data Entry\";s:3:\"url\";s:22:\"/civicrm/batch?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (48,1,'civicrm/ajax/batch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:9:\"batchSave\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (49,1,'civicrm/ajax/batchlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Batch_Page_AJAX\";i:1;s:12:\"getBatchList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (50,1,'civicrm/ajax/inline',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Core_Page_AJAX\";i:1;s:3:\"run\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (51,1,'civicrm/dev/qunit',NULL,'QUnit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_Core_Page_QUnit\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (52,1,'civicrm/dev/fake-error',NULL,'Fake Error','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Page_FakeError\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (53,1,'civicrm/profile-editor/schema',NULL,'ProfileEditor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:25:\"CRM_UF_Page_ProfileEditor\";i:1;s:13:\"getSchemaJSON\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (54,1,'civicrm/a',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"\\Civi\\Angular\\Page\\Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (55,1,'civicrm/ajax/angular-modules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"\\Civi\\Angular\\Page\\Modules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (56,1,'civicrm/ajax/recurringentity/update-mode',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:34:\"CRM_Core_Page_AJAX_RecurringEntity\";i:1;s:10:\"updateMode\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (57,1,'civicrm/recurringentity/preview',NULL,'Confirm dates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Core_Page_RecurringEntityPreview\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (58,1,'civicrm/shortcode',NULL,'Insert CiviCRM Content','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Core_Form_ShortCode\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (59,1,'civicrm/task/add-to-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Form_Task_AddToGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (60,1,'civicrm/task/remove-from-group',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contact_Form_Task_RemoveFromGroup\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (61,1,'civicrm/task/add-to-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contact_Form_Task_AddToTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (62,1,'civicrm/task/remove-from-tag',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Form_Task_RemoveFromTag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (63,1,'civicrm/task/send-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (64,1,'civicrm/task/make-mailing-label',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Label\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (65,1,'civicrm/task/pick-profile',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contact_Form_Task_PickProfile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (66,1,'civicrm/task/print-document',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (67,1,'civicrm/task/unhold-email',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Unhold\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (68,1,'civicrm/task/alter-contact-preference',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contact_Form_Task_AlterPreferences\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (69,1,'civicrm/task/delete-contact',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (70,1,'civicrm/task/add-activity',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (71,1,'civicrm/payment/form',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Financial_Form_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,1,1,0,0,1,0,0,'a:0:{}'), + (72,1,'civicrm/payment/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Financial_Form_PaymentEdit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (73,1,'civicrm/import',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,400,1,1,0,'a:0:{}'), + (74,1,'civicrm/import/contact',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,410,1,1,0,'a:0:{}'), + (75,1,'civicrm/import/contact/summary',NULL,'Import Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Import_Form_Summary\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Import Contacts\";s:3:\"url\";s:31:\"/civicrm/import/contact?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,410,1,1,0,'a:0:{}'), + (76,1,'civicrm/import/outcome',NULL,'Import results','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Import_Forms\";i:1;s:9:\"outputCSV\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (77,1,'civicrm/import/activity',NULL,'Import Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Activity_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,420,1,1,0,'a:0:{}'), + (78,1,'civicrm/import/contribution',NULL,'Import Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"edit contributions\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,520,1,1,0,'a:0:{}'), + (79,1,'civicrm/import/custom','id=%%id%%','Import Multi-value Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Custom_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,420,1,1,0,'a:0:{}'), + (80,1,'civicrm/ajax/status',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"import contacts\";i:1;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Contact_Import_Page_AJAX\";i:1;s:6:\"status\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (81,1,'civicrm/import/datasource',NULL,'Import','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Import_Form_DataSourceConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:6:\"Import\";s:3:\"url\";s:23:\"/civicrm/import?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,450,1,1,0,'a:0:{}'), + (82,1,'civicrm/custom/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Custom_Form_CustomData\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (83,1,'civicrm/ajax/optionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:13:\"getOptionList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (84,1,'civicrm/ajax/reorder',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:11:\"fixOrdering\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (85,1,'civicrm/ajax/multirecordfieldlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Custom_Page_AJAX\";i:1;s:23:\"getMultiRecordFieldList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (86,1,'civicrm/admin/custom/group',NULL,'Custom Data','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (87,1,'civicrm/admin/custom/group/edit',NULL,'Configure Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (88,1,'civicrm/admin/custom/group/preview',NULL,'Custom Field Preview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:23:\"CRM_Custom_Form_Preview\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (89,1,'civicrm/admin/custom/group/delete',NULL,'Delete Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:27:\"CRM_Custom_Form_DeleteGroup\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (90,1,'civicrm/admin/custom/group/field',NULL,'Custom Data Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,11,1,0,0,'a:0:{}'), + (91,1,'civicrm/admin/custom/group/field/delete',NULL,'Delete Custom Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:27:\"CRM_Custom_Form_DeleteField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (92,1,'civicrm/admin/custom/group/field/option',NULL,'Custom Field - Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:22:\"CRM_Custom_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (93,1,'civicrm/admin/custom/group/field/add',NULL,'Custom Field - Add','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (94,1,'civicrm/admin/custom/group/field/update',NULL,'Custom Field - Edit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:21:\"CRM_Custom_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (95,1,'civicrm/admin/custom/group/field/move',NULL,'Custom Field - Move','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:25:\"CRM_Custom_Form_MoveField\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"Custom Data\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (96,1,'civicrm/admin/uf/group',NULL,'Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Group\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:2:{s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (97,1,'civicrm/admin/uf/group/preview',NULL,'Preview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:19:\"CRM_UF_Form_Preview\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (98,1,'civicrm/admin/uf/group/field',NULL,'CiviCRM Profile Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,21,1,0,0,'a:0:{}'), + (99,1,'civicrm/admin/uf/group/field/add',NULL,'Add Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,22,1,0,0,'a:0:{}'), + (100,1,'civicrm/admin/uf/group/field/update',NULL,'Edit Field','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,23,1,0,0,'a:0:{}'), + (101,1,'civicrm/admin/uf/group/add',NULL,'New CiviCRM Profile','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,24,1,0,0,'a:0:{}'), + (102,1,'civicrm/admin/uf/group/update',NULL,'Profile Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:17:\"CRM_UF_Form_Group\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,25,1,0,0,'a:0:{}'), + (103,1,'civicrm/admin/uf/group/setting',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_UF_Form_AdvanceSetting\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,0,1,0,0,'a:0:{}'), + (104,1,'civicrm/admin/options/activity_type',NULL,'Activity Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:2:{s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (105,1,'civicrm/admin/reltype',NULL,'Relationship Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_RelationshipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,35,1,0,0,'a:2:{s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (106,1,'civicrm/admin/reltype/edit',NULL,'Edit Relationship Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_RelationshipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:18:\"Relationship Types\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (107,1,'civicrm/admin/options/subtype',NULL,'Contact Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Page_ContactType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (108,1,'civicrm/admin/options/subtype/edit',NULL,'Edit Contact Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_ContactType\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:13:\"Contact Types\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (109,1,'civicrm/admin/options/gender',NULL,'Gender Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,45,1,0,0,'a:2:{s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (110,1,'civicrm/admin/options/individual_prefix',NULL,'Individual Prefixes (Ms, Mr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,50,1,0,0,'a:2:{s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (111,1,'civicrm/admin/options/individual_suffix',NULL,'Individual Suffixes (Jr, Sr...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,55,1,0,0,'a:2:{s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (112,1,'civicrm/admin/locationType',NULL,'Location Types (Home, Work...)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LocationType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,60,1,0,0,'a:2:{s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (113,1,'civicrm/admin/locationType/edit',NULL,'Edit Location Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_LocationType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (114,1,'civicrm/admin/options/website_type',NULL,'Website Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,65,1,0,0,'a:2:{s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (115,1,'civicrm/admin/options/instant_messenger_service',NULL,'Instant Messenger Services','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,70,1,0,0,'a:2:{s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (116,1,'civicrm/admin/options/mobile_provider',NULL,'Mobile Phone Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,75,1,0,0,'a:2:{s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (117,1,'civicrm/admin/options/phone_type',NULL,'Phone Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,80,1,0,0,'a:2:{s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n Mobile, Fax, Pager)\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (118,1,'civicrm/admin/setting/preferences/display',NULL,'Display Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Display\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,90,1,0,0,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (119,1,'civicrm/admin/setting/search',NULL,'Search Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Form_Setting_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,95,1,0,0,'a:1:{s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (120,1,'civicrm/admin/setting/preferences/date',NULL,'View Date Preferences','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Page_PreferencesDate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (121,1,'civicrm/admin/menu',NULL,'Navigation Menu','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Navigation\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,100,1,0,0,'a:2:{s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (122,1,'civicrm/admin/options/wordreplacements',NULL,'Word Replacements','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_WordReplacements\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,105,1,0,0,'a:2:{s:4:\"desc\";s:18:\"Word Replacements.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (123,1,'civicrm/admin/options/custom_search',NULL,'Manage Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,110,1,0,0,'a:2:{s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (124,1,'civicrm/admin/domain','action=update','Organization Address and Contact Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contact_Form_Domain\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (125,1,'civicrm/admin/options/from_email_address',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (126,1,'civicrm/admin/messageTemplates',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Page_MessageTemplates\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:2:{s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (127,1,'civicrm/admin/messageTemplates/add',NULL,'Message Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:22:\"edit message templates\";i:1;s:34:\"edit user-driven message templates\";i:2;s:38:\"edit system workflow message templates\";}i:1;s:2:\"or\";}','s:31:\"CRM_Admin_Form_MessageTemplates\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Message Templates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,262,1,0,0,'a:1:{s:4:\"desc\";s:26:\"Add/Edit Message Templates\";}'), + (128,1,'civicrm/admin/scheduleReminders',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCRM data\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ScheduleReminders\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:2:{s:4:\"desc\";s:19:\"Schedule Reminders.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (129,1,'civicrm/admin/scheduleReminders/edit',NULL,'Schedule Reminders','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCRM data\";i:1;s:15:\"edit all events\";}i:1;s:2:\"or\";}','s:32:\"CRM_Admin_Form_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:18:\"Schedule Reminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (130,1,'civicrm/admin/weight',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_Weight\";i:1;s:8:\"fixOrder\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (131,1,'civicrm/admin/options/preferred_communication_method',NULL,'Preferred Communication Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,50,1,0,0,'a:2:{s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (132,1,'civicrm/admin/labelFormats',NULL,'Label Page Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_LabelFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,60,1,0,0,'a:2:{s:4:\"desc\";s:82:\"Configure label sizes and page layouts that are used when printing mailing labels.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (133,1,'civicrm/admin/pdfFormats',NULL,'Print Page (PDF) Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_PdfFormats\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,70,1,0,0,'a:2:{s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (134,1,'civicrm/admin/options/communication_style',NULL,'Communication Style Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,75,1,0,0,'a:2:{s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (135,1,'civicrm/admin/options/email_greeting',NULL,'Email Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,80,1,0,0,'a:2:{s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (136,1,'civicrm/admin/options/postal_greeting',NULL,'Postal Greeting Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,90,1,0,0,'a:2:{s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (137,1,'civicrm/admin/options/addressee',NULL,'Addressee Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,100,1,0,0,'a:2:{s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:10:\"adminGroup\";s:14:\"Communications\";}'), + (138,1,'civicrm/admin/setting/localization',NULL,'Languages, Currency, Locations','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Form_Setting_Localization\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'), + (139,1,'civicrm/admin/setting/preferences/address',NULL,'Address Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Address\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'), + (140,1,'civicrm/admin/setting/date',NULL,'Date Formats','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Date\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:1:{s:10:\"adminGroup\";s:12:\"Localization\";}'), + (141,1,'civicrm/admin/options/languages',NULL,'Preferred Languages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:2:{s:4:\"desc\";s:30:\"Options for contact languages.\";s:10:\"adminGroup\";s:12:\"Localization\";}'), + (142,1,'civicrm/admin/access',NULL,'Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_Access\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'), + (143,1,'civicrm/admin/access/wp-permissions',NULL,'WordPress Access Control','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_ACL_Form_WordPress_Permissions\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Access Control\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:1:{s:4:\"desc\";s:65:\"Grant access to CiviCRM components and other CiviCRM permissions.\";}'), + (144,1,'civicrm/admin/synchUser',NULL,'Synchronize Users to Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_CMSUser\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:2:{s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:10:\"adminGroup\";s:21:\"Users and Permissions\";}'), + (145,1,'civicrm/admin/configtask',NULL,'Configuration Checklist','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Admin_Page_ConfigTaskList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}','civicrm/admin/configtask',NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (146,1,'civicrm/admin/setting/component',NULL,'Enable CiviCRM Components','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:2:{s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (147,1,'civicrm/admin/extensions',NULL,'Manage Extensions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Page_Extensions\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,120,1,0,0,'a:2:{s:4:\"desc\";s:0:\"\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (148,1,'civicrm/admin/extensions/upgrade',NULL,'Database Upgrades','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Page_ExtensionsUpgrade\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:17:\"Manage Extensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (149,1,'civicrm/admin/setting/smtp',NULL,'Outbound Email Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Smtp\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,20,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (150,1,'civicrm/admin/paymentProcessor',NULL,'Settings - Payment Processor','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Page_PaymentProcessor\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,30,1,0,0,'a:2:{s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (151,1,'civicrm/admin/paymentProcessor/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:29:\"administer payment processors\";}i:1;s:3:\"and\";}','s:31:\"CRM_Admin_Form_PaymentProcessor\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (152,1,'civicrm/admin/setting/mapping',NULL,'Mapping and Geocoding','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Admin_Form_Setting_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,40,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (153,1,'civicrm/admin/setting/misc',NULL,'Misc (Undelete, PDFs, Limits, Logging, etc.)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Form_Setting_Miscellaneous\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,50,1,0,0,'a:2:{s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (154,1,'civicrm/admin/setting/path',NULL,'Directories','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Path\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,60,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (155,1,'civicrm/admin/setting/url',NULL,'Resource URLs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Admin_Form_Setting_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,70,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (156,1,'civicrm/admin/setting/updateConfigBackend',NULL,'Cleanup Caches and Update Paths','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Admin_Form_Setting_UpdateConfigBackend\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,80,1,0,0,'a:2:{s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (157,1,'civicrm/admin/setting/uf',NULL,'CMS Database Integration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Admin_Form_Setting_UF\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,90,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (158,1,'civicrm/admin/options/safe_file_extension',NULL,'Safe File Extension Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,100,1,0,0,'a:2:{s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (159,1,'civicrm/admin/options',NULL,'Option Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,105,1,0,0,'a:2:{s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (160,1,'civicrm/admin/mapping',NULL,'Import/Export Mappings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Mapping\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,110,1,0,0,'a:2:{s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (161,1,'civicrm/admin/setting/debug',NULL,'Debugging','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Admin_Form_Setting_Debugging\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,120,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (162,1,'civicrm/admin/setting/preferences/multisite',NULL,'Multi Site Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,130,1,0,0,'a:1:{s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (163,1,'civicrm/admin/setting/preferences/campaign',NULL,'CiviCampaign Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,10,1,0,0,'a:3:{s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), + (164,1,'civicrm/admin/setting/preferences/event',NULL,'CiviEvent Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:2:{s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (165,1,'civicrm/admin/setting/preferences/mailing',NULL,'CiviMail Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Admin_Form_Preferences_Mailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,430,1,0,0,'a:2:{s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), + (166,1,'civicrm/admin/setting/preferences/member',NULL,'CiviMember Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Admin_Form_Preferences_Member\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:2:{s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'), + (167,1,'civicrm/admin/runjobs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','a:2:{i:0;s:16:\"CRM_Utils_System\";i:1;s:20:\"executeScheduledJobs\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:36:\"URL used for running scheduled jobs.\";}'), + (168,1,'civicrm/admin/job',NULL,'Scheduled Jobs','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1370,1,0,0,'a:2:{s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (169,1,'civicrm/admin/job/add',NULL,'Add Scheduled Job','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Form_Job\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:31:\"Add a periodially running task.\";}'), + (170,1,'civicrm/admin/job/edit',NULL,'Edit Scheduled Job','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:18:\"CRM_Admin_Page_Job\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1372,1,0,0,'a:2:{s:4:\"desc\";s:32:\"Edit a periodially running task.\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (171,1,'civicrm/admin/joblog',NULL,'Scheduled Jobs Log','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:25:\"administer CiviCRM system\";}i:1;s:3:\"and\";}','s:21:\"CRM_Admin_Page_JobLog\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1380,1,0,0,'a:2:{s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:10:\"adminGroup\";s:6:\"Manage\";}'), + (172,1,'civicrm/admin/options/grant_type',NULL,'Grant Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,385,1,0,0,'a:2:{s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > System Settings > Enable Components if you want to track grants.)\";s:10:\"adminGroup\";s:12:\"Option Lists\";}'), + (173,1,'civicrm/admin/paymentProcessorType',NULL,'Payment Processor Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Admin_Page_PaymentProcessorType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:1:{s:4:\"desc\";s:34:\"Payment Processor type information\";}'), + (174,1,'civicrm/admin',NULL,'Administer','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Admin_Page_Admin\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,9000,1,1,0,'a:0:{}'), + (175,1,'civicrm/ajax/navmenu',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:7:\"navMenu\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (176,1,'civicrm/ajax/menutree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:8:\"menuTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,3,0,'a:0:{}'), + (177,1,'civicrm/ajax/statusmsg',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:12:\"getStatusMsg\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (178,1,'civicrm/admin/price',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:2:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:10:\"adminGroup\";s:9:\"Customize\";}'), + (179,1,'civicrm/admin/price/add','action=add','New Price Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";}'), + (180,1,'civicrm/admin/price/edit',NULL,'Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (181,1,'civicrm/admin/price/field',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (182,1,'civicrm/admin/price/field/edit',NULL,'Price Fields','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:20:\"CRM_Price_Page_Field\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (183,1,'civicrm/admin/price/field/option',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (184,1,'civicrm/admin/price/field/option/edit',NULL,'Price Field Options','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Price_Page_Option\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:10:\"Price Sets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";}i:3;a:2:{s:5:\"title\";s:19:\"Price Field Options\";s:3:\"url\";s:41:\"/civicrm/admin/price/field/option?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (185,1,'civicrm/admin/sms/provider',NULL,'Sms Providers','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Provider\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,500,1,0,0,'a:2:{s:4:\"desc\";s:27:\"To configure a sms provider\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (186,1,'civicrm/sms/send',NULL,'New Mass SMS','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:23:\"CRM_SMS_Controller_Send\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,610,1,1,0,'a:0:{}'), + (187,1,'civicrm/sms/callback',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_SMS_Page_Callback\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (188,1,'civicrm/admin/badgelayout','action=browse','Event Name Badge Layouts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Page_Layout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,399,1,0,0,'a:2:{s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (189,1,'civicrm/admin/badgelayout/add',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Badge_Form_Layout\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?reset=1&action=browse\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (190,1,'civicrm',NULL,'CiviCRM','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:0:{}',NULL,NULL,NULL,1,0,1,0,0,1,0,0,'a:0:{}'), + (191,1,'civicrm/dashboard',NULL,'CiviCRM Home','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,0,1,1,0,'a:0:{}'), + (192,1,'civicrm/contact/search',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,10,1,1,0,'a:0:{}'), + (193,1,'civicrm/contact/image',NULL,'Process Uploaded Images','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access uploaded files\";}i:1;s:3:\"and\";}','a:2:{i:0;s:23:\"CRM_Contact_BAO_Contact\";i:1;s:12:\"processImage\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (194,1,'civicrm/contact/imagefile',NULL,'Get Image File','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contact_Page_ImageFile\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (195,1,'civicrm/contact/search/basic',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (196,1,'civicrm/contact/search/advanced',NULL,'Advanced Search','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=512\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,12,1,1,0,'a:0:{}'), + (197,1,'civicrm/contact/search/builder',NULL,'Search Builder','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:9:\"mode=8192\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,14,1,1,0,'a:0:{}'), + (198,1,'civicrm/contact/add',NULL,'New Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (199,1,'civicrm/contact/add/individual','ct=Individual','New Individual','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (200,1,'civicrm/contact/add/household','ct=Household','New Household','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (201,1,'civicrm/contact/add/organization','ct=Organization','New Organization','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:12:\"add contacts\";}i:1;s:3:\"and\";}','s:24:\"CRM_Contact_Form_Contact\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Contact\";s:3:\"url\";s:28:\"/civicrm/contact/add?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (202,1,'civicrm/contact/relatedcontact',NULL,'Edit Related Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_RelatedContact\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (203,1,'civicrm/contact/merge',NULL,'Merge Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:22:\"CRM_Contact_Form_Merge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (204,1,'civicrm/contact/email',NULL,'Email a Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (205,1,'civicrm/contact/map',NULL,'Map Location(s)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_Map\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (206,1,'civicrm/contact/map/event',NULL,'Map Event Location','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contact_Form_Task_Map_Event\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Map Location(s)\";s:3:\"url\";s:28:\"/civicrm/contact/map?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (207,1,'civicrm/contact/view','cid=%%cid%%','Contact Summary','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Summary\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (208,1,'civicrm/contact/view/delete',NULL,'Delete Contact','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Form_Task_Delete\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (209,1,'civicrm/contact/view/activity','show=1,cid=%%cid%%','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:21:\"CRM_Activity_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (210,1,'civicrm/activity/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Activity_Form_Activity\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (211,1,'civicrm/activity/email/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Form_Task_Email\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (212,1,'civicrm/activity/pdf/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_PDF\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (213,1,'civicrm/contact/view/rel','cid=%%cid%%','Relationships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_Relationship\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (214,1,'civicrm/contact/view/group','cid=%%cid%%','Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contact_Page_View_GroupContact\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (215,1,'civicrm/contact/view/smartgroup','cid=%%cid%%','Smart Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:39:\"CRM_Contact_Page_View_ContactSmartGroup\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (216,1,'civicrm/contact/view/note','cid=%%cid%%','Notes','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Contact_Page_View_Note\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (217,1,'civicrm/contact/view/tag','cid=%%cid%%','Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Tag\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (218,1,'civicrm/contact/view/cd',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:32:\"CRM_Contact_Page_View_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (219,1,'civicrm/contact/view/cd/edit',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Form_CustomData\";','s:13:\"addSequence=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (220,1,'civicrm/contact/view/vcard',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Vcard\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (221,1,'civicrm/contact/view/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:27:\"CRM_Contact_Page_View_Print\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (222,1,'civicrm/contact/view/log',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:25:\"CRM_Contact_Page_View_Log\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (223,1,'civicrm/user',NULL,'Contact Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"access Contact Dashboard\";}i:1;s:3:\"and\";}','s:35:\"CRM_Contact_Page_View_UserDashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,0,1,0,0,'a:0:{}'), + (224,1,'civicrm/dashlet/activity',NULL,'Activity Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_Activity\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (225,1,'civicrm/dashlet/blog',NULL,'CiviCRM Blog','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:21:\"CRM_Dashlet_Page_Blog\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (226,1,'civicrm/dashlet/getting-started',NULL,'CiviCRM Resources','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Dashlet_Page_GettingStarted\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (227,1,'civicrm/ajax/relation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"relationship\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,3,0,'a:0:{}'), + (228,1,'civicrm/ajax/groupTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"groupTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (229,1,'civicrm/ajax/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:11:\"customField\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (230,1,'civicrm/ajax/customvalue',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:17:\"deleteCustomValue\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,3,0,'a:0:{}'), + (231,1,'civicrm/ajax/cmsuser',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"checkUserName\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (232,1,'civicrm/ajax/checkemail',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactEmail\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (233,1,'civicrm/ajax/checkphone',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:15:\"getContactPhone\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (234,1,'civicrm/ajax/subtype',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"buildSubTypes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (235,1,'civicrm/ajax/signature',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:12:\"getSignature\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (236,1,'civicrm/ajax/pdfFormat',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"pdfFormat\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (237,1,'civicrm/ajax/paperSize',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:9:\"paperSize\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (238,1,'civicrm/ajax/contactref',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:31:\"access contact reference fields\";i:1;s:15:\" access CiviCRM\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"contactReference\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (239,1,'civicrm/dashlet/myCases',NULL,'Case Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Dashlet_Page_MyCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (240,1,'civicrm/dashlet/allCases',NULL,'All Cases Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:25:\"CRM_Dashlet_Page_AllCases\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (241,1,'civicrm/dashlet/casedashboard',NULL,'Case Dashboard Dashlet','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Dashlet_Page_CaseDashboard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (242,1,'civicrm/contact/deduperules',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer dedupe rules\";i:1;s:24:\"merge duplicate contacts\";}i:1;s:2:\"or\";}','s:28:\"CRM_Contact_Page_DedupeRules\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,105,1,0,0,'a:2:{s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:10:\"adminGroup\";s:6:\"Manage\";}'), + (243,1,'civicrm/contact/dedupefind',NULL,'Find and Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:27:\"CRM_Contact_Page_DedupeFind\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (244,1,'civicrm/ajax/dedupefind',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:10:\"getDedupes\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (245,1,'civicrm/contact/dedupemerge',NULL,'Batch Merge Duplicate Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','s:28:\"CRM_Contact_Page_DedupeMerge\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (246,1,'civicrm/dedupe/exception',NULL,'Dedupe Exceptions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contact_Page_DedupeException\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,110,1,0,0,'a:1:{s:10:\"adminGroup\";s:6:\"Manage\";}'), + (247,1,'civicrm/ajax/dedupeRules',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:16:\"buildDedupeRules\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (248,1,'civicrm/contact/view/useradd','cid=%%cid%%','Add User','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:29:\"CRM_Contact_Page_View_Useradd\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (249,1,'civicrm/ajax/markSelection',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:22:\"selectUnselectContacts\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (250,1,'civicrm/ajax/toggleDedupeSelect',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:18:\"toggleDedupeSelect\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (251,1,'civicrm/ajax/flipDupePairs',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:24:\"merge duplicate contacts\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:13:\"flipDupePairs\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (252,1,'civicrm/activity/sms/add','action=add','Activities','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:8:\"send SMS\";}i:1;s:3:\"and\";}','s:25:\"CRM_Contact_Form_Task_SMS\";','s:14:\"attachUpload=1\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:12:\"New Activity\";s:3:\"url\";s:63:\"/civicrm/activity?reset=1&action=add&context=standalone\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (253,1,'civicrm/ajax/contactrelationships',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"view my contact\";}i:1;s:2:\"or\";}','a:2:{i:0;s:21:\"CRM_Contact_Page_AJAX\";i:1;s:23:\"getContactRelationships\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (254,1,'civicrm/ajax/jqState',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:7:\"jqState\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (255,1,'civicrm/ajax/jqCounty',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:8:\"jqCounty\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (256,1,'civicrm/group',NULL,'Manage Groups','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Page_Group\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,30,1,1,0,'a:0:{}'), + (257,1,'civicrm/group/search',NULL,'Group Members','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Controller_Search\";','s:8:\"mode=256\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:7:\"comment\";s:164:\"Note: group search already respect ACL, so a strict permission at url level is not required. A simple/basic permission like \'access CiviCRM\' could be used. CRM-5417\";}'), + (258,1,'civicrm/group/add',NULL,'New Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:20:\"CRM_Group_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (259,1,'civicrm/group/edit',NULL,'Edit Group','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:11:\"edit groups\";}i:1;s:3:\"and\";}','s:19:\"CRM_Group_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Manage Groups\";s:3:\"url\";s:22:\"/civicrm/group?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (260,1,'civicrm/ajax/grouplist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Group_Page_AJAX\";i:1;s:12:\"getGroupList\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (261,1,'civicrm/tag',NULL,'Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:16:\"CRM_Tag_Page_Tag\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,25,1,0,0,'a:2:{s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:10:\"adminGroup\";s:26:\"Customize Data and Screens\";}'), + (262,1,'civicrm/tag/edit','action=add','New Tag','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:17:\"CRM_Tag_Form_Edit\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (263,1,'civicrm/tag/merge',NULL,'Merge Tags','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','s:18:\"CRM_Tag_Form_Merge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (264,1,'civicrm/ajax/tagTree',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:11:\"manage tags\";}i:1;s:2:\"or\";}','a:2:{i:0;s:19:\"CRM_Admin_Page_AJAX\";i:1;s:10:\"getTagTree\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (265,1,'civicrm/custom',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Custom_Form_CustomDataByType\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (266,1,'civicrm/event/manage/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_PCP_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,540,1,1,0,'a:0:{}'), + (267,1,'civicrm/event/pcp',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:16:\"CRM_PCP_Form_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), + (268,1,'civicrm/event/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), + (269,1,'civicrm/event',NULL,'CiviEvent Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,1,1,0,1,0,800,1,1,0,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'), + (270,1,'civicrm/participant/add','action=add','Register New Participant','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:9:\"CiviEvent\";}'), + (271,1,'civicrm/event/info',NULL,'Event Information','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:24:\"CRM_Event_Page_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), + (272,1,'civicrm/event/register',NULL,'Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Controller_Registration\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,1,1,1,0,0,'a:0:{}'), + (273,1,'civicrm/event/confirm',NULL,'Confirm Event Registration','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:46:\"CRM_Event_Form_Registration_ParticipantConfirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,1,1,1,0,0,'a:0:{}'), + (274,1,'civicrm/event/ical',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_ICalendar\";i:1;s:3:\"run\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), + (275,1,'civicrm/event/list',NULL,'Current and Upcoming Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"view event info\";}i:1;s:3:\"and\";}','s:19:\"CRM_Event_Page_List\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), + (276,1,'civicrm/event/participant',NULL,'Event Participants List','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"view event participants\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Page_ParticipantListing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,0,1,0,0,'a:0:{}'), + (277,1,'civicrm/admin/event',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,370,1,0,0,'a:2:{s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (278,1,'civicrm/admin/eventTemplate',NULL,'Event Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Admin_Page_EventTemplate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,375,1,0,0,'a:2:{s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (279,1,'civicrm/admin/options/event_type',NULL,'Event Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,385,1,0,0,'a:2:{s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (280,1,'civicrm/admin/participant_status',NULL,'Participant Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Admin_Page_ParticipantStatusType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:2:{s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (281,1,'civicrm/admin/options/participant_role',NULL,'Participant Role','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,395,1,0,0,'a:2:{s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (282,1,'civicrm/admin/options/participant_listing',NULL,'Participant Listing Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,398,1,0,0,'a:2:{s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (283,1,'civicrm/admin/options/conference_slot',NULL,'Conference Slot Labels','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,415,1,0,0,'a:2:{s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:10:\"adminGroup\";s:9:\"CiviEvent\";}'), + (284,1,'civicrm/event/search',NULL,'Find Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,810,1,1,0,'a:0:{}'), + (285,1,'civicrm/event/manage',NULL,'Manage Events','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:26:\"CRM_Event_Page_ManageEvent\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,1,820,1,1,0,'a:0:{}'), + (286,1,'civicrm/event/badge',NULL,'Print Event Name Badge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:25:\"CRM_Event_Form_Task_Badge\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,1,1,0,0,'a:0:{}'), + (287,1,'civicrm/event/manage/settings',NULL,'Event Info and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,910,1,0,0,'a:0:{}'), + (288,1,'civicrm/event/manage/location',NULL,'Event Location','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:35:\"CRM_Event_Form_ManageEvent_Location\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,930,1,0,0,'a:0:{}'), + (289,1,'civicrm/event/manage/fee',NULL,'Event Fees','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_ManageEvent_Fee\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,920,1,0,0,'a:0:{}'), + (290,1,'civicrm/event/manage/registration',NULL,'Event Online Registration','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:39:\"CRM_Event_Form_ManageEvent_Registration\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,930,1,0,0,'a:0:{}'), + (291,1,'civicrm/event/manage/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:21:\"CRM_Friend_Form_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,940,1,0,0,'a:0:{}'), + (292,1,'civicrm/event/manage/reminder',NULL,'Schedule Reminders','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:44:\"CRM_Event_Form_ManageEvent_ScheduleReminders\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,950,1,0,0,'a:0:{}'), + (293,1,'civicrm/event/manage/repeat',NULL,'Repeat Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:33:\"CRM_Event_Form_ManageEvent_Repeat\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,960,1,0,0,'a:0:{}'), + (294,1,'civicrm/event/manage/conference',NULL,'Conference Slots','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:37:\"CRM_Event_Form_ManageEvent_Conference\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Manage Events\";s:3:\"url\";s:29:\"/civicrm/event/manage?reset=1\";}}',NULL,NULL,1,1,0,1,1,950,1,0,0,'a:0:{}'), + (295,1,'civicrm/event/add','action=add','New Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:36:\"CRM_Event_Form_ManageEvent_EventInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,830,1,0,0,'a:0:{}'), + (296,1,'civicrm/event/import',NULL,'Import Participants','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:16:\"access CiviEvent\";i:1;s:23:\"edit event participants\";}i:1;s:3:\"and\";}','s:27:\"CRM_Event_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,840,1,1,0,'a:0:{}'), + (297,1,'civicrm/event/price',NULL,'Manage Price Sets','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:18:\"CRM_Price_Page_Set\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,0,1,0,850,1,1,0,'a:0:{}'), + (298,1,'civicrm/event/selfsvcupdate',NULL,'Self-service Registration Update','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Form_SelfSvcUpdate\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,880,1,1,0,'a:0:{}'), + (299,1,'civicrm/event/selfsvctransfer',NULL,'Self-service Registration Transfer','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:30:\"CRM_Event_Form_SelfSvcTransfer\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,890,1,1,0,'a:0:{}'), + (300,1,'civicrm/contact/view/participant',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:18:\"CRM_Event_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,4,1,0,0,'a:0:{}'), + (301,1,'civicrm/ajax/eventFee',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:19:\"CRM_Event_Page_AJAX\";i:1;s:8:\"eventFee\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (302,1,'civicrm/ajax/locBlock',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:11:\"getLocBlock\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (303,1,'civicrm/event/participant/feeselection',NULL,'Change Registration Selections','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:38:\"CRM_Event_Form_ParticipantFeeSelection\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}i:2;a:2:{s:5:\"title\";s:23:\"Event Participants List\";s:3:\"url\";s:34:\"/civicrm/event/participant?reset=1\";}}',NULL,NULL,1,1,0,1,0,1,1,0,0,'a:0:{}'), + (304,1,'civicrm/admin/contribute/pcp',NULL,'Personal Campaign Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_PCP_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,450,1,0,0,'a:0:{}'), + (305,1,'civicrm/contribute/campaign',NULL,'Setup a Personal Campaign Page - Account Information','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:22:\"CRM_PCP_Controller_PCP\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,1,1,0,0,1,0,0,'a:0:{}'), + (306,1,'civicrm/contribute',NULL,'CiviContribute Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contribute_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,1,0,1,0,500,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (307,1,'civicrm/contribute/add','action=add','New Contribution','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (308,1,'civicrm/contribute/chart',NULL,'Contribution Summary - Chart View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_ContributionCharts\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (309,1,'civicrm/contribute/transact',NULL,'CiviContribute','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Controller_Contribution\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,1,1,1,0,1,0,0,'a:0:{}'), + (310,1,'civicrm/admin/contribute',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,360,1,0,0,'a:2:{s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (311,1,'civicrm/admin/contribute/settings',NULL,'Title and Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_Settings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:0:{}'), + (312,1,'civicrm/admin/contribute/amount',NULL,'Contribution Amounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Amount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,410,1,0,0,'a:0:{}'), + (313,1,'civicrm/admin/contribute/membership',NULL,'Membership Section','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:31:\"CRM_Member_Form_MembershipBlock\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:0:{}'), + (314,1,'civicrm/admin/contribute/custom',NULL,'Include Profiles','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Custom\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,430,1,0,0,'a:0:{}'), + (315,1,'civicrm/admin/contribute/thankyou',NULL,'Thank-you and Receipting','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Form_ContributionPage_ThankYou\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,430,1,0,0,'a:0:{}'), + (316,1,'civicrm/admin/contribute/friend',NULL,'Tell a Friend','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Friend_Form_Contribute\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,440,1,0,0,'a:0:{}'), + (317,1,'civicrm/admin/contribute/widget',NULL,'Configure Widget','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_ContributionPage_Widget\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,460,1,0,0,'a:0:{}'), + (318,1,'civicrm/admin/contribute/premium',NULL,'Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:44:\"CRM_Contribute_Form_ContributionPage_Premium\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,470,1,0,0,'a:0:{}'), + (319,1,'civicrm/admin/contribute/addProductToPage',NULL,'Add Products to This Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:47:\"CRM_Contribute_Form_ContributionPage_AddProduct\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,480,1,0,0,'a:0:{}'), + (320,1,'civicrm/admin/contribute/add','action=add','New Contribution Page','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Contribute_Controller_ContributionPage\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (321,1,'civicrm/admin/contribute/managePremiums',NULL,'Manage Premiums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Page_ManagePremiums\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,365,1,0,0,'a:2:{s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (322,1,'civicrm/admin/financial/financialType',NULL,'Financial Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Page_FinancialType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,580,1,0,0,'a:2:{s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (323,1,'civicrm/admin/financial/financialType/edit',NULL,'Edit Financial Type','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Financial_Form_FinancialType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (324,1,'civicrm/payment','action=add','New Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Form_AdditionalPayment\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (325,1,'civicrm/admin/financial/financialAccount',NULL,'Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_FinancialAccount\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,370,1,0,0,'a:2:{s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (326,1,'civicrm/admin/financial/financialAccount/edit',NULL,'Edit Financial Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Form_FinancialAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:18:\"Financial Accounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (327,1,'civicrm/admin/options/payment_instrument',NULL,'Payment Methods','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:2:{s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (328,1,'civicrm/admin/options/accept_creditcard',NULL,'Accepted Credit Cards','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,395,1,0,0,'a:2:{s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (329,1,'civicrm/admin/options/soft_credit_type',NULL,'Soft Credit Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (330,1,'civicrm/contact/view/contribution',NULL,'Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:23:\"CRM_Contribute_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (331,1,'civicrm/contact/view/contributionrecur',NULL,'Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:37:\"CRM_Contribute_Page_ContributionRecur\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (332,1,'civicrm/contact/view/contribution/additionalinfo',NULL,'Additional Info','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:13:\"Contributions\";s:3:\"url\";s:42:\"/civicrm/contact/view/contribution?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (333,1,'civicrm/contribute/search',NULL,'Find Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,510,1,1,0,'a:0:{}'), + (334,1,'civicrm/contribute/searchBatch',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:37:\"CRM_Contribute_Controller_SearchBatch\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,588,1,1,0,'a:0:{}'), + (335,1,'civicrm/contribute/manage',NULL,'Manage Contribution Pages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:18:\"administer CiviCRM\";i:1;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:36:\"CRM_Contribute_Page_ContributionPage\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,530,1,1,0,'a:0:{}'), + (336,1,'civicrm/contribute/additionalinfo',NULL,'AdditionalInfo Form','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:34:\"CRM_Contribute_Form_AdditionalInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,0,1,0,0,'a:0:{}'), + (337,1,'civicrm/ajax/permlocation',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','a:2:{i:0;s:27:\"CRM_Core_Page_AJAX_Location\";i:1;s:23:\"getPermissionedLocation\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (338,1,'civicrm/contribute/unsubscribe',NULL,'Cancel Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_CancelSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (339,1,'civicrm/contribute/onbehalf',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:43:\"CRM_Contribute_Form_Contribution_OnBehalfOf\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (340,1,'civicrm/contribute/updatebilling',NULL,'Update Billing Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:33:\"CRM_Contribute_Form_UpdateBilling\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (341,1,'civicrm/contribute/updaterecur',NULL,'Update Subscription','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Form_UpdateSubscription\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (342,1,'civicrm/contribute/subscriptionstatus',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:25:\"make online contributions\";}i:1;s:3:\"and\";}','s:38:\"CRM_Contribute_Page_SubscriptionStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (343,1,'civicrm/admin/financial/financialType/accounts',NULL,'Financial Type Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:39:\"CRM_Financial_Page_FinancialTypeAccount\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:15:\"Financial Types\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,581,1,0,0,'a:0:{}'), + (344,1,'civicrm/financial/batch',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:33:\"CRM_Financial_Page_FinancialBatch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,585,1,0,0,'a:0:{}'), + (345,1,'civicrm/financial/financialbatches',NULL,'Accounting Batches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Financial_Page_Batch\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,586,1,0,0,'a:0:{}'), + (346,1,'civicrm/batchtransaction',NULL,'Accounting Batch','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:35:\"CRM_Financial_Page_BatchTransaction\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,600,1,0,0,'a:0:{}'), + (347,1,'civicrm/financial/batch/export',NULL,'Accounting Batch Export','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"create manual batch\";}i:1;s:3:\"and\";}','s:25:\"CRM_Financial_Form_Export\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:16:\"Accounting Batch\";s:3:\"url\";s:32:\"/civicrm/financial/batch?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,610,1,0,0,'a:0:{}'), + (348,1,'civicrm/payment/view','action=view','View Payment','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:31:\"CRM_Contribute_Page_PaymentInfo\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:11:\"New Payment\";s:3:\"url\";s:39:\"/civicrm/payment?reset=1&action=add\";}}',NULL,NULL,2,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (349,1,'civicrm/admin/setting/preferences/contribute',NULL,'CiviContribute Component Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:21:\"access CiviContribute\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:37:\"CRM_Admin_Form_Preferences_Contribute\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:10:\"adminGroup\";s:14:\"CiviContribute\";}'), + (350,1,'civicrm/contribute/invoice',NULL,'PDF Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Contribute_Form_Task_Invoice\";i:1;s:11:\"getPrintPDF\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,620,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (351,1,'civicrm/contribute/invoice/email',NULL,'Email Invoice','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:20:\"checkDownloadInvoice\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:32:\"CRM_Contribute_Form_Task_Invoice\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}i:2;a:2:{s:5:\"title\";s:11:\"PDF Invoice\";s:3:\"url\";s:35:\"/civicrm/contribute/invoice?reset=1\";}}',NULL,NULL,2,1,0,1,0,630,1,1,0,'a:1:{s:9:\"component\";s:14:\"CiviContribute\";}'), + (352,1,'civicrm/ajax/softcontributionlist',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:24:\"CRM_Contribute_Page_AJAX\";i:1;s:23:\"getSoftContributionRows\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (353,1,'civicrm/contribute/contributionrecur-payments',NULL,'Recurring Contribution\'s Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:45:\"CRM_Contribute_Page_ContributionRecurPayments\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (354,1,'civicrm/membership/recurring-contributions',NULL,'Membership Recurring Contributions','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:38:\"CRM_Member_Page_RecurringContributions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (355,1,'civicrm/contribute/widget',NULL,'CiviContribute','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:26:\"CRM_Contribute_Page_Widget\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,1,1,0,0,1,0,0,'a:0:{}'), + (356,1,'civicrm/contribute/task',NULL,'Contribution Task','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"access CiviContribute\";}i:1;s:3:\"and\";}','s:30:\"CRM_Contribute_Controller_Task\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:24:\"CiviContribute Dashboard\";s:3:\"url\";s:27:\"/civicrm/contribute?reset=1\";}}',NULL,NULL,2,1,0,1,0,1,1,0,0,'a:0:{}'), + (357,1,'civicrm/member',NULL,'CiviMember Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:25:\"CRM_Member_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,3,1,0,1,0,700,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'), + (358,1,'civicrm/member/add','action=add','New Membership','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:10:\"CiviMember\";}'), + (359,1,'civicrm/admin/member/membershipType',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Page_MembershipType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,370,1,0,0,'a:2:{s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'), + (360,1,'civicrm/admin/member/membershipStatus',NULL,'Membership Status Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:32:\"CRM_Member_Page_MembershipStatus\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:2:{s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:10:\"adminGroup\";s:10:\"CiviMember\";}'), + (361,1,'civicrm/contact/view/membership','force=1,cid=%%cid%%','Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:19:\"CRM_Member_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,2,1,0,0,'a:0:{}'), + (362,1,'civicrm/membership/view',NULL,'Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipView\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,390,1,0,0,'a:0:{}'), + (363,1,'civicrm/member/search',NULL,'Find Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,1,0,1,0,710,1,1,0,'a:0:{}'), + (364,1,'civicrm/member/import',NULL,'Import Memberships','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:16:\"edit memberships\";}i:1;s:3:\"and\";}','s:28:\"CRM_Member_Import_Controller\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviMember Dashboard\";s:3:\"url\";s:23:\"/civicrm/member?reset=1\";}}',NULL,NULL,3,1,0,1,0,720,1,1,0,'a:0:{}'), + (365,1,'civicrm/ajax/memType',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviMember\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Member_Page_AJAX\";i:1;s:21:\"getMemberTypeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (366,1,'civicrm/admin/member/membershipType/add',NULL,'Membership Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviMember\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:30:\"CRM_Member_Form_MembershipType\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:16:\"Membership Types\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (367,1,'civicrm/mailing',NULL,'CiviMail','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,4,1,0,1,0,600,1,1,0,'a:1:{s:9:\"component\";s:8:\"CiviMail\";}'), + (368,1,'civicrm/admin/mail',NULL,'Mailer Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Mail\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), + (369,1,'civicrm/admin/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,410,1,0,0,'a:2:{s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), + (370,1,'civicrm/admin/options/from_email_address/civimail',NULL,'From Email Addresses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:4:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}i:3;a:2:{s:5:\"title\";s:20:\"From Email Addresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,415,1,0,0,'a:2:{s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), + (371,1,'civicrm/admin/mailSettings',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Page_MailSettings\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:2:{s:4:\"desc\";s:20:\"List email accounts.\";s:10:\"adminGroup\";s:8:\"CiviMail\";}'), + (372,1,'civicrm/admin/mailSettings/edit',NULL,'Mail Accounts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_MailSettings\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Mail Accounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,420,1,0,0,'a:0:{}'), + (373,1,'civicrm/mailing/send',NULL,'New Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:27:\"CRM_Mailing_Controller_Send\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,610,1,1,0,'a:0:{}'), + (374,1,'civicrm/mailing/browse/scheduled','scheduled=true','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:5:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";i:2;s:15:\"create mailings\";i:3;s:17:\"schedule mailings\";i:4;s:8:\"send SMS\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,620,1,1,0,'a:0:{}'), + (375,1,'civicrm/mailing/browse/unscheduled','scheduled=false','Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";i:2;s:17:\"schedule mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,620,1,1,0,'a:0:{}'), + (376,1,'civicrm/mailing/browse/archived',NULL,'Find Mailings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Browse\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,625,1,1,0,'a:0:{}'), + (377,1,'civicrm/mailing/component',NULL,'Headers, Footers, and Automated Messages','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Page_Component\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,630,1,1,0,'a:0:{}'), + (378,1,'civicrm/mailing/unsubscribe',NULL,'Unsubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Form_Unsubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,640,1,0,0,'a:0:{}'), + (379,1,'civicrm/mailing/resubscribe',NULL,'Resubscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:28:\"CRM_Mailing_Page_Resubscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,645,1,0,0,'a:0:{}'), + (380,1,'civicrm/mailing/optout',NULL,'Opt-out','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:23:\"CRM_Mailing_Form_Optout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,650,1,0,0,'a:0:{}'), + (381,1,'civicrm/mailing/confirm',NULL,'Confirm','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:24:\"CRM_Mailing_Page_Confirm\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,660,1,0,0,'a:0:{}'), + (382,1,'civicrm/mailing/subscribe',NULL,'Subscribe','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:26:\"CRM_Mailing_Form_Subscribe\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,660,1,0,0,'a:0:{}'), + (383,1,'civicrm/mailing/report','mid=%%mid%%','Mailing Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:15:\"create mailings\";}i:1;s:2:\"or\";}','s:23:\"CRM_Mailing_Page_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,680,1,0,0,'a:0:{}'), + (384,1,'civicrm/mailing/forward',NULL,'Forward Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:43:\"access CiviMail subscribe/unsubscribe pages\";}i:1;s:3:\"and\";}','s:31:\"CRM_Mailing_Form_ForwardMailing\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,685,1,0,0,'a:0:{}'), + (385,1,'civicrm/mailing/report/event',NULL,'Mailing Event','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','s:22:\"CRM_Mailing_Page_Event\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}i:2;a:2:{s:5:\"title\";s:14:\"Mailing Report\";s:3:\"url\";s:47:\"/civicrm/mailing/report?reset=1&mid=%%mid%%\";}}',NULL,NULL,4,1,0,1,0,695,1,0,0,'a:0:{}'), + (386,1,'civicrm/ajax/template',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:8:\"template\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (387,1,'civicrm/mailing/view',NULL,'View Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:28:\"view public CiviMail content\";i:1;s:15:\"access CiviMail\";i:2;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:21:\"CRM_Mailing_Page_View\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,800,1,0,0,'a:0:{}'), + (388,1,'civicrm/mailing/approve',NULL,'Approve Mailing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:15:\"access CiviMail\";i:1;s:16:\"approve mailings\";}i:1;s:2:\"or\";}','s:24:\"CRM_Mailing_Form_Approve\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,0,1,0,850,1,0,0,'a:0:{}'), + (389,1,'civicrm/contact/view/mailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:20:\"CRM_Mailing_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (390,1,'civicrm/ajax/contactmailing',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:18:\"getContactMailings\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (391,1,'civicrm/ajax/setupMailAccount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"access CiviMail\";}i:1;s:3:\"and\";}','a:2:{i:0;s:21:\"CRM_Mailing_Page_AJAX\";i:1;s:5:\"setup\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (392,1,'civicrm/mailing/url',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:20:\"CRM_Mailing_Page_Url\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,1,1,0,0,'a:0:{}'), + (393,1,'civicrm/mailing/open',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"*always allow*\";}i:1;s:3:\"and\";}','s:21:\"CRM_Mailing_Page_Open\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:8:\"CiviMail\";s:3:\"url\";s:24:\"/civicrm/mailing?reset=1\";}}',NULL,NULL,4,1,1,1,0,1,1,0,0,'a:0:{}'), + (394,1,'civicrm/pledge',NULL,'CiviPledge Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:25:\"CRM_Pledge_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,6,1,0,1,0,550,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'), + (395,1,'civicrm/pledge/search',NULL,'Find Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:28:\"CRM_Pledge_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,1,0,1,0,560,1,1,0,'a:0:{}'), + (396,1,'civicrm/contact/view/pledge','force=1,cid=%%cid%%','Pledges','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,570,1,0,0,'a:0:{}'), + (397,1,'civicrm/pledge/add','action=add','New Pledge','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:19:\"CRM_Pledge_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviPledge\";}'), + (398,1,'civicrm/pledge/payment',NULL,'Pledge Payments','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviPledge\";}i:1;s:3:\"and\";}','s:23:\"CRM_Pledge_Page_Payment\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:20:\"CiviPledge Dashboard\";s:3:\"url\";s:23:\"/civicrm/pledge?reset=1\";}}',NULL,NULL,6,1,0,1,0,580,1,0,0,'a:0:{}'), + (399,1,'civicrm/ajax/pledgeAmount',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:17:\"access CiviPledge\";i:1;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:20:\"CRM_Pledge_Page_AJAX\";i:1;s:17:\"getPledgeDefaults\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (400,1,'civicrm/case',NULL,'CiviCase Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:23:\"CRM_Case_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,7,1,0,1,0,900,1,1,0,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'), + (401,1,'civicrm/case/add',NULL,'Open Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:18:\"CRM_Case_Form_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,1,0,'a:1:{s:9:\"component\";s:8:\"CiviCase\";}'), + (402,1,'civicrm/case/search',NULL,'Find Cases','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Controller_Search\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,910,1,1,0,'a:0:{}'), + (403,1,'civicrm/case/activity',NULL,'Case Activity','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Case_Form_Activity\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (404,1,'civicrm/case/report',NULL,'Case Activity Audit','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','s:20:\"CRM_Case_Form_Report\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (405,1,'civicrm/case/cd/edit',NULL,'Case Custom Set','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_CustomData\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (406,1,'civicrm/contact/view/case',NULL,'Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:17:\"CRM_Case_Page_Tab\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (407,1,'civicrm/case/activity/view',NULL,'Activity View','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Case_Form_ActivityView\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Case Activity\";s:3:\"url\";s:30:\"/civicrm/case/activity?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (408,1,'civicrm/contact/view/case/editClient',NULL,'Assign to Another Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:24:\"CRM_Case_Form_EditClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (409,1,'civicrm/case/addToCase',NULL,'File on Case','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Case_Form_ActivityToCase\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (410,1,'civicrm/case/details',NULL,'Case Details','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:25:\"CRM_Case_Page_CaseDetails\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (411,1,'civicrm/admin/setting/case',NULL,'CiviCase Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:27:\"CRM_Admin_Form_Setting_Case\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,380,1,0,0,'a:1:{s:10:\"adminGroup\";s:8:\"CiviCase\";}'), + (412,1,'civicrm/admin/options/case_type',NULL,'Case Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Core_Page_Redirect\";','s:24:\"url=civicrm/a/#/caseType\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,390,1,0,0,'a:2:{s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), + (413,1,'civicrm/admin/options/redaction_rule',NULL,'Redaction Rules','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), + (414,1,'civicrm/admin/options/case_status',NULL,'Case Statuses','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), + (415,1,'civicrm/admin/options/encounter_medium',NULL,'Encounter Mediums','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:19:\"administer CiviCase\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,400,1,0,0,'a:2:{s:4:\"desc\";s:26:\"List of encounter mediums.\";s:10:\"adminGroup\";s:8:\"CiviCase\";}'), + (416,1,'civicrm/case/report/print',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:31:\"access all cases and activities\";}i:1;s:3:\"and\";}','a:2:{i:0;s:28:\"CRM_Case_XMLProcessor_Report\";i:1;s:15:\"printCaseReport\";}',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}i:2;a:2:{s:5:\"title\";s:19:\"Case Activity Audit\";s:3:\"url\";s:28:\"/civicrm/case/report?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (417,1,'civicrm/case/ajax/addclient',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:9:\"addClient\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (418,1,'civicrm/case/ajax/processtags',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"processCaseTags\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,3,0,'a:0:{}'), + (419,1,'civicrm/case/ajax/details',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:11:\"CaseDetails\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (420,1,'civicrm/ajax/delcaserole',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:15:\"deleteCaseRoles\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (421,1,'civicrm/ajax/get-cases',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:18:\"CRM_Case_Page_AJAX\";i:1;s:8:\"getCases\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (422,1,'civicrm/case/email/add','action=add,task=email','Email','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:24:\"CRM_Case_Form_Task_Email\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"CiviCase Dashboard\";s:3:\"url\";s:21:\"/civicrm/case?reset=1\";}}',NULL,NULL,7,1,0,1,0,1,1,0,0,'a:0:{}'), + (423,1,'civicrm/contact/view/case/deleteClient',NULL,'Remove Client','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:14:\"access CiviCRM\";i:1;s:15:\"edit my contact\";i:2;s:15:\"view my contact\";}i:1;s:2:\"or\";}','s:26:\"CRM_Case_Form_DeleteClient\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:15:\"Contact Summary\";s:3:\"url\";s:45:\"/civicrm/contact/view?reset=1&cid=%%cid%%\";}i:2;a:2:{s:5:\"title\";s:4:\"Case\";s:3:\"url\";s:34:\"/civicrm/contact/view/case?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (424,1,'civicrm/report',NULL,'CiviReport','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:22:\"CRM_Report_Page_Report\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,8,1,0,1,0,1200,1,1,0,'a:1:{s:9:\"component\";s:10:\"CiviReport\";}'), + (425,1,'civicrm/report/list',NULL,'CiviCRM Reports','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1,1,0,0,'a:0:{}'), + (426,1,'civicrm/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1220,1,1,0,'a:0:{}'), + (427,1,'civicrm/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1241,1,1,0,'a:0:{}'), + (428,1,'civicrm/admin/report/register',NULL,'Register Report','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer Reports\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Form_Register\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:1:{s:4:\"desc\";s:30:\"Register the Report templates.\";}'), + (429,1,'civicrm/report/instance',NULL,'Report','s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:24:\"CRM_Report_Page_Instance\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"CiviReport\";s:3:\"url\";s:23:\"/civicrm/report?reset=1\";}}',NULL,NULL,8,1,0,1,0,1,1,0,0,'a:0:{}'), + (430,1,'civicrm/admin/report/template/list',NULL,'Create New Report from Template','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_TemplateList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:10:\"adminGroup\";s:10:\"CiviReport\";}'), + (431,1,'civicrm/admin/report/options/report_template',NULL,'Manage Templates','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:17:\"access CiviReport\";}i:1;s:3:\"and\";}','s:23:\"CRM_Report_Page_Options\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:10:\"adminGroup\";s:10:\"CiviReport\";}'), + (432,1,'civicrm/admin/report/list',NULL,'Reports Listing','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:28:\"CRM_Report_Page_InstanceList\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:10:\"adminGroup\";s:10:\"CiviReport\";}'), + (433,1,'civicrm/campaign',NULL,'Campaign Dashboard','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:27:\"CRM_Campaign_Page_DashBoard\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), + (434,1,'civicrm/campaign/add',NULL,'New Campaign','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Campaign\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), + (435,1,'civicrm/survey/add',NULL,'New Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), + (436,1,'civicrm/campaign/vote',NULL,'Conduct Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"reserve campaign contacts\";i:3;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Page_Vote\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), + (437,1,'civicrm/admin/campaign/surveyType',NULL,'Survey Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:23:\"administer CiviCampaign\";}i:1;s:3:\"and\";}','s:28:\"CRM_Campaign_Page_SurveyType\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), + (438,1,'civicrm/admin/options/campaign_type',NULL,'Campaign Types','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,2,1,0,0,'a:3:{s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), + (439,1,'civicrm/admin/options/campaign_status',NULL,'Campaign Status','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,3,1,0,0,'a:3:{s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), + (440,1,'civicrm/admin/options/engagement_index',NULL,'Engagement Index','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:25:\"administer CiviCRM system\";i:1;s:23:\"administer CiviCRM data\";i:2;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Page_Options\";',NULL,'a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Option Groups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,4,1,0,0,'a:3:{s:4:\"desc\";s:18:\"Engagement levels.\";s:10:\"adminGroup\";s:12:\"CiviCampaign\";s:9:\"component\";s:12:\"CiviCampaign\";}'), + (441,1,'civicrm/survey/search','op=interview','Record Respondents Interview','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','s:30:\"CRM_Campaign_Controller_Search\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), + (442,1,'civicrm/campaign/gotv',NULL,'GOTV (Track Voters)','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:4:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:25:\"release campaign contacts\";i:3;s:22:\"gotv campaign contacts\";}i:1;s:2:\"or\";}','s:22:\"CRM_Campaign_Form_Gotv\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:1:{s:9:\"component\";s:12:\"CiviCampaign\";}'), + (443,1,'civicrm/petition/add',NULL,'New Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:26:\"CRM_Campaign_Form_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (444,1,'civicrm/petition/sign',NULL,'Sign Petition','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:36:\"CRM_Campaign_Form_Petition_Signature\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (445,1,'civicrm/petition/browse',NULL,'View Petition Signatures','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:26:\"CRM_Campaign_Page_Petition\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (446,1,'civicrm/petition/confirm',NULL,'Email address verified','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:34:\"CRM_Campaign_Page_Petition_Confirm\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (447,1,'civicrm/petition/thankyou',NULL,'Thank You','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:21:\"sign CiviCRM Petition\";}i:1;s:3:\"and\";}','s:35:\"CRM_Campaign_Page_Petition_ThankYou\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (448,1,'civicrm/campaign/registerInterview',NULL,NULL,'a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:3:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";i:2;s:27:\"interview campaign contacts\";}i:1;s:2:\"or\";}','a:2:{i:0;s:22:\"CRM_Campaign_Page_AJAX\";i:1;s:17:\"registerInterview\";}',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:18:\"Campaign Dashboard\";s:3:\"url\";s:25:\"/civicrm/campaign?reset=1\";}}',NULL,NULL,9,1,0,1,0,1,1,0,0,'a:0:{}'), + (449,1,'civicrm/survey/configure/main',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:29:\"CRM_Campaign_Form_Survey_Main\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (450,1,'civicrm/survey/configure/questions',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:34:\"CRM_Campaign_Form_Survey_Questions\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (451,1,'civicrm/survey/configure/results',NULL,'Configure Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:32:\"CRM_Campaign_Form_Survey_Results\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (452,1,'civicrm/survey/delete',NULL,'Delete Survey','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:2:{i:0;s:23:\"administer CiviCampaign\";i:1;s:15:\"manage campaign\";}i:1;s:2:\"or\";}','s:31:\"CRM_Campaign_Form_Survey_Delete\";',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,1,1,0,0,'a:0:{}'), + (453,1,'civicrm/admin/ckeditor',NULL,'Configure CKEditor 4','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:33:\"CRM_Ckeditor4_Form_CKEditorConfig\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:0:{}'), + (454,1,'civicrm/ajax/event/add_participant_to_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:23:\"add_participant_to_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (455,1,'civicrm/ajax/event/remove_participant_from_cart',NULL,NULL,'s:1:\"1\";','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','a:2:{i:0;s:32:\"CRM_Event_Cart_Page_CheckoutAJAX\";i:1;s:28:\"remove_participant_from_cart\";}',NULL,'a:1:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}}',NULL,NULL,NULL,1,1,1,0,1,1,0,0,'a:0:{}'), + (456,1,'civicrm/event/add_to_cart',NULL,'Add Event To Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:29:\"CRM_Event_Cart_Page_AddToCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), + (457,1,'civicrm/event/cart_checkout',NULL,'Cart Checkout','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Controller_Checkout\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,1,1,1,0,0,'a:0:{}'), + (458,1,'civicrm/event/remove_from_cart',NULL,'Remove From Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:34:\"CRM_Event_Cart_Page_RemoveFromCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), + (459,1,'civicrm/event/view_cart',NULL,'View Cart','s:1:\"1\";','a:2:{i:0;a:2:{i:0;s:14:\"access CiviCRM\";i:1;s:16:\"access CiviEvent\";}i:1;s:3:\"and\";}','s:28:\"CRM_Event_Cart_Page_ViewCart\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:19:\"CiviEvent Dashboard\";s:3:\"url\";s:22:\"/civicrm/event?reset=1\";}}',NULL,NULL,1,1,1,1,0,1,1,0,0,'a:0:{}'), + (460,1,'civicrm/contact/search/custom',NULL,'Find Contacts','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:42:\"CRM_Legacycustomsearches_Controller_Search\";','s:10:\"mode=16384\";','a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,10,1,1,0,'a:0:{}'), + (461,1,'civicrm/contact/search/custom/list',NULL,'Custom Searches','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:14:\"access CiviCRM\";}i:1;s:3:\"and\";}','s:29:\"CRM_Contact_Page_CustomSearch\";','s:10:\"mode=16384\";','a:3:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:31:\"/civicrm/contact/search?reset=1\";}i:2;a:2:{s:5:\"title\";s:13:\"Find Contacts\";s:3:\"url\";s:38:\"/civicrm/contact/search/custom?reset=1\";}}',NULL,NULL,NULL,1,0,1,0,16,1,1,0,'a:0:{}'), + (462,1,'civicrm/admin/setting/recaptcha',NULL,'reCAPTCHA Settings','a:2:{i:0;s:19:\"CRM_Core_Permission\";i:1;s:9:\"checkMenu\";}','a:2:{i:0;a:1:{i:0;s:18:\"administer CiviCRM\";}i:1;s:3:\"and\";}','s:22:\"CRM_Admin_Form_Generic\";',NULL,'a:2:{i:0;a:2:{s:5:\"title\";s:7:\"CiviCRM\";s:3:\"url\";s:16:\"/civicrm?reset=1\";}i:1;a:2:{s:5:\"title\";s:10:\"Administer\";s:3:\"url\";s:22:\"/civicrm/admin?reset=1\";}}',NULL,NULL,NULL,1,0,1,1,1,1,0,0,'a:2:{s:4:\"desc\";s:43:\"Configure anti-abuse/bot-prevention service\";s:10:\"adminGroup\";s:15:\"System Settings\";}'), + (463,1,'admin',NULL,NULL,NULL,NULL,NULL,NULL,'a:15:{s:14:\"CiviContribute\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:32:\"{weight}.Personal Campaign Pages\";a:6:{s:5:\"title\";s:23:\"Personal Campaign Pages\";s:4:\"desc\";s:49:\"View and manage existing personal campaign pages.\";s:2:\"id\";s:21:\"PersonalCampaignPages\";s:3:\"url\";s:49:\"/civicrm/admin/pcp?context=contribute&reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Manage Contribution Pages\";a:6:{s:5:\"title\";s:25:\"Manage Contribution Pages\";s:4:\"desc\";s:242:\"CiviContribute allows you to create and maintain any number of Online Contribution Pages. You can create different pages for different programs or campaigns - and customize text, amounts, types of information collected from contributors, etc.\";s:2:\"id\";s:23:\"ManageContributionPages\";s:3:\"url\";s:33:\"/civicrm/admin/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Manage Premiums\";a:6:{s:5:\"title\";s:15:\"Manage Premiums\";s:4:\"desc\";s:175:\"CiviContribute allows you to configure any number of Premiums which can be offered to contributors as incentives / thank-you gifts. Define the premiums you want to offer here.\";s:2:\"id\";s:14:\"ManagePremiums\";s:3:\"url\";s:48:\"/civicrm/admin/contribute/managePremiums?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Financial Types\";a:6:{s:5:\"title\";s:15:\"Financial Types\";s:4:\"desc\";s:64:\"Formerly civicrm_contribution_type merged into this table in 4.1\";s:2:\"id\";s:14:\"FinancialTypes\";s:3:\"url\";s:46:\"/civicrm/admin/financial/financialType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Financial Accounts\";a:6:{s:5:\"title\";s:18:\"Financial Accounts\";s:4:\"desc\";s:128:\"Financial types are used to categorize contributions for reporting and accounting purposes. These are also referred to as Funds.\";s:2:\"id\";s:17:\"FinancialAccounts\";s:3:\"url\";s:49:\"/civicrm/admin/financial/financialAccount?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Payment Methods\";a:6:{s:5:\"title\";s:15:\"Payment Methods\";s:4:\"desc\";s:224:\"You may choose to record the payment instrument used for each contribution. Common payment methods are installed by default (e.g. Check, Cash, Credit Card...). If your site requires additional payment methods, add them here.\";s:2:\"id\";s:14:\"PaymentMethods\";s:3:\"url\";s:49:\"/civicrm/admin/options/payment_instrument?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Accepted Credit Cards\";a:6:{s:5:\"title\";s:21:\"Accepted Credit Cards\";s:4:\"desc\";s:94:\"Credit card options that will be offered to contributors using your Online Contribution pages.\";s:2:\"id\";s:19:\"AcceptedCreditCards\";s:3:\"url\";s:48:\"/civicrm/admin/options/accept_creditcard?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Soft Credit Types\";a:6:{s:5:\"title\";s:17:\"Soft Credit Types\";s:4:\"desc\";s:86:\"Soft Credit Types that will be offered to contributors during soft credit contribution\";s:2:\"id\";s:15:\"SoftCreditTypes\";s:3:\"url\";s:47:\"/civicrm/admin/options/soft_credit_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.CiviContribute Component Settings\";a:6:{s:5:\"title\";s:33:\"CiviContribute Component Settings\";s:4:\"desc\";s:42:\"Configure global CiviContribute behaviors.\";s:2:\"id\";s:31:\"CiviContributeComponentSettings\";s:3:\"url\";s:53:\"/civicrm/admin/setting/preferences/contribute?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:26:\"Customize Data and Screens\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:19:{s:20:\"{weight}.Custom Data\";a:6:{s:5:\"title\";s:11:\"Custom Data\";s:4:\"desc\";s:109:\"Configure custom fields to collect and store custom data which is not included in the standard CiviCRM forms.\";s:2:\"id\";s:10:\"CustomData\";s:3:\"url\";s:35:\"/civicrm/admin/custom/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:17:\"{weight}.Profiles\";a:6:{s:5:\"title\";s:8:\"Profiles\";s:4:\"desc\";s:151:\"Profiles allow you to aggregate groups of fields and include them in your site as input forms, contact display pages, and search and listings features.\";s:2:\"id\";s:8:\"Profiles\";s:3:\"url\";s:31:\"/civicrm/admin/uf/group?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Activity Types\";a:6:{s:5:\"title\";s:14:\"Activity Types\";s:4:\"desc\";s:155:\"CiviCRM has several built-in activity types (meetings, phone calls, emails sent). Track other types of interactions by creating custom activity types here.\";s:2:\"id\";s:13:\"ActivityTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/activity_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Relationship Types\";a:6:{s:5:\"title\";s:18:\"Relationship Types\";s:4:\"desc\";s:148:\"Contacts can be linked to each other through Relationships (e.g. Spouse, Employer, etc.). Define the types of relationships you want to record here.\";s:2:\"id\";s:17:\"RelationshipTypes\";s:3:\"url\";s:30:\"/civicrm/admin/reltype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Contact Types\";a:6:{s:5:\"title\";s:13:\"Contact Types\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ContactTypes\";s:3:\"url\";s:38:\"/civicrm/admin/options/subtype?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Gender Options\";a:6:{s:5:\"title\";s:14:\"Gender Options\";s:4:\"desc\";s:79:\"Options for assigning gender to individual contacts (e.g. Male, Female, Other).\";s:2:\"id\";s:13:\"GenderOptions\";s:3:\"url\";s:37:\"/civicrm/admin/options/gender?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Prefixes (Ms, Mr...)\";a:6:{s:5:\"title\";s:31:\"Individual Prefixes (Ms, Mr...)\";s:4:\"desc\";s:66:\"Options for individual contact prefixes (e.g. Ms., Mr., Dr. etc.).\";s:2:\"id\";s:27:\"IndividualPrefixes_Ms_Mr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_prefix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Individual Suffixes (Jr, Sr...)\";a:6:{s:5:\"title\";s:31:\"Individual Suffixes (Jr, Sr...)\";s:4:\"desc\";s:61:\"Options for individual contact suffixes (e.g. Jr., Sr. etc.).\";s:2:\"id\";s:27:\"IndividualSuffixes_Jr_Sr...\";s:3:\"url\";s:48:\"/civicrm/admin/options/individual_suffix?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:39:\"{weight}.Location Types (Home, Work...)\";a:6:{s:5:\"title\";s:30:\"Location Types (Home, Work...)\";s:4:\"desc\";s:94:\"Options for categorizing contact addresses and phone numbers (e.g. Home, Work, Billing, etc.).\";s:2:\"id\";s:26:\"LocationTypes_Home_Work...\";s:3:\"url\";s:35:\"/civicrm/admin/locationType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Website Types\";a:6:{s:5:\"title\";s:13:\"Website Types\";s:4:\"desc\";s:48:\"Options for assigning website types to contacts.\";s:2:\"id\";s:12:\"WebsiteTypes\";s:3:\"url\";s:43:\"/civicrm/admin/options/website_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:35:\"{weight}.Instant Messenger Services\";a:6:{s:5:\"title\";s:26:\"Instant Messenger Services\";s:4:\"desc\";s:79:\"List of IM services which can be used when recording screen-names for contacts.\";s:2:\"id\";s:24:\"InstantMessengerServices\";s:3:\"url\";s:56:\"/civicrm/admin/options/instant_messenger_service?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Mobile Phone Providers\";a:6:{s:5:\"title\";s:22:\"Mobile Phone Providers\";s:4:\"desc\";s:90:\"List of mobile phone providers which can be assigned when recording contact phone numbers.\";s:2:\"id\";s:20:\"MobilePhoneProviders\";s:3:\"url\";s:46:\"/civicrm/admin/options/mobile_provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Phone Type\";a:6:{s:5:\"title\";s:10:\"Phone Type\";s:4:\"desc\";s:80:\"Options for assigning phone type to contacts (e.g Phone,\n Mobile, Fax, Pager)\";s:2:\"id\";s:9:\"PhoneType\";s:3:\"url\";s:41:\"/civicrm/admin/options/phone_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Display Preferences\";a:6:{s:5:\"title\";s:19:\"Display Preferences\";s:4:\"desc\";N;s:2:\"id\";s:18:\"DisplayPreferences\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/display?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Search Preferences\";a:6:{s:5:\"title\";s:18:\"Search Preferences\";s:4:\"desc\";N;s:2:\"id\";s:17:\"SearchPreferences\";s:3:\"url\";s:37:\"/civicrm/admin/setting/search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Navigation Menu\";a:6:{s:5:\"title\";s:15:\"Navigation Menu\";s:4:\"desc\";s:79:\"Add or remove menu items, and modify the order of items on the navigation menu.\";s:2:\"id\";s:14:\"NavigationMenu\";s:3:\"url\";s:27:\"/civicrm/admin/menu?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Word Replacements\";a:6:{s:5:\"title\";s:17:\"Word Replacements\";s:4:\"desc\";s:18:\"Word Replacements.\";s:2:\"id\";s:16:\"WordReplacements\";s:3:\"url\";s:47:\"/civicrm/admin/options/wordreplacements?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Manage Custom Searches\";a:6:{s:5:\"title\";s:22:\"Manage Custom Searches\";s:4:\"desc\";s:225:\"Developers and accidental techies with a bit of PHP and SQL knowledge can create new search forms to handle specific search and reporting needs which aren\'t covered by the built-in Advanced Search and Search Builder features.\";s:2:\"id\";s:20:\"ManageCustomSearches\";s:3:\"url\";s:44:\"/civicrm/admin/options/custom_search?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:13:\"{weight}.Tags\";a:6:{s:5:\"title\";s:4:\"Tags\";s:4:\"desc\";s:158:\"Tags are useful for segmenting the contacts in your database into categories (e.g. Staff Member, Donor, Volunteer, etc.). Create and edit available tags here.\";s:2:\"id\";s:4:\"Tags\";s:3:\"url\";s:20:\"/civicrm/tag?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:14:\"Communications\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:11:{s:46:\"{weight}.Organization Address and Contact Info\";a:6:{s:5:\"title\";s:37:\"Organization Address and Contact Info\";s:4:\"desc\";s:150:\"Configure primary contact name, email, return-path and address information. This information is used by CiviMail to identify the sending organization.\";s:2:\"id\";s:33:\"OrganizationAddressandContactInfo\";s:3:\"url\";s:47:\"/civicrm/admin/domain?action=update&reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:49:\"/civicrm/admin/options/from_email_address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Message Templates\";a:6:{s:5:\"title\";s:17:\"Message Templates\";s:4:\"desc\";s:130:\"Message templates allow you to save and re-use messages with layouts which you can use when sending email to one or more contacts.\";s:2:\"id\";s:16:\"MessageTemplates\";s:3:\"url\";s:39:\"/civicrm/admin/messageTemplates?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Schedule Reminders\";a:6:{s:5:\"title\";s:18:\"Schedule Reminders\";s:4:\"desc\";s:19:\"Schedule Reminders.\";s:2:\"id\";s:17:\"ScheduleReminders\";s:3:\"url\";s:40:\"/civicrm/admin/scheduleReminders?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Preferred Communication Methods\";a:6:{s:5:\"title\";s:31:\"Preferred Communication Methods\";s:4:\"desc\";s:117:\"One or more preferred methods of communication can be assigned to each contact. Customize the available options here.\";s:2:\"id\";s:29:\"PreferredCommunicationMethods\";s:3:\"url\";s:61:\"/civicrm/admin/options/preferred_communication_method?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Label Page Formats\";a:6:{s:5:\"title\";s:18:\"Label Page Formats\";s:4:\"desc\";s:82:\"Configure label sizes and page layouts that are used when printing mailing labels.\";s:2:\"id\";s:16:\"LabelPageFormats\";s:3:\"url\";s:35:\"/civicrm/admin/labelFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Print Page (PDF) Formats\";a:6:{s:5:\"title\";s:24:\"Print Page (PDF) Formats\";s:4:\"desc\";s:95:\"Configure PDF Page Formats that can be assigned to Message Templates when creating PDF letters.\";s:2:\"id\";s:20:\"PrintPage_PDFFormats\";s:3:\"url\";s:33:\"/civicrm/admin/pdfFormats?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Communication Style Options\";a:6:{s:5:\"title\";s:27:\"Communication Style Options\";s:4:\"desc\";s:42:\"Options for Communication Style selection.\";s:2:\"id\";s:25:\"CommunicationStyleOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/communication_style?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Email Greeting Formats\";a:6:{s:5:\"title\";s:22:\"Email Greeting Formats\";s:4:\"desc\";s:75:\"Options for assigning email greetings to individual and household contacts.\";s:2:\"id\";s:20:\"EmailGreetingFormats\";s:3:\"url\";s:45:\"/civicrm/admin/options/email_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Postal Greeting Formats\";a:6:{s:5:\"title\";s:23:\"Postal Greeting Formats\";s:4:\"desc\";s:76:\"Options for assigning postal greetings to individual and household contacts.\";s:2:\"id\";s:21:\"PostalGreetingFormats\";s:3:\"url\";s:46:\"/civicrm/admin/options/postal_greeting?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Addressee Formats\";a:6:{s:5:\"title\";s:17:\"Addressee Formats\";s:4:\"desc\";s:83:\"Options for assigning addressee to individual, household and organization contacts.\";s:2:\"id\";s:16:\"AddresseeFormats\";s:3:\"url\";s:40:\"/civicrm/admin/options/addressee?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Localization\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:4:{s:39:\"{weight}.Languages, Currency, Locations\";a:6:{s:5:\"title\";s:30:\"Languages, Currency, Locations\";s:4:\"desc\";N;s:2:\"id\";s:28:\"Languages_Currency_Locations\";s:3:\"url\";s:43:\"/civicrm/admin/setting/localization?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Address Settings\";a:6:{s:5:\"title\";s:16:\"Address Settings\";s:4:\"desc\";N;s:2:\"id\";s:15:\"AddressSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/address?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Date Formats\";a:6:{s:5:\"title\";s:12:\"Date Formats\";s:4:\"desc\";N;s:2:\"id\";s:11:\"DateFormats\";s:3:\"url\";s:35:\"/civicrm/admin/setting/date?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Preferred Languages\";a:6:{s:5:\"title\";s:19:\"Preferred Languages\";s:4:\"desc\";s:30:\"Options for contact languages.\";s:2:\"id\";s:18:\"PreferredLanguages\";s:3:\"url\";s:40:\"/civicrm/admin/options/languages?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:21:\"Users and Permissions\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:2:{s:23:\"{weight}.Access Control\";a:6:{s:5:\"title\";s:14:\"Access Control\";s:4:\"desc\";s:73:\"Grant or deny access to actions (view, edit...), features and components.\";s:2:\"id\";s:13:\"AccessControl\";s:3:\"url\";s:29:\"/civicrm/admin/access?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Synchronize Users to Contacts\";a:6:{s:5:\"title\";s:29:\"Synchronize Users to Contacts\";s:4:\"desc\";s:71:\"Automatically create a CiviCRM contact record for each CMS user record.\";s:2:\"id\";s:26:\"SynchronizeUserstoContacts\";s:3:\"url\";s:32:\"/civicrm/admin/synchUser?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:15:\"System Settings\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:20:{s:32:\"{weight}.Configuration Checklist\";a:6:{s:5:\"title\";s:23:\"Configuration Checklist\";s:4:\"desc\";s:55:\"List of configuration tasks with links to each setting.\";s:2:\"id\";s:22:\"ConfigurationChecklist\";s:3:\"url\";s:33:\"/civicrm/admin/configtask?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:34:\"{weight}.Enable CiviCRM Components\";a:6:{s:5:\"title\";s:25:\"Enable CiviCRM Components\";s:4:\"desc\";s:269:\"Enable or disable components (e.g. CiviEvent, CiviMember, etc.) for your site based on the features you need. We recommend disabling any components not being used in order to simplify the user interface. You can easily re-enable components at any time from this screen.\";s:2:\"id\";s:23:\"EnableCiviCRMComponents\";s:3:\"url\";s:40:\"/civicrm/admin/setting/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Manage Extensions\";a:6:{s:5:\"title\";s:17:\"Manage Extensions\";s:4:\"desc\";s:0:\"\";s:2:\"id\";s:16:\"ManageExtensions\";s:3:\"url\";s:33:\"/civicrm/admin/extensions?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Outbound Email Settings\";a:6:{s:5:\"title\";s:23:\"Outbound Email Settings\";s:4:\"desc\";N;s:2:\"id\";s:21:\"OutboundEmailSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/smtp?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:37:\"{weight}.Settings - Payment Processor\";a:6:{s:5:\"title\";s:28:\"Settings - Payment Processor\";s:4:\"desc\";s:48:\"Payment Processor setup for CiviCRM transactions\";s:2:\"id\";s:25:\"Settings-PaymentProcessor\";s:3:\"url\";s:39:\"/civicrm/admin/paymentProcessor?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:30:\"{weight}.Mapping and Geocoding\";a:6:{s:5:\"title\";s:21:\"Mapping and Geocoding\";s:4:\"desc\";N;s:2:\"id\";s:19:\"MappingandGeocoding\";s:3:\"url\";s:38:\"/civicrm/admin/setting/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:53:\"{weight}.Misc (Undelete, PDFs, Limits, Logging, etc.)\";a:6:{s:5:\"title\";s:44:\"Misc (Undelete, PDFs, Limits, Logging, etc.)\";s:4:\"desc\";s:63:\"Enable undelete/move to trash feature, detailed change logging.\";s:2:\"id\";s:38:\"Misc_Undelete_PDFs_Limits_Logging_etc.\";s:3:\"url\";s:35:\"/civicrm/admin/setting/misc?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Directories\";a:6:{s:5:\"title\";s:11:\"Directories\";s:4:\"desc\";N;s:2:\"id\";s:11:\"Directories\";s:3:\"url\";s:35:\"/civicrm/admin/setting/path?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Resource URLs\";a:6:{s:5:\"title\";s:13:\"Resource URLs\";s:4:\"desc\";N;s:2:\"id\";s:12:\"ResourceURLs\";s:3:\"url\";s:34:\"/civicrm/admin/setting/url?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:40:\"{weight}.Cleanup Caches and Update Paths\";a:6:{s:5:\"title\";s:31:\"Cleanup Caches and Update Paths\";s:4:\"desc\";s:157:\"Reset the Base Directory Path and Base URL settings - generally when a CiviCRM site is moved to another location in the file system and/or to another domain.\";s:2:\"id\";s:27:\"CleanupCachesandUpdatePaths\";s:3:\"url\";s:50:\"/civicrm/admin/setting/updateConfigBackend?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.CMS Database Integration\";a:6:{s:5:\"title\";s:24:\"CMS Database Integration\";s:4:\"desc\";N;s:2:\"id\";s:22:\"CMSDatabaseIntegration\";s:3:\"url\";s:33:\"/civicrm/admin/setting/uf?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:36:\"{weight}.Safe File Extension Options\";a:6:{s:5:\"title\";s:27:\"Safe File Extension Options\";s:4:\"desc\";s:44:\"File Extensions that can be considered safe.\";s:2:\"id\";s:24:\"SafeFileExtensionOptions\";s:3:\"url\";s:50:\"/civicrm/admin/options/safe_file_extension?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Option Groups\";a:6:{s:5:\"title\";s:13:\"Option Groups\";s:4:\"desc\";s:35:\"Access all meta-data option groups.\";s:2:\"id\";s:12:\"OptionGroups\";s:3:\"url\";s:30:\"/civicrm/admin/options?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Import/Export Mappings\";a:6:{s:5:\"title\";s:22:\"Import/Export Mappings\";s:4:\"desc\";s:141:\"Import and Export mappings allow you to easily run the same job multiple times. This option allows you to rename or delete existing mappings.\";s:2:\"id\";s:21:\"Import_ExportMappings\";s:3:\"url\";s:30:\"/civicrm/admin/mapping?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:18:\"{weight}.Debugging\";a:6:{s:5:\"title\";s:9:\"Debugging\";s:4:\"desc\";N;s:2:\"id\";s:9:\"Debugging\";s:3:\"url\";s:36:\"/civicrm/admin/setting/debug?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:28:\"{weight}.Multi Site Settings\";a:6:{s:5:\"title\";s:19:\"Multi Site Settings\";s:4:\"desc\";N;s:2:\"id\";s:17:\"MultiSiteSettings\";s:3:\"url\";s:52:\"/civicrm/admin/setting/preferences/multisite?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Scheduled Jobs\";a:6:{s:5:\"title\";s:14:\"Scheduled Jobs\";s:4:\"desc\";s:35:\"Managing periodially running tasks.\";s:2:\"id\";s:13:\"ScheduledJobs\";s:3:\"url\";s:26:\"/civicrm/admin/job?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Edit Scheduled Job\";a:6:{s:5:\"title\";s:18:\"Edit Scheduled Job\";s:4:\"desc\";s:32:\"Edit a periodially running task.\";s:2:\"id\";s:16:\"EditScheduledJob\";s:3:\"url\";s:31:\"/civicrm/admin/job/edit?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Sms Providers\";a:6:{s:5:\"title\";s:13:\"Sms Providers\";s:4:\"desc\";s:27:\"To configure a sms provider\";s:2:\"id\";s:12:\"SmsProviders\";s:3:\"url\";s:35:\"/civicrm/admin/sms/provider?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.reCAPTCHA Settings\";a:6:{s:5:\"title\";s:18:\"reCAPTCHA Settings\";s:4:\"desc\";s:43:\"Configure anti-abuse/bot-prevention service\";s:2:\"id\";s:17:\"reCAPTCHASettings\";s:3:\"url\";s:40:\"/civicrm/admin/setting/recaptcha?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"CiviCampaign\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:40:\"{weight}.CiviCampaign Component Settings\";a:6:{s:5:\"title\";s:31:\"CiviCampaign Component Settings\";s:4:\"desc\";s:40:\"Configure global CiviCampaign behaviors.\";s:2:\"id\";s:29:\"CiviCampaignComponentSettings\";s:3:\"url\";s:51:\"/civicrm/admin/setting/preferences/campaign?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:21:\"{weight}.Survey Types\";a:6:{s:5:\"title\";s:12:\"Survey Types\";s:4:\"desc\";N;s:2:\"id\";s:11:\"SurveyTypes\";s:3:\"url\";s:42:\"/civicrm/admin/campaign/surveyType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:23:\"{weight}.Campaign Types\";a:6:{s:5:\"title\";s:14:\"Campaign Types\";s:4:\"desc\";s:47:\"categorize your campaigns using campaign types.\";s:2:\"id\";s:13:\"CampaignTypes\";s:3:\"url\";s:44:\"/civicrm/admin/options/campaign_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Campaign Status\";a:6:{s:5:\"title\";s:15:\"Campaign Status\";s:4:\"desc\";s:34:\"Define statuses for campaign here.\";s:2:\"id\";s:14:\"CampaignStatus\";s:3:\"url\";s:46:\"/civicrm/admin/options/campaign_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Engagement Index\";a:6:{s:5:\"title\";s:16:\"Engagement Index\";s:4:\"desc\";s:18:\"Engagement levels.\";s:2:\"id\";s:15:\"EngagementIndex\";s:3:\"url\";s:47:\"/civicrm/admin/options/engagement_index?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"CiviEvent\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:9:{s:37:\"{weight}.CiviEvent Component Settings\";a:6:{s:5:\"title\";s:28:\"CiviEvent Component Settings\";s:4:\"desc\";s:37:\"Configure global CiviEvent behaviors.\";s:2:\"id\";s:26:\"CiviEventComponentSettings\";s:3:\"url\";s:48:\"/civicrm/admin/setting/preferences/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:33:\"{weight}.Event Name Badge Layouts\";a:6:{s:5:\"title\";s:24:\"Event Name Badge Layouts\";s:4:\"desc\";s:107:\"Configure name badge layouts for event participants, including logos and what data to include on the badge.\";s:2:\"id\";s:21:\"EventNameBadgeLayouts\";s:3:\"url\";s:52:\"/civicrm/admin/badgelayout?action=browse&reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Manage Events\";a:6:{s:5:\"title\";s:13:\"Manage Events\";s:4:\"desc\";s:136:\"Create and edit event configuration including times, locations, online registration forms, and fees. Links for iCal and RSS syndication.\";s:2:\"id\";s:12:\"ManageEvents\";s:3:\"url\";s:28:\"/civicrm/admin/event?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Event Templates\";a:6:{s:5:\"title\";s:15:\"Event Templates\";s:4:\"desc\";s:115:\"Administrators can create Event Templates - which are basically master event records pre-filled with default values\";s:2:\"id\";s:14:\"EventTemplates\";s:3:\"url\";s:36:\"/civicrm/admin/eventTemplate?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:20:\"{weight}.Event Types\";a:6:{s:5:\"title\";s:11:\"Event Types\";s:4:\"desc\";s:143:\"Use Event Types to categorize your events. Event feeds can be filtered by Event Type and participant searches can use Event Type as a criteria.\";s:2:\"id\";s:10:\"EventTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/event_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:27:\"{weight}.Participant Status\";a:6:{s:5:\"title\";s:18:\"Participant Status\";s:4:\"desc\";s:154:\"Define statuses for event participants here (e.g. Registered, Attended, Cancelled...). You can then assign statuses and search for participants by status.\";s:2:\"id\";s:17:\"ParticipantStatus\";s:3:\"url\";s:41:\"/civicrm/admin/participant_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Participant Role\";a:6:{s:5:\"title\";s:16:\"Participant Role\";s:4:\"desc\";s:138:\"Define participant roles for events here (e.g. Attendee, Host, Speaker...). You can then assign roles and search for participants by role.\";s:2:\"id\";s:15:\"ParticipantRole\";s:3:\"url\";s:47:\"/civicrm/admin/options/participant_role?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:38:\"{weight}.Participant Listing Templates\";a:6:{s:5:\"title\";s:29:\"Participant Listing Templates\";s:4:\"desc\";s:48:\"Template to control participant listing display.\";s:2:\"id\";s:27:\"ParticipantListingTemplates\";s:3:\"url\";s:50:\"/civicrm/admin/options/participant_listing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:31:\"{weight}.Conference Slot Labels\";a:6:{s:5:\"title\";s:22:\"Conference Slot Labels\";s:4:\"desc\";s:35:\"Define conference slots and labels.\";s:2:\"id\";s:20:\"ConferenceSlotLabels\";s:3:\"url\";s:46:\"/civicrm/admin/options/conference_slot?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviMail\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:36:\"{weight}.CiviMail Component Settings\";a:6:{s:5:\"title\";s:27:\"CiviMail Component Settings\";s:4:\"desc\";s:36:\"Configure global CiviMail behaviors.\";s:2:\"id\";s:25:\"CiviMailComponentSettings\";s:3:\"url\";s:50:\"/civicrm/admin/setting/preferences/mailing?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Mailer Settings\";a:6:{s:5:\"title\";s:15:\"Mailer Settings\";s:4:\"desc\";s:61:\"Configure spool period, throttling and other mailer settings.\";s:2:\"id\";s:14:\"MailerSettings\";s:3:\"url\";s:27:\"/civicrm/admin/mail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:49:\"{weight}.Headers, Footers, and Automated Messages\";a:6:{s:5:\"title\";s:40:\"Headers, Footers, and Automated Messages\";s:4:\"desc\";s:143:\"Configure the header and footer used for mailings. Customize the content of automated Subscribe, Unsubscribe, Resubscribe and Opt-out messages.\";s:2:\"id\";s:36:\"Headers_Footers_andAutomatedMessages\";s:3:\"url\";s:32:\"/civicrm/admin/component?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:29:\"{weight}.From Email Addresses\";a:6:{s:5:\"title\";s:20:\"From Email Addresses\";s:4:\"desc\";s:74:\"List of Email Addresses which can be used when sending emails to contacts.\";s:2:\"id\";s:18:\"FromEmailAddresses\";s:3:\"url\";s:58:\"/civicrm/admin/options/from_email_address/civimail?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Mail Accounts\";a:6:{s:5:\"title\";s:13:\"Mail Accounts\";s:4:\"desc\";s:20:\"List email accounts.\";s:2:\"id\";s:12:\"MailAccounts\";s:3:\"url\";s:35:\"/civicrm/admin/mailSettings?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviMember\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:38:\"{weight}.CiviMember Component Settings\";a:6:{s:5:\"title\";s:29:\"CiviMember Component Settings\";s:4:\"desc\";s:38:\"Configure global CiviMember behaviors.\";s:2:\"id\";s:27:\"CiviMemberComponentSettings\";s:3:\"url\";s:49:\"/civicrm/admin/setting/preferences/member?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Membership Types\";a:6:{s:5:\"title\";s:16:\"Membership Types\";s:4:\"desc\";s:174:\"Define the types of memberships you want to offer. For each type, you can specify a \'name\' (Gold Member, Honor Society Member...), a description, duration, and a minimum fee.\";s:2:\"id\";s:15:\"MembershipTypes\";s:3:\"url\";s:44:\"/civicrm/admin/member/membershipType?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:32:\"{weight}.Membership Status Rules\";a:6:{s:5:\"title\";s:23:\"Membership Status Rules\";s:4:\"desc\";s:187:\"Status \'rules\' define the current status for a membership based on that membership\'s start and end dates. You can adjust the default status options and rules as needed to meet your needs.\";s:2:\"id\";s:21:\"MembershipStatusRules\";s:3:\"url\";s:46:\"/civicrm/admin/member/membershipStatus?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:6:\"Manage\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:27:\"{weight}.Scheduled Jobs Log\";a:6:{s:5:\"title\";s:18:\"Scheduled Jobs Log\";s:4:\"desc\";s:46:\"Browsing the log of periodially running tasks.\";s:2:\"id\";s:16:\"ScheduledJobsLog\";s:3:\"url\";s:29:\"/civicrm/admin/joblog?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:42:\"{weight}.Find and Merge Duplicate Contacts\";a:6:{s:5:\"title\";s:33:\"Find and Merge Duplicate Contacts\";s:4:\"desc\";s:158:\"Manage the rules used to identify potentially duplicate contact records. Scan for duplicates using a selected rule and merge duplicate contact data as needed.\";s:2:\"id\";s:29:\"FindandMergeDuplicateContacts\";s:3:\"url\";s:36:\"/civicrm/contact/deduperules?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Dedupe Exceptions\";a:6:{s:5:\"title\";s:17:\"Dedupe Exceptions\";s:4:\"desc\";N;s:2:\"id\";s:16:\"DedupeExceptions\";s:3:\"url\";s:33:\"/civicrm/dedupe/exception?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:12:\"Option Lists\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:20:\"{weight}.Grant Types\";a:6:{s:5:\"title\";s:11:\"Grant Types\";s:4:\"desc\";s:148:\"List of types which can be assigned to Grants. (Enable CiviGrant from Administer > System Settings > Enable Components if you want to track grants.)\";s:2:\"id\";s:10:\"GrantTypes\";s:3:\"url\";s:41:\"/civicrm/admin/options/grant_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:9:\"Customize\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:1:{s:19:\"{weight}.Price Sets\";a:6:{s:5:\"title\";s:10:\"Price Sets\";s:4:\"desc\";s:205:\"Price sets allow you to offer multiple options with associated fees (e.g. pre-conference workshops, additional meals, etc.). Configure Price Sets for events which need more than a single set of fee levels.\";s:2:\"id\";s:9:\"PriceSets\";s:3:\"url\";s:28:\"/civicrm/admin/price?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:8:\"CiviCase\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:5:{s:26:\"{weight}.CiviCase Settings\";a:6:{s:5:\"title\";s:17:\"CiviCase Settings\";s:4:\"desc\";N;s:2:\"id\";s:16:\"CiviCaseSettings\";s:3:\"url\";s:35:\"/civicrm/admin/setting/case?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:19:\"{weight}.Case Types\";a:6:{s:5:\"title\";s:10:\"Case Types\";s:4:\"desc\";s:137:\"List of types which can be assigned to Cases. (Enable the Cases tab from System Settings - Enable Components if you want to track cases.)\";s:2:\"id\";s:9:\"CaseTypes\";s:3:\"url\";s:40:\"/civicrm/admin/options/case_type?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Redaction Rules\";a:6:{s:5:\"title\";s:15:\"Redaction Rules\";s:4:\"desc\";s:223:\"List of rules which can be applied to user input strings so that the redacted output can be recognized as repeated instances of the same string or can be identified as a \"semantic type of the data element\" within case data.\";s:2:\"id\";s:14:\"RedactionRules\";s:3:\"url\";s:45:\"/civicrm/admin/options/redaction_rule?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:22:\"{weight}.Case Statuses\";a:6:{s:5:\"title\";s:13:\"Case Statuses\";s:4:\"desc\";s:48:\"List of statuses that can be assigned to a case.\";s:2:\"id\";s:12:\"CaseStatuses\";s:3:\"url\";s:42:\"/civicrm/admin/options/case_status?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:26:\"{weight}.Encounter Mediums\";a:6:{s:5:\"title\";s:17:\"Encounter Mediums\";s:4:\"desc\";s:26:\"List of encounter mediums.\";s:2:\"id\";s:16:\"EncounterMediums\";s:3:\"url\";s:47:\"/civicrm/admin/options/encounter_medium?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}s:10:\"CiviReport\";a:2:{s:12:\"component_id\";N;s:6:\"fields\";a:3:{s:40:\"{weight}.Create New Report from Template\";a:6:{s:5:\"title\";s:31:\"Create New Report from Template\";s:4:\"desc\";s:49:\"Component wise listing of all available templates\";s:2:\"id\";s:27:\"CreateNewReportfromTemplate\";s:3:\"url\";s:43:\"/civicrm/admin/report/template/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:25:\"{weight}.Manage Templates\";a:6:{s:5:\"title\";s:16:\"Manage Templates\";s:4:\"desc\";s:45:\"Browse, Edit and Delete the Report templates.\";s:2:\"id\";s:15:\"ManageTemplates\";s:3:\"url\";s:53:\"/civicrm/admin/report/options/report_template?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}s:24:\"{weight}.Reports Listing\";a:6:{s:5:\"title\";s:15:\"Reports Listing\";s:4:\"desc\";s:60:\"Browse existing report, change report criteria and settings.\";s:2:\"id\";s:14:\"ReportsListing\";s:3:\"url\";s:34:\"/civicrm/admin/report/list?reset=1\";s:4:\"icon\";N;s:5:\"extra\";N;}}}}',NULL,NULL,NULL,1,0,1,1,1,1,1,0,'a:0:{}'); /*!40000 ALTER TABLE `civicrm_menu` ENABLE KEYS */; UNLOCK TABLES; @@ -5353,70 +5318,70 @@ UNLOCK TABLES; LOCK TABLES `civicrm_msg_template` WRITE; /*!40000 ALTER TABLE `civicrm_msg_template` DISABLE KEYS */; INSERT INTO `civicrm_msg_template` (`id`, `msg_title`, `msg_subject`, `msg_text`, `msg_html`, `is_active`, `workflow_id`, `workflow_name`, `is_default`, `is_reserved`, `is_sms`, `pdf_format_id`) VALUES - (1,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Activity Summary{/ts} - {$activityTypeName}\n </th>\n </tr>\n {if !empty($isCaseActivity)}\n <tr>\n <td {$labelStyle}>\n {ts}Your Case Role(s){/ts}\n </td>\n <td {$valueStyle}>\n {$contact.role|default:\'\'}\n </td>\n </tr>\n {if !empty($manageCaseURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n </td>\n </tr>\n {/if}\n {/if}\n {if !empty($editActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {if !empty($viewActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {foreach from=$activity.fields item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n\n {if !empty($activity.customGroups)}\n {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n <tr>\n <th {$headerStyle}>\n {$customGroupName}\n </th>\n </tr>\n {foreach from=$customGroup item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n',1,812,'case_activity',1,0,0,NULL), - (2,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Activity Summary{/ts} - {$activityTypeName}\n </th>\n </tr>\n {if !empty($isCaseActivity)}\n <tr>\n <td {$labelStyle}>\n {ts}Your Case Role(s){/ts}\n </td>\n <td {$valueStyle}>\n {$contact.role|default:\'\'}\n </td>\n </tr>\n {if !empty($manageCaseURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n </td>\n </tr>\n {/if}\n {/if}\n {if !empty($editActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {if !empty($viewActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {foreach from=$activity.fields item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n\n {if !empty($activity.customGroups)}\n {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n <tr>\n <th {$headerStyle}>\n {$customGroupName}\n </th>\n </tr>\n {foreach from=$customGroup item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n',1,812,'case_activity',0,1,0,NULL), - (3,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Organization Name{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Email{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfEmail}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Contact ID{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfID}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n </td>\n </tr>\n {if $receiptMessage}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Copy of Contribution Receipt{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {* FIXME: the below is most probably not HTML-ised *}\n {$receiptMessage}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n {/if}\n </table>\n</body>\n</html>\n',1,813,'contribution_dupalert',1,0,0,NULL), - (4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Organization Name{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Email{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfEmail}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Contact ID{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfID}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n </td>\n </tr>\n {if $receiptMessage}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Copy of Contribution Receipt{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {* FIXME: the below is most probably not HTML-ised *}\n {$receiptMessage}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n {/if}\n </table>\n</body>\n</html>\n',1,813,'contribution_dupalert',0,1,0,NULL), - (5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Below you will find a receipt for this contribution.{/ts}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if \'{contribution.financial_type_id}\'}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"}\n{/foreach}\n{/if}\n\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax{/ts} : {contribution.tax_exclusive_amount}\n{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts} : {contribution.tax_amount}\n{/if}\n{ts}Total Amount{/ts} : {contribution.total_amount}\n{if \'{contribution.receive_date}\'}\n{ts}Contribution Date{/ts}: {contribution.receive_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.receipt_date}\'}\n{ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if \'{contribution.check_number}\'}\n{ts}Check Number{/ts}: {contribution.check_number}\n{/if}\n{/if}\n{if \'{contribution.trxn_id}\'}\n{ts}Transaction ID{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contributor Name{/ts}\n </td>\n <td {$valueStyle}>\n {contact.display_name}\n </td>\n </tr>\n <tr>\n {if \'{contribution.financial_type_id}\'}\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n {/if}\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>\n {$line.title}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n\n {if \'{contribution.receive_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if \'{contribution.receipt_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Receipt Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receipt_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if \'{contribution.check_number}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if \'{contribution.trxn_id}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction ID{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($ccContribution)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($formValues.product_name)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$formValues.product_name}\n </td>\n </tr>\n {if $formValues.product_option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_option}\n </td>\n </tr>\n {/if}\n {if $formValues.product_sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_sku}\n </td>\n </tr>\n {/if}\n {if !empty($fulfilled_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Sent{/ts}\n </td>\n <td {$valueStyle}>\n {$fulfilled_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,814,'contribution_offline_receipt',1,0,0,NULL), - (6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Below you will find a receipt for this contribution.{/ts}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if \'{contribution.financial_type_id}\'}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"}\n{/foreach}\n{/if}\n\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax{/ts} : {contribution.tax_exclusive_amount}\n{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts} : {contribution.tax_amount}\n{/if}\n{ts}Total Amount{/ts} : {contribution.total_amount}\n{if \'{contribution.receive_date}\'}\n{ts}Contribution Date{/ts}: {contribution.receive_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.receipt_date}\'}\n{ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if \'{contribution.check_number}\'}\n{ts}Check Number{/ts}: {contribution.check_number}\n{/if}\n{/if}\n{if \'{contribution.trxn_id}\'}\n{ts}Transaction ID{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Below you will find a receipt for this contribution.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contributor Name{/ts}\n </td>\n <td {$valueStyle}>\n {contact.display_name}\n </td>\n </tr>\n <tr>\n {if \'{contribution.financial_type_id}\'}\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n {/if}\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>\n {$line.title}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n\n {if \'{contribution.receive_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if \'{contribution.receipt_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Receipt Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receipt_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if \'{contribution.payment_instrument_id}\' and empty($formValues.hidden_CreditCard)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if \'{contribution.check_number}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if \'{contribution.trxn_id}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction ID{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($ccContribution)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($formValues.product_name)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$formValues.product_name}\n </td>\n </tr>\n {if $formValues.product_option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_option}\n </td>\n </tr>\n {/if}\n {if $formValues.product_sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_sku}\n </td>\n </tr>\n {/if}\n {if !empty($fulfilled_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Sent{/ts}\n </td>\n <td {$valueStyle}>\n {$fulfilled_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,814,'contribution_offline_receipt',0,1,0,NULL), - (7,'Contributions - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>{$line.qty}</td>\n <td>{$line.unit_price|crmMoney:$currency}</td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n\n {/if}\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {else}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n {/if}\n\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_monetary) and !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This is a recurring contribution.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {elseif !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($isShare)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,815,'contribution_online_receipt',1,0,0,NULL), - (8,'Contributions - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>{$line.qty}</td>\n <td>{$line.unit_price|crmMoney:$currency}</td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n\n {/if}\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {else}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n {/if}\n\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_monetary) and !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This is a recurring contribution.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {elseif !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($isShare)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,815,'contribution_online_receipt',0,1,0,NULL), - (9,'Contributions - Invoice','{if $title}\n {if $component}\n {if $component == \'event\'}\n {ts 1=$title}Event Registration Invoice: %1{/ts}\n {else}\n {ts 1=$title}Contribution Invoice: %1{/ts}\n {/if}\n {/if}\n{else}\n {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n {if $config->empoweredBy}\n <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{domain.empowered_by_civicrm_image_url}\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n {if $email_comment}\n <tr>\n <td><font size=\"1\" colspan=\"3\">{$email_comment}</font></td>\n </tr>\n {/if}\n <tr>\n <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{domain.name}</font></b></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.country_id:label}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{domain.email}</font> </td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td valign=\"top\"><font size=\"1\" align=\"right\">{domain.phone}</font> </td>\n </tr>\n </table>\n\n <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td style=\"text-align:left;nowrap\"><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}-{/ts}{/if}</font></td>\n {/if}\n <td style=\"text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n {if \'{contribution.contribution_status_id:name}\' == \'Refunded\'}\n {ts}Amount Credited{/ts}\n {else}\n {ts}Amount Paid{/ts}\n {/if}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n </tr>\n <tr>\n <td colspan=\"5\"></td>\n </tr>\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <tr>\n <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n <td colspan=\"2\"></td>\n </tr>\n {/if}\n </table>\n\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n <tr>\n <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/>\n <font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n {domain.name}<br />\n {domain.street_address} {domain.supplemental_address_1}<br />\n {domain.supplemental_address_2} {domain.state_province_id:label}<br />\n {domain.city} {domain.postal_code}<br />\n {domain.country_id:label}<br />\n {domain.email}</div>\n {domain.phone}<br />\n </font>\n <br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n </td>\n <td width=\"40%\">\n <table cellpadding=\"5\" cellspacing=\"0\" width=\"100%\" border=\"0\">\n <tr>\n <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n </tr>\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n {if $is_pay_later == 1}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {else}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n </tr>\n {/if}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n </tr>\n <tr>\n <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n {if \'{contribution.contribution_status_id:name}\' === \'Refunded\' || \'{contribution.contribution_status_id:name}\' === \'Cancelled\'}\n {if $config->empoweredBy}\n <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n\n <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n <tr>\n <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.name}</font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.country_id:label}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.email}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td><font size=\"1\" align=\"right\">\n {domain.phone}\n </font></td>\n </tr>\n </table>\n\n <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td colspan=\"2\">\n <table>\n <tr>\n <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line key=index}\n <tr><td colspan=\"5\"><hr {if $index == 0}size=\"3\" style=\"color:#000;\"{else}style=\"color:#F5F5F5;\"{/if}></hr></td></tr>\n <tr>\n <td style =\"text-align:left;\" ><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}No %1{/ts}{/if}</font></td>\n {/if}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {if \'{contribution.is_pay_later}\' == 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n </tr>\n {/if}\n <br/><br/><br/>\n <tr>\n <td colspan=\"3\"></td>\n </tr>\n <tr>\n <td></td>\n <td colspan=\"3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n <td width=\"40%\">\n <table align=\"right\">\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n </tr>\n <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n </div>\n </body>\n</html>\n',1,816,'contribution_invoice_receipt',1,0,0,NULL), - (10,'Contributions - Invoice','{if $title}\n {if $component}\n {if $component == \'event\'}\n {ts 1=$title}Event Registration Invoice: %1{/ts}\n {else}\n {ts 1=$title}Contribution Invoice: %1{/ts}\n {/if}\n {/if}\n{else}\n {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n {if $config->empoweredBy}\n <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{domain.empowered_by_civicrm_image_url}\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n {if $email_comment}\n <tr>\n <td><font size=\"1\" colspan=\"3\">{$email_comment}</font></td>\n </tr>\n {/if}\n <tr>\n <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{domain.name}</font></b></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.country_id:label}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{domain.email}</font> </td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td valign=\"top\"><font size=\"1\" align=\"right\">{domain.phone}</font> </td>\n </tr>\n </table>\n\n <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td style=\"text-align:left;nowrap\"><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}-{/ts}{/if}</font></td>\n {/if}\n <td style=\"text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n {if \'{contribution.contribution_status_id:name}\' == \'Refunded\'}\n {ts}Amount Credited{/ts}\n {else}\n {ts}Amount Paid{/ts}\n {/if}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n </tr>\n <tr>\n <td colspan=\"5\"></td>\n </tr>\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <tr>\n <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n <td colspan=\"2\"></td>\n </tr>\n {/if}\n </table>\n\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n <tr>\n <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/>\n <font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n {domain.name}<br />\n {domain.street_address} {domain.supplemental_address_1}<br />\n {domain.supplemental_address_2} {domain.state_province_id:label}<br />\n {domain.city} {domain.postal_code}<br />\n {domain.country_id:label}<br />\n {domain.email}</div>\n {domain.phone}<br />\n </font>\n <br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n </td>\n <td width=\"40%\">\n <table cellpadding=\"5\" cellspacing=\"0\" width=\"100%\" border=\"0\">\n <tr>\n <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n </tr>\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n {if $is_pay_later == 1}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {else}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n </tr>\n {/if}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n </tr>\n <tr>\n <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n {if \'{contribution.contribution_status_id:name}\' === \'Refunded\' || \'{contribution.contribution_status_id:name}\' === \'Cancelled\'}\n {if $config->empoweredBy}\n <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n\n <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n <tr>\n <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.name}</font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.country_id:label}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.email}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td><font size=\"1\" align=\"right\">\n {domain.phone}\n </font></td>\n </tr>\n </table>\n\n <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td colspan=\"2\">\n <table>\n <tr>\n <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line key=index}\n <tr><td colspan=\"5\"><hr {if $index == 0}size=\"3\" style=\"color:#000;\"{else}style=\"color:#F5F5F5;\"{/if}></hr></td></tr>\n <tr>\n <td style =\"text-align:left;\" ><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}No %1{/ts}{/if}</font></td>\n {/if}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {if \'{contribution.is_pay_later}\' == 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n </tr>\n {/if}\n <br/><br/><br/>\n <tr>\n <td colspan=\"3\"></td>\n </tr>\n <tr>\n <td></td>\n <td colspan=\"3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n <td width=\"40%\">\n <table align=\"right\">\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n </tr>\n <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n </div>\n </body>\n</html>\n',1,816,'contribution_invoice_receipt',0,1,0,NULL), - (11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n </td>\n </tr>\n\n <tr>\n <td> </td>\n </tr>\n\n {if $recur_txnType eq \'START\'}\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {else}\n <tr>\n <td>\n <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {elseif $recur_txnType eq \'END\'}\n\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n </td>\n </tr>\n {else}\n <tr>\n <td>\n <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_start_date|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_end_date|crmDate}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n {/if}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,817,'contribution_recurring_notify',1,0,0,NULL), - (12,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n </td>\n </tr>\n\n <tr>\n <td> </td>\n </tr>\n\n {if $recur_txnType eq \'START\'}\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {else}\n <tr>\n <td>\n <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {elseif $recur_txnType eq \'END\'}\n\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n </td>\n </tr>\n {else}\n <tr>\n <td>\n <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_start_date|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_end_date|crmDate}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n {/if}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,817,'contribution_recurring_notify',0,1,0,NULL), - (13,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,818,'contribution_recurring_cancelled',1,0,0,NULL), - (14,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,818,'contribution_recurring_cancelled',0,1,0,NULL), - (15,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,819,'contribution_recurring_billing',1,0,0,NULL), - (16,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,819,'contribution_recurring_billing',0,1,0,NULL), - (17,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,820,'contribution_recurring_edit',1,0,0,NULL), - (18,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,820,'contribution_recurring_edit',0,1,0,NULL), - (19,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page Notification{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Action{/ts}:\n </td>\n <td {$valueStyle}>\n {if $mode EQ \'Update\'}\n {ts}Updated personal campaign page{/ts}\n {else}\n {ts}New personal campaign page{/ts}\n {/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Personal Campaign Page Title{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpTitle}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Current Status{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpStatus}\n </td>\n </tr>\n\n <tr>\n <td {$labelStyle}>\n <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n </td>\n <td></td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Supporter{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$supporterUrl}\">{$supporterName}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Linked to Contribution Page{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n </td>\n <td></td>\n </tr>\n\n </table>\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,821,'pcp_notify',1,0,0,NULL), - (20,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page Notification{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Action{/ts}:\n </td>\n <td {$valueStyle}>\n {if $mode EQ \'Update\'}\n {ts}Updated personal campaign page{/ts}\n {else}\n {ts}New personal campaign page{/ts}\n {/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Personal Campaign Page Title{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpTitle}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Current Status{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpStatus}\n </td>\n </tr>\n\n <tr>\n <td {$labelStyle}>\n <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n </td>\n <td></td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Supporter{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$supporterUrl}\">{$supporterName}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Linked to Contribution Page{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n </td>\n <td></td>\n </tr>\n\n </table>\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,821,'pcp_notify',0,1,0,NULL), - (21,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n\n <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n {if $pcpStatus eq \'Approved\'}\n\n <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n {if $isTellFriendEnabled}\n <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {elseif $pcpStatus eq \'Not Approved\'}\n\n <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n {if $pcpNotifyEmailAddress}\n <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {/if}\n\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,822,'pcp_status_change',1,0,0,NULL), - (22,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n\n <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n {if $pcpStatus eq \'Approved\'}\n\n <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n {if $isTellFriendEnabled}\n <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {elseif $pcpStatus eq \'Not Approved\'}\n\n <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n {if $pcpNotifyEmailAddress}\n <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {/if}\n\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,822,'pcp_status_change',0,1,0,NULL), - (23,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n </td>\n </tr>\n\n {if $pcpStatus eq \'Approved\'}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Promoting Your Page{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if $isTellFriendEnabled}\n <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n </ol>\n {else}\n <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Managing Your Page{/ts}\n </th>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n </td>\n </tr>\n </tr>\n </table>\n </td>\n </tr>\n\n {elseif $pcpStatus EQ \'Waiting Review\'}\n\n <tr>\n <td>\n <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n </ol>\n </td>\n </tr>\n\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <tr>\n <td>\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,823,'pcp_supporter_notify',1,0,0,NULL), - (24,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n </td>\n </tr>\n\n {if $pcpStatus eq \'Approved\'}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Promoting Your Page{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if $isTellFriendEnabled}\n <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n </ol>\n {else}\n <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Managing Your Page{/ts}\n </th>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n </td>\n </tr>\n </tr>\n </table>\n </td>\n </tr>\n\n {elseif $pcpStatus EQ \'Waiting Review\'}\n\n <tr>\n <td>\n <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n </ol>\n </td>\n </tr>\n\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <tr>\n <td>\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,823,'pcp_supporter_notify',0,1,0,NULL), - (25,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Contribution Date{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n {ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n {if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n {/if}\n </p>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr><td>{ts}Contribution Date{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n </table>\n</body>\n</html>\n',1,824,'pcp_owner_notify',1,0,0,NULL), - (26,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Contribution Date{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n {ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n {if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n {/if}\n </p>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr><td>{ts}Contribution Date{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n </table>\n</body>\n</html>\n',1,824,'pcp_owner_notify',0,1,0,NULL), - (27,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if $totalAmount}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney:$currency}\n{/if}\n{if $totalPaid}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney:$currency}\n{/if}\n{if $amountOwed}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney:$currency} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $isRefund}\n <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n {else}\n <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n {if $paymentsComplete}\n <p>{ts}Thank you for completing this contribution.{/ts}</p>\n {/if}\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if $isRefund}\n <tr>\n <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Refund Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$refundAmount|crmMoney:$currency}\n </td>\n </tr>\n {else}\n <tr>\n <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Payment Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$paymentAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $receive_date}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n <tr>\n <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n </tr>\n {if $totalAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Fee{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $totalPaid}\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$totalPaid|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $amountOwed}\n <tr>\n <td {$labelStyle}>\n {ts}Balance Owed{/ts}\n </td>\n <td {$valueStyle}>\n {$amountOwed|crmMoney:$currency}\n </td> {* This will be zero after final payment. *}\n </tr>\n {/if}\n </table>\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !empty($billingName) || !empty($address)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if !empty($billingName)}{$billingName}{/if}<br />\n {if !empty($address)}{$address|nl2br}{/if}\n </td>\n </tr>\n {/if}\n {if !empty($credit_card_number)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {if $component eq \'event\'}\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if} {*phone block close*}\n {/if}\n </table>\n </td>\n </tr>\n\n </table>\n\n </body>\n</html>\n',1,825,'payment_or_refund_notification',1,0,0,NULL), - (28,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if $totalAmount}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney:$currency}\n{/if}\n{if $totalPaid}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney:$currency}\n{/if}\n{if $amountOwed}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney:$currency} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $isRefund}\n <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n {else}\n <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n {if $paymentsComplete}\n <p>{ts}Thank you for completing this contribution.{/ts}</p>\n {/if}\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if $isRefund}\n <tr>\n <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Refund Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$refundAmount|crmMoney:$currency}\n </td>\n </tr>\n {else}\n <tr>\n <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Payment Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$paymentAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $receive_date}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n <tr>\n <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n </tr>\n {if $totalAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Fee{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $totalPaid}\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$totalPaid|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $amountOwed}\n <tr>\n <td {$labelStyle}>\n {ts}Balance Owed{/ts}\n </td>\n <td {$valueStyle}>\n {$amountOwed|crmMoney:$currency}\n </td> {* This will be zero after final payment. *}\n </tr>\n {/if}\n </table>\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !empty($billingName) || !empty($address)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if !empty($billingName)}{$billingName}{/if}<br />\n {if !empty($address)}{$address|nl2br}{/if}\n </td>\n </tr>\n {/if}\n {if !empty($credit_card_number)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {if $component eq \'event\'}\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if} {*phone block close*}\n {/if}\n </table>\n </td>\n </tr>\n\n </table>\n\n </body>\n</html>\n',1,825,'payment_or_refund_notification',0,1,0,NULL), - (29,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{event.title}\n{event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n{ts}Event Contacts:{/ts}\n\n{if {event.loc_block_id.phone_id.phone|boolean}}\n{if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.phone_2_id.phone|boolean}}\n{if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}{event.loc_block_id.phone_2_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.email_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_id.email}\n{/if}\n{if {event.loc_block_id.email_2_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_2_id.email}{/if}\n{/if}\n\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if {event.is_monetary|boolean}}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if $totalAmount and $totalTaxAmount}\n{ts}Amount before Tax:{/ts} {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if {event.is_monetary|boolean}}\n\n{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {if {contribution.paid_amount|boolean}}{contribution.paid_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{ts}Balance{/ts}: {contribution.balance_amount}\n{else}{ts}Total Amount{/ts}: {if {contribution.total_amount|boolean}}{contribution.total_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{$event.confirm_email_text|htmlize}</p>\n {/if}\n\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {elseif $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n\n {if {event.loc_block_id.phone_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {if {event.loc_block_id.phone_2_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_2_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n\n\n {if {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_id.email}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.email_2_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_2_id.email}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {if !empty($event.is_public)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $email}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n\n {if {event.is_monetary|boolean}}\n\n <tr>\n <th {$headerStyle}>\n {if !empty($event.fee_label)}{$event.fee_label}{/if}\n </th>\n </tr>\n\n {if !empty($lineItem)}\n {foreach from=$lineItem item=value key=priceset}\n {if $value neq \'skip\'}\n {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$priceset+1}Participant %1{/ts}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {if !empty($pricesetFieldsCount) }\n <td>\n {$line.participant_count}\n </td>\n {/if}\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {if !empty($dataArray)}\n {if $totalAmount and $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {/if}\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n\n {if !empty($amount) && !$lineItem}\n {foreach from=$amount item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n {if $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean}}\n {if {contribution.balance_amount|boolean}}\n <tr>\n <td {$labelStyle}>{ts}Total Paid{/ts}</td>\n <td {$valueStyle}>\n {if {contribution.paid_amount|boolean}}{contribution.paid_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>{ts}Balance{/ts}</td>\n <td {$valueStyle}>{contribution.balance_amount}</td>\n </tr>\n {else}\n <tr>\n <td {$labelStyle}>{ts}Total Amount{/ts}</td>\n <td {$valueStyle}>\n {if {contribution.total_amount|boolean}}{contribution.total_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {/if}\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td>\n </tr>\n {/if}\n {if $is_pay_later}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$pay_later_receipt}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=value key=customName}\n {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=value key=customName}\n {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customProfile)}\n {foreach from=$customProfile item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n </th>\n </tr>\n {foreach from=$value item=val key=field}\n {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {if $field eq \'additionalCustomPre\'}\n {$additionalCustomPre_grouptitle}\n {else}\n {$additionalCustomPost_grouptitle}\n {/if}\n </td>\n </tr>\n {foreach from=$val item=v key=f}\n <tr>\n <td {$labelStyle}>\n {$f}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/if}\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,826,'event_offline_receipt',1,0,0,NULL), - (30,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{event.title}\n{event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n{ts}Event Contacts:{/ts}\n\n{if {event.loc_block_id.phone_id.phone|boolean}}\n{if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.phone_2_id.phone|boolean}}\n{if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}{event.loc_block_id.phone_2_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.email_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_id.email}\n{/if}\n{if {event.loc_block_id.email_2_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_2_id.email}{/if}\n{/if}\n\n\n{if !empty($event.is_public)}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if {event.is_monetary|boolean}}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if $totalAmount and $totalTaxAmount}\n{ts}Amount before Tax:{/ts} {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n{if {event.is_monetary|boolean}}\n\n{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {if {contribution.paid_amount|boolean}}{contribution.paid_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{ts}Balance{/ts}: {contribution.balance_amount}\n{else}{ts}Total Amount{/ts}: {if {contribution.total_amount|boolean}}{contribution.total_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPre_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPre item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customPost_grouptitle}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$customPost item=value key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n{$customName}: {$value}\n{/if}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile item=value key=customName}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts 1=$customName+1}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=val key=field}\n{if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\' }\n{if $field eq \'additionalCustomPre\' }\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPre_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{else}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{$additionalCustomPost_grouptitle}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{/if}\n{foreach from=$val item=v key=f}\n{$f}: {$v}\n{/foreach}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{$event.confirm_email_text|htmlize}</p>\n {/if}\n\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {elseif $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n\n {if {event.loc_block_id.phone_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {if {event.loc_block_id.phone_2_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_2_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n\n\n {if {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_id.email}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.email_2_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_2_id.email}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {if !empty($event.is_public)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $email}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n\n {if {event.is_monetary|boolean}}\n\n <tr>\n <th {$headerStyle}>\n {if !empty($event.fee_label)}{$event.fee_label}{/if}\n </th>\n </tr>\n\n {if !empty($lineItem)}\n {foreach from=$lineItem item=value key=priceset}\n {if $value neq \'skip\'}\n {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$priceset+1}Participant %1{/ts}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {if !empty($pricesetFieldsCount) }\n <td>\n {$line.participant_count}\n </td>\n {/if}\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {if !empty($dataArray)}\n {if $totalAmount and $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {/if}\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n\n {if !empty($amount) && !$lineItem}\n {foreach from=$amount item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n {if $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean}}\n {if {contribution.balance_amount|boolean}}\n <tr>\n <td {$labelStyle}>{ts}Total Paid{/ts}</td>\n <td {$valueStyle}>\n {if {contribution.paid_amount|boolean}}{contribution.paid_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>{ts}Balance{/ts}</td>\n <td {$valueStyle}>{contribution.balance_amount}</td>\n </tr>\n {else}\n <tr>\n <td {$labelStyle}>{ts}Total Amount{/ts}</td>\n <td {$valueStyle}>\n {if {contribution.total_amount|boolean}}{contribution.total_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {/if}\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td>\n </tr>\n {/if}\n {if $is_pay_later}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$pay_later_receipt}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=value key=customName}\n {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=value key=customName}\n {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customProfile)}\n {foreach from=$customProfile item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {ts 1=$customName+1}Participant Information - Participant %1{/ts}\n </th>\n </tr>\n {foreach from=$value item=val key=field}\n {if $field eq \'additionalCustomPre\' or $field eq \'additionalCustomPost\'}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {if $field eq \'additionalCustomPre\'}\n {$additionalCustomPre_grouptitle}\n {else}\n {$additionalCustomPost_grouptitle}\n {/if}\n </td>\n </tr>\n {foreach from=$val item=v key=f}\n <tr>\n <td {$labelStyle}>\n {$f}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/if}\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,826,'event_offline_receipt',0,1,0,NULL), - (31,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n {ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{event.title}\n{event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n\n{ts}Event Contacts:{/ts}\n{if {event.loc_block_id.phone_id.phone|boolean}}\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if {event.is_public|boolean}}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n{if !$isPrimary}{* Use the participant specific tax rate breakdown *}{assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n{/if}\n{if $isPrimary}\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{$event.confirm_email_text|htmlize}</p>\n\n {else}\n <p>{ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n {/if}\n\n <p>\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n {if $isPrimary}\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {/if}\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n {if $isPrimary}\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {/if}\n {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n <p>{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if {event.is_public|boolean}}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $event.is_share}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id={event.id}&reset=1\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl pageURL=$eventUrl title=\'{event.title}\'}\n </td>\n </tr>\n {/if}\n {if !empty($payer.name)}\n <tr>\n <th {$headerStyle}>\n {ts}You were registered by:{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$payer.name}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean} and empty($isRequireApproval)}\n\n <tr>\n <th {$headerStyle}>\n {event.fee_label}\n </th>\n </tr>\n\n {if $isShowLineItems}\n {foreach from=$participants key=index item=participant}\n {if $isPrimary || {participant.id} === $participant.id}\n {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name}\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$participant.line_items item=line}\n <tr>\n <td {$tdfirstStyle}>{$line.title}</td>\n <td {$tdStyle} align=\"middle\">{$line.qty}</td>\n <td {$tdStyle}>{$line.unit_price|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td {$tdStyle}>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n {if !empty($pricesetFieldsCount)}<td {$tdStyle}>{$line.participant_count}</td> {/if}\n </tr>\n {/foreach}\n {if $isShowTax}\n <tr {$participantTotal}>\n <td colspan=3>{ts}Participant Total{/ts}</td>\n <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td>\n <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td>\n <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td>\n </tr>\n {/if}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n </td>\n </tr>\n\n {if !$isPrimary}\n {* Use the participant specific tax rate breakdown *}\n {assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}\n {/if}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($amounts) && empty($lineItem)}\n {foreach from=$amounts item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney:$currency} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n </td>\n </tr>\n {/if}\n {if $isPrimary}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td> </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n {foreach from=$customPr item=customValue key=customName}\n {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n {/if}\n {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n {foreach from=$customPos item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n {foreach from=$eachParticipant item=eachProfile key=pid}\n <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n {foreach from=$eachProfile item=val key=field}\n <tr>{foreach from=$val item=v key=f}\n <td {$labelStyle}>{$field}</td>\n <td {$valueStyle}>{$v}</td>\n {/foreach}\n </tr>\n {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n </table>\n {if !empty($event.allow_selfcancelxfer) }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`{participant.id}`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n </table>\n\n</body>\n</html>\n',1,827,'event_online_receipt',1,0,0,NULL), - (32,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n {ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{event.title}\n{event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n\n{ts}Event Contacts:{/ts}\n{if {event.loc_block_id.phone_id.phone|boolean}}\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if {event.is_public|boolean}}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n{if !$isPrimary}{* Use the participant specific tax rate breakdown *}{assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n{/if}\n{if $isPrimary}\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{$event.confirm_email_text|htmlize}</p>\n\n {else}\n <p>{ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n {/if}\n\n <p>\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n {if $isPrimary}\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {/if}\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n {if $isPrimary}\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {/if}\n {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n <p>{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if {event.is_public|boolean}}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $event.is_share}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id={event.id}&reset=1\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl pageURL=$eventUrl title=\'{event.title}\'}\n </td>\n </tr>\n {/if}\n {if !empty($payer.name)}\n <tr>\n <th {$headerStyle}>\n {ts}You were registered by:{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$payer.name}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean} and empty($isRequireApproval)}\n\n <tr>\n <th {$headerStyle}>\n {event.fee_label}\n </th>\n </tr>\n\n {if $isShowLineItems}\n {foreach from=$participants key=index item=participant}\n {if $isPrimary || {participant.id} === $participant.id}\n {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name}\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$participant.line_items item=line}\n <tr>\n <td {$tdfirstStyle}>{$line.title}</td>\n <td {$tdStyle} align=\"middle\">{$line.qty}</td>\n <td {$tdStyle}>{$line.unit_price|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td {$tdStyle}>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n {if !empty($pricesetFieldsCount)}<td {$tdStyle}>{$line.participant_count}</td> {/if}\n </tr>\n {/foreach}\n {if $isShowTax}\n <tr {$participantTotal}>\n <td colspan=3>{ts}Participant Total{/ts}</td>\n <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td>\n <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td>\n <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td>\n </tr>\n {/if}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n </td>\n </tr>\n\n {if !$isPrimary}\n {* Use the participant specific tax rate breakdown *}\n {assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}\n {/if}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($amounts) && empty($lineItem)}\n {foreach from=$amounts item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney:$currency} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n </td>\n </tr>\n {/if}\n {if $isPrimary}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td> </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n {foreach from=$customPr item=customValue key=customName}\n {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n {/if}\n {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n {foreach from=$customPos item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n{/if}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n {foreach from=$eachParticipant item=eachProfile key=pid}\n <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n {foreach from=$eachProfile item=val key=field}\n <tr>{foreach from=$val item=v key=f}\n <td {$labelStyle}>{$field}</td>\n <td {$valueStyle}>{$v}</td>\n {/foreach}\n </tr>\n {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n </table>\n {if !empty($event.allow_selfcancelxfer) }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`{participant.id}`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n </table>\n\n</body>\n</html>\n',1,827,'event_online_receipt',0,1,0,NULL), - (33,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n {$pay_later_receipt}\n{/if}\n\n Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})\n{if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n\n Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n Waitlisted:\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $is_pay_later}\n <p>\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n </p>\n {else}\n <p>\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n </p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p>\n {/if}\n\n <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$billing_name}<br />\n {$billing_street_address}<br />\n {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n <br/>\n {$email}\n </td>\n </tr>\n </table>\n{/if}\n{if $credit_card_type}\n <p> </p>\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n </td>\n </tr>\n </table>\n{/if}\n{if !empty($source)}\n <p> </p>\n {$source}\n{/if}\n <p> </p>\n <table width=\"700\">\n <thead>\n <tr>\n{if $line_items}\n <th style=\"text-align: left;\">\n Event\n </th>\n <th style=\"text-align: left;\">\n Participants\n </th>\n{/if}\n <th style=\"text-align: left;\">\n Price\n </th>\n <th style=\"text-align: left;\">\n Total\n </th>\n </tr>\n </thead>\n <tbody>\n {foreach from=$line_items item=line_item}\n <tr>\n <td style=\"width: 220px\">\n {$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})<br />\n {if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|nl2br}\n {/if}{*End of isShowLocation condition*}<br /><br />\n {$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n </td>\n <td style=\"width: 180px\">\n {$line_item.num_participants}\n {if $line_item.num_participants > 0}\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n {if $line_item.num_waiting_participants > 0}\n Waitlisted:<br/>\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n </td>\n <td style=\"width: 100px\">\n {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n <td style=\"width: 100px\">\n {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {/foreach}\n </tbody>\n <tfoot>\n {if $discounts}\n <tr>\n <td>\n </td>\n <td>\n </td>\n <td>\n Subtotal:\n </td>\n <td>\n {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {foreach from=$discounts key=myId item=i}\n <tr>\n <td>\n {$i.title}\n </td>\n <td>\n </td>\n <td>\n </td>\n <td>\n -{$i.amount}\n </td>\n </tr>\n {/foreach}\n {/if}\n <tr>\n{if $line_items}\n <td>\n </td>\n <td>\n </td>\n{/if}\n <td>\n <strong>Total:</strong>\n </td>\n <td>\n <strong> {$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n </td>\n </tr>\n </tfoot>\n </table>\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n </body>\n</html>\n',1,828,'event_registration_receipt',1,0,0,NULL), - (34,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n {$pay_later_receipt}\n{/if}\n\n Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})\n{if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n\n Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n Waitlisted:\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $is_pay_later}\n <p>\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n </p>\n {else}\n <p>\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n </p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p>\n {/if}\n\n <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$billing_name}<br />\n {$billing_street_address}<br />\n {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n <br/>\n {$email}\n </td>\n </tr>\n </table>\n{/if}\n{if $credit_card_type}\n <p> </p>\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n </td>\n </tr>\n </table>\n{/if}\n{if !empty($source)}\n <p> </p>\n {$source}\n{/if}\n <p> </p>\n <table width=\"700\">\n <thead>\n <tr>\n{if $line_items}\n <th style=\"text-align: left;\">\n Event\n </th>\n <th style=\"text-align: left;\">\n Participants\n </th>\n{/if}\n <th style=\"text-align: left;\">\n Price\n </th>\n <th style=\"text-align: left;\">\n Total\n </th>\n </tr>\n </thead>\n <tbody>\n {foreach from=$line_items item=line_item}\n <tr>\n <td style=\"width: 220px\">\n {$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})<br />\n {if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|nl2br}\n {/if}{*End of isShowLocation condition*}<br /><br />\n {$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n </td>\n <td style=\"width: 180px\">\n {$line_item.num_participants}\n {if $line_item.num_participants > 0}\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n {if $line_item.num_waiting_participants > 0}\n Waitlisted:<br/>\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n </td>\n <td style=\"width: 100px\">\n {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n <td style=\"width: 100px\">\n {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {/foreach}\n </tbody>\n <tfoot>\n {if $discounts}\n <tr>\n <td>\n </td>\n <td>\n </td>\n <td>\n Subtotal:\n </td>\n <td>\n {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {foreach from=$discounts key=myId item=i}\n <tr>\n <td>\n {$i.title}\n </td>\n <td>\n </td>\n <td>\n </td>\n <td>\n -{$i.amount}\n </td>\n </tr>\n {/foreach}\n {/if}\n <tr>\n{if $line_items}\n <td>\n </td>\n <td>\n </td>\n{/if}\n <td>\n <strong>Total:</strong>\n </td>\n <td>\n <strong> {$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n </td>\n </tr>\n </tfoot>\n </table>\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n </body>\n</html>\n',1,828,'event_registration_receipt',0,1,0,NULL), - (35,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {participant.role_id:label}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if !empty(\'{participant.register_date}\')}\n{ts}Registration Date{/ts}: {participant.register_date}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {participant.role_id:label}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if !empty(\'{participant.register_date}\')}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {participant.register_date}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,829,'participant_cancelled',1,0,0,NULL), - (36,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {participant.role_id:label}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if !empty(\'{participant.register_date}\')}\n{ts}Registration Date{/ts}: {participant.register_date}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {participant.role_id:label}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if !empty(\'{participant.register_date}\')}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {participant.register_date}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,829,'participant_cancelled',0,1,0,NULL), - (37,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n </td>\n </tr>\n {if !$isAdditional and $participant.id}\n <tr>\n <th {$headerStyle}>\n {ts}Confirm Your Registration{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n </td>\n </tr>\n {/if}\n {if $event.allow_selfcancelxfer }\n {ts}This event allows for{/ts}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n {/if}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if $event.location.phone.1.phone || $event.location.email.1.email}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if $event.is_public}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {if $event.allow_selfcancelxfer }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,830,'participant_confirm',1,0,0,NULL), - (38,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n </td>\n </tr>\n {if !$isAdditional and $participant.id}\n <tr>\n <th {$headerStyle}>\n {ts}Confirm Your Registration{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n </td>\n </tr>\n {/if}\n {if $event.allow_selfcancelxfer }\n {ts}This event allows for{/ts}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n {/if}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if $event.location.phone.1.phone || $event.location.email.1.email}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if $event.is_public}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {if $event.allow_selfcancelxfer }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,830,'participant_confirm',0,1,0,NULL), - (39,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,831,'participant_expired',1,0,0,NULL), - (40,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,831,'participant_expired',0,1,0,NULL), - (41,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,832,'participant_transferred',1,0,0,NULL), - (42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,832,'participant_transferred',0,1,0,NULL), - (43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{$senderMessage}</p>\n {if $generalLink}\n <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n {/if}\n {if $contribute}\n <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n {/if}\n {if $event}\n <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n {/if}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,833,'friend',1,0,0,NULL), - (44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{$senderMessage}</p>\n {if $generalLink}\n <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n {/if}\n {if $contribute}\n <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n {/if}\n {if $event}\n <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n {/if}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,833,'friend',0,1,0,NULL), - (45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$isShowLineItems}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {membership.membership_type_id:name}\n{/if}\n{if \'{membership.status_id:name}\' !== \'Cancelled\'}\n{if !$isShowLineItems}\n{ts}Membership Start Date{/ts}: {membership.start_date|crmDate:\"Full\"}\n{ts}Membership Expiration Date{/ts}: {membership.end_date|crmDate:\"Full\"}\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if {contribution.financial_type_id|boolean}}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|boolean}\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$lineItems item=line}\n{line.title} {$line.line_total|crmMoney|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.membership.start_date|string_format:\"%20s\"} {$line.membership.end_date|string_format:\"%20s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {contribution.tax_exclusive_amount}\n\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}: {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount}\n{/if}\n\n{ts}Amount{/ts}: {contribution.total_amount}\n{if {contribution.receive_date|boolean}}\n{ts}Contribution Date{/ts}: {contribution.receive_date}\n{/if}\n{if {contribution.payment_instrument_id|boolean}}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if {contribution.check_number|boolean}}\n{ts}Check Number{/ts}: {contribution.check_number|boolean}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-membership_receipt\"\n style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $receipt_text}\n <p>{$receipt_text|htmlize}</p>\n {else}\n <p>{ts}Thank you for this contribution.{/ts}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !$isShowLineItems}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {membership.membership_type_id:name}\n </td>\n </tr>\n {/if}\n {if \'{membership.status_id:name}\' !== \'Cancelled\'}\n {if !$isShowLineItems}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.start_date|crmDate:\"Full\"}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/if}\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n {if {contribution.financial_type_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n </tr>\n {/if}\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {/if}\n <td>\n {$line.membership.start_date|crmDate:\"Full\"}\n </td>\n <td>\n {$line.membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {if {contribution.receive_date|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date}\n </td>\n </tr>\n {/if}\n {if {contribution.payment_instrument_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if {contribution.check_number|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n {/if}\n {/if}\n </table>\n </td>\n </tr>\n\n {if !empty($isPrimary)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {$billingName}<br/>\n {$address}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$valueStyle}>\n {$credit_card_type}<br/>\n {$credit_card_number}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Expires{/ts}\n </td>\n <td {$valueStyle}>\n {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {/if}\n\n {if !empty($customValues)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Membership Options{/ts}\n </th>\n </tr>\n {foreach from=$customValues item=value key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,834,'membership_offline_receipt',1,0,0,NULL), - (46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$isShowLineItems}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {membership.membership_type_id:name}\n{/if}\n{if \'{membership.status_id:name}\' !== \'Cancelled\'}\n{if !$isShowLineItems}\n{ts}Membership Start Date{/ts}: {membership.start_date|crmDate:\"Full\"}\n{ts}Membership Expiration Date{/ts}: {membership.end_date|crmDate:\"Full\"}\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if {contribution.financial_type_id|boolean}}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|boolean}\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$lineItems item=line}\n{line.title} {$line.line_total|crmMoney|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.membership.start_date|string_format:\"%20s\"} {$line.membership.end_date|string_format:\"%20s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {contribution.tax_exclusive_amount}\n\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}: {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount}\n{/if}\n\n{ts}Amount{/ts}: {contribution.total_amount}\n{if {contribution.receive_date|boolean}}\n{ts}Contribution Date{/ts}: {contribution.receive_date}\n{/if}\n{if {contribution.payment_instrument_id|boolean}}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if {contribution.check_number|boolean}}\n{ts}Check Number{/ts}: {contribution.check_number|boolean}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-membership_receipt\"\n style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $receipt_text}\n <p>{$receipt_text|htmlize}</p>\n {else}\n <p>{ts}Thank you for this contribution.{/ts}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !$isShowLineItems}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {membership.membership_type_id:name}\n </td>\n </tr>\n {/if}\n {if \'{membership.status_id:name}\' !== \'Cancelled\'}\n {if !$isShowLineItems}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.start_date|crmDate:\"Full\"}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/if}\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n {if {contribution.financial_type_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n </tr>\n {/if}\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {/if}\n <td>\n {$line.membership.start_date|crmDate:\"Full\"}\n </td>\n <td>\n {$line.membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {if {contribution.receive_date|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date}\n </td>\n </tr>\n {/if}\n {if {contribution.payment_instrument_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if {contribution.check_number|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n {/if}\n {/if}\n </table>\n </td>\n </tr>\n\n {if !empty($isPrimary)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {$billingName}<br/>\n {$address}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$valueStyle}>\n {$credit_card_type}<br/>\n {$credit_card_number}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Expires{/ts}\n </td>\n <td {$valueStyle}>\n {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {/if}\n\n {if !empty($customValues)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Membership Options{/ts}\n </th>\n </tr>\n {foreach from=$customValues item=value key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,834,'membership_offline_receipt',0,1,0,NULL), - (47,'Memberships - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n {if $membership_assign && !$useForMember}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_name}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n\n {if $amount}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n\n {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n {if $amount && !$is_separate_payment }\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total{/ts}\n </td>\n <td {$valueStyle}>\n {$amount+$membership_amount|crmMoney}\n </td>\n </tr>\n {/if}\n\n {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {$line.description|truncate:30:\"...\"}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n\n {else}\n {if $useForMember && $lineItem and empty($is_quick_config)}\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if ($line.tax_rate || $line.tax_amount != \"\")}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {/if}\n <td>\n {$line.start_date}\n </td>\n <td>\n {$line.end_date}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n {if !empty($dataArray)}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {else}\n <td> {ts}NO{/ts} {$taxTerm}</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n\n {elseif isset($membership_amount)}\n\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n\n\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_monetary) and !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($membership_trx_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_trx_id}\n </td>\n </tr>\n {/if}\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This membership will be renewed automatically.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,835,'membership_online_receipt',1,0,0,NULL), - (48,'Memberships - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)}\n {$customName}: {$customValue}\n{/if}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n {if $membership_assign && !$useForMember}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_name}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n\n {if $amount}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n\n {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n {if $amount && !$is_separate_payment }\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total{/ts}\n </td>\n <td {$valueStyle}>\n {$amount+$membership_amount|crmMoney}\n </td>\n </tr>\n {/if}\n\n {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {$line.description|truncate:30:\"...\"}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n\n {else}\n {if $useForMember && $lineItem and empty($is_quick_config)}\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if ($line.tax_rate || $line.tax_amount != \"\")}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {/if}\n <td>\n {$line.start_date}\n </td>\n <td>\n {$line.end_date}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n {if !empty($dataArray)}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {else}\n <td> {ts}NO{/ts} {$taxTerm}</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n\n {elseif isset($membership_amount)}\n\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n\n\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_monetary) and !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($membership_trx_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_trx_id}\n </td>\n </tr>\n {/if}\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This membership will be renewed automatically.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,835,'membership_online_receipt',0,1,0,NULL), - (49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Status{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_status}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,836,'membership_autorenew_cancelled',1,0,0,NULL), - (50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Status{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_status}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,836,'membership_autorenew_cancelled',0,1,0,NULL), - (51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_billing',1,0,0,NULL), - (52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_billing',0,1,0,NULL), - (53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n',' <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr>\n <td>\n <p>{ts}Test-drive Email / Receipt{/ts}</p>\n <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n </td>\n </tr>\n </table>\n',1,838,'test_preview',1,0,0,NULL), - (54,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n',' <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr>\n <td>\n <p>{ts}Test-drive Email / Receipt{/ts}</p>\n <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n </td>\n </tr>\n </table>\n',1,838,'test_preview',0,1,0,NULL), - (55,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Thank you for your generous pledge.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$total_pledge_amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Payment Schedule{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n {if $frequency_day}\n <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n {/if}\n </td>\n </tr>\n\n {if $payments}\n {assign var=\"count\" value=\"1\"}\n {foreach from=$payments item=payment}\n <tr>\n <td {$labelStyle}>\n {ts 1=$count}Payment %1{/ts}\n </td>\n <td {$valueStyle}>\n {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n </td>\n </tr>\n {assign var=\"count\" value=`$count+1`}\n {/foreach}\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n </td>\n </tr>\n\n {if $customGroup}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,839,'pledge_acknowledge',1,0,0,NULL), - (56,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Thank you for your generous pledge.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$total_pledge_amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Payment Schedule{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n {if $frequency_day}\n <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n {/if}\n </td>\n </tr>\n\n {if $payments}\n {assign var=\"count\" value=\"1\"}\n {foreach from=$payments item=payment}\n <tr>\n <td {$labelStyle}>\n {ts 1=$count}Payment %1{/ts}\n </td>\n <td {$valueStyle}>\n {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n </td>\n </tr>\n {assign var=\"count\" value=`$count+1`}\n {/foreach}\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n </td>\n </tr>\n\n {if $customGroup}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,839,'pledge_acknowledge',0,1,0,NULL), - (57,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'} Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank you for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Payment Due{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Amount Due{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_due|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n {if $contribution_page_id}\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n {else}\n <p>{ts}Please mail your payment to{/ts}: {domain.address}</p>\n {/if}\n </td>\n </tr>\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_paid|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n <p>{ts}Thank you for your generous support.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,840,'pledge_reminder',1,0,0,NULL), - (58,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'} Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank you for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Payment Due{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Amount Due{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_due|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n {if $contribution_page_id}\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n {else}\n <p>{ts}Please mail your payment to{/ts}: {domain.address}</p>\n {/if}\n </td>\n </tr>\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_paid|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n <p>{ts}Thank you for your generous support.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,840,'pledge_reminder',0,1,0,NULL), - (59,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Submitted For{/ts}\n </td>\n <td {$valueStyle}>\n {$displayName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$currentDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contact Summary{/ts}\n </td>\n <td {$valueStyle}>\n {$contactLink}\n </td>\n </tr>\n\n <tr>\n <th {$headerStyle}>\n {$grouptitle}\n </th>\n </tr>\n\n {foreach from=$values item=value key=valueName}\n <tr>\n <td {$labelStyle}>\n {$valueName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,841,'uf_notify',1,0,0,NULL), - (60,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Submitted For{/ts}\n </td>\n <td {$valueStyle}>\n {$displayName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$currentDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contact Summary{/ts}\n </td>\n <td {$valueStyle}>\n {$contactLink}\n </td>\n </tr>\n\n <tr>\n <th {$headerStyle}>\n {$grouptitle}\n </th>\n </tr>\n\n {foreach from=$values item=value key=valueName}\n <tr>\n <td {$labelStyle}>\n {$valueName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,841,'uf_notify',0,1,0,NULL), - (61,'Petition - signature added','Thank you for signing {survey.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {survey.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {survey.title}.</p>\n\n{capture assign=petitionURL}{crmURL p=\'civicrm/petition/sign\' q=\"sid={survey.id}\" a=1 fe=1 h=1}{/capture}\n{include file=\"CRM/common/SocialNetwork.tpl\" url=$petitionURL title=\'{survey.title}\' pageURL=$petitionURL petition_id=\'{survey.id}\' noscript=true emailMode=true}\n',1,842,'petition_sign',1,0,0,NULL), - (62,'Petition - signature added','Thank you for signing {survey.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {survey.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {survey.title}.</p>\n\n{capture assign=petitionURL}{crmURL p=\'civicrm/petition/sign\' q=\"sid={survey.id}\" a=1 fe=1 h=1}{/capture}\n{include file=\"CRM/common/SocialNetwork.tpl\" url=$petitionURL title=\'{survey.title}\' pageURL=$petitionURL petition_id=\'{survey.id}\' noscript=true emailMode=true}\n',1,842,'petition_sign',0,1,0,NULL), - (63,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,843,'petition_confirmation_needed',1,0,0,NULL), - (64,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,843,'petition_confirmation_needed',0,1,0,NULL), + (1,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Activity Summary{/ts} - {$activityTypeName}\n </th>\n </tr>\n {if !empty($isCaseActivity)}\n <tr>\n <td {$labelStyle}>\n {ts}Your Case Role(s){/ts}\n </td>\n <td {$valueStyle}>\n {$contact.role|default:\'\'}\n </td>\n </tr>\n {if !empty($manageCaseURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n </td>\n </tr>\n {/if}\n {/if}\n {if !empty($editActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {if !empty($viewActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {foreach from=$activity.fields item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n\n {if !empty($activity.customGroups)}\n {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n <tr>\n <th {$headerStyle}>\n {$customGroupName}\n </th>\n </tr>\n {foreach from=$customGroup item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n',1,813,'case_activity',1,0,0,NULL), + (2,'Cases - Send Copy of an Activity','{if !empty($idHash)}[case #{$idHash}]{/if} {$activitySubject}\n','===========================================================\n{ts}Activity Summary{/ts} - {$activityTypeName}\n===========================================================\n{if !empty($isCaseActivity)}\n{ts}Your Case Role(s){/ts} : {$contact.role|default:\'\'}\n{if !empty($manageCaseURL)}\n{ts}Manage Case{/ts} : {$manageCaseURL}\n{/if}\n{/if}\n\n{if !empty($editActURL)}\n{ts}Edit activity{/ts} : {$editActURL}\n{/if}\n{if !empty($viewActURL)}\n{ts}View activity{/ts} : {$viewActURL}\n{/if}\n\n{foreach from=$activity.fields item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{if !empty($activity.customGroups)}\n{foreach from=$activity.customGroups key=customGroupName item=customGroup}\n==========================================================\n{$customGroupName}\n==========================================================\n{foreach from=$customGroup item=field}\n{if $field.type eq \'Date\'}\n{$field.label} : {$field.value|crmDate:$config->dateformatDatetime}\n{else}\n{$field.label} : {$field.value}\n{/if}\n{/foreach}\n\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Activity Summary{/ts} - {$activityTypeName}\n </th>\n </tr>\n {if !empty($isCaseActivity)}\n <tr>\n <td {$labelStyle}>\n {ts}Your Case Role(s){/ts}\n </td>\n <td {$valueStyle}>\n {$contact.role|default:\'\'}\n </td>\n </tr>\n {if !empty($manageCaseURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$manageCaseURL}\" title=\"{ts}Manage Case{/ts}\">{ts}Manage Case{/ts}</a>\n </td>\n </tr>\n {/if}\n {/if}\n {if !empty($editActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$editActURL}\" title=\"{ts}Edit activity{/ts}\">{ts}Edit activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {if !empty($viewActURL)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <a href=\"{$viewActURL}\" title=\"{ts}View activity{/ts}\">{ts}View activity{/ts}</a>\n </td>\n </tr>\n {/if}\n {foreach from=$activity.fields item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n\n {if !empty($activity.customGroups)}\n {foreach from=$activity.customGroups key=customGroupName item=customGroup}\n <tr>\n <th {$headerStyle}>\n {$customGroupName}\n </th>\n </tr>\n {foreach from=$customGroup item=field}\n <tr>\n <td {$labelStyle}>\n {$field.label}\n </td>\n <td {$valueStyle}>\n {if $field.type eq \'Date\'}\n {$field.value|crmDate:$config->dateformatDatetime}\n {else}\n {$field.value}\n {/if}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n </table>\n </td>\n </tr>\n </table>\n</body>\n</html>\n',1,813,'case_activity',0,1,0,NULL), + (3,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Organization Name{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Email{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfEmail}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Contact ID{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfID}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n </td>\n </tr>\n {if $receiptMessage}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Copy of Contribution Receipt{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {* FIXME: the below is most probably not HTML-ised *}\n {$receiptMessage}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n {/if}\n </table>\n</body>\n</html>\n',1,814,'contribution_dupalert',1,0,0,NULL), + (4,'Contributions - Duplicate Organization Alert','{ts}CiviContribute Alert: Possible Duplicate Contact Record{/ts} - {contact.display_name}\n','{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}\n{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}\n\n{ts}Organization Name{/ts}: {$onBehalfName}\n{ts}Organization Email{/ts}: {$onBehalfEmail}\n{ts}Organization Contact ID{/ts}: {$onBehalfID}\n\n{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}\n\n{if $receiptMessage}\n###########################################################\n{ts}Copy of Contribution Receipt{/ts}\n\n###########################################################\n{$receiptMessage}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{ts}A contribution / membership signup was made on behalf of the organization listed below.{/ts}</p>\n <p>{ts}The information provided matched multiple existing database records based on the configured Duplicate Matching Rules for your site.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Organization Name{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Email{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfEmail}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Organization Contact ID{/ts}\n </td>\n <td {$valueStyle}>\n {$onBehalfID}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <p>{ts}If you think this may be a duplicate contact which should be merged with an existing record - Go to \"Contacts >> Find and Merge Duplicate Contacts\". Use the strict rule for Organizations to find the potential duplicates and merge them if appropriate.{/ts}</p>\n </td>\n </tr>\n {if $receiptMessage}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Copy of Contribution Receipt{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {* FIXME: the below is most probably not HTML-ised *}\n {$receiptMessage}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n {/if}\n </table>\n</body>\n</html>\n',1,814,'contribution_dupalert',0,1,0,NULL), + (5,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if {contribution.contribution_page_id.receipt_text|boolean}}\n{contribution.contribution_page_id.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}\n{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if \'{contribution.financial_type_id}\'}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"}\n{/foreach}\n{/if}\n\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax{/ts} : {contribution.tax_exclusive_amount}\n{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts} : {contribution.tax_amount}\n{/if}\n{ts}Total Amount{/ts} : {contribution.total_amount}\n{if \'{contribution.receive_date}\'}\n{ts}Contribution Date{/ts}: {contribution.receive_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.receipt_date}\'}\n{ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:\"shortdate\"}\n{/if}\n{if {contribution.payment_instrument_id|boolean}}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if \'{contribution.check_number}\'}\n{ts}Check Number{/ts}: {contribution.check_number}\n{/if}\n{/if}\n{if \'{contribution.trxn_id}\'}\n{ts}Transaction ID{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>\n {if {contribution.contribution_page_id.receipt_text|boolean}}{contribution.contribution_page_id.receipt_text}\n {else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n </p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contributor Name{/ts}\n </td>\n <td {$valueStyle}>\n {contact.display_name}\n </td>\n </tr>\n <tr>\n {if \'{contribution.financial_type_id}\'}\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n {/if}\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>\n {$line.title}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n\n {if \'{contribution.receive_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if \'{contribution.receipt_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Receipt Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receipt_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if {contribution.payment_instrument_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if \'{contribution.check_number}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if \'{contribution.trxn_id}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction ID{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($ccContribution)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($formValues.product_name)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$formValues.product_name}\n </td>\n </tr>\n {if $formValues.product_option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_option}\n </td>\n </tr>\n {/if}\n {if $formValues.product_sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_sku}\n </td>\n </tr>\n {/if}\n {if !empty($fulfilled_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Sent{/ts}\n </td>\n <td {$valueStyle}>\n {$fulfilled_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,815,'contribution_offline_receipt',1,0,0,NULL), + (6,'Contributions - Receipt (off-line)','{ts}Contribution Receipt{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if {contribution.contribution_page_id.receipt_text|boolean}}\n{contribution.contribution_page_id.receipt_text}\n{else}{ts}Below you will find a receipt for this contribution.{/ts}\n{/if}\n\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{ts}Contributor{/ts}: {contact.display_name}\n{if \'{contribution.financial_type_id}\'}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"}\n{/foreach}\n{/if}\n\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax{/ts} : {contribution.tax_exclusive_amount}\n{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts} : {contribution.tax_amount}\n{/if}\n{ts}Total Amount{/ts} : {contribution.total_amount}\n{if \'{contribution.receive_date}\'}\n{ts}Contribution Date{/ts}: {contribution.receive_date|crmDate:\"shortdate\"}\n{/if}\n{if \'{contribution.receipt_date}\'}\n{ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:\"shortdate\"}\n{/if}\n{if {contribution.payment_instrument_id|boolean}}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if \'{contribution.check_number}\'}\n{ts}Check Number{/ts}: {contribution.check_number}\n{/if}\n{/if}\n{if \'{contribution.trxn_id}\'}\n{ts}Transaction ID{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($ccContribution)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($formValues.product_name)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$formValues.product_name}\n{if $formValues.product_option}\n{ts}Option{/ts}: {$formValues.product_option}\n{/if}\n{if $formValues.product_sku}\n{ts}SKU{/ts}: {$formValues.product_sku}\n{/if}\n{if !empty($fulfilled_date)}\n{ts}Sent{/ts}: {$fulfilled_date|crmDate}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>\n {if {contribution.contribution_page_id.receipt_text|boolean}}{contribution.contribution_page_id.receipt_text}\n {else}{ts}Below you will find a receipt for this contribution.{/ts}{/if}\n </p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contributor Name{/ts}\n </td>\n <td {$valueStyle}>\n {contact.display_name}\n </td>\n </tr>\n <tr>\n {if \'{contribution.financial_type_id}\'}\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n {/if}\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>\n {$line.title}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n\n {if \'{contribution.receive_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if \'{contribution.receipt_date}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Receipt Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receipt_date|crmDate:\"shortdate\"}\n </td>\n </tr>\n {/if}\n\n {if {contribution.payment_instrument_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if \'{contribution.check_number}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if \'{contribution.trxn_id}\'}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction ID{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($ccContribution)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($formValues.product_name)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$formValues.product_name}\n </td>\n </tr>\n {if $formValues.product_option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_option}\n </td>\n </tr>\n {/if}\n {if $formValues.product_sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$formValues.product_sku}\n </td>\n </tr>\n {/if}\n {if !empty($fulfilled_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Sent{/ts}\n </td>\n <td {$valueStyle}>\n {$fulfilled_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,815,'contribution_offline_receipt',0,1,0,NULL), + (7,'Contributions - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if {contribution.trxn_id|boolean}}\n{ts}Transaction #{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>{$line.qty}</td>\n <td>{$line.unit_price|crmMoney:$currency}</td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n\n {/if}\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {else}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n {/if}\n\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if {contribution.trxn_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This is a recurring contribution.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {elseif !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($isShare)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,816,'contribution_online_receipt',1,0,0,NULL), + (8,'Contributions - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Contribution Information{/ts}\n\n===========================================================\n{if $isShowLineItems}\n\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$lineItems item=line}\n{capture assign=ts_item}{$line.title}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}}{$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} : {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n {/foreach}\n{/if}\n\n{if $isShowTax}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount|crmMoney}\n{/if}\n\n{ts}Total Amount{/ts}: {contribution.total_amount}\n{else}\n{ts}Amount{/ts}: {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n{/if}\n{/if}\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if {contribution.trxn_id|boolean}}\n{ts}Transaction #{/ts}: {contribution.trxn_id}\n{/if}\n\n{if !empty($is_recur)}\n{ts}This is a recurring contribution.{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts}You can cancel future contributions at:{/ts}\n\n{$cancelSubscriptionUrl}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts}You can update billing details for this recurring contribution at:{/ts}\n\n{$updateSubscriptionBillingUrl}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts}You can update recurring contribution amount or change the number of installments for this recurring contribution at:{/ts}\n\n{$updateSubscriptionUrl}\n\n{/if}\n{/if}\n\n{if $honor_block_is_active}\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n{elseif !empty($softCreditTypes) and !empty($softCredits)}\n{foreach from=$softCreditTypes item=softCreditType key=n}\n===========================================================\n{$softCreditType}\n===========================================================\n{foreach from=$softCredits.$n item=value key=label}\n{$label}: {$value}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or Email*}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium )}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n<table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n</table>\n<table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Contribution Information{/ts}\n </th>\n </tr>\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>{$line.qty}</td>\n <td>{$line.unit_price|crmMoney:$currency}</td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>{$line.unit_price*$line.qty|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts} Amount before Tax : {/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n\n {/if}\n {if $isShowTax}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {else}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if \'{contribution.amount_level}\'} - {contribution.amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n {/if}\n\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if {contribution.trxn_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This is a recurring contribution.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel future contributions by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {elseif !empty($softCreditTypes) and !empty($softCredits)}\n {foreach from=$softCreditTypes item=softCreditType key=n}\n <tr>\n <th {$headerStyle}>\n {$softCreditType}\n </th>\n </tr>\n {foreach from=$softCredits.$n item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($isShare)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contributionPageId`\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$contributionUrl title=$title pageURL=$contributionUrl}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney:$currency}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,816,'contribution_online_receipt',0,1,0,NULL), + (9,'Contributions - Invoice','{if $title}\n {if $component}\n {if $component == \'event\'}\n {ts 1=$title}Event Registration Invoice: %1{/ts}\n {else}\n {ts 1=$title}Contribution Invoice: %1{/ts}\n {/if}\n {/if}\n{else}\n {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n {if $config->empoweredBy}\n <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{domain.empowered_by_civicrm_image_url}\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n {if $email_comment}\n <tr>\n <td><font size=\"1\" colspan=\"3\">{$email_comment}</font></td>\n </tr>\n {/if}\n <tr>\n <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{domain.name}</font></b></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.country_id:label}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{domain.email}</font> </td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td valign=\"top\"><font size=\"1\" align=\"right\">{domain.phone}</font> </td>\n </tr>\n </table>\n\n <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td style=\"text-align:left;nowrap\"><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}-{/ts}{/if}</font></td>\n {/if}\n <td style=\"text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n {if \'{contribution.contribution_status_id:name}\' == \'Refunded\'}\n {ts}Amount Credited{/ts}\n {else}\n {ts}Amount Paid{/ts}\n {/if}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n </tr>\n <tr>\n <td colspan=\"5\"></td>\n </tr>\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <tr>\n <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n <td colspan=\"2\"></td>\n </tr>\n {/if}\n </table>\n\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n <tr>\n <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/>\n <font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n {domain.name}<br />\n {domain.street_address} {domain.supplemental_address_1}<br />\n {domain.supplemental_address_2} {domain.state_province_id:label}<br />\n {domain.city} {domain.postal_code}<br />\n {domain.country_id:label}<br />\n {domain.email}</div>\n {domain.phone}<br />\n </font>\n <br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n </td>\n <td width=\"40%\">\n <table cellpadding=\"5\" cellspacing=\"0\" width=\"100%\" border=\"0\">\n <tr>\n <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n </tr>\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n {if $is_pay_later == 1}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {else}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n </tr>\n {/if}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n </tr>\n <tr>\n <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n {if \'{contribution.contribution_status_id:name}\' === \'Refunded\' || \'{contribution.contribution_status_id:name}\' === \'Cancelled\'}\n {if $config->empoweredBy}\n <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n\n <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n <tr>\n <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.name}</font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.country_id:label}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.email}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td><font size=\"1\" align=\"right\">\n {domain.phone}\n </font></td>\n </tr>\n </table>\n\n <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td colspan=\"2\">\n <table>\n <tr>\n <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line key=index}\n <tr><td colspan=\"5\"><hr {if $index == 0}size=\"3\" style=\"color:#000;\"{else}style=\"color:#F5F5F5;\"{/if}></hr></td></tr>\n <tr>\n <td style =\"text-align:left;\" ><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}No %1{/ts}{/if}</font></td>\n {/if}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {if \'{contribution.is_pay_later}\' == 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n </tr>\n {/if}\n <br/><br/><br/>\n <tr>\n <td colspan=\"3\"></td>\n </tr>\n <tr>\n <td></td>\n <td colspan=\"3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n <td width=\"40%\">\n <table align=\"right\">\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n </tr>\n <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n </div>\n </body>\n</html>\n',1,817,'contribution_invoice_receipt',1,0,0,NULL), + (10,'Contributions - Invoice','{if $title}\n {if $component}\n {if $component == \'event\'}\n {ts 1=$title}Event Registration Invoice: %1{/ts}\n {else}\n {ts 1=$title}Contribution Invoice: %1{/ts}\n {/if}\n {/if}\n{else}\n {ts}Invoice{/ts}\n{/if}\n - {contact.display_name}\n','{ts}Contribution Invoice{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n <div style=\"padding-top:100px;margin-right:50px;border-style: none;\">\n {if $config->empoweredBy}\n <table style=\"margin-top:5px;padding-bottom:50px;\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{domain.empowered_by_civicrm_image_url}\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n <table style=\"font-family: Arial, Verdana, sans-serif;\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n {if $email_comment}\n <tr>\n <td><font size=\"1\" colspan=\"3\">{$email_comment}</font></td>\n </tr>\n {/if}\n <tr>\n <td width=\"30%\"><b><font size=\"4\" align=\"center\">{ts}INVOICE{/ts}</font></b></td>\n <td width=\"50%\" valign=\"bottom\"><b><font size=\"1\" align=\"center\">{ts}Invoice Date:{/ts}</font></b></td>\n <td valign=\"bottom\" style=\"white-space: nowrap\"><b><font size=\"1\" align=\"right\">{domain.name}</font></b></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td><b><font size=\"1\" align=\"right\">{ts}Invoice Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.country_id:label}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\"> {$country}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td valign=\"top\" style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{domain.email}</font> </td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td valign=\"top\"><font size=\"1\" align=\"right\">{domain.phone}</font> </td>\n </tr>\n </table>\n\n <table style=\"padding-top:75px;font-family: Arial, Verdana, sans-serif;\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\">\n <tr>\n <th style=\"text-align:left;font-weight:bold;width:100%\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"text-align:right;font-weight:bold;white-space: nowrap\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td style=\"text-align:left;nowrap\"><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}-{/ts}{/if}</font></td>\n {/if}\n <td style=\"text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"text-align:right\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\"><font size=\"1\">\n {if \'{contribution.contribution_status_id:name}\' == \'Refunded\'}\n {ts}Amount Credited{/ts}\n {else}\n {ts}Amount Paid{/ts}\n {/if}\n </font></td>\n <td style=\"text-align:right;\"><font size=\"1\">{$amountPaid|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"text-align:right;white-space: nowrap\" ><b><font size=\"1\">{ts}AMOUNT DUE:{/ts}</font></b></td>\n <td style=\"text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n </tr>\n <tr>\n <td colspan=\"5\"></td>\n </tr>\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <tr>\n <td colspan=\"3\"><b><font size=\"1\" align=\"center\">{ts 1=$dueDate}DUE DATE: %1{/ts}</font></b></td>\n <td colspan=\"2\"></td>\n </tr>\n {/if}\n </table>\n\n {if \'{contribution.contribution_status_id:name}\' == \'Pending\' && \'{contribution.is_pay_later}\' == 1}\n <table style=\"margin-top:5px;\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:5px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"0\" id=\"desc\">\n <tr>\n <td width=\"60%\"><b><font size=\"4\" align=\"right\">{ts}PAYMENT ADVICE{/ts}</font></b><br/><br/>\n <font size=\"1\" align=\"left\"><b>{ts}To:{/ts}</b><div style=\"width:24em;word-wrap:break-word;\">\n {domain.name}<br />\n {domain.street_address} {domain.supplemental_address_1}<br />\n {domain.supplemental_address_2} {domain.state_province_id:label}<br />\n {domain.city} {domain.postal_code}<br />\n {domain.country_id:label}<br />\n {domain.email}</div>\n {domain.phone}<br />\n </font>\n <br/><br/><font size=\"1\" align=\"left\">{$notes}</font>\n </td>\n <td width=\"40%\">\n <table cellpadding=\"5\" cellspacing=\"0\" width=\"100%\" border=\"0\">\n <tr>\n <td width=\"100%\"><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td style=\"white-space: nowrap\"><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Invoice Number:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.invoice_number}</font></td>\n </tr>\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td></tr>\n {if $is_pay_later == 1}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {else}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Amount Due:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amountDue|crmMoney:$currency}</font></td>\n </tr>\n {/if}\n <tr>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Due Date:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{$dueDate}</font></td>\n </tr>\n <tr>\n <td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n {if \'{contribution.contribution_status_id:name}\' === \'Refunded\' || \'{contribution.contribution_status_id:name}\' === \'Cancelled\'}\n {if $config->empoweredBy}\n <table style=\"margin-top:2px;padding-left:7px;page-break-before: always;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/civi99.png\" height=\"34px\" width=\"99px\"></td>\n </tr>\n </table>\n {/if}\n\n <table style=\"font-family: Arial, Verdana, sans-serif\" width=\"100%\" height=\"100\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\">\n <tr>\n <td style=\"padding-left:15px;\"><b><font size=\"4\" align=\"center\">{ts}CREDIT NOTE{/ts}</font></b></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Date:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">{domain.name}</font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{contact.display_name}{if \'{contact.current_employer}\'} ({contact.current_employer}){/if}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{$invoice_date}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.street_address}\n {domain.supplemental_address_1}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$street_address} {$supplemental_address_1}</font></td>\n <td style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Credit Note Number:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.supplemental_address_2}\n {domain.state_province_id:label}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"center\">{$supplemental_address_2} {$stateProvinceAbbreviation}</font></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.city}\n {domain.postal_code}\n </font></td>\n </tr>\n <tr>\n <td style=\"padding-left:17px;\"><font size=\"1\" align=\"right\">{$city} {$postal_code}</font></td>\n <td height=\"10\" style=\"padding-left:30px;\"><b><font size=\"1\" align=\"right\">{ts}Reference:{/ts}</font></b></td>\n <td><font size=\"1\" align=\"right\">\n {domain.country_id:label}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td style=\"padding-left:30px;\"><font size=\"1\" align=\"right\">{contribution.source}</font></td>\n <td><font size=\"1\" align=\"right\">\n {domain.email}\n </font></td>\n </tr>\n <tr>\n <td></td>\n <td></td>\n <td><font size=\"1\" align=\"right\">\n {domain.phone}\n </font></td>\n </tr>\n </table>\n\n <table style=\"margin-top:75px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td colspan=\"2\">\n <table>\n <tr>\n <th style=\"padding-right:28px;text-align:left;font-weight:bold;width:200px;\"><font size=\"1\">{ts}Description{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Quantity{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts}Unit Price{/ts}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{domain.tax_term}</font></th>\n <th style=\"padding-left:28px;text-align:right;font-weight:bold;\"><font size=\"1\">{ts 1=$currency}Amount %1{/ts}</font></th>\n </tr>\n {foreach from=$lineItems item=line key=index}\n <tr><td colspan=\"5\"><hr {if $index == 0}size=\"3\" style=\"color:#000;\"{else}style=\"color:#F5F5F5;\"{/if}></hr></td></tr>\n <tr>\n <td style =\"text-align:left;\" ><font size=\"1\">\n {$line.title}\n </font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.qty}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.unit_price|crmMoney:$currency}</font></td>\n {if $line.tax_amount != \'\'}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if $line.tax_rate}{$line.tax_rate|crmNumberFormat}%{/if}</font></td>\n {else}\n <td style=\"padding-left:28px;text-align:right\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\'}No %1{/ts}{/if}</font></td>\n {/if}\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$line.line_total|crmMoney:\'{contribution.currency}\'}</font></td>\n </tr>\n {/foreach}\n <tr><td colspan=\"5\" style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}Sub Total{/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$subTotal|crmMoney:$currency}</font></td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n {if $taxRate != 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{if \'{domain.tax_term}\'}{ts 1=\'{domain.tax_term}\' 2=$taxRate|crmNumberFormat}TOTAL %1 %2%{/ts}{/if}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\" align=\"right\">{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</font> </td>\n </tr>\n {/if}\n {/foreach}\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts 1=$currency}TOTAL %1{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n {if \'{contribution.is_pay_later}\' == 0}\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{ts}LESS Credit to invoice(s){/ts}</font></td>\n <td style=\"padding-left:28px;text-align:right;\"><font size=\"1\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td colspan=\"2\"><hr></hr></td>\n </tr>\n <tr>\n <td colspan=\"3\"></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{ts}REMAINING CREDIT{/ts}</font></b></td>\n <td style=\"padding-left:28px;text-align:right;\"><b><font size=\"1\">{$amountDue|crmMoney:$currency}</font></b></td>\n <td style=\"padding-left:28px;\"><font size=\"1\" align=\"right\"></font></td>\n </tr>\n {/if}\n <br/><br/><br/>\n <tr>\n <td colspan=\"3\"></td>\n </tr>\n <tr>\n <td></td>\n <td colspan=\"3\"></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n\n <table width=\"100%\" style=\"margin-top:5px;padding-right:45px;\">\n <tr>\n <td><img src=\"{$resourceBase}/i/contribute/cut_line.png\" height=\"15\" width=\"100%\"></td>\n </tr>\n </table>\n\n <table style=\"margin-top:6px;font-family: Arial, Verdana, sans-serif\" width=\"100%\" border=\"0\" cellpadding=\"5\" cellspacing=\"5\" id=\"desc\">\n <tr>\n <td width=\"60%\"><font size=\"4\" align=\"right\"><b>{ts}CREDIT ADVICE{/ts}</b><br/><br /><div style=\"font-size:10px;max-width:300px;\">{ts}Please do not pay on this advice. Deduct the amount of this Credit Note from your next payment to us{/ts}</div><br/></font></td>\n <td width=\"40%\">\n <table align=\"right\">\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Customer:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contact.display_name}</font></td>\n </tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Note#:{/ts}</font></td>\n <td><font size=\"1\" align=\"right\">{contribution.creditnote_id}</font></td>\n </tr>\n <tr><td colspan=\"5\"style=\"color:#F5F5F5;\"><hr></hr></td></tr>\n <tr>\n <td colspan=\"2\"></td>\n <td><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{ts}Credit Amount:{/ts}</font></td>\n <td width=\'50px\'><font size=\"1\" align=\"right\" style=\"font-weight:bold;\">{$amount|crmMoney:$currency}</font></td>\n </tr>\n </table>\n </td>\n </tr>\n </table>\n {/if}\n\n </div>\n </body>\n</html>\n',1,817,'contribution_invoice_receipt',0,1,0,NULL), + (11,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n </td>\n </tr>\n\n <tr>\n <td> </td>\n </tr>\n\n {if $recur_txnType eq \'START\'}\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {else}\n <tr>\n <td>\n <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {elseif $recur_txnType eq \'END\'}\n\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n </td>\n </tr>\n {else}\n <tr>\n <td>\n <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_start_date|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_end_date|crmDate}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n {/if}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,818,'contribution_recurring_notify',1,0,0,NULL), + (12,'Contributions - Recurring Start and End Notification','{ts}Recurring Contribution Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $recur_txnType eq \'START\'}\n{if $auto_renew_membership}\n{ts}Thanks for your auto renew membership sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s).{/ts}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{else}\n{ts}Thanks for your recurring contribution sign-up.{/ts}\n\n\n{ts 1=$recur_frequency_interval 2=$recur_frequency_unit 3=$recur_installments}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments } {ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.\n\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{if $cancelSubscriptionUrl}\n{ts 1=$cancelSubscriptionUrl}You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n\n{if $updateSubscriptionUrl}\n{ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n\n{/if}\n{/if}\n\n{elseif $recur_txnType eq \'END\'}\n{if $auto_renew_membership}\n{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}\n\n\n{else}\n{ts}Your recurring contribution term has ended.{/ts}\n\n\n{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}\n\n\n==================================================\n{ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n\n==================================================\n{ts}Start Date{/ts}: {$recur_start_date|crmDate}\n\n{ts}End Date{/ts}: {$recur_end_date|crmDate}\n\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n </td>\n </tr>\n\n <tr>\n <td> </td>\n </tr>\n\n {if $recur_txnType eq \'START\'}\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Thanks for your auto renew membership sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This membership will be automatically renewed every %1 %2(s). {/ts}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {else}\n <tr>\n <td>\n <p>{ts}Thanks for your recurring contribution sign-up.{/ts}</p>\n <p>{ts 1=$recur_frequency_interval 2=$recur_frequency_unit}This recurring contribution will be automatically processed every %1 %2(s){/ts}{if $recur_installments }{ts 1=$recur_installments} for a total of %1 installment(s){/ts}{/if}.</p>\n <p>{ts}Start Date{/ts}: {$recur_start_date|crmDate}</p>\n </td>\n </tr>\n {if $cancelSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$cancelSubscriptionUrl} You can cancel the recurring contribution option by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {if $updateSubscriptionUrl}\n <tr>\n <td {$labelStyle}>\n {ts 1=$updateSubscriptionUrl}You can update recurring contribution amount or change the number of installments details for this recurring contribution by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {elseif $recur_txnType eq \'END\'}\n\n {if $auto_renew_membership}\n <tr>\n <td>\n <p>{ts}Your auto renew membership sign-up has ended and your membership will not be automatically renewed.{/ts}</p>\n </td>\n </tr>\n {else}\n <tr>\n <td>\n <p>{ts}Your recurring contribution term has ended.{/ts}</p>\n <p>{ts 1=$recur_installments}You have successfully completed %1 recurring contributions. Thank you.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts 1=$recur_installments}Interval of Subscription for %1 installment(s){/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_start_date|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$recur_end_date|crmDate}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n {/if}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,818,'contribution_recurring_notify',0,1,0,NULL), + (13,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,819,'contribution_recurring_cancelled',1,0,0,NULL), + (14,'Contributions - Recurring Cancellation Notification','{ts}Recurring Contribution Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Your recurring contribution of %1, every %2 %3 has been cancelled as requested.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,819,'contribution_recurring_cancelled',0,1,0,NULL), + (15,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,820,'contribution_recurring_billing',1,0,0,NULL), + (16,'Contributions - Recurring Billing Updates','{ts}Recurring Contribution Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Billing details for your recurring contribution of %1, every %2 %3 have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,820,'contribution_recurring_billing',0,1,0,NULL), + (17,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,821,'contribution_recurring_edit',1,0,0,NULL), + (18,'Contributions - Recurring Updates','{ts}Recurring Contribution Update Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your recurring contribution has been updated as requested:{/ts}\n\n{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}\n{if $installments}{ts 1=$installments} for %1 installments.{/ts}{/if}\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your recurring contribution has been updated as requested:{/ts}\n <p>{ts 1=$amount 2=$recur_frequency_interval 3=$recur_frequency_unit}Recurring contribution is for %1, every %2 %3(s){/ts}{if $installments}{ts 1=$installments} for %1 installments{/ts}{/if}.</p>\n\n <p>{ts 1=$receipt_from_email}If you have questions please contact us at %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n</body>\n</html>\n',1,821,'contribution_recurring_edit',0,1,0,NULL), + (19,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page Notification{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Action{/ts}:\n </td>\n <td {$valueStyle}>\n {if $mode EQ \'Update\'}\n {ts}Updated personal campaign page{/ts}\n {else}\n {ts}New personal campaign page{/ts}\n {/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Personal Campaign Page Title{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpTitle}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Current Status{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpStatus}\n </td>\n </tr>\n\n <tr>\n <td {$labelStyle}>\n <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n </td>\n <td></td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Supporter{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$supporterUrl}\">{$supporterName}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Linked to Contribution Page{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n </td>\n <td></td>\n </tr>\n\n </table>\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,822,'pcp_notify',1,0,0,NULL), + (20,'Personal Campaign Pages - Admin Notification','{ts}Personal Campaign Page Notification{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Notification{/ts}\n\n===========================================================\n{ts}Action{/ts}: {if $mode EQ \'Update\'}{ts}Updated personal campaign page{/ts}{else}{ts}New personal campaign page{/ts}{/if}\n{ts}Personal Campaign Page Title{/ts}: {$pcpTitle}\n{ts}Current Status{/ts}: {$pcpStatus}\n{capture assign=pcpURL}{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n{ts}View Page{/ts}:\n>> {$pcpURL}\n\n{ts}Supporter{/ts}: {$supporterName}\n>> {$supporterUrl}\n\n{ts}Linked to Contribution Page{/ts}: {$contribPageTitle}\n>> {$contribPageUrl}\n\n{ts}Manage Personal Campaign Pages{/ts}:\n>> {$managePCPUrl}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=pcpURL }{crmURL p=\"civicrm/pcp/info\" q=\"reset=1&id=`$pcpId`\" h=0 a=1 fe=1}{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page Notification{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Action{/ts}:\n </td>\n <td {$valueStyle}>\n {if $mode EQ \'Update\'}\n {ts}Updated personal campaign page{/ts}\n {else}\n {ts}New personal campaign page{/ts}\n {/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Personal Campaign Page Title{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpTitle}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Current Status{/ts}\n </td>\n <td {$valueStyle}>\n {$pcpStatus}\n </td>\n </tr>\n\n <tr>\n <td {$labelStyle}>\n <a href=\"{$pcpURL}\">{ts}View Page{/ts}</a>\n </td>\n <td></td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Supporter{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$supporterUrl}\">{$supporterName}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Linked to Contribution Page{/ts}\n </td>\n <td {$valueStyle}>\n <a href=\"{$contribPageUrl}\">{$contribPageTitle}</a>\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n <a href=\"{$managePCPUrl}\">{ts}Manage Personal Campaign Pages{/ts}</a>\n </td>\n <td></td>\n </tr>\n\n </table>\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,822,'pcp_notify',0,1,0,NULL), + (21,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n\n <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n {if $pcpStatus eq \'Approved\'}\n\n <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n {if $isTellFriendEnabled}\n <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {elseif $pcpStatus eq \'Not Approved\'}\n\n <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n {if $pcpNotifyEmailAddress}\n <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {/if}\n\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,823,'pcp_status_change',1,0,0,NULL), + (22,'Personal Campaign Pages - Supporter Status Change Notification','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{if $pcpStatus eq \'Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been approved and is now live.{/ts}\n\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n{if $isTellFriendEnabled}\n\n{ts}After logging in, you can use this form to promote your fundraising page{/ts}:\n{$pcpTellFriendURL}\n\n{/if}\n\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{* Rejected message *}\n{elseif $pcpStatus eq \'Not Approved\'}\n============================\n{ts}Your Personal Campaign Page{/ts}\n\n============================\n\n{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}\n\n{if $pcpNotifyEmailAddress}\n\n{ts}Please contact our site administrator for more information{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n\n <h1>{ts}Your Personal Campaign Page{/ts}</h1>\n\n {if $pcpStatus eq \'Approved\'}\n\n <p>{ts}Your personal campaign page has been approved and is now live.{/ts}</p>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n\n {if $isTellFriendEnabled}\n <p><a href=\"{$pcpTellFriendURL}\">{ts}After logging in, you can use this form to promote your fundraising page{/ts}</a></p>\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {elseif $pcpStatus eq \'Not Approved\'}\n\n <p>{ts}Your personal campaign page has been reviewed. There were some issues with the content which prevented us from approving the page. We are sorry for any inconvenience.{/ts}</p>\n {if $pcpNotifyEmailAddress}\n <p>{ts}Please contact our site administrator for more information{/ts}: {$pcpNotifyEmailAddress}</p>\n {/if}\n\n {/if}\n\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,823,'pcp_status_change',0,1,0,NULL), + (23,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n </td>\n </tr>\n\n {if $pcpStatus eq \'Approved\'}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Promoting Your Page{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if $isTellFriendEnabled}\n <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n </ol>\n {else}\n <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Managing Your Page{/ts}\n </th>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n </td>\n </tr>\n </tr>\n </table>\n </td>\n </tr>\n\n {elseif $pcpStatus EQ \'Waiting Review\'}\n\n <tr>\n <td>\n <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n </ol>\n </td>\n </tr>\n\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <tr>\n <td>\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,824,'pcp_supporter_notify',1,0,0,NULL), + (24,'Personal Campaign Pages - Supporter Welcome','{ts 1=$contribPageTitle}Your Personal Campaign Page for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}\n\n{if $pcpStatus eq \'Approved\'}\n====================\n{ts}Promoting Your Page{/ts}\n\n====================\n{if $isTellFriendEnabled}\n\n{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:\n\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser and follow the prompts{/ts}:\n{$pcpTellFriendURL}\n{else}\n\n{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts}\n{ts}Include this link to your fundraising page in your emails{/ts}:\n{$pcpInfoURL}\n{/if}\n\n===================\n{ts}Managing Your Page{/ts}\n\n===================\n{ts}Whenever you want to preview, update or promote your page{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser to go to your page{/ts}:\n{$pcpInfoURL}\n\n{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}\n\n\n{elseif $pcpStatus EQ \'Waiting Review\'}\n{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}\n\n\n{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}\n\n\n{ts}You can still preview your page prior to approval{/ts}:\n1. {ts}Login to your account at{/ts}:\n{$loginUrl}\n\n2. {ts}Click or paste this link into your browser{/ts}:\n{$pcpInfoURL}\n\n{/if}\n{if $pcpNotifyEmailAddress}\n{ts}Questions? Send email to{/ts}:\n{$pcpNotifyEmailAddress}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=\"$contribPageTitle\"}Thanks for creating a personal campaign page in support of %1.{/ts}</p>\n </td>\n </tr>\n\n {if $pcpStatus eq \'Approved\'}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Promoting Your Page{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if $isTellFriendEnabled}\n <p>{ts}You can begin your fundraising efforts using our \"Tell a Friend\" form{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpTellFriendURL}\">{ts}Click this link and follow the prompts{/ts}</a></li>\n </ol>\n {else}\n <p>{ts}Send email to family, friends and colleagues with a personal message about this campaign.{/ts} {ts}Include this link to your fundraising page in your emails{/ts}: {$pcpInfoURL}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Managing Your Page{/ts}\n </th>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}Whenever you want to preview, update or promote your page{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Go to your page{/ts}</a></li>\n </ol>\n <p>{ts}When you view your campaign page WHILE LOGGED IN, the page includes links to edit your page, tell friends, and update your contact info.{/ts}</p>\n </td>\n </tr>\n </tr>\n </table>\n </td>\n </tr>\n\n {elseif $pcpStatus EQ \'Waiting Review\'}\n\n <tr>\n <td>\n <p>{ts}Your page requires administrator review before you can begin your fundraising efforts.{/ts}</p>\n <p>{ts}A notification email has been sent to the site administrator, and you will receive another notification from them as soon as the review process is complete.{/ts}</p>\n <p>{ts}You can still preview your page prior to approval{/ts}:</p>\n <ol>\n <li><a href=\"{$loginUrl}\">{ts}Login to your account{/ts}</a></li>\n <li><a href=\"{$pcpInfoURL}\">{ts}Click this link{/ts}</a></li>\n </ol>\n </td>\n </tr>\n\n {/if}\n\n {if $pcpNotifyEmailAddress}\n <tr>\n <td>\n <p>{ts}Questions? Send email to{/ts}: {$pcpNotifyEmailAddress}</p>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,824,'pcp_supporter_notify',0,1,0,NULL), + (25,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Contribution Date{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n {ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n {if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n {/if}\n </p>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr><td>{ts}Contribution Date{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n </table>\n</body>\n</html>\n',1,825,'pcp_owner_notify',1,0,0,NULL), + (26,'Personal Campaign Pages - Owner Notification','{ts}Someone has just donated to your personal campaign page{/ts} - {contact.display_name}\n','===========================================================\n{ts}Personal Campaign Page Owner Notification{/ts}\n\n===========================================================\n{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}You have received a donation at your personal page{/ts}: {$page_title}\n>> {$pcpInfoURL}\n\n{ts}Your fundraising total has been updated.{/ts}\n{ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts}\n{if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}\n{/if}\n\n{ts}Contribution Date{/ts}: {$receive_date|crmDate}\n\n{ts}Amount{/ts}: {$total_amount|crmMoney:$currency}\n\n{ts}Name{/ts}: {$donors_display_name}\n\n{ts}Email{/ts}: {$donors_email}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}You have received a donation at your personal page{/ts}: <a href=\"{$pcpInfoURL}\">{$page_title}</a></p>\n <p>{ts}Your fundraising total has been updated.{/ts}<br/>\n {ts}The donor\'s information is listed below. You can choose to contact them and convey your thanks if you wish.{/ts} <br/>\n {if $is_honor_roll_enabled}\n {ts}The donor\'s name has been added to your honor roll unless they asked not to be included.{/ts}<br/>\n {/if}\n </p>\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr><td>{ts}Contribution Date{/ts}:</td><td> {$receive_date|crmDate}</td></tr>\n <tr><td>{ts}Amount{/ts}:</td><td> {$total_amount|crmMoney:$currency}</td></tr>\n <tr><td>{ts}Name{/ts}:</td><td> {$donors_display_name}</td></tr>\n <tr><td>{ts}Email{/ts}:</td><td> {$donors_email}</td></tr>\n </table>\n</body>\n</html>\n',1,825,'pcp_owner_notify',0,1,0,NULL), + (27,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if $totalAmount}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney:$currency}\n{/if}\n{if $totalPaid}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney:$currency}\n{/if}\n{if $amountOwed}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney:$currency} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $isRefund}\n <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n {else}\n <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n {if $paymentsComplete}\n <p>{ts}Thank you for completing this contribution.{/ts}</p>\n {/if}\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if $isRefund}\n <tr>\n <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Refund Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$refundAmount|crmMoney:$currency}\n </td>\n </tr>\n {else}\n <tr>\n <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Payment Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$paymentAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $receive_date}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n <tr>\n <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n </tr>\n {if $totalAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Fee{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $totalPaid}\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$totalPaid|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $amountOwed}\n <tr>\n <td {$labelStyle}>\n {ts}Balance Owed{/ts}\n </td>\n <td {$valueStyle}>\n {$amountOwed|crmMoney:$currency}\n </td> {* This will be zero after final payment. *}\n </tr>\n {/if}\n </table>\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !empty($billingName) || !empty($address)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if !empty($billingName)}{$billingName}{/if}<br />\n {if !empty($address)}{$address|nl2br}{/if}\n </td>\n </tr>\n {/if}\n {if !empty($credit_card_number)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {if $component eq \'event\'}\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if} {*phone block close*}\n {/if}\n </table>\n </td>\n </tr>\n\n </table>\n\n </body>\n</html>\n',1,826,'payment_or_refund_notification',1,0,0,NULL), + (28,'Additional Payment Receipt or Refund Notification','{if $isRefund}{ts}Refund Notification{/ts}{else}{ts}Payment Receipt{/ts}{/if}{if $component eq \'event\'} - {$event.title}{/if} - {contact.display_name}\n','{if $emailGreeting}{$emailGreeting},\n{/if}\n\n{if $isRefund}\n{ts}A refund has been issued based on changes in your registration selections.{/ts}\n{else}\n{ts}Below you will find a receipt for this payment.{/ts}\n{/if}\n{if $paymentsComplete}\n{ts}Thank you for completing this payment.{/ts}\n{/if}\n\n{if $isRefund}\n===============================================================================\n\n{ts}Refund Details{/ts}\n\n===============================================================================\n{ts}This Refund Amount{/ts}: {$refundAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n\n{else}\n===============================================================================\n\n{ts}Payment Details{/ts}\n\n===============================================================================\n{ts}This Payment Amount{/ts}: {$paymentAmount|crmMoney:$currency}\n------------------------------------------------------------------------------------\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n\n===============================================================================\n\n{ts}Contribution Details{/ts}\n\n===============================================================================\n{if $totalAmount}\n{ts}Total Fee{/ts}: {$totalAmount|crmMoney:$currency}\n{/if}\n{if $totalPaid}\n{ts}Total Paid{/ts}: {$totalPaid|crmMoney:$currency}\n{/if}\n{if $amountOwed}\n{ts}Balance Owed{/ts}: {$amountOwed|crmMoney:$currency} {* This will be zero after final payment. *}\n{/if}\n\n\n{if !empty($billingName) || !empty($address)}\n\n===============================================================================\n\n{ts}Billing Name and Address{/ts}\n\n===============================================================================\n{if !empty($billingName)}\n{$billingName}\n{/if}\n{if !empty($address)}\n{$address}\n{/if}\n{/if}\n\n{if !empty($credit_card_number)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===============================================================================\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{if $component eq \'event\'}\n===============================================================================\n\n{ts}Event Information and Location{/ts}\n\n===============================================================================\n\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{if !empty($event.participant_role)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n{/foreach}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=emptyBlockStyle }style=\"padding: 10px; border-bottom: 1px solid #999;background-color: #f7f7f7;\"{/capture}\n{capture assign=emptyBlockValueStyle }style=\"padding: 10px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $isRefund}\n <p>{ts}A refund has been issued based on changes in your registration selections.{/ts}</p>\n {else}\n <p>{ts}Below you will find a receipt for this payment.{/ts}</p>\n {if $paymentsComplete}\n <p>{ts}Thank you for completing this contribution.{/ts}</p>\n {/if}\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if $isRefund}\n <tr>\n <th {$headerStyle}>{ts}Refund Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Refund Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$refundAmount|crmMoney:$currency}\n </td>\n </tr>\n {else}\n <tr>\n <th {$headerStyle}>{ts}Payment Details{/ts}</th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}This Payment Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$paymentAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $receive_date}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n <tr>\n <th {$headerStyle}>{ts}Contribution Details{/ts}</th>\n </tr>\n {if $totalAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Fee{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $totalPaid}\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$totalPaid|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n {if $amountOwed}\n <tr>\n <td {$labelStyle}>\n {ts}Balance Owed{/ts}\n </td>\n <td {$valueStyle}>\n {$amountOwed|crmMoney:$currency}\n </td> {* This will be zero after final payment. *}\n </tr>\n {/if}\n </table>\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !empty($billingName) || !empty($address)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {if !empty($billingName)}{$billingName}{/if}<br />\n {if !empty($address)}{$address|nl2br}{/if}\n </td>\n </tr>\n {/if}\n {if !empty($credit_card_number)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires:{/ts} {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n {if $component eq \'event\'}\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if} {*phone block close*}\n {/if}\n </table>\n </td>\n </tr>\n\n </table>\n\n </body>\n</html>\n',1,826,'payment_or_refund_notification',0,1,0,NULL), + (29,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{event.title}\n{event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:\"%Y%m%d\"}\' === \'{event.start_date|crmDate:\"%Y%m%d\"}\'}{event.end_date|crmDate:\"Time\"}{else}{event.end_date}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n{ts}Event Contacts:{/ts}\n\n{if {event.loc_block_id.phone_id.phone|boolean}}\n{if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.phone_2_id.phone|boolean}}\n{if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}{event.loc_block_id.phone_2_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.email_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_id.email}\n{/if}\n{if {event.loc_block_id.email_2_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_2_id.email}{/if}\n{/if}\n\n\n{if {event.is_public|boolean}}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if {event.is_monetary|boolean}}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if $totalAmount and $totalTaxAmount}\n{ts}Amount before Tax:{/ts} {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount}\n{/if}\n{if {event.is_monetary|boolean}}\n\n{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{ts}Balance{/ts}: {contribution.balance_amount}\n{else}{ts}Total Amount{/ts}: {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if {participant.register_date|boolean}}\n{ts}Registration Date{/ts}: {participant.register_date}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{$event.confirm_email_text}</p>\n {/if}\n\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {elseif $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:\"%Y%m%d\"}\' === \'{event.start_date|crmDate:\"%Y%m%d\"}\'}{event.end_date|crmDate:\"Time\"}{else}{event.end_date}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n\n {if {event.loc_block_id.phone_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {if {event.loc_block_id.phone_2_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_2_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n\n\n {if {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_id.email}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.email_2_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_2_id.email}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {if {event.is_public|boolean}}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $email}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n\n {if {event.is_monetary|boolean}}\n\n <tr>\n <th {$headerStyle}>\n {if !empty($event.fee_label)}{$event.fee_label}{/if}\n </th>\n </tr>\n\n {if !empty($lineItem)}\n {foreach from=$lineItem item=value key=priceset}\n {if $value neq \'skip\'}\n {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$priceset+1}Participant %1{/ts}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {if !empty($pricesetFieldsCount) }\n <td>\n {$line.participant_count}\n </td>\n {/if}\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {if !empty($dataArray)}\n {if $totalAmount and $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {/if}\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n\n {if !empty($amount) && !$lineItem}\n {foreach from=$amount item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean}}\n {if {contribution.balance_amount|boolean}}\n <tr>\n <td {$labelStyle}>{ts}Total Paid{/ts}</td>\n <td {$valueStyle}>\n {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>{ts}Balance{/ts}</td>\n <td {$valueStyle}>{contribution.balance_amount}</td>\n </tr>\n {else}\n <tr>\n <td {$labelStyle}>{ts}Total Amount{/ts}</td>\n <td {$valueStyle}>\n {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {/if}\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td>\n </tr>\n {/if}\n {if $is_pay_later}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$pay_later_receipt}\n </td>\n </tr>\n {/if}\n\n {if {participant.register_date|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {participant.register_date}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,827,'event_offline_receipt',1,0,0,NULL), + (30,'Events - Registration Confirmation and Receipt (off-line)','{ts}Event Confirmation{/ts} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{elseif $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{event.title}\n{event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:\"%Y%m%d\"}\' === \'{event.start_date|crmDate:\"%Y%m%d\"}\'}{event.end_date|crmDate:\"Time\"}{else}{event.end_date}{/if}{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n{ts}Event Contacts:{/ts}\n\n{if {event.loc_block_id.phone_id.phone|boolean}}\n{if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.phone_2_id.phone|boolean}}\n{if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}{event.loc_block_id.phone_2_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n{/if}\n\n{if {event.loc_block_id.email_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_id.email}\n{/if}\n{if {event.loc_block_id.email_2_id.email|boolean}}\n{ts}Email {/ts}{event.loc_block_id.email_2_id.email}{/if}\n{/if}\n\n\n{if {event.is_public|boolean}}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($email)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Registered Email{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$email}\n{/if}\n{if !empty($event.is_monetary)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if {event.is_monetary|boolean}}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts}\n{/if}\n{/if}\n---------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{capture assign=ts_participant_total}{if !empty($pricesetFieldsCount) }{ts}Total Participants{/ts}{/if}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n{/if}\n{/foreach}\n\n{if !empty($dataArray)}\n{if $totalAmount and $totalTaxAmount}\n{ts}Amount before Tax:{/ts} {$totalAmount-$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amount) && !$lineItem}\n{foreach from=$amount item=amnt key=level}{$amnt.amount|crmMoney} {$amnt.label}\n{/foreach}\n{/if}\n\n{if {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount}\n{/if}\n{if {event.is_monetary|boolean}}\n\n{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{ts}Balance{/ts}: {contribution.balance_amount}\n{else}{ts}Total Amount{/ts}: {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n{/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $is_pay_later}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$pay_later_receipt}\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{/if}\n\n{if {participant.register_date|boolean}}\n{ts}Registration Date{/ts}: {participant.register_date}\n{/if}\n{if $receive_date}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customGroup)}\n{foreach from=$customGroup item=value key=customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{$customName}\n=========================================================={if !empty($pricesetFieldsCount) }===================={/if}\n\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{$event.confirm_email_text}</p>\n {/if}\n\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {elseif $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:\"%Y%m%d\"}\' === \'{event.start_date|crmDate:\"%Y%m%d\"}\'}{event.end_date|crmDate:\"Time\"}{else}{event.end_date}{/if}{/if}\n </td>\n </tr>\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n\n {if {event.loc_block_id.phone_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {if {event.loc_block_id.phone_2_id.phone|boolean}}\n <tr>\n <td {$labelStyle}>\n {if {event.loc_block_id.phone_2_id.phone_type_id|boolean}}\n {event.loc_block_id.phone_2_id.phone_type_id:label}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.phone_2_id.phone} {if {event.loc_block_id.phone_2_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_2_id.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n\n\n {if {event.loc_block_id.email_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_id.email}\n </td>\n </tr>\n {/if}\n\n {if {event.loc_block_id.email_2_id.email|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {event.loc_block_id.email_2_id.email}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {if {event.is_public|boolean}}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $email}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n\n {if {event.is_monetary|boolean}}\n\n <tr>\n <th {$headerStyle}>\n {if !empty($event.fee_label)}{$event.fee_label}{/if}\n </th>\n </tr>\n\n {if !empty($lineItem)}\n {foreach from=$lineItem item=value key=priceset}\n {if $value neq \'skip\'}\n {if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$priceset+1}Participant %1{/ts}\n </td>\n </tr>\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount) }<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {if !empty($pricesetFieldsCount) }\n <td>\n {$line.participant_count}\n </td>\n {/if}\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {if !empty($dataArray)}\n {if $totalAmount and $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$totalAmount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {/if}\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n\n {if !empty($amount) && !$lineItem}\n {foreach from=$amount item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean}}\n {if {contribution.balance_amount|boolean}}\n <tr>\n <td {$labelStyle}>{ts}Total Paid{/ts}</td>\n <td {$valueStyle}>\n {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>{ts}Balance{/ts}</td>\n <td {$valueStyle}>{contribution.balance_amount}</td>\n </tr>\n {else}\n <tr>\n <td {$labelStyle}>{ts}Total Amount{/ts}</td>\n <td {$valueStyle}>\n {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {/if}\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td>\n </tr>\n {/if}\n {if $is_pay_later}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$pay_later_receipt}\n </td>\n </tr>\n {/if}\n\n {if {participant.register_date|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {participant.register_date}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n {if !empty($customGroup)}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,827,'event_offline_receipt',0,1,0,NULL), + (31,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n {ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{event.title}\n{event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n\n{ts}Event Contacts:{/ts}\n{if {event.loc_block_id.phone_id.phone|boolean}}\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if {event.is_public|boolean}}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n{if !$isPrimary}{* Use the participant specific tax rate breakdown *}{assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n{/if}\n{if $isPrimary}\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if {event.confirm_email_text|boolean} AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{event.confirm_email_text}</p>\n\n {else}\n <p>{ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n {/if}\n\n <p>\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n {if $isPrimary}\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {/if}\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n {if $isPrimary}\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {/if}\n {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n <p>{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:\"%Y%m%d\"}\' === \'{event.start_date|crmDate:\"%Y%m%d\"}\'}{event.end_date|crmDate:\"Time\"}{else}{event.end_date|crmDate:\"%A\"} {event.end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if {event.is_public|boolean}}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $event.is_share}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id={event.id}&reset=1\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl pageURL=$eventUrl title=\'{event.title}\'}\n </td>\n </tr>\n {/if}\n {if !empty($payer.name)}\n <tr>\n <th {$headerStyle}>\n {ts}You were registered by:{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$payer.name}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean} and empty($isRequireApproval)}\n\n <tr>\n <th {$headerStyle}>\n {event.fee_label}\n </th>\n </tr>\n\n {if $isShowLineItems}\n {foreach from=$participants key=index item=participant}\n {if $isPrimary || {participant.id} === $participant.id}\n {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name}\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$participant.line_items item=line}\n <tr>\n <td {$tdfirstStyle}>{$line.title}</td>\n <td {$tdStyle} align=\"middle\">{$line.qty}</td>\n <td {$tdStyle}>{$line.unit_price|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td {$tdStyle}>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n {if !empty($pricesetFieldsCount)}<td {$tdStyle}>{$line.participant_count}</td> {/if}\n </tr>\n {/foreach}\n {if $isShowTax}\n <tr {$participantTotal}>\n <td colspan=3>{ts}Participant Total{/ts}</td>\n <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td>\n <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td>\n <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td>\n </tr>\n {/if}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n </td>\n </tr>\n\n {if !$isPrimary}\n {* Use the participant specific tax rate breakdown *}\n {assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}\n {/if}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($amounts) && empty($lineItem)}\n {foreach from=$amounts item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney:$currency} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n </td>\n </tr>\n {/if}\n {if $isPrimary}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td> </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n {foreach from=$customPr item=customValue key=customName}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n {foreach from=$customPos item=customValue key=customName}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n {foreach from=$eachParticipant item=eachProfile key=pid}\n <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n {foreach from=$eachProfile item=val key=field}\n <tr>{foreach from=$val item=v key=f}\n <td {$labelStyle}>{$field}</td>\n <td {$valueStyle}>{$v}</td>\n {/foreach}\n </tr>\n {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n </table>\n {if !empty($event.allow_selfcancelxfer) }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`{participant.id}`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n </table>\n\n</body>\n</html>\n',1,828,'event_online_receipt',1,0,0,NULL), + (32,'Events - Registration Confirmation and Receipt (on-line)','{if !empty($isOnWaitlist)}{ts}Wait List Confirmation{/ts}{elseif !empty($isRequireApproval)}{ts}Registration Request Confirmation{/ts}{else}{ts}Registration Confirmation{/ts}{/if} - {event.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n{$event.confirm_email_text}\n\n{else}\n {ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to %1.{/ts}\n {else}{if !empty($isOnWaitlist)}{ts}This is a confirmation that your registration has been received and your status has been updated to waitlisted.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to registered.{/ts}{/if}\n {/if}\n{/if}\n\n{if !empty($isOnWaitlist)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}You have been added to the WAIT LIST for this event.{/ts}\n\n{if $isPrimary}\n{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($isRequireApproval)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Your registration has been submitted.{/ts}\n\n{if $isPrimary}\n{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}\n\n{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{/if}\n\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Event Information and Location{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{event.title}\n{event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:\"%A\"} {$event.event_end_date|crmDate}{/if}{/if}\n{if !empty($conference_sessions)}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n{if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n{ts}Participant Role{/ts}: {$event.participant_role}\n{/if}\n\n{if !empty($isShowLocation)}\n{$location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if {event.loc_block_id.phone_id.phone|boolean} || {event.loc_block_id.email_id.email|boolean}}\n\n{ts}Event Contacts:{/ts}\n{if {event.loc_block_id.phone_id.phone|boolean}}\n {if {event.loc_block_id.phone_id.phone_type_id|boolean}}{event.loc_block_id.phone_id.phone_type_id:label}{else}{ts}Phone{/ts}{/if} {event.loc_block_id.phone_id.phone} {if {event.loc_block_id.phone_id.phone_ext|boolean}} {ts}ext.{/ts} {event.loc_block_id.phone_id.phone_ext}{/if}\n{/if}\n{foreach from=$location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if {event.is_public|boolean}}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if !empty($payer.name)}\nYou were registered by: {$payer.name}\n{/if}\n{if !empty($event.is_monetary) and empty($isRequireApproval)} {* This section for Paid events only.*}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty ($event.fee_label)}{$event.fee_label}{/if}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{if !empty($lineItem)}{foreach from=$lineItem item=value key=priceset}\n\n{if $value neq \'skip\'}\n{if $isPrimary}\n{if $lineItem|@count GT 1} {* Header for multi participant registration cases. *}\n{ts 1=$priceset+1}Participant %1{/ts} {if !empty($part.$priceset)}{$part.$priceset.info}{/if}\n\n{/if}\n{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{/if}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_total}{ts}Total Participants{/ts}{/capture}{/if}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {/if} {$ts_total|string_format:\"%10s\"} {if !empty($ts_participant_total)}{$ts_participant_total|string_format:\"%10s\"}{/if}\n-----------------------------------------------------------{if !empty($pricesetFieldsCount)}-----------------------------------------------------{/if}\n\n{foreach from=$value item=line}\n{if !empty($pricesetFieldsCount) }{capture assign=ts_participant_count}{$line.participant_count}{/capture}{/if}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney:$currency|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {/if} {$line.line_total+$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"}{if !empty($ts_participant_count)}{$ts_participant_count|string_format:\"%10s\"}{/if}\n{/foreach}\n----------------------------------------------------------------------------------------------------------------\n{if !empty($individual)}{ts}Participant Total{/ts} {$individual.$priceset.totalAmtWithTax-$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%29s\"} {$individual.$priceset.totalTaxAmt|crmMoney:$currency|string_format:\"%33s\"} {$individual.$priceset.totalAmtWithTax|crmMoney:$currency|string_format:\"%12s\"}{/if}\n{/if}\n{\"\"|string_format:\"%120s\"}\n{/foreach}\n{\"\"|string_format:\"%120s\"}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n{if !$isPrimary}{* Use the participant specific tax rate breakdown *}{assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}{/if}\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if} {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n{/if}\n\n{if !empty($amounts) && empty($lineItem)}\n{foreach from=$amounts item=amnt key=level}{$amnt.amount|crmMoney:$currency} {$amnt.label}\n{/foreach}\n{/if}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n{/if}\n{if $isPrimary}\n\n{ts}Total Amount{/ts}: {if !empty($totalAmount)}{$totalAmount|crmMoney:$currency}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n\n{if !empty($pricesetFieldsCount) }\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n\n{ts}Total Participants{/ts}: {$count}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$register_date|crmDate}\n{/if}\n{if !empty($receive_date)}\n{ts}Transaction Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($financialTypeName)}\n{ts}Financial Type{/ts}: {$financialTypeName}\n{/if}\n{if !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n{/if}\n{if !empty($paidBy)}\n{ts}Paid By{/ts}: {$paidBy}\n{/if}\n{if !empty($checkNumber)}\n{ts}Check Number{/ts}: {$checkNumber}\n{/if}\n{if !empty($billingName)}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Billing Name and Address{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts}Credit Card Information{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n{/if} {* End of conditional section for Paid events *}\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPre_grouptitle.$i}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPr item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{$customPost_grouptitle.$j}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$customPos item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/foreach}\n{/if}\n{if !empty($customProfile)}\n\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{ts 1=$participantID+2}Participant Information - Participant %1{/ts}\n\n==========================================================={if !empty($pricesetFieldsCount)}===================={/if}\n\n{foreach from=$eachParticipant item=eachProfile key=pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{$customProfile.title.$pid}\n----------------------------------------------------------{if !empty($pricesetFieldsCount)}--------------------{/if}\n\n{foreach from=$eachProfile item=val key=field}\n{foreach from=$val item=v key=f}\n{$field}: {$v}\n{/foreach}\n{/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n{if !empty($event.allow_selfcancelxfer) }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n{capture assign=tdfirstStyle}style=\"width: 180px; padding-bottom: 15px;\"{/capture}\n{capture assign=tdStyle}style=\"width: 100px;\"{/capture}\n{capture assign=participantTotal}style=\"margin: 0.5em 0 0.5em;padding: 0.5em;background-color: #999999;font-weight: bold;color: #FAFAFA;border-radius: 2px;\"{/capture}\n\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n {if {event.confirm_email_text|boolean} AND (empty($isOnWaitlist) AND empty($isRequireApproval))}\n <p>{event.confirm_email_text}</p>\n\n {else}\n <p>{ts}Thank you for your registration.{/ts}\n {if $participant_status}{ts 1=$participant_status}This is a confirmation that your registration has been received and your status has been updated to <strong> %1</strong>.{/ts}\n {else}{if $isOnWaitlist}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>waitlisted</strong>.{/ts}{else}{ts}This is a confirmation that your registration has been received and your status has been updated to <strong>registered<strong>.{/ts}{/if}{/if}</p>\n\n {/if}\n\n <p>\n {if !empty($isOnWaitlist)}\n <p>{ts}You have been added to the WAIT LIST for this event.{/ts}</p>\n {if $isPrimary}\n <p>{ts}If space becomes available you will receive an email with a link to a web page where you can complete your registration.{/ts}</p>\n {/if}\n {elseif !empty($isRequireApproval)}\n <p>{ts}Your registration has been submitted.{/ts}</p>\n {if $isPrimary}\n <p>{ts}Once your registration has been reviewed, you will receive an email with a link to a web page where you can complete the registration process.{/ts}</p>\n {/if}\n {elseif !empty($is_pay_later) && empty($isAmountzero) && empty($isAdditionalParticipant)}\n <p>{if {event.pay_later_receipt|boolean}}{event.pay_later_receipt}{/if}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"width:100%; max-width:700px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {event.title}<br />\n {event.start_date|crmDate:\"%A\"} {event.start_date|crmDate}{if {event.end_date|boolean}}-{if \'{event.end_date|crmDate:\"%Y%m%d\"}\' === \'{event.start_date|crmDate:\"%Y%m%d\"}\'}{event.end_date|crmDate:\"Time\"}{else}{event.end_date|crmDate:\"%A\"} {event.end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n\n\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.participant_role) and $event.participant_role neq \'Attendee\' and !empty($defaultRole)}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}\n </td>\n <td {$valueStyle}>\n {$event.participant_role}\n </td>\n </tr>\n {/if}\n\n {if !empty($isShowLocation)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($location.phone.1.phone) || !empty($location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}\n {$phone.phone_type_display}\n {else}\n {ts}Phone{/ts}\n {/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone} {if $phone.phone_ext} {ts}ext.{/ts} {$phone.phone_ext}{/if}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if {event.is_public|boolean}}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id={event.id}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if $event.is_share}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=eventUrl}{crmURL p=\'civicrm/event/info\' q=\"id={event.id}&reset=1\" a=true fe=1 h=1}{/capture}\n {include file=\"CRM/common/SocialNetwork.tpl\" emailMode=true url=$eventUrl pageURL=$eventUrl title=\'{event.title}\'}\n </td>\n </tr>\n {/if}\n {if !empty($payer.name)}\n <tr>\n <th {$headerStyle}>\n {ts}You were registered by:{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$payer.name}\n </td>\n </tr>\n {/if}\n {if {event.is_monetary|boolean} and empty($isRequireApproval)}\n\n <tr>\n <th {$headerStyle}>\n {event.fee_label}\n </th>\n </tr>\n\n {if $isShowLineItems}\n {foreach from=$participants key=index item=participant}\n {if $isPrimary || {participant.id} === $participant.id}\n {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name}\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}Subtotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n {/if}\n <th>{ts}Total{/ts}</th>\n {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if}\n </tr>\n {foreach from=$participant.line_items item=line}\n <tr>\n <td {$tdfirstStyle}>{$line.title}</td>\n <td {$tdStyle} align=\"middle\">{$line.qty}</td>\n <td {$tdStyle}>{$line.unit_price|crmMoney:$currency}</td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>{$line.tax_rate|string_format:\"%.2f\"}%</td>\n <td>{$line.tax_amount|crmMoney:$currency}</td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td {$tdStyle}>\n {$line.line_total+$line.tax_amount|crmMoney:$currency}\n </td>\n {if !empty($pricesetFieldsCount)}<td {$tdStyle}>{$line.participant_count}</td> {/if}\n </tr>\n {/foreach}\n {if $isShowTax}\n <tr {$participantTotal}>\n <td colspan=3>{ts}Participant Total{/ts}</td>\n <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td>\n <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td>\n <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td>\n </tr>\n {/if}\n </table>\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_exclusive_amount}{else}{$participant.totals.total_amount_exclusive|crmMoney}{/if}\n </td>\n </tr>\n\n {if !$isPrimary}\n {* Use the participant specific tax rate breakdown *}\n {assign var=taxRateBreakdown value=$participant.tax_rate_breakdown}\n {/if}\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else}{$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($amounts) && empty($lineItem)}\n {foreach from=$amounts item=amnt key=level}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$amnt.amount|crmMoney:$currency} {$amnt.label}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {if $isPrimary}{contribution.tax_amount}{else}{$participant.totals.tax_amount|crmMoney}{/if}\n </td>\n </tr>\n {/if}\n {if $isPrimary}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if}\n </td>\n </tr>\n {if !empty($pricesetFieldsCount) }\n <tr>\n <td {$labelStyle}>\n {ts}Total Participants{/ts}</td>\n <td {$valueStyle}>\n {assign var=\"count\" value= 0}\n {foreach from=$lineItem item=pcount}\n {assign var=\"lineItemCount\" value=0}\n {if $pcount neq \'skip\'}\n {foreach from=$pcount item=p_count}\n {assign var=\"lineItemCount\" value=$lineItemCount+$p_count.participant_count}\n {/foreach}\n {if $lineItemCount < 1 }\n {assign var=\"lineItemCount\" value=1}\n {/if}\n {assign var=\"count\" value=$count+$lineItemCount}\n {/if}\n {/foreach}\n {$count}\n </td> </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($financialTypeName)}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {$financialTypeName}\n </td>\n </tr>\n {/if}\n\n {if !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($paidBy)}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {$paidBy}\n </td>\n </tr>\n {/if}\n\n {if !empty($checkNumber)}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {$checkNumber}\n </td>\n </tr>\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n {/if}\n\n {/if} {* End of conditional section for Paid events *}\n\n\n{if !empty($customPre)}\n{foreach from=$customPre item=customPr key=i}\n <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr>\n {foreach from=$customPr item=customValue key=customName}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customPost)}\n{foreach from=$customPost item=customPos key=j}\n <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr>\n {foreach from=$customPos item=customValue key=customName}\n <tr>\n <td {$labelStyle}>{$customName}</td>\n <td {$valueStyle}>{$customValue}</td>\n </tr>\n {/foreach}\n{/foreach}\n{/if}\n\n{if !empty($customProfile)}\n{foreach from=$customProfile.profile item=eachParticipant key=participantID}\n <tr><th {$headerStyle}>{ts 1=$participantID+2}Participant %1{/ts} </th></tr>\n {foreach from=$eachParticipant item=eachProfile key=pid}\n <tr><th {$headerStyle}>{$customProfile.title.$pid}</th></tr>\n {foreach from=$eachProfile item=val key=field}\n <tr>{foreach from=$val item=v key=f}\n <td {$labelStyle}>{$field}</td>\n <td {$valueStyle}>{$v}</td>\n {/foreach}\n </tr>\n {/foreach}\n{/foreach}\n{/foreach}\n{/if}\n\n </table>\n {if !empty($event.allow_selfcancelxfer) }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`{participant.id}`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n </table>\n\n</body>\n</html>\n',1,828,'event_online_receipt',0,1,0,NULL), + (33,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n {$pay_later_receipt}\n{/if}\n\n Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})\n{if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n\n Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n Waitlisted:\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $is_pay_later}\n <p>\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n </p>\n {else}\n <p>\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n </p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p>\n {/if}\n\n <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$billing_name}<br />\n {$billing_street_address}<br />\n {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n <br/>\n {$email}\n </td>\n </tr>\n </table>\n{/if}\n{if $credit_card_type}\n <p> </p>\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n </td>\n </tr>\n </table>\n{/if}\n{if !empty($source)}\n <p> </p>\n {$source}\n{/if}\n <p> </p>\n <table width=\"700\">\n <thead>\n <tr>\n{if $line_items}\n <th style=\"text-align: left;\">\n Event\n </th>\n <th style=\"text-align: left;\">\n Participants\n </th>\n{/if}\n <th style=\"text-align: left;\">\n Price\n </th>\n <th style=\"text-align: left;\">\n Total\n </th>\n </tr>\n </thead>\n <tbody>\n {foreach from=$line_items item=line_item}\n <tr>\n <td style=\"width: 220px\">\n {$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})<br />\n {if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|nl2br}\n {/if}{*End of isShowLocation condition*}<br /><br />\n {$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n </td>\n <td style=\"width: 180px\">\n {$line_item.num_participants}\n {if $line_item.num_participants > 0}\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n {if $line_item.num_waiting_participants > 0}\n Waitlisted:<br/>\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n </td>\n <td style=\"width: 100px\">\n {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n <td style=\"width: 100px\">\n {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {/foreach}\n </tbody>\n <tfoot>\n {if $discounts}\n <tr>\n <td>\n </td>\n <td>\n </td>\n <td>\n Subtotal:\n </td>\n <td>\n {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {foreach from=$discounts key=myId item=i}\n <tr>\n <td>\n {$i.title}\n </td>\n <td>\n </td>\n <td>\n </td>\n <td>\n -{$i.amount}\n </td>\n </tr>\n {/foreach}\n {/if}\n <tr>\n{if $line_items}\n <td>\n </td>\n <td>\n </td>\n{/if}\n <td>\n <strong>Total:</strong>\n </td>\n <td>\n <strong> {$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n </td>\n </tr>\n </tfoot>\n </table>\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n </body>\n</html>\n',1,829,'event_registration_receipt',1,0,0,NULL), + (34,'Events - Receipt only','Receipt for {if $events_in_cart} Event Registration{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $is_pay_later}\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n{else}\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n{/if}\n\n{if $is_pay_later}\n {$pay_later_receipt}\n{/if}\n\n Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:\n\n{if $billing_name}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billing_name}\n\n{$billing_street_address}\n\n{$billing_city}, {$billing_state} {$billing_postal_code}\n\n{$email}\n{/if}\n\n{if !empty($source)}\n{$source}\n{/if}\n\n\n{foreach from=$line_items item=line_item}\n{$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})\n{if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n{$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n\n Quantity: {$line_item.num_participants}\n\n{if $line_item.num_participants > 0}\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\n{if $line_item.num_waiting_participants > 0}\n Waitlisted:\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}\n {/foreach}\n{/if}\nCost: {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\nTotal For This Event: {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n\n{/foreach}\n\n{if $discounts}\nSubtotal: {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n--------------------------------------\nDiscounts\n{foreach from=$discounts key=myId item=i}\n {$i.title}: -{$i.amount|crmMoney:$currency|string_format:\"%10s\"}\n{/foreach}\n{/if}\n======================================\nTotal: {$total|crmMoney:$currency|string_format:\"%10s\"}\n\n{if $credit_card_type}\n===========================================================\n{ts}Payment Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n{/if}\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n </head>\n <body>\n {capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n {capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n {capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $is_pay_later}\n <p>\n This is being sent to you as an acknowledgement that you have registered one or more members for the following workshop, event or purchase. Please note, however, that the status of your payment is pending, and the registration for this event will not be completed until your payment is received.\n </p>\n {else}\n <p>\n This is being sent to you as a {if !empty($is_refund)}confirmation of refund{else}receipt of payment made{/if} for the following workshop, event registration or purchase.\n </p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p>\n {/if}\n\n <p>Your order number is #{$transaction_id}. {if !empty($line_items) && empty($is_refund)} Information about the workshops will be sent separately to each participant.{/if}\n Here\'s a summary of your transaction placed on {$transaction_date|crmDate:\"%D %I:%M %p %Z\"}:</p>\n\n{if $billing_name}\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$billing_name}<br />\n {$billing_street_address}<br />\n {$billing_city}, {$billing_state} {$billing_postal_code}<br/>\n <br/>\n {$email}\n </td>\n </tr>\n </table>\n{/if}\n{if $credit_card_type}\n <p> </p>\n <table class=\"billing-info\">\n <tr>\n <th style=\"text-align: left;\">\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date.M}/{$credit_card_exp_date.Y}\n </td>\n </tr>\n </table>\n{/if}\n{if !empty($source)}\n <p> </p>\n {$source}\n{/if}\n <p> </p>\n <table width=\"700\">\n <thead>\n <tr>\n{if $line_items}\n <th style=\"text-align: left;\">\n Event\n </th>\n <th style=\"text-align: left;\">\n Participants\n </th>\n{/if}\n <th style=\"text-align: left;\">\n Price\n </th>\n <th style=\"text-align: left;\">\n Total\n </th>\n </tr>\n </thead>\n <tbody>\n {foreach from=$line_items item=line_item}\n <tr>\n <td style=\"width: 220px\">\n {$line_item.event->title} ({$line_item.event->start_date|crmDate:\"%D\"})<br />\n {if $line_item.event->is_show_location}\n {$line_item.location.address.1.display|nl2br}\n {/if}{*End of isShowLocation condition*}<br /><br />\n {$line_item.event->start_date|crmDate:\"%D %I:%M %p\"} - {$line_item.event->end_date|crmDate:\"%I:%M %p\"}\n </td>\n <td style=\"width: 180px\">\n {$line_item.num_participants}\n {if $line_item.num_participants > 0}\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n {if $line_item.num_waiting_participants > 0}\n Waitlisted:<br/>\n <div class=\"participants\" style=\"padding-left: 10px;\">\n {foreach from=$line_item.waiting_participants item=participant}\n {$participant.display_name}<br />\n {/foreach}\n </div>\n {/if}\n </td>\n <td style=\"width: 100px\">\n {$line_item.cost|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n <td style=\"width: 100px\">\n {$line_item.amount|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {/foreach}\n </tbody>\n <tfoot>\n {if $discounts}\n <tr>\n <td>\n </td>\n <td>\n </td>\n <td>\n Subtotal:\n </td>\n <td>\n {$sub_total|crmMoney:$currency|string_format:\"%10s\"}\n </td>\n </tr>\n {foreach from=$discounts key=myId item=i}\n <tr>\n <td>\n {$i.title}\n </td>\n <td>\n </td>\n <td>\n </td>\n <td>\n -{$i.amount}\n </td>\n </tr>\n {/foreach}\n {/if}\n <tr>\n{if $line_items}\n <td>\n </td>\n <td>\n </td>\n{/if}\n <td>\n <strong>Total:</strong>\n </td>\n <td>\n <strong> {$total|crmMoney:$currency|string_format:\"%10s\"}</strong>\n </td>\n </tr>\n </tfoot>\n </table>\n\n If you have questions about the status of your registration or purchase please feel free to contact us.\n </body>\n</html>\n',1,829,'event_registration_receipt',0,1,0,NULL), + (35,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {participant.role_id:label}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if !empty(\'{participant.register_date}\')}\n{ts}Registration Date{/ts}: {participant.register_date}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {participant.role_id:label}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if !empty(\'{participant.register_date}\')}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {participant.register_date}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,830,'participant_cancelled',1,0,0,NULL), + (36,'Events - Registration Cancellation Notice','{ts 1=$event.event_title}Event Registration Cancelled for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Your Event Registration has been cancelled.{/ts}\n\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {participant.role_id:label}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if !empty(\'{participant.register_date}\')}\n{ts}Registration Date{/ts}: {participant.register_date}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Your Event Registration has been cancelled.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"shortdate\" == $event.event_start_date|crmDate:\"shortdate\"}{$event.event_end_date|crmDate:\"Time\"}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {participant.role_id:label}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if !empty(\'{participant.register_date}\')}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {participant.register_date}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,830,'participant_cancelled',0,1,0,NULL), + (37,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n </td>\n </tr>\n {if !$isAdditional and $participant.id}\n <tr>\n <th {$headerStyle}>\n {ts}Confirm Your Registration{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n </td>\n </tr>\n {/if}\n {if $event.allow_selfcancelxfer }\n {ts}This event allows for{/ts}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n {/if}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if $event.location.phone.1.phone || $event.location.email.1.email}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if $event.is_public}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {if $event.allow_selfcancelxfer }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,831,'participant_confirm',1,0,0,NULL), + (38,'Events - Registration Confirmation Invite','{ts 1=$event.event_title}Confirm your registration for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}\n\n{if !$isAdditional and $participant.id}\n\n===========================================================\n{ts}Confirm Your Registration{/ts}\n\n===========================================================\n{capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can confirm your registration online:\n{$confirmUrl}\n{/if}\n{if $event.allow_selfcancelxfer }\n{ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n{ts}Transfer or cancel your registration:{/ts} {$selfService}\n{/if}\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n{if $conference_sessions}\n\n\n{ts}Your schedule:{/ts}\n{assign var=\'group_by_day\' value=\'NA\'}\n{foreach from=$conference_sessions item=session}\n{if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n{assign var=\'group_by_day\' value=$session.start_date}\n\n{$group_by_day|crmDate:\"%m/%d/%Y\"}\n\n\n{/if}\n{$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}\n{if $session.location} {$session.location}{/if}\n{/foreach}\n{/if}\n\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if $event.location.phone.1.phone || $event.location.email.1.email}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if $event.is_public}\n{capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Download iCalendar entry for this event.{/ts} {$icalFeed}\n{capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n{ts}Add event to Google Calendar{/ts} {$gCalendar}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}This is an invitation to complete your registration that was initially waitlisted.{/ts}</p>\n </td>\n </tr>\n {if !$isAdditional and $participant.id}\n <tr>\n <th {$headerStyle}>\n {ts}Confirm Your Registration{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=confirmUrl}{crmURL p=\'civicrm/event/confirm\' q=\"reset=1&participantId=`$participant.id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <a href=\"{$confirmUrl}\">{ts}Click here to confirm and complete your registration{/ts}</a>\n </td>\n </tr>\n {/if}\n {if $event.allow_selfcancelxfer }\n {ts}This event allows for{/ts}\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\"> {ts}self service cancel or transfer{/ts}</a>\n {/if}\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n {if $conference_sessions}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Your schedule:{/ts}\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {assign var=\'group_by_day\' value=\'NA\'}\n {foreach from=$conference_sessions item=session}\n {if $session.start_date|crmDate:\"%Y/%m/%d\" != $group_by_day|crmDate:\"%Y/%m/%d\"}\n {assign var=\'group_by_day\' value=$session.start_date}\n <em>{$group_by_day|crmDate:\"%m/%d/%Y\"}</em><br />\n {/if}\n {$session.start_date|crmDate:0:1}{if $session.end_date}-{$session.end_date|crmDate:0:1}{/if} {$session.title}<br />\n {if $session.location} {$session.location}<br />{/if}\n {/foreach}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if $event.location.phone.1.phone || $event.location.email.1.email}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if $event.is_public}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=icalFeed}{crmURL p=\'civicrm/event/ical\' q=\"reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$icalFeed}\">{ts}Download iCalendar entry for this event.{/ts}</a>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {capture assign=gCalendar}{crmURL p=\'civicrm/event/ical\' q=\"gCalendar=1&reset=1&id=`$event.id`\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$gCalendar}\">{ts}Add event to Google Calendar{/ts}</a>\n </td>\n </tr>\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {if $event.allow_selfcancelxfer }\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if $totalAmount}{ts}Cancellations are not refundable.{/ts}{/if}<br />\n {capture assign=selfService}{crmURL p=\'civicrm/event/selfsvcupdate\' q=\"reset=1&pid=`$participant.id`&{contact.checksum}\" h=0 a=1 fe=1}{/capture}\n <a href=\"{$selfService}\">{ts}Click here to transfer or cancel your registration.{/ts}</a>\n </td>\n </tr>\n {/if}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,831,'participant_confirm',0,1,0,NULL), + (39,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,832,'participant_expired',1,0,0,NULL), + (40,'Events - Pending Registration Expiration Notice','{ts 1=$event.event_title}Event registration has expired for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$event.event_title}Your pending event registration for %1 has expired\nbecause you did not confirm your registration.{/ts}</p>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor want to inquire about reinstating your registration for this event.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,832,'participant_expired',0,1,0,NULL), + (41,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,833,'participant_transferred',1,0,0,NULL), + (42,'Events - Registration Transferred Notice','{ts 1=$event.event_title}Event Registration Transferred for %1{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$to_participant}Your Event Registration has been transferred to %1.{/ts}\n\n===========================================================\n{ts}Event Information and Location{/ts}\n\n===========================================================\n{$event.event_title}\n{$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n\n{ts}Participant Role{/ts}: {$participant.role}\n\n{if $isShowLocation}\n{$event.location.address.1.display|strip_tags:false}\n{/if}{*End of isShowLocation condition*}\n\n{if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n\n{ts}Event Contacts:{/ts}\n{foreach from=$event.location.phone item=phone}\n{if $phone.phone}\n\n{if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}: {$phone.phone}{/if}\n{/foreach}\n{foreach from=$event.location.email item=eventEmail}\n{if $eventEmail.email}\n\n{ts}Email{/ts}: {$eventEmail.email}{/if}{/foreach}\n{/if}\n\n{if \'{contact.email}\'}\n\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{contact.email}\n{/if}\n\n{if $register_date}\n{ts}Registration Date{/ts}: {$participant.register_date|crmDate}\n{/if}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$to_participant}Your Event Registration has been Transferred to %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Event Information and Location{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.event_title}<br />\n {$event.event_start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:\"%Y%m%d\" == $event.event_start_date|crmDate:\"%Y%m%d\"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Participant Role{/ts}:\n </td>\n <td {$valueStyle}>\n {$participant.role}\n </td>\n </tr>\n\n {if $isShowLocation}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$event.location.address.1.display|nl2br}\n </td>\n </tr>\n {/if}\n\n {if !empty($event.location.phone.1.phone) || !empty($event.location.email.1.email)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}Event Contacts:{/ts}\n </td>\n </tr>\n {foreach from=$event.location.phone item=phone}\n {if $phone.phone}\n <tr>\n <td {$labelStyle}>\n {if $phone.phone_type}{$phone.phone_type_display}{else}{ts}Phone{/ts}{/if}\n </td>\n <td {$valueStyle}>\n {$phone.phone}\n </td>\n </tr>\n {/if}\n {/foreach}\n {foreach from=$event.location.email item=eventEmail}\n {if $eventEmail.email}\n <tr>\n <td {$labelStyle}>\n {ts}Email{/ts}\n </td>\n <td {$valueStyle}>\n {$eventEmail.email}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n {if \'{contact.email}\'}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {contact.email}\n </td>\n </tr>\n {/if}\n\n {if $register_date}\n <tr>\n <td {$labelStyle}>\n {ts}Registration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$participant.register_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,833,'participant_transferred',0,1,0,NULL), + (43,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{$senderMessage}</p>\n {if $generalLink}\n <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n {/if}\n {if $contribute}\n <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n {/if}\n {if $event}\n <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n {/if}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,834,'friend',1,0,0,NULL), + (44,'Tell-a-Friend Email','{ts 1=$senderContactName 2=$title}%1 wants you to know about %2{/ts}\n','{$senderMessage}\n\n{if $generalLink}{ts}For more information, visit:{/ts}\n>> {$generalLink}\n\n{/if}\n{if $contribute}{ts}To make a contribution, go to:{/ts}\n>> {$pageURL}\n\n{/if}\n{if $event}{ts}To find out more about this event, go to:{/ts}\n>> {$pageURL}\n{/if}\n\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <p>{$senderMessage}</p>\n {if $generalLink}\n <p><a href=\"{$generalLink}\">{ts}More information{/ts}</a></p>\n {/if}\n {if $contribute}\n <p><a href=\"{$pageURL}\">{ts}Make a contribution{/ts}</a></p>\n {/if}\n {if $event}\n <p><a href=\"{$pageURL}\">{ts}Find out more about this event{/ts}</a></p>\n {/if}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,834,'friend',0,1,0,NULL), + (45,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$isShowLineItems}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {membership.membership_type_id:name}\n{/if}\n{if \'{membership.status_id:name}\' !== \'Cancelled\'}\n{if !$isShowLineItems}\n{ts}Membership Start Date{/ts}: {membership.start_date|crmDate:\"Full\"}\n{ts}Membership Expiration Date{/ts}: {membership.end_date|crmDate:\"Full\"}\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if {contribution.financial_type_id|boolean}}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|boolean}\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$lineItems item=line}\n{line.title} {$line.line_total|crmMoney|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.membership.start_date|string_format:\"%20s\"} {$line.membership.end_date|string_format:\"%20s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {contribution.tax_exclusive_amount}\n\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}: {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount}\n{/if}\n\n{ts}Amount{/ts}: {contribution.total_amount}\n{if {contribution.receive_date|boolean}}\n{ts}Contribution Date{/ts}: {contribution.receive_date}\n{/if}\n{if {contribution.payment_instrument_id|boolean}}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if {contribution.check_number|boolean}}\n{ts}Check Number{/ts}: {contribution.check_number|boolean}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-membership_receipt\"\n style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $receipt_text}\n <p>{$receipt_text|htmlize}</p>\n {else}\n <p>{ts}Thank you for this contribution.{/ts}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !$isShowLineItems}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {membership.membership_type_id:name}\n </td>\n </tr>\n {/if}\n {if \'{membership.status_id:name}\' !== \'Cancelled\'}\n {if !$isShowLineItems}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.start_date|crmDate:\"Full\"}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/if}\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n {if {contribution.financial_type_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n </tr>\n {/if}\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {/if}\n <td>\n {$line.membership.start_date|crmDate:\"Full\"}\n </td>\n <td>\n {$line.membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {if {contribution.receive_date|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date}\n </td>\n </tr>\n {/if}\n {if {contribution.payment_instrument_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if {contribution.check_number|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n {/if}\n {/if}\n </table>\n </td>\n </tr>\n\n {if !empty($isPrimary)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {$billingName}<br/>\n {$address}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$valueStyle}>\n {$credit_card_type}<br/>\n {$credit_card_number}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Expires{/ts}\n </td>\n <td {$valueStyle}>\n {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {/if}\n\n {if !empty($customValues)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Membership Options{/ts}\n </th>\n </tr>\n {foreach from=$customValues item=value key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,835,'membership_offline_receipt',1,0,0,NULL), + (46,'Memberships - Signup and Renewal Receipts (off-line)','{if $receiptType EQ \'membership signup\'}\n{ts}Membership Confirmation and Receipt{/ts}\n{elseif $receiptType EQ \'membership renewal\'}\n{ts}Membership Renewal Confirmation and Receipt{/ts}\n{/if} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{if $receipt_text}\n{$receipt_text}\n{else}{ts}Thank you for this contribution.{/ts}{/if}\n\n{if !$isShowLineItems}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {membership.membership_type_id:name}\n{/if}\n{if \'{membership.status_id:name}\' !== \'Cancelled\'}\n{if !$isShowLineItems}\n{ts}Membership Start Date{/ts}: {membership.start_date|crmDate:\"Full\"}\n{ts}Membership Expiration Date{/ts}: {membership.end_date|crmDate:\"Full\"}\n{/if}\n\n{if {contribution.total_amount|boolean}}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if {contribution.financial_type_id|boolean}}\n{ts}Financial Type{/ts}: {contribution.financial_type_id:label}\n{/if}\n{if $isShowLineItems}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if $isShowTax && \'{contribution.tax_amount|boolean}\'}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$lineItems item=line}\n{line.title} {$line.line_total|crmMoney|string_format:\"%10s\"} {if $isShowTax && {contribution.tax_amount|boolean}} {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:\'{contribution.currency}\'|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.membership.start_date|string_format:\"%20s\"} {$line.membership.end_date|string_format:\"%20s\"}\n{/foreach}\n\n{if $isShowTax && {contribution.tax_amount|boolean}}\n{ts}Amount before Tax:{/ts} {contribution.tax_exclusive_amount}\n\n{foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}: {$taxDetail.amount|crmMoney:\'{contribution.currency}\'}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if {contribution.tax_amount|boolean}}\n{ts}Total Tax Amount{/ts}: {contribution.tax_amount}\n{/if}\n\n{ts}Amount{/ts}: {contribution.total_amount}\n{if {contribution.receive_date|boolean}}\n{ts}Contribution Date{/ts}: {contribution.receive_date}\n{/if}\n{if {contribution.payment_instrument_id|boolean}}\n{ts}Paid By{/ts}: {contribution.payment_instrument_id:label}\n{if {contribution.check_number|boolean}}\n{ts}Check Number{/ts}: {contribution.check_number|boolean}\n{/if}\n{/if}\n{/if}\n{/if}\n\n{if !empty($isPrimary) }\n{if !empty($billingName)}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n{/if}\n\n{if !empty($credit_card_type)}\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n{/if}\n\n{if !empty($customValues)}\n===========================================================\n{ts}Membership Options{/ts}\n\n===========================================================\n{foreach from=$customValues item=value key=customName}\n {$customName} : {$value}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\"/>\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-membership_receipt\"\n style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if $receipt_text}\n <p>{$receipt_text|htmlize}</p>\n {else}\n <p>{ts}Thank you for this contribution.{/ts}</p>\n {/if}\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n {if !$isShowLineItems}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {membership.membership_type_id:name}\n </td>\n </tr>\n {/if}\n {if \'{membership.status_id:name}\' !== \'Cancelled\'}\n {if !$isShowLineItems}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.start_date|crmDate:\"Full\"}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/if}\n {if {contribution.total_amount|boolean}}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n {if {contribution.financial_type_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Financial Type{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.financial_type_id:label}\n </td>\n </tr>\n {/if}\n\n {if $isShowLineItems}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$lineItems item=line}\n <tr>\n <td>{$line.title}</td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <td>\n {$line.unit_price*$line.qty|crmMoney:\'{contribution.currency}\'}\n </td>\n {if $line.tax_rate || $line.tax_amount != \"\"}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney:\'{contribution.currency}\'}\n </td>\n {/if}\n <td>\n {$line.membership.start_date|crmDate:\"Full\"}\n </td>\n <td>\n {$line.membership.end_date|crmDate:\"Full\"}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n {if $isShowTax && {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_exclusive_amount}\n </td>\n </tr>\n {foreach from=$taxRateBreakdown item=taxDetail key=taxRate}\n <tr>\n <td {$labelStyle}>{if $taxRate == 0}{ts}No{/ts} {$taxTerm}{else} {$taxTerm} {$taxDetail.percentage}%{/if}</td>\n <td {$valueStyle}>{$taxDetail.amount|crmMoney:\'{contribution.currency}\'}</td>\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if {contribution.tax_amount|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.tax_amount}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.total_amount}\n </td>\n </tr>\n {if {contribution.receive_date|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Date{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.receive_date}\n </td>\n </tr>\n {/if}\n {if {contribution.payment_instrument_id|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Paid By{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.payment_instrument_id:label}\n </td>\n </tr>\n {if {contribution.check_number|boolean}}\n <tr>\n <td {$labelStyle}>\n {ts}Check Number{/ts}\n </td>\n <td {$valueStyle}>\n {contribution.check_number}\n </td>\n </tr>\n {/if}\n {/if}\n {/if}\n {/if}\n </table>\n </td>\n </tr>\n\n {if !empty($isPrimary)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {$billingName}<br/>\n {$address}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$valueStyle}>\n {$credit_card_type}<br/>\n {$credit_card_number}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Expires{/ts}\n </td>\n <td {$valueStyle}>\n {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n </td>\n </tr>\n {/if}\n\n {if !empty($customValues)}\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Membership Options{/ts}\n </th>\n </tr>\n {foreach from=$customValues item=value key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,835,'membership_offline_receipt',0,1,0,NULL), + (47,'Memberships - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n {if $membership_assign && !$useForMember}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_name}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n\n {if $amount}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n\n {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n {if $amount && !$is_separate_payment }\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total{/ts}\n </td>\n <td {$valueStyle}>\n {$amount+$membership_amount|crmMoney}\n </td>\n </tr>\n {/if}\n\n {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {$line.description|truncate:30:\"...\"}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n\n {else}\n {if $useForMember && $lineItem and empty($is_quick_config)}\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if ($line.tax_rate || $line.tax_amount != \"\")}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {/if}\n <td>\n {$line.start_date}\n </td>\n <td>\n {$line.end_date}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n {if !empty($dataArray)}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {else}\n <td> {ts}NO{/ts} {$taxTerm}</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n\n {elseif isset($membership_amount)}\n\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n\n\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_monetary) and !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($membership_trx_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_trx_id}\n </td>\n </tr>\n {/if}\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This membership will be renewed automatically.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,836,'membership_online_receipt',1,0,0,NULL), + (48,'Memberships - Receipt (on-line)','{if \'{contribution.contribution_status_id:name}\' === \'Pending\'}{ts}Invoice{/ts}{else}{ts}Receipt{/ts}{/if} - {$title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n{if !empty($receipt_text)}\n{$receipt_text}\n{/if}\n{if $is_pay_later}\n\n===========================================================\n{$pay_later_receipt}\n===========================================================\n{/if}\n\n{if $membership_assign && !$useForMember}\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Type{/ts}: {$membership_name}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n{/if}\n{if $amount}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{if !$useForMember && isset($membership_amount) && !empty($is_quick_config)}\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{if $amount && !$is_separate_payment }\n{ts}Contribution Amount{/ts}: {$amount|crmMoney}\n-------------------------------------------\n{ts}Total{/ts}: {$amount+$membership_amount|crmMoney}\n{/if}\n{elseif !$useForMember && !empty($lineItem) and !empty($priceSetID) & empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n---------------------------------------------------------\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_qty}{ts}Qty{/ts}{/capture}\n{capture assign=ts_each}{ts}Each{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_qty|string_format:\"%5s\"} {$ts_each|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"}\n----------------------------------------------------------\n{foreach from=$value item=line}\n{$line.description|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.qty|string_format:\"%5s\"} {$line.unit_price|crmMoney|string_format:\"%10s\"} {$line.line_total|crmMoney|string_format:\"%10s\"}\n{/foreach}\n{/foreach}\n\n{ts}Total Amount{/ts}: {$amount|crmMoney}\n{else}\n{if $useForMember && $lineItem && empty($is_quick_config)}\n{foreach from=$lineItem item=value key=priceset}\n{capture assign=ts_item}{ts}Item{/ts}{/capture}\n{capture assign=ts_total}{ts}Fee{/ts}{/capture}\n{if !empty($dataArray)}\n{capture assign=ts_subtotal}{ts}Subtotal{/ts}{/capture}\n{capture assign=ts_taxRate}{ts}Tax Rate{/ts}{/capture}\n{capture assign=ts_taxAmount}{ts}Tax Amount{/ts}{/capture}\n{capture assign=ts_total}{ts}Total{/ts}{/capture}\n{/if}\n{capture assign=ts_start_date}{ts}Membership Start Date{/ts}{/capture}\n{capture assign=ts_end_date}{ts}Membership Expiration Date{/ts}{/capture}\n{$ts_item|string_format:\"%-30s\"} {$ts_total|string_format:\"%10s\"} {if !empty($dataArray)} {$ts_subtotal|string_format:\"%10s\"} {$ts_taxRate|string_format:\"%10s\"} {$ts_taxAmount|string_format:\"%10s\"} {$ts_total|string_format:\"%10s\"} {/if} {$ts_start_date|string_format:\"%20s\"} {$ts_end_date|string_format:\"%20s\"}\n--------------------------------------------------------------------------------------------------\n\n{foreach from=$value item=line}\n{capture assign=ts_item}{if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description} {$line.description}{/if}{/capture}{$ts_item|truncate:30:\"...\"|string_format:\"%-30s\"} {$line.line_total|crmMoney|string_format:\"%10s\"} {if !empty($dataArray)} {$line.unit_price*$line.qty|crmMoney:$currency|string_format:\"%10s\"} {if $line.tax_rate || $line.tax_amount != \"\"} {$line.tax_rate|string_format:\"%.2f\"} % {$line.tax_amount|crmMoney:$currency|string_format:\"%10s\"} {else} {/if} {$line.line_total+$line.tax_amount|crmMoney|string_format:\"%10s\"} {/if} {$line.start_date|string_format:\"%20s\"} {$line.end_date|string_format:\"%20s\"}\n{/foreach}\n{/foreach}\n\n{if !empty($dataArray)}\n{ts}Amount before Tax:{/ts} {$amount-$totalTaxAmount|crmMoney:$currency}\n\n{foreach from=$dataArray item=value key=priceset}\n{if $priceset || $priceset == 0}\n{$taxTerm} {$priceset|string_format:\"%.2f\"}%: {$value|crmMoney:$currency}\n{else}\n{ts}No{/ts} {$taxTerm}: {$value|crmMoney:$currency}\n{/if}\n{/foreach}\n{/if}\n--------------------------------------------------------------------------------------------------\n{/if}\n\n{if $totalTaxAmount}\n{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency}\n{/if}\n\n{ts}Amount{/ts}: {$amount|crmMoney} {if isset($amount_level) } - {$amount_level} {/if}\n{/if}\n{elseif isset($membership_amount)}\n===========================================================\n{ts}Membership Fee{/ts}\n\n===========================================================\n{ts 1=$membership_name}%1 Membership{/ts}: {$membership_amount|crmMoney}\n{/if}\n\n{if !empty($receive_date)}\n\n{ts}Date{/ts}: {$receive_date|crmDate}\n{/if}\n{if !empty($is_monetary) and !empty($trxn_id)}\n{ts}Transaction #{/ts}: {$trxn_id}\n\n{/if}\n{if !empty($membership_trx_id)}\n{ts}Membership Transaction #{/ts}: {$membership_trx_id}\n\n{/if}\n{if !empty($is_recur)}\n{ts}This membership will be renewed automatically.{/ts}\n{if $cancelSubscriptionUrl}\n\n{ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by visiting this web page: %1.{/ts}\n\n{/if}\n\n{if $updateSubscriptionBillingUrl}\n\n{ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n{/if}\n{/if}\n\n{if $honor_block_is_active }\n===========================================================\n{$soft_credit_type}\n===========================================================\n{foreach from=$honoreeProfile item=value key=label}\n{$label}: {$value}\n{/foreach}\n\n{/if}\n{if !empty($pcpBlock)}\n===========================================================\n{ts}Personal Campaign Page{/ts}\n\n===========================================================\n{ts}Display In Honor Roll{/ts}: {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n\n{if $pcp_roll_nickname}{ts}Nickname{/ts}: {$pcp_roll_nickname}{/if}\n\n{if $pcp_personal_note}{ts}Personal Note{/ts}: {$pcp_personal_note}{/if}\n\n{/if}\n{if !empty($onBehalfProfile)}\n===========================================================\n{ts}On Behalf Of{/ts}\n\n===========================================================\n{foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n{$onBehalfName}: {$onBehalfValue}\n{/foreach}\n{/if}\n\n{if !empty($billingName)}\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n{elseif !empty($email)}\n===========================================================\n{ts}Registered Email{/ts}\n\n===========================================================\n{$email}\n{/if} {* End billingName or email *}\n{if !empty($credit_card_type)}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n{/if}\n\n{if !empty($selectPremium)}\n===========================================================\n{ts}Premium Information{/ts}\n\n===========================================================\n{$product_name}\n{if $option}\n{ts}Option{/ts}: {$option}\n{/if}\n{if $sku}\n{ts}SKU{/ts}: {$sku}\n{/if}\n{if $start_date}\n{ts}Start Date{/ts}: {$start_date|crmDate}\n{/if}\n{if $end_date}\n{ts}End Date{/ts}: {$end_date|crmDate}\n{/if}\n{if !empty($contact_email) OR !empty($contact_phone)}\n\n{ts}For information about this premium, contact:{/ts}\n\n{if !empty($contact_email)}\n {$contact_email}\n{/if}\n{if !empty($contact_phone)}\n {$contact_phone}\n{/if}\n{/if}\n{if $is_deductible AND !empty($price)}\n\n{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}{/if}\n{/if}\n\n{if !empty($customPre)}\n===========================================================\n{$customPre_grouptitle}\n\n===========================================================\n{foreach from=$customPre item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n\n\n{if !empty($customPost)}\n===========================================================\n{$customPost_grouptitle}\n\n===========================================================\n{foreach from=$customPost item=customValue key=customName}\n {$customName}: {$customValue}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n {if !empty($receipt_text)}\n <p>{$receipt_text|htmlize}</p>\n {/if}\n\n {if $is_pay_later}\n <p>{$pay_later_receipt}</p> {* FIXME: this might be text rather than HTML *}\n {/if}\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n {if $membership_assign && !$useForMember}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Type{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_name}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n {/if}\n\n\n {if $amount}\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n\n {if !$useForMember and isset($membership_amount) and !empty($is_quick_config)}\n\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n {if $amount && !$is_separate_payment }\n <tr>\n <td {$labelStyle}>\n {ts}Contribution Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total{/ts}\n </td>\n <td {$valueStyle}>\n {$amount+$membership_amount|crmMoney}\n </td>\n </tr>\n {/if}\n\n {elseif empty($useForMember) && !empty($lineItem) and $priceSetID and empty($is_quick_config)}\n\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Qty{/ts}</th>\n <th>{ts}Each{/ts}</th>\n <th>{ts}Total{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {$line.description|truncate:30:\"...\"}\n </td>\n <td>\n {$line.qty}\n </td>\n <td>\n {$line.unit_price|crmMoney}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n <tr>\n <td {$labelStyle}>\n {ts}Total Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney}\n </td>\n </tr>\n\n {else}\n {if $useForMember && $lineItem and empty($is_quick_config)}\n {foreach from=$lineItem item=value key=priceset}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <table>\n <tr>\n <th>{ts}Item{/ts}</th>\n <th>{ts}Fee{/ts}</th>\n {if !empty($dataArray)}\n <th>{ts}SubTotal{/ts}</th>\n <th>{ts}Tax Rate{/ts}</th>\n <th>{ts}Tax Amount{/ts}</th>\n <th>{ts}Total{/ts}</th>\n {/if}\n <th>{ts}Membership Start Date{/ts}</th>\n <th>{ts}Membership Expiration Date{/ts}</th>\n </tr>\n {foreach from=$value item=line}\n <tr>\n <td>\n {if $line.html_type eq \'Text\'}{$line.label}{else}{$line.field_title} - {$line.label}{/if} {if $line.description}<div>{$line.description|truncate:30:\"...\"}</div>{/if}\n </td>\n <td>\n {$line.line_total|crmMoney}\n </td>\n {if !empty($dataArray)}\n <td>\n {$line.unit_price*$line.qty|crmMoney}\n </td>\n {if ($line.tax_rate || $line.tax_amount != \"\")}\n <td>\n {$line.tax_rate|string_format:\"%.2f\"}%\n </td>\n <td>\n {$line.tax_amount|crmMoney}\n </td>\n {else}\n <td></td>\n <td></td>\n {/if}\n <td>\n {$line.line_total+$line.tax_amount|crmMoney}\n </td>\n {/if}\n <td>\n {$line.start_date}\n </td>\n <td>\n {$line.end_date}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n {/foreach}\n {if !empty($dataArray)}\n <tr>\n <td {$labelStyle}>\n {ts}Amount Before Tax:{/ts}\n </td>\n <td {$valueStyle}>\n {$amount-$totalTaxAmount|crmMoney}\n </td>\n </tr>\n {foreach from=$dataArray item=value key=priceset}\n <tr>\n {if $priceset || $priceset == 0}\n <td> {$taxTerm} {$priceset|string_format:\"%.2f\"}%</td>\n <td> {$value|crmMoney:$currency}</td>\n {else}\n <td> {ts}NO{/ts} {$taxTerm}</td>\n <td> {$value|crmMoney:$currency}</td>\n {/if}\n </tr>\n {/foreach}\n {/if}\n {/if}\n {if $totalTaxAmount}\n <tr>\n <td {$labelStyle}>\n {ts}Total Tax Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$totalTaxAmount|crmMoney:$currency}\n </td>\n </tr>\n {/if}\n <tr>\n <td {$labelStyle}>\n {ts}Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney} {if isset($amount_level)} - {$amount_level}{/if}\n </td>\n </tr>\n\n {/if}\n\n\n {elseif isset($membership_amount)}\n\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Fee{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$membership_name}%1 Membership{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_amount|crmMoney}\n </td>\n </tr>\n\n\n {/if}\n\n {if !empty($receive_date)}\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$receive_date|crmDate}\n </td>\n </tr>\n {/if}\n\n {if !empty($is_monetary) and !empty($trxn_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$trxn_id}\n </td>\n </tr>\n {/if}\n\n {if !empty($membership_trx_id)}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Transaction #{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_trx_id}\n </td>\n </tr>\n {/if}\n {if !empty($is_recur)}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts}This membership will be renewed automatically.{/ts}\n {if $cancelSubscriptionUrl}\n {ts 1=$cancelSubscriptionUrl}You can cancel the auto-renewal option by <a href=\"%1\">visiting this web page</a>.{/ts}\n {/if}\n </td>\n </tr>\n {if $updateSubscriptionBillingUrl}\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {ts 1=$updateSubscriptionBillingUrl}You can update billing details for this automatically renewed membership by <a href=\"%1\">visiting this web page</a>.{/ts}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if $honor_block_is_active}\n <tr>\n <th {$headerStyle}>\n {$soft_credit_type}\n </th>\n </tr>\n {foreach from=$honoreeProfile item=value key=label}\n <tr>\n <td {$labelStyle}>\n {$label}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($pcpBlock)}\n <tr>\n <th {$headerStyle}>\n {ts}Personal Campaign Page{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Display In Honor Roll{/ts}\n </td>\n <td {$valueStyle}>\n {if $pcp_display_in_roll}{ts}Yes{/ts}{else}{ts}No{/ts}{/if}\n </td>\n </tr>\n {if $pcp_roll_nickname}\n <tr>\n <td {$labelStyle}>\n {ts}Nickname{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_roll_nickname}\n </td>\n </tr>\n {/if}\n {if $pcp_personal_note}\n <tr>\n <td {$labelStyle}>\n {ts}Personal Note{/ts}\n </td>\n <td {$valueStyle}>\n {$pcp_personal_note}\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($onBehalfProfile)}\n <tr>\n <th {$headerStyle}>\n {$onBehalfProfile_grouptitle}\n </th>\n </tr>\n {foreach from=$onBehalfProfile item=onBehalfValue key=onBehalfName}\n <tr>\n <td {$labelStyle}>\n {$onBehalfName}\n </td>\n <td {$valueStyle}>\n {$onBehalfValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($billingName)}\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n {elseif !empty($email)}\n <tr>\n <th {$headerStyle}>\n {ts}Registered Email{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$email}\n </td>\n </tr>\n {/if}\n\n {if !empty($credit_card_type)}\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n {/if}\n\n {if !empty($selectPremium)}\n <tr>\n <th {$headerStyle}>\n {ts}Premium Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$labelStyle}>\n {$product_name}\n </td>\n </tr>\n {if $option}\n <tr>\n <td {$labelStyle}>\n {ts}Option{/ts}\n </td>\n <td {$valueStyle}>\n {$option}\n </td>\n </tr>\n {/if}\n {if $sku}\n <tr>\n <td {$labelStyle}>\n {ts}SKU{/ts}\n </td>\n <td {$valueStyle}>\n {$sku}\n </td>\n </tr>\n {/if}\n {if $start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $end_date}\n <tr>\n <td {$labelStyle}>\n {ts}End Date{/ts}\n </td>\n <td {$valueStyle}>\n {$end_date|crmDate}\n </td>\n </tr>\n {/if}\n {if !empty($contact_email) OR !empty($contact_phone)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts}For information about this premium, contact:{/ts}</p>\n {if !empty($contact_email)}\n <p>{$contact_email}</p>\n {/if}\n {if !empty($contact_phone)}\n <p>{$contact_phone}</p>\n {/if}\n </td>\n </tr>\n {/if}\n {if $is_deductible AND !empty($price)}\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$price|crmMoney}The value of this premium is %1. This may affect the amount of the tax deduction you can claim. Consult your tax advisor for more information.{/ts}</p>\n </td>\n </tr>\n {/if}\n {/if}\n\n {if !empty($customPre)}\n <tr>\n <th {$headerStyle}>\n {$customPre_grouptitle}\n </th>\n </tr>\n {foreach from=$customPre item=customValue key=customName}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/foreach}\n {/if}\n\n {if !empty($customPost)}\n <tr>\n <th {$headerStyle}>\n {$customPost_grouptitle}\n </th>\n </tr>\n {foreach from=$customPost item=customValue key=customName}\n {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)}\n <tr>\n <td {$labelStyle}>\n {$customName}\n </td>\n <td {$valueStyle}>\n {$customValue}\n </td>\n </tr>\n {/if}\n {/foreach}\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,836,'membership_online_receipt',0,1,0,NULL), + (49,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Status{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_status}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_cancelled',1,0,0,NULL), + (50,'Memberships - Auto-renew Cancellation Notification','{ts}Autorenew Membership Cancellation Notification{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}\n\n===========================================================\n{ts}Membership Information{/ts}\n\n===========================================================\n{ts}Membership Status{/ts}: {$membership_status}\n{if $mem_start_date}{ts}Membership Start Date{/ts}: {$mem_start_date|crmDate}\n{/if}\n{if $mem_end_date}{ts}Membership Expiration Date{/ts}: {$mem_end_date|crmDate}\n{/if}\n\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}The automatic renewal of your %1 membership has been cancelled as requested. This does not affect the status of your membership - you will receive a separate notification when your membership is up for renewal.{/ts}</p>\n\n </td>\n </tr>\n </table>\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n\n <tr>\n <th {$headerStyle}>\n {ts}Membership Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Membership Status{/ts}\n </td>\n <td {$valueStyle}>\n {$membership_status}\n </td>\n </tr>\n {if $mem_start_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Start Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_start_date|crmDate}\n </td>\n </tr>\n {/if}\n {if $mem_end_date}\n <tr>\n <td {$labelStyle}>\n {ts}Membership Expiration Date{/ts}\n </td>\n <td {$valueStyle}>\n {$mem_end_date|crmDate}\n </td>\n </tr>\n {/if}\n\n </table>\n\n</body>\n</html>\n',1,837,'membership_autorenew_cancelled',0,1,0,NULL), + (51,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,838,'membership_autorenew_billing',1,0,0,NULL), + (52,'Memberships - Auto-renew Billing Updates','{ts}Membership Autorenewal Billing Updates{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}\n\n===========================================================\n{ts}Billing Name and Address{/ts}\n\n===========================================================\n{$billingName}\n{$address}\n\n{$email}\n\n===========================================================\n{ts}Credit Card Information{/ts}\n\n===========================================================\n{$credit_card_type}\n{$credit_card_number}\n{ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}\n\n\n{ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$membershipType}Billing details for your automatically renewed %1 membership have been updated.{/ts}</p>\n </td>\n </tr>\n <tr>\n </table>\n\n <table style=\"width:100%; max-width:500px; border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse;\">\n <tr>\n <th {$headerStyle}>\n {ts}Billing Name and Address{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$billingName}<br />\n {$address|nl2br}<br />\n {$email}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Credit Card Information{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n {$credit_card_type}<br />\n {$credit_card_number}<br />\n {ts}Expires{/ts}: {$credit_card_exp_date|truncate:7:\'\'|crmDate}<br />\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts 1=$receipt_from_email}If you have questions please contact us at %1{/ts}\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,838,'membership_autorenew_billing',0,1,0,NULL), + (53,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n',' <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr>\n <td>\n <p>{ts}Test-drive Email / Receipt{/ts}</p>\n <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n </td>\n </tr>\n </table>\n',1,839,'test_preview',1,0,0,NULL), + (54,'Test-drive - Receipt Header','[TEST]\n','***********************************************************\n\n{ts}Test-drive Email / Receipt{/ts}\n\n{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}\n\n***********************************************************\n',' <table id=\"crm-event_receipt_test\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n <tr>\n <td>\n <p>{ts}Test-drive Email / Receipt{/ts}</p>\n <p>{ts}This is a test-drive email. No live financial transaction has occurred.{/ts}</p>\n </td>\n </tr>\n </table>\n',1,839,'test_preview',0,1,0,NULL), + (55,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Thank you for your generous pledge.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$total_pledge_amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Payment Schedule{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n {if $frequency_day}\n <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n {/if}\n </td>\n </tr>\n\n {if $payments}\n {assign var=\"count\" value=\"1\"}\n {foreach from=$payments item=payment}\n <tr>\n <td {$labelStyle}>\n {ts 1=$count}Payment %1{/ts}\n </td>\n <td {$valueStyle}>\n {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n </td>\n </tr>\n {assign var=\"count\" value=`$count+1`}\n {/foreach}\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n </td>\n </tr>\n\n {if $customGroup}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,840,'pledge_acknowledge',1,0,0,NULL), + (56,'Pledges - Acknowledgement','{ts}Thank you for your Pledge{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts}Thank you for your generous pledge.{/ts}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$total_pledge_amount|crmMoney:$currency}\n\n===========================================================\n{ts}Payment Schedule{/ts}\n\n===========================================================\n{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}\n\n{if $frequency_day}\n\n{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}\n{/if}\n\n{if $payments}\n{assign var=\"count\" value=\"1\"}\n{foreach from=$payments item=payment}\n\n{ts 1=$count}Payment %1{/ts}: {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n{assign var=\"count\" value=`$count+1`}\n{/foreach}\n{/if}\n\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n{if $customGroup}\n{foreach from=$customGroup item=value key=customName}\n===========================================================\n{$customName}\n===========================================================\n{foreach from=$value item=v key=n}\n{$n}: {$v}\n{/foreach}\n{/foreach}\n{/if}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts}Thank you for your generous pledge.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$total_pledge_amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <th {$headerStyle}>\n {ts}Payment Schedule{/ts}\n </th>\n </tr>\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=$scheduled_amount|crmMoney:$currency 2=$frequency_interval 3=$frequency_unit 4=$installments}%1 every %2 %3 for %4 installments.{/ts}</p>\n\n {if $frequency_day}\n <p>{ts 1=$frequency_day 2=$frequency_unit}Payments are due on day %1 of the %2.{/ts}</p>\n {/if}\n </td>\n </tr>\n\n {if $payments}\n {assign var=\"count\" value=\"1\"}\n {foreach from=$payments item=payment}\n <tr>\n <td {$labelStyle}>\n {ts 1=$count}Payment %1{/ts}\n </td>\n <td {$valueStyle}>\n {$payment.amount|crmMoney:$currency} {if $payment.status eq 1}{ts}paid{/ts} {$payment.receive_date|truncate:10:\'\'|crmDate}{else}{ts}due{/ts} {$payment.due_date|truncate:10:\'\'|crmDate}{/if}\n </td>\n </tr>\n {assign var=\"count\" value=`$count+1`}\n {/foreach}\n {/if}\n\n <tr>\n <td colspan=\"2\" {$valueStyle}>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n </td>\n </tr>\n\n {if $customGroup}\n {foreach from=$customGroup item=value key=customName}\n <tr>\n <th {$headerStyle}>\n {$customName}\n </th>\n </tr>\n {foreach from=$value item=v key=n}\n <tr>\n <td {$labelStyle}>\n {$n}\n </td>\n <td {$valueStyle}>\n {$v}\n </td>\n </tr>\n {/foreach}\n {/foreach}\n {/if}\n\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,840,'pledge_acknowledge',0,1,0,NULL), + (57,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'} Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank you for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Payment Due{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Amount Due{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_due|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n {if $contribution_page_id}\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n {else}\n <p>{ts}Please mail your payment to{/ts}: {domain.address}</p>\n {/if}\n </td>\n </tr>\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_paid|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n <p>{ts}Thank you for your generous support.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,841,'pledge_reminder',1,0,0,NULL), + (58,'Pledges - Payment Reminder','{ts}Pledge Payment Reminder{/ts} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\n{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}\n\n===========================================================\n{ts}Payment Due{/ts}\n\n===========================================================\n{ts}Amount Due{/ts}: {$amount_due|crmMoney:$currency}\n{ts}Due Date{/ts}: {$scheduled_payment_date|truncate:10:\'\'|crmDate}\n\n{if $contribution_page_id}\n{capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\nClick this link to go to a web page where you can make your payment online:\n{$contributionUrl}\n{else}\n{ts}Please mail your payment to{/ts}:\n{domain.address}\n{/if}\n\n===========================================================\n{ts}Pledge Information{/ts}\n\n===========================================================\n{ts}Pledge Received{/ts}: {$create_date|truncate:10:\'\'|crmDate}\n{ts}Total Pledge Amount{/ts}: {$amount|crmMoney:$currency}\n{ts}Total Paid{/ts}: {$amount_paid|crmMoney:$currency}\n\n{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'} Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}\n\n\n{ts}Thank you for your generous support.{/ts}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n {assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n <p>{ts 1=$next_payment|truncate:10:\'\'|crmDate}This is a reminder that the next payment on your pledge is due on %1.{/ts}</p>\n </td>\n </tr>\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Payment Due{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Amount Due{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_due|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n {if $contribution_page_id}\n {capture assign=contributionUrl}{crmURL p=\'civicrm/contribute/transact\' q=\"reset=1&id=`$contribution_page_id`&cid=`{contact.id}`&pledgeId=`$pledge_id`&cs=`$checksumValue`\" a=true h=0 fe=1}{/capture}\n <p><a href=\"{$contributionUrl}\">{ts}Go to a web page where you can make your payment online{/ts}</a></p>\n {else}\n <p>{ts}Please mail your payment to{/ts}: {domain.address}</p>\n {/if}\n </td>\n </tr>\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <th {$headerStyle}>\n {ts}Pledge Information{/ts}\n </th>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Pledge Received{/ts}\n </td>\n <td {$valueStyle}>\n {$create_date|truncate:10:\'\'|crmDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Pledge Amount{/ts}\n </td>\n <td {$valueStyle}>\n {$amount|crmMoney:$currency}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Total Paid{/ts}\n </td>\n <td {$valueStyle}>\n {$amount_paid|crmMoney:$currency}\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td>\n <p>{ts 1=\'{domain.phone}\' 2=\'{domain.email}\'}Please contact us at %1 or send email to %2 if you have questions\nor need to modify your payment schedule.{/ts}</p>\n <p>{ts}Thank you for your generous support.{/ts}</p>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,841,'pledge_reminder',0,1,0,NULL), + (59,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Submitted For{/ts}\n </td>\n <td {$valueStyle}>\n {$displayName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$currentDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contact Summary{/ts}\n </td>\n <td {$valueStyle}>\n {$contactLink}\n </td>\n </tr>\n\n <tr>\n <th {$headerStyle}>\n {$grouptitle}\n </th>\n </tr>\n\n {foreach from=$values item=value key=valueName}\n <tr>\n <td {$labelStyle}>\n {$valueName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,842,'uf_notify',1,0,0,NULL), + (60,'Profiles - Admin Notification','{$grouptitle} {ts 1=$displayName}Submitted by %1{/ts} - {contact.display_name}\n','{ts}Submitted For:{/ts} {$displayName}\n{ts}Date:{/ts} {$currentDate}\n{ts}Contact Summary:{/ts} {$contactLink}\n\n===========================================================\n{$grouptitle}\n\n===========================================================\n{foreach from=$values item=value key=valueName}\n{$valueName}: {$value}\n{/foreach}\n','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n{capture assign=headerStyle}colspan=\"2\" style=\"text-align: left; padding: 4px; border-bottom: 1px solid #999; background-color: #eee;\"{/capture}\n{capture assign=labelStyle }style=\"padding: 4px; border-bottom: 1px solid #999; background-color: #f7f7f7;\"{/capture}\n{capture assign=valueStyle }style=\"padding: 4px; border-bottom: 1px solid #999;\"{/capture}\n\n <table id=\"crm-event_receipt\" style=\"font-family: Arial, Verdana, sans-serif; text-align: left; width:100%; max-width:700px; padding:0; margin:0; border:0px;\">\n\n <!-- BEGIN HEADER -->\n <!-- You can add table row(s) here with logo or other header elements -->\n <!-- END HEADER -->\n\n <!-- BEGIN CONTENT -->\n\n <tr>\n <td>\n <table style=\"border: 1px solid #999; margin: 1em 0em 1em; border-collapse: collapse; width:100%;\">\n <tr>\n <td {$labelStyle}>\n {ts}Submitted For{/ts}\n </td>\n <td {$valueStyle}>\n {$displayName}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Date{/ts}\n </td>\n <td {$valueStyle}>\n {$currentDate}\n </td>\n </tr>\n <tr>\n <td {$labelStyle}>\n {ts}Contact Summary{/ts}\n </td>\n <td {$valueStyle}>\n {$contactLink}\n </td>\n </tr>\n\n <tr>\n <th {$headerStyle}>\n {$grouptitle}\n </th>\n </tr>\n\n {foreach from=$values item=value key=valueName}\n <tr>\n <td {$labelStyle}>\n {$valueName}\n </td>\n <td {$valueStyle}>\n {$value}\n </td>\n </tr>\n {/foreach}\n </table>\n </td>\n </tr>\n\n </table>\n\n</body>\n</html>\n',1,842,'uf_notify',0,1,0,NULL), + (61,'Petition - signature added','Thank you for signing {survey.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {survey.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {survey.title}.</p>\n\n{capture assign=petitionURL}{crmURL p=\'civicrm/petition/sign\' q=\"sid={survey.id}\" a=1 fe=1 h=1}{/capture}\n{include file=\"CRM/common/SocialNetwork.tpl\" url=$petitionURL title=\'{survey.title}\' pageURL=$petitionURL petition_id=\'{survey.id}\' noscript=true emailMode=true}\n',1,843,'petition_sign',1,0,0,NULL), + (62,'Petition - signature added','Thank you for signing {survey.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {survey.title}.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {survey.title}.</p>\n\n{capture assign=petitionURL}{crmURL p=\'civicrm/petition/sign\' q=\"sid={survey.id}\" a=1 fe=1 h=1}{/capture}\n{include file=\"CRM/common/SocialNetwork.tpl\" url=$petitionURL title=\'{survey.title}\' pageURL=$petitionURL petition_id=\'{survey.id}\' noscript=true emailMode=true}\n',1,843,'petition_sign',0,1,0,NULL), + (63,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,844,'petition_confirmation_needed',1,0,0,NULL), + (64,'Petition - need verification','Confirmation of signature needed for {$petition.title} - {contact.display_name}\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}{$greeting},{/if}\n\nThank you for signing {$petition.title}.\n\nIn order to complete your signature, we must confirm your e-mail.\nPlease do so by visiting the following email confirmation web page:\n\n{$petition.confirmUrlPlainText}\n\nIf you did not sign this petition, please ignore this message.\n','{assign var=\"greeting\" value=\"{contact.email_greeting_display}\"}{if $greeting}<p>{$greeting},</p>{/if}\n\n<p>Thank you for signing {$petition.title}.</p>\n\n<p>In order to <b>complete your signature</b>, we must confirm your e-mail.\n<br />\nPlease do so by visiting the following web page by clicking\non the link below or pasting the link into your browser.\n<br /><br />\nEmail confirmation page: <a href=\"{$petition.confirmUrl}\">{$petition.confirmUrl}</a></p>\n\n<p>If you did not sign this petition, please ignore this message.</p>\n',1,844,'petition_confirmation_needed',0,1,0,NULL), (65,'Sample CiviMail Newsletter Template','Sample CiviMail Newsletter','','<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />\n <title></title>\n</head>\n<body>\n\n<table width=612 cellpadding=0 cellspacing=0 bgcolor=\"#ffffff\">\n <tr>\n <td colspan=\"2\" bgcolor=\"#ffffff\" valign=\"middle\" >\n <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" >\n <tr>\n <td>\n <a href=\"https://civicrm.org\"><img src=\"https://civicrm.org/sites/civicrm.org/files/top-logo_2.png\" border=0 alt=\"Replace this logo with the URL to your own\"></a>\n </td>\n <td> </td>\n <td>\n <a href=\"https://civicrm.org\" style=\"text-decoration: none;\"><font size=5 face=\"Arial, Verdana, sans-serif\" color=\"#8bc539\">Your Newsletter Title</font></a>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td valign=\"top\" width=\"70%\">\n <!-- left column -->\n <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td style=\"font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n Greetings {contact.display_name},\n <br /><br />\n This is a sample template designed to help you get started creating and sending your own CiviMail messages. This template uses an HTML layout that is generally compatible with the wide variety of email clients that your recipients might be using (e.g. Gmail, Outlook, Yahoo, etc.).\n <br /><br />You can select this \"Sample CiviMail Newsletter Template\" from the \"Use Template\" drop-down in Step 3 of creating a mailing, and customize it to your needs. Then check the \"Save as New Template\" box on the bottom the page to save your customized version for use in future mailings.\n <br /><br />The logo you use must be uploaded to your server. Copy and paste the URL path to the logo into the <img src= tag in the HTML at the top. Click \"Source\" or the Image button if you are using the text editor.\n <br /><br />\n Edit the color of the links and headers using the color button or by editing the HTML.\n <br /><br />\n Your newsletter message and donation appeal can go here. Click the link button to <a href=\"#\">create links</a> - remember to use a fully qualified URL starting with http:// in all your links!\n <br /><br />\n To use CiviMail:\n <ul>\n <li><a href=\"http://book.civicrm.org/user/advanced-configuration/email-system-configuration/\">Configure your Email System</a>.</li>\n <li>Make sure your web hosting provider allows outgoing bulk mail, and see if they have a restriction on quantity. If they don\'t allow bulk mail, consider <a href=\"https://civicrm.org/providers/hosting\">finding a new host</a>.</li>\n </ul>\n Sincerely,\n <br /><br />\n Your Team\n <br /><br />\n </font>\n </td>\n </tr>\n </table>\n </td>\n\n <td valign=\"top\" width=\"30%\" bgcolor=\"#ffffff\" style=\"border: 1px solid #056085;\">\n <!-- right column -->\n <table cellpadding=10 cellspacing=0 border=0>\n <tr>\n <td bgcolor=\"#056085\"><font face=\"Arial, Verdana, sans-serif\" size=\"4\" color=\"#ffffff\">News and Events</font></td>\n </tr>\n <tr>\n <td style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 12px;\" >\n <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n <font color=\"#056085\"><strong>Featured Events</strong> </font><br />\n Fundraising Dinner<br />\n Training Meeting<br />\n Board of Directors Annual Meeting<br />\n\n <br /><br />\n <font color=\"#056085\"><strong>Community Events</strong></font><br />\n Bake Sale<br />\n Charity Auction<br />\n Art Exhibit<br />\n\n <br /><br />\n <font color=\"#056085\"><strong>Important Dates</strong></font><br />\n Tuesday August 27<br />\n Wednesday September 8<br />\n Thursday September 29<br />\n Saturday October 1<br />\n Sunday October 20<br />\n </font>\n </td>\n </tr>\n </table>\n </td>\n </tr>\n\n <tr>\n <td colspan=\"2\">\n <table cellpadding=\"10\" cellspacing=\"0\" border=\"0\">\n <tr>\n <td>\n <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n <font color=\"#7dc857\"><strong>Helpful Tips</strong></font>\n <br /><br />\n <font color=\"#3b5187\">Tokens</font><br />\n Click \"Insert Tokens\" to dynamically insert names, addresses, and other contact data of your recipients.\n <br /><br />\n <font color=\"#3b5187\">Plain Text Version</font><br />\n Some people refuse HTML emails altogether. We recommend sending a plain-text version of your important communications to accommodate them. Luckily, CiviCRM accommodates for this! Just click \"Plain Text\" and copy and paste in some text. Line breaks (carriage returns) and fully qualified URLs like http://www.example.com are all you get, no HTML here!\n <br /><br />\n <font color=\"#3b5187\">Play by the Rules</font><br />\n The address of the sender is required by the Can Spam Act law. This is an available token called domain.address. An unsubscribe or opt-out link is also required. There are several available tokens for this. <em>{action.optOutUrl}</em> creates a link for recipients to click if they want to opt out of receiving emails from your organization. <em>{action.unsubscribeUrl}</em> creates a link to unsubscribe from the specific mailing list used to send this message. Click on \"Insert Tokens\" to find these and look for tokens named \"Domain\" or \"Unsubscribe\". This sample template includes both required tokens at the bottom of the message. You can also configure a default Mailing Footer containing these tokens.\n <br /><br />\n <font color=\"#3b5187\">Composing Offline</font><br />\n If you prefer to compose an HTML email offline in your own text editor, you can upload this HTML content into CiviMail or simply click \"Source\" and then copy and paste the HTML in.\n <br /><br />\n <font color=\"#3b5187\">Images</font><br />\n Most email clients these days (Outlook, Gmail, etc) block image loading by default. This is to protect their users from annoying or harmful email. Not much we can do about this, so encourage recipients to add you to their contacts or \"whitelist\". Also use images sparingly, do not rely on images to convey vital information, and always use HTML \"alt\" tags which describe the image content.\n </td>\n </tr>\n </table>\n </td>\n </tr>\n <tr>\n <td colspan=\"2\" style=\"color: #000; font-family: Arial, Verdana, sans-serif; font-size: 10px;\">\n <font face=\"Arial, Verdana, sans-serif\" size=\"2\" >\n <hr />\n <a href=\"{action.unsubscribeUrl}\" title=\"click to unsubscribe\">Click here</a> to unsubscribe from this mailing list.<br /><br />\n Our mailing address is:<br />\n {domain.address}\n </td>\n </tr>\n </table>\n\n</body>\n</html>\n',1,NULL,NULL,1,0,0,NULL), (66,'Sample Responsive Design Newsletter - Single Column Template','Sample Responsive Design Newsletter - Single Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n<meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n <title></title>\n\n <style type=\"text/css\">\n {literal}\n /* Client-specific Styles */\n #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n a img {border:none;}\n .image_fix {display:block;}\n p {margin: 0px 0px !important;}\n table td {border-collapse: collapse;}\n table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n a {text-decoration: none;text-decoration:none;}\n\n /*STYLES*/\n table[class=full] { width: 100%; clear: both; }\n\n /*IPAD STYLES*/\n @media only screen and (max-width: 640px) {\n a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: none;cursor: default;}\n .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color:#136388;pointer-events: auto;cursor: default;}\n table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n table[class=devicewidthmob] {width: 416px!important;text-align:center!important;}\n table[class=devicewidthinner] {width: 416px!important;text-align:center!important;}\n img[class=banner] {width: 440px!important;auto!important;}\n img[class=col2img] {width: 440px!important;height:auto!important;}\n table[class=\"cols3inner\"] {width: 100px!important;}\n table[class=\"col3img\"] {width: 131px!important;}\n img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n table[class=\"removeMobile\"]{width:10px!important;}\n img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n }\n\n /*IPHONE STYLES*/\n @media only screen and (max-width: 480px) {\n a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #136388;pointer-events: none;cursor: default;}\n .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: none;color:#136388;pointer-events: auto;cursor: default;}\n\n table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n img[class=banner] {width: 280px!important;height:100px!important;}\n img[class=col2img] {width: 280px!important;height:auto!important;}\n table[class=\"cols3inner\"] {width: 260px!important;}\n img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n table[class=\"col3img\"] {width: 280px!important;}\n img[class=\"blog\"] {width: 280px!important;auto!important;}\n td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n td[class=\"padding-right15\"]{padding-right:15px !important;}\n }\n\n @media only screen and (max-device-width: 800px)\n {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n td[class=\"padding-right15\"]{padding-right:15px !important;}}\n @media only screen and (max-device-width: 769px) {\n .devicewidthmob {font-size:16px;}\n }\n\n @media only screen and (max-width: 640px) {\n .desktop-spacer {display:none !important;}\n }\n {/literal}\n </style>\n\n<body>\n <!-- Start of preheader --><!-- Start of preheader -->\n <table bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- Spacing -->\n <tr>\n <td height=\"20\" width=\"100%\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"310\">\n <tbody>\n <tr>\n <td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; line-height:120%; color: #f8f8f8;padding-left:15px; padding-bottom:5px;\" valign=\"middle\">Organization or Program Name Here</td>\n </tr>\n </tbody>\n </table>\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"310\">\n <tbody>\n <tr>\n <td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px; text-align:right;\" valign=\"middle\">Month and Year</td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"20\" width=\"100%\"> </td>\n </tr>\n <!-- Spacing -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- End of main-banner-->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- Spacing -->\n <tr>\n <td height=\"20\" width=\"100%\">\n <table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n <tbody>\n <tr>\n <td rowspan=\"2\" style=\"padding-top:10px; padding-bottom:10px;\" width=\"38%\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" /></td>\n <td align=\"right\" width=\"62%\">\n <h6 class=\"collapse\"> </h6>\n </td>\n </tr>\n <tr>\n <td align=\"right\">\n <h5 style=\"font-family: Gill Sans, Gill Sans MT, Myriad Pro, DejaVu Sans Condensed, Helvetica, Arial, sans-serif; color:#136388;\"> </h5>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- /Spacing -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 23px; color:#f8f8f8; text-align:left; line-height: 32px; padding:5px 15px; background-color:#136388;\">Headline Here</td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n <tbody><!-- hero story -->\n <tr>\n <td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n <div class=\"imgpop\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/650x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n </td>\n </tr>\n <!-- /hero image --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 26px; padding:0 15px; color:#89c66b;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading Here</a></td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- content -->\n <tr>\n <td style=\"padding:0 15px;\">\n <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">{contact.email_greeting_display}, </p>\n <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></p>\n </td>\n </tr>\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n </tr>\n <!-- /button --><!-- Spacing -->\n <tr>\n <td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing --><!-- end of content -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- end of hero image and story --><!-- story 1 -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"250\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n </td>\n </tr>\n <!-- /image --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#89c66b;\">Your Heading Here</a></td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- content -->\n <tr>\n <td style=\"padding:0 15px;\">\n <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #7a6e67; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n </td>\n </tr>\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#136388;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n </tr>\n <!-- /button --><!-- Spacing -->\n <tr>\n <td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing --><!-- end of content -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /story 2--><!-- banner1 -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n </td>\n </tr>\n <!-- /image --><!-- content --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing -->\n <tr>\n <td style=\"padding:15px;\">\n <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna </p>\n </td>\n </tr>\n <!-- /button --><!-- white button -->\n <!-- /button --><!-- Spacing --><!-- end of content -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /banner 1--><!-- banner 2 -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#136388\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"650\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"auto\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/banner-image-650-250.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"650\" /></a></div>\n </td>\n </tr>\n <!-- /image --><!-- content --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing -->\n <tr>\n <td style=\"padding: 15px;\">\n <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color: #f0f0f0; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n </td>\n </tr>\n <!-- /button --><!-- white button -->\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px; padding-bottom:10px; padding-left:15px;\"><a href=\"#\" style=\"color:#ffffff;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"read more\">Read More</a></td>\n </tr>\n <!-- /button --><!-- Spacing --><!-- end of content -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /banner2 --><!-- footer -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"650\">\n <tbody><!-- Spacing -->\n <tr>\n <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td><!-- logo -->\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n <tbody>\n <tr>\n <td width=\"20\"> </td>\n <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0; \">Unsubscribe | </a><a href=\"{action.subscribeUrl}\" style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n </tr>\n <tr>\n <td width=\"20\"> </td>\n <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n </tr>\n </tbody>\n </table>\n <!-- end of logo --><!-- start of social icons -->\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n <tbody>\n <tr>\n <td align=\"left\" height=\"22\" width=\"22\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n </td>\n <td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\"> </td>\n <td align=\"right\" height=\"22\" width=\"22\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n </td>\n <td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\"> </td>\n </tr>\n </tbody>\n </table>\n <!-- end of social icons --></td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n\n</body>\n</html>\n',1,NULL,NULL,1,0,0,NULL), (67,'Sample Responsive Design Newsletter - Two Column Template','Sample Responsive Design Newsletter - Two Column','','<html xmlns=\"http://www.w3.org/1999/xhtml\">\n <meta content=\"text/html; charset=utf-8\" http-equiv=\"Content-Type\" />\n <meta content=\"width=device-width, initial-scale=1.0\" name=\"viewport\" />\n <title></title>\n <style type=\"text/css\">\n {literal}\n img {height: auto !important;}\n /* Client-specific Styles */\n #outlook a {padding:0;} /* Force Outlook to provide a \"view in browser\" menu link. */\n body{width:100% !important; -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; margin:0; padding:0;}\n\n /* Prevent Webkit and Windows Mobile platforms from changing default font sizes, while not breaking desktop design. */\n .ExternalClass {width:100%;} /* Force Hotmail to display emails at full width */\n .ExternalClass, .ExternalClass p, .ExternalClass span, .ExternalClass font, .ExternalClass td, .ExternalClass div {line-height: 100%;} /* Force Hotmail to display normal line spacing. */\n #backgroundTable {margin:0; padding:0; width:100% !important; line-height: 100% !important;}\n img {outline:none; text-decoration:none;border:none; -ms-interpolation-mode: bicubic;}\n a img {border:none;}\n .image_fix {display:block;}\n p {margin: 0px 0px !important;}\n table td {border-collapse: collapse;}\n table { border-collapse:collapse; mso-table-lspace:0pt; mso-table-rspace:0pt; }\n a {/*color: #33b9ff;*/text-decoration: none;text-decoration:none!important;}\n\n\n /*STYLES*/\n table[class=full] { width: 100%; clear: both; }\n\n /*IPAD STYLES*/\n @media only screen and (max-width: 640px) {\n a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important;pointer-events: auto;cursor: default;}\n table[class=devicewidth] {width: 440px!important;text-align:center!important;}\n table[class=devicewidthmob] {width: 414px!important;text-align:center!important;}\n table[class=devicewidthinner] {width: 414px!important;text-align:center!important;}\n img[class=banner] {width: 440px!important;auto!important;}\n img[class=col2img] {width: 440px!important;height:auto!important;}\n table[class=\"cols3inner\"] {width: 100px!important;}\n table[class=\"col3img\"] {width: 131px!important;}\n img[class=\"col3img\"] {width: 131px!important;height: auto!important;}\n table[class=\"removeMobile\"]{width:10px!important;}\n img[class=\"blog\"] {width: 440px!important;height: auto!important;}\n }\n\n /*IPHONE STYLES*/\n @media only screen and (max-width: 480px) {\n a[href^=\"tel\"], a[href^=\"sms\"] {text-decoration: none;color: #0a8cce;pointer-events: none;cursor: default;}\n .mobile_link a[href^=\"tel\"], .mobile_link a[href^=\"sms\"] {text-decoration: default;color: #0a8cce !important; pointer-events: auto;cursor: default;}\n table[class=devicewidth] {width: 280px!important;text-align:center!important;}\n table[class=devicewidthmob] {width: 260px!important;text-align:center!important;}\n table[class=devicewidthinner] {width: 260px!important;text-align:center!important;}\n img[class=banner] {width: 280px!important;height:100px!important;}\n img[class=col2img] {width: 280px!important;height:auto!important;}\n table[class=\"cols3inner\"] {width: 260px!important;}\n img[class=\"col3img\"] {width: 280px!important;height: auto!important;}\n table[class=\"col3img\"] {width: 280px!important;}\n img[class=\"blog\"] {width: 280px!important;auto!important;}\n td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n td[class=\"padding-right15\"]{padding-right:15px !important;}\n }\n\n @media only screen and (max-device-width: 800px)\n {td[class=\"padding-top-right15\"]{padding:15px 15px 0 0 !important;}\n td[class=\"padding-right15\"]{padding-right:15px !important;}}\n @media only screen and (max-device-width: 769px) {.devicewidthmob {font-size:14px;}}\n\n @media only screen and (max-width: 640px) {.desktop-spacer {display:none !important;}\n }\n {/literal}\n </style>\n <body>\n <!-- Start of preheader --><!-- Start of preheader -->\n <table bgcolor=\"#0B4151\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- Spacing -->\n <tr>\n <td height=\"20\" width=\"100%\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"360\">\n <tbody>\n <tr>\n <td align=\"left\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; line-height:120%; color: #f8f8f8;padding-left:15px;\" valign=\"middle\">Organization or Program Name Here</td>\n </tr>\n </tbody>\n </table>\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"emhide\" width=\"320\">\n <tbody>\n <tr>\n <td align=\"right\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px;color: #f8f8f8;padding-right:15px;\" valign=\"middle\">Month Year</td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"20\" width=\"100%\"> </td>\n </tr>\n <!-- Spacing -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- End of preheader --><!-- start of logo -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- Spacing -->\n <tr>\n <td height=\"20\" width=\"100%\">\n <table align=\"center\" border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"93%\">\n <tbody>\n <tr>\n <td rowspan=\"2\" width=\"330\"><a href=\"#\"> <div class=\"imgpop\"><img src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/civicrm-logo-transparent.png\" alt=\"Replace with your own logo\" width=\"220\" border=\"0\" style=\"display:block;\"/></div></a></td>\n <td align=\"right\" >\n <h6 class=\"collapse\"> </h6>\n </td>\n </tr>\n <tr>\n <td align=\"right\">\n\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- end of logo --> <!-- hero story 1 -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"101%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#f8f8f8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- /Spacing -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Hero Story Heading</td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthinner\" width=\"700\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidthinner\" width=\"100%\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" class=\"blog\" height=\"396\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/700x396.png\" style=\"display:block; border:none; outline:none; text-decoration:none; padding:0; line-height:0;\" width=\"700\" /></a></div>\n </td>\n </tr>\n <!-- /image --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- hero story -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 26px; padding:0 15px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Subheading Here</a></td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr><!-- /Spacing -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 26px; padding:0 15px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Replace with your text and images, and remember to link the facebook and twitter links in the footer to your pages. Have fun!</span></td>\n </tr>\n\n <!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr><!-- /Spacing -->\n\n <!-- /Spacing --><!-- /hero story -->\n\n <!-- Spacing --> <!-- Spacing -->\n\n\n\n <!-- Spacing --><!-- end of content -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Section Heading -->\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 24px; color:#f8f8f8; text-align:left; line-height: 26px; padding:5px 15px; background-color: #80C457\">Section Heading Here</td>\n </tr>\n <!-- /Section Heading -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /hero story 1 --><!-- story one -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- Spacing -->\n <tr>\n <td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n <tbody>\n <tr>\n <td><!-- Start of left column -->\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n </tr>\n <!-- /image -->\n </tbody>\n </table>\n <!-- end of left column --><!-- spacing for mobile devices-->\n\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n <tbody>\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n </tbody>\n </table>\n <!-- end of for mobile devices--><!-- start of right column -->\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n <tbody>\n <tr>\n <td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful†Movementâ€going strong\"></a></td>\n </tr>\n <!-- end of title --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- content -->\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna </span></td>\n </tr>\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM helps keep the “City Beautiful†Movementâ€going strong\">Read More</a></td>\n </tr>\n <!-- /button --><!-- end of content -->\n </tbody>\n </table>\n <!-- end of right column --></td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /story one -->\n <!-- story two -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- Spacing -->\n <tr>\n <td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing --><!-- Spacing -->\n <tr>\n <td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n <tbody>\n <tr>\n <td><!-- Start of left column -->\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n </tr>\n <!-- /image -->\n </tbody>\n </table>\n <!-- end of left column --><!-- spacing for mobile devices-->\n\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n <tbody>\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n </tbody>\n </table>\n <!-- end of for mobile devices--><!-- start of right column -->\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n <tbody>\n <tr>\n <td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\"></a></td>\n </tr>\n <!-- end of title --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- content -->\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna </span></td>\n </tr>\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"How CiviCRM will take Tribodar Eco Learning Center to another level\">Read More</a></td>\n </tr>\n <!-- /button --><!-- end of content -->\n </tbody>\n </table>\n <!-- end of right column --></td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /story two --><!-- story three -->\n\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- Spacing -->\n <tr>\n <td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing --><!-- Spacing -->\n <tr>\n <td height=\"20\" class=\"desktop-spacer\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n <tbody>\n <tr>\n <td><!-- Start of left column -->\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n </tr>\n <!-- /image -->\n </tbody>\n </table>\n <!-- end of left column --><!-- spacing for mobile devices-->\n\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n <tbody>\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n </tbody>\n </table>\n <!-- end of for mobile devices--><!-- start of right column -->\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n <tbody>\n <tr>\n <td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px; text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\"></a></td>\n </tr>\n <!-- end of title --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- content -->\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna </span></td>\n </tr>\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"CiviCRM provides a soup-to-nuts open-source solution for Friends of the San Pedro River\">Read More</a></td>\n </tr>\n <!-- /button --><!-- end of content -->\n </tbody>\n </table>\n <!-- end of right column --></td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /story three -->\n\n\n\n\n\n <!-- story four -->\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"left-image\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#ffffff\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <!-- Spacing -->\n <tr>\n <td bgcolor=\"#076187\" height=\"0\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <!-- Spacing -->\n <tr>\n <td class=\"desktop-spacer\" height=\"20\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"660\">\n <tbody>\n <tr>\n <td><!-- Start of left column -->\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"330\">\n <tbody><!-- image -->\n <tr>\n <td align=\"center\" class=\"devicewidth\" height=\"150\" valign=\"top\" width=\"330\"><a href=\"#\"><img alt=\"\" border=\"0\" class=\"col2img\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/330x150.png\" style=\"display:block; border:none; outline:none; text-decoration:none; display:block;\" width=\"330\" /></a></td>\n </tr>\n <!-- /image -->\n </tbody>\n </table>\n <!-- end of left column --><!-- spacing for mobile devices-->\n\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"mobilespacing\">\n <tbody>\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n </tbody>\n </table>\n <!-- end of for mobile devices--><!-- start of right column -->\n\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidthmob\" width=\"310\">\n <tbody>\n <tr>\n <td class=\"padding-top-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 18px;text-align:left; line-height: 24px;\"><a href=\"#\" style=\"color:#076187; text-decoration:none; \" target=\"_blank\">Heading Here</a><a href=\"#\" style=\"color:#076187; text-decoration:none;\" target=\"_blank\" title=\"Google Summer of Code\"></a></td>\n </tr>\n <!-- end of title --><!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing --><!-- content -->\n <tr>\n <td class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\"><span class=\"padding-right15\" style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; color: #7a6e67; text-align:left; line-height: 24px;\">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod\n tempor incididunt ut labore et dolore magna </span></td>\n </tr>\n <tr>\n <td style=\"font-family: Helvetica, arial, sans-serif; font-size: 14px; font-weight:bold; color: #333333; text-align:left;line-height: 24px; padding-top:10px;\"><a href=\"#\" style=\"color:#80C457;text-decoration:none;font-weight:bold;\" target=\"_blank\" title=\"Google Summer of Code\">Read More</a></td>\n </tr>\n <!-- /button --><!-- end of content -->\n </tbody>\n </table>\n <!-- end of right column --></td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"15\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\" width=\"100%\"> </td>\n </tr>\n <!-- /Spacing -->\n <tr>\n <td style=\"padding: 15px;\">\n <p style=\"font-family: Helvetica, arial, sans-serif; font-size: 16px; color:#076187; text-align:left; line-height: 26px; padding-bottom:10px;\">Remember to link the facebook and twitter links below to your pages!</p>\n </td>\n </tr>\n <!-- Spacing -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- /story four -->\n\n <!-- footer -->\n\n <!-- End of footer --><!-- Start of postfooter -->\n <table bgcolor=\"#d8d8d8\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" id=\"backgroundTable\" st-sortable=\"footer\" width=\"100%\">\n <tbody>\n <tr>\n <td>\n <table align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody>\n <tr>\n <td width=\"100%\">\n <table align=\"center\" bgcolor=\"#89c66b\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"devicewidth\" width=\"700\">\n <tbody><!-- Spacing -->\n <tr>\n <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td><!-- logo -->\n <table align=\"left\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"250\">\n <tbody>\n <tr>\n <td width=\"20\"> </td>\n <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px;\"><a href=\"{action.unsubscribeUrl}\" style=\"color: #f0f0f0;\">Unsubscribe | </a><a href=\"{action.subscribeUrl}\" style=\"color: #f0f0f0;\">Subscribe |</a> <a href=\"{action.optOutUrl}\" style=\"color: #f0f0f0;\">Opt out</a></span></td>\n </tr>\n <tr>\n <td width=\"20\"> </td>\n <td align=\"left\" height=\"40\" width=\"250\"><span style=\"font-family: Helvetica, arial, sans-serif; font-size: 13px; text-align:left; line-height: 26px; padding-bottom:10px; color: #f0f0f0;\">{domain.address}</span></td>\n </tr>\n </tbody>\n </table>\n <!-- end of logo --><!-- start of social icons -->\n <table align=\"right\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\" height=\"40\" vaalign=\"middle\" width=\"60\">\n <tbody>\n <tr>\n <td align=\"left\" height=\"22\" width=\"22\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/facebook.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div> </td>\n <td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"10\"> </td>\n <td align=\"right\" height=\"22\" width=\"22\">\n <div class=\"imgpop\"><a href=\"#\" target=\"_blank\"><img alt=\"\" border=\"0\" height=\"22\" src=\"https://civicrm.org/sites/default/files/civicrm/custom/images/twitter.png\" style=\"display:block; border:none; outline:none; text-decoration:none;\" width=\"22\" /> </a></div>\n </td>\n <td align=\"left\" style=\"font-size:1px; line-height:1px;\" width=\"20\"> </td>\n </tr>\n </tbody>\n </table>\n <!-- end of social icons --></td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td height=\"10\" style=\"font-size:1px; line-height:1px; mso-line-height-rule: exactly;\"> </td>\n </tr>\n <!-- Spacing -->\n <tr>\n <td bgcolor=\"#80C457\" height=\"10\" width=\"100%\"> </td>\n </tr>\n <!-- Spacing -->\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n </td>\n </tr>\n </tbody>\n </table>\n <!-- End of footer -->\n </body>\n</html>\n',1,NULL,NULL,1,0,0,NULL); @@ -5575,8 +5540,8 @@ INSERT INTO `civicrm_navigation` (`id`, `domain_id`, `label`, `name`, `url`, `ic (143,1,'Date Formats','Date Formats','civicrm/admin/setting/date?reset=1',NULL,'administer CiviCRM','',140,1,NULL,3), (144,1,'Preferred Language Options','Preferred Language Options','civicrm/admin/options/languages?reset=1',NULL,'administer CiviCRM','',140,1,NULL,4), (145,1,'Users and Permissions','Users and Permissions',NULL,NULL,'administer CiviCRM','',103,1,NULL,7), - (146,1,'Permissions (Access Control)','Permissions (Access Control)','civicrm/admin/access?reset=1',NULL,'administer CiviCRM','',145,1,NULL,1), - (147,1,'Synchronize Users to Contacts','Synchronize Users to Contacts','civicrm/admin/synchUser?reset=1',NULL,'administer CiviCRM','',145,1,NULL,2), + (146,1,'Access Control Lists','Permissions (Access Control)','civicrm/admin/access?reset=1',NULL,'administer CiviCRM','',145,1,NULL,5), + (147,1,'Synchronize Users to Contacts','Synchronize Users to Contacts','civicrm/admin/synchUser?reset=1',NULL,'administer CiviCRM','',145,1,NULL,10), (148,1,'System Settings','System Settings',NULL,NULL,'administer CiviCRM','',103,1,NULL,8), (149,1,'Components','Enable Components','civicrm/admin/setting/component?reset=1',NULL,'administer CiviCRM','',148,1,NULL,1), (150,1,'Extensions','Manage Extensions','civicrm/admin/extensions?reset=1',NULL,'administer CiviCRM','',148,1,1,3), @@ -5691,26 +5656,26 @@ UNLOCK TABLES; LOCK TABLES `civicrm_note` WRITE; /*!40000 ALTER TABLE `civicrm_note` DISABLE KEYS */; INSERT INTO `civicrm_note` (`id`, `entity_table`, `entity_id`, `note`, `contact_id`, `note_date`, `created_date`, `modified_date`, `subject`, `privacy`) VALUES - (1,'civicrm_contact',182,'Arrange for cricket match with Sunil Gavaskar',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-02-15 11:36:54',NULL,'0'), - (2,'civicrm_contact',133,'Arrange collection of funds from members',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-03-17 23:44:44',NULL,'0'), - (3,'civicrm_contact',170,'Organize the Terry Fox run',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-02-22 13:23:06',NULL,'0'), - (4,'civicrm_contact',85,'Get the registration done for NGO status',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-01-08 22:18:24',NULL,'0'), - (5,'civicrm_contact',63,'Organize the Terry Fox run',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-03-25 05:09:05',NULL,'0'), - (6,'civicrm_contact',152,'Reminder screening of \"Black\" on next Friday',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2022-12-14 18:09:34',NULL,'0'), - (7,'civicrm_contact',165,'Arrange collection of funds from members',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-05-27 06:48:19',NULL,'0'), - (8,'civicrm_contact',148,'Send reminder for annual dinner',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-05-17 06:40:03',NULL,'0'), - (9,'civicrm_contact',86,'Arrange collection of funds from members',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2022-10-20 04:13:03',NULL,'0'), - (10,'civicrm_contact',150,'Chart out route map for next 10k run',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-06-20 01:35:49',NULL,'0'), - (11,'civicrm_contact',31,'Connect for presentation',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-02-25 01:17:07',NULL,'0'), - (12,'civicrm_contact',51,'Send reminder for annual dinner',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-08-02 19:35:02',NULL,'0'), - (13,'civicrm_contact',106,'Get the registration done for NGO status',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-08-09 18:41:34',NULL,'0'), - (14,'civicrm_contact',24,'Contact the Commissioner of Charities',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-07-16 11:25:58',NULL,'0'), - (15,'civicrm_contact',119,'Reminder screening of \"Black\" on next Friday',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-03-16 21:58:46',NULL,'0'), - (16,'civicrm_contact',44,'Organize the Terry Fox run',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-06-03 08:13:15',NULL,'0'), - (17,'civicrm_contact',121,'Arrange collection of funds from members',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-05-21 05:02:10',NULL,'0'), - (18,'civicrm_contact',109,'Connect for presentation',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-08-22 07:29:58',NULL,'0'), - (19,'civicrm_contact',118,'Connect for presentation',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-08-22 13:16:11',NULL,'0'), - (20,'civicrm_contact',164,'Get the registration done for NGO status',1,'2023-09-06 22:14:01','2023-09-06 22:14:01','2023-06-04 17:16:11',NULL,'0'); + (1,'civicrm_contact',121,'Reminder screening of \"Black\" on next Friday',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-09-02 04:10:25',NULL,'0'), + (2,'civicrm_contact',96,'Arrange collection of funds from members',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-09-17 18:05:34',NULL,'0'), + (3,'civicrm_contact',123,'Arrange for cricket match with Sunil Gavaskar',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-02-28 08:21:34',NULL,'0'), + (4,'civicrm_contact',33,'Invite members for the Steve Prefontaine 10k dream run',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-11-13 18:10:15',NULL,'0'), + (5,'civicrm_contact',96,'Connect for presentation',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-03-28 19:47:44',NULL,'0'), + (6,'civicrm_contact',104,'Reminder screening of \"Black\" on next Friday',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-04-26 17:15:39',NULL,'0'), + (7,'civicrm_contact',122,'Connect for presentation',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-09-17 20:50:36',NULL,'0'), + (8,'civicrm_contact',152,'Reminder screening of \"Black\" on next Friday',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-11-23 17:03:55',NULL,'0'), + (9,'civicrm_contact',71,'Send newsletter for April 2005',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-12-29 14:00:17',NULL,'0'), + (10,'civicrm_contact',163,'Send reminder for annual dinner',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-12-16 08:42:43',NULL,'0'), + (11,'civicrm_contact',15,'Get the registration done for NGO status',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-08-17 17:34:29',NULL,'0'), + (12,'civicrm_contact',95,'Connect for presentation',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-12-11 01:57:11',NULL,'0'), + (13,'civicrm_contact',131,'Get the registration done for NGO status',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-02-19 04:50:53',NULL,'0'), + (14,'civicrm_contact',132,'Contact the Commissioner of Charities',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-07-29 18:56:37',NULL,'0'), + (15,'civicrm_contact',58,'Arrange for cricket match with Sunil Gavaskar',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-06-15 08:32:05',NULL,'0'), + (16,'civicrm_contact',163,'Send newsletter for April 2005',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-01-23 22:02:08',NULL,'0'), + (17,'civicrm_contact',185,'Arrange for cricket match with Sunil Gavaskar',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-01-16 12:31:03',NULL,'0'), + (18,'civicrm_contact',11,'Send newsletter for April 2005',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-09-13 22:39:15',NULL,'0'), + (19,'civicrm_contact',192,'Send reminder for annual dinner',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2023-02-14 08:40:24',NULL,'0'), + (20,'civicrm_contact',33,'Get the registration done for NGO status',1,'2023-09-06 22:52:18','2023-09-06 22:52:18','2022-11-17 05:34:06',NULL,'0'); /*!40000 ALTER TABLE `civicrm_note` ENABLE KEYS */; UNLOCK TABLES; @@ -5894,817 +5859,818 @@ INSERT INTO `civicrm_option_value` (`id`, `option_group_id`, `label`, `value`, ` (55,2,'Contact Merged','51','Contact Merged',NULL,1,0,51,'Contact Merged',0,1,1,NULL,NULL,NULL,NULL,NULL), (56,2,'Contact Deleted by Merge','52','Contact Deleted by Merge',NULL,1,0,52,'Contact was merged into another contact',0,1,1,NULL,NULL,NULL,NULL,NULL), (57,2,'Failed Payment','54','Failed Payment',NULL,1,0,54,'Failed Payment',0,1,1,2,NULL,NULL,NULL,NULL), - (58,3,'Female','1','Female',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (59,3,'Male','2','Male',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (60,3,'Other','3','Other',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (61,4,'Yahoo','1','Yahoo',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (62,4,'MSN','2','Msn',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (63,4,'AIM','3','Aim',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (64,4,'GTalk','4','Gtalk',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (65,4,'Jabber','5','Jabber',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (66,4,'Skype','6','Skype',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (67,5,'Sprint','1','Sprint',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (68,5,'Verizon','2','Verizon',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (69,5,'Cingular','3','Cingular',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (70,6,'Mrs.','1','Mrs.',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (71,6,'Ms.','2','Ms.',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (72,6,'Mr.','3','Mr.',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (73,6,'Dr.','4','Dr.',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (74,7,'Jr.','1','Jr.',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (75,7,'Sr.','2','Sr.',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (76,7,'II','3','II',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (77,7,'III','4','III',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (78,7,'IV','5','IV',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (79,7,'V','6','V',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (80,7,'VI','7','VI',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (81,7,'VII','8','VII',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (82,8,'Everyone','0','Everyone',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (83,8,'Administrator','1','Admin',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (84,8,'Authenticated','2','Auth',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (85,9,'Visa','1','Visa',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (86,9,'MasterCard','2','MasterCard',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (87,9,'Amex','3','Amex',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (88,9,'Discover','4','Discover',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (89,10,'Credit Card','1','Credit Card',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (90,10,'Debit Card','2','Debit Card',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (91,10,'Cash','3','Cash',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (92,10,'Check','4','Check',NULL,0,1,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (93,10,'EFT','5','EFT',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (94,11,'Completed','1','Completed',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (95,11,'Pending','2','Pending',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (96,11,'Cancelled','3','Cancelled',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (97,11,'Failed','4','Failed',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (98,11,'Refunded','7','Refunded',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (99,11,'Partially paid','8','Partially paid',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (100,11,'Pending refund','9','Pending refund',NULL,0,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (101,11,'Chargeback','10','Chargeback',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (102,11,'Template','11','Template',NULL,0,0,11,'Status for contribution records which represent a template for a recurring contribution rather than an actual contribution. This status is transitional, to ensure that said contributions don\\\'t appear in reports. The is_template field is the preferred way to find and filter these contributions.',0,1,1,NULL,NULL,NULL,NULL,NULL), - (103,12,'Waiting Review','1','Waiting Review',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (104,12,'Approved','2','Approved',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (105,12,'Not Approved','3','Not Approved',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (106,13,'Owner chooses whether to receive notifications','1','owner_chooses',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (107,13,'Notifications are sent to ALL owners','2','all_owners',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (108,13,'Notifications are NOT available','3','no_notifications',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (109,14,'Attendee','1','Attendee',NULL,1,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (110,14,'Volunteer','2','Volunteer',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (111,14,'Host','3','Host',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (112,14,'Speaker','4','Speaker',NULL,1,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (113,15,'Conference','1','Conference',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (114,15,'Exhibition','2','Exhibition',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (115,15,'Fundraiser','3','Fundraiser',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (116,15,'Meeting','4','Meeting',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (117,15,'Performance','5','Performance',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (118,15,'Workshop','6','Workshop',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (119,16,'Activities','1','activity',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (120,16,'Relationships','2','rel',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (121,16,'Groups','3','group',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (122,16,'Notes','4','note',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (123,16,'Tags','5','tag',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (124,16,'Change Log','6','log',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (125,16,'Contributions','7','CiviContribute',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (126,16,'Memberships','8','CiviMember',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (127,16,'Events','9','CiviEvent',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (128,16,'Cases','10','CiviCase',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (129,16,'Pledges','13','CiviPledge',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (130,16,'Mailings','14','CiviMail',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (131,17,'Show Smart Groups on Demand','1','showondemand',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (132,17,'Always Show Smart Groups','2','alwaysshow',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (133,17,'Hide Smart Groups','3','hide',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (134,18,'Custom Data','1','CustomData',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (135,18,'Address','2','Address',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (136,18,'Communication Preferences','3','CommunicationPreferences',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (137,18,'Notes','4','Notes',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (138,18,'Demographics','5','Demographics',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (139,18,'Tags and Groups','6','TagsAndGroups',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (140,18,'Email','7','Email',NULL,1,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (141,18,'Phone','8','Phone',NULL,1,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (142,18,'Instant Messenger','9','IM',NULL,1,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (143,18,'Open ID','10','OpenID',NULL,1,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (144,18,'Website','11','Website',NULL,1,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (145,18,'Prefix','12','Prefix',NULL,2,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (146,18,'Formal Title','13','Formal Title',NULL,2,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (147,18,'First Name','14','First Name',NULL,2,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (148,18,'Middle Name','15','Middle Name',NULL,2,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (149,18,'Last Name','16','Last Name',NULL,2,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (150,18,'Suffix','17','Suffix',NULL,2,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (151,19,'Address Fields','1','location',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (152,19,'Custom Fields','2','custom',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (153,19,'Activities','3','activity',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (154,19,'Relationships','4','relationship',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (155,19,'Notes','5','notes',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (156,19,'Change Log','6','changeLog',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (157,19,'Contributions','7','CiviContribute',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (158,19,'Memberships','8','CiviMember',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (159,19,'Events','9','CiviEvent',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (160,19,'Cases','10','CiviCase',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (161,19,'Demographics','13','demographics',NULL,0,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (162,19,'Pledges','15','CiviPledge',NULL,0,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (163,19,'Contact Type','16','contactType',NULL,0,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (164,19,'Groups','17','groups',NULL,0,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (165,19,'Tags','18','tags',NULL,0,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (166,19,'Mailing','19','CiviMail',NULL,0,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (167,20,'Groups','1','Groups',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (168,20,'Contributions','2','CiviContribute',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (169,20,'Memberships','3','CiviMember',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (170,20,'Events','4','CiviEvent',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (171,20,'My Contacts / Organizations','5','Permissioned Orgs',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (172,20,'Pledges','7','CiviPledge',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (173,20,'Personal Campaign Pages','8','PCP',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (174,20,'Assigned Activities','9','Assigned Activities',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (175,20,'Invoices / Credit Notes','10','Invoices / Credit Notes',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (176,21,'Street Address','1','street_address',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (177,21,'Supplemental Address 1','2','supplemental_address_1',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (178,21,'Supplemental Address 2','3','supplemental_address_2',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (179,21,'Supplemental Address 3','4','supplemental_address_3',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (180,21,'City','5','city',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (181,21,'Postal Code','6','postal_code',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (182,21,'Postal Code Suffix','7','postal_code_suffix',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (183,21,'County','8','county',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (184,21,'State/Province','9','state_province',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (185,21,'Country','10','country',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (186,21,'Latitude','11','geo_code_1',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (187,21,'Longitude','12','geo_code_2',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (188,21,'Address Name','13','address_name',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (189,21,'Street Address Parsing','14','street_address_parsing',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (190,22,'Access Control','1','Access Control',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (191,22,'Mailing List','2','Mailing List',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (192,23,'CRM_Contact_Form_Search_Custom_Sample','1','CRM_Contact_Form_Search_Custom_Sample',NULL,0,0,1,'Household Name and State',0,0,1,NULL,NULL,NULL,NULL,NULL), - (193,23,'CRM_Contact_Form_Search_Custom_ContributionAggregate','2','CRM_Contact_Form_Search_Custom_ContributionAggregate',NULL,0,0,2,'Contribution Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL), - (194,23,'CRM_Contact_Form_Search_Custom_Group','4','CRM_Contact_Form_Search_Custom_Group',NULL,0,0,4,'Include / Exclude Search',0,0,1,NULL,NULL,NULL,NULL,NULL), - (195,23,'CRM_Contact_Form_Search_Custom_PostalMailing','5','CRM_Contact_Form_Search_Custom_PostalMailing',NULL,0,0,5,'Postal Mailing',0,0,1,NULL,NULL,NULL,NULL,NULL), - (196,23,'CRM_Contact_Form_Search_Custom_Proximity','6','CRM_Contact_Form_Search_Custom_Proximity',NULL,0,0,6,'Proximity Search',0,0,1,NULL,NULL,NULL,NULL,NULL), - (197,23,'CRM_Contact_Form_Search_Custom_EventAggregate','7','CRM_Contact_Form_Search_Custom_EventAggregate',NULL,0,0,7,'Event Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL), - (198,23,'CRM_Contact_Form_Search_Custom_ActivitySearch','8','CRM_Contact_Form_Search_Custom_ActivitySearch',NULL,0,0,8,'Activity Search',0,0,0,NULL,NULL,NULL,NULL,NULL), - (199,23,'CRM_Contact_Form_Search_Custom_PriceSet','9','CRM_Contact_Form_Search_Custom_PriceSet',NULL,0,0,9,'Price Set Details for Event Participants',0,0,1,NULL,NULL,NULL,NULL,NULL), - (200,23,'CRM_Contact_Form_Search_Custom_ZipCodeRange','10','CRM_Contact_Form_Search_Custom_ZipCodeRange',NULL,0,0,10,'Zip Code Range',0,0,1,NULL,NULL,NULL,NULL,NULL), - (201,23,'CRM_Contact_Form_Search_Custom_DateAdded','11','CRM_Contact_Form_Search_Custom_DateAdded',NULL,0,0,11,'Date Added to CiviCRM',0,0,1,NULL,NULL,NULL,NULL,NULL), - (202,23,'CRM_Contact_Form_Search_Custom_MultipleValues','12','CRM_Contact_Form_Search_Custom_MultipleValues',NULL,0,0,12,'Custom Group Multiple Values Listing',0,0,1,NULL,NULL,NULL,NULL,NULL), - (203,23,'CRM_Contact_Form_Search_Custom_ContribSYBNT','13','CRM_Contact_Form_Search_Custom_ContribSYBNT',NULL,0,0,13,'Contributions made in Year X and not Year Y',0,0,1,NULL,NULL,NULL,NULL,NULL), - (204,23,'CRM_Contact_Form_Search_Custom_TagContributions','14','CRM_Contact_Form_Search_Custom_TagContributions',NULL,0,0,14,'Find Contribution Amounts by Tag',0,0,1,NULL,NULL,NULL,NULL,NULL), - (205,23,'CRM_Contact_Form_Search_Custom_FullText','15','CRM_Contact_Form_Search_Custom_FullText',NULL,0,0,15,'Full-text Search',0,0,1,NULL,NULL,NULL,NULL,NULL), - (206,24,'Scheduled','1','Scheduled',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (207,24,'Completed','2','Completed',NULL,1,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (208,24,'Cancelled','3','Cancelled',NULL,2,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (209,24,'Left Message','4','Left Message',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (210,24,'Unreachable','5','Unreachable',NULL,2,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (211,24,'Not Required','6','Not Required',NULL,2,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (212,24,'Available','7','Available',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (213,24,'No-show','8','No_show',NULL,2,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (214,26,'Ongoing','1','Open','Opened',0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (215,26,'Resolved','2','Closed','Closed',0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (216,26,'Urgent','3','Urgent','Opened',0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (217,27,'Name Only','1','Name Only',NULL,0,0,1,'CRM_Event_Page_ParticipantListing_Name',0,1,1,NULL,NULL,NULL,NULL,NULL), - (218,27,'Name and Email','2','Name and Email',NULL,0,0,2,'CRM_Event_Page_ParticipantListing_NameAndEmail',0,1,1,NULL,NULL,NULL,NULL,NULL), - (219,27,'Name, Status and Register Date','3','Name, Status and Register Date',NULL,0,0,3,'CRM_Event_Page_ParticipantListing_NameStatusAndDate',0,1,1,NULL,NULL,NULL,NULL,NULL), - (220,28,'jpg','1','jpg',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (221,28,'jpeg','2','jpeg',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (222,28,'png','3','png',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (223,28,'gif','4','gif',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (224,28,'txt','5','txt',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (225,28,'pdf','6','pdf',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (226,28,'doc','7','doc',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (227,28,'xls','8','xls',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (228,28,'rtf','9','rtf',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (229,28,'csv','10','csv',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (230,28,'ppt','11','ppt',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (231,28,'docx','12','docx',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (232,28,'xlsx','13','xlsx',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (233,28,'odt','14','odt',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (234,28,'ics','15','ics',NULL,0,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (235,28,'pptx','16','pptx',NULL,0,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (236,29,'\"FIXME\" <info@EXAMPLE.ORG>','1','\"FIXME\" <info@EXAMPLE.ORG>',NULL,0,1,1,'Default domain email address and from name.',0,0,1,NULL,1,NULL,NULL,NULL), - (237,30,'Search Builder','1','Search Builder',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (238,30,'Import Contact','2','Import Contact',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (239,30,'Import Activity','3','Import Activity',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (240,30,'Import Contribution','4','Import Contribution',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (241,30,'Import Membership','5','Import Membership',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (242,30,'Import Participant','6','Import Participant',NULL,0,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (243,30,'Export Contact','7','Export Contact',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (244,30,'Export Contribution','8','Export Contribution',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (245,30,'Export Membership','9','Export Membership',NULL,0,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (246,30,'Export Participant','10','Export Participant',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (247,30,'Export Pledge','11','Export Pledge',NULL,0,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (248,30,'Export Case','12','Export Case',NULL,0,0,12,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (249,30,'Export Activity','14','Export Activity',NULL,0,0,14,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (250,31,'Textarea','1','Textarea',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (251,31,'CKEditor 4','2','CKEditor',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (252,32,'day','day','day',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (253,32,'week','week','week',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (254,32,'month','month','month',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (255,32,'year','year','year',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (256,33,'Phone','1','Phone',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (257,33,'Mobile','2','Mobile',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (258,33,'Fax','3','Fax',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (259,33,'Pager','4','Pager',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (260,33,'Voicemail','5','Voicemail',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (261,34,'Participants (Role)','1','ParticipantRole','role_id',0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (262,34,'Participants (Event Name)','2','ParticipantEventName','event_id',0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (263,34,'Participants (Event Type)','3','ParticipantEventType','event_id.event_type_id',0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (264,35,'Public','1','public',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (265,35,'Admin','2','admin',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (266,36,'IMAP','1','IMAP',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (267,36,'Maildir','2','Maildir',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (268,36,'POP3','3','POP3',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (269,36,'Localdir','4','Localdir',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (270,37,'Urgent','1','Urgent',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (271,37,'Normal','2','Normal',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (272,37,'Low','3','Low',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (273,38,'Vancouver','city_','city_',NULL,0,0,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (274,38,'/(19|20)(\\d{2})-(\\d{1,2})-(\\d{1,2})/','date_','date_',NULL,1,0,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (275,39,'Constituent Report (Summary)','contact/summary','CRM_Report_Form_Contact_Summary',NULL,0,0,1,'Provides a list of address and telephone information for constituent records in your system.',0,0,1,NULL,NULL,NULL,NULL,NULL), - (276,39,'Constituent Report (Detail)','contact/detail','CRM_Report_Form_Contact_Detail',NULL,0,0,2,'Provides contact-related information on contributions, memberships, events and activities.',0,0,1,NULL,NULL,NULL,NULL,NULL), - (277,39,'Activity Details Report','activity','CRM_Report_Form_Activity',NULL,0,0,3,'Provides a list of constituent activity including activity statistics for one/all contacts during a given date range(required)',0,0,1,NULL,NULL,NULL,NULL,NULL), - (278,39,'Walk / Phone List Report','walklist','CRM_Report_Form_Walklist_Walklist',NULL,0,0,4,'Provides a detailed report for your walk/phonelist for targeted contacts',0,0,0,NULL,NULL,NULL,NULL,NULL), - (279,39,'Current Employer Report','contact/currentEmployer','CRM_Report_Form_Contact_CurrentEmployer',NULL,0,0,5,'Provides detail list of employer employee relationships along with employment details Ex Join Date',0,0,1,NULL,NULL,NULL,NULL,NULL), - (280,39,'Contribution Summary Report','contribute/summary','CRM_Report_Form_Contribute_Summary',NULL,0,0,6,'Groups and totals contributions by criteria including contact, time period, financial type, contributor location, etc.',0,0,1,2,NULL,NULL,NULL,NULL), - (281,39,'Contribution Detail Report','contribute/detail','CRM_Report_Form_Contribute_Detail',NULL,0,0,7,'Lists specific contributions by criteria including contact, time period, financial type, contributor location, etc. Contribution summary report points to this report for contribution details.',0,0,1,2,NULL,NULL,NULL,NULL), - (282,39,'Repeat Contributions Report','contribute/repeat','CRM_Report_Form_Contribute_Repeat',NULL,0,0,8,'Given two date ranges, shows contacts who contributed in both the date ranges with the amount contributed in each and the percentage increase / decrease.',0,0,1,2,NULL,NULL,NULL,NULL), - (283,39,'Contributions by Organization Report','contribute/organizationSummary','CRM_Report_Form_Contribute_OrganizationSummary',NULL,0,0,9,'Displays a detailed list of contributions grouped by organization, which includes contributions made by employees for the organisation.',0,0,1,2,NULL,NULL,NULL,NULL), - (284,39,'Contributions by Household Report','contribute/householdSummary','CRM_Report_Form_Contribute_HouseholdSummary',NULL,0,0,10,'Displays a detailed list of contributions grouped by household which includes contributions made by members of the household.',0,0,1,2,NULL,NULL,NULL,NULL), - (285,39,'Top Donors Report','contribute/topDonor','CRM_Report_Form_Contribute_TopDonor',NULL,0,0,11,'Provides a list of the top donors during a time period you define. You can include as many donors as you want (for example, top 100 of your donors).',0,0,1,2,NULL,NULL,NULL,NULL), - (286,39,'SYBUNT Report','contribute/sybunt','CRM_Report_Form_Contribute_Sybunt',NULL,0,0,12,'SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.',0,0,1,2,NULL,NULL,NULL,NULL), - (287,39,'LYBUNT Report','contribute/lybunt','CRM_Report_Form_Contribute_Lybunt',NULL,0,0,13,'LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.',0,0,1,2,NULL,NULL,NULL,NULL), - (288,39,'Soft Credit Report','contribute/softcredit','CRM_Report_Form_Contribute_SoftCredit',NULL,0,0,14,'Shows contributions made by contacts that have been soft-credited to other contacts.',0,0,1,2,NULL,NULL,NULL,NULL), - (289,39,'Membership Report (Summary)','member/summary','CRM_Report_Form_Member_Summary',NULL,0,0,15,'Provides a summary of memberships by type and Member Since.',0,0,1,3,NULL,NULL,NULL,NULL), - (290,39,'Membership Report (Detail)','member/detail','CRM_Report_Form_Member_Detail',NULL,0,0,16,'Provides a list of members along with their membership status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.',0,0,1,3,NULL,NULL,NULL,NULL), - (291,39,'Membership Report (Lapsed)','member/lapse','CRM_Report_Form_Member_Lapse',NULL,0,0,17,'Provides a list of memberships that lapsed or will lapse before the date you specify.',0,0,1,3,NULL,NULL,NULL,NULL), - (292,39,'Event Participant Report (List)','event/participantListing','CRM_Report_Form_Event_ParticipantListing',NULL,0,0,18,'Provides lists of participants for an event.',0,0,1,1,NULL,NULL,NULL,NULL), - (293,39,'Event Income Report (Summary)','event/summary','CRM_Report_Form_Event_Summary',NULL,0,0,19,'Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.',0,0,1,1,NULL,NULL,NULL,NULL), - (294,39,'Event Income Report (Detail)','event/income','CRM_Report_Form_Event_Income',NULL,0,0,20,'Helps you to analyze the income generated by an event. The report can include details by participant type, status and payment method.',0,0,1,1,NULL,NULL,NULL,NULL), - (295,39,'Pledge Detail Report','pledge/detail','CRM_Report_Form_Pledge_Detail',NULL,0,0,21,'List of pledges including amount pledged, pledge status, next payment date, balance due, total amount paid etc.',0,0,1,6,NULL,NULL,NULL,NULL), - (296,39,'Pledged but not Paid Report','pledge/pbnp','CRM_Report_Form_Pledge_Pbnp',NULL,0,0,22,'Pledged but not Paid Report',0,0,1,6,NULL,NULL,NULL,NULL), - (297,39,'Relationship Report','contact/relationship','CRM_Report_Form_Contact_Relationship',NULL,0,0,23,'Relationship Report',0,0,1,NULL,NULL,NULL,NULL,NULL), - (298,39,'Case Summary Report','case/summary','CRM_Report_Form_Case_Summary',NULL,0,0,24,'Provides a summary of cases and their duration by date range, status, staff member and / or case role.',0,0,1,7,NULL,NULL,NULL,NULL), - (299,39,'Case Time Spent Report','case/timespent','CRM_Report_Form_Case_TimeSpent',NULL,0,0,25,'Aggregates time spent on case and / or non-case activities by activity type and contact.',0,0,1,7,NULL,NULL,NULL,NULL), - (300,39,'Contact Demographics Report','case/demographics','CRM_Report_Form_Case_Demographics',NULL,0,0,26,'Demographic breakdown for case clients (and or non-case contacts) in your database. Includes custom contact fields.',0,0,1,7,NULL,NULL,NULL,NULL), - (301,39,'Database Log Report','contact/log','CRM_Report_Form_Contact_Log',NULL,0,0,27,'Log of contact and activity records created or updated in a given date range.',0,0,1,NULL,NULL,NULL,NULL,NULL), - (302,39,'Activity Summary Report','activitySummary','CRM_Report_Form_ActivitySummary',NULL,0,0,28,'Shows activity statistics by type / date',0,0,1,NULL,NULL,NULL,NULL,NULL), - (303,39,'Bookkeeping Transactions Report','contribute/bookkeeping','CRM_Report_Form_Contribute_Bookkeeping',NULL,0,0,29,'Shows Bookkeeping Transactions Report',0,0,1,2,NULL,NULL,NULL,NULL), - (304,39,'Participant list Count Report','event/participantlist','CRM_Report_Form_Event_ParticipantListCount',NULL,0,0,31,'Shows the Participant list with Participant Count.',0,0,1,1,NULL,NULL,NULL,NULL), - (305,39,'Income Count Summary Report','event/incomesummary','CRM_Report_Form_Event_IncomeCountSummary',NULL,0,0,32,'Shows the Income Summary of events with Count.',0,0,1,1,NULL,NULL,NULL,NULL), - (306,39,'Case Detail Report','case/detail','CRM_Report_Form_Case_Detail',NULL,0,0,33,'Case Details',0,0,1,7,NULL,NULL,NULL,NULL), - (307,39,'Mail Bounce Report','Mailing/bounce','CRM_Report_Form_Mailing_Bounce',NULL,0,0,34,'Bounce Report for mailings',0,0,1,4,NULL,NULL,NULL,NULL), - (308,39,'Mail Summary Report','Mailing/summary','CRM_Report_Form_Mailing_Summary',NULL,0,0,35,'Summary statistics for mailings',0,0,1,4,NULL,NULL,NULL,NULL), - (309,39,'Mail Opened Report','Mailing/opened','CRM_Report_Form_Mailing_Opened',NULL,0,0,36,'Display contacts who opened emails from a mailing',0,0,1,4,NULL,NULL,NULL,NULL), - (310,39,'Mail Click-Through Report','Mailing/clicks','CRM_Report_Form_Mailing_Clicks',NULL,0,0,37,'Display clicks from each mailing',0,0,1,4,NULL,NULL,NULL,NULL), - (311,39,'Contact Logging Report (Summary)','logging/contact/summary','CRM_Report_Form_Contact_LoggingSummary',NULL,0,0,38,'Contact modification report for the logging infrastructure (summary).',0,0,0,NULL,NULL,NULL,NULL,NULL), - (312,39,'Contact Logging Report (Detail)','logging/contact/detail','CRM_Report_Form_Contact_LoggingDetail',NULL,0,0,39,'Contact modification report for the logging infrastructure (detail).',0,0,0,NULL,NULL,NULL,NULL,NULL), - (313,39,'Survey Report (Detail)','survey/detail','CRM_Report_Form_Campaign_SurveyDetails',NULL,0,0,43,'Detailed report for canvassing, phone-banking, walk lists or other surveys.',0,0,1,9,NULL,NULL,NULL,NULL), - (314,39,'Personal Campaign Page Report','contribute/pcp','CRM_Report_Form_Contribute_PCP',NULL,0,0,44,'Summarizes amount raised and number of contributors for each Personal Campaign Page.',0,0,1,2,NULL,NULL,NULL,NULL), - (315,39,'Pledge Summary Report','pledge/summary','CRM_Report_Form_Pledge_Summary',NULL,0,0,45,'Groups and totals pledges by criteria including contact, time period, pledge status, location, etc.',0,0,1,6,NULL,NULL,NULL,NULL), - (316,39,'Contribution Aggregate by Relationship','contribute/history','CRM_Report_Form_Contribute_History',NULL,0,0,46,'List contact\'s donation history, grouped by year, along with contributions attributed to any of the contact\'s related contacts.',0,0,1,2,NULL,NULL,NULL,NULL), - (317,39,'Mail Detail Report','mailing/detail','CRM_Report_Form_Mailing_Detail',NULL,0,0,47,'Provides reporting on Intended and Successful Deliveries, Unsubscribes and Opt-outs, Replies and Forwards.',0,0,1,4,NULL,NULL,NULL,NULL), - (318,39,'Contribution and Membership Details','member/contributionDetail','CRM_Report_Form_Member_ContributionDetail',NULL,0,0,48,'Contribution details for any type of contribution, plus associated membership information for contributions which are in payment for memberships.',0,0,1,3,NULL,NULL,NULL,NULL), - (319,39,'Recurring Contributions Report','contribute/recur','CRM_Report_Form_Contribute_Recur',NULL,0,0,49,'Provides information about the status of recurring contributions',0,0,1,2,NULL,NULL,NULL,NULL), - (320,39,'Recurring Contributions Summary','contribute/recursummary','CRM_Report_Form_Contribute_RecurSummary',NULL,0,0,49,'Provides simple summary for each payment instrument for which there are recurring contributions (e.g. Credit Card, Standing Order, Direct Debit, etc., NULL), showing within a given date range.',0,0,1,2,NULL,NULL,NULL,NULL), - (321,39,'Deferred Revenue Details','contribute/deferredrevenue','CRM_Report_Form_Contribute_DeferredRevenue',NULL,0,0,50,'Deferred Revenue Details Report',0,0,1,2,NULL,NULL,NULL,NULL), - (322,40,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (323,40,'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}','2','Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (324,40,'Dear {contact.prefix_id:label} {contact.last_name}','3','Dear {contact.prefix_id:label} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (325,40,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (326,40,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (327,41,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (328,41,'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}','2','Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (329,41,'Dear {contact.prefix_id:label} {contact.last_name}','3','Dear {contact.prefix_id:label} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (330,41,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (331,41,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (332,42,'{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}','1','{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (333,42,'{contact.household_name}','2','{contact.household_name}',NULL,2,1,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (334,42,'{contact.organization_name}','3','{contact.organization_name}',NULL,3,1,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (335,42,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (336,43,'Email Address','2','email',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (337,43,'Phone','3','phone',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (338,43,'Street Address','4','street_address',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (339,43,'City','5','city',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (340,43,'State/Province','6','state_province',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (341,43,'Country','7','country',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (342,43,'Postal Code','8','postal_code',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (343,44,'Email Address','2','email',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (344,44,'Phone','3','phone',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (345,44,'Street Address','4','street_address',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (346,44,'City','5','city',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (347,44,'State/Province','6','state_province',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (348,44,'Country','7','country',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (349,44,'Postal Code','8','postal_code',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (350,45,'Work','1','Work',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (351,45,'Main','2','Main',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (352,45,'Facebook','3','Facebook',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (353,45,'Instagram','5','Instagram',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (354,45,'LinkedIn','6','LinkedIn',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (355,45,'MySpace','7','MySpace',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (356,45,'Pinterest','8','Pinterest',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (357,45,'SnapChat','9','SnapChat',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (358,45,'Tumblr','10','Tumblr',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (359,45,'Twitter','11','Twitter',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (360,45,'Vine','12','Vine ',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (361,46,'Contacts','civicrm_contact','Contact',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (362,46,'Activities','civicrm_activity','Activity',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (363,46,'Cases','civicrm_case','Case',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (364,46,'Attachments','civicrm_file','File',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (365,47,'Contacts','civicrm_contact','Contact',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (366,47,'Relationships','civicrm_relationship','Relationship',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (367,47,'Participants','civicrm_participant','Participant',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (368,47,'Contributions','civicrm_contribution','Contribution',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (369,48,'USD ($)','USD','USD',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (370,48,'CAD ($)','CAD','CAD',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (371,48,'EUR (€)','EUR','EUR',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (372,48,'GBP (£)','GBP','GBP',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (373,48,'JPY (Â¥)','JPY','JPY',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (374,49,'Name Only','1','CRM_Event_Badge_Simple',NULL,0,0,1,'Simple Event Name Badge',0,1,1,NULL,NULL,NULL,NULL,NULL), - (375,49,'Name Tent','2','CRM_Event_Badge_NameTent',NULL,0,0,2,'Name Tent',0,1,1,NULL,NULL,NULL,NULL,NULL), - (376,49,'With Logo','3','CRM_Event_Badge_Logo',NULL,0,0,3,'You can set your own background image',0,1,1,NULL,NULL,NULL,NULL,NULL), - (377,49,'5395 with Logo','4','CRM_Event_Badge_Logo5395',NULL,0,0,4,'Avery 5395 compatible labels with logo (4 up by 2, 59.2mm x 85.7mm)',0,1,1,NULL,NULL,NULL,NULL,NULL), - (378,50,'None','0','None',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (379,50,'Author Only','1','Author Only',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (380,51,'Direct Mail','1','Direct Mail',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (381,51,'Referral Program','2','Referral Program',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (382,51,'Constituent Engagement','3','Constituent Engagement',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (383,52,'Planned','1','Planned',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (384,52,'In Progress','2','In Progress',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (385,52,'Completed','3','Completed',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (386,52,'Cancelled','4','Cancelled',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (387,54,'Approved','1','Approved',NULL,0,1,1,NULL,0,1,1,4,1,NULL,NULL,NULL), - (388,54,'Rejected','2','Rejected',NULL,0,0,2,NULL,0,1,1,4,1,NULL,NULL,NULL), - (389,54,'None','3','None',NULL,0,0,3,NULL,0,1,1,4,1,NULL,NULL,NULL), - (390,55,'1','1','1',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (391,55,'2','2','2',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (392,55,'3','3','3',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (393,55,'4','4','4',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (394,55,'5','5','5',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (395,56,'Survey','Survey','civicrm_survey',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (396,56,'Cases','Case','civicrm_case','case_type_id',0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (397,57,'Letter','{\"metric\":\"in\",\"width\":8.5,\"height\":11}','letter',NULL,NULL,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (398,57,'Legal','{\"metric\":\"in\",\"width\":8.5,\"height\":14}','legal',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (399,57,'Ledger','{\"metric\":\"in\",\"width\":17,\"height\":11}','ledger',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (400,57,'Tabloid','{\"metric\":\"in\",\"width\":11,\"height\":17}','tabloid',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (401,57,'Executive','{\"metric\":\"in\",\"width\":7.25,\"height\":10.5}','executive',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (402,57,'Folio','{\"metric\":\"in\",\"width\":8.5,\"height\":13}','folio',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (403,57,'Envelope #9','{\"metric\":\"pt\",\"width\":638.93,\"height\":278.93}','envelope-9',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (404,57,'Envelope #10','{\"metric\":\"pt\",\"width\":684,\"height\":297}','envelope-10',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (405,57,'Envelope #11','{\"metric\":\"pt\",\"width\":747,\"height\":324}','envelope-11',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (406,57,'Envelope #12','{\"metric\":\"pt\",\"width\":792,\"height\":342}','envelope-12',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (407,57,'Envelope #14','{\"metric\":\"pt\",\"width\":828,\"height\":360}','envelope-14',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (408,57,'Envelope ISO B4','{\"metric\":\"pt\",\"width\":1000.63,\"height\":708.66}','envelope-b4',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (409,57,'Envelope ISO B5','{\"metric\":\"pt\",\"width\":708.66,\"height\":498.9}','envelope-b5',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (410,57,'Envelope ISO B6','{\"metric\":\"pt\",\"width\":498.9,\"height\":354.33}','envelope-b6',NULL,NULL,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (411,57,'Envelope ISO C3','{\"metric\":\"pt\",\"width\":1298.27,\"height\":918.42}','envelope-c3',NULL,NULL,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (412,57,'Envelope ISO C4','{\"metric\":\"pt\",\"width\":918.42,\"height\":649.13}','envelope-c4',NULL,NULL,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (413,57,'Envelope ISO C5','{\"metric\":\"pt\",\"width\":649.13,\"height\":459.21}','envelope-c5',NULL,NULL,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (414,57,'Envelope ISO C6','{\"metric\":\"pt\",\"width\":459.21,\"height\":323.15}','envelope-c6',NULL,NULL,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (415,57,'Envelope ISO DL','{\"metric\":\"pt\",\"width\":623.622,\"height\":311.811}','envelope-dl',NULL,NULL,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (416,57,'ISO A0','{\"metric\":\"pt\",\"width\":2383.94,\"height\":3370.39}','a0',NULL,NULL,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (417,57,'ISO A1','{\"metric\":\"pt\",\"width\":1683.78,\"height\":2383.94}','a1',NULL,NULL,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (418,57,'ISO A2','{\"metric\":\"pt\",\"width\":1190.55,\"height\":1683.78}','a2',NULL,NULL,0,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (419,57,'ISO A3','{\"metric\":\"pt\",\"width\":841.89,\"height\":1190.55}','a3',NULL,NULL,0,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (420,57,'ISO A4','{\"metric\":\"pt\",\"width\":595.28,\"height\":841.89}','a4',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (421,57,'ISO A5','{\"metric\":\"pt\",\"width\":419.53,\"height\":595.28}','a5',NULL,NULL,0,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (422,57,'ISO A6','{\"metric\":\"pt\",\"width\":297.64,\"height\":419.53}','a6',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (423,57,'ISO A7','{\"metric\":\"pt\",\"width\":209.76,\"height\":297.64}','a7',NULL,NULL,0,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (424,57,'ISO A8','{\"metric\":\"pt\",\"width\":147.4,\"height\":209.76}','a8',NULL,NULL,0,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (425,57,'ISO A9','{\"metric\":\"pt\",\"width\":104.88,\"height\":147.4}','a9',NULL,NULL,0,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (426,57,'ISO A10','{\"metric\":\"pt\",\"width\":73.7,\"height\":104.88}','a10',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (427,57,'ISO B0','{\"metric\":\"pt\",\"width\":2834.65,\"height\":4008.19}','b0',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (428,57,'ISO B1','{\"metric\":\"pt\",\"width\":2004.09,\"height\":2834.65}','b1',NULL,NULL,0,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (429,57,'ISO B2','{\"metric\":\"pt\",\"width\":1417.32,\"height\":2004.09}','b2',NULL,NULL,0,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (430,57,'ISO B3','{\"metric\":\"pt\",\"width\":1000.63,\"height\":1417.32}','b3',NULL,NULL,0,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (431,57,'ISO B4','{\"metric\":\"pt\",\"width\":708.66,\"height\":1000.63}','b4',NULL,NULL,0,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (432,57,'ISO B5','{\"metric\":\"pt\",\"width\":498.9,\"height\":708.66}','b5',NULL,NULL,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (433,57,'ISO B6','{\"metric\":\"pt\",\"width\":354.33,\"height\":498.9}','b6',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (434,57,'ISO B7','{\"metric\":\"pt\",\"width\":249.45,\"height\":354.33}','b7',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (435,57,'ISO B8','{\"metric\":\"pt\",\"width\":175.75,\"height\":249.45}','b8',NULL,NULL,0,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (436,57,'ISO B9','{\"metric\":\"pt\",\"width\":124.72,\"height\":175.75}','b9',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (437,57,'ISO B10','{\"metric\":\"pt\",\"width\":87.87,\"height\":124.72}','b10',NULL,NULL,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (438,57,'ISO C0','{\"metric\":\"pt\",\"width\":2599.37,\"height\":3676.54}','c0',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (439,57,'ISO C1','{\"metric\":\"pt\",\"width\":1836.85,\"height\":2599.37}','c1',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (440,57,'ISO C2','{\"metric\":\"pt\",\"width\":1298.27,\"height\":1836.85}','c2',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (441,57,'ISO C3','{\"metric\":\"pt\",\"width\":918.43,\"height\":1298.27}','c3',NULL,NULL,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (442,57,'ISO C4','{\"metric\":\"pt\",\"width\":649.13,\"height\":918.43}','c4',NULL,NULL,0,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (443,57,'ISO C5','{\"metric\":\"pt\",\"width\":459.21,\"height\":649.13}','c5',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (444,57,'ISO C6','{\"metric\":\"pt\",\"width\":323.15,\"height\":459.21}','c6',NULL,NULL,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (445,57,'ISO C7','{\"metric\":\"pt\",\"width\":229.61,\"height\":323.15}','c7',NULL,NULL,0,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (446,57,'ISO C8','{\"metric\":\"pt\",\"width\":161.57,\"height\":229.61}','c8',NULL,NULL,0,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (447,57,'ISO C9','{\"metric\":\"pt\",\"width\":113.39,\"height\":161.57}','c9',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (448,57,'ISO C10','{\"metric\":\"pt\",\"width\":79.37,\"height\":113.39}','c10',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (449,57,'ISO RA0','{\"metric\":\"pt\",\"width\":2437.8,\"height\":3458.27}','ra0',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (450,57,'ISO RA1','{\"metric\":\"pt\",\"width\":1729.13,\"height\":2437.8}','ra1',NULL,NULL,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (451,57,'ISO RA2','{\"metric\":\"pt\",\"width\":1218.9,\"height\":1729.13}','ra2',NULL,NULL,0,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (452,57,'ISO RA3','{\"metric\":\"pt\",\"width\":864.57,\"height\":1218.9}','ra3',NULL,NULL,0,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (453,57,'ISO RA4','{\"metric\":\"pt\",\"width\":609.45,\"height\":864.57}','ra4',NULL,NULL,0,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (454,57,'ISO SRA0','{\"metric\":\"pt\",\"width\":2551.18,\"height\":3628.35}','sra0',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (455,57,'ISO SRA1','{\"metric\":\"pt\",\"width\":1814.17,\"height\":2551.18}','sra1',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (456,57,'ISO SRA2','{\"metric\":\"pt\",\"width\":1275.59,\"height\":1814.17}','sra2',NULL,NULL,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (457,57,'ISO SRA3','{\"metric\":\"pt\",\"width\":907.09,\"height\":1275.59}','sra3',NULL,NULL,0,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (458,57,'ISO SRA4','{\"metric\":\"pt\",\"width\":637.8,\"height\":907.09}','sra4',NULL,NULL,0,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (459,58,'Invoice PDF Format','{\"metric\":\"px\",\"margin_top\":10,\"margin_bottom\":0,\"margin_left\":65,\"margin_right\":0}','default_invoice_pdf_format',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (460,59,'Avery 3475','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":10,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":0,\"tMargin\":5,\"NX\":3,\"NY\":8,\"SpaceX\":0,\"SpaceY\":0,\"width\":70,\"height\":36,\"lPadding\":5.08,\"tPadding\":5.08}','3475','Avery',NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (461,59,'Avery 5160','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.21975,\"tMargin\":0.5,\"NX\":3,\"NY\":10,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":2.5935,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5160','Avery',NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (462,59,'Avery 5161','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.175,\"tMargin\":0.5,\"NX\":2,\"NY\":10,\"SpaceX\":0.15625,\"SpaceY\":0,\"width\":4,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5161','Avery',NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (463,59,'Avery 5162','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.1525,\"tMargin\":0.88,\"NX\":2,\"NY\":7,\"SpaceX\":0.195,\"SpaceY\":0,\"width\":4,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','5162','Avery',NULL,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (464,59,'Avery 5163','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.5,\"NX\":2,\"NY\":5,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":4,\"height\":2,\"lPadding\":0.20,\"tPadding\":0.20}','5163','Avery',NULL,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (465,59,'Avery 5164','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":12,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.156,\"tMargin\":0.5,\"NX\":2,\"NY\":3,\"SpaceX\":0.1875,\"SpaceY\":0,\"width\":4,\"height\":3.33,\"lPadding\":0.20,\"tPadding\":0.20}','5164','Avery',NULL,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (466,59,'Avery 8600','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":7.1,\"tMargin\":19,\"NX\":3,\"NY\":10,\"SpaceX\":9.5,\"SpaceY\":3.1,\"width\":66.6,\"height\":25.4,\"lPadding\":5.08,\"tPadding\":5.08}','8600','Avery',NULL,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (467,59,'Avery L7160','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.6,\"NX\":3,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7160','Avery',NULL,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (468,59,'Avery L7161','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.35,\"NX\":3,\"NY\":6,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.83,\"lPadding\":0.20,\"tPadding\":0.20}','L7161','Avery',NULL,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (469,59,'Avery L7162','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.51,\"NX\":2,\"NY\":8,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','L7162','Avery',NULL,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (470,59,'Avery L7163','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.6,\"NX\":2,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7163','Avery',NULL,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (471,60,'Activity Assignees','1','Activity Assignees',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (472,60,'Activity Source','2','Activity Source',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (473,60,'Activity Targets','3','Activity Targets',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (474,61,'Income Account is','1','Income Account is',NULL,0,1,1,'Income Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (475,61,'Credit/Contra Revenue Account is','2','Credit/Contra Revenue Account is',NULL,0,0,2,'Credit/Contra Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (476,61,'Accounts Receivable Account is','3','Accounts Receivable Account is',NULL,0,0,3,'Accounts Receivable Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (477,61,'Credit Liability Account is','4','Credit Liability Account is',NULL,0,0,4,'Credit Liability Account is',0,1,0,2,NULL,NULL,NULL,NULL), - (478,61,'Expense Account is','5','Expense Account is',NULL,0,0,5,'Expense Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (479,61,'Asset Account is','6','Asset Account is',NULL,0,0,6,'Asset Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (480,61,'Cost of Sales Account is','7','Cost of Sales Account is',NULL,0,0,7,'Cost of Sales Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (481,61,'Premiums Inventory Account is','8','Premiums Inventory Account is',NULL,0,0,8,'Premiums Inventory Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (482,61,'Discounts Account is','9','Discounts Account is',NULL,0,0,9,'Discounts Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (483,61,'Sales Tax Account is','10','Sales Tax Account is',NULL,0,0,10,'Sales Tax Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (484,61,'Chargeback Account is','11','Chargeback Account is',NULL,0,0,11,'Chargeback Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (485,61,'Deferred Revenue Account is','12','Deferred Revenue Account is',NULL,0,0,12,'Deferred Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL), - (486,62,'Participant Role','1','participant_role',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (487,63,'Morning Sessions','1','Morning Sessions',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (488,63,'Evening Sessions','2','Evening Sessions',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (489,64,'Contribution','1','Contribution',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (490,64,'Membership','2','Membership',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (491,64,'Pledge Payment','3','Pledge Payment',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (492,65,'Manual Batch','1','Manual Batch',NULL,0,0,1,'Manual Batch',0,1,1,2,NULL,NULL,NULL,NULL), - (493,65,'Automatic Batch','2','Automatic Batch',NULL,0,0,2,'Automatic Batch',0,1,1,2,NULL,NULL,NULL,NULL), - (494,66,'Open','1','Open',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (495,66,'Closed','2','Closed',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (496,66,'Data Entry','3','Data Entry',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (497,66,'Reopened','4','Reopened',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (498,66,'Exported','5','Exported',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (499,67,'http','1','http',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (500,67,'xml','2','xml',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (501,67,'smtp','3','smtp',NULL,NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (502,69,'Renewal Reminder (non-auto-renew memberships only)','1','Renewal Reminder (non-auto-renew memberships only)',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (503,69,'Auto-renew Memberships Only','2','Auto-renew Memberships Only',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (504,69,'Reminder for Both','3','Reminder for Both',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (505,70,'Asset','1','Asset',NULL,0,0,1,'Things you own',0,1,1,2,NULL,NULL,NULL,NULL), - (506,70,'Liability','2','Liability',NULL,0,0,2,'Things you owe, like a grant still to be disbursed',0,1,1,2,NULL,NULL,NULL,NULL), - (507,70,'Revenue','3','Revenue',NULL,0,1,3,'Income from contributions and sales of tickets and memberships',0,1,1,2,NULL,NULL,NULL,NULL), - (508,70,'Cost of Sales','4','Cost of Sales',NULL,0,0,4,'Costs incurred to get revenue, e.g. premiums for donations, dinner for a fundraising dinner ticket',0,1,1,2,NULL,NULL,NULL,NULL), - (509,70,'Expenses','5','Expenses',NULL,0,0,5,'Things that are paid for that are consumable, e.g. grants disbursed',0,1,1,2,NULL,NULL,NULL,NULL), - (510,71,'Paid','1','Paid',NULL,0,0,1,'Paid',0,1,1,2,NULL,NULL,NULL,NULL), - (511,71,'Unpaid','3','Unpaid',NULL,0,0,1,'Unpaid',0,1,1,2,NULL,NULL,NULL,NULL), - (512,71,'Partially paid','2','Partially paid',NULL,0,0,2,'Partially paid',0,1,1,2,NULL,NULL,NULL,NULL), - (513,72,'Event Badge','1','Event Badge',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (514,73,'Avery 5395','{\"name\":\"Avery 5395\",\"paper-size\":\"a4\",\"metric\":\"mm\",\"lMargin\":15,\"tMargin\":26,\"NX\":2,\"NY\":4,\"SpaceX\":10,\"SpaceY\":5,\"width\":83,\"height\":57,\"font-size\":12,\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-style\":\"\",\"lPadding\":3,\"tPadding\":3}','Avery 5395',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (515,73,'A6 Badge Portrait 150x106','{\"paper-size\":\"a4\",\"orientation\":\"landscape\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":1,\"metric\":\"mm\",\"lMargin\":25,\"tMargin\":27,\"SpaceX\":0,\"SpaceY\":35,\"width\":106,\"height\":150,\"lPadding\":5,\"tPadding\":5}','A6 Badge Portrait 150x106',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (516,73,'Fattorini Name Badge 100x65','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":4,\"metric\":\"mm\",\"lMargin\":6,\"tMargin\":19,\"SpaceX\":0,\"SpaceY\":0,\"width\":100,\"height\":65,\"lPadding\":0,\"tPadding\":0}','Fattorini Name Badge 100x65',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (517,73,'Hanging Badge 3-3/4\" x 4-3\"/4','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":2,\"metric\":\"mm\",\"lMargin\":10,\"tMargin\":28,\"SpaceX\":0,\"SpaceY\":0,\"width\":96,\"height\":121,\"lPadding\":5,\"tPadding\":5}','Hanging Badge 3-3/4\" x 4-3\"/4',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (518,74,'Formal','1','formal',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (519,74,'Familiar','2','familiar',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (520,75,'Email','Email','Email',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (521,75,'SMS','SMS','SMS',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (522,75,'User Preference','User_Preference','User Preference',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (523,76,'Actual date only','1','Actual date only',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (524,76,'Each anniversary','2','Each anniversary',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (525,77,'Default','1','default',NULL,NULL,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (526,77,'CiviMail','2','civimail',NULL,NULL,0,2,NULL,0,1,1,4,NULL,NULL,NULL,NULL), - (527,77,'CiviEvent','3','civievent',NULL,NULL,0,3,NULL,0,1,1,1,NULL,NULL,NULL,NULL), - (528,78,'Today','this.day','this.day',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (529,78,'This week','this.week','this.week',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (530,78,'This calendar month','this.month','this.month',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (531,78,'This quarter','this.quarter','this.quarter',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (532,78,'This fiscal year','this.fiscal_year','this.fiscal_year',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (533,78,'This calendar year','this.year','this.year',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (534,78,'Yesterday','previous.day','previous.day',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (535,78,'Previous week','previous.week','previous.week',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (536,78,'Previous calendar month','previous.month','previous.month',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (537,78,'Previous quarter','previous.quarter','previous.quarter',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (538,78,'Previous fiscal year','previous.fiscal_year','previous.fiscal_year',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (539,78,'Previous calendar year','previous.year','previous.year',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (540,78,'Last 7 days including today','ending.week','ending.week',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (541,78,'Last 30 days including today','ending_30.day','ending.month',NULL,NULL,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (542,78,'Last 60 days including today','ending_60.day','ending_2.month',NULL,NULL,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (543,78,'Last 90 days including today','ending_90.day','ending.quarter',NULL,NULL,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (544,78,'Last 12 months including today','ending.year','ending.year',NULL,NULL,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (545,78,'Last 2 years including today','ending_2.year','ending_2.year',NULL,NULL,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (546,78,'Last 3 years including today','ending_3.year','ending_3.year',NULL,NULL,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (547,78,'Tomorrow','starting.day','starting.day',NULL,NULL,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (548,78,'Next week','next.week','next.week',NULL,NULL,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (549,78,'Next calendar month','next.month','next.month',NULL,NULL,0,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (550,78,'Next quarter','next.quarter','next.quarter',NULL,NULL,0,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (551,78,'Next fiscal year','next.fiscal_year','next.fiscal_year',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (552,78,'Next calendar year','next.year','next.year',NULL,NULL,0,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (553,78,'Next 7 days including today','starting.week','starting.week',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (554,78,'Next 30 days including today','starting.month','starting.month',NULL,NULL,0,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (555,78,'Next 60 days including today','starting_2.month','starting_2.month',NULL,NULL,0,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (556,78,'Next 90 days including today','starting.quarter','starting.quarter',NULL,NULL,0,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (557,78,'Next 12 months including today','starting.year','starting.year',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (558,78,'Current week to-date','current.week','current.week',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (559,78,'Current calendar month to-date','current.month','current.month',NULL,NULL,0,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (560,78,'Current quarter to-date','current.quarter','current.quarter',NULL,NULL,0,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (561,78,'Current calendar year to-date','current.year','current.year',NULL,NULL,0,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (562,78,'To end of yesterday','earlier.day','earlier.day',NULL,NULL,0,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (563,78,'To end of previous week','earlier.week','earlier.week',NULL,NULL,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (564,78,'To end of previous calendar month','earlier.month','earlier.month',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (565,78,'To end of previous quarter','earlier.quarter','earlier.quarter',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (566,78,'To end of previous calendar year','earlier.year','earlier.year',NULL,NULL,0,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (567,78,'From start of current day','greater.day','greater.day',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (568,78,'From start of current week','greater.week','greater.week',NULL,NULL,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (569,78,'From start of current calendar month','greater.month','greater.month',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (570,78,'From start of current quarter','greater.quarter','greater.quarter',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (571,78,'From start of current calendar year','greater.year','greater.year',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (572,78,'To end of current week','less.week','less.week',NULL,NULL,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (573,78,'To end of current calendar month','less.month','less.month',NULL,NULL,0,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (574,78,'To end of current quarter','less.quarter','less.quarter',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (575,78,'To end of current calendar year','less.year','less.year',NULL,NULL,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (576,78,'Previous 2 days','previous_2.day','previous_2.day',NULL,NULL,0,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (577,78,'Previous 2 weeks','previous_2.week','previous_2.week',NULL,NULL,0,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (578,78,'Previous 2 calendar months','previous_2.month','previous_2.month',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (579,78,'Previous 2 quarters','previous_2.quarter','previous_2.quarter',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (580,78,'Previous 2 calendar years','previous_2.year','previous_2.year',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (581,78,'Previous 2 fiscal years','previous_2.fiscal_year','previous_2.fiscal_year',NULL,NULL,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (582,78,'Day prior to yesterday','previous_before.day','previous_before.day',NULL,NULL,0,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (583,78,'Week prior to previous week','previous_before.week','previous_before.week',NULL,NULL,0,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (584,78,'Month prior to previous calendar month','previous_before.month','previous_before.month',NULL,NULL,NULL,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (585,78,'Quarter prior to previous quarter','previous_before.quarter','previous_before.quarter',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (586,78,'Year prior to previous calendar year','previous_before.year','previous_before.year',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (587,78,'Fiscal year prior to previous fiscal year','previous_before.fiscal_year','previous_before.fiscal_year',NULL,NULL,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (588,78,'From end of previous week','greater_previous.week','greater_previous.week',NULL,NULL,0,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (589,78,'From end of previous calendar month','greater_previous.month','greater_previous.month',NULL,NULL,0,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (590,78,'From end of previous quarter','greater_previous.quarter','greater_previous.quarter',NULL,NULL,0,63,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (591,78,'From end of previous calendar year','greater_previous.year','greater_previous.year',NULL,NULL,0,64,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (592,79,'Completed','1','Completed',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (593,79,'Pending','2','Pending',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (594,79,'Cancelled','3','Cancelled',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (595,79,'In Progress','5','In Progress',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (596,79,'Overdue','6','Overdue',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (597,80,'Completed','1','Completed',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (598,80,'Pending','2','Pending',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (599,80,'Cancelled','3','Cancelled',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (600,80,'Failed','4','Failed',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (601,80,'In Progress','5','In Progress',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (602,80,'Overdue','6','Overdue',NULL,0,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (603,80,'Processing','7','Processing',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (604,80,'Failing','8','Failing',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (605,81,'Production','Production','Production',NULL,NULL,1,1,'Production Environment',0,1,1,NULL,NULL,NULL,NULL,NULL), - (606,81,'Staging','Staging','Staging',NULL,NULL,0,2,'Staging Environment',0,1,1,NULL,NULL,NULL,NULL,NULL), - (607,81,'Development','Development','Development',NULL,NULL,0,3,'Development Environment',0,1,1,NULL,NULL,NULL,NULL,NULL), - (608,82,'None','1','NONE',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (609,82,'By relationship to case client','2','BY_RELATIONSHIP',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (610,82,'Specific contact','3','SPECIFIC_CONTACT',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (611,82,'User creating the case','4','USER_CREATING_THE_CASE',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (612,83,'Financial Transactions','civicrm_financial_trxn','civicrm_financial_trxn',NULL,0,1,1,NULL,0,0,1,2,NULL,NULL,NULL,NULL), - (613,85,'Abkhaz','ab','ab_GE',NULL,0,0,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (614,85,'Afar','aa','aa_ET',NULL,0,0,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (615,85,'Afrikaans','af','af_ZA',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (616,85,'Akan','ak','ak_GH',NULL,0,0,4,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (617,85,'Albanian','sq','sq_AL',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (618,85,'Amharic','am','am_ET',NULL,0,0,6,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (619,85,'Arabic','ar','ar_EG',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (620,85,'Aragonese','an','an_ES',NULL,0,0,8,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (621,85,'Armenian','hy','hy_AM',NULL,0,0,9,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (622,85,'Assamese','as','as_IN',NULL,0,0,10,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (623,85,'Avaric','av','av_RU',NULL,0,0,11,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (624,85,'Avestan','ae','ae_XX',NULL,0,0,12,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (625,85,'Aymara','ay','ay_BO',NULL,0,0,13,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (626,85,'Azerbaijani','az','az_AZ',NULL,0,0,14,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (627,85,'Bambara','bm','bm_ML',NULL,0,0,15,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (628,85,'Bashkir','ba','ba_RU',NULL,0,0,16,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (629,85,'Basque','eu','eu_ES',NULL,0,0,17,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (630,85,'Belarusian','be','be_BY',NULL,0,0,18,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (631,85,'Bengali','bn','bn_BD',NULL,0,0,19,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (632,85,'Bihari','bh','bh_IN',NULL,0,0,20,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (633,85,'Bislama','bi','bi_VU',NULL,0,0,21,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (634,85,'Bosnian','bs','bs_BA',NULL,0,0,22,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (635,85,'Breton','br','br_FR',NULL,0,0,23,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (636,85,'Bulgarian','bg','bg_BG',NULL,0,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (637,85,'Burmese','my','my_MM',NULL,0,0,25,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (638,85,'Catalan; Valencian','ca','ca_ES',NULL,0,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (639,85,'Chamorro','ch','ch_GU',NULL,0,0,27,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (640,85,'Chechen','ce','ce_RU',NULL,0,0,28,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (641,85,'Chichewa; Chewa; Nyanja','ny','ny_MW',NULL,0,0,29,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (642,85,'Chinese (China)','zh','zh_CN',NULL,0,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (643,85,'Chinese (Taiwan)','zh','zh_TW',NULL,0,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (644,85,'Chuvash','cv','cv_RU',NULL,0,0,32,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (645,85,'Cornish','kw','kw_GB',NULL,0,0,33,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (646,85,'Corsican','co','co_FR',NULL,0,0,34,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (647,85,'Cree','cr','cr_CA',NULL,0,0,35,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (648,85,'Croatian','hr','hr_HR',NULL,0,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (649,85,'Czech','cs','cs_CZ',NULL,0,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (650,85,'Danish','da','da_DK',NULL,0,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (651,85,'Divehi; Dhivehi; Maldivian;','dv','dv_MV',NULL,0,0,39,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (652,85,'Dutch (Netherlands)','nl','nl_NL',NULL,0,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (653,85,'Dutch (Belgium)','nl','nl_BE',NULL,0,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (654,85,'Dzongkha','dz','dz_BT',NULL,0,0,42,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (655,85,'English (Australia)','en','en_AU',NULL,0,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (656,85,'English (Canada)','en','en_CA',NULL,0,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (657,85,'English (United Kingdom)','en','en_GB',NULL,0,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (658,85,'English (United States)','en','en_US',NULL,0,1,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (659,85,'Esperanto','eo','eo_XX',NULL,0,0,47,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (660,85,'Estonian','et','et_EE',NULL,0,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (661,85,'Ewe','ee','ee_GH',NULL,0,0,49,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (662,85,'Faroese','fo','fo_FO',NULL,0,0,50,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (663,85,'Fijian','fj','fj_FJ',NULL,0,0,51,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (664,85,'Finnish','fi','fi_FI',NULL,0,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (665,85,'French (Canada)','fr','fr_CA',NULL,0,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (666,85,'French (France)','fr','fr_FR',NULL,0,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (667,85,'Fula; Fulah; Pulaar; Pular','ff','ff_SN',NULL,0,0,55,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (668,85,'Galician','gl','gl_ES',NULL,0,0,56,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (669,85,'Georgian','ka','ka_GE',NULL,0,0,57,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (670,85,'German','de','de_DE',NULL,0,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (671,85,'German (Swiss)','de','de_CH',NULL,0,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (672,85,'Greek, Modern','el','el_GR',NULL,0,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (673,85,'GuaraniÂ','gn','gn_PY',NULL,0,0,61,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (674,85,'Gujarati','gu','gu_IN',NULL,0,0,62,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (675,85,'Haitian; Haitian Creole','ht','ht_HT',NULL,0,0,63,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (676,85,'Hausa','ha','ha_NG',NULL,0,0,64,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (677,85,'Hebrew (modern)','he','he_IL',NULL,0,0,65,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (678,85,'Herero','hz','hz_NA',NULL,0,0,66,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (679,85,'Hindi','hi','hi_IN',NULL,0,0,67,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (680,85,'Hiri Motu','ho','ho_PG',NULL,0,0,68,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (681,85,'Hungarian','hu','hu_HU',NULL,0,0,69,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (682,85,'Interlingua','ia','ia_XX',NULL,0,0,70,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (683,85,'Indonesian','id','id_ID',NULL,0,0,71,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (684,85,'Interlingue','ie','ie_XX',NULL,0,0,72,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (685,85,'Irish','ga','ga_IE',NULL,0,0,73,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (686,85,'Igbo','ig','ig_NG',NULL,0,0,74,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (687,85,'Inupiaq','ik','ik_US',NULL,0,0,75,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (688,85,'Ido','io','io_XX',NULL,0,0,76,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (689,85,'Icelandic','is','is_IS',NULL,0,0,77,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (690,85,'Italian','it','it_IT',NULL,0,0,78,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (691,85,'Inuktitut','iu','iu_CA',NULL,0,0,79,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (692,85,'Japanese','ja','ja_JP',NULL,0,0,80,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (693,85,'Javanese','jv','jv_ID',NULL,0,0,81,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (694,85,'Kalaallisut, Greenlandic','kl','kl_GL',NULL,0,0,82,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (695,85,'Kannada','kn','kn_IN',NULL,0,0,83,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (696,85,'Kanuri','kr','kr_NE',NULL,0,0,84,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (697,85,'Kashmiri','ks','ks_IN',NULL,0,0,85,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (698,85,'Kazakh','kk','kk_KZ',NULL,0,0,86,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (699,85,'Khmer','km','km_KH',NULL,0,0,87,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (700,85,'Kikuyu, Gikuyu','ki','ki_KE',NULL,0,0,88,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (701,85,'Kinyarwanda','rw','rw_RW',NULL,0,0,89,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (702,85,'Kirghiz, Kyrgyz','ky','ky_KG',NULL,0,0,90,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (703,85,'Komi','kv','kv_RU',NULL,0,0,91,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (704,85,'Kongo','kg','kg_CD',NULL,0,0,92,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (705,85,'Korean','ko','ko_KR',NULL,0,0,93,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (706,85,'Kurdish','ku','ku_IQ',NULL,0,0,94,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (707,85,'Kwanyama, Kuanyama','kj','kj_NA',NULL,0,0,95,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (708,85,'Latin','la','la_VA',NULL,0,0,96,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (709,85,'Luxembourgish, Letzeburgesch','lb','lb_LU',NULL,0,0,97,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (710,85,'Luganda','lg','lg_UG',NULL,0,0,98,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (711,85,'Limburgish, Limburgan, Limburger','li','li_NL',NULL,0,0,99,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (712,85,'Lingala','ln','ln_CD',NULL,0,0,100,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (713,85,'Lao','lo','lo_LA',NULL,0,0,101,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (714,85,'Lithuanian','lt','lt_LT',NULL,0,0,102,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (715,85,'Luba-Katanga','lu','lu_CD',NULL,0,0,103,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (716,85,'Latvian','lv','lv_LV',NULL,0,0,104,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (717,85,'Manx','gv','gv_IM',NULL,0,0,105,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (718,85,'Macedonian','mk','mk_MK',NULL,0,0,106,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (719,85,'Malagasy','mg','mg_MG',NULL,0,0,107,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (720,85,'Malay','ms','ms_MY',NULL,0,0,108,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (721,85,'Malayalam','ml','ml_IN',NULL,0,0,109,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (722,85,'Maltese','mt','mt_MT',NULL,0,0,110,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (723,85,'MÄori','mi','mi_NZ',NULL,0,0,111,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (724,85,'Marathi','mr','mr_IN',NULL,0,0,112,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (725,85,'Marshallese','mh','mh_MH',NULL,0,0,113,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (726,85,'Mongolian','mn','mn_MN',NULL,0,0,114,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (727,85,'Nauru','na','na_NR',NULL,0,0,115,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (728,85,'Navajo, Navaho','nv','nv_US',NULL,0,0,116,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (729,85,'Norwegian BokmÃ¥l','nb','nb_NO',NULL,0,0,117,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (730,85,'North Ndebele','nd','nd_ZW',NULL,0,0,118,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (731,85,'Nepali','ne','ne_NP',NULL,0,0,119,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (732,85,'Ndonga','ng','ng_NA',NULL,0,0,120,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (733,85,'Norwegian Nynorsk','nn','nn_NO',NULL,0,0,121,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (734,85,'Norwegian','no','no_NO',NULL,0,0,122,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (735,85,'Nuosu','ii','ii_CN',NULL,0,0,123,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (736,85,'South Ndebele','nr','nr_ZA',NULL,0,0,124,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (737,85,'Occitan (after 1500)','oc','oc_FR',NULL,0,0,125,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (738,85,'Ojibwa','oj','oj_CA',NULL,0,0,126,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (739,85,'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic','cu','cu_BG',NULL,0,0,127,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (740,85,'Oromo','om','om_ET',NULL,0,0,128,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (741,85,'Oriya','or','or_IN',NULL,0,0,129,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (742,85,'Ossetian, Ossetic','os','os_GE',NULL,0,0,130,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (743,85,'Panjabi, Punjabi','pa','pa_IN',NULL,0,0,131,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (744,85,'Pali','pi','pi_KH',NULL,0,0,132,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (745,85,'Persian (Iran)','fa','fa_IR',NULL,0,0,133,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (746,85,'Polish','pl','pl_PL',NULL,0,0,134,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (747,85,'Pashto, Pushto','ps','ps_AF',NULL,0,0,135,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (748,85,'Portuguese (Brazil)','pt','pt_BR',NULL,0,0,136,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (749,85,'Portuguese (Portugal)','pt','pt_PT',NULL,0,0,137,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (750,85,'Quechua','qu','qu_PE',NULL,0,0,138,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (751,85,'Romansh','rm','rm_CH',NULL,0,0,139,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (752,85,'Kirundi','rn','rn_BI',NULL,0,0,140,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (753,85,'Romanian, Moldavian, Moldovan','ro','ro_RO',NULL,0,0,141,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (754,85,'Russian','ru','ru_RU',NULL,0,0,142,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (755,85,'Sanskrit','sa','sa_IN',NULL,0,0,143,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (756,85,'Sardinian','sc','sc_IT',NULL,0,0,144,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (757,85,'Sindhi','sd','sd_IN',NULL,0,0,145,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (758,85,'Northern Sami','se','se_NO',NULL,0,0,146,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (759,85,'Samoan','sm','sm_WS',NULL,0,0,147,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (760,85,'Sango','sg','sg_CF',NULL,0,0,148,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (761,85,'Serbian','sr','sr_RS',NULL,0,0,149,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (762,85,'Scottish Gaelic; Gaelic','gd','gd_GB',NULL,0,0,150,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (763,85,'Shona','sn','sn_ZW',NULL,0,0,151,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (764,85,'Sinhala, Sinhalese','si','si_LK',NULL,0,0,152,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (765,85,'Slovak','sk','sk_SK',NULL,0,0,153,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (766,85,'Slovene','sl','sl_SI',NULL,0,0,154,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (767,85,'Somali','so','so_SO',NULL,0,0,155,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (768,85,'Southern Sotho','st','st_ZA',NULL,0,0,156,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (769,85,'Spanish; Castilian (Spain)','es','es_ES',NULL,0,0,157,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (770,85,'Spanish; Castilian (Mexico)','es','es_MX',NULL,0,0,158,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (771,85,'Spanish; Castilian (Puerto Rico)','es','es_PR',NULL,0,0,159,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (772,85,'Sundanese','su','su_ID',NULL,0,0,160,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (773,85,'Swahili','sw','sw_TZ',NULL,0,0,161,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (774,85,'Swati','ss','ss_ZA',NULL,0,0,162,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (775,85,'Swedish','sv','sv_SE',NULL,0,0,163,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (776,85,'Tamil','ta','ta_IN',NULL,0,0,164,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (777,85,'Telugu','te','te_IN',NULL,0,0,165,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (778,85,'Tajik','tg','tg_TJ',NULL,0,0,166,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (779,85,'Thai','th','th_TH',NULL,0,0,167,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (780,85,'Tigrinya','ti','ti_ET',NULL,0,0,168,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (781,85,'Tibetan Standard, Tibetan, Central','bo','bo_CN',NULL,0,0,169,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (782,85,'Turkmen','tk','tk_TM',NULL,0,0,170,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (783,85,'Tagalog','tl','tl_PH',NULL,0,0,171,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (784,85,'Tswana','tn','tn_ZA',NULL,0,0,172,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (785,85,'Tonga (Tonga Islands)','to','to_TO',NULL,0,0,173,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (786,85,'Turkish','tr','tr_TR',NULL,0,0,174,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (787,85,'Tsonga','ts','ts_ZA',NULL,0,0,175,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (788,85,'Tatar','tt','tt_RU',NULL,0,0,176,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (789,85,'Twi','tw','tw_GH',NULL,0,0,177,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (790,85,'Tahitian','ty','ty_PF',NULL,0,0,178,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (791,85,'Uighur, Uyghur','ug','ug_CN',NULL,0,0,179,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (792,85,'Ukrainian','uk','uk_UA',NULL,0,0,180,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (793,85,'Urdu','ur','ur_PK',NULL,0,0,181,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (794,85,'Uzbek','uz','uz_UZ',NULL,0,0,182,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (795,85,'Venda','ve','ve_ZA',NULL,0,0,183,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (796,85,'Vietnamese','vi','vi_VN',NULL,0,0,184,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (797,85,'Volapük','vo','vo_XX',NULL,0,0,185,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (798,85,'Walloon','wa','wa_BE',NULL,0,0,186,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (799,85,'Welsh','cy','cy_GB',NULL,0,0,187,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (800,85,'Wolof','wo','wo_SN',NULL,0,0,188,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (801,85,'Western Frisian','fy','fy_NL',NULL,0,0,189,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (802,85,'Xhosa','xh','xh_ZA',NULL,0,0,190,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (803,85,'Yiddish','yi','yi_US',NULL,0,0,191,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (804,85,'Yoruba','yo','yo_NG',NULL,0,0,192,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (805,85,'Zhuang, Chuang','za','za_CN',NULL,0,0,193,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (806,85,'Zulu','zu','zu_ZA',NULL,0,0,194,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), - (807,86,'In Person','1','in_person',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (808,86,'Phone','2','phone',NULL,0,1,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (809,86,'Email','3','email',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (810,86,'Fax','4','fax',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (811,86,'Letter Mail','5','letter_mail',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (812,87,'Cases - Send Copy of an Activity','1','case_activity',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (813,88,'Contributions - Duplicate Organization Alert','1','contribution_dupalert',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (814,88,'Contributions - Receipt (off-line)','2','contribution_offline_receipt',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (815,88,'Contributions - Receipt (on-line)','3','contribution_online_receipt',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (816,88,'Contributions - Invoice','4','contribution_invoice_receipt',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (817,88,'Contributions - Recurring Start and End Notification','5','contribution_recurring_notify',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (818,88,'Contributions - Recurring Cancellation Notification','6','contribution_recurring_cancelled',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (819,88,'Contributions - Recurring Billing Updates','7','contribution_recurring_billing',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (820,88,'Contributions - Recurring Updates','8','contribution_recurring_edit',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (821,88,'Personal Campaign Pages - Admin Notification','9','pcp_notify',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (822,88,'Personal Campaign Pages - Supporter Status Change Notification','10','pcp_status_change',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (823,88,'Personal Campaign Pages - Supporter Welcome','11','pcp_supporter_notify',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (824,88,'Personal Campaign Pages - Owner Notification','12','pcp_owner_notify',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (825,88,'Additional Payment Receipt or Refund Notification','13','payment_or_refund_notification',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (826,89,'Events - Registration Confirmation and Receipt (off-line)','1','event_offline_receipt',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (827,89,'Events - Registration Confirmation and Receipt (on-line)','2','event_online_receipt',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (828,89,'Events - Receipt only','3','event_registration_receipt',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (829,89,'Events - Registration Cancellation Notice','4','participant_cancelled',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (830,89,'Events - Registration Confirmation Invite','5','participant_confirm',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (831,89,'Events - Pending Registration Expiration Notice','6','participant_expired',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (832,89,'Events - Registration Transferred Notice','7','participant_transferred',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (833,90,'Tell-a-Friend Email','1','friend',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (834,91,'Memberships - Signup and Renewal Receipts (off-line)','1','membership_offline_receipt',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (835,91,'Memberships - Receipt (on-line)','2','membership_online_receipt',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (836,91,'Memberships - Auto-renew Cancellation Notification','3','membership_autorenew_cancelled',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (837,91,'Memberships - Auto-renew Billing Updates','4','membership_autorenew_billing',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (838,92,'Test-drive - Receipt Header','1','test_preview',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (839,93,'Pledges - Acknowledgement','1','pledge_acknowledge',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (840,93,'Pledges - Payment Reminder','2','pledge_reminder',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (841,94,'Profiles - Admin Notification','1','uf_notify',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (842,95,'Petition - signature added','1','petition_sign',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (843,95,'Petition - need verification','2','petition_confirmation_needed',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (844,96,'In Honor of','1','in_honor_of',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (845,96,'In Memory of','2','in_memory_of',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (846,96,'Solicited','3','solicited',NULL,0,1,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (847,96,'Household','4','household',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (848,96,'Workplace Giving','5','workplace',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (849,96,'Foundation Affiliate','6','foundation_affiliate',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (850,96,'3rd-party Service','7','3rd-party_service',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (851,96,'Donor-advised Fund','8','donor-advised_fund',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (852,96,'Matched Gift','9','matched_gift',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), - (853,96,'Personal Campaign Page','10','pcp',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (854,96,'Gift','11','gift',NULL,0,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), - (855,97,'Contacts','Contact','Contact',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (856,97,'Relationships','Relationship','Relationship',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (857,97,'Activities','Activity','Activity',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (858,97,'Notes','Note','Note',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (859,97,'Groups','Group','Group',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (860,97,'Cases','Case','Case',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (861,97,'Contributions','Contribution','Contribution',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (862,97,'Participants','Participant','Participant',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (863,97,'Memberships','Membership','Membership',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (864,97,'Pledges','Pledge','Pledge',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (865,97,'Events','Event','Event',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (866,97,'Campaigns','Campaign','Campaign',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), - (867,2,'Interview','55','Interview',NULL,0,NULL,55,'Conduct a phone or in person interview.',0,0,1,NULL,NULL,NULL,'fa-comment-o',NULL), - (868,8,'Advisory Board','3','Advisory Board',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL); + (58,2,'Case Client was removed from Case','55','Case Client Removed',NULL,0,0,55,'Case client was removed from a case',0,0,1,7,NULL,NULL,'fa-trash',NULL), + (59,3,'Female','1','Female',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (60,3,'Male','2','Male',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (61,3,'Other','3','Other',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (62,4,'Yahoo','1','Yahoo',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (63,4,'MSN','2','Msn',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (64,4,'AIM','3','Aim',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (65,4,'GTalk','4','Gtalk',NULL,0,NULL,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (66,4,'Jabber','5','Jabber',NULL,0,NULL,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (67,4,'Skype','6','Skype',NULL,0,NULL,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (68,5,'Sprint','1','Sprint',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (69,5,'Verizon','2','Verizon',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (70,5,'Cingular','3','Cingular',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (71,6,'Mrs.','1','Mrs.',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (72,6,'Ms.','2','Ms.',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (73,6,'Mr.','3','Mr.',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (74,6,'Dr.','4','Dr.',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (75,7,'Jr.','1','Jr.',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (76,7,'Sr.','2','Sr.',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (77,7,'II','3','II',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (78,7,'III','4','III',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (79,7,'IV','5','IV',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (80,7,'V','6','V',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (81,7,'VI','7','VI',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (82,7,'VII','8','VII',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (83,8,'Everyone','0','Everyone',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (84,8,'Administrator','1','Admin',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (85,8,'Authenticated','2','Auth',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (86,9,'Visa','1','Visa',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (87,9,'MasterCard','2','MasterCard',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (88,9,'Amex','3','Amex',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (89,9,'Discover','4','Discover',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (90,10,'Credit Card','1','Credit Card',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (91,10,'Debit Card','2','Debit Card',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (92,10,'Cash','3','Cash',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (93,10,'Check','4','Check',NULL,0,1,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (94,10,'EFT','5','EFT',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (95,11,'Completed','1','Completed',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (96,11,'Pending','2','Pending',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (97,11,'Cancelled','3','Cancelled',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (98,11,'Failed','4','Failed',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (99,11,'Refunded','7','Refunded',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (100,11,'Partially paid','8','Partially paid',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (101,11,'Pending refund','9','Pending refund',NULL,0,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (102,11,'Chargeback','10','Chargeback',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (103,11,'Template','11','Template',NULL,0,0,11,'Status for contribution records which represent a template for a recurring contribution rather than an actual contribution. This status is transitional, to ensure that said contributions don\\\'t appear in reports. The is_template field is the preferred way to find and filter these contributions.',0,1,1,NULL,NULL,NULL,NULL,NULL), + (104,12,'Waiting Review','1','Waiting Review',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (105,12,'Approved','2','Approved',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (106,12,'Not Approved','3','Not Approved',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (107,13,'Owner chooses whether to receive notifications','1','owner_chooses',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (108,13,'Notifications are sent to ALL owners','2','all_owners',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (109,13,'Notifications are NOT available','3','no_notifications',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (110,14,'Attendee','1','Attendee',NULL,1,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (111,14,'Volunteer','2','Volunteer',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (112,14,'Host','3','Host',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (113,14,'Speaker','4','Speaker',NULL,1,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (114,15,'Conference','1','Conference',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (115,15,'Exhibition','2','Exhibition',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (116,15,'Fundraiser','3','Fundraiser',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (117,15,'Meeting','4','Meeting',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (118,15,'Performance','5','Performance',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (119,15,'Workshop','6','Workshop',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (120,16,'Activities','1','activity',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (121,16,'Relationships','2','rel',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (122,16,'Groups','3','group',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (123,16,'Notes','4','note',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (124,16,'Tags','5','tag',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (125,16,'Change Log','6','log',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (126,16,'Contributions','7','CiviContribute',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (127,16,'Memberships','8','CiviMember',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (128,16,'Events','9','CiviEvent',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (129,16,'Cases','10','CiviCase',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (130,16,'Pledges','13','CiviPledge',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (131,16,'Mailings','14','CiviMail',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (132,17,'Show Smart Groups on Demand','1','showondemand',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (133,17,'Always Show Smart Groups','2','alwaysshow',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (134,17,'Hide Smart Groups','3','hide',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (135,18,'Custom Data','1','CustomData',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (136,18,'Address','2','Address',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (137,18,'Communication Preferences','3','CommunicationPreferences',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (138,18,'Notes','4','Notes',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (139,18,'Demographics','5','Demographics',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (140,18,'Tags and Groups','6','TagsAndGroups',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (141,18,'Email','7','Email',NULL,1,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (142,18,'Phone','8','Phone',NULL,1,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (143,18,'Instant Messenger','9','IM',NULL,1,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (144,18,'Open ID','10','OpenID',NULL,1,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (145,18,'Website','11','Website',NULL,1,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (146,18,'Prefix','12','Prefix',NULL,2,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (147,18,'Formal Title','13','Formal Title',NULL,2,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (148,18,'First Name','14','First Name',NULL,2,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (149,18,'Middle Name','15','Middle Name',NULL,2,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (150,18,'Last Name','16','Last Name',NULL,2,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (151,18,'Suffix','17','Suffix',NULL,2,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (152,19,'Address Fields','1','location',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (153,19,'Custom Fields','2','custom',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (154,19,'Activities','3','activity',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (155,19,'Relationships','4','relationship',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (156,19,'Notes','5','notes',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (157,19,'Change Log','6','changeLog',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (158,19,'Contributions','7','CiviContribute',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (159,19,'Memberships','8','CiviMember',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (160,19,'Events','9','CiviEvent',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (161,19,'Cases','10','CiviCase',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (162,19,'Demographics','13','demographics',NULL,0,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (163,19,'Pledges','15','CiviPledge',NULL,0,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (164,19,'Contact Type','16','contactType',NULL,0,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (165,19,'Groups','17','groups',NULL,0,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (166,19,'Tags','18','tags',NULL,0,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (167,19,'Mailing','19','CiviMail',NULL,0,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (168,20,'Groups','1','Groups',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (169,20,'Contributions','2','CiviContribute',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (170,20,'Memberships','3','CiviMember',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (171,20,'Events','4','CiviEvent',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (172,20,'My Contacts / Organizations','5','Permissioned Orgs',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (173,20,'Pledges','7','CiviPledge',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (174,20,'Personal Campaign Pages','8','PCP',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (175,20,'Assigned Activities','9','Assigned Activities',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (176,20,'Invoices / Credit Notes','10','Invoices / Credit Notes',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (177,21,'Street Address','1','street_address',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (178,21,'Supplemental Address 1','2','supplemental_address_1',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (179,21,'Supplemental Address 2','3','supplemental_address_2',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (180,21,'Supplemental Address 3','4','supplemental_address_3',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (181,21,'City','5','city',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (182,21,'Postal Code','6','postal_code',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (183,21,'Postal Code Suffix','7','postal_code_suffix',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (184,21,'County','8','county',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (185,21,'State/Province','9','state_province',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (186,21,'Country','10','country',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (187,21,'Latitude','11','geo_code_1',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (188,21,'Longitude','12','geo_code_2',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (189,21,'Address Name','13','address_name',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (190,21,'Street Address Parsing','14','street_address_parsing',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (191,22,'Access Control','1','Access Control',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (192,22,'Mailing List','2','Mailing List',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (193,23,'CRM_Contact_Form_Search_Custom_Sample','1','CRM_Contact_Form_Search_Custom_Sample',NULL,0,0,1,'Household Name and State',0,0,1,NULL,NULL,NULL,NULL,NULL), + (194,23,'CRM_Contact_Form_Search_Custom_ContributionAggregate','2','CRM_Contact_Form_Search_Custom_ContributionAggregate',NULL,0,0,2,'Contribution Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL), + (195,23,'CRM_Contact_Form_Search_Custom_Group','4','CRM_Contact_Form_Search_Custom_Group',NULL,0,0,4,'Include / Exclude Search',0,0,1,NULL,NULL,NULL,NULL,NULL), + (196,23,'CRM_Contact_Form_Search_Custom_PostalMailing','5','CRM_Contact_Form_Search_Custom_PostalMailing',NULL,0,0,5,'Postal Mailing',0,0,1,NULL,NULL,NULL,NULL,NULL), + (197,23,'CRM_Contact_Form_Search_Custom_Proximity','6','CRM_Contact_Form_Search_Custom_Proximity',NULL,0,0,6,'Proximity Search',0,0,1,NULL,NULL,NULL,NULL,NULL), + (198,23,'CRM_Contact_Form_Search_Custom_EventAggregate','7','CRM_Contact_Form_Search_Custom_EventAggregate',NULL,0,0,7,'Event Aggregate',0,0,1,NULL,NULL,NULL,NULL,NULL), + (199,23,'CRM_Contact_Form_Search_Custom_ActivitySearch','8','CRM_Contact_Form_Search_Custom_ActivitySearch',NULL,0,0,8,'Activity Search',0,0,0,NULL,NULL,NULL,NULL,NULL), + (200,23,'CRM_Contact_Form_Search_Custom_PriceSet','9','CRM_Contact_Form_Search_Custom_PriceSet',NULL,0,0,9,'Price Set Details for Event Participants',0,0,1,NULL,NULL,NULL,NULL,NULL), + (201,23,'CRM_Contact_Form_Search_Custom_ZipCodeRange','10','CRM_Contact_Form_Search_Custom_ZipCodeRange',NULL,0,0,10,'Zip Code Range',0,0,1,NULL,NULL,NULL,NULL,NULL), + (202,23,'CRM_Contact_Form_Search_Custom_DateAdded','11','CRM_Contact_Form_Search_Custom_DateAdded',NULL,0,0,11,'Date Added to CiviCRM',0,0,1,NULL,NULL,NULL,NULL,NULL), + (203,23,'CRM_Contact_Form_Search_Custom_MultipleValues','12','CRM_Contact_Form_Search_Custom_MultipleValues',NULL,0,0,12,'Custom Group Multiple Values Listing',0,0,1,NULL,NULL,NULL,NULL,NULL), + (204,23,'CRM_Contact_Form_Search_Custom_ContribSYBNT','13','CRM_Contact_Form_Search_Custom_ContribSYBNT',NULL,0,0,13,'Contributions made in Year X and not Year Y',0,0,1,NULL,NULL,NULL,NULL,NULL), + (205,23,'CRM_Contact_Form_Search_Custom_TagContributions','14','CRM_Contact_Form_Search_Custom_TagContributions',NULL,0,0,14,'Find Contribution Amounts by Tag',0,0,1,NULL,NULL,NULL,NULL,NULL), + (206,23,'CRM_Contact_Form_Search_Custom_FullText','15','CRM_Contact_Form_Search_Custom_FullText',NULL,0,0,15,'Full-text Search',0,0,1,NULL,NULL,NULL,NULL,NULL), + (207,24,'Scheduled','1','Scheduled',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (208,24,'Completed','2','Completed',NULL,1,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (209,24,'Cancelled','3','Cancelled',NULL,2,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (210,24,'Left Message','4','Left Message',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (211,24,'Unreachable','5','Unreachable',NULL,2,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (212,24,'Not Required','6','Not Required',NULL,2,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (213,24,'Available','7','Available',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (214,24,'No-show','8','No_show',NULL,2,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (215,26,'Ongoing','1','Open','Opened',0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (216,26,'Resolved','2','Closed','Closed',0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (217,26,'Urgent','3','Urgent','Opened',0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (218,27,'Name Only','1','Name Only',NULL,0,0,1,'CRM_Event_Page_ParticipantListing_Name',0,1,1,NULL,NULL,NULL,NULL,NULL), + (219,27,'Name and Email','2','Name and Email',NULL,0,0,2,'CRM_Event_Page_ParticipantListing_NameAndEmail',0,1,1,NULL,NULL,NULL,NULL,NULL), + (220,27,'Name, Status and Register Date','3','Name, Status and Register Date',NULL,0,0,3,'CRM_Event_Page_ParticipantListing_NameStatusAndDate',0,1,1,NULL,NULL,NULL,NULL,NULL), + (221,28,'jpg','1','jpg',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (222,28,'jpeg','2','jpeg',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (223,28,'png','3','png',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (224,28,'gif','4','gif',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (225,28,'txt','5','txt',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (226,28,'pdf','6','pdf',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (227,28,'doc','7','doc',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (228,28,'xls','8','xls',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (229,28,'rtf','9','rtf',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (230,28,'csv','10','csv',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (231,28,'ppt','11','ppt',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (232,28,'docx','12','docx',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (233,28,'xlsx','13','xlsx',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (234,28,'odt','14','odt',NULL,0,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (235,28,'ics','15','ics',NULL,0,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (236,28,'pptx','16','pptx',NULL,0,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (237,29,'\"FIXME\" <info@EXAMPLE.ORG>','1','\"FIXME\" <info@EXAMPLE.ORG>',NULL,0,1,1,'Default domain email address and from name.',0,0,1,NULL,1,NULL,NULL,NULL), + (238,30,'Search Builder','1','Search Builder',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (239,30,'Import Contact','2','Import Contact',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (240,30,'Import Activity','3','Import Activity',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (241,30,'Import Contribution','4','Import Contribution',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (242,30,'Import Membership','5','Import Membership',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (243,30,'Import Participant','6','Import Participant',NULL,0,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (244,30,'Export Contact','7','Export Contact',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (245,30,'Export Contribution','8','Export Contribution',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (246,30,'Export Membership','9','Export Membership',NULL,0,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (247,30,'Export Participant','10','Export Participant',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (248,30,'Export Pledge','11','Export Pledge',NULL,0,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (249,30,'Export Case','12','Export Case',NULL,0,0,12,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (250,30,'Export Activity','14','Export Activity',NULL,0,0,14,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (251,31,'Textarea','1','Textarea',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (252,31,'CKEditor 4','2','CKEditor',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (253,32,'day','day','day',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (254,32,'week','week','week',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (255,32,'month','month','month',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (256,32,'year','year','year',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (257,33,'Phone','1','Phone',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (258,33,'Mobile','2','Mobile',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (259,33,'Fax','3','Fax',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (260,33,'Pager','4','Pager',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (261,33,'Voicemail','5','Voicemail',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (262,34,'Participants (Role)','1','ParticipantRole','role_id',0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (263,34,'Participants (Event Name)','2','ParticipantEventName','event_id',0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (264,34,'Participants (Event Type)','3','ParticipantEventType','event_id.event_type_id',0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (265,35,'Public','1','public',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (266,35,'Admin','2','admin',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (267,36,'IMAP','1','IMAP',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (268,36,'Maildir','2','Maildir',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (269,36,'POP3','3','POP3',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (270,36,'Localdir','4','Localdir',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (271,37,'Urgent','1','Urgent',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (272,37,'Normal','2','Normal',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (273,37,'Low','3','Low',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (274,38,'Vancouver','city_','city_',NULL,0,0,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (275,38,'/(19|20)(\\d{2})-(\\d{1,2})-(\\d{1,2})/','date_','date_',NULL,1,0,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (276,39,'Constituent Report (Summary)','contact/summary','CRM_Report_Form_Contact_Summary',NULL,0,0,1,'Provides a list of address and telephone information for constituent records in your system.',0,0,1,NULL,NULL,NULL,NULL,NULL), + (277,39,'Constituent Report (Detail)','contact/detail','CRM_Report_Form_Contact_Detail',NULL,0,0,2,'Provides contact-related information on contributions, memberships, events and activities.',0,0,1,NULL,NULL,NULL,NULL,NULL), + (278,39,'Activity Details Report','activity','CRM_Report_Form_Activity',NULL,0,0,3,'Provides a list of constituent activity including activity statistics for one/all contacts during a given date range(required)',0,0,1,NULL,NULL,NULL,NULL,NULL), + (279,39,'Walk / Phone List Report','walklist','CRM_Report_Form_Walklist_Walklist',NULL,0,0,4,'Provides a detailed report for your walk/phonelist for targeted contacts',0,0,0,NULL,NULL,NULL,NULL,NULL), + (280,39,'Current Employer Report','contact/currentEmployer','CRM_Report_Form_Contact_CurrentEmployer',NULL,0,0,5,'Provides detail list of employer employee relationships along with employment details Ex Join Date',0,0,1,NULL,NULL,NULL,NULL,NULL), + (281,39,'Contribution Summary Report','contribute/summary','CRM_Report_Form_Contribute_Summary',NULL,0,0,6,'Groups and totals contributions by criteria including contact, time period, financial type, contributor location, etc.',0,0,1,2,NULL,NULL,NULL,NULL), + (282,39,'Contribution Detail Report','contribute/detail','CRM_Report_Form_Contribute_Detail',NULL,0,0,7,'Lists specific contributions by criteria including contact, time period, financial type, contributor location, etc. Contribution summary report points to this report for contribution details.',0,0,1,2,NULL,NULL,NULL,NULL), + (283,39,'Repeat Contributions Report','contribute/repeat','CRM_Report_Form_Contribute_Repeat',NULL,0,0,8,'Given two date ranges, shows contacts who contributed in both the date ranges with the amount contributed in each and the percentage increase / decrease.',0,0,1,2,NULL,NULL,NULL,NULL), + (284,39,'Contributions by Organization Report','contribute/organizationSummary','CRM_Report_Form_Contribute_OrganizationSummary',NULL,0,0,9,'Displays a detailed list of contributions grouped by organization, which includes contributions made by employees for the organisation.',0,0,1,2,NULL,NULL,NULL,NULL), + (285,39,'Contributions by Household Report','contribute/householdSummary','CRM_Report_Form_Contribute_HouseholdSummary',NULL,0,0,10,'Displays a detailed list of contributions grouped by household which includes contributions made by members of the household.',0,0,1,2,NULL,NULL,NULL,NULL), + (286,39,'Top Donors Report','contribute/topDonor','CRM_Report_Form_Contribute_TopDonor',NULL,0,0,11,'Provides a list of the top donors during a time period you define. You can include as many donors as you want (for example, top 100 of your donors).',0,0,1,2,NULL,NULL,NULL,NULL), + (287,39,'SYBUNT Report','contribute/sybunt','CRM_Report_Form_Contribute_Sybunt',NULL,0,0,12,'SYBUNT means some year(s) but not this year. Provides a list of constituents who donated at some time in the history of your organization but did not donate during the time period you specify.',0,0,1,2,NULL,NULL,NULL,NULL), + (288,39,'LYBUNT Report','contribute/lybunt','CRM_Report_Form_Contribute_Lybunt',NULL,0,0,13,'LYBUNT means last year but not this year. Provides a list of constituents who donated last year but did not donate during the time period you specify as the current year.',0,0,1,2,NULL,NULL,NULL,NULL), + (289,39,'Soft Credit Report','contribute/softcredit','CRM_Report_Form_Contribute_SoftCredit',NULL,0,0,14,'Shows contributions made by contacts that have been soft-credited to other contacts.',0,0,1,2,NULL,NULL,NULL,NULL), + (290,39,'Membership Report (Summary)','member/summary','CRM_Report_Form_Member_Summary',NULL,0,0,15,'Provides a summary of memberships by type and Member Since.',0,0,1,3,NULL,NULL,NULL,NULL), + (291,39,'Membership Report (Detail)','member/detail','CRM_Report_Form_Member_Detail',NULL,0,0,16,'Provides a list of members along with their membership status and membership details (Member Since, Membership Start Date, Membership Expiration Date). Can also display contributions (payments) associated with each membership.',0,0,1,3,NULL,NULL,NULL,NULL), + (292,39,'Membership Report (Lapsed)','member/lapse','CRM_Report_Form_Member_Lapse',NULL,0,0,17,'Provides a list of memberships that lapsed or will lapse before the date you specify.',0,0,1,3,NULL,NULL,NULL,NULL), + (293,39,'Event Participant Report (List)','event/participantListing','CRM_Report_Form_Event_ParticipantListing',NULL,0,0,18,'Provides lists of participants for an event.',0,0,1,1,NULL,NULL,NULL,NULL), + (294,39,'Event Income Report (Summary)','event/summary','CRM_Report_Form_Event_Summary',NULL,0,0,19,'Provides an overview of event income. You can include key information such as event ID, registration, attendance, and income generated to help you determine the success of an event.',0,0,1,1,NULL,NULL,NULL,NULL), + (295,39,'Event Income Report (Detail)','event/income','CRM_Report_Form_Event_Income',NULL,0,0,20,'Helps you to analyze the income generated by an event. The report can include details by participant type, status and payment method.',0,0,1,1,NULL,NULL,NULL,NULL), + (296,39,'Pledge Detail Report','pledge/detail','CRM_Report_Form_Pledge_Detail',NULL,0,0,21,'List of pledges including amount pledged, pledge status, next payment date, balance due, total amount paid etc.',0,0,1,6,NULL,NULL,NULL,NULL), + (297,39,'Pledged but not Paid Report','pledge/pbnp','CRM_Report_Form_Pledge_Pbnp',NULL,0,0,22,'Pledged but not Paid Report',0,0,1,6,NULL,NULL,NULL,NULL), + (298,39,'Relationship Report','contact/relationship','CRM_Report_Form_Contact_Relationship',NULL,0,0,23,'Relationship Report',0,0,1,NULL,NULL,NULL,NULL,NULL), + (299,39,'Case Summary Report','case/summary','CRM_Report_Form_Case_Summary',NULL,0,0,24,'Provides a summary of cases and their duration by date range, status, staff member and / or case role.',0,0,1,7,NULL,NULL,NULL,NULL), + (300,39,'Case Time Spent Report','case/timespent','CRM_Report_Form_Case_TimeSpent',NULL,0,0,25,'Aggregates time spent on case and / or non-case activities by activity type and contact.',0,0,1,7,NULL,NULL,NULL,NULL), + (301,39,'Contact Demographics Report','case/demographics','CRM_Report_Form_Case_Demographics',NULL,0,0,26,'Demographic breakdown for case clients (and or non-case contacts) in your database. Includes custom contact fields.',0,0,1,7,NULL,NULL,NULL,NULL), + (302,39,'Database Log Report','contact/log','CRM_Report_Form_Contact_Log',NULL,0,0,27,'Log of contact and activity records created or updated in a given date range.',0,0,1,NULL,NULL,NULL,NULL,NULL), + (303,39,'Activity Summary Report','activitySummary','CRM_Report_Form_ActivitySummary',NULL,0,0,28,'Shows activity statistics by type / date',0,0,1,NULL,NULL,NULL,NULL,NULL), + (304,39,'Bookkeeping Transactions Report','contribute/bookkeeping','CRM_Report_Form_Contribute_Bookkeeping',NULL,0,0,29,'Shows Bookkeeping Transactions Report',0,0,1,2,NULL,NULL,NULL,NULL), + (305,39,'Participant list Count Report','event/participantlist','CRM_Report_Form_Event_ParticipantListCount',NULL,0,0,31,'Shows the Participant list with Participant Count.',0,0,1,1,NULL,NULL,NULL,NULL), + (306,39,'Income Count Summary Report','event/incomesummary','CRM_Report_Form_Event_IncomeCountSummary',NULL,0,0,32,'Shows the Income Summary of events with Count.',0,0,1,1,NULL,NULL,NULL,NULL), + (307,39,'Case Detail Report','case/detail','CRM_Report_Form_Case_Detail',NULL,0,0,33,'Case Details',0,0,1,7,NULL,NULL,NULL,NULL), + (308,39,'Mail Bounce Report','Mailing/bounce','CRM_Report_Form_Mailing_Bounce',NULL,0,0,34,'Bounce Report for mailings',0,0,1,4,NULL,NULL,NULL,NULL), + (309,39,'Mail Summary Report','Mailing/summary','CRM_Report_Form_Mailing_Summary',NULL,0,0,35,'Summary statistics for mailings',0,0,1,4,NULL,NULL,NULL,NULL), + (310,39,'Mail Opened Report','Mailing/opened','CRM_Report_Form_Mailing_Opened',NULL,0,0,36,'Display contacts who opened emails from a mailing',0,0,1,4,NULL,NULL,NULL,NULL), + (311,39,'Mail Click-Through Report','Mailing/clicks','CRM_Report_Form_Mailing_Clicks',NULL,0,0,37,'Display clicks from each mailing',0,0,1,4,NULL,NULL,NULL,NULL), + (312,39,'Contact Logging Report (Summary)','logging/contact/summary','CRM_Report_Form_Contact_LoggingSummary',NULL,0,0,38,'Contact modification report for the logging infrastructure (summary).',0,0,0,NULL,NULL,NULL,NULL,NULL), + (313,39,'Contact Logging Report (Detail)','logging/contact/detail','CRM_Report_Form_Contact_LoggingDetail',NULL,0,0,39,'Contact modification report for the logging infrastructure (detail).',0,0,0,NULL,NULL,NULL,NULL,NULL), + (314,39,'Survey Report (Detail)','survey/detail','CRM_Report_Form_Campaign_SurveyDetails',NULL,0,0,43,'Detailed report for canvassing, phone-banking, walk lists or other surveys.',0,0,1,9,NULL,NULL,NULL,NULL), + (315,39,'Personal Campaign Page Report','contribute/pcp','CRM_Report_Form_Contribute_PCP',NULL,0,0,44,'Summarizes amount raised and number of contributors for each Personal Campaign Page.',0,0,1,2,NULL,NULL,NULL,NULL), + (316,39,'Pledge Summary Report','pledge/summary','CRM_Report_Form_Pledge_Summary',NULL,0,0,45,'Groups and totals pledges by criteria including contact, time period, pledge status, location, etc.',0,0,1,6,NULL,NULL,NULL,NULL), + (317,39,'Contribution Aggregate by Relationship','contribute/history','CRM_Report_Form_Contribute_History',NULL,0,0,46,'List contact\'s donation history, grouped by year, along with contributions attributed to any of the contact\'s related contacts.',0,0,1,2,NULL,NULL,NULL,NULL), + (318,39,'Mail Detail Report','mailing/detail','CRM_Report_Form_Mailing_Detail',NULL,0,0,47,'Provides reporting on Intended and Successful Deliveries, Unsubscribes and Opt-outs, Replies and Forwards.',0,0,1,4,NULL,NULL,NULL,NULL), + (319,39,'Contribution and Membership Details','member/contributionDetail','CRM_Report_Form_Member_ContributionDetail',NULL,0,0,48,'Contribution details for any type of contribution, plus associated membership information for contributions which are in payment for memberships.',0,0,1,3,NULL,NULL,NULL,NULL), + (320,39,'Recurring Contributions Report','contribute/recur','CRM_Report_Form_Contribute_Recur',NULL,0,0,49,'Provides information about the status of recurring contributions',0,0,1,2,NULL,NULL,NULL,NULL), + (321,39,'Recurring Contributions Summary','contribute/recursummary','CRM_Report_Form_Contribute_RecurSummary',NULL,0,0,49,'Provides simple summary for each payment instrument for which there are recurring contributions (e.g. Credit Card, Standing Order, Direct Debit, etc., NULL), showing within a given date range.',0,0,1,2,NULL,NULL,NULL,NULL), + (322,39,'Deferred Revenue Details','contribute/deferredrevenue','CRM_Report_Form_Contribute_DeferredRevenue',NULL,0,0,50,'Deferred Revenue Details Report',0,0,1,2,NULL,NULL,NULL,NULL), + (323,40,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (324,40,'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}','2','Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (325,40,'Dear {contact.prefix_id:label} {contact.last_name}','3','Dear {contact.prefix_id:label} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (326,40,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (327,40,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (328,41,'Dear {contact.first_name}','1','Dear {contact.first_name}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (329,41,'Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}','2','Dear {contact.prefix_id:label} {contact.first_name} {contact.last_name}',NULL,1,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (330,41,'Dear {contact.prefix_id:label} {contact.last_name}','3','Dear {contact.prefix_id:label} {contact.last_name}',NULL,1,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (331,41,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (332,41,'Dear {contact.household_name}','5','Dear {contact.household_name}',NULL,2,1,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (333,42,'{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}','1','{contact.prefix_id:label}{ }{contact.first_name}{ }{contact.middle_name}{ }{contact.last_name}{ }{contact.suffix_id:label}',NULL,1,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (334,42,'{contact.household_name}','2','{contact.household_name}',NULL,2,1,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (335,42,'{contact.organization_name}','3','{contact.organization_name}',NULL,3,1,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (336,42,'Customized','4','Customized',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (337,43,'Email Address','2','email',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (338,43,'Phone','3','phone',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (339,43,'Street Address','4','street_address',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (340,43,'City','5','city',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (341,43,'State/Province','6','state_province',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (342,43,'Country','7','country',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (343,43,'Postal Code','8','postal_code',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (344,44,'Email Address','2','email',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (345,44,'Phone','3','phone',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (346,44,'Street Address','4','street_address',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (347,44,'City','5','city',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (348,44,'State/Province','6','state_province',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (349,44,'Country','7','country',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (350,44,'Postal Code','8','postal_code',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (351,45,'Work','1','Work',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (352,45,'Main','2','Main',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (353,45,'Facebook','3','Facebook',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (354,45,'Instagram','5','Instagram',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (355,45,'LinkedIn','6','LinkedIn',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (356,45,'MySpace','7','MySpace',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (357,45,'Pinterest','8','Pinterest',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (358,45,'SnapChat','9','SnapChat',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (359,45,'Tumblr','10','Tumblr',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (360,45,'Twitter','11','Twitter',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (361,45,'Vine','12','Vine ',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (362,46,'Contacts','civicrm_contact','Contact',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (363,46,'Activities','civicrm_activity','Activity',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (364,46,'Cases','civicrm_case','Case',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (365,46,'Attachments','civicrm_file','File',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (366,47,'Contacts','civicrm_contact','Contact',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (367,47,'Relationships','civicrm_relationship','Relationship',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (368,47,'Participants','civicrm_participant','Participant',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (369,47,'Contributions','civicrm_contribution','Contribution',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (370,48,'USD ($)','USD','USD',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (371,48,'CAD ($)','CAD','CAD',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (372,48,'EUR (€)','EUR','EUR',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (373,48,'GBP (£)','GBP','GBP',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (374,48,'JPY (Â¥)','JPY','JPY',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (375,49,'Name Only','1','CRM_Event_Badge_Simple',NULL,0,0,1,'Simple Event Name Badge',0,1,1,NULL,NULL,NULL,NULL,NULL), + (376,49,'Name Tent','2','CRM_Event_Badge_NameTent',NULL,0,0,2,'Name Tent',0,1,1,NULL,NULL,NULL,NULL,NULL), + (377,49,'With Logo','3','CRM_Event_Badge_Logo',NULL,0,0,3,'You can set your own background image',0,1,1,NULL,NULL,NULL,NULL,NULL), + (378,49,'5395 with Logo','4','CRM_Event_Badge_Logo5395',NULL,0,0,4,'Avery 5395 compatible labels with logo (4 up by 2, 59.2mm x 85.7mm)',0,1,1,NULL,NULL,NULL,NULL,NULL), + (379,50,'None','0','None',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (380,50,'Author Only','1','Author Only',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (381,51,'Direct Mail','1','Direct Mail',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (382,51,'Referral Program','2','Referral Program',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (383,51,'Constituent Engagement','3','Constituent Engagement',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (384,52,'Planned','1','Planned',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (385,52,'In Progress','2','In Progress',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (386,52,'Completed','3','Completed',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (387,52,'Cancelled','4','Cancelled',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (388,54,'Approved','1','Approved',NULL,0,1,1,NULL,0,1,1,4,1,NULL,NULL,NULL), + (389,54,'Rejected','2','Rejected',NULL,0,0,2,NULL,0,1,1,4,1,NULL,NULL,NULL), + (390,54,'None','3','None',NULL,0,0,3,NULL,0,1,1,4,1,NULL,NULL,NULL), + (391,55,'1','1','1',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (392,55,'2','2','2',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (393,55,'3','3','3',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (394,55,'4','4','4',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (395,55,'5','5','5',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (396,56,'Survey','Survey','civicrm_survey',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (397,56,'Cases','Case','civicrm_case','case_type_id',0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (398,57,'Letter','{\"metric\":\"in\",\"width\":8.5,\"height\":11}','letter',NULL,NULL,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (399,57,'Legal','{\"metric\":\"in\",\"width\":8.5,\"height\":14}','legal',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (400,57,'Ledger','{\"metric\":\"in\",\"width\":17,\"height\":11}','ledger',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (401,57,'Tabloid','{\"metric\":\"in\",\"width\":11,\"height\":17}','tabloid',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (402,57,'Executive','{\"metric\":\"in\",\"width\":7.25,\"height\":10.5}','executive',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (403,57,'Folio','{\"metric\":\"in\",\"width\":8.5,\"height\":13}','folio',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (404,57,'Envelope #9','{\"metric\":\"pt\",\"width\":638.93,\"height\":278.93}','envelope-9',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (405,57,'Envelope #10','{\"metric\":\"pt\",\"width\":684,\"height\":297}','envelope-10',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (406,57,'Envelope #11','{\"metric\":\"pt\",\"width\":747,\"height\":324}','envelope-11',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (407,57,'Envelope #12','{\"metric\":\"pt\",\"width\":792,\"height\":342}','envelope-12',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (408,57,'Envelope #14','{\"metric\":\"pt\",\"width\":828,\"height\":360}','envelope-14',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (409,57,'Envelope ISO B4','{\"metric\":\"pt\",\"width\":1000.63,\"height\":708.66}','envelope-b4',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (410,57,'Envelope ISO B5','{\"metric\":\"pt\",\"width\":708.66,\"height\":498.9}','envelope-b5',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (411,57,'Envelope ISO B6','{\"metric\":\"pt\",\"width\":498.9,\"height\":354.33}','envelope-b6',NULL,NULL,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (412,57,'Envelope ISO C3','{\"metric\":\"pt\",\"width\":1298.27,\"height\":918.42}','envelope-c3',NULL,NULL,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (413,57,'Envelope ISO C4','{\"metric\":\"pt\",\"width\":918.42,\"height\":649.13}','envelope-c4',NULL,NULL,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (414,57,'Envelope ISO C5','{\"metric\":\"pt\",\"width\":649.13,\"height\":459.21}','envelope-c5',NULL,NULL,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (415,57,'Envelope ISO C6','{\"metric\":\"pt\",\"width\":459.21,\"height\":323.15}','envelope-c6',NULL,NULL,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (416,57,'Envelope ISO DL','{\"metric\":\"pt\",\"width\":623.622,\"height\":311.811}','envelope-dl',NULL,NULL,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (417,57,'ISO A0','{\"metric\":\"pt\",\"width\":2383.94,\"height\":3370.39}','a0',NULL,NULL,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (418,57,'ISO A1','{\"metric\":\"pt\",\"width\":1683.78,\"height\":2383.94}','a1',NULL,NULL,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (419,57,'ISO A2','{\"metric\":\"pt\",\"width\":1190.55,\"height\":1683.78}','a2',NULL,NULL,0,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (420,57,'ISO A3','{\"metric\":\"pt\",\"width\":841.89,\"height\":1190.55}','a3',NULL,NULL,0,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (421,57,'ISO A4','{\"metric\":\"pt\",\"width\":595.28,\"height\":841.89}','a4',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (422,57,'ISO A5','{\"metric\":\"pt\",\"width\":419.53,\"height\":595.28}','a5',NULL,NULL,0,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (423,57,'ISO A6','{\"metric\":\"pt\",\"width\":297.64,\"height\":419.53}','a6',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (424,57,'ISO A7','{\"metric\":\"pt\",\"width\":209.76,\"height\":297.64}','a7',NULL,NULL,0,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (425,57,'ISO A8','{\"metric\":\"pt\",\"width\":147.4,\"height\":209.76}','a8',NULL,NULL,0,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (426,57,'ISO A9','{\"metric\":\"pt\",\"width\":104.88,\"height\":147.4}','a9',NULL,NULL,0,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (427,57,'ISO A10','{\"metric\":\"pt\",\"width\":73.7,\"height\":104.88}','a10',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (428,57,'ISO B0','{\"metric\":\"pt\",\"width\":2834.65,\"height\":4008.19}','b0',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (429,57,'ISO B1','{\"metric\":\"pt\",\"width\":2004.09,\"height\":2834.65}','b1',NULL,NULL,0,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (430,57,'ISO B2','{\"metric\":\"pt\",\"width\":1417.32,\"height\":2004.09}','b2',NULL,NULL,0,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (431,57,'ISO B3','{\"metric\":\"pt\",\"width\":1000.63,\"height\":1417.32}','b3',NULL,NULL,0,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (432,57,'ISO B4','{\"metric\":\"pt\",\"width\":708.66,\"height\":1000.63}','b4',NULL,NULL,0,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (433,57,'ISO B5','{\"metric\":\"pt\",\"width\":498.9,\"height\":708.66}','b5',NULL,NULL,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (434,57,'ISO B6','{\"metric\":\"pt\",\"width\":354.33,\"height\":498.9}','b6',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (435,57,'ISO B7','{\"metric\":\"pt\",\"width\":249.45,\"height\":354.33}','b7',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (436,57,'ISO B8','{\"metric\":\"pt\",\"width\":175.75,\"height\":249.45}','b8',NULL,NULL,0,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (437,57,'ISO B9','{\"metric\":\"pt\",\"width\":124.72,\"height\":175.75}','b9',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (438,57,'ISO B10','{\"metric\":\"pt\",\"width\":87.87,\"height\":124.72}','b10',NULL,NULL,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (439,57,'ISO C0','{\"metric\":\"pt\",\"width\":2599.37,\"height\":3676.54}','c0',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (440,57,'ISO C1','{\"metric\":\"pt\",\"width\":1836.85,\"height\":2599.37}','c1',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (441,57,'ISO C2','{\"metric\":\"pt\",\"width\":1298.27,\"height\":1836.85}','c2',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (442,57,'ISO C3','{\"metric\":\"pt\",\"width\":918.43,\"height\":1298.27}','c3',NULL,NULL,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (443,57,'ISO C4','{\"metric\":\"pt\",\"width\":649.13,\"height\":918.43}','c4',NULL,NULL,0,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (444,57,'ISO C5','{\"metric\":\"pt\",\"width\":459.21,\"height\":649.13}','c5',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (445,57,'ISO C6','{\"metric\":\"pt\",\"width\":323.15,\"height\":459.21}','c6',NULL,NULL,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (446,57,'ISO C7','{\"metric\":\"pt\",\"width\":229.61,\"height\":323.15}','c7',NULL,NULL,0,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (447,57,'ISO C8','{\"metric\":\"pt\",\"width\":161.57,\"height\":229.61}','c8',NULL,NULL,0,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (448,57,'ISO C9','{\"metric\":\"pt\",\"width\":113.39,\"height\":161.57}','c9',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (449,57,'ISO C10','{\"metric\":\"pt\",\"width\":79.37,\"height\":113.39}','c10',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (450,57,'ISO RA0','{\"metric\":\"pt\",\"width\":2437.8,\"height\":3458.27}','ra0',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (451,57,'ISO RA1','{\"metric\":\"pt\",\"width\":1729.13,\"height\":2437.8}','ra1',NULL,NULL,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (452,57,'ISO RA2','{\"metric\":\"pt\",\"width\":1218.9,\"height\":1729.13}','ra2',NULL,NULL,0,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (453,57,'ISO RA3','{\"metric\":\"pt\",\"width\":864.57,\"height\":1218.9}','ra3',NULL,NULL,0,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (454,57,'ISO RA4','{\"metric\":\"pt\",\"width\":609.45,\"height\":864.57}','ra4',NULL,NULL,0,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (455,57,'ISO SRA0','{\"metric\":\"pt\",\"width\":2551.18,\"height\":3628.35}','sra0',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (456,57,'ISO SRA1','{\"metric\":\"pt\",\"width\":1814.17,\"height\":2551.18}','sra1',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (457,57,'ISO SRA2','{\"metric\":\"pt\",\"width\":1275.59,\"height\":1814.17}','sra2',NULL,NULL,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (458,57,'ISO SRA3','{\"metric\":\"pt\",\"width\":907.09,\"height\":1275.59}','sra3',NULL,NULL,0,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (459,57,'ISO SRA4','{\"metric\":\"pt\",\"width\":637.8,\"height\":907.09}','sra4',NULL,NULL,0,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (460,58,'Invoice PDF Format','{\"metric\":\"px\",\"margin_top\":10,\"margin_bottom\":0,\"margin_left\":65,\"margin_right\":0}','default_invoice_pdf_format',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (461,59,'Avery 3475','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":10,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":0,\"tMargin\":5,\"NX\":3,\"NY\":8,\"SpaceX\":0,\"SpaceY\":0,\"width\":70,\"height\":36,\"lPadding\":5.08,\"tPadding\":5.08}','3475','Avery',NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (462,59,'Avery 5160','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.21975,\"tMargin\":0.5,\"NX\":3,\"NY\":10,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":2.5935,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5160','Avery',NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (463,59,'Avery 5161','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.175,\"tMargin\":0.5,\"NX\":2,\"NY\":10,\"SpaceX\":0.15625,\"SpaceY\":0,\"width\":4,\"height\":1,\"lPadding\":0.20,\"tPadding\":0.20}','5161','Avery',NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (464,59,'Avery 5162','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.1525,\"tMargin\":0.88,\"NX\":2,\"NY\":7,\"SpaceX\":0.195,\"SpaceY\":0,\"width\":4,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','5162','Avery',NULL,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (465,59,'Avery 5163','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.5,\"NX\":2,\"NY\":5,\"SpaceX\":0.14,\"SpaceY\":0,\"width\":4,\"height\":2,\"lPadding\":0.20,\"tPadding\":0.20}','5163','Avery',NULL,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (466,59,'Avery 5164','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":12,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.156,\"tMargin\":0.5,\"NX\":2,\"NY\":3,\"SpaceX\":0.1875,\"SpaceY\":0,\"width\":4,\"height\":3.33,\"lPadding\":0.20,\"tPadding\":0.20}','5164','Avery',NULL,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (467,59,'Avery 8600','{\"paper-size\":\"letter\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":8,\"font-style\":\"\",\"metric\":\"mm\",\"lMargin\":7.1,\"tMargin\":19,\"NX\":3,\"NY\":10,\"SpaceX\":9.5,\"SpaceY\":3.1,\"width\":66.6,\"height\":25.4,\"lPadding\":5.08,\"tPadding\":5.08}','8600','Avery',NULL,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (468,59,'Avery L7160','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.6,\"NX\":3,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7160','Avery',NULL,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (469,59,'Avery L7161','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.28,\"tMargin\":0.35,\"NX\":3,\"NY\":6,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":2.5,\"height\":1.83,\"lPadding\":0.20,\"tPadding\":0.20}','L7161','Avery',NULL,0,9,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (470,59,'Avery L7162','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.51,\"NX\":2,\"NY\":8,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.33,\"lPadding\":0.20,\"tPadding\":0.20}','L7162','Avery',NULL,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (471,59,'Avery L7163','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"dejavusans\",\"font-size\":9,\"font-style\":\"\",\"metric\":\"in\",\"lMargin\":0.18,\"tMargin\":0.6,\"NX\":2,\"NY\":7,\"SpaceX\":0.1,\"SpaceY\":0,\"width\":3.9,\"height\":1.5,\"lPadding\":0.20,\"tPadding\":0.20}','L7163','Avery',NULL,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (472,60,'Activity Assignees','1','Activity Assignees',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (473,60,'Activity Source','2','Activity Source',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (474,60,'Activity Targets','3','Activity Targets',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (475,61,'Income Account is','1','Income Account is',NULL,0,1,1,'Income Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (476,61,'Credit/Contra Revenue Account is','2','Credit/Contra Revenue Account is',NULL,0,0,2,'Credit/Contra Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (477,61,'Accounts Receivable Account is','3','Accounts Receivable Account is',NULL,0,0,3,'Accounts Receivable Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (478,61,'Credit Liability Account is','4','Credit Liability Account is',NULL,0,0,4,'Credit Liability Account is',0,1,0,2,NULL,NULL,NULL,NULL), + (479,61,'Expense Account is','5','Expense Account is',NULL,0,0,5,'Expense Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (480,61,'Asset Account is','6','Asset Account is',NULL,0,0,6,'Asset Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (481,61,'Cost of Sales Account is','7','Cost of Sales Account is',NULL,0,0,7,'Cost of Sales Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (482,61,'Premiums Inventory Account is','8','Premiums Inventory Account is',NULL,0,0,8,'Premiums Inventory Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (483,61,'Discounts Account is','9','Discounts Account is',NULL,0,0,9,'Discounts Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (484,61,'Sales Tax Account is','10','Sales Tax Account is',NULL,0,0,10,'Sales Tax Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (485,61,'Chargeback Account is','11','Chargeback Account is',NULL,0,0,11,'Chargeback Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (486,61,'Deferred Revenue Account is','12','Deferred Revenue Account is',NULL,0,0,12,'Deferred Revenue Account is',0,1,1,2,NULL,NULL,NULL,NULL), + (487,62,'Participant Role','1','participant_role',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (488,63,'Morning Sessions','1','Morning Sessions',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (489,63,'Evening Sessions','2','Evening Sessions',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (490,64,'Contribution','1','Contribution',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (491,64,'Membership','2','Membership',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (492,64,'Pledge Payment','3','Pledge Payment',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (493,65,'Manual Batch','1','Manual Batch',NULL,0,0,1,'Manual Batch',0,1,1,2,NULL,NULL,NULL,NULL), + (494,65,'Automatic Batch','2','Automatic Batch',NULL,0,0,2,'Automatic Batch',0,1,1,2,NULL,NULL,NULL,NULL), + (495,66,'Open','1','Open',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (496,66,'Closed','2','Closed',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (497,66,'Data Entry','3','Data Entry',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (498,66,'Reopened','4','Reopened',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (499,66,'Exported','5','Exported',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (500,67,'http','1','http',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (501,67,'xml','2','xml',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (502,67,'smtp','3','smtp',NULL,NULL,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (503,69,'Renewal Reminder (non-auto-renew memberships only)','1','Renewal Reminder (non-auto-renew memberships only)',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (504,69,'Auto-renew Memberships Only','2','Auto-renew Memberships Only',NULL,0,NULL,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (505,69,'Reminder for Both','3','Reminder for Both',NULL,0,NULL,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (506,70,'Asset','1','Asset',NULL,0,0,1,'Things you own',0,1,1,2,NULL,NULL,NULL,NULL), + (507,70,'Liability','2','Liability',NULL,0,0,2,'Things you owe, like a grant still to be disbursed',0,1,1,2,NULL,NULL,NULL,NULL), + (508,70,'Revenue','3','Revenue',NULL,0,1,3,'Income from contributions and sales of tickets and memberships',0,1,1,2,NULL,NULL,NULL,NULL), + (509,70,'Cost of Sales','4','Cost of Sales',NULL,0,0,4,'Costs incurred to get revenue, e.g. premiums for donations, dinner for a fundraising dinner ticket',0,1,1,2,NULL,NULL,NULL,NULL), + (510,70,'Expenses','5','Expenses',NULL,0,0,5,'Things that are paid for that are consumable, e.g. grants disbursed',0,1,1,2,NULL,NULL,NULL,NULL), + (511,71,'Paid','1','Paid',NULL,0,0,1,'Paid',0,1,1,2,NULL,NULL,NULL,NULL), + (512,71,'Unpaid','3','Unpaid',NULL,0,0,1,'Unpaid',0,1,1,2,NULL,NULL,NULL,NULL), + (513,71,'Partially paid','2','Partially paid',NULL,0,0,2,'Partially paid',0,1,1,2,NULL,NULL,NULL,NULL), + (514,72,'Event Badge','1','Event Badge',NULL,0,NULL,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (515,73,'Avery 5395','{\"name\":\"Avery 5395\",\"paper-size\":\"a4\",\"metric\":\"mm\",\"lMargin\":15,\"tMargin\":26,\"NX\":2,\"NY\":4,\"SpaceX\":10,\"SpaceY\":5,\"width\":83,\"height\":57,\"font-size\":12,\"orientation\":\"portrait\",\"font-name\":\"helvetica\",\"font-style\":\"\",\"lPadding\":3,\"tPadding\":3}','Avery 5395',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (516,73,'A6 Badge Portrait 150x106','{\"paper-size\":\"a4\",\"orientation\":\"landscape\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":1,\"metric\":\"mm\",\"lMargin\":25,\"tMargin\":27,\"SpaceX\":0,\"SpaceY\":35,\"width\":106,\"height\":150,\"lPadding\":5,\"tPadding\":5}','A6 Badge Portrait 150x106',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (517,73,'Fattorini Name Badge 100x65','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":4,\"metric\":\"mm\",\"lMargin\":6,\"tMargin\":19,\"SpaceX\":0,\"SpaceY\":0,\"width\":100,\"height\":65,\"lPadding\":0,\"tPadding\":0}','Fattorini Name Badge 100x65',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (518,73,'Hanging Badge 3-3/4\" x 4-3\"/4','{\"paper-size\":\"a4\",\"orientation\":\"portrait\",\"font-name\":\"times\",\"font-size\":6,\"font-style\":\"\",\"NX\":2,\"NY\":2,\"metric\":\"mm\",\"lMargin\":10,\"tMargin\":28,\"SpaceX\":0,\"SpaceY\":0,\"width\":96,\"height\":121,\"lPadding\":5,\"tPadding\":5}','Hanging Badge 3-3/4\" x 4-3\"/4',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (519,74,'Formal','1','formal',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (520,74,'Familiar','2','familiar',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (521,75,'Email','Email','Email',NULL,0,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (522,75,'SMS','SMS','SMS',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (523,75,'User Preference','User_Preference','User Preference',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (524,76,'Actual date only','1','Actual date only',NULL,NULL,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (525,76,'Each anniversary','2','Each anniversary',NULL,NULL,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (526,77,'Default','1','default',NULL,NULL,1,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (527,77,'CiviMail','2','civimail',NULL,NULL,0,2,NULL,0,1,1,4,NULL,NULL,NULL,NULL), + (528,77,'CiviEvent','3','civievent',NULL,NULL,0,3,NULL,0,1,1,1,NULL,NULL,NULL,NULL), + (529,78,'Today','this.day','this.day',NULL,NULL,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (530,78,'This week','this.week','this.week',NULL,NULL,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (531,78,'This calendar month','this.month','this.month',NULL,NULL,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (532,78,'This quarter','this.quarter','this.quarter',NULL,NULL,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (533,78,'This fiscal year','this.fiscal_year','this.fiscal_year',NULL,NULL,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (534,78,'This calendar year','this.year','this.year',NULL,NULL,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (535,78,'Yesterday','previous.day','previous.day',NULL,NULL,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (536,78,'Previous week','previous.week','previous.week',NULL,NULL,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (537,78,'Previous calendar month','previous.month','previous.month',NULL,NULL,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (538,78,'Previous quarter','previous.quarter','previous.quarter',NULL,NULL,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (539,78,'Previous fiscal year','previous.fiscal_year','previous.fiscal_year',NULL,NULL,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (540,78,'Previous calendar year','previous.year','previous.year',NULL,NULL,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (541,78,'Last 7 days including today','ending.week','ending.week',NULL,NULL,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (542,78,'Last 30 days including today','ending_30.day','ending.month',NULL,NULL,0,14,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (543,78,'Last 60 days including today','ending_60.day','ending_2.month',NULL,NULL,0,15,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (544,78,'Last 90 days including today','ending_90.day','ending.quarter',NULL,NULL,0,16,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (545,78,'Last 12 months including today','ending.year','ending.year',NULL,NULL,0,17,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (546,78,'Last 2 years including today','ending_2.year','ending_2.year',NULL,NULL,0,18,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (547,78,'Last 3 years including today','ending_3.year','ending_3.year',NULL,NULL,0,19,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (548,78,'Tomorrow','starting.day','starting.day',NULL,NULL,0,20,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (549,78,'Next week','next.week','next.week',NULL,NULL,0,21,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (550,78,'Next calendar month','next.month','next.month',NULL,NULL,0,22,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (551,78,'Next quarter','next.quarter','next.quarter',NULL,NULL,0,23,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (552,78,'Next fiscal year','next.fiscal_year','next.fiscal_year',NULL,NULL,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (553,78,'Next calendar year','next.year','next.year',NULL,NULL,0,25,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (554,78,'Next 7 days including today','starting.week','starting.week',NULL,NULL,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (555,78,'Next 30 days including today','starting.month','starting.month',NULL,NULL,0,27,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (556,78,'Next 60 days including today','starting_2.month','starting_2.month',NULL,NULL,0,28,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (557,78,'Next 90 days including today','starting.quarter','starting.quarter',NULL,NULL,0,29,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (558,78,'Next 12 months including today','starting.year','starting.year',NULL,NULL,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (559,78,'Current week to-date','current.week','current.week',NULL,NULL,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (560,78,'Current calendar month to-date','current.month','current.month',NULL,NULL,0,32,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (561,78,'Current quarter to-date','current.quarter','current.quarter',NULL,NULL,0,33,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (562,78,'Current calendar year to-date','current.year','current.year',NULL,NULL,0,34,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (563,78,'To end of yesterday','earlier.day','earlier.day',NULL,NULL,0,35,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (564,78,'To end of previous week','earlier.week','earlier.week',NULL,NULL,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (565,78,'To end of previous calendar month','earlier.month','earlier.month',NULL,NULL,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (566,78,'To end of previous quarter','earlier.quarter','earlier.quarter',NULL,NULL,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (567,78,'To end of previous calendar year','earlier.year','earlier.year',NULL,NULL,0,39,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (568,78,'From start of current day','greater.day','greater.day',NULL,NULL,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (569,78,'From start of current week','greater.week','greater.week',NULL,NULL,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (570,78,'From start of current calendar month','greater.month','greater.month',NULL,NULL,0,42,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (571,78,'From start of current quarter','greater.quarter','greater.quarter',NULL,NULL,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (572,78,'From start of current calendar year','greater.year','greater.year',NULL,NULL,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (573,78,'To end of current week','less.week','less.week',NULL,NULL,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (574,78,'To end of current calendar month','less.month','less.month',NULL,NULL,0,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (575,78,'To end of current quarter','less.quarter','less.quarter',NULL,NULL,0,47,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (576,78,'To end of current calendar year','less.year','less.year',NULL,NULL,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (577,78,'Previous 2 days','previous_2.day','previous_2.day',NULL,NULL,0,49,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (578,78,'Previous 2 weeks','previous_2.week','previous_2.week',NULL,NULL,0,50,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (579,78,'Previous 2 calendar months','previous_2.month','previous_2.month',NULL,NULL,0,51,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (580,78,'Previous 2 quarters','previous_2.quarter','previous_2.quarter',NULL,NULL,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (581,78,'Previous 2 calendar years','previous_2.year','previous_2.year',NULL,NULL,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (582,78,'Previous 2 fiscal years','previous_2.fiscal_year','previous_2.fiscal_year',NULL,NULL,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (583,78,'Day prior to yesterday','previous_before.day','previous_before.day',NULL,NULL,0,55,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (584,78,'Week prior to previous week','previous_before.week','previous_before.week',NULL,NULL,0,56,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (585,78,'Month prior to previous calendar month','previous_before.month','previous_before.month',NULL,NULL,NULL,57,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (586,78,'Quarter prior to previous quarter','previous_before.quarter','previous_before.quarter',NULL,NULL,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (587,78,'Year prior to previous calendar year','previous_before.year','previous_before.year',NULL,NULL,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (588,78,'Fiscal year prior to previous fiscal year','previous_before.fiscal_year','previous_before.fiscal_year',NULL,NULL,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (589,78,'From end of previous week','greater_previous.week','greater_previous.week',NULL,NULL,0,61,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (590,78,'From end of previous calendar month','greater_previous.month','greater_previous.month',NULL,NULL,0,62,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (591,78,'From end of previous quarter','greater_previous.quarter','greater_previous.quarter',NULL,NULL,0,63,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (592,78,'From end of previous calendar year','greater_previous.year','greater_previous.year',NULL,NULL,0,64,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (593,79,'Completed','1','Completed',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (594,79,'Pending','2','Pending',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (595,79,'Cancelled','3','Cancelled',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (596,79,'In Progress','5','In Progress',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (597,79,'Overdue','6','Overdue',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (598,80,'Completed','1','Completed',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (599,80,'Pending','2','Pending',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (600,80,'Cancelled','3','Cancelled',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (601,80,'Failed','4','Failed',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (602,80,'In Progress','5','In Progress',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (603,80,'Overdue','6','Overdue',NULL,0,0,6,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (604,80,'Processing','7','Processing',NULL,0,0,7,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (605,80,'Failing','8','Failing',NULL,0,0,8,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (606,81,'Production','Production','Production',NULL,NULL,1,1,'Production Environment',0,1,1,NULL,NULL,NULL,NULL,NULL), + (607,81,'Staging','Staging','Staging',NULL,NULL,0,2,'Staging Environment',0,1,1,NULL,NULL,NULL,NULL,NULL), + (608,81,'Development','Development','Development',NULL,NULL,0,3,'Development Environment',0,1,1,NULL,NULL,NULL,NULL,NULL), + (609,82,'None','1','NONE',NULL,0,1,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (610,82,'By relationship to case client','2','BY_RELATIONSHIP',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (611,82,'Specific contact','3','SPECIFIC_CONTACT',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (612,82,'User creating the case','4','USER_CREATING_THE_CASE',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (613,83,'Financial Transactions','civicrm_financial_trxn','civicrm_financial_trxn',NULL,0,1,1,NULL,0,0,1,2,NULL,NULL,NULL,NULL), + (614,85,'Abkhaz','ab','ab_GE',NULL,0,0,1,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (615,85,'Afar','aa','aa_ET',NULL,0,0,2,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (616,85,'Afrikaans','af','af_ZA',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (617,85,'Akan','ak','ak_GH',NULL,0,0,4,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (618,85,'Albanian','sq','sq_AL',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (619,85,'Amharic','am','am_ET',NULL,0,0,6,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (620,85,'Arabic','ar','ar_EG',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (621,85,'Aragonese','an','an_ES',NULL,0,0,8,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (622,85,'Armenian','hy','hy_AM',NULL,0,0,9,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (623,85,'Assamese','as','as_IN',NULL,0,0,10,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (624,85,'Avaric','av','av_RU',NULL,0,0,11,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (625,85,'Avestan','ae','ae_XX',NULL,0,0,12,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (626,85,'Aymara','ay','ay_BO',NULL,0,0,13,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (627,85,'Azerbaijani','az','az_AZ',NULL,0,0,14,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (628,85,'Bambara','bm','bm_ML',NULL,0,0,15,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (629,85,'Bashkir','ba','ba_RU',NULL,0,0,16,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (630,85,'Basque','eu','eu_ES',NULL,0,0,17,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (631,85,'Belarusian','be','be_BY',NULL,0,0,18,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (632,85,'Bengali','bn','bn_BD',NULL,0,0,19,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (633,85,'Bihari','bh','bh_IN',NULL,0,0,20,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (634,85,'Bislama','bi','bi_VU',NULL,0,0,21,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (635,85,'Bosnian','bs','bs_BA',NULL,0,0,22,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (636,85,'Breton','br','br_FR',NULL,0,0,23,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (637,85,'Bulgarian','bg','bg_BG',NULL,0,0,24,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (638,85,'Burmese','my','my_MM',NULL,0,0,25,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (639,85,'Catalan; Valencian','ca','ca_ES',NULL,0,0,26,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (640,85,'Chamorro','ch','ch_GU',NULL,0,0,27,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (641,85,'Chechen','ce','ce_RU',NULL,0,0,28,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (642,85,'Chichewa; Chewa; Nyanja','ny','ny_MW',NULL,0,0,29,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (643,85,'Chinese (China)','zh','zh_CN',NULL,0,0,30,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (644,85,'Chinese (Taiwan)','zh','zh_TW',NULL,0,0,31,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (645,85,'Chuvash','cv','cv_RU',NULL,0,0,32,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (646,85,'Cornish','kw','kw_GB',NULL,0,0,33,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (647,85,'Corsican','co','co_FR',NULL,0,0,34,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (648,85,'Cree','cr','cr_CA',NULL,0,0,35,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (649,85,'Croatian','hr','hr_HR',NULL,0,0,36,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (650,85,'Czech','cs','cs_CZ',NULL,0,0,37,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (651,85,'Danish','da','da_DK',NULL,0,0,38,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (652,85,'Divehi; Dhivehi; Maldivian;','dv','dv_MV',NULL,0,0,39,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (653,85,'Dutch (Netherlands)','nl','nl_NL',NULL,0,0,40,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (654,85,'Dutch (Belgium)','nl','nl_BE',NULL,0,0,41,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (655,85,'Dzongkha','dz','dz_BT',NULL,0,0,42,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (656,85,'English (Australia)','en','en_AU',NULL,0,0,43,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (657,85,'English (Canada)','en','en_CA',NULL,0,0,44,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (658,85,'English (United Kingdom)','en','en_GB',NULL,0,0,45,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (659,85,'English (United States)','en','en_US',NULL,0,1,46,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (660,85,'Esperanto','eo','eo_XX',NULL,0,0,47,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (661,85,'Estonian','et','et_EE',NULL,0,0,48,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (662,85,'Ewe','ee','ee_GH',NULL,0,0,49,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (663,85,'Faroese','fo','fo_FO',NULL,0,0,50,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (664,85,'Fijian','fj','fj_FJ',NULL,0,0,51,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (665,85,'Finnish','fi','fi_FI',NULL,0,0,52,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (666,85,'French (Canada)','fr','fr_CA',NULL,0,0,53,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (667,85,'French (France)','fr','fr_FR',NULL,0,0,54,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (668,85,'Fula; Fulah; Pulaar; Pular','ff','ff_SN',NULL,0,0,55,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (669,85,'Galician','gl','gl_ES',NULL,0,0,56,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (670,85,'Georgian','ka','ka_GE',NULL,0,0,57,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (671,85,'German','de','de_DE',NULL,0,0,58,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (672,85,'German (Swiss)','de','de_CH',NULL,0,0,59,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (673,85,'Greek, Modern','el','el_GR',NULL,0,0,60,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (674,85,'GuaraniÂ','gn','gn_PY',NULL,0,0,61,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (675,85,'Gujarati','gu','gu_IN',NULL,0,0,62,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (676,85,'Haitian; Haitian Creole','ht','ht_HT',NULL,0,0,63,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (677,85,'Hausa','ha','ha_NG',NULL,0,0,64,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (678,85,'Hebrew (modern)','he','he_IL',NULL,0,0,65,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (679,85,'Herero','hz','hz_NA',NULL,0,0,66,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (680,85,'Hindi','hi','hi_IN',NULL,0,0,67,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (681,85,'Hiri Motu','ho','ho_PG',NULL,0,0,68,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (682,85,'Hungarian','hu','hu_HU',NULL,0,0,69,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (683,85,'Interlingua','ia','ia_XX',NULL,0,0,70,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (684,85,'Indonesian','id','id_ID',NULL,0,0,71,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (685,85,'Interlingue','ie','ie_XX',NULL,0,0,72,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (686,85,'Irish','ga','ga_IE',NULL,0,0,73,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (687,85,'Igbo','ig','ig_NG',NULL,0,0,74,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (688,85,'Inupiaq','ik','ik_US',NULL,0,0,75,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (689,85,'Ido','io','io_XX',NULL,0,0,76,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (690,85,'Icelandic','is','is_IS',NULL,0,0,77,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (691,85,'Italian','it','it_IT',NULL,0,0,78,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (692,85,'Inuktitut','iu','iu_CA',NULL,0,0,79,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (693,85,'Japanese','ja','ja_JP',NULL,0,0,80,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (694,85,'Javanese','jv','jv_ID',NULL,0,0,81,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (695,85,'Kalaallisut, Greenlandic','kl','kl_GL',NULL,0,0,82,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (696,85,'Kannada','kn','kn_IN',NULL,0,0,83,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (697,85,'Kanuri','kr','kr_NE',NULL,0,0,84,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (698,85,'Kashmiri','ks','ks_IN',NULL,0,0,85,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (699,85,'Kazakh','kk','kk_KZ',NULL,0,0,86,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (700,85,'Khmer','km','km_KH',NULL,0,0,87,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (701,85,'Kikuyu, Gikuyu','ki','ki_KE',NULL,0,0,88,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (702,85,'Kinyarwanda','rw','rw_RW',NULL,0,0,89,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (703,85,'Kirghiz, Kyrgyz','ky','ky_KG',NULL,0,0,90,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (704,85,'Komi','kv','kv_RU',NULL,0,0,91,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (705,85,'Kongo','kg','kg_CD',NULL,0,0,92,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (706,85,'Korean','ko','ko_KR',NULL,0,0,93,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (707,85,'Kurdish','ku','ku_IQ',NULL,0,0,94,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (708,85,'Kwanyama, Kuanyama','kj','kj_NA',NULL,0,0,95,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (709,85,'Latin','la','la_VA',NULL,0,0,96,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (710,85,'Luxembourgish, Letzeburgesch','lb','lb_LU',NULL,0,0,97,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (711,85,'Luganda','lg','lg_UG',NULL,0,0,98,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (712,85,'Limburgish, Limburgan, Limburger','li','li_NL',NULL,0,0,99,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (713,85,'Lingala','ln','ln_CD',NULL,0,0,100,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (714,85,'Lao','lo','lo_LA',NULL,0,0,101,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (715,85,'Lithuanian','lt','lt_LT',NULL,0,0,102,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (716,85,'Luba-Katanga','lu','lu_CD',NULL,0,0,103,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (717,85,'Latvian','lv','lv_LV',NULL,0,0,104,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (718,85,'Manx','gv','gv_IM',NULL,0,0,105,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (719,85,'Macedonian','mk','mk_MK',NULL,0,0,106,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (720,85,'Malagasy','mg','mg_MG',NULL,0,0,107,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (721,85,'Malay','ms','ms_MY',NULL,0,0,108,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (722,85,'Malayalam','ml','ml_IN',NULL,0,0,109,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (723,85,'Maltese','mt','mt_MT',NULL,0,0,110,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (724,85,'MÄori','mi','mi_NZ',NULL,0,0,111,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (725,85,'Marathi','mr','mr_IN',NULL,0,0,112,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (726,85,'Marshallese','mh','mh_MH',NULL,0,0,113,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (727,85,'Mongolian','mn','mn_MN',NULL,0,0,114,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (728,85,'Nauru','na','na_NR',NULL,0,0,115,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (729,85,'Navajo, Navaho','nv','nv_US',NULL,0,0,116,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (730,85,'Norwegian BokmÃ¥l','nb','nb_NO',NULL,0,0,117,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (731,85,'North Ndebele','nd','nd_ZW',NULL,0,0,118,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (732,85,'Nepali','ne','ne_NP',NULL,0,0,119,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (733,85,'Ndonga','ng','ng_NA',NULL,0,0,120,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (734,85,'Norwegian Nynorsk','nn','nn_NO',NULL,0,0,121,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (735,85,'Norwegian','no','no_NO',NULL,0,0,122,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (736,85,'Nuosu','ii','ii_CN',NULL,0,0,123,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (737,85,'South Ndebele','nr','nr_ZA',NULL,0,0,124,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (738,85,'Occitan (after 1500)','oc','oc_FR',NULL,0,0,125,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (739,85,'Ojibwa','oj','oj_CA',NULL,0,0,126,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (740,85,'Old Church Slavonic, Church Slavic, Church Slavonic, Old Bulgarian, Old Slavonic','cu','cu_BG',NULL,0,0,127,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (741,85,'Oromo','om','om_ET',NULL,0,0,128,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (742,85,'Oriya','or','or_IN',NULL,0,0,129,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (743,85,'Ossetian, Ossetic','os','os_GE',NULL,0,0,130,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (744,85,'Panjabi, Punjabi','pa','pa_IN',NULL,0,0,131,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (745,85,'Pali','pi','pi_KH',NULL,0,0,132,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (746,85,'Persian (Iran)','fa','fa_IR',NULL,0,0,133,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (747,85,'Polish','pl','pl_PL',NULL,0,0,134,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (748,85,'Pashto, Pushto','ps','ps_AF',NULL,0,0,135,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (749,85,'Portuguese (Brazil)','pt','pt_BR',NULL,0,0,136,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (750,85,'Portuguese (Portugal)','pt','pt_PT',NULL,0,0,137,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (751,85,'Quechua','qu','qu_PE',NULL,0,0,138,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (752,85,'Romansh','rm','rm_CH',NULL,0,0,139,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (753,85,'Kirundi','rn','rn_BI',NULL,0,0,140,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (754,85,'Romanian, Moldavian, Moldovan','ro','ro_RO',NULL,0,0,141,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (755,85,'Russian','ru','ru_RU',NULL,0,0,142,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (756,85,'Sanskrit','sa','sa_IN',NULL,0,0,143,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (757,85,'Sardinian','sc','sc_IT',NULL,0,0,144,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (758,85,'Sindhi','sd','sd_IN',NULL,0,0,145,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (759,85,'Northern Sami','se','se_NO',NULL,0,0,146,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (760,85,'Samoan','sm','sm_WS',NULL,0,0,147,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (761,85,'Sango','sg','sg_CF',NULL,0,0,148,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (762,85,'Serbian','sr','sr_RS',NULL,0,0,149,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (763,85,'Scottish Gaelic; Gaelic','gd','gd_GB',NULL,0,0,150,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (764,85,'Shona','sn','sn_ZW',NULL,0,0,151,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (765,85,'Sinhala, Sinhalese','si','si_LK',NULL,0,0,152,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (766,85,'Slovak','sk','sk_SK',NULL,0,0,153,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (767,85,'Slovene','sl','sl_SI',NULL,0,0,154,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (768,85,'Somali','so','so_SO',NULL,0,0,155,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (769,85,'Southern Sotho','st','st_ZA',NULL,0,0,156,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (770,85,'Spanish; Castilian (Spain)','es','es_ES',NULL,0,0,157,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (771,85,'Spanish; Castilian (Mexico)','es','es_MX',NULL,0,0,158,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (772,85,'Spanish; Castilian (Puerto Rico)','es','es_PR',NULL,0,0,159,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (773,85,'Sundanese','su','su_ID',NULL,0,0,160,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (774,85,'Swahili','sw','sw_TZ',NULL,0,0,161,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (775,85,'Swati','ss','ss_ZA',NULL,0,0,162,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (776,85,'Swedish','sv','sv_SE',NULL,0,0,163,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (777,85,'Tamil','ta','ta_IN',NULL,0,0,164,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (778,85,'Telugu','te','te_IN',NULL,0,0,165,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (779,85,'Tajik','tg','tg_TJ',NULL,0,0,166,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (780,85,'Thai','th','th_TH',NULL,0,0,167,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (781,85,'Tigrinya','ti','ti_ET',NULL,0,0,168,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (782,85,'Tibetan Standard, Tibetan, Central','bo','bo_CN',NULL,0,0,169,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (783,85,'Turkmen','tk','tk_TM',NULL,0,0,170,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (784,85,'Tagalog','tl','tl_PH',NULL,0,0,171,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (785,85,'Tswana','tn','tn_ZA',NULL,0,0,172,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (786,85,'Tonga (Tonga Islands)','to','to_TO',NULL,0,0,173,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (787,85,'Turkish','tr','tr_TR',NULL,0,0,174,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (788,85,'Tsonga','ts','ts_ZA',NULL,0,0,175,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (789,85,'Tatar','tt','tt_RU',NULL,0,0,176,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (790,85,'Twi','tw','tw_GH',NULL,0,0,177,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (791,85,'Tahitian','ty','ty_PF',NULL,0,0,178,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (792,85,'Uighur, Uyghur','ug','ug_CN',NULL,0,0,179,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (793,85,'Ukrainian','uk','uk_UA',NULL,0,0,180,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (794,85,'Urdu','ur','ur_PK',NULL,0,0,181,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (795,85,'Uzbek','uz','uz_UZ',NULL,0,0,182,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (796,85,'Venda','ve','ve_ZA',NULL,0,0,183,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (797,85,'Vietnamese','vi','vi_VN',NULL,0,0,184,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (798,85,'Volapük','vo','vo_XX',NULL,0,0,185,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (799,85,'Walloon','wa','wa_BE',NULL,0,0,186,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (800,85,'Welsh','cy','cy_GB',NULL,0,0,187,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (801,85,'Wolof','wo','wo_SN',NULL,0,0,188,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (802,85,'Western Frisian','fy','fy_NL',NULL,0,0,189,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (803,85,'Xhosa','xh','xh_ZA',NULL,0,0,190,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (804,85,'Yiddish','yi','yi_US',NULL,0,0,191,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (805,85,'Yoruba','yo','yo_NG',NULL,0,0,192,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (806,85,'Zhuang, Chuang','za','za_CN',NULL,0,0,193,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (807,85,'Zulu','zu','zu_ZA',NULL,0,0,194,NULL,0,0,0,NULL,NULL,NULL,NULL,NULL), + (808,86,'In Person','1','in_person',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (809,86,'Phone','2','phone',NULL,0,1,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (810,86,'Email','3','email',NULL,0,0,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (811,86,'Fax','4','fax',NULL,0,0,4,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (812,86,'Letter Mail','5','letter_mail',NULL,0,0,5,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (813,87,'Cases - Send Copy of an Activity','1','case_activity',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (814,88,'Contributions - Duplicate Organization Alert','1','contribution_dupalert',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (815,88,'Contributions - Receipt (off-line)','2','contribution_offline_receipt',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (816,88,'Contributions - Receipt (on-line)','3','contribution_online_receipt',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (817,88,'Contributions - Invoice','4','contribution_invoice_receipt',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (818,88,'Contributions - Recurring Start and End Notification','5','contribution_recurring_notify',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (819,88,'Contributions - Recurring Cancellation Notification','6','contribution_recurring_cancelled',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (820,88,'Contributions - Recurring Billing Updates','7','contribution_recurring_billing',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (821,88,'Contributions - Recurring Updates','8','contribution_recurring_edit',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (822,88,'Personal Campaign Pages - Admin Notification','9','pcp_notify',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (823,88,'Personal Campaign Pages - Supporter Status Change Notification','10','pcp_status_change',NULL,0,0,10,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (824,88,'Personal Campaign Pages - Supporter Welcome','11','pcp_supporter_notify',NULL,0,0,11,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (825,88,'Personal Campaign Pages - Owner Notification','12','pcp_owner_notify',NULL,0,0,12,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (826,88,'Additional Payment Receipt or Refund Notification','13','payment_or_refund_notification',NULL,0,0,13,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (827,89,'Events - Registration Confirmation and Receipt (off-line)','1','event_offline_receipt',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (828,89,'Events - Registration Confirmation and Receipt (on-line)','2','event_online_receipt',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (829,89,'Events - Receipt only','3','event_registration_receipt',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (830,89,'Events - Registration Cancellation Notice','4','participant_cancelled',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (831,89,'Events - Registration Confirmation Invite','5','participant_confirm',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (832,89,'Events - Pending Registration Expiration Notice','6','participant_expired',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (833,89,'Events - Registration Transferred Notice','7','participant_transferred',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (834,90,'Tell-a-Friend Email','1','friend',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (835,91,'Memberships - Signup and Renewal Receipts (off-line)','1','membership_offline_receipt',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (836,91,'Memberships - Receipt (on-line)','2','membership_online_receipt',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (837,91,'Memberships - Auto-renew Cancellation Notification','3','membership_autorenew_cancelled',NULL,0,0,3,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (838,91,'Memberships - Auto-renew Billing Updates','4','membership_autorenew_billing',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (839,92,'Test-drive - Receipt Header','1','test_preview',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (840,93,'Pledges - Acknowledgement','1','pledge_acknowledge',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (841,93,'Pledges - Payment Reminder','2','pledge_reminder',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (842,94,'Profiles - Admin Notification','1','uf_notify',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (843,95,'Petition - signature added','1','petition_sign',NULL,0,0,1,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (844,95,'Petition - need verification','2','petition_confirmation_needed',NULL,0,0,2,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (845,96,'In Honor of','1','in_honor_of',NULL,0,0,1,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (846,96,'In Memory of','2','in_memory_of',NULL,0,0,2,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (847,96,'Solicited','3','solicited',NULL,0,1,3,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (848,96,'Household','4','household',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (849,96,'Workplace Giving','5','workplace',NULL,0,0,5,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (850,96,'Foundation Affiliate','6','foundation_affiliate',NULL,0,0,6,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (851,96,'3rd-party Service','7','3rd-party_service',NULL,0,0,7,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (852,96,'Donor-advised Fund','8','donor-advised_fund',NULL,0,0,8,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (853,96,'Matched Gift','9','matched_gift',NULL,0,0,9,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL), + (854,96,'Personal Campaign Page','10','pcp',NULL,0,0,10,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (855,96,'Gift','11','gift',NULL,0,0,11,NULL,0,1,1,NULL,NULL,NULL,NULL,NULL), + (856,97,'Contacts','Contact','Contact',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (857,97,'Relationships','Relationship','Relationship',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (858,97,'Activities','Activity','Activity',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (859,97,'Notes','Note','Note',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (860,97,'Groups','Group','Group',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (861,97,'Cases','Case','Case',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (862,97,'Contributions','Contribution','Contribution',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (863,97,'Participants','Participant','Participant',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (864,97,'Memberships','Membership','Membership',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (865,97,'Pledges','Pledge','Pledge',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (866,97,'Events','Event','Event',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (867,97,'Campaigns','Campaign','Campaign',NULL,NULL,0,1,'',0,1,1,NULL,NULL,NULL,NULL,NULL), + (868,2,'Interview','56','Interview',NULL,0,NULL,56,'Conduct a phone or in person interview.',0,0,1,NULL,NULL,NULL,'fa-comment-o',NULL), + (869,8,'Advisory Board','3','Advisory Board',NULL,0,0,4,NULL,0,0,1,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_option_value` ENABLE KEYS */; UNLOCK TABLES; @@ -6715,56 +6681,56 @@ UNLOCK TABLES; LOCK TABLES `civicrm_participant` WRITE; /*!40000 ALTER TABLE `civicrm_participant` DISABLE KEYS */; INSERT INTO `civicrm_participant` (`id`, `contact_id`, `event_id`, `status_id`, `role_id`, `register_date`, `source`, `fee_level`, `is_test`, `is_pay_later`, `fee_amount`, `registered_by_id`, `discount_id`, `fee_currency`, `campaign_id`, `discount_amount`, `cart_id`, `must_wait`, `transferred_to_contact_id`, `created_id`) VALUES - (1,160,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (2,52,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (3,13,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (4,135,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (5,105,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (6,182,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (7,154,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (8,98,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (9,127,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (10,168,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (11,149,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (12,80,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (13,6,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (14,40,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (15,122,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (16,7,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (17,86,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (18,177,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (19,78,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (20,32,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (21,178,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (22,88,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (23,90,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (24,128,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (25,171,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (26,183,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (27,132,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (28,70,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (29,99,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (30,106,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (31,112,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (32,161,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (33,189,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (34,145,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (35,95,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (36,35,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (37,66,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (38,190,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (39,23,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (40,91,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (41,174,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (42,101,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (43,64,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (44,146,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (45,63,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (46,153,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (47,176,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (48,188,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (49,139,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), - (50,103,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL); + (1,102,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (2,181,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (3,184,3,3,'3','2008-05-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (4,119,1,4,'4','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (5,123,2,1,'1','2008-01-10 00:00:00','Check','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (6,88,3,2,'2','2008-03-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (7,149,1,3,'3','2009-07-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (8,137,2,4,'4','2009-03-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (9,56,3,1,'1','2008-02-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (10,153,1,2,'2','2008-02-01 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (11,47,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (12,133,3,4,'4','2009-03-06 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (13,29,1,1,'2','2008-06-04 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (14,43,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (15,145,3,4,'1','2008-07-04 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (16,194,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (17,142,2,2,'3','2008-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (18,63,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (19,92,1,2,'1','2008-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (20,91,2,4,'1','2009-01-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (21,132,3,1,'4','2008-03-25 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (22,38,1,2,'3','2009-10-21 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (23,76,2,4,'1','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (24,174,3,3,'1','2008-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (25,3,3,2,'2','2008-04-05 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (26,167,1,1,'1','2009-01-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (27,170,2,2,'2','2008-05-07 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (28,128,3,3,'3','2009-12-12 00:00:00','Direct Transfer','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (29,9,1,4,'4','2009-12-13 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (30,94,2,1,'1','2009-12-14 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (31,186,3,2,'2','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (32,178,1,3,'3','2009-07-21 00:00:00','Check','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (33,127,2,4,'4','2009-03-07 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (34,177,3,1,'1','2009-12-15 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (35,90,1,2,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (36,159,2,3,'3','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (37,195,3,4,'4','2009-03-06 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (38,151,1,1,'2','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (39,131,2,2,'3','2008-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (40,104,3,4,'1','2009-12-14 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (41,161,1,4,'2','2009-01-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (42,11,2,2,'3','2009-12-15 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (43,115,3,3,'1','2009-03-05 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (44,50,1,2,'1','2009-12-13 00:00:00','Direct Transfer','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (45,199,2,4,'1','2009-01-10 00:00:00','Direct Transfer','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (46,37,3,1,'4','2009-12-13 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (47,42,1,2,'3','2009-10-21 00:00:00','Credit Card','Single',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (48,68,2,4,'1','2009-12-10 00:00:00','Credit Card','Soprano',0,0,50.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (49,2,3,3,'1','2009-03-11 00:00:00','Credit Card','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL), + (50,193,3,2,'2','2009-04-05 00:00:00','Check','Tiny-tots (ages 5-8)',0,0,800.00,NULL,NULL,'USD',NULL,NULL,NULL,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_participant` ENABLE KEYS */; UNLOCK TABLES; @@ -6897,7 +6863,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_pcp` WRITE; /*!40000 ALTER TABLE `civicrm_pcp` DISABLE KEYS */; INSERT INTO `civicrm_pcp` (`id`, `contact_id`, `status_id`, `title`, `intro_text`, `page_text`, `donate_link_text`, `page_id`, `page_type`, `pcp_block_id`, `is_thermometer`, `is_honor_roll`, `goal_amount`, `currency`, `is_active`, `is_notify`) VALUES - (1,117,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1); + (1,171,2,'My Personal Civi Fundraiser','I\'m on a mission to get all my friends and family to help support my favorite open-source civic sector CRM.','<p>Friends and family - please help build much needed infrastructure for the civic sector by supporting my personal campaign!</p>\r\n<p><a href=\"https://civicrm.org\">You can learn more about CiviCRM here</a>.</p>\r\n<p>Then click the <strong>Contribute Now</strong> button to go to our easy-to-use online contribution form.</p>','Contribute Now',1,'contribute',1,1,1,5000.00,'USD',1,1); /*!40000 ALTER TABLE `civicrm_pcp` ENABLE KEYS */; UNLOCK TABLES; @@ -6919,169 +6885,170 @@ UNLOCK TABLES; LOCK TABLES `civicrm_phone` WRITE; /*!40000 ALTER TABLE `civicrm_phone` DISABLE KEYS */; INSERT INTO `civicrm_phone` (`id`, `contact_id`, `location_type_id`, `is_primary`, `is_billing`, `mobile_provider_id`, `phone`, `phone_ext`, `phone_numeric`, `phone_type_id`) VALUES - (1,24,1,1,0,NULL,'(257) 659-4451',NULL,'2576594451',1), - (2,24,1,0,0,NULL,'678-4460',NULL,'6784460',2), - (3,88,1,1,0,NULL,'755-2355',NULL,'7552355',2), - (4,82,1,1,0,NULL,'(446) 495-9560',NULL,'4464959560',2), - (5,82,1,0,0,NULL,'(604) 217-2615',NULL,'6042172615',1), - (6,72,1,1,0,NULL,'363-5905',NULL,'3635905',2), - (7,72,1,0,0,NULL,'(806) 637-4324',NULL,'8066374324',2), - (8,135,1,1,0,NULL,'(421) 587-3061',NULL,'4215873061',1), - (9,135,1,0,0,NULL,'479-3557',NULL,'4793557',2), - (10,151,1,1,0,NULL,'600-4232',NULL,'6004232',2), - (11,143,1,1,0,NULL,'(812) 870-4851',NULL,'8128704851',2), - (12,143,1,0,0,NULL,'(615) 551-6016',NULL,'6155516016',2), - (13,13,1,1,0,NULL,'(292) 638-1800',NULL,'2926381800',1), - (14,93,1,1,0,NULL,'420-7220',NULL,'4207220',1), - (15,78,1,1,0,NULL,'695-3529',NULL,'6953529',2), - (16,78,1,0,0,NULL,'657-1916',NULL,'6571916',1), - (17,25,1,1,0,NULL,'(794) 572-5074',NULL,'7945725074',2), - (18,25,1,0,0,NULL,'(581) 811-8784',NULL,'5818118784',2), - (19,128,1,1,0,NULL,'(259) 632-6686',NULL,'2596326686',2), - (20,128,1,0,0,NULL,'368-6138',NULL,'3686138',1), - (21,132,1,1,0,NULL,'688-3307',NULL,'6883307',2), - (22,86,1,1,0,NULL,'642-9136',NULL,'6429136',1), - (23,86,1,0,0,NULL,'(695) 864-5996',NULL,'6958645996',2), - (24,15,1,1,0,NULL,'719-7213',NULL,'7197213',1), - (25,108,1,1,0,NULL,'(605) 536-7553',NULL,'6055367553',1), - (26,131,1,1,0,NULL,'(679) 777-6014',NULL,'6797776014',2), - (27,131,1,0,0,NULL,'(462) 312-1763',NULL,'4623121763',1), - (28,46,1,1,0,NULL,'(383) 506-9937',NULL,'3835069937',1), - (29,46,1,0,0,NULL,'365-1240',NULL,'3651240',2), - (30,110,1,1,0,NULL,'(363) 725-5476',NULL,'3637255476',2), - (31,110,1,0,0,NULL,'(874) 620-8716',NULL,'8746208716',1), - (32,12,1,1,0,NULL,'209-9133',NULL,'2099133',2), - (33,12,1,0,0,NULL,'558-5312',NULL,'5585312',1), - (34,23,1,1,0,NULL,'(457) 765-9338',NULL,'4577659338',1), - (35,23,1,0,0,NULL,'(533) 717-6679',NULL,'5337176679',1), - (36,96,1,1,0,NULL,'786-1664',NULL,'7861664',2), - (37,176,1,1,0,NULL,'(772) 748-1901',NULL,'7727481901',1), - (38,123,1,1,0,NULL,'(375) 638-3078',NULL,'3756383078',2), - (39,100,1,1,0,NULL,'(725) 765-9764',NULL,'7257659764',2), - (40,111,1,1,0,NULL,'548-4054',NULL,'5484054',2), - (41,111,1,0,0,NULL,'(884) 468-4653',NULL,'8844684653',1), - (42,9,1,1,0,NULL,'(738) 356-9489',NULL,'7383569489',2), - (43,9,1,0,0,NULL,'457-7651',NULL,'4577651',1), - (44,148,1,1,0,NULL,'(861) 642-4137',NULL,'8616424137',2), - (45,105,1,1,0,NULL,'331-9554',NULL,'3319554',2), - (46,31,1,1,0,NULL,'(571) 448-9467',NULL,'5714489467',1), - (47,31,1,0,0,NULL,'(496) 754-4521',NULL,'4967544521',1), - (48,184,1,1,0,NULL,'462-1164',NULL,'4621164',2), - (49,184,1,0,0,NULL,'(538) 868-6369',NULL,'5388686369',1), - (50,29,1,1,0,NULL,'261-4043',NULL,'2614043',2), - (51,29,1,0,0,NULL,'(879) 802-3319',NULL,'8798023319',1), - (52,126,1,1,0,NULL,'357-2699',NULL,'3572699',2), - (53,126,1,0,0,NULL,'772-5011',NULL,'7725011',1), - (54,138,1,1,0,NULL,'278-5362',NULL,'2785362',2), - (55,138,1,0,0,NULL,'(223) 361-8535',NULL,'2233618535',2), - (56,48,1,1,0,NULL,'285-6254',NULL,'2856254',2), - (57,48,1,0,0,NULL,'(693) 408-3245',NULL,'6934083245',1), - (58,137,1,1,0,NULL,'(822) 443-2290',NULL,'8224432290',1), - (59,164,1,1,0,NULL,'771-9191',NULL,'7719191',1), - (60,136,1,1,0,NULL,'(500) 342-3147',NULL,'5003423147',2), - (61,136,1,0,0,NULL,'691-6422',NULL,'6916422',2), - (62,61,1,1,0,NULL,'310-4549',NULL,'3104549',1), - (63,61,1,0,0,NULL,'(330) 813-4842',NULL,'3308134842',1), - (64,34,1,1,0,NULL,'(390) 695-3216',NULL,'3906953216',2), - (65,173,1,1,0,NULL,'(839) 500-3684',NULL,'8395003684',1), - (66,84,1,1,0,NULL,'687-3656',NULL,'6873656',2), - (67,84,1,0,0,NULL,'(599) 407-3929',NULL,'5994073929',2), - (68,59,1,1,0,NULL,'(798) 399-7385',NULL,'7983997385',2), - (69,59,1,0,0,NULL,'380-7880',NULL,'3807880',2), - (70,142,1,1,0,NULL,'(761) 701-6046',NULL,'7617016046',1), - (71,81,1,1,0,NULL,'216-1111',NULL,'2161111',1), - (72,74,1,1,0,NULL,'873-3074',NULL,'8733074',2), - (73,74,1,0,0,NULL,'(854) 893-7780',NULL,'8548937780',1), - (74,109,1,1,0,NULL,'653-3402',NULL,'6533402',1), - (75,30,1,1,0,NULL,'609-8997',NULL,'6098997',2), - (76,149,1,1,0,NULL,'739-2319',NULL,'7392319',1), - (77,175,1,1,0,NULL,'(852) 598-8109',NULL,'8525988109',1), - (78,175,1,0,0,NULL,'853-1970',NULL,'8531970',1), - (79,27,1,1,0,NULL,'806-5869',NULL,'8065869',2), - (80,33,1,1,0,NULL,'299-2809',NULL,'2992809',2), - (81,33,1,0,0,NULL,'(377) 228-8453',NULL,'3772288453',2), - (82,35,1,1,0,NULL,'621-3720',NULL,'6213720',2), - (83,35,1,0,0,NULL,'265-2068',NULL,'2652068',2), - (84,67,1,1,0,NULL,'(473) 701-6949',NULL,'4737016949',1), - (85,67,1,0,0,NULL,'402-2412',NULL,'4022412',2), - (86,79,1,1,0,NULL,'(795) 644-2116',NULL,'7956442116',2), - (87,154,1,1,0,NULL,'(851) 249-3036',NULL,'8512493036',2), - (88,41,1,1,0,NULL,'601-2662',NULL,'6012662',2), - (89,201,1,1,0,NULL,'258-7710',NULL,'2587710',2), - (90,171,1,1,0,NULL,'227-3883',NULL,'2273883',1), - (91,178,1,1,0,NULL,'306-6754',NULL,'3066754',2), - (92,178,1,0,0,NULL,'(407) 813-9438',NULL,'4078139438',1), - (93,80,1,1,0,NULL,'816-9356',NULL,'8169356',1), - (94,80,1,0,0,NULL,'(410) 727-3113',NULL,'4107273113',1), - (95,172,1,1,0,NULL,'(856) 539-6232',NULL,'8565396232',1), - (96,116,1,1,0,NULL,'602-1995',NULL,'6021995',2), - (97,116,1,0,0,NULL,'724-5625',NULL,'7245625',2), - (98,165,1,1,0,NULL,'883-8757',NULL,'8838757',2), - (99,165,1,0,0,NULL,'(656) 785-8544',NULL,'6567858544',2), - (100,14,1,1,0,NULL,'(319) 615-7691',NULL,'3196157691',2), - (101,195,1,1,0,NULL,'763-4673',NULL,'7634673',1), - (102,192,1,1,0,NULL,'(880) 551-2524',NULL,'8805512524',1), - (103,113,1,1,0,NULL,'657-7591',NULL,'6577591',2), - (104,113,1,0,0,NULL,'506-7986',NULL,'5067986',1), - (105,114,1,1,0,NULL,'(807) 279-1528',NULL,'8072791528',1), - (106,114,1,0,0,NULL,'466-6032',NULL,'4666032',1), - (107,155,1,1,0,NULL,'427-2408',NULL,'4272408',2), - (108,125,1,1,0,NULL,'838-2574',NULL,'8382574',1), - (109,68,1,1,0,NULL,'(360) 239-9137',NULL,'3602399137',2), - (110,69,1,1,0,NULL,'(530) 731-8881',NULL,'5307318881',2), - (111,69,1,0,0,NULL,'482-4891',NULL,'4824891',2), - (112,64,1,1,0,NULL,'(557) 780-7959',NULL,'5577807959',2), - (113,64,1,0,0,NULL,'706-9995',NULL,'7069995',2), - (114,20,1,1,0,NULL,'531-9720',NULL,'5319720',1), - (115,20,1,0,0,NULL,'(721) 449-3574',NULL,'7214493574',2), - (116,181,1,1,0,NULL,'(796) 697-1216',NULL,'7966971216',2), - (117,181,1,0,0,NULL,'(359) 414-5114',NULL,'3594145114',2), - (118,77,1,1,0,NULL,'865-2011',NULL,'8652011',1), - (119,77,1,0,0,NULL,'(592) 646-5524',NULL,'5926465524',2), - (120,156,1,1,0,NULL,'(625) 739-8499',NULL,'6257398499',1), - (121,156,1,0,0,NULL,'(228) 348-9932',NULL,'2283489932',1), - (122,180,1,1,0,NULL,'(726) 273-5057',NULL,'7262735057',2), - (123,180,1,0,0,NULL,'539-2183',NULL,'5392183',2), - (124,11,1,1,0,NULL,'(291) 667-3086',NULL,'2916673086',1), - (125,11,1,0,0,NULL,'(694) 826-5966',NULL,'6948265966',1), - (126,99,1,1,0,NULL,'841-6333',NULL,'8416333',1), - (127,99,1,0,0,NULL,'(454) 455-1614',NULL,'4544551614',1), - (128,91,1,1,0,NULL,'(593) 437-9544',NULL,'5934379544',1), - (129,91,1,0,0,NULL,'628-7850',NULL,'6287850',1), - (130,73,1,1,0,NULL,'686-4241',NULL,'6864241',2), - (131,73,1,0,0,NULL,'(223) 418-9865',NULL,'2234189865',1), - (132,139,1,1,0,NULL,'722-4029',NULL,'7224029',2), - (133,139,1,0,0,NULL,'(868) 866-8186',NULL,'8688668186',1), - (134,189,1,1,0,NULL,'(339) 436-2264',NULL,'3394362264',1), - (135,62,1,1,0,NULL,'795-8888',NULL,'7958888',1), - (136,87,1,1,0,NULL,'407-2473',NULL,'4072473',1), - (137,40,1,1,0,NULL,'879-2229',NULL,'8792229',2), - (138,92,1,1,0,NULL,'236-3500',NULL,'2363500',2), - (139,70,1,1,0,NULL,'(488) 757-9692',NULL,'4887579692',2), - (140,32,1,1,0,NULL,'(558) 535-5012',NULL,'5585355012',2), - (141,75,1,1,0,NULL,'(264) 312-9452',NULL,'2643129452',2), - (142,75,1,0,0,NULL,'(813) 296-6550',NULL,'8132966550',1), - (143,104,1,1,0,NULL,'479-5627',NULL,'4795627',2), - (144,51,1,1,0,NULL,'818-4331',NULL,'8184331',1), - (145,163,1,1,0,NULL,'720-3821',NULL,'7203821',1), - (146,44,1,1,0,NULL,'(487) 481-2115',NULL,'4874812115',1), - (147,107,1,1,0,NULL,'(530) 537-3717',NULL,'5305373717',1), - (148,107,1,0,0,NULL,'(209) 610-6121',NULL,'2096106121',1), - (149,130,1,1,0,NULL,'(327) 757-8283',NULL,'3277578283',2), - (150,183,1,1,0,NULL,'550-4320',NULL,'5504320',2), - (151,183,1,0,0,NULL,'393-2221',NULL,'3932221',2), - (152,55,1,1,0,NULL,'369-2084',NULL,'3692084',1), - (153,55,1,0,0,NULL,'(238) 335-9689',NULL,'2383359689',2), - (154,85,1,1,0,NULL,'(268) 828-1078',NULL,'2688281078',1), - (155,85,1,0,0,NULL,'386-5650',NULL,'3865650',1), - (156,56,1,1,0,NULL,'723-1340',NULL,'7231340',1), - (157,56,1,0,0,NULL,'380-2535',NULL,'3802535',2), - (158,22,1,1,0,NULL,'(488) 726-5093',NULL,'4887265093',1), - (159,168,1,1,0,NULL,'515-1071',NULL,'5151071',2), - (160,168,1,0,0,NULL,'(772) 495-3920',NULL,'7724953920',2), - (161,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1), - (162,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1), - (163,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1); + (1,41,1,1,0,NULL,'(289) 519-6054',NULL,'2895196054',1), + (2,34,1,1,0,NULL,'520-4215',NULL,'5204215',2), + (3,171,1,1,0,NULL,'(611) 494-7031',NULL,'6114947031',2), + (4,123,1,1,0,NULL,'824-9212',NULL,'8249212',2), + (5,123,1,0,0,NULL,'706-2985',NULL,'7062985',1), + (6,24,1,1,0,NULL,'328-3172',NULL,'3283172',1), + (7,24,1,0,0,NULL,'(567) 566-6529',NULL,'5675666529',2), + (8,146,1,1,0,NULL,'809-5931',NULL,'8095931',1), + (9,4,1,1,0,NULL,'810-4044',NULL,'8104044',1), + (10,37,1,1,0,NULL,'(462) 381-8201',NULL,'4623818201',2), + (11,37,1,0,0,NULL,'(863) 769-7521',NULL,'8637697521',1), + (12,33,1,1,0,NULL,'620-3654',NULL,'6203654',2), + (13,160,1,1,0,NULL,'666-8895',NULL,'6668895',1), + (14,160,1,0,0,NULL,'(815) 384-2755',NULL,'8153842755',2), + (15,148,1,1,0,NULL,'(315) 306-7997',NULL,'3153067997',2), + (16,145,1,1,0,NULL,'809-5669',NULL,'8095669',1), + (17,145,1,0,0,NULL,'552-9847',NULL,'5529847',2), + (18,102,1,1,0,NULL,'(362) 321-5371',NULL,'3623215371',1), + (19,117,1,1,0,NULL,'408-1033',NULL,'4081033',1), + (20,117,1,0,0,NULL,'433-5455',NULL,'4335455',1), + (21,28,1,1,0,NULL,'321-5248',NULL,'3215248',2), + (22,40,1,1,0,NULL,'659-5852',NULL,'6595852',1), + (23,26,1,1,0,NULL,'881-3571',NULL,'8813571',1), + (24,192,1,1,0,NULL,'(470) 372-7457',NULL,'4703727457',2), + (25,141,1,1,0,NULL,'(255) 561-2330',NULL,'2555612330',2), + (26,59,1,1,0,NULL,'(696) 607-6846',NULL,'6966076846',2), + (27,100,1,1,0,NULL,'(333) 790-5892',NULL,'3337905892',1), + (28,11,1,1,0,NULL,'878-9420',NULL,'8789420',1), + (29,11,1,0,0,NULL,'(834) 794-8983',NULL,'8347948983',2), + (30,47,1,1,0,NULL,'389-7833',NULL,'3897833',1), + (31,47,1,0,0,NULL,'568-2506',NULL,'5682506',2), + (32,22,1,1,0,NULL,'207-1069',NULL,'2071069',1), + (33,75,1,1,0,NULL,'308-4515',NULL,'3084515',1), + (34,75,1,0,0,NULL,'(366) 266-5652',NULL,'3662665652',2), + (35,182,1,1,0,NULL,'(231) 601-4939',NULL,'2316014939',2), + (36,132,1,1,0,NULL,'211-8137',NULL,'2118137',1), + (37,132,1,0,0,NULL,'(632) 471-3546',NULL,'6324713546',2), + (38,136,1,1,0,NULL,'478-7361',NULL,'4787361',1), + (39,136,1,0,0,NULL,'(393) 756-6446',NULL,'3937566446',2), + (40,172,1,1,0,NULL,'(816) 420-6539',NULL,'8164206539',2), + (41,172,1,0,0,NULL,'332-7598',NULL,'3327598',2), + (42,90,1,1,0,NULL,'554-4992',NULL,'5544992',1), + (43,90,1,0,0,NULL,'740-1806',NULL,'7401806',2), + (44,120,1,1,0,NULL,'(562) 332-2740',NULL,'5623322740',2), + (45,109,1,1,0,NULL,'(444) 519-9615',NULL,'4445199615',2), + (46,69,1,1,0,NULL,'719-8366',NULL,'7198366',1), + (47,69,1,0,0,NULL,'(570) 383-4080',NULL,'5703834080',1), + (48,96,1,1,0,NULL,'(850) 588-2618',NULL,'8505882618',2), + (49,96,1,0,0,NULL,'(590) 786-3934',NULL,'5907863934',1), + (50,159,1,1,0,NULL,'711-8388',NULL,'7118388',1), + (51,78,1,1,0,NULL,'882-4369',NULL,'8824369',1), + (52,70,1,1,0,NULL,'(208) 588-4365',NULL,'2085884365',2), + (53,70,1,0,0,NULL,'330-3371',NULL,'3303371',1), + (54,103,1,1,0,NULL,'(301) 301-6529',NULL,'3013016529',1), + (55,84,1,1,0,NULL,'388-1082',NULL,'3881082',2), + (56,71,1,1,0,NULL,'632-8191',NULL,'6328191',1), + (57,115,1,1,0,NULL,'(768) 546-1445',NULL,'7685461445',1), + (58,115,1,0,0,NULL,'(240) 323-4439',NULL,'2403234439',1), + (59,56,1,1,0,NULL,'804-4284',NULL,'8044284',1), + (60,56,1,0,0,NULL,'604-3082',NULL,'6043082',2), + (61,196,1,1,0,NULL,'581-1053',NULL,'5811053',2), + (62,62,1,1,0,NULL,'(444) 529-6168',NULL,'4445296168',2), + (63,121,1,1,0,NULL,'538-7666',NULL,'5387666',1), + (64,121,1,0,0,NULL,'(649) 838-6012',NULL,'6498386012',1), + (65,114,1,1,0,NULL,'(491) 697-4292',NULL,'4916974292',2), + (66,114,1,0,0,NULL,'(402) 806-4331',NULL,'4028064331',2), + (67,143,1,1,0,NULL,'684-2929',NULL,'6842929',2), + (68,143,1,0,0,NULL,'504-9030',NULL,'5049030',1), + (69,39,1,1,0,NULL,'(745) 784-2855',NULL,'7457842855',2), + (70,13,1,1,0,NULL,'405-6241',NULL,'4056241',1), + (71,53,1,1,0,NULL,'(259) 503-4581',NULL,'2595034581',2), + (72,53,1,0,0,NULL,'(270) 454-3150',NULL,'2704543150',1), + (73,23,1,1,0,NULL,'590-6821',NULL,'5906821',2), + (74,23,1,0,0,NULL,'822-3359',NULL,'8223359',1), + (75,151,1,1,0,NULL,'484-6640',NULL,'4846640',1), + (76,151,1,0,0,NULL,'(460) 842-2951',NULL,'4608422951',1), + (77,20,1,1,0,NULL,'295-6660',NULL,'2956660',2), + (78,20,1,0,0,NULL,'232-6904',NULL,'2326904',2), + (79,30,1,1,0,NULL,'(541) 276-1336',NULL,'5412761336',1), + (80,50,1,1,0,NULL,'(260) 460-6723',NULL,'2604606723',2), + (81,194,1,1,0,NULL,'297-5015',NULL,'2975015',1), + (82,194,1,0,0,NULL,'869-8221',NULL,'8698221',1), + (83,140,1,1,0,NULL,'(570) 504-9344',NULL,'5705049344',1), + (84,140,1,0,0,NULL,'(294) 614-9255',NULL,'2946149255',1), + (85,87,1,1,0,NULL,'(276) 458-3484',NULL,'2764583484',2), + (86,18,1,1,0,NULL,'445-7801',NULL,'4457801',2), + (87,18,1,0,0,NULL,'674-8715',NULL,'6748715',1), + (88,63,1,1,0,NULL,'(876) 484-7201',NULL,'8764847201',2), + (89,63,1,0,0,NULL,'(661) 579-4735',NULL,'6615794735',2), + (90,8,1,1,0,NULL,'335-3207',NULL,'3353207',2), + (91,80,1,1,0,NULL,'(897) 792-7837',NULL,'8977927837',2), + (92,104,1,1,0,NULL,'(494) 804-4620',NULL,'4948044620',2), + (93,104,1,0,0,NULL,'(866) 813-7362',NULL,'8668137362',1), + (94,137,1,1,0,NULL,'462-1248',NULL,'4621248',2), + (95,137,1,0,0,NULL,'803-4098',NULL,'8034098',2), + (96,163,1,1,0,NULL,'(479) 206-8560',NULL,'4792068560',2), + (97,27,1,1,0,NULL,'546-7688',NULL,'5467688',2), + (98,27,1,0,0,NULL,'(742) 619-4578',NULL,'7426194578',2), + (99,35,1,1,0,NULL,'229-1377',NULL,'2291377',1), + (100,35,1,0,0,NULL,'444-2114',NULL,'4442114',1), + (101,3,1,1,0,NULL,'710-7788',NULL,'7107788',1), + (102,3,1,0,0,NULL,'(712) 717-7402',NULL,'7127177402',1), + (103,147,1,1,0,NULL,'221-2010',NULL,'2212010',1), + (104,147,1,0,0,NULL,'378-7886',NULL,'3787886',1), + (105,191,1,1,0,NULL,'(848) 215-4760',NULL,'8482154760',1), + (106,191,1,0,0,NULL,'(451) 690-4689',NULL,'4516904689',1), + (107,16,1,1,0,NULL,'(721) 823-7187',NULL,'7218237187',2), + (108,81,1,1,0,NULL,'434-9644',NULL,'4349644',2), + (109,81,1,0,0,NULL,'(400) 235-8825',NULL,'4002358825',2), + (110,127,1,1,0,NULL,'(237) 287-9540',NULL,'2372879540',1), + (111,127,1,0,0,NULL,'(877) 890-6177',NULL,'8778906177',1), + (112,95,1,1,0,NULL,'(245) 812-5457',NULL,'2458125457',2), + (113,72,1,1,0,NULL,'434-3213',NULL,'4343213',1), + (114,125,1,1,0,NULL,'(521) 657-1085',NULL,'5216571085',1), + (115,125,1,0,0,NULL,'220-9619',NULL,'2209619',1), + (116,173,1,1,0,NULL,'778-3377',NULL,'7783377',1), + (117,173,1,0,0,NULL,'402-8034',NULL,'4028034',1), + (118,139,1,1,0,NULL,'239-6190',NULL,'2396190',2), + (119,139,1,0,0,NULL,'210-8531',NULL,'2108531',2), + (120,77,1,1,0,NULL,'(892) 444-7958',NULL,'8924447958',2), + (121,31,1,1,0,NULL,'(528) 665-5024',NULL,'5286655024',1), + (122,31,1,0,0,NULL,'(213) 448-5903',NULL,'2134485903',1), + (123,116,1,1,0,NULL,'324-5380',NULL,'3245380',2), + (124,116,1,0,0,NULL,'(569) 828-7641',NULL,'5698287641',1), + (125,29,1,1,0,NULL,'307-6855',NULL,'3076855',1), + (126,29,1,0,0,NULL,'(748) 447-7864',NULL,'7484477864',1), + (127,60,1,1,0,NULL,'(533) 276-2337',NULL,'5332762337',1), + (128,60,1,0,0,NULL,'693-7759',NULL,'6937759',2), + (129,170,1,1,0,NULL,'628-1484',NULL,'6281484',2), + (130,170,1,0,0,NULL,'(503) 245-5623',NULL,'5032455623',2), + (131,7,1,1,0,NULL,'(684) 261-2691',NULL,'6842612691',1), + (132,7,1,0,0,NULL,'(671) 716-3868',NULL,'6717163868',1), + (133,65,1,1,0,NULL,'248-6201',NULL,'2486201',1), + (134,94,1,1,0,NULL,'262-5737',NULL,'2625737',2), + (135,195,1,1,0,NULL,'589-1822',NULL,'5891822',2), + (136,195,1,0,0,NULL,'344-7467',NULL,'3447467',2), + (137,45,1,1,0,NULL,'(732) 256-6124',NULL,'7322566124',2), + (138,176,1,1,0,NULL,'(571) 304-4319',NULL,'5713044319',1), + (139,176,1,0,0,NULL,'(826) 209-3476',NULL,'8262093476',2), + (140,36,1,1,0,NULL,'234-5012',NULL,'2345012',1), + (141,36,1,0,0,NULL,'(525) 650-9890',NULL,'5256509890',1), + (142,133,1,1,0,NULL,'(368) 362-9079',NULL,'3683629079',1), + (143,133,1,0,0,NULL,'(207) 546-6030',NULL,'2075466030',2), + (144,19,1,1,0,NULL,'(496) 763-9847',NULL,'4967639847',1), + (145,97,1,1,0,NULL,'(643) 444-9060',NULL,'6434449060',2), + (146,97,1,0,0,NULL,'896-1424',NULL,'8961424',1), + (147,46,1,1,0,NULL,'(300) 237-3631',NULL,'3002373631',2), + (148,46,1,0,0,NULL,'476-6631',NULL,'4766631',1), + (149,93,1,1,0,NULL,'311-6393',NULL,'3116393',2), + (150,76,1,1,0,NULL,'254-5604',NULL,'2545604',2), + (151,187,1,1,0,NULL,'(796) 242-6495',NULL,'7962426495',2), + (152,74,1,1,0,NULL,'(443) 855-6494',NULL,'4438556494',2), + (153,74,1,0,0,NULL,'243-8653',NULL,'2438653',2), + (154,185,1,1,0,NULL,'508-6226',NULL,'5086226',1), + (155,119,1,1,0,NULL,'893-1349',NULL,'8931349',1), + (156,119,1,0,0,NULL,'(554) 844-9642',NULL,'5548449642',1), + (157,2,1,1,0,NULL,'741-2314',NULL,'7412314',2), + (158,57,1,1,0,NULL,'(374) 203-8158',NULL,'3742038158',2), + (159,110,1,1,0,NULL,'(355) 658-8825',NULL,'3556588825',1), + (160,89,1,1,0,NULL,'869-3052',NULL,'8693052',2), + (161,54,1,1,0,NULL,'502-2841',NULL,'5022841',1), + (162,NULL,1,0,0,NULL,'204 222-1000',NULL,'2042221000',1), + (163,NULL,1,0,0,NULL,'204 223-1000',NULL,'2042231000',1), + (164,NULL,1,0,0,NULL,'303 323-1000',NULL,'3033231000',1); /*!40000 ALTER TABLE `civicrm_phone` ENABLE KEYS */; UNLOCK TABLES; @@ -7316,224 +7283,224 @@ UNLOCK TABLES; LOCK TABLES `civicrm_relationship` WRITE; /*!40000 ALTER TABLE `civicrm_relationship` DISABLE KEYS */; INSERT INTO `civicrm_relationship` (`id`, `contact_id_a`, `contact_id_b`, `relationship_type_id`, `start_date`, `end_date`, `is_active`, `description`, `is_permission_a_b`, `is_permission_b_a`, `case_id`, `created_date`, `modified_date`) VALUES - (1,112,67,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (2,154,67,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (3,112,79,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (4,154,79,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (5,154,112,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (6,79,39,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (7,112,39,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (8,154,39,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (9,67,39,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (10,79,67,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (11,43,194,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (12,201,194,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (13,43,41,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (14,201,41,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (15,201,43,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (16,41,158,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (17,43,158,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (18,201,158,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (19,194,158,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (20,41,194,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (21,80,171,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (22,172,171,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (23,80,178,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (24,172,178,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (25,172,80,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (26,178,167,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (27,80,167,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (28,172,167,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (29,171,167,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (30,178,171,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (31,165,152,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (32,14,152,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (33,165,116,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (34,14,116,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (35,14,165,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (36,116,10,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (37,165,10,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (38,14,10,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (39,152,10,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (40,116,152,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (41,21,133,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (42,195,133,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (43,21,58,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (44,195,58,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (45,195,21,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (46,58,177,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (47,21,177,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (48,195,177,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (49,133,177,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (50,58,133,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (51,90,187,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (52,113,187,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (53,90,192,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (54,113,192,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (55,113,90,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (56,192,129,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (57,90,129,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (58,113,129,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (59,187,129,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (60,192,187,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (61,114,147,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (62,155,147,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (63,114,118,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (64,155,118,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (65,155,114,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (66,118,174,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (67,114,174,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (68,155,174,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (69,147,174,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (70,118,147,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (71,68,161,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (72,45,161,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (73,68,125,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (74,45,125,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (75,45,68,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (76,125,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (77,68,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (78,45,65,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (79,161,65,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (80,125,161,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (81,64,69,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (82,199,69,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (83,64,159,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (84,199,159,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (85,199,64,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (86,159,179,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (87,64,179,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (88,199,179,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (89,69,179,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (90,159,69,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (91,77,20,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (92,191,20,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (93,77,181,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (94,191,181,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (95,191,77,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (96,181,50,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (97,77,50,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (98,191,50,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (99,20,50,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (100,181,20,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (101,180,156,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (102,11,156,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (103,180,26,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (104,11,26,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (105,11,180,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (106,26,103,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (107,180,103,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (108,11,103,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (109,156,103,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (110,26,156,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (111,3,99,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (112,73,99,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (113,3,91,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (114,73,91,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (115,73,3,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (116,91,198,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (117,3,198,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (118,73,198,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (119,99,198,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (120,91,99,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (121,189,71,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (122,62,71,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (123,189,139,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (124,62,139,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (125,62,189,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (126,139,52,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (127,189,52,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (128,62,52,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (129,71,52,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (130,139,71,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (131,92,87,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (132,70,87,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (133,92,40,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (134,70,40,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (135,70,92,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (136,40,188,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (137,92,188,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (138,70,188,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (139,87,188,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (140,40,87,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (141,157,32,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (142,75,32,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (143,157,57,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (144,75,57,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (145,75,157,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (146,57,144,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (147,157,144,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (148,75,144,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (149,32,144,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (150,57,32,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (151,122,104,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (152,196,104,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (153,122,51,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (154,196,51,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (155,196,122,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (156,51,182,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (157,122,182,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (158,196,182,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (159,104,182,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (160,51,104,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (161,166,163,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (162,89,163,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (163,166,44,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (164,89,44,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (165,89,166,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (166,44,127,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (167,166,127,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (168,89,127,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (169,163,127,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (170,44,163,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (171,130,97,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (172,183,97,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (173,130,107,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (174,183,107,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (175,183,130,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (176,107,197,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (177,130,197,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (178,183,197,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (179,97,197,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (180,107,97,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (181,85,55,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (182,56,55,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (183,85,18,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (184,56,18,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (185,56,85,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (186,18,19,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (187,85,19,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (188,56,19,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (189,55,19,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (190,18,55,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (191,193,28,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (192,168,28,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (193,193,22,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (194,168,22,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (195,168,193,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (196,22,38,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (197,193,38,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (198,168,38,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (199,28,38,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (200,22,28,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (201,183,2,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (202,168,4,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (203,48,7,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (204,137,8,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (205,175,36,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (206,110,37,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (207,145,49,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (208,83,66,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (209,141,76,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (210,100,94,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (211,40,98,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (212,138,101,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (213,154,115,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (214,181,119,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (215,126,121,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (216,185,124,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (217,96,140,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'), - (218,104,186,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:14:00','2023-09-06 22:14:00'); + (1,13,190,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (2,53,190,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (3,13,85,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (4,53,85,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (5,53,13,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (6,85,10,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (7,13,10,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (8,53,10,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (9,190,10,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (10,85,190,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (11,154,58,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (12,23,58,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (13,154,106,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (14,23,106,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (15,23,154,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (16,106,156,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (17,154,156,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (18,23,156,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (19,58,156,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (20,106,58,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (21,30,151,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (22,15,151,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (23,30,20,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (24,15,20,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (25,15,30,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (26,20,131,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (27,30,131,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (28,15,131,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (29,151,131,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (30,20,151,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (31,140,50,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (32,87,50,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (33,140,194,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (34,87,194,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (35,87,140,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (36,194,118,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (37,140,118,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (38,87,118,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (39,50,118,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (40,194,50,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (41,8,18,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (42,189,18,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (43,8,63,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (44,189,63,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (45,189,8,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (46,63,5,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (47,8,5,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (48,189,5,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (49,18,5,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (50,63,18,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (51,137,80,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (52,126,80,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (53,137,104,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (54,126,104,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (55,126,137,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (56,104,113,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (57,137,113,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (58,126,113,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (59,80,113,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (60,104,80,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (61,35,163,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (62,3,163,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (63,35,27,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (64,3,27,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (65,3,35,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (66,27,149,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (67,35,149,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (68,3,149,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (69,163,149,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (70,27,163,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (71,191,147,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (72,122,147,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (73,191,164,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (74,122,164,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (75,122,191,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (76,164,134,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (77,191,134,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (78,122,134,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (79,147,134,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (80,164,147,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (81,150,16,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (82,127,16,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (83,150,81,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (84,127,81,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (85,127,150,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (86,81,92,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (87,150,92,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (88,127,92,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (89,16,92,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (90,81,16,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (91,125,95,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (92,17,95,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (93,125,72,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (94,17,72,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (95,17,125,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (96,72,14,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (97,125,14,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (98,17,14,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (99,95,14,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (100,72,95,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (101,88,173,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (102,77,173,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (103,88,139,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (104,77,139,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (105,77,88,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (106,139,201,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (107,88,201,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (108,77,201,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (109,173,201,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (110,139,173,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (111,116,31,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (112,29,31,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (113,116,99,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (114,29,99,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (115,29,116,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (116,99,161,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (117,116,161,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (118,29,161,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (119,31,161,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (120,99,31,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (121,170,86,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (122,38,86,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (123,170,60,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (124,38,60,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (125,38,170,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (126,60,68,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (127,170,68,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (128,38,68,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (129,86,68,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (130,60,86,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (131,94,7,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (132,195,7,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (133,94,65,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (134,195,65,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (135,195,94,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (136,65,52,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (137,94,52,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (138,195,52,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (139,7,52,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (140,65,7,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (141,176,45,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (142,36,45,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (143,176,42,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (144,36,42,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (145,36,176,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (146,42,6,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (147,176,6,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (148,36,6,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (149,45,6,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (150,42,45,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (151,19,133,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (152,97,133,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (153,19,25,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (154,97,25,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (155,97,19,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (156,25,111,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (157,19,111,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (158,97,111,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (159,133,111,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (160,25,133,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (161,76,46,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (162,187,46,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (163,76,93,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (164,187,93,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (165,187,76,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (166,93,138,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (167,76,138,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (168,187,138,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (169,46,138,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (170,93,46,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (171,185,74,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (172,197,74,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (173,185,179,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (174,197,179,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (175,197,185,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (176,179,168,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (177,185,168,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (178,197,168,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (179,74,168,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (180,179,74,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (181,2,184,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (182,57,184,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (183,2,119,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (184,57,119,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (185,57,2,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (186,119,142,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (187,2,142,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (188,57,142,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (189,184,142,7,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (190,119,184,2,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (191,89,110,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (192,54,110,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (193,89,9,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (194,54,9,1,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (195,54,89,4,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (196,9,12,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:17','2023-09-06 22:52:17'), + (197,89,12,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (198,54,12,8,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (199,110,12,7,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (200,9,110,2,NULL,NULL,0,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (201,145,43,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (202,27,48,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (203,76,51,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (204,165,67,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (205,166,73,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (206,154,91,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (207,39,101,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (208,53,105,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (209,3,128,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (210,96,129,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (211,60,135,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (212,26,152,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (213,82,153,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (214,172,157,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (215,183,169,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (216,50,177,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (217,121,188,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'), + (218,28,193,5,NULL,NULL,1,NULL,0,0,NULL,'2023-09-06 22:52:18','2023-09-06 22:52:18'); /*!40000 ALTER TABLE `civicrm_relationship` ENABLE KEYS */; UNLOCK TABLES; @@ -7544,442 +7511,442 @@ UNLOCK TABLES; LOCK TABLES `civicrm_relationship_cache` WRITE; /*!40000 ALTER TABLE `civicrm_relationship_cache` DISABLE KEYS */; INSERT INTO `civicrm_relationship_cache` (`id`, `relationship_id`, `relationship_type_id`, `orientation`, `near_contact_id`, `near_relation`, `far_contact_id`, `far_relation`, `is_active`, `start_date`, `end_date`, `case_id`) VALUES - (1,1,1,'a_b',112,'Child of',67,'Parent of',1,NULL,NULL,NULL), - (2,1,1,'b_a',67,'Parent of',112,'Child of',1,NULL,NULL,NULL), - (3,2,1,'a_b',154,'Child of',67,'Parent of',1,NULL,NULL,NULL), - (4,2,1,'b_a',67,'Parent of',154,'Child of',1,NULL,NULL,NULL), - (5,3,1,'a_b',112,'Child of',79,'Parent of',1,NULL,NULL,NULL), - (6,3,1,'b_a',79,'Parent of',112,'Child of',1,NULL,NULL,NULL), - (7,4,1,'a_b',154,'Child of',79,'Parent of',1,NULL,NULL,NULL), - (8,4,1,'b_a',79,'Parent of',154,'Child of',1,NULL,NULL,NULL), - (9,5,4,'a_b',154,'Sibling of',112,'Sibling of',1,NULL,NULL,NULL), - (10,5,4,'b_a',112,'Sibling of',154,'Sibling of',1,NULL,NULL,NULL), - (11,6,8,'a_b',79,'Household Member of',39,'Household Member is',1,NULL,NULL,NULL), - (12,6,8,'b_a',39,'Household Member is',79,'Household Member of',1,NULL,NULL,NULL), - (13,7,8,'a_b',112,'Household Member of',39,'Household Member is',1,NULL,NULL,NULL), - (14,7,8,'b_a',39,'Household Member is',112,'Household Member of',1,NULL,NULL,NULL), - (15,8,8,'a_b',154,'Household Member of',39,'Household Member is',1,NULL,NULL,NULL), - (16,8,8,'b_a',39,'Household Member is',154,'Household Member of',1,NULL,NULL,NULL), - (17,9,7,'a_b',67,'Head of Household for',39,'Head of Household is',1,NULL,NULL,NULL), - (18,9,7,'b_a',39,'Head of Household is',67,'Head of Household for',1,NULL,NULL,NULL), - (19,10,2,'a_b',79,'Spouse of',67,'Spouse of',1,NULL,NULL,NULL), - (20,10,2,'b_a',67,'Spouse of',79,'Spouse of',1,NULL,NULL,NULL), - (21,11,1,'a_b',43,'Child of',194,'Parent of',1,NULL,NULL,NULL), - (22,11,1,'b_a',194,'Parent of',43,'Child of',1,NULL,NULL,NULL), - (23,12,1,'a_b',201,'Child of',194,'Parent of',1,NULL,NULL,NULL), - (24,12,1,'b_a',194,'Parent of',201,'Child of',1,NULL,NULL,NULL), - (25,13,1,'a_b',43,'Child of',41,'Parent of',1,NULL,NULL,NULL), - (26,13,1,'b_a',41,'Parent of',43,'Child of',1,NULL,NULL,NULL), - (27,14,1,'a_b',201,'Child of',41,'Parent of',1,NULL,NULL,NULL), - (28,14,1,'b_a',41,'Parent of',201,'Child of',1,NULL,NULL,NULL), - (29,15,4,'a_b',201,'Sibling of',43,'Sibling of',1,NULL,NULL,NULL), - (30,15,4,'b_a',43,'Sibling of',201,'Sibling of',1,NULL,NULL,NULL), - (31,16,8,'a_b',41,'Household Member of',158,'Household Member is',1,NULL,NULL,NULL), - (32,16,8,'b_a',158,'Household Member is',41,'Household Member of',1,NULL,NULL,NULL), - (33,17,8,'a_b',43,'Household Member of',158,'Household Member is',1,NULL,NULL,NULL), - (34,17,8,'b_a',158,'Household Member is',43,'Household Member of',1,NULL,NULL,NULL), - (35,18,8,'a_b',201,'Household Member of',158,'Household Member is',1,NULL,NULL,NULL), - (36,18,8,'b_a',158,'Household Member is',201,'Household Member of',1,NULL,NULL,NULL), - (37,19,7,'a_b',194,'Head of Household for',158,'Head of Household is',0,NULL,NULL,NULL), - (38,19,7,'b_a',158,'Head of Household is',194,'Head of Household for',0,NULL,NULL,NULL), - (39,20,2,'a_b',41,'Spouse of',194,'Spouse of',0,NULL,NULL,NULL), - (40,20,2,'b_a',194,'Spouse of',41,'Spouse of',0,NULL,NULL,NULL), - (41,21,1,'a_b',80,'Child of',171,'Parent of',1,NULL,NULL,NULL), - (42,21,1,'b_a',171,'Parent of',80,'Child of',1,NULL,NULL,NULL), - (43,22,1,'a_b',172,'Child of',171,'Parent of',1,NULL,NULL,NULL), - (44,22,1,'b_a',171,'Parent of',172,'Child of',1,NULL,NULL,NULL), - (45,23,1,'a_b',80,'Child of',178,'Parent of',1,NULL,NULL,NULL), - (46,23,1,'b_a',178,'Parent of',80,'Child of',1,NULL,NULL,NULL), - (47,24,1,'a_b',172,'Child of',178,'Parent of',1,NULL,NULL,NULL), - (48,24,1,'b_a',178,'Parent of',172,'Child of',1,NULL,NULL,NULL), - (49,25,4,'a_b',172,'Sibling of',80,'Sibling of',1,NULL,NULL,NULL), - (50,25,4,'b_a',80,'Sibling of',172,'Sibling of',1,NULL,NULL,NULL), - (51,26,8,'a_b',178,'Household Member of',167,'Household Member is',1,NULL,NULL,NULL), - (52,26,8,'b_a',167,'Household Member is',178,'Household Member of',1,NULL,NULL,NULL), - (53,27,8,'a_b',80,'Household Member of',167,'Household Member is',1,NULL,NULL,NULL), - (54,27,8,'b_a',167,'Household Member is',80,'Household Member of',1,NULL,NULL,NULL), - (55,28,8,'a_b',172,'Household Member of',167,'Household Member is',1,NULL,NULL,NULL), - (56,28,8,'b_a',167,'Household Member is',172,'Household Member of',1,NULL,NULL,NULL), - (57,29,7,'a_b',171,'Head of Household for',167,'Head of Household is',1,NULL,NULL,NULL), - (58,29,7,'b_a',167,'Head of Household is',171,'Head of Household for',1,NULL,NULL,NULL), - (59,30,2,'a_b',178,'Spouse of',171,'Spouse of',1,NULL,NULL,NULL), - (60,30,2,'b_a',171,'Spouse of',178,'Spouse of',1,NULL,NULL,NULL), - (61,31,1,'a_b',165,'Child of',152,'Parent of',1,NULL,NULL,NULL), - (62,31,1,'b_a',152,'Parent of',165,'Child of',1,NULL,NULL,NULL), - (63,32,1,'a_b',14,'Child of',152,'Parent of',1,NULL,NULL,NULL), - (64,32,1,'b_a',152,'Parent of',14,'Child of',1,NULL,NULL,NULL), - (65,33,1,'a_b',165,'Child of',116,'Parent of',1,NULL,NULL,NULL), - (66,33,1,'b_a',116,'Parent of',165,'Child of',1,NULL,NULL,NULL), - (67,34,1,'a_b',14,'Child of',116,'Parent of',1,NULL,NULL,NULL), - (68,34,1,'b_a',116,'Parent of',14,'Child of',1,NULL,NULL,NULL), - (69,35,4,'a_b',14,'Sibling of',165,'Sibling of',1,NULL,NULL,NULL), - (70,35,4,'b_a',165,'Sibling of',14,'Sibling of',1,NULL,NULL,NULL), - (71,36,8,'a_b',116,'Household Member of',10,'Household Member is',1,NULL,NULL,NULL), - (72,36,8,'b_a',10,'Household Member is',116,'Household Member of',1,NULL,NULL,NULL), - (73,37,8,'a_b',165,'Household Member of',10,'Household Member is',1,NULL,NULL,NULL), - (74,37,8,'b_a',10,'Household Member is',165,'Household Member of',1,NULL,NULL,NULL), - (75,38,8,'a_b',14,'Household Member of',10,'Household Member is',1,NULL,NULL,NULL), - (76,38,8,'b_a',10,'Household Member is',14,'Household Member of',1,NULL,NULL,NULL), - (77,39,7,'a_b',152,'Head of Household for',10,'Head of Household is',1,NULL,NULL,NULL), - (78,39,7,'b_a',10,'Head of Household is',152,'Head of Household for',1,NULL,NULL,NULL), - (79,40,2,'a_b',116,'Spouse of',152,'Spouse of',1,NULL,NULL,NULL), - (80,40,2,'b_a',152,'Spouse of',116,'Spouse of',1,NULL,NULL,NULL), - (81,41,1,'a_b',21,'Child of',133,'Parent of',1,NULL,NULL,NULL), - (82,41,1,'b_a',133,'Parent of',21,'Child of',1,NULL,NULL,NULL), - (83,42,1,'a_b',195,'Child of',133,'Parent of',1,NULL,NULL,NULL), - (84,42,1,'b_a',133,'Parent of',195,'Child of',1,NULL,NULL,NULL), - (85,43,1,'a_b',21,'Child of',58,'Parent of',1,NULL,NULL,NULL), - (86,43,1,'b_a',58,'Parent of',21,'Child of',1,NULL,NULL,NULL), - (87,44,1,'a_b',195,'Child of',58,'Parent of',1,NULL,NULL,NULL), - (88,44,1,'b_a',58,'Parent of',195,'Child of',1,NULL,NULL,NULL), - (89,45,4,'a_b',195,'Sibling of',21,'Sibling of',1,NULL,NULL,NULL), - (90,45,4,'b_a',21,'Sibling of',195,'Sibling of',1,NULL,NULL,NULL), - (91,46,8,'a_b',58,'Household Member of',177,'Household Member is',1,NULL,NULL,NULL), - (92,46,8,'b_a',177,'Household Member is',58,'Household Member of',1,NULL,NULL,NULL), - (93,47,8,'a_b',21,'Household Member of',177,'Household Member is',1,NULL,NULL,NULL), - (94,47,8,'b_a',177,'Household Member is',21,'Household Member of',1,NULL,NULL,NULL), - (95,48,8,'a_b',195,'Household Member of',177,'Household Member is',1,NULL,NULL,NULL), - (96,48,8,'b_a',177,'Household Member is',195,'Household Member of',1,NULL,NULL,NULL), - (97,49,7,'a_b',133,'Head of Household for',177,'Head of Household is',0,NULL,NULL,NULL), - (98,49,7,'b_a',177,'Head of Household is',133,'Head of Household for',0,NULL,NULL,NULL), - (99,50,2,'a_b',58,'Spouse of',133,'Spouse of',0,NULL,NULL,NULL), - (100,50,2,'b_a',133,'Spouse of',58,'Spouse of',0,NULL,NULL,NULL), - (101,51,1,'a_b',90,'Child of',187,'Parent of',1,NULL,NULL,NULL), - (102,51,1,'b_a',187,'Parent of',90,'Child of',1,NULL,NULL,NULL), - (103,52,1,'a_b',113,'Child of',187,'Parent of',1,NULL,NULL,NULL), - (104,52,1,'b_a',187,'Parent of',113,'Child of',1,NULL,NULL,NULL), - (105,53,1,'a_b',90,'Child of',192,'Parent of',1,NULL,NULL,NULL), - (106,53,1,'b_a',192,'Parent of',90,'Child of',1,NULL,NULL,NULL), - (107,54,1,'a_b',113,'Child of',192,'Parent of',1,NULL,NULL,NULL), - (108,54,1,'b_a',192,'Parent of',113,'Child of',1,NULL,NULL,NULL), - (109,55,4,'a_b',113,'Sibling of',90,'Sibling of',1,NULL,NULL,NULL), - (110,55,4,'b_a',90,'Sibling of',113,'Sibling of',1,NULL,NULL,NULL), - (111,56,8,'a_b',192,'Household Member of',129,'Household Member is',1,NULL,NULL,NULL), - (112,56,8,'b_a',129,'Household Member is',192,'Household Member of',1,NULL,NULL,NULL), - (113,57,8,'a_b',90,'Household Member of',129,'Household Member is',1,NULL,NULL,NULL), - (114,57,8,'b_a',129,'Household Member is',90,'Household Member of',1,NULL,NULL,NULL), - (115,58,8,'a_b',113,'Household Member of',129,'Household Member is',1,NULL,NULL,NULL), - (116,58,8,'b_a',129,'Household Member is',113,'Household Member of',1,NULL,NULL,NULL), - (117,59,7,'a_b',187,'Head of Household for',129,'Head of Household is',1,NULL,NULL,NULL), - (118,59,7,'b_a',129,'Head of Household is',187,'Head of Household for',1,NULL,NULL,NULL), - (119,60,2,'a_b',192,'Spouse of',187,'Spouse of',1,NULL,NULL,NULL), - (120,60,2,'b_a',187,'Spouse of',192,'Spouse of',1,NULL,NULL,NULL), - (121,61,1,'a_b',114,'Child of',147,'Parent of',1,NULL,NULL,NULL), - (122,61,1,'b_a',147,'Parent of',114,'Child of',1,NULL,NULL,NULL), - (123,62,1,'a_b',155,'Child of',147,'Parent of',1,NULL,NULL,NULL), - (124,62,1,'b_a',147,'Parent of',155,'Child of',1,NULL,NULL,NULL), - (125,63,1,'a_b',114,'Child of',118,'Parent of',1,NULL,NULL,NULL), - (126,63,1,'b_a',118,'Parent of',114,'Child of',1,NULL,NULL,NULL), - (127,64,1,'a_b',155,'Child of',118,'Parent of',1,NULL,NULL,NULL), - (128,64,1,'b_a',118,'Parent of',155,'Child of',1,NULL,NULL,NULL), - (129,65,4,'a_b',155,'Sibling of',114,'Sibling of',1,NULL,NULL,NULL), - (130,65,4,'b_a',114,'Sibling of',155,'Sibling of',1,NULL,NULL,NULL), - (131,66,8,'a_b',118,'Household Member of',174,'Household Member is',1,NULL,NULL,NULL), - (132,66,8,'b_a',174,'Household Member is',118,'Household Member of',1,NULL,NULL,NULL), - (133,67,8,'a_b',114,'Household Member of',174,'Household Member is',1,NULL,NULL,NULL), - (134,67,8,'b_a',174,'Household Member is',114,'Household Member of',1,NULL,NULL,NULL), - (135,68,8,'a_b',155,'Household Member of',174,'Household Member is',1,NULL,NULL,NULL), - (136,68,8,'b_a',174,'Household Member is',155,'Household Member of',1,NULL,NULL,NULL), - (137,69,7,'a_b',147,'Head of Household for',174,'Head of Household is',1,NULL,NULL,NULL), - (138,69,7,'b_a',174,'Head of Household is',147,'Head of Household for',1,NULL,NULL,NULL), - (139,70,2,'a_b',118,'Spouse of',147,'Spouse of',1,NULL,NULL,NULL), - (140,70,2,'b_a',147,'Spouse of',118,'Spouse of',1,NULL,NULL,NULL), - (141,71,1,'a_b',68,'Child of',161,'Parent of',1,NULL,NULL,NULL), - (142,71,1,'b_a',161,'Parent of',68,'Child of',1,NULL,NULL,NULL), - (143,72,1,'a_b',45,'Child of',161,'Parent of',1,NULL,NULL,NULL), - (144,72,1,'b_a',161,'Parent of',45,'Child of',1,NULL,NULL,NULL), - (145,73,1,'a_b',68,'Child of',125,'Parent of',1,NULL,NULL,NULL), - (146,73,1,'b_a',125,'Parent of',68,'Child of',1,NULL,NULL,NULL), - (147,74,1,'a_b',45,'Child of',125,'Parent of',1,NULL,NULL,NULL), - (148,74,1,'b_a',125,'Parent of',45,'Child of',1,NULL,NULL,NULL), - (149,75,4,'a_b',45,'Sibling of',68,'Sibling of',1,NULL,NULL,NULL), - (150,75,4,'b_a',68,'Sibling of',45,'Sibling of',1,NULL,NULL,NULL), - (151,76,8,'a_b',125,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL), - (152,76,8,'b_a',65,'Household Member is',125,'Household Member of',1,NULL,NULL,NULL), - (153,77,8,'a_b',68,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL), - (154,77,8,'b_a',65,'Household Member is',68,'Household Member of',1,NULL,NULL,NULL), - (155,78,8,'a_b',45,'Household Member of',65,'Household Member is',1,NULL,NULL,NULL), - (156,78,8,'b_a',65,'Household Member is',45,'Household Member of',1,NULL,NULL,NULL), - (157,79,7,'a_b',161,'Head of Household for',65,'Head of Household is',1,NULL,NULL,NULL), - (158,79,7,'b_a',65,'Head of Household is',161,'Head of Household for',1,NULL,NULL,NULL), - (159,80,2,'a_b',125,'Spouse of',161,'Spouse of',1,NULL,NULL,NULL), - (160,80,2,'b_a',161,'Spouse of',125,'Spouse of',1,NULL,NULL,NULL), - (161,81,1,'a_b',64,'Child of',69,'Parent of',1,NULL,NULL,NULL), - (162,81,1,'b_a',69,'Parent of',64,'Child of',1,NULL,NULL,NULL), - (163,82,1,'a_b',199,'Child of',69,'Parent of',1,NULL,NULL,NULL), - (164,82,1,'b_a',69,'Parent of',199,'Child of',1,NULL,NULL,NULL), - (165,83,1,'a_b',64,'Child of',159,'Parent of',1,NULL,NULL,NULL), - (166,83,1,'b_a',159,'Parent of',64,'Child of',1,NULL,NULL,NULL), - (167,84,1,'a_b',199,'Child of',159,'Parent of',1,NULL,NULL,NULL), - (168,84,1,'b_a',159,'Parent of',199,'Child of',1,NULL,NULL,NULL), - (169,85,4,'a_b',199,'Sibling of',64,'Sibling of',1,NULL,NULL,NULL), - (170,85,4,'b_a',64,'Sibling of',199,'Sibling of',1,NULL,NULL,NULL), - (171,86,8,'a_b',159,'Household Member of',179,'Household Member is',1,NULL,NULL,NULL), - (172,86,8,'b_a',179,'Household Member is',159,'Household Member of',1,NULL,NULL,NULL), - (173,87,8,'a_b',64,'Household Member of',179,'Household Member is',1,NULL,NULL,NULL), - (174,87,8,'b_a',179,'Household Member is',64,'Household Member of',1,NULL,NULL,NULL), - (175,88,8,'a_b',199,'Household Member of',179,'Household Member is',1,NULL,NULL,NULL), - (176,88,8,'b_a',179,'Household Member is',199,'Household Member of',1,NULL,NULL,NULL), - (177,89,7,'a_b',69,'Head of Household for',179,'Head of Household is',1,NULL,NULL,NULL), - (178,89,7,'b_a',179,'Head of Household is',69,'Head of Household for',1,NULL,NULL,NULL), - (179,90,2,'a_b',159,'Spouse of',69,'Spouse of',1,NULL,NULL,NULL), - (180,90,2,'b_a',69,'Spouse of',159,'Spouse of',1,NULL,NULL,NULL), - (181,91,1,'a_b',77,'Child of',20,'Parent of',1,NULL,NULL,NULL), - (182,91,1,'b_a',20,'Parent of',77,'Child of',1,NULL,NULL,NULL), - (183,92,1,'a_b',191,'Child of',20,'Parent of',1,NULL,NULL,NULL), - (184,92,1,'b_a',20,'Parent of',191,'Child of',1,NULL,NULL,NULL), - (185,93,1,'a_b',77,'Child of',181,'Parent of',1,NULL,NULL,NULL), - (186,93,1,'b_a',181,'Parent of',77,'Child of',1,NULL,NULL,NULL), - (187,94,1,'a_b',191,'Child of',181,'Parent of',1,NULL,NULL,NULL), - (188,94,1,'b_a',181,'Parent of',191,'Child of',1,NULL,NULL,NULL), - (189,95,4,'a_b',191,'Sibling of',77,'Sibling of',1,NULL,NULL,NULL), - (190,95,4,'b_a',77,'Sibling of',191,'Sibling of',1,NULL,NULL,NULL), - (191,96,8,'a_b',181,'Household Member of',50,'Household Member is',1,NULL,NULL,NULL), - (192,96,8,'b_a',50,'Household Member is',181,'Household Member of',1,NULL,NULL,NULL), - (193,97,8,'a_b',77,'Household Member of',50,'Household Member is',1,NULL,NULL,NULL), - (194,97,8,'b_a',50,'Household Member is',77,'Household Member of',1,NULL,NULL,NULL), - (195,98,8,'a_b',191,'Household Member of',50,'Household Member is',1,NULL,NULL,NULL), - (196,98,8,'b_a',50,'Household Member is',191,'Household Member of',1,NULL,NULL,NULL), - (197,99,7,'a_b',20,'Head of Household for',50,'Head of Household is',0,NULL,NULL,NULL), - (198,99,7,'b_a',50,'Head of Household is',20,'Head of Household for',0,NULL,NULL,NULL), - (199,100,2,'a_b',181,'Spouse of',20,'Spouse of',0,NULL,NULL,NULL), - (200,100,2,'b_a',20,'Spouse of',181,'Spouse of',0,NULL,NULL,NULL), - (201,101,1,'a_b',180,'Child of',156,'Parent of',1,NULL,NULL,NULL), - (202,101,1,'b_a',156,'Parent of',180,'Child of',1,NULL,NULL,NULL), - (203,102,1,'a_b',11,'Child of',156,'Parent of',1,NULL,NULL,NULL), - (204,102,1,'b_a',156,'Parent of',11,'Child of',1,NULL,NULL,NULL), - (205,103,1,'a_b',180,'Child of',26,'Parent of',1,NULL,NULL,NULL), - (206,103,1,'b_a',26,'Parent of',180,'Child of',1,NULL,NULL,NULL), - (207,104,1,'a_b',11,'Child of',26,'Parent of',1,NULL,NULL,NULL), - (208,104,1,'b_a',26,'Parent of',11,'Child of',1,NULL,NULL,NULL), - (209,105,4,'a_b',11,'Sibling of',180,'Sibling of',1,NULL,NULL,NULL), - (210,105,4,'b_a',180,'Sibling of',11,'Sibling of',1,NULL,NULL,NULL), - (211,106,8,'a_b',26,'Household Member of',103,'Household Member is',1,NULL,NULL,NULL), - (212,106,8,'b_a',103,'Household Member is',26,'Household Member of',1,NULL,NULL,NULL), - (213,107,8,'a_b',180,'Household Member of',103,'Household Member is',1,NULL,NULL,NULL), - (214,107,8,'b_a',103,'Household Member is',180,'Household Member of',1,NULL,NULL,NULL), - (215,108,8,'a_b',11,'Household Member of',103,'Household Member is',1,NULL,NULL,NULL), - (216,108,8,'b_a',103,'Household Member is',11,'Household Member of',1,NULL,NULL,NULL), - (217,109,7,'a_b',156,'Head of Household for',103,'Head of Household is',0,NULL,NULL,NULL), - (218,109,7,'b_a',103,'Head of Household is',156,'Head of Household for',0,NULL,NULL,NULL), - (219,110,2,'a_b',26,'Spouse of',156,'Spouse of',0,NULL,NULL,NULL), - (220,110,2,'b_a',156,'Spouse of',26,'Spouse of',0,NULL,NULL,NULL), - (221,111,1,'a_b',3,'Child of',99,'Parent of',1,NULL,NULL,NULL), - (222,111,1,'b_a',99,'Parent of',3,'Child of',1,NULL,NULL,NULL), - (223,112,1,'a_b',73,'Child of',99,'Parent of',1,NULL,NULL,NULL), - (224,112,1,'b_a',99,'Parent of',73,'Child of',1,NULL,NULL,NULL), - (225,113,1,'a_b',3,'Child of',91,'Parent of',1,NULL,NULL,NULL), - (226,113,1,'b_a',91,'Parent of',3,'Child of',1,NULL,NULL,NULL), - (227,114,1,'a_b',73,'Child of',91,'Parent of',1,NULL,NULL,NULL), - (228,114,1,'b_a',91,'Parent of',73,'Child of',1,NULL,NULL,NULL), - (229,115,4,'a_b',73,'Sibling of',3,'Sibling of',1,NULL,NULL,NULL), - (230,115,4,'b_a',3,'Sibling of',73,'Sibling of',1,NULL,NULL,NULL), - (231,116,8,'a_b',91,'Household Member of',198,'Household Member is',1,NULL,NULL,NULL), - (232,116,8,'b_a',198,'Household Member is',91,'Household Member of',1,NULL,NULL,NULL), - (233,117,8,'a_b',3,'Household Member of',198,'Household Member is',1,NULL,NULL,NULL), - (234,117,8,'b_a',198,'Household Member is',3,'Household Member of',1,NULL,NULL,NULL), - (235,118,8,'a_b',73,'Household Member of',198,'Household Member is',1,NULL,NULL,NULL), - (236,118,8,'b_a',198,'Household Member is',73,'Household Member of',1,NULL,NULL,NULL), - (237,119,7,'a_b',99,'Head of Household for',198,'Head of Household is',0,NULL,NULL,NULL), - (238,119,7,'b_a',198,'Head of Household is',99,'Head of Household for',0,NULL,NULL,NULL), - (239,120,2,'a_b',91,'Spouse of',99,'Spouse of',0,NULL,NULL,NULL), - (240,120,2,'b_a',99,'Spouse of',91,'Spouse of',0,NULL,NULL,NULL), - (241,121,1,'a_b',189,'Child of',71,'Parent of',1,NULL,NULL,NULL), - (242,121,1,'b_a',71,'Parent of',189,'Child of',1,NULL,NULL,NULL), - (243,122,1,'a_b',62,'Child of',71,'Parent of',1,NULL,NULL,NULL), - (244,122,1,'b_a',71,'Parent of',62,'Child of',1,NULL,NULL,NULL), - (245,123,1,'a_b',189,'Child of',139,'Parent of',1,NULL,NULL,NULL), - (246,123,1,'b_a',139,'Parent of',189,'Child of',1,NULL,NULL,NULL), - (247,124,1,'a_b',62,'Child of',139,'Parent of',1,NULL,NULL,NULL), - (248,124,1,'b_a',139,'Parent of',62,'Child of',1,NULL,NULL,NULL), - (249,125,4,'a_b',62,'Sibling of',189,'Sibling of',1,NULL,NULL,NULL), - (250,125,4,'b_a',189,'Sibling of',62,'Sibling of',1,NULL,NULL,NULL), - (251,126,8,'a_b',139,'Household Member of',52,'Household Member is',1,NULL,NULL,NULL), - (252,126,8,'b_a',52,'Household Member is',139,'Household Member of',1,NULL,NULL,NULL), - (253,127,8,'a_b',189,'Household Member of',52,'Household Member is',1,NULL,NULL,NULL), - (254,127,8,'b_a',52,'Household Member is',189,'Household Member of',1,NULL,NULL,NULL), - (255,128,8,'a_b',62,'Household Member of',52,'Household Member is',1,NULL,NULL,NULL), - (256,128,8,'b_a',52,'Household Member is',62,'Household Member of',1,NULL,NULL,NULL), - (257,129,7,'a_b',71,'Head of Household for',52,'Head of Household is',1,NULL,NULL,NULL), - (258,129,7,'b_a',52,'Head of Household is',71,'Head of Household for',1,NULL,NULL,NULL), - (259,130,2,'a_b',139,'Spouse of',71,'Spouse of',1,NULL,NULL,NULL), - (260,130,2,'b_a',71,'Spouse of',139,'Spouse of',1,NULL,NULL,NULL), - (261,131,1,'a_b',92,'Child of',87,'Parent of',1,NULL,NULL,NULL), - (262,131,1,'b_a',87,'Parent of',92,'Child of',1,NULL,NULL,NULL), - (263,132,1,'a_b',70,'Child of',87,'Parent of',1,NULL,NULL,NULL), - (264,132,1,'b_a',87,'Parent of',70,'Child of',1,NULL,NULL,NULL), - (265,133,1,'a_b',92,'Child of',40,'Parent of',1,NULL,NULL,NULL), - (266,133,1,'b_a',40,'Parent of',92,'Child of',1,NULL,NULL,NULL), - (267,134,1,'a_b',70,'Child of',40,'Parent of',1,NULL,NULL,NULL), - (268,134,1,'b_a',40,'Parent of',70,'Child of',1,NULL,NULL,NULL), - (269,135,4,'a_b',70,'Sibling of',92,'Sibling of',1,NULL,NULL,NULL), - (270,135,4,'b_a',92,'Sibling of',70,'Sibling of',1,NULL,NULL,NULL), - (271,136,8,'a_b',40,'Household Member of',188,'Household Member is',1,NULL,NULL,NULL), - (272,136,8,'b_a',188,'Household Member is',40,'Household Member of',1,NULL,NULL,NULL), - (273,137,8,'a_b',92,'Household Member of',188,'Household Member is',1,NULL,NULL,NULL), - (274,137,8,'b_a',188,'Household Member is',92,'Household Member of',1,NULL,NULL,NULL), - (275,138,8,'a_b',70,'Household Member of',188,'Household Member is',1,NULL,NULL,NULL), - (276,138,8,'b_a',188,'Household Member is',70,'Household Member of',1,NULL,NULL,NULL), - (277,139,7,'a_b',87,'Head of Household for',188,'Head of Household is',1,NULL,NULL,NULL), - (278,139,7,'b_a',188,'Head of Household is',87,'Head of Household for',1,NULL,NULL,NULL), - (279,140,2,'a_b',40,'Spouse of',87,'Spouse of',1,NULL,NULL,NULL), - (280,140,2,'b_a',87,'Spouse of',40,'Spouse of',1,NULL,NULL,NULL), - (281,141,1,'a_b',157,'Child of',32,'Parent of',1,NULL,NULL,NULL), - (282,141,1,'b_a',32,'Parent of',157,'Child of',1,NULL,NULL,NULL), - (283,142,1,'a_b',75,'Child of',32,'Parent of',1,NULL,NULL,NULL), - (284,142,1,'b_a',32,'Parent of',75,'Child of',1,NULL,NULL,NULL), - (285,143,1,'a_b',157,'Child of',57,'Parent of',1,NULL,NULL,NULL), - (286,143,1,'b_a',57,'Parent of',157,'Child of',1,NULL,NULL,NULL), - (287,144,1,'a_b',75,'Child of',57,'Parent of',1,NULL,NULL,NULL), - (288,144,1,'b_a',57,'Parent of',75,'Child of',1,NULL,NULL,NULL), - (289,145,4,'a_b',75,'Sibling of',157,'Sibling of',1,NULL,NULL,NULL), - (290,145,4,'b_a',157,'Sibling of',75,'Sibling of',1,NULL,NULL,NULL), - (291,146,8,'a_b',57,'Household Member of',144,'Household Member is',1,NULL,NULL,NULL), - (292,146,8,'b_a',144,'Household Member is',57,'Household Member of',1,NULL,NULL,NULL), - (293,147,8,'a_b',157,'Household Member of',144,'Household Member is',1,NULL,NULL,NULL), - (294,147,8,'b_a',144,'Household Member is',157,'Household Member of',1,NULL,NULL,NULL), - (295,148,8,'a_b',75,'Household Member of',144,'Household Member is',1,NULL,NULL,NULL), - (296,148,8,'b_a',144,'Household Member is',75,'Household Member of',1,NULL,NULL,NULL), - (297,149,7,'a_b',32,'Head of Household for',144,'Head of Household is',1,NULL,NULL,NULL), - (298,149,7,'b_a',144,'Head of Household is',32,'Head of Household for',1,NULL,NULL,NULL), - (299,150,2,'a_b',57,'Spouse of',32,'Spouse of',1,NULL,NULL,NULL), - (300,150,2,'b_a',32,'Spouse of',57,'Spouse of',1,NULL,NULL,NULL), - (301,151,1,'a_b',122,'Child of',104,'Parent of',1,NULL,NULL,NULL), - (302,151,1,'b_a',104,'Parent of',122,'Child of',1,NULL,NULL,NULL), - (303,152,1,'a_b',196,'Child of',104,'Parent of',1,NULL,NULL,NULL), - (304,152,1,'b_a',104,'Parent of',196,'Child of',1,NULL,NULL,NULL), - (305,153,1,'a_b',122,'Child of',51,'Parent of',1,NULL,NULL,NULL), - (306,153,1,'b_a',51,'Parent of',122,'Child of',1,NULL,NULL,NULL), - (307,154,1,'a_b',196,'Child of',51,'Parent of',1,NULL,NULL,NULL), - (308,154,1,'b_a',51,'Parent of',196,'Child of',1,NULL,NULL,NULL), - (309,155,4,'a_b',196,'Sibling of',122,'Sibling of',1,NULL,NULL,NULL), - (310,155,4,'b_a',122,'Sibling of',196,'Sibling of',1,NULL,NULL,NULL), - (311,156,8,'a_b',51,'Household Member of',182,'Household Member is',1,NULL,NULL,NULL), - (312,156,8,'b_a',182,'Household Member is',51,'Household Member of',1,NULL,NULL,NULL), - (313,157,8,'a_b',122,'Household Member of',182,'Household Member is',1,NULL,NULL,NULL), - (314,157,8,'b_a',182,'Household Member is',122,'Household Member of',1,NULL,NULL,NULL), - (315,158,8,'a_b',196,'Household Member of',182,'Household Member is',1,NULL,NULL,NULL), - (316,158,8,'b_a',182,'Household Member is',196,'Household Member of',1,NULL,NULL,NULL), - (317,159,7,'a_b',104,'Head of Household for',182,'Head of Household is',1,NULL,NULL,NULL), - (318,159,7,'b_a',182,'Head of Household is',104,'Head of Household for',1,NULL,NULL,NULL), - (319,160,2,'a_b',51,'Spouse of',104,'Spouse of',1,NULL,NULL,NULL), - (320,160,2,'b_a',104,'Spouse of',51,'Spouse of',1,NULL,NULL,NULL), - (321,161,1,'a_b',166,'Child of',163,'Parent of',1,NULL,NULL,NULL), - (322,161,1,'b_a',163,'Parent of',166,'Child of',1,NULL,NULL,NULL), - (323,162,1,'a_b',89,'Child of',163,'Parent of',1,NULL,NULL,NULL), - (324,162,1,'b_a',163,'Parent of',89,'Child of',1,NULL,NULL,NULL), - (325,163,1,'a_b',166,'Child of',44,'Parent of',1,NULL,NULL,NULL), - (326,163,1,'b_a',44,'Parent of',166,'Child of',1,NULL,NULL,NULL), - (327,164,1,'a_b',89,'Child of',44,'Parent of',1,NULL,NULL,NULL), - (328,164,1,'b_a',44,'Parent of',89,'Child of',1,NULL,NULL,NULL), - (329,165,4,'a_b',89,'Sibling of',166,'Sibling of',1,NULL,NULL,NULL), - (330,165,4,'b_a',166,'Sibling of',89,'Sibling of',1,NULL,NULL,NULL), - (331,166,8,'a_b',44,'Household Member of',127,'Household Member is',1,NULL,NULL,NULL), - (332,166,8,'b_a',127,'Household Member is',44,'Household Member of',1,NULL,NULL,NULL), - (333,167,8,'a_b',166,'Household Member of',127,'Household Member is',1,NULL,NULL,NULL), - (334,167,8,'b_a',127,'Household Member is',166,'Household Member of',1,NULL,NULL,NULL), - (335,168,8,'a_b',89,'Household Member of',127,'Household Member is',1,NULL,NULL,NULL), - (336,168,8,'b_a',127,'Household Member is',89,'Household Member of',1,NULL,NULL,NULL), - (337,169,7,'a_b',163,'Head of Household for',127,'Head of Household is',0,NULL,NULL,NULL), - (338,169,7,'b_a',127,'Head of Household is',163,'Head of Household for',0,NULL,NULL,NULL), - (339,170,2,'a_b',44,'Spouse of',163,'Spouse of',0,NULL,NULL,NULL), - (340,170,2,'b_a',163,'Spouse of',44,'Spouse of',0,NULL,NULL,NULL), - (341,171,1,'a_b',130,'Child of',97,'Parent of',1,NULL,NULL,NULL), - (342,171,1,'b_a',97,'Parent of',130,'Child of',1,NULL,NULL,NULL), - (343,172,1,'a_b',183,'Child of',97,'Parent of',1,NULL,NULL,NULL), - (344,172,1,'b_a',97,'Parent of',183,'Child of',1,NULL,NULL,NULL), - (345,173,1,'a_b',130,'Child of',107,'Parent of',1,NULL,NULL,NULL), - (346,173,1,'b_a',107,'Parent of',130,'Child of',1,NULL,NULL,NULL), - (347,174,1,'a_b',183,'Child of',107,'Parent of',1,NULL,NULL,NULL), - (348,174,1,'b_a',107,'Parent of',183,'Child of',1,NULL,NULL,NULL), - (349,175,4,'a_b',183,'Sibling of',130,'Sibling of',1,NULL,NULL,NULL), - (350,175,4,'b_a',130,'Sibling of',183,'Sibling of',1,NULL,NULL,NULL), - (351,176,8,'a_b',107,'Household Member of',197,'Household Member is',1,NULL,NULL,NULL), - (352,176,8,'b_a',197,'Household Member is',107,'Household Member of',1,NULL,NULL,NULL), - (353,177,8,'a_b',130,'Household Member of',197,'Household Member is',1,NULL,NULL,NULL), - (354,177,8,'b_a',197,'Household Member is',130,'Household Member of',1,NULL,NULL,NULL), - (355,178,8,'a_b',183,'Household Member of',197,'Household Member is',1,NULL,NULL,NULL), - (356,178,8,'b_a',197,'Household Member is',183,'Household Member of',1,NULL,NULL,NULL), - (357,179,7,'a_b',97,'Head of Household for',197,'Head of Household is',1,NULL,NULL,NULL), - (358,179,7,'b_a',197,'Head of Household is',97,'Head of Household for',1,NULL,NULL,NULL), - (359,180,2,'a_b',107,'Spouse of',97,'Spouse of',1,NULL,NULL,NULL), - (360,180,2,'b_a',97,'Spouse of',107,'Spouse of',1,NULL,NULL,NULL), - (361,181,1,'a_b',85,'Child of',55,'Parent of',1,NULL,NULL,NULL), - (362,181,1,'b_a',55,'Parent of',85,'Child of',1,NULL,NULL,NULL), - (363,182,1,'a_b',56,'Child of',55,'Parent of',1,NULL,NULL,NULL), - (364,182,1,'b_a',55,'Parent of',56,'Child of',1,NULL,NULL,NULL), - (365,183,1,'a_b',85,'Child of',18,'Parent of',1,NULL,NULL,NULL), - (366,183,1,'b_a',18,'Parent of',85,'Child of',1,NULL,NULL,NULL), - (367,184,1,'a_b',56,'Child of',18,'Parent of',1,NULL,NULL,NULL), - (368,184,1,'b_a',18,'Parent of',56,'Child of',1,NULL,NULL,NULL), - (369,185,4,'a_b',56,'Sibling of',85,'Sibling of',1,NULL,NULL,NULL), - (370,185,4,'b_a',85,'Sibling of',56,'Sibling of',1,NULL,NULL,NULL), - (371,186,8,'a_b',18,'Household Member of',19,'Household Member is',1,NULL,NULL,NULL), - (372,186,8,'b_a',19,'Household Member is',18,'Household Member of',1,NULL,NULL,NULL), - (373,187,8,'a_b',85,'Household Member of',19,'Household Member is',1,NULL,NULL,NULL), - (374,187,8,'b_a',19,'Household Member is',85,'Household Member of',1,NULL,NULL,NULL), - (375,188,8,'a_b',56,'Household Member of',19,'Household Member is',1,NULL,NULL,NULL), - (376,188,8,'b_a',19,'Household Member is',56,'Household Member of',1,NULL,NULL,NULL), - (377,189,7,'a_b',55,'Head of Household for',19,'Head of Household is',1,NULL,NULL,NULL), - (378,189,7,'b_a',19,'Head of Household is',55,'Head of Household for',1,NULL,NULL,NULL), - (379,190,2,'a_b',18,'Spouse of',55,'Spouse of',1,NULL,NULL,NULL), - (380,190,2,'b_a',55,'Spouse of',18,'Spouse of',1,NULL,NULL,NULL), - (381,191,1,'a_b',193,'Child of',28,'Parent of',1,NULL,NULL,NULL), - (382,191,1,'b_a',28,'Parent of',193,'Child of',1,NULL,NULL,NULL), - (383,192,1,'a_b',168,'Child of',28,'Parent of',1,NULL,NULL,NULL), - (384,192,1,'b_a',28,'Parent of',168,'Child of',1,NULL,NULL,NULL), - (385,193,1,'a_b',193,'Child of',22,'Parent of',1,NULL,NULL,NULL), - (386,193,1,'b_a',22,'Parent of',193,'Child of',1,NULL,NULL,NULL), - (387,194,1,'a_b',168,'Child of',22,'Parent of',1,NULL,NULL,NULL), - (388,194,1,'b_a',22,'Parent of',168,'Child of',1,NULL,NULL,NULL), - (389,195,4,'a_b',168,'Sibling of',193,'Sibling of',1,NULL,NULL,NULL), - (390,195,4,'b_a',193,'Sibling of',168,'Sibling of',1,NULL,NULL,NULL), - (391,196,8,'a_b',22,'Household Member of',38,'Household Member is',1,NULL,NULL,NULL), - (392,196,8,'b_a',38,'Household Member is',22,'Household Member of',1,NULL,NULL,NULL), - (393,197,8,'a_b',193,'Household Member of',38,'Household Member is',1,NULL,NULL,NULL), - (394,197,8,'b_a',38,'Household Member is',193,'Household Member of',1,NULL,NULL,NULL), - (395,198,8,'a_b',168,'Household Member of',38,'Household Member is',1,NULL,NULL,NULL), - (396,198,8,'b_a',38,'Household Member is',168,'Household Member of',1,NULL,NULL,NULL), - (397,199,7,'a_b',28,'Head of Household for',38,'Head of Household is',1,NULL,NULL,NULL), - (398,199,7,'b_a',38,'Head of Household is',28,'Head of Household for',1,NULL,NULL,NULL), - (399,200,2,'a_b',22,'Spouse of',28,'Spouse of',1,NULL,NULL,NULL), - (400,200,2,'b_a',28,'Spouse of',22,'Spouse of',1,NULL,NULL,NULL), - (401,201,5,'a_b',183,'Employee of',2,'Employer of',1,NULL,NULL,NULL), - (402,201,5,'b_a',2,'Employer of',183,'Employee of',1,NULL,NULL,NULL), - (403,202,5,'a_b',168,'Employee of',4,'Employer of',1,NULL,NULL,NULL), - (404,202,5,'b_a',4,'Employer of',168,'Employee of',1,NULL,NULL,NULL), - (405,203,5,'a_b',48,'Employee of',7,'Employer of',1,NULL,NULL,NULL), - (406,203,5,'b_a',7,'Employer of',48,'Employee of',1,NULL,NULL,NULL), - (407,204,5,'a_b',137,'Employee of',8,'Employer of',1,NULL,NULL,NULL), - (408,204,5,'b_a',8,'Employer of',137,'Employee of',1,NULL,NULL,NULL), - (409,205,5,'a_b',175,'Employee of',36,'Employer of',1,NULL,NULL,NULL), - (410,205,5,'b_a',36,'Employer of',175,'Employee of',1,NULL,NULL,NULL), - (411,206,5,'a_b',110,'Employee of',37,'Employer of',1,NULL,NULL,NULL), - (412,206,5,'b_a',37,'Employer of',110,'Employee of',1,NULL,NULL,NULL), - (413,207,5,'a_b',145,'Employee of',49,'Employer of',1,NULL,NULL,NULL), - (414,207,5,'b_a',49,'Employer of',145,'Employee of',1,NULL,NULL,NULL), - (415,208,5,'a_b',83,'Employee of',66,'Employer of',1,NULL,NULL,NULL), - (416,208,5,'b_a',66,'Employer of',83,'Employee of',1,NULL,NULL,NULL), - (417,209,5,'a_b',141,'Employee of',76,'Employer of',1,NULL,NULL,NULL), - (418,209,5,'b_a',76,'Employer of',141,'Employee of',1,NULL,NULL,NULL), - (419,210,5,'a_b',100,'Employee of',94,'Employer of',1,NULL,NULL,NULL), - (420,210,5,'b_a',94,'Employer of',100,'Employee of',1,NULL,NULL,NULL), - (421,211,5,'a_b',40,'Employee of',98,'Employer of',1,NULL,NULL,NULL), - (422,211,5,'b_a',98,'Employer of',40,'Employee of',1,NULL,NULL,NULL), - (423,212,5,'a_b',138,'Employee of',101,'Employer of',1,NULL,NULL,NULL), - (424,212,5,'b_a',101,'Employer of',138,'Employee of',1,NULL,NULL,NULL), - (425,213,5,'a_b',154,'Employee of',115,'Employer of',1,NULL,NULL,NULL), - (426,213,5,'b_a',115,'Employer of',154,'Employee of',1,NULL,NULL,NULL), - (427,214,5,'a_b',181,'Employee of',119,'Employer of',1,NULL,NULL,NULL), - (428,214,5,'b_a',119,'Employer of',181,'Employee of',1,NULL,NULL,NULL), - (429,215,5,'a_b',126,'Employee of',121,'Employer of',1,NULL,NULL,NULL), - (430,215,5,'b_a',121,'Employer of',126,'Employee of',1,NULL,NULL,NULL), - (431,216,5,'a_b',185,'Employee of',124,'Employer of',1,NULL,NULL,NULL), - (432,216,5,'b_a',124,'Employer of',185,'Employee of',1,NULL,NULL,NULL), - (433,217,5,'a_b',96,'Employee of',140,'Employer of',1,NULL,NULL,NULL), - (434,217,5,'b_a',140,'Employer of',96,'Employee of',1,NULL,NULL,NULL), - (435,218,5,'a_b',104,'Employee of',186,'Employer of',1,NULL,NULL,NULL), - (436,218,5,'b_a',186,'Employer of',104,'Employee of',1,NULL,NULL,NULL); + (1,1,1,'a_b',13,'Child of',190,'Parent of',1,NULL,NULL,NULL), + (2,1,1,'b_a',190,'Parent of',13,'Child of',1,NULL,NULL,NULL), + (3,2,1,'a_b',53,'Child of',190,'Parent of',1,NULL,NULL,NULL), + (4,2,1,'b_a',190,'Parent of',53,'Child of',1,NULL,NULL,NULL), + (5,3,1,'a_b',13,'Child of',85,'Parent of',1,NULL,NULL,NULL), + (6,3,1,'b_a',85,'Parent of',13,'Child of',1,NULL,NULL,NULL), + (7,4,1,'a_b',53,'Child of',85,'Parent of',1,NULL,NULL,NULL), + (8,4,1,'b_a',85,'Parent of',53,'Child of',1,NULL,NULL,NULL), + (9,5,4,'a_b',53,'Sibling of',13,'Sibling of',1,NULL,NULL,NULL), + (10,5,4,'b_a',13,'Sibling of',53,'Sibling of',1,NULL,NULL,NULL), + (11,6,8,'a_b',85,'Household Member of',10,'Household Member is',1,NULL,NULL,NULL), + (12,6,8,'b_a',10,'Household Member is',85,'Household Member of',1,NULL,NULL,NULL), + (13,7,8,'a_b',13,'Household Member of',10,'Household Member is',1,NULL,NULL,NULL), + (14,7,8,'b_a',10,'Household Member is',13,'Household Member of',1,NULL,NULL,NULL), + (15,8,8,'a_b',53,'Household Member of',10,'Household Member is',1,NULL,NULL,NULL), + (16,8,8,'b_a',10,'Household Member is',53,'Household Member of',1,NULL,NULL,NULL), + (17,9,7,'a_b',190,'Head of Household for',10,'Head of Household is',0,NULL,NULL,NULL), + (18,9,7,'b_a',10,'Head of Household is',190,'Head of Household for',0,NULL,NULL,NULL), + (19,10,2,'a_b',85,'Spouse of',190,'Spouse of',0,NULL,NULL,NULL), + (20,10,2,'b_a',190,'Spouse of',85,'Spouse of',0,NULL,NULL,NULL), + (21,11,1,'a_b',154,'Child of',58,'Parent of',1,NULL,NULL,NULL), + (22,11,1,'b_a',58,'Parent of',154,'Child of',1,NULL,NULL,NULL), + (23,12,1,'a_b',23,'Child of',58,'Parent of',1,NULL,NULL,NULL), + (24,12,1,'b_a',58,'Parent of',23,'Child of',1,NULL,NULL,NULL), + (25,13,1,'a_b',154,'Child of',106,'Parent of',1,NULL,NULL,NULL), + (26,13,1,'b_a',106,'Parent of',154,'Child of',1,NULL,NULL,NULL), + (27,14,1,'a_b',23,'Child of',106,'Parent of',1,NULL,NULL,NULL), + (28,14,1,'b_a',106,'Parent of',23,'Child of',1,NULL,NULL,NULL), + (29,15,4,'a_b',23,'Sibling of',154,'Sibling of',1,NULL,NULL,NULL), + (30,15,4,'b_a',154,'Sibling of',23,'Sibling of',1,NULL,NULL,NULL), + (31,16,8,'a_b',106,'Household Member of',156,'Household Member is',1,NULL,NULL,NULL), + (32,16,8,'b_a',156,'Household Member is',106,'Household Member of',1,NULL,NULL,NULL), + (33,17,8,'a_b',154,'Household Member of',156,'Household Member is',1,NULL,NULL,NULL), + (34,17,8,'b_a',156,'Household Member is',154,'Household Member of',1,NULL,NULL,NULL), + (35,18,8,'a_b',23,'Household Member of',156,'Household Member is',1,NULL,NULL,NULL), + (36,18,8,'b_a',156,'Household Member is',23,'Household Member of',1,NULL,NULL,NULL), + (37,19,7,'a_b',58,'Head of Household for',156,'Head of Household is',1,NULL,NULL,NULL), + (38,19,7,'b_a',156,'Head of Household is',58,'Head of Household for',1,NULL,NULL,NULL), + (39,20,2,'a_b',106,'Spouse of',58,'Spouse of',1,NULL,NULL,NULL), + (40,20,2,'b_a',58,'Spouse of',106,'Spouse of',1,NULL,NULL,NULL), + (41,21,1,'a_b',30,'Child of',151,'Parent of',1,NULL,NULL,NULL), + (42,21,1,'b_a',151,'Parent of',30,'Child of',1,NULL,NULL,NULL), + (43,22,1,'a_b',15,'Child of',151,'Parent of',1,NULL,NULL,NULL), + (44,22,1,'b_a',151,'Parent of',15,'Child of',1,NULL,NULL,NULL), + (45,23,1,'a_b',30,'Child of',20,'Parent of',1,NULL,NULL,NULL), + (46,23,1,'b_a',20,'Parent of',30,'Child of',1,NULL,NULL,NULL), + (47,24,1,'a_b',15,'Child of',20,'Parent of',1,NULL,NULL,NULL), + (48,24,1,'b_a',20,'Parent of',15,'Child of',1,NULL,NULL,NULL), + (49,25,4,'a_b',15,'Sibling of',30,'Sibling of',1,NULL,NULL,NULL), + (50,25,4,'b_a',30,'Sibling of',15,'Sibling of',1,NULL,NULL,NULL), + (51,26,8,'a_b',20,'Household Member of',131,'Household Member is',1,NULL,NULL,NULL), + (52,26,8,'b_a',131,'Household Member is',20,'Household Member of',1,NULL,NULL,NULL), + (53,27,8,'a_b',30,'Household Member of',131,'Household Member is',1,NULL,NULL,NULL), + (54,27,8,'b_a',131,'Household Member is',30,'Household Member of',1,NULL,NULL,NULL), + (55,28,8,'a_b',15,'Household Member of',131,'Household Member is',1,NULL,NULL,NULL), + (56,28,8,'b_a',131,'Household Member is',15,'Household Member of',1,NULL,NULL,NULL), + (57,29,7,'a_b',151,'Head of Household for',131,'Head of Household is',0,NULL,NULL,NULL), + (58,29,7,'b_a',131,'Head of Household is',151,'Head of Household for',0,NULL,NULL,NULL), + (59,30,2,'a_b',20,'Spouse of',151,'Spouse of',0,NULL,NULL,NULL), + (60,30,2,'b_a',151,'Spouse of',20,'Spouse of',0,NULL,NULL,NULL), + (61,31,1,'a_b',140,'Child of',50,'Parent of',1,NULL,NULL,NULL), + (62,31,1,'b_a',50,'Parent of',140,'Child of',1,NULL,NULL,NULL), + (63,32,1,'a_b',87,'Child of',50,'Parent of',1,NULL,NULL,NULL), + (64,32,1,'b_a',50,'Parent of',87,'Child of',1,NULL,NULL,NULL), + (65,33,1,'a_b',140,'Child of',194,'Parent of',1,NULL,NULL,NULL), + (66,33,1,'b_a',194,'Parent of',140,'Child of',1,NULL,NULL,NULL), + (67,34,1,'a_b',87,'Child of',194,'Parent of',1,NULL,NULL,NULL), + (68,34,1,'b_a',194,'Parent of',87,'Child of',1,NULL,NULL,NULL), + (69,35,4,'a_b',87,'Sibling of',140,'Sibling of',1,NULL,NULL,NULL), + (70,35,4,'b_a',140,'Sibling of',87,'Sibling of',1,NULL,NULL,NULL), + (71,36,8,'a_b',194,'Household Member of',118,'Household Member is',1,NULL,NULL,NULL), + (72,36,8,'b_a',118,'Household Member is',194,'Household Member of',1,NULL,NULL,NULL), + (73,37,8,'a_b',140,'Household Member of',118,'Household Member is',1,NULL,NULL,NULL), + (74,37,8,'b_a',118,'Household Member is',140,'Household Member of',1,NULL,NULL,NULL), + (75,38,8,'a_b',87,'Household Member of',118,'Household Member is',1,NULL,NULL,NULL), + (76,38,8,'b_a',118,'Household Member is',87,'Household Member of',1,NULL,NULL,NULL), + (77,39,7,'a_b',50,'Head of Household for',118,'Head of Household is',0,NULL,NULL,NULL), + (78,39,7,'b_a',118,'Head of Household is',50,'Head of Household for',0,NULL,NULL,NULL), + (79,40,2,'a_b',194,'Spouse of',50,'Spouse of',0,NULL,NULL,NULL), + (80,40,2,'b_a',50,'Spouse of',194,'Spouse of',0,NULL,NULL,NULL), + (81,41,1,'a_b',8,'Child of',18,'Parent of',1,NULL,NULL,NULL), + (82,41,1,'b_a',18,'Parent of',8,'Child of',1,NULL,NULL,NULL), + (83,42,1,'a_b',189,'Child of',18,'Parent of',1,NULL,NULL,NULL), + (84,42,1,'b_a',18,'Parent of',189,'Child of',1,NULL,NULL,NULL), + (85,43,1,'a_b',8,'Child of',63,'Parent of',1,NULL,NULL,NULL), + (86,43,1,'b_a',63,'Parent of',8,'Child of',1,NULL,NULL,NULL), + (87,44,1,'a_b',189,'Child of',63,'Parent of',1,NULL,NULL,NULL), + (88,44,1,'b_a',63,'Parent of',189,'Child of',1,NULL,NULL,NULL), + (89,45,4,'a_b',189,'Sibling of',8,'Sibling of',1,NULL,NULL,NULL), + (90,45,4,'b_a',8,'Sibling of',189,'Sibling of',1,NULL,NULL,NULL), + (91,46,8,'a_b',63,'Household Member of',5,'Household Member is',1,NULL,NULL,NULL), + (92,46,8,'b_a',5,'Household Member is',63,'Household Member of',1,NULL,NULL,NULL), + (93,47,8,'a_b',8,'Household Member of',5,'Household Member is',1,NULL,NULL,NULL), + (94,47,8,'b_a',5,'Household Member is',8,'Household Member of',1,NULL,NULL,NULL), + (95,48,8,'a_b',189,'Household Member of',5,'Household Member is',1,NULL,NULL,NULL), + (96,48,8,'b_a',5,'Household Member is',189,'Household Member of',1,NULL,NULL,NULL), + (97,49,7,'a_b',18,'Head of Household for',5,'Head of Household is',0,NULL,NULL,NULL), + (98,49,7,'b_a',5,'Head of Household is',18,'Head of Household for',0,NULL,NULL,NULL), + (99,50,2,'a_b',63,'Spouse of',18,'Spouse of',0,NULL,NULL,NULL), + (100,50,2,'b_a',18,'Spouse of',63,'Spouse of',0,NULL,NULL,NULL), + (101,51,1,'a_b',137,'Child of',80,'Parent of',1,NULL,NULL,NULL), + (102,51,1,'b_a',80,'Parent of',137,'Child of',1,NULL,NULL,NULL), + (103,52,1,'a_b',126,'Child of',80,'Parent of',1,NULL,NULL,NULL), + (104,52,1,'b_a',80,'Parent of',126,'Child of',1,NULL,NULL,NULL), + (105,53,1,'a_b',137,'Child of',104,'Parent of',1,NULL,NULL,NULL), + (106,53,1,'b_a',104,'Parent of',137,'Child of',1,NULL,NULL,NULL), + (107,54,1,'a_b',126,'Child of',104,'Parent of',1,NULL,NULL,NULL), + (108,54,1,'b_a',104,'Parent of',126,'Child of',1,NULL,NULL,NULL), + (109,55,4,'a_b',126,'Sibling of',137,'Sibling of',1,NULL,NULL,NULL), + (110,55,4,'b_a',137,'Sibling of',126,'Sibling of',1,NULL,NULL,NULL), + (111,56,8,'a_b',104,'Household Member of',113,'Household Member is',1,NULL,NULL,NULL), + (112,56,8,'b_a',113,'Household Member is',104,'Household Member of',1,NULL,NULL,NULL), + (113,57,8,'a_b',137,'Household Member of',113,'Household Member is',1,NULL,NULL,NULL), + (114,57,8,'b_a',113,'Household Member is',137,'Household Member of',1,NULL,NULL,NULL), + (115,58,8,'a_b',126,'Household Member of',113,'Household Member is',1,NULL,NULL,NULL), + (116,58,8,'b_a',113,'Household Member is',126,'Household Member of',1,NULL,NULL,NULL), + (117,59,7,'a_b',80,'Head of Household for',113,'Head of Household is',0,NULL,NULL,NULL), + (118,59,7,'b_a',113,'Head of Household is',80,'Head of Household for',0,NULL,NULL,NULL), + (119,60,2,'a_b',104,'Spouse of',80,'Spouse of',0,NULL,NULL,NULL), + (120,60,2,'b_a',80,'Spouse of',104,'Spouse of',0,NULL,NULL,NULL), + (121,61,1,'a_b',35,'Child of',163,'Parent of',1,NULL,NULL,NULL), + (122,61,1,'b_a',163,'Parent of',35,'Child of',1,NULL,NULL,NULL), + (123,62,1,'a_b',3,'Child of',163,'Parent of',1,NULL,NULL,NULL), + (124,62,1,'b_a',163,'Parent of',3,'Child of',1,NULL,NULL,NULL), + (125,63,1,'a_b',35,'Child of',27,'Parent of',1,NULL,NULL,NULL), + (126,63,1,'b_a',27,'Parent of',35,'Child of',1,NULL,NULL,NULL), + (127,64,1,'a_b',3,'Child of',27,'Parent of',1,NULL,NULL,NULL), + (128,64,1,'b_a',27,'Parent of',3,'Child of',1,NULL,NULL,NULL), + (129,65,4,'a_b',3,'Sibling of',35,'Sibling of',1,NULL,NULL,NULL), + (130,65,4,'b_a',35,'Sibling of',3,'Sibling of',1,NULL,NULL,NULL), + (131,66,8,'a_b',27,'Household Member of',149,'Household Member is',1,NULL,NULL,NULL), + (132,66,8,'b_a',149,'Household Member is',27,'Household Member of',1,NULL,NULL,NULL), + (133,67,8,'a_b',35,'Household Member of',149,'Household Member is',1,NULL,NULL,NULL), + (134,67,8,'b_a',149,'Household Member is',35,'Household Member of',1,NULL,NULL,NULL), + (135,68,8,'a_b',3,'Household Member of',149,'Household Member is',1,NULL,NULL,NULL), + (136,68,8,'b_a',149,'Household Member is',3,'Household Member of',1,NULL,NULL,NULL), + (137,69,7,'a_b',163,'Head of Household for',149,'Head of Household is',0,NULL,NULL,NULL), + (138,69,7,'b_a',149,'Head of Household is',163,'Head of Household for',0,NULL,NULL,NULL), + (139,70,2,'a_b',27,'Spouse of',163,'Spouse of',0,NULL,NULL,NULL), + (140,70,2,'b_a',163,'Spouse of',27,'Spouse of',0,NULL,NULL,NULL), + (141,71,1,'a_b',191,'Child of',147,'Parent of',1,NULL,NULL,NULL), + (142,71,1,'b_a',147,'Parent of',191,'Child of',1,NULL,NULL,NULL), + (143,72,1,'a_b',122,'Child of',147,'Parent of',1,NULL,NULL,NULL), + (144,72,1,'b_a',147,'Parent of',122,'Child of',1,NULL,NULL,NULL), + (145,73,1,'a_b',191,'Child of',164,'Parent of',1,NULL,NULL,NULL), + (146,73,1,'b_a',164,'Parent of',191,'Child of',1,NULL,NULL,NULL), + (147,74,1,'a_b',122,'Child of',164,'Parent of',1,NULL,NULL,NULL), + (148,74,1,'b_a',164,'Parent of',122,'Child of',1,NULL,NULL,NULL), + (149,75,4,'a_b',122,'Sibling of',191,'Sibling of',1,NULL,NULL,NULL), + (150,75,4,'b_a',191,'Sibling of',122,'Sibling of',1,NULL,NULL,NULL), + (151,76,8,'a_b',164,'Household Member of',134,'Household Member is',1,NULL,NULL,NULL), + (152,76,8,'b_a',134,'Household Member is',164,'Household Member of',1,NULL,NULL,NULL), + (153,77,8,'a_b',191,'Household Member of',134,'Household Member is',1,NULL,NULL,NULL), + (154,77,8,'b_a',134,'Household Member is',191,'Household Member of',1,NULL,NULL,NULL), + (155,78,8,'a_b',122,'Household Member of',134,'Household Member is',1,NULL,NULL,NULL), + (156,78,8,'b_a',134,'Household Member is',122,'Household Member of',1,NULL,NULL,NULL), + (157,79,7,'a_b',147,'Head of Household for',134,'Head of Household is',1,NULL,NULL,NULL), + (158,79,7,'b_a',134,'Head of Household is',147,'Head of Household for',1,NULL,NULL,NULL), + (159,80,2,'a_b',164,'Spouse of',147,'Spouse of',1,NULL,NULL,NULL), + (160,80,2,'b_a',147,'Spouse of',164,'Spouse of',1,NULL,NULL,NULL), + (161,81,1,'a_b',150,'Child of',16,'Parent of',1,NULL,NULL,NULL), + (162,81,1,'b_a',16,'Parent of',150,'Child of',1,NULL,NULL,NULL), + (163,82,1,'a_b',127,'Child of',16,'Parent of',1,NULL,NULL,NULL), + (164,82,1,'b_a',16,'Parent of',127,'Child of',1,NULL,NULL,NULL), + (165,83,1,'a_b',150,'Child of',81,'Parent of',1,NULL,NULL,NULL), + (166,83,1,'b_a',81,'Parent of',150,'Child of',1,NULL,NULL,NULL), + (167,84,1,'a_b',127,'Child of',81,'Parent of',1,NULL,NULL,NULL), + (168,84,1,'b_a',81,'Parent of',127,'Child of',1,NULL,NULL,NULL), + (169,85,4,'a_b',127,'Sibling of',150,'Sibling of',1,NULL,NULL,NULL), + (170,85,4,'b_a',150,'Sibling of',127,'Sibling of',1,NULL,NULL,NULL), + (171,86,8,'a_b',81,'Household Member of',92,'Household Member is',1,NULL,NULL,NULL), + (172,86,8,'b_a',92,'Household Member is',81,'Household Member of',1,NULL,NULL,NULL), + (173,87,8,'a_b',150,'Household Member of',92,'Household Member is',1,NULL,NULL,NULL), + (174,87,8,'b_a',92,'Household Member is',150,'Household Member of',1,NULL,NULL,NULL), + (175,88,8,'a_b',127,'Household Member of',92,'Household Member is',1,NULL,NULL,NULL), + (176,88,8,'b_a',92,'Household Member is',127,'Household Member of',1,NULL,NULL,NULL), + (177,89,7,'a_b',16,'Head of Household for',92,'Head of Household is',1,NULL,NULL,NULL), + (178,89,7,'b_a',92,'Head of Household is',16,'Head of Household for',1,NULL,NULL,NULL), + (179,90,2,'a_b',81,'Spouse of',16,'Spouse of',1,NULL,NULL,NULL), + (180,90,2,'b_a',16,'Spouse of',81,'Spouse of',1,NULL,NULL,NULL), + (181,91,1,'a_b',125,'Child of',95,'Parent of',1,NULL,NULL,NULL), + (182,91,1,'b_a',95,'Parent of',125,'Child of',1,NULL,NULL,NULL), + (183,92,1,'a_b',17,'Child of',95,'Parent of',1,NULL,NULL,NULL), + (184,92,1,'b_a',95,'Parent of',17,'Child of',1,NULL,NULL,NULL), + (185,93,1,'a_b',125,'Child of',72,'Parent of',1,NULL,NULL,NULL), + (186,93,1,'b_a',72,'Parent of',125,'Child of',1,NULL,NULL,NULL), + (187,94,1,'a_b',17,'Child of',72,'Parent of',1,NULL,NULL,NULL), + (188,94,1,'b_a',72,'Parent of',17,'Child of',1,NULL,NULL,NULL), + (189,95,4,'a_b',17,'Sibling of',125,'Sibling of',1,NULL,NULL,NULL), + (190,95,4,'b_a',125,'Sibling of',17,'Sibling of',1,NULL,NULL,NULL), + (191,96,8,'a_b',72,'Household Member of',14,'Household Member is',1,NULL,NULL,NULL), + (192,96,8,'b_a',14,'Household Member is',72,'Household Member of',1,NULL,NULL,NULL), + (193,97,8,'a_b',125,'Household Member of',14,'Household Member is',1,NULL,NULL,NULL), + (194,97,8,'b_a',14,'Household Member is',125,'Household Member of',1,NULL,NULL,NULL), + (195,98,8,'a_b',17,'Household Member of',14,'Household Member is',1,NULL,NULL,NULL), + (196,98,8,'b_a',14,'Household Member is',17,'Household Member of',1,NULL,NULL,NULL), + (197,99,7,'a_b',95,'Head of Household for',14,'Head of Household is',0,NULL,NULL,NULL), + (198,99,7,'b_a',14,'Head of Household is',95,'Head of Household for',0,NULL,NULL,NULL), + (199,100,2,'a_b',72,'Spouse of',95,'Spouse of',0,NULL,NULL,NULL), + (200,100,2,'b_a',95,'Spouse of',72,'Spouse of',0,NULL,NULL,NULL), + (201,101,1,'a_b',88,'Child of',173,'Parent of',1,NULL,NULL,NULL), + (202,101,1,'b_a',173,'Parent of',88,'Child of',1,NULL,NULL,NULL), + (203,102,1,'a_b',77,'Child of',173,'Parent of',1,NULL,NULL,NULL), + (204,102,1,'b_a',173,'Parent of',77,'Child of',1,NULL,NULL,NULL), + (205,103,1,'a_b',88,'Child of',139,'Parent of',1,NULL,NULL,NULL), + (206,103,1,'b_a',139,'Parent of',88,'Child of',1,NULL,NULL,NULL), + (207,104,1,'a_b',77,'Child of',139,'Parent of',1,NULL,NULL,NULL), + (208,104,1,'b_a',139,'Parent of',77,'Child of',1,NULL,NULL,NULL), + (209,105,4,'a_b',77,'Sibling of',88,'Sibling of',1,NULL,NULL,NULL), + (210,105,4,'b_a',88,'Sibling of',77,'Sibling of',1,NULL,NULL,NULL), + (211,106,8,'a_b',139,'Household Member of',201,'Household Member is',1,NULL,NULL,NULL), + (212,106,8,'b_a',201,'Household Member is',139,'Household Member of',1,NULL,NULL,NULL), + (213,107,8,'a_b',88,'Household Member of',201,'Household Member is',1,NULL,NULL,NULL), + (214,107,8,'b_a',201,'Household Member is',88,'Household Member of',1,NULL,NULL,NULL), + (215,108,8,'a_b',77,'Household Member of',201,'Household Member is',1,NULL,NULL,NULL), + (216,108,8,'b_a',201,'Household Member is',77,'Household Member of',1,NULL,NULL,NULL), + (217,109,7,'a_b',173,'Head of Household for',201,'Head of Household is',1,NULL,NULL,NULL), + (218,109,7,'b_a',201,'Head of Household is',173,'Head of Household for',1,NULL,NULL,NULL), + (219,110,2,'a_b',139,'Spouse of',173,'Spouse of',1,NULL,NULL,NULL), + (220,110,2,'b_a',173,'Spouse of',139,'Spouse of',1,NULL,NULL,NULL), + (221,111,1,'a_b',116,'Child of',31,'Parent of',1,NULL,NULL,NULL), + (222,111,1,'b_a',31,'Parent of',116,'Child of',1,NULL,NULL,NULL), + (223,112,1,'a_b',29,'Child of',31,'Parent of',1,NULL,NULL,NULL), + (224,112,1,'b_a',31,'Parent of',29,'Child of',1,NULL,NULL,NULL), + (225,113,1,'a_b',116,'Child of',99,'Parent of',1,NULL,NULL,NULL), + (226,113,1,'b_a',99,'Parent of',116,'Child of',1,NULL,NULL,NULL), + (227,114,1,'a_b',29,'Child of',99,'Parent of',1,NULL,NULL,NULL), + (228,114,1,'b_a',99,'Parent of',29,'Child of',1,NULL,NULL,NULL), + (229,115,4,'a_b',29,'Sibling of',116,'Sibling of',1,NULL,NULL,NULL), + (230,115,4,'b_a',116,'Sibling of',29,'Sibling of',1,NULL,NULL,NULL), + (231,116,8,'a_b',99,'Household Member of',161,'Household Member is',1,NULL,NULL,NULL), + (232,116,8,'b_a',161,'Household Member is',99,'Household Member of',1,NULL,NULL,NULL), + (233,117,8,'a_b',116,'Household Member of',161,'Household Member is',1,NULL,NULL,NULL), + (234,117,8,'b_a',161,'Household Member is',116,'Household Member of',1,NULL,NULL,NULL), + (235,118,8,'a_b',29,'Household Member of',161,'Household Member is',1,NULL,NULL,NULL), + (236,118,8,'b_a',161,'Household Member is',29,'Household Member of',1,NULL,NULL,NULL), + (237,119,7,'a_b',31,'Head of Household for',161,'Head of Household is',0,NULL,NULL,NULL), + (238,119,7,'b_a',161,'Head of Household is',31,'Head of Household for',0,NULL,NULL,NULL), + (239,120,2,'a_b',99,'Spouse of',31,'Spouse of',0,NULL,NULL,NULL), + (240,120,2,'b_a',31,'Spouse of',99,'Spouse of',0,NULL,NULL,NULL), + (241,121,1,'a_b',170,'Child of',86,'Parent of',1,NULL,NULL,NULL), + (242,121,1,'b_a',86,'Parent of',170,'Child of',1,NULL,NULL,NULL), + (243,122,1,'a_b',38,'Child of',86,'Parent of',1,NULL,NULL,NULL), + (244,122,1,'b_a',86,'Parent of',38,'Child of',1,NULL,NULL,NULL), + (245,123,1,'a_b',170,'Child of',60,'Parent of',1,NULL,NULL,NULL), + (246,123,1,'b_a',60,'Parent of',170,'Child of',1,NULL,NULL,NULL), + (247,124,1,'a_b',38,'Child of',60,'Parent of',1,NULL,NULL,NULL), + (248,124,1,'b_a',60,'Parent of',38,'Child of',1,NULL,NULL,NULL), + (249,125,4,'a_b',38,'Sibling of',170,'Sibling of',1,NULL,NULL,NULL), + (250,125,4,'b_a',170,'Sibling of',38,'Sibling of',1,NULL,NULL,NULL), + (251,126,8,'a_b',60,'Household Member of',68,'Household Member is',1,NULL,NULL,NULL), + (252,126,8,'b_a',68,'Household Member is',60,'Household Member of',1,NULL,NULL,NULL), + (253,127,8,'a_b',170,'Household Member of',68,'Household Member is',1,NULL,NULL,NULL), + (254,127,8,'b_a',68,'Household Member is',170,'Household Member of',1,NULL,NULL,NULL), + (255,128,8,'a_b',38,'Household Member of',68,'Household Member is',1,NULL,NULL,NULL), + (256,128,8,'b_a',68,'Household Member is',38,'Household Member of',1,NULL,NULL,NULL), + (257,129,7,'a_b',86,'Head of Household for',68,'Head of Household is',1,NULL,NULL,NULL), + (258,129,7,'b_a',68,'Head of Household is',86,'Head of Household for',1,NULL,NULL,NULL), + (259,130,2,'a_b',60,'Spouse of',86,'Spouse of',1,NULL,NULL,NULL), + (260,130,2,'b_a',86,'Spouse of',60,'Spouse of',1,NULL,NULL,NULL), + (261,131,1,'a_b',94,'Child of',7,'Parent of',1,NULL,NULL,NULL), + (262,131,1,'b_a',7,'Parent of',94,'Child of',1,NULL,NULL,NULL), + (263,132,1,'a_b',195,'Child of',7,'Parent of',1,NULL,NULL,NULL), + (264,132,1,'b_a',7,'Parent of',195,'Child of',1,NULL,NULL,NULL), + (265,133,1,'a_b',94,'Child of',65,'Parent of',1,NULL,NULL,NULL), + (266,133,1,'b_a',65,'Parent of',94,'Child of',1,NULL,NULL,NULL), + (267,134,1,'a_b',195,'Child of',65,'Parent of',1,NULL,NULL,NULL), + (268,134,1,'b_a',65,'Parent of',195,'Child of',1,NULL,NULL,NULL), + (269,135,4,'a_b',195,'Sibling of',94,'Sibling of',1,NULL,NULL,NULL), + (270,135,4,'b_a',94,'Sibling of',195,'Sibling of',1,NULL,NULL,NULL), + (271,136,8,'a_b',65,'Household Member of',52,'Household Member is',1,NULL,NULL,NULL), + (272,136,8,'b_a',52,'Household Member is',65,'Household Member of',1,NULL,NULL,NULL), + (273,137,8,'a_b',94,'Household Member of',52,'Household Member is',1,NULL,NULL,NULL), + (274,137,8,'b_a',52,'Household Member is',94,'Household Member of',1,NULL,NULL,NULL), + (275,138,8,'a_b',195,'Household Member of',52,'Household Member is',1,NULL,NULL,NULL), + (276,138,8,'b_a',52,'Household Member is',195,'Household Member of',1,NULL,NULL,NULL), + (277,139,7,'a_b',7,'Head of Household for',52,'Head of Household is',0,NULL,NULL,NULL), + (278,139,7,'b_a',52,'Head of Household is',7,'Head of Household for',0,NULL,NULL,NULL), + (279,140,2,'a_b',65,'Spouse of',7,'Spouse of',0,NULL,NULL,NULL), + (280,140,2,'b_a',7,'Spouse of',65,'Spouse of',0,NULL,NULL,NULL), + (281,141,1,'a_b',176,'Child of',45,'Parent of',1,NULL,NULL,NULL), + (282,141,1,'b_a',45,'Parent of',176,'Child of',1,NULL,NULL,NULL), + (283,142,1,'a_b',36,'Child of',45,'Parent of',1,NULL,NULL,NULL), + (284,142,1,'b_a',45,'Parent of',36,'Child of',1,NULL,NULL,NULL), + (285,143,1,'a_b',176,'Child of',42,'Parent of',1,NULL,NULL,NULL), + (286,143,1,'b_a',42,'Parent of',176,'Child of',1,NULL,NULL,NULL), + (287,144,1,'a_b',36,'Child of',42,'Parent of',1,NULL,NULL,NULL), + (288,144,1,'b_a',42,'Parent of',36,'Child of',1,NULL,NULL,NULL), + (289,145,4,'a_b',36,'Sibling of',176,'Sibling of',1,NULL,NULL,NULL), + (290,145,4,'b_a',176,'Sibling of',36,'Sibling of',1,NULL,NULL,NULL), + (291,146,8,'a_b',42,'Household Member of',6,'Household Member is',1,NULL,NULL,NULL), + (292,146,8,'b_a',6,'Household Member is',42,'Household Member of',1,NULL,NULL,NULL), + (293,147,8,'a_b',176,'Household Member of',6,'Household Member is',1,NULL,NULL,NULL), + (294,147,8,'b_a',6,'Household Member is',176,'Household Member of',1,NULL,NULL,NULL), + (295,148,8,'a_b',36,'Household Member of',6,'Household Member is',1,NULL,NULL,NULL), + (296,148,8,'b_a',6,'Household Member is',36,'Household Member of',1,NULL,NULL,NULL), + (297,149,7,'a_b',45,'Head of Household for',6,'Head of Household is',1,NULL,NULL,NULL), + (298,149,7,'b_a',6,'Head of Household is',45,'Head of Household for',1,NULL,NULL,NULL), + (299,150,2,'a_b',42,'Spouse of',45,'Spouse of',1,NULL,NULL,NULL), + (300,150,2,'b_a',45,'Spouse of',42,'Spouse of',1,NULL,NULL,NULL), + (301,151,1,'a_b',19,'Child of',133,'Parent of',1,NULL,NULL,NULL), + (302,151,1,'b_a',133,'Parent of',19,'Child of',1,NULL,NULL,NULL), + (303,152,1,'a_b',97,'Child of',133,'Parent of',1,NULL,NULL,NULL), + (304,152,1,'b_a',133,'Parent of',97,'Child of',1,NULL,NULL,NULL), + (305,153,1,'a_b',19,'Child of',25,'Parent of',1,NULL,NULL,NULL), + (306,153,1,'b_a',25,'Parent of',19,'Child of',1,NULL,NULL,NULL), + (307,154,1,'a_b',97,'Child of',25,'Parent of',1,NULL,NULL,NULL), + (308,154,1,'b_a',25,'Parent of',97,'Child of',1,NULL,NULL,NULL), + (309,155,4,'a_b',97,'Sibling of',19,'Sibling of',1,NULL,NULL,NULL), + (310,155,4,'b_a',19,'Sibling of',97,'Sibling of',1,NULL,NULL,NULL), + (311,156,8,'a_b',25,'Household Member of',111,'Household Member is',1,NULL,NULL,NULL), + (312,156,8,'b_a',111,'Household Member is',25,'Household Member of',1,NULL,NULL,NULL), + (313,157,8,'a_b',19,'Household Member of',111,'Household Member is',1,NULL,NULL,NULL), + (314,157,8,'b_a',111,'Household Member is',19,'Household Member of',1,NULL,NULL,NULL), + (315,158,8,'a_b',97,'Household Member of',111,'Household Member is',1,NULL,NULL,NULL), + (316,158,8,'b_a',111,'Household Member is',97,'Household Member of',1,NULL,NULL,NULL), + (317,159,7,'a_b',133,'Head of Household for',111,'Head of Household is',1,NULL,NULL,NULL), + (318,159,7,'b_a',111,'Head of Household is',133,'Head of Household for',1,NULL,NULL,NULL), + (319,160,2,'a_b',25,'Spouse of',133,'Spouse of',1,NULL,NULL,NULL), + (320,160,2,'b_a',133,'Spouse of',25,'Spouse of',1,NULL,NULL,NULL), + (321,161,1,'a_b',76,'Child of',46,'Parent of',1,NULL,NULL,NULL), + (322,161,1,'b_a',46,'Parent of',76,'Child of',1,NULL,NULL,NULL), + (323,162,1,'a_b',187,'Child of',46,'Parent of',1,NULL,NULL,NULL), + (324,162,1,'b_a',46,'Parent of',187,'Child of',1,NULL,NULL,NULL), + (325,163,1,'a_b',76,'Child of',93,'Parent of',1,NULL,NULL,NULL), + (326,163,1,'b_a',93,'Parent of',76,'Child of',1,NULL,NULL,NULL), + (327,164,1,'a_b',187,'Child of',93,'Parent of',1,NULL,NULL,NULL), + (328,164,1,'b_a',93,'Parent of',187,'Child of',1,NULL,NULL,NULL), + (329,165,4,'a_b',187,'Sibling of',76,'Sibling of',1,NULL,NULL,NULL), + (330,165,4,'b_a',76,'Sibling of',187,'Sibling of',1,NULL,NULL,NULL), + (331,166,8,'a_b',93,'Household Member of',138,'Household Member is',1,NULL,NULL,NULL), + (332,166,8,'b_a',138,'Household Member is',93,'Household Member of',1,NULL,NULL,NULL), + (333,167,8,'a_b',76,'Household Member of',138,'Household Member is',1,NULL,NULL,NULL), + (334,167,8,'b_a',138,'Household Member is',76,'Household Member of',1,NULL,NULL,NULL), + (335,168,8,'a_b',187,'Household Member of',138,'Household Member is',1,NULL,NULL,NULL), + (336,168,8,'b_a',138,'Household Member is',187,'Household Member of',1,NULL,NULL,NULL), + (337,169,7,'a_b',46,'Head of Household for',138,'Head of Household is',1,NULL,NULL,NULL), + (338,169,7,'b_a',138,'Head of Household is',46,'Head of Household for',1,NULL,NULL,NULL), + (339,170,2,'a_b',93,'Spouse of',46,'Spouse of',1,NULL,NULL,NULL), + (340,170,2,'b_a',46,'Spouse of',93,'Spouse of',1,NULL,NULL,NULL), + (341,171,1,'a_b',185,'Child of',74,'Parent of',1,NULL,NULL,NULL), + (342,171,1,'b_a',74,'Parent of',185,'Child of',1,NULL,NULL,NULL), + (343,172,1,'a_b',197,'Child of',74,'Parent of',1,NULL,NULL,NULL), + (344,172,1,'b_a',74,'Parent of',197,'Child of',1,NULL,NULL,NULL), + (345,173,1,'a_b',185,'Child of',179,'Parent of',1,NULL,NULL,NULL), + (346,173,1,'b_a',179,'Parent of',185,'Child of',1,NULL,NULL,NULL), + (347,174,1,'a_b',197,'Child of',179,'Parent of',1,NULL,NULL,NULL), + (348,174,1,'b_a',179,'Parent of',197,'Child of',1,NULL,NULL,NULL), + (349,175,4,'a_b',197,'Sibling of',185,'Sibling of',1,NULL,NULL,NULL), + (350,175,4,'b_a',185,'Sibling of',197,'Sibling of',1,NULL,NULL,NULL), + (351,176,8,'a_b',179,'Household Member of',168,'Household Member is',1,NULL,NULL,NULL), + (352,176,8,'b_a',168,'Household Member is',179,'Household Member of',1,NULL,NULL,NULL), + (353,177,8,'a_b',185,'Household Member of',168,'Household Member is',1,NULL,NULL,NULL), + (354,177,8,'b_a',168,'Household Member is',185,'Household Member of',1,NULL,NULL,NULL), + (355,178,8,'a_b',197,'Household Member of',168,'Household Member is',1,NULL,NULL,NULL), + (356,178,8,'b_a',168,'Household Member is',197,'Household Member of',1,NULL,NULL,NULL), + (357,179,7,'a_b',74,'Head of Household for',168,'Head of Household is',0,NULL,NULL,NULL), + (358,179,7,'b_a',168,'Head of Household is',74,'Head of Household for',0,NULL,NULL,NULL), + (359,180,2,'a_b',179,'Spouse of',74,'Spouse of',0,NULL,NULL,NULL), + (360,180,2,'b_a',74,'Spouse of',179,'Spouse of',0,NULL,NULL,NULL), + (361,181,1,'a_b',2,'Child of',184,'Parent of',1,NULL,NULL,NULL), + (362,181,1,'b_a',184,'Parent of',2,'Child of',1,NULL,NULL,NULL), + (363,182,1,'a_b',57,'Child of',184,'Parent of',1,NULL,NULL,NULL), + (364,182,1,'b_a',184,'Parent of',57,'Child of',1,NULL,NULL,NULL), + (365,183,1,'a_b',2,'Child of',119,'Parent of',1,NULL,NULL,NULL), + (366,183,1,'b_a',119,'Parent of',2,'Child of',1,NULL,NULL,NULL), + (367,184,1,'a_b',57,'Child of',119,'Parent of',1,NULL,NULL,NULL), + (368,184,1,'b_a',119,'Parent of',57,'Child of',1,NULL,NULL,NULL), + (369,185,4,'a_b',57,'Sibling of',2,'Sibling of',1,NULL,NULL,NULL), + (370,185,4,'b_a',2,'Sibling of',57,'Sibling of',1,NULL,NULL,NULL), + (371,186,8,'a_b',119,'Household Member of',142,'Household Member is',1,NULL,NULL,NULL), + (372,186,8,'b_a',142,'Household Member is',119,'Household Member of',1,NULL,NULL,NULL), + (373,187,8,'a_b',2,'Household Member of',142,'Household Member is',1,NULL,NULL,NULL), + (374,187,8,'b_a',142,'Household Member is',2,'Household Member of',1,NULL,NULL,NULL), + (375,188,8,'a_b',57,'Household Member of',142,'Household Member is',1,NULL,NULL,NULL), + (376,188,8,'b_a',142,'Household Member is',57,'Household Member of',1,NULL,NULL,NULL), + (377,189,7,'a_b',184,'Head of Household for',142,'Head of Household is',1,NULL,NULL,NULL), + (378,189,7,'b_a',142,'Head of Household is',184,'Head of Household for',1,NULL,NULL,NULL), + (379,190,2,'a_b',119,'Spouse of',184,'Spouse of',1,NULL,NULL,NULL), + (380,190,2,'b_a',184,'Spouse of',119,'Spouse of',1,NULL,NULL,NULL), + (381,191,1,'a_b',89,'Child of',110,'Parent of',1,NULL,NULL,NULL), + (382,191,1,'b_a',110,'Parent of',89,'Child of',1,NULL,NULL,NULL), + (383,192,1,'a_b',54,'Child of',110,'Parent of',1,NULL,NULL,NULL), + (384,192,1,'b_a',110,'Parent of',54,'Child of',1,NULL,NULL,NULL), + (385,193,1,'a_b',89,'Child of',9,'Parent of',1,NULL,NULL,NULL), + (386,193,1,'b_a',9,'Parent of',89,'Child of',1,NULL,NULL,NULL), + (387,194,1,'a_b',54,'Child of',9,'Parent of',1,NULL,NULL,NULL), + (388,194,1,'b_a',9,'Parent of',54,'Child of',1,NULL,NULL,NULL), + (389,195,4,'a_b',54,'Sibling of',89,'Sibling of',1,NULL,NULL,NULL), + (390,195,4,'b_a',89,'Sibling of',54,'Sibling of',1,NULL,NULL,NULL), + (391,196,8,'a_b',9,'Household Member of',12,'Household Member is',1,NULL,NULL,NULL), + (392,196,8,'b_a',12,'Household Member is',9,'Household Member of',1,NULL,NULL,NULL), + (393,197,8,'a_b',89,'Household Member of',12,'Household Member is',1,NULL,NULL,NULL), + (394,197,8,'b_a',12,'Household Member is',89,'Household Member of',1,NULL,NULL,NULL), + (395,198,8,'a_b',54,'Household Member of',12,'Household Member is',1,NULL,NULL,NULL), + (396,198,8,'b_a',12,'Household Member is',54,'Household Member of',1,NULL,NULL,NULL), + (397,199,7,'a_b',110,'Head of Household for',12,'Head of Household is',0,NULL,NULL,NULL), + (398,199,7,'b_a',12,'Head of Household is',110,'Head of Household for',0,NULL,NULL,NULL), + (399,200,2,'a_b',9,'Spouse of',110,'Spouse of',0,NULL,NULL,NULL), + (400,200,2,'b_a',110,'Spouse of',9,'Spouse of',0,NULL,NULL,NULL), + (401,201,5,'a_b',145,'Employee of',43,'Employer of',1,NULL,NULL,NULL), + (402,201,5,'b_a',43,'Employer of',145,'Employee of',1,NULL,NULL,NULL), + (403,202,5,'a_b',27,'Employee of',48,'Employer of',1,NULL,NULL,NULL), + (404,202,5,'b_a',48,'Employer of',27,'Employee of',1,NULL,NULL,NULL), + (405,203,5,'a_b',76,'Employee of',51,'Employer of',1,NULL,NULL,NULL), + (406,203,5,'b_a',51,'Employer of',76,'Employee of',1,NULL,NULL,NULL), + (407,204,5,'a_b',165,'Employee of',67,'Employer of',1,NULL,NULL,NULL), + (408,204,5,'b_a',67,'Employer of',165,'Employee of',1,NULL,NULL,NULL), + (409,205,5,'a_b',166,'Employee of',73,'Employer of',1,NULL,NULL,NULL), + (410,205,5,'b_a',73,'Employer of',166,'Employee of',1,NULL,NULL,NULL), + (411,206,5,'a_b',154,'Employee of',91,'Employer of',1,NULL,NULL,NULL), + (412,206,5,'b_a',91,'Employer of',154,'Employee of',1,NULL,NULL,NULL), + (413,207,5,'a_b',39,'Employee of',101,'Employer of',1,NULL,NULL,NULL), + (414,207,5,'b_a',101,'Employer of',39,'Employee of',1,NULL,NULL,NULL), + (415,208,5,'a_b',53,'Employee of',105,'Employer of',1,NULL,NULL,NULL), + (416,208,5,'b_a',105,'Employer of',53,'Employee of',1,NULL,NULL,NULL), + (417,209,5,'a_b',3,'Employee of',128,'Employer of',1,NULL,NULL,NULL), + (418,209,5,'b_a',128,'Employer of',3,'Employee of',1,NULL,NULL,NULL), + (419,210,5,'a_b',96,'Employee of',129,'Employer of',1,NULL,NULL,NULL), + (420,210,5,'b_a',129,'Employer of',96,'Employee of',1,NULL,NULL,NULL), + (421,211,5,'a_b',60,'Employee of',135,'Employer of',1,NULL,NULL,NULL), + (422,211,5,'b_a',135,'Employer of',60,'Employee of',1,NULL,NULL,NULL), + (423,212,5,'a_b',26,'Employee of',152,'Employer of',1,NULL,NULL,NULL), + (424,212,5,'b_a',152,'Employer of',26,'Employee of',1,NULL,NULL,NULL), + (425,213,5,'a_b',82,'Employee of',153,'Employer of',1,NULL,NULL,NULL), + (426,213,5,'b_a',153,'Employer of',82,'Employee of',1,NULL,NULL,NULL), + (427,214,5,'a_b',172,'Employee of',157,'Employer of',1,NULL,NULL,NULL), + (428,214,5,'b_a',157,'Employer of',172,'Employee of',1,NULL,NULL,NULL), + (429,215,5,'a_b',183,'Employee of',169,'Employer of',1,NULL,NULL,NULL), + (430,215,5,'b_a',169,'Employer of',183,'Employee of',1,NULL,NULL,NULL), + (431,216,5,'a_b',50,'Employee of',177,'Employer of',1,NULL,NULL,NULL), + (432,216,5,'b_a',177,'Employer of',50,'Employee of',1,NULL,NULL,NULL), + (433,217,5,'a_b',121,'Employee of',188,'Employer of',1,NULL,NULL,NULL), + (434,217,5,'b_a',188,'Employer of',121,'Employee of',1,NULL,NULL,NULL), + (435,218,5,'a_b',28,'Employee of',193,'Employer of',1,NULL,NULL,NULL), + (436,218,5,'b_a',193,'Employer of',28,'Employee of',1,NULL,NULL,NULL); /*!40000 ALTER TABLE `civicrm_relationship_cache` ENABLE KEYS */; UNLOCK TABLES; @@ -8055,7 +8022,7 @@ UNLOCK TABLES; LOCK TABLES `civicrm_saved_search` WRITE; /*!40000 ALTER TABLE `civicrm_saved_search` DISABLE KEYS */; INSERT INTO `civicrm_saved_search` (`id`, `name`, `label`, `form_values`, `mapping_id`, `search_custom_id`, `api_entity`, `api_params`, `created_id`, `modified_id`, `expires_date`, `created_date`, `modified_date`, `description`) VALUES - (1,'Email_Bounce_History','Email Bounce History',NULL,NULL,NULL,'MailingEventBounce','{\"version\":4,\"select\":[\"time_stamp\",\"bounce_type_id:label\",\"bounce_reason\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01_MailingJob_Mailing_mailing_id_01.name\"],\"orderBy\":[],\"where\":[],\"groupBy\":[],\"join\":[[\"MailingEventQueue AS MailingEventBounce_MailingEventQueue_event_queue_id_01\",\"INNER\",[\"event_queue_id\",\"=\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01.id\"]],[\"MailingJob AS MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01\",\"INNER\",[\"MailingEventBounce_MailingEventQueue_event_queue_id_01.job_id\",\"=\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01.id\"]],[\"Mailing AS MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01_MailingJob_Mailing_mailing_id_01\",\"INNER\",[\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01.mailing_id\",\"=\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01_MailingJob_Mailing_mailing_id_01.id\"]]],\"having\":[]}',NULL,NULL,NULL,'2023-09-06 22:13:56','2023-09-06 22:13:56',NULL); + (1,'Email_Bounce_History','Email Bounce History',NULL,NULL,NULL,'MailingEventBounce','{\"version\":4,\"select\":[\"time_stamp\",\"bounce_type_id:label\",\"bounce_reason\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01_MailingJob_Mailing_mailing_id_01.name\"],\"orderBy\":[],\"where\":[],\"groupBy\":[],\"join\":[[\"MailingEventQueue AS MailingEventBounce_MailingEventQueue_event_queue_id_01\",\"INNER\",[\"event_queue_id\",\"=\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01.id\"]],[\"MailingJob AS MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01\",\"INNER\",[\"MailingEventBounce_MailingEventQueue_event_queue_id_01.job_id\",\"=\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01.id\"]],[\"Mailing AS MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01_MailingJob_Mailing_mailing_id_01\",\"INNER\",[\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01.mailing_id\",\"=\",\"MailingEventBounce_MailingEventQueue_event_queue_id_01_MailingEventQueue_MailingJob_job_id_01_MailingJob_Mailing_mailing_id_01.id\"]]],\"having\":[]}',NULL,NULL,NULL,'2023-09-06 22:52:12','2023-09-06 22:52:12',NULL); /*!40000 ALTER TABLE `civicrm_saved_search` ENABLE KEYS */; UNLOCK TABLES; @@ -12158,90 +12125,90 @@ UNLOCK TABLES; LOCK TABLES `civicrm_subscription_history` WRITE; /*!40000 ALTER TABLE `civicrm_subscription_history` DISABLE KEYS */; INSERT INTO `civicrm_subscription_history` (`id`, `contact_id`, `group_id`, `date`, `method`, `status`, `tracking`) VALUES - (1,24,2,'2023-06-23 19:28:24','Email','Added',NULL), - (2,134,2,'2023-03-20 19:42:18','Admin','Added',NULL), - (3,88,2,'2023-07-20 08:37:26','Admin','Added',NULL), - (4,117,2,'2023-01-10 04:42:03','Email','Added',NULL), - (5,82,2,'2022-11-03 07:04:46','Admin','Added',NULL), - (6,72,2,'2022-11-01 05:38:19','Admin','Added',NULL), - (7,135,2,'2023-07-30 23:26:12','Admin','Added',NULL), - (8,151,2,'2022-09-11 06:15:05','Admin','Added',NULL), - (9,143,2,'2022-10-15 20:01:13','Admin','Added',NULL), - (10,13,2,'2023-04-21 19:05:04','Admin','Added',NULL), - (11,93,2,'2023-08-11 07:34:11','Email','Added',NULL), - (12,141,2,'2023-03-17 16:18:43','Email','Added',NULL), - (13,78,2,'2023-04-02 22:35:54','Email','Added',NULL), - (14,25,2,'2023-01-21 14:12:11','Admin','Added',NULL), - (15,128,2,'2023-08-28 21:49:32','Email','Added',NULL), - (16,132,2,'2023-02-08 01:01:35','Email','Added',NULL), - (17,63,2,'2023-04-08 19:48:17','Admin','Added',NULL), - (18,170,2,'2023-03-26 05:16:01','Admin','Added',NULL), - (19,86,2,'2022-12-30 20:24:00','Admin','Added',NULL), - (20,15,2,'2023-09-06 13:13:10','Admin','Added',NULL), - (21,60,2,'2023-07-03 13:32:21','Admin','Added',NULL), - (22,146,2,'2023-04-06 23:48:06','Admin','Added',NULL), - (23,108,2,'2023-05-14 05:50:14','Admin','Added',NULL), - (24,95,2,'2023-08-09 16:38:09','Admin','Added',NULL), - (25,131,2,'2023-07-25 12:35:48','Email','Added',NULL), - (26,46,2,'2022-09-24 03:12:10','Admin','Added',NULL), - (27,110,2,'2022-11-21 02:43:01','Admin','Added',NULL), - (28,54,2,'2023-06-11 22:02:58','Admin','Added',NULL), - (29,12,2,'2022-11-18 13:43:24','Email','Added',NULL), - (30,23,2,'2022-12-26 21:46:32','Admin','Added',NULL), - (31,96,2,'2022-09-25 11:39:09','Email','Added',NULL), - (32,176,2,'2023-08-07 01:58:54','Email','Added',NULL), - (33,123,2,'2023-04-17 02:44:32','Admin','Added',NULL), - (34,160,2,'2023-07-22 12:15:44','Email','Added',NULL), - (35,190,2,'2023-04-05 01:24:22','Email','Added',NULL), - (36,100,2,'2022-12-30 02:03:41','Email','Added',NULL), - (37,111,2,'2023-06-20 23:44:33','Email','Added',NULL), - (38,9,2,'2023-04-11 19:21:03','Admin','Added',NULL), - (39,162,2,'2023-07-29 16:52:56','Admin','Added',NULL), - (40,148,2,'2023-04-27 20:54:00','Email','Added',NULL), - (41,105,2,'2023-02-04 19:15:10','Admin','Added',NULL), - (42,31,2,'2022-11-03 06:18:03','Admin','Added',NULL), - (43,184,2,'2022-10-03 22:53:59','Admin','Added',NULL), - (44,102,2,'2022-10-25 05:51:54','Admin','Added',NULL), - (45,29,2,'2023-05-19 03:04:11','Email','Added',NULL), - (46,126,2,'2023-07-30 08:21:39','Email','Added',NULL), - (47,138,2,'2023-08-28 19:06:14','Email','Added',NULL), - (48,150,2,'2023-08-16 10:22:32','Admin','Added',NULL), - (49,48,2,'2023-03-21 19:49:58','Email','Added',NULL), - (50,137,2,'2023-06-11 09:16:32','Email','Added',NULL), - (51,200,2,'2023-09-06 21:31:28','Admin','Added',NULL), - (52,164,2,'2023-08-13 07:38:08','Email','Added',NULL), - (53,136,2,'2023-03-06 05:32:24','Admin','Added',NULL), - (54,5,2,'2023-09-04 10:14:32','Email','Added',NULL), - (55,17,2,'2022-11-11 07:29:14','Admin','Added',NULL), - (56,61,2,'2023-08-04 21:07:32','Admin','Added',NULL), - (57,145,2,'2023-09-02 03:13:55','Email','Added',NULL), - (58,185,2,'2023-09-01 17:14:12','Email','Added',NULL), - (59,34,2,'2023-03-08 03:36:16','Admin','Added',NULL), - (60,169,2,'2023-08-21 00:32:14','Admin','Added',NULL), - (61,173,3,'2023-06-14 11:46:28','Email','Added',NULL), - (62,84,3,'2023-02-27 00:26:13','Admin','Added',NULL), - (63,59,3,'2022-10-18 13:14:29','Email','Added',NULL), - (64,142,3,'2023-04-18 03:12:51','Email','Added',NULL), - (65,120,3,'2023-06-01 06:56:21','Email','Added',NULL), - (66,81,3,'2023-05-16 10:55:45','Email','Added',NULL), - (67,83,3,'2022-11-07 14:12:29','Email','Added',NULL), - (68,153,3,'2023-02-15 10:13:06','Admin','Added',NULL), - (69,74,3,'2023-05-30 11:25:41','Admin','Added',NULL), - (70,42,3,'2022-10-14 19:03:55','Email','Added',NULL), - (71,109,3,'2023-01-10 18:46:27','Email','Added',NULL), - (72,30,3,'2022-09-09 08:49:52','Email','Added',NULL), - (73,149,3,'2023-07-09 00:02:24','Email','Added',NULL), - (74,106,3,'2022-12-11 00:22:27','Admin','Added',NULL), - (75,175,3,'2023-01-09 08:50:26','Email','Added',NULL), - (76,24,4,'2023-04-14 07:24:03','Admin','Added',NULL), - (77,151,4,'2023-02-18 07:35:17','Admin','Added',NULL), - (78,128,4,'2022-10-11 07:44:47','Email','Added',NULL), - (79,146,4,'2023-08-13 18:42:28','Admin','Added',NULL), - (80,12,4,'2023-03-11 12:17:18','Admin','Added',NULL), - (81,100,4,'2023-07-16 11:40:25','Admin','Added',NULL), - (82,184,4,'2022-09-11 07:49:30','Email','Added',NULL), - (83,137,4,'2023-03-21 21:44:23','Email','Added',NULL), - (84,202,4,'2023-03-15 12:35:00','Admin','Added',NULL); + (1,55,2,'2023-03-27 23:40:27','Admin','Added',NULL), + (2,41,2,'2023-05-15 09:36:15','Email','Added',NULL), + (3,34,2,'2022-10-17 14:49:10','Admin','Added',NULL), + (4,171,2,'2022-10-05 06:08:36','Email','Added',NULL), + (5,123,2,'2023-02-01 04:35:13','Email','Added',NULL), + (6,64,2,'2023-04-16 11:45:51','Email','Added',NULL), + (7,178,2,'2023-06-20 02:29:30','Email','Added',NULL), + (8,24,2,'2023-07-15 16:43:53','Admin','Added',NULL), + (9,146,2,'2023-07-06 13:22:30','Email','Added',NULL), + (10,4,2,'2023-02-20 05:44:43','Email','Added',NULL), + (11,37,2,'2022-12-25 01:43:33','Email','Added',NULL), + (12,181,2,'2023-05-08 04:49:33','Admin','Added',NULL), + (13,98,2,'2022-10-14 15:02:15','Admin','Added',NULL), + (14,33,2,'2023-01-03 06:58:10','Admin','Added',NULL), + (15,160,2,'2023-04-03 22:01:32','Admin','Added',NULL), + (16,148,2,'2022-11-09 02:24:10','Email','Added',NULL), + (17,79,2,'2023-06-08 21:47:46','Admin','Added',NULL), + (18,158,2,'2023-03-13 19:12:00','Email','Added',NULL), + (19,145,2,'2023-01-23 01:27:48','Admin','Added',NULL), + (20,82,2,'2023-03-06 19:32:57','Admin','Added',NULL), + (21,175,2,'2022-11-19 01:46:26','Email','Added',NULL), + (22,102,2,'2023-03-15 02:57:34','Email','Added',NULL), + (23,117,2,'2022-09-29 19:40:08','Admin','Added',NULL), + (24,124,2,'2022-09-09 14:13:27','Admin','Added',NULL), + (25,28,2,'2022-12-25 05:55:31','Admin','Added',NULL), + (26,40,2,'2022-11-03 19:06:20','Admin','Added',NULL), + (27,66,2,'2023-07-09 09:37:48','Email','Added',NULL), + (28,32,2,'2023-03-29 14:54:55','Admin','Added',NULL), + (29,162,2,'2023-03-03 18:41:30','Admin','Added',NULL), + (30,199,2,'2022-12-28 05:45:09','Email','Added',NULL), + (31,26,2,'2023-07-08 00:55:20','Admin','Added',NULL), + (32,180,2,'2023-08-20 13:20:08','Email','Added',NULL), + (33,192,2,'2022-10-02 20:42:51','Email','Added',NULL), + (34,141,2,'2023-06-14 09:31:05','Email','Added',NULL), + (35,59,2,'2023-05-05 00:54:37','Email','Added',NULL), + (36,100,2,'2023-03-27 10:10:05','Email','Added',NULL), + (37,11,2,'2023-05-06 09:39:47','Admin','Added',NULL), + (38,144,2,'2023-08-29 11:33:58','Admin','Added',NULL), + (39,200,2,'2023-02-21 23:16:00','Email','Added',NULL), + (40,47,2,'2023-06-24 19:14:47','Admin','Added',NULL), + (41,22,2,'2023-06-20 00:05:08','Admin','Added',NULL), + (42,75,2,'2023-08-19 08:57:17','Email','Added',NULL), + (43,112,2,'2023-07-18 18:08:14','Email','Added',NULL), + (44,182,2,'2023-08-28 06:45:21','Admin','Added',NULL), + (45,165,2,'2023-02-13 18:23:38','Email','Added',NULL), + (46,132,2,'2022-11-15 12:34:22','Email','Added',NULL), + (47,136,2,'2022-09-13 11:59:10','Admin','Added',NULL), + (48,172,2,'2022-12-19 20:03:57','Admin','Added',NULL), + (49,186,2,'2022-12-17 05:35:36','Admin','Added',NULL), + (50,90,2,'2023-06-24 01:31:38','Email','Added',NULL), + (51,83,2,'2022-10-06 23:17:30','Email','Added',NULL), + (52,120,2,'2022-10-18 15:48:03','Email','Added',NULL), + (53,174,2,'2023-05-31 06:57:30','Email','Added',NULL), + (54,109,2,'2023-02-09 21:58:02','Admin','Added',NULL), + (55,69,2,'2022-09-24 11:41:10','Email','Added',NULL), + (56,155,2,'2023-01-02 02:47:45','Email','Added',NULL), + (57,167,2,'2023-01-19 03:01:51','Admin','Added',NULL), + (58,96,2,'2023-03-16 07:14:58','Admin','Added',NULL), + (59,159,2,'2023-03-26 19:36:00','Admin','Added',NULL), + (60,108,2,'2023-01-24 16:22:18','Admin','Added',NULL), + (61,78,3,'2023-07-08 00:20:30','Admin','Added',NULL), + (62,70,3,'2023-08-19 22:28:12','Email','Added',NULL), + (63,103,3,'2023-05-07 22:42:56','Email','Added',NULL), + (64,107,3,'2022-11-22 03:40:46','Admin','Added',NULL), + (65,44,3,'2023-07-12 13:14:30','Email','Added',NULL), + (66,21,3,'2022-11-04 06:22:15','Admin','Added',NULL), + (67,84,3,'2022-09-25 22:10:00','Email','Added',NULL), + (68,71,3,'2023-07-29 07:00:25','Email','Added',NULL), + (69,115,3,'2023-04-06 02:33:36','Email','Added',NULL), + (70,56,3,'2022-10-19 01:13:53','Admin','Added',NULL), + (71,196,3,'2023-06-17 03:42:21','Email','Added',NULL), + (72,183,3,'2023-07-18 05:12:56','Admin','Added',NULL), + (73,62,3,'2023-07-05 09:29:36','Email','Added',NULL), + (74,121,3,'2022-11-17 00:46:36','Admin','Added',NULL), + (75,166,3,'2023-07-06 01:44:02','Admin','Added',NULL), + (76,55,4,'2023-09-03 13:34:26','Email','Added',NULL), + (77,24,4,'2023-05-01 19:09:28','Admin','Added',NULL), + (78,160,4,'2022-09-19 10:43:27','Email','Added',NULL), + (79,102,4,'2023-05-19 07:25:46','Email','Added',NULL), + (80,162,4,'2023-03-04 22:54:14','Admin','Added',NULL), + (81,100,4,'2022-10-29 22:57:36','Admin','Added',NULL), + (82,112,4,'2023-02-03 13:11:50','Admin','Added',NULL), + (83,90,4,'2022-10-20 14:02:49','Admin','Added',NULL), + (84,202,4,'2023-08-16 01:44:57','Email','Added',NULL); /*!40000 ALTER TABLE `civicrm_subscription_history` ENABLE KEYS */; UNLOCK TABLES; @@ -12467,22 +12434,22 @@ UNLOCK TABLES; LOCK TABLES `civicrm_website` WRITE; /*!40000 ALTER TABLE `civicrm_website` DISABLE KEYS */; INSERT INTO `civicrm_website` (`id`, `contact_id`, `url`, `website_type_id`) VALUES - (1,76,'http://mlkinglegal.org',1), - (2,98,'http://sierraartsalliance.org',1), - (3,37,'http://statesartspartnership.org',1), - (4,115,'http://urbanadvocacyacademy.org',1), - (5,94,'http://minnesotaadvocacy.org',1), - (6,140,'http://unitedagriculture.org',1), - (7,124,'http://mapleagriculturetrust.org',1), - (8,119,'http://secondinitiative.org',1), - (9,36,'http://providenceempowermentfund.org',1), - (10,53,'http://californiaeducationsystems.org',1), - (11,6,'http://sierratrust.org',1), - (12,4,'http://unitedhealthassociation.org',1), - (13,121,'http://collegepeacesolutions.org',1), - (14,186,'http://caulderpeace.org',1), - (15,2,'http://localadvocacy.org',1), - (16,7,'http://progressivewellness.org',1); + (1,48,'http://urbansustainability.org',1), + (2,43,'http://starenvironmental.org',1), + (3,169,'http://communityeducation.org',1), + (4,177,'http://localpoetryassociation.org',1), + (5,101,'http://mississippifood.org',1), + (6,153,'http://friendshealth.org',1), + (7,91,'http://arkansasliteracy.org',1), + (8,157,'http://creativeschool.org',1), + (9,129,'http://californiacollective.org',1), + (10,188,'http://dowleneducationcollective.org',1), + (11,193,'http://beechactionsystems.org',1), + (12,73,'http://surveyordevelopmentservices.org',1), + (13,61,'http://globaladvocacyinitiative.org',1), + (14,152,'http://thactioncollective.org',1), + (15,51,'http://dowlenpartnership.org',1), + (16,135,'http://delandactionsystems.org',1); /*!40000 ALTER TABLE `civicrm_website` ENABLE KEYS */; UNLOCK TABLES; @@ -12520,7 +12487,7 @@ UNLOCK TABLES; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; --- Dump completed on 2023-09-07 8:14:06 +-- Dump completed on 2023-09-07 8:52:22 -- +--------------------------------------------------------------------+ -- | Copyright CiviCRM LLC. All rights reserved. | -- | | diff --git a/civicrm/sql/civicrm_navigation.mysql b/civicrm/sql/civicrm_navigation.mysql index e4009f9fc7e8ce9f0051b7ed626ad2d6e86e3878..f3077165d7172431bea8987a3b8623bb20ca3c11 100644 --- a/civicrm/sql/civicrm_navigation.mysql +++ b/civicrm/sql/civicrm_navigation.mysql @@ -344,8 +344,8 @@ SET @usersPermslastID:=LAST_INSERT_ID(); INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) VALUES - ( @domainID, 'civicrm/admin/access?reset=1', 'Permissions (Access Control)', 'Permissions (Access Control)', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 1 ), - ( @domainID, 'civicrm/admin/synchUser?reset=1', 'Synchronize Users to Contacts', 'Synchronize Users to Contacts', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 2 ); + ( @domainID, 'civicrm/admin/access?reset=1', 'Access Control Lists', 'Permissions (Access Control)', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 5 ), + ( @domainID, 'civicrm/admin/synchUser?reset=1', 'Synchronize Users to Contacts', 'Synchronize Users to Contacts', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 10 ); INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) diff --git a/civicrm/templates/CRM/Admin/Form/Job.tpl b/civicrm/templates/CRM/Admin/Form/Job.tpl index f3e14eed7073d265d71181c55111595fe8d5ec19..d2c0582808f7fe862470d745637957506898c235 100644 --- a/civicrm/templates/CRM/Admin/Form/Job.tpl +++ b/civicrm/templates/CRM/Admin/Form/Job.tpl @@ -18,7 +18,7 @@ {elseif $action eq 4} <div class="messages status no-popup"> {icon icon="fa-info-circle"}{/icon} - {ts 1=$jobName}Are you sure you would like to execute %1 job?{/ts} + {ts 1=$jobName|escape:html}Are you sure you would like to execute %1 job?{/ts} </div> {else} <div class="help"> diff --git a/civicrm/templates/CRM/Admin/Form/MailSettings.hlp b/civicrm/templates/CRM/Admin/Form/MailSettings.hlp index fac9cf4bc610f88b4c5db3e081d9164fc92ea245..c28a53feb255e2c85488f3f1e3c6af8c75bf8f9c 100644 --- a/civicrm/templates/CRM/Admin/Form/MailSettings.hlp +++ b/civicrm/templates/CRM/Admin/Form/MailSettings.hlp @@ -8,10 +8,6 @@ +--------------------------------------------------------------------+ *} -{htxt id="is_non_case_email_skipped-title"} - {ts}Skip emails which do not have a Case ID or Case hash{/ts} -{/htxt} - {htxt id="is_non_case_email_skipped"} <p>{ts}CiviCRM has functionality to file emails which contain the Case ID or Case Hash in the subject line in the format [case #1234] against a case record.{/ts}</p> <p>{ts}Where the Case ID or Case Hash is not included CiviCRM will file the email against the contact record, by matching the email addresses on the email with any email addresses of Contact records in CiviCRM.{/ts}</p> @@ -20,11 +16,15 @@ <p>{ts}If email is skipped, no activities or contacts ("from"/"to"/"cc"/"bcc") will be created.{/ts}</p> {/htxt} -{htxt id="is_contact_creation_disabled_if_no_match-title"} - {ts}Do not create new contacts when filing emails{/ts} -{/htxt} - {htxt id="is_contact_creation_disabled_if_no_match"} <p>{ts}If this option is enabled, CiviCRM will not create new contacts ("from"/"to"/"cc"/"bcc") when filing emails.{/ts}</p> <p>{ts}If the email subject contains a valid Case ID or Case hash, the email will be filed against the case.{/ts}</p> {/htxt} + +{htxt id="id-activity_type_id"} + {ts}The default activity type is Inbound Email, a special type that can only be edited by users with a specific permission to help prevent details of inbound emails from being changed, but you can also use your own activity type as well, bearing in mind that these activities can be edited as usual.{/ts} +{/htxt} + +{htxt id="id-activity_source"} + {ts}An activity can only have one source contact, so if you choose a field that can have more than one email (To, CC or BCC), only the first email will be used.{/ts} +{/htxt} diff --git a/civicrm/templates/CRM/Admin/Form/MailSettings.tpl b/civicrm/templates/CRM/Admin/Form/MailSettings.tpl index 27218a6fb7952874adfa21feac90a8731a7c602c..896ce070003f195bac0791dd435c97d205f46d9d 100644 --- a/civicrm/templates/CRM/Admin/Form/MailSettings.tpl +++ b/civicrm/templates/CRM/Admin/Form/MailSettings.tpl @@ -55,7 +55,17 @@ <tr class="crm-mail-settings-form-block-is_contact_creation_disabled_if_no_match"><td class="label"> </td><td>{$form.is_contact_creation_disabled_if_no_match.html}{$form.is_contact_creation_disabled_if_no_match.label} {help id='is_contact_creation_disabled_if_no_match'}</td></tr> - <tr class="crm-mail-settings-form-block-activity_status"><td class="label"> </td><td>{$form.activity_status.label}<div>{$form.activity_status.html}</div></td></tr> + <tr class="crm-mail-settings-form-block-activity_type_id"><td class="label">{$form.activity_type_id.label} {help id='id-activity_type_id'}</td><td>{$form.activity_type_id.html}</td></tr> + + <tr class="crm-mail-settings-form-block-activity_status"><td class="label">{$form.activity_status.label}</td><td>{$form.activity_status.html}</td></tr> + + {include file="CRM/Campaign/Form/addCampaignToComponent.tpl" campaignTrClass="crm-mail-settings-form-block-campaign_id"} + + <tr class="crm-mail-settings-form-block-activity_source"><td class="label">{$form.activity_source.label} {help id='id-activity_source'}</td><td>{$form.activity_source.html}</td></tr> + <tr class="crm-mail-settings-form-block-activity_targets"><td class="label">{$form.activity_targets.label}</td><td>{$form.activity_targets.html}</td></tr> + <tr class="crm-mail-settings-form-block-activity_assignees"><td class="label">{$form.activity_assignees.label}</td><td>{$form.activity_assignees.html}</td></tr> + + <tr class="crm-mail-settings-form-block-is_active"><td class="label">{$form.is_active.label}</td><td>{$form.is_active.html}</td></tr> </table> <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div> @@ -71,6 +81,12 @@ '.crm-mail-settings-form-block-activity_status', '.crm-mail-settings-form-block-is_non_case_email_skipped', '.crm-mail-settings-form-block-is_contact_creation_disabled_if_no_match', + '.crm-mail-settings-form-block-activity_type_id', + '.crm-mail-settings-form-block-campaign_id', + '.crm-mail-settings-form-block-activity_source', + '.crm-mail-settings-form-block-activity_targets', + '.crm-mail-settings-form-block-activity_assignees', + '.crm-mail-settings-form-block-is_active', ]; $(fields.join(', '), $form).toggle($(this).val() === '0'); } diff --git a/civicrm/templates/CRM/Admin/Form/ScheduleReminders.tpl b/civicrm/templates/CRM/Admin/Form/ScheduleReminders.tpl index ec8a9d2fe0030fd28053c43d374c8dbe9686846f..f9db4a0f72845e0c19fcff50978b15643ebee435 100644 --- a/civicrm/templates/CRM/Admin/Form/ScheduleReminders.tpl +++ b/civicrm/templates/CRM/Admin/Form/ScheduleReminders.tpl @@ -9,300 +9,337 @@ *} {* This template is used for adding/scheduling reminders. *} <div class="crm-block crm-form-block crm-scheduleReminder-form-block"> + {if $action eq 8} + <div class="messages status no-popup"> + {icon icon="fa-info-circle"}{/icon} + {ts 1=$reminderName}WARNING: You are about to delete the Reminder titled <strong>%1</strong>.{/ts} {ts}Do you want to continue?{/ts} + </div> + {else} + <table class="form-layout-compressed"> + <tr class="crm-scheduleReminder-form-block-title"> + <td class="label">{$form.title.label}</td> + <td>{$form.title.html}</td> + </tr> + <tr {if $mappingId}style="display:none"{/if}> + <td class="label">{$form.mapping_id.label}</td> + <td>{$form.mapping_id.html}</td> + </tr> + <tr> + <td class="label">{$form.entity_value.label}</td> + <td>{$form.entity_value.html}</td> + </tr> + <tr> + <td class="label">{$form.entity_status.label}</td> + <td>{$form.entity_status.html}</td> + </tr> -{if $action eq 8} - <div class="messages status no-popup"> - {icon icon="fa-info-circle"}{/icon} - {ts 1=$reminderName}WARNING: You are about to delete the Reminder titled <strong>%1</strong>.{/ts} {ts}Do you want to continue?{/ts} - </div> -{else} - <table class="form-layout-compressed"> - <tr class="crm-scheduleReminder-form-block-title"> - <td class="right">{$form.title.label}</td><td colspan="3">{$form.title.html}</td> - </tr> - <tr> - <td class="label">{$form.entity.label}</td> - <td>{$form.entity.html}</td> - </tr> + <tr class="crm-scheduleReminder-form-block-when"> + <td class="label">{$form.absolute_or_relative_date.label}</td> + <td> + {$form.absolute_or_relative_date.html} + {help id="relative_absolute_schedule_dates"} + {$form.absolute_date.html} + </td> + </tr> - <tr class="crm-scheduleReminder-form-block-when"> - <td class="right">{$form.start_action_offset.label}</td> - <td colspan="3">{$form.absolute_date.html} <strong id='OR'>{ts}OR{/ts}</strong><br /></td> - </tr> + <tr class="crm-scheduleReminder-form-block-description"> + <td class="label"></td> + <td> + {$form.start_action_offset.html} + {$form.start_action_unit.html} + {$form.start_action_condition.html} + {$form.start_action_date.html} + </td> + </tr> + <tr class="crm-scheduleReminder-effective_start_date"> + <td class="label">{$form.effective_start_date.label}</td> + <td> + {$form.effective_start_date.html} + {$form.effective_end_date.label} + {$form.effective_end_date.html} + <div class="description">{ts}Earliest and latest trigger dates to include.{/ts}</div> + </td> + <tr id="relativeDateRepeat" class="crm-scheduleReminder-form-block-is_repeat"><td class="label">{$form.is_repeat.label}</td> + <td>{$form.is_repeat.html}</td> + </tr> + <tr class="crm-scheduleReminder-form-block-repetition_frequency_interval"> + <td class="label">{$form.repetition_frequency_interval.label} <span class="crm-marker">*</span></td> + <td>{$form.repetition_frequency_interval.html} {$form.repetition_frequency_unit.html}</td> + </tr> + <tr class="crm-scheduleReminder-form-block-repetition_frequency_interval"> + <td class="label">{$form.end_frequency_interval.label} <span class="crm-marker">*</span></td> + <td>{$form.end_frequency_interval.html} {$form.end_frequency_unit.html} {$form.end_action.html} {$form.end_date.html}</td> + </tr> + <tr id="recordActivity" class="crm-scheduleReminder-form-block-record_activity"><td class="label">{$form.record_activity.label}</td> + <td>{$form.record_activity.html}</td> + </tr> + <tr class="crm-scheduleReminder-form-block-recipient"> + <td id="recipientLabel" class="label">{$form.recipient.label}</td> + <td> + <span> + {$form.limit_to.html} {help id="limit_to" class="limit_to" title=$form.recipient.label} + </span> + <span> + {$form.recipient.html} + </span> + </td> + </tr> + <tr class="crm-scheduleReminder-form-block-recipientListing recipient"> + <td class="label">{$form.recipient_listing.label}</td><td>{$form.recipient_listing.html}</td> + </tr> + <tr class="crm-scheduleReminder-form-block-recipient_manual recipient"> + <td class="label">{$form.recipient_manual.label} <span class="crm-marker">*</span></td> + <td>{$form.recipient_manual.html}</td> + </tr> - <tr id="relativeDate" class="crm-scheduleReminder-form-block-description"> - <td class="right"></td> - <td colspan="3"> - {$form.start_action_offset.html} {$form.start_action_unit.html} {$form.start_action_condition.html} {$form.start_action_date.html} - {if $context === "event"} {help id="relative_absolute_schedule_dates"}{/if} - </td> - </tr> - <tr id="recordActivity" class="crm-scheduleReminder-form-block-record_activity"><td class="label" width="20%">{$form.record_activity.label}</td> - <td>{$form.record_activity.html}</td> - </tr> - <tr id="relativeDateRepeat" class="crm-scheduleReminder-form-block-is_repeat"><td class="label" width="20%">{$form.is_repeat.label}</td> - <td>{$form.is_repeat.html}</td> - </tr> - <tr id="repeatFields" class="crm-scheduleReminder-form-block-repeatFields"><td></td><td> - <table class="form-layout-compressed"> - <tr class="crm-scheduleReminder-form-block-repetition_frequency_interval"> - <td class="label">{$form.repetition_frequency_interval.label} <span class="crm-marker">*</span> {$form.repetition_frequency_interval.html}</td> - <td>{$form.repetition_frequency_unit.html}</td> + <tr class="crm-scheduleReminder-form-block-recipient_group_id recipient"> + <td class="label">{$form.group_id.label} <span class="crm-marker">*</span></td> + <td>{$form.group_id.html}</td> + </tr> + {if $sms} + <tr id="msgMode" class="crm-scheduleReminder-form-block-mode"> + <td class="label">{$form.mode.label}</td> + <td>{$form.mode.html}</td> </tr> - <tr class="crm-scheduleReminder-form-block-repetition_frequency_interval"> - <td class="label">{$form.end_frequency_interval.label} <span class="crm-marker">*</span> {$form.end_frequency_interval.html} - <td>{$form.end_frequency_unit.html} {$form.end_action.html} {$form.end_date.html}</td> + {/if} + {if $multilingual} + <tr class="crm-scheduleReminder-form-block-filter-contact-language"> + <td class="label">{$form.filter_contact_language.label}</td> + <td>{$form.filter_contact_language.html} {help id="filter_contact_language"}</td> </tr> - </table> - </td> - </tr> - <tr class="crm-scheduleReminder-effective_start_date"> - <td class="right">{$form.effective_start_date.label}</td> - <td colspan="3">{$form.effective_start_date.html} <div class="description">{ts}Earliest trigger date to <em>include</em>.{/ts}</div></td> - </tr> - <tr class="crm-scheduleReminder-effective_end_date"> - <td class="right">{$form.effective_end_date.label}</td> - <td colspan="3">{$form.effective_end_date.html} <div class="description">{ts}Earliest trigger date to <em>exclude</em>.{/ts}</div></td> - </tr> - <tr> - <td class="label" width="20%">{$form.from_name.label}</td> - <td>{$form.from_name.html} {help id="id-from_name_email"}</td> - </tr> - <tr> - <td class="label" width="20%">{$form.from_email.label}</td> - <td>{$form.from_email.html} </td> - </tr> - <tr class="crm-scheduleReminder-form-block-recipient"> - <td id="recipientLabel" class="right">{$form.recipient.label}</td><td colspan="3">{$form.limit_to.html} {help id="limit_to" class="limit_to" title=$form.recipient.label}{$form.recipient.html} {help id="recipient" class="recipient" title=$recipientLabels.activity}</td> - </tr> - <tr id="recipientList" class="crm-scheduleReminder-form-block-recipientListing recipient"> - <td class="right">{$form.recipient_listing.label}</td><td colspan="3">{$form.recipient_listing.html}</td> - </tr> - <tr id="recipientManual" class="crm-scheduleReminder-form-block-recipient_manual_id recipient"> - <td class="label">{$form.recipient_manual_id.label}</td> - <td>{$form.recipient_manual_id.html}</td> - </tr> - - <tr id="recipientGroup" class="crm-scheduleReminder-form-block-recipient_group_id recipient"> - <td class="label">{$form.group_id.label}</td> - <td>{$form.group_id.html}</td> - </tr> - {if !empty($form.mode)} - <tr id="msgMode" class="crm-scheduleReminder-form-block-mode"> - <td class="label">{$form.mode.label}</td> - <td>{$form.mode.html}</td> - </tr> - {/if} - {if !empty($multilingual)} - <tr class="crm-scheduleReminder-form-block-filter-contact-language"> - <td class="label">{$form.filter_contact_language.label}</td> - <td>{$form.filter_contact_language.html} {help id="filter_contact_language"}</td> - </tr> - <tr class="crm-scheduleReminder-form-block-communication-language"> - <td class="label">{$form.communication_language.label}</td> - <td>{$form.communication_language.html} {help id="communication_language"}</td> - </tr> - {/if} - <tr class="crm-scheduleReminder-form-block-active"> - <td class="label">{$form.is_active.label}</td> - <td>{$form.is_active.html}</td> - </tr> - </table> - <fieldset id="email" class="crm-collapsible" style="display: block;"> - <legend class="collapsible-title">{ts}Email Screen{/ts}</legend> - <div> - <table id="email-field-table" class="form-layout-compressed"> - <tr class="crm-scheduleReminder-form-block-template"> - <td class="label">{$form.template.label}</td> - <td>{$form.template.html}</td> - </tr> - <tr class="crm-scheduleReminder-form-block-subject"> - <td class="label">{$form.subject.label}</td> - <td> - {$form.subject.html|crmAddClass:huge} - <input class="crm-token-selector big" data-field="subject" /> - {help id="id-token-subject" file="CRM/Contact/Form/Task/Email.hlp"} - </td> - </tr> - </table> - {include file="CRM/Contact/Form/Task/EmailCommon.tpl" upload=1 noAttach=1} - </div> - </fieldset> - {if !empty($sms)} - <fieldset id="sms" class="crm-collapsible"><legend class="collapsible-title">{ts}SMS Screen{/ts}</legend> - <div> - <table id="sms-field-table" class="form-layout-compressed"> - <tr id="smsProvider" class="crm-scheduleReminder-form-block-sms_provider_id"> - <td class="label">{$form.sms_provider_id.label}</td> - <td>{$form.sms_provider_id.html}</td> + <tr class="crm-scheduleReminder-form-block-communication-language"> + <td class="label">{$form.communication_language.label}</td> + <td>{$form.communication_language.html} {help id="communication_language"}</td> </tr> - <tr class="crm-scheduleReminder-form-block-sms-template"> - <td class="label">{$form.SMStemplate.label}</td> - <td>{$form.SMStemplate.html}</td> - </tr> - </table> - {include file="CRM/Contact/Form/Task/SMSCommon.tpl" upload=1 noAttach=1} - <div> - </fieldset> - {/if} - -{include file="CRM/common/showHideByFieldValue.tpl" - trigger_field_id = "is_repeat" - trigger_value = "true" - target_element_id = "repeatFields" - target_element_type = "table-row" - field_type = "radio" - invert = "false" -} - -{include file="CRM/common/showHideByFieldValue.tpl" - trigger_field_id ="recipient" - trigger_value = 'manual' - target_element_id ="recipientManual" - target_element_type ="table-row" - field_type ="select" - invert = 0 -} - -{include file="CRM/common/showHideByFieldValue.tpl" - trigger_field_id ="recipient" - trigger_value = 'group' - target_element_id ="recipientGroup" - target_element_type ="table-row" - field_type ="select" - invert = 0 -} + {/if} + <tr class="crm-scheduleReminder-form-block-active"> + <td class="label">{$form.is_active.label}</td> + <td>{$form.is_active.html}</td> + </tr> + </table> + <fieldset id="email-section" class="crm-collapsible" style="display: block;"> + <legend class="collapsible-title">{ts}Email{/ts}</legend> + <div> + <table id="email-field-table" class="form-layout-compressed"> + <tr> + <td class="label">{$form.from_name.label}</td> + <td> + {$form.from_name.html} + {$form.from_email.label} + {$form.from_email.html} + {help id="id-from_name_email"} + </td> + </tr> + <tr class="crm-scheduleReminder-form-block-template"> + <td class="label">{$form.template.label}</td> + <td>{$form.template.html}</td> + </tr> + <tr class="crm-scheduleReminder-form-block-subject"> + <td class="label">{$form.subject.label}</td> + <td> + {$form.subject.html|crmAddClass:huge} + <input class="crm-token-selector big" data-field="subject" /> + {help id="id-token-subject" file="CRM/Contact/Form/Task/Email.hlp"} + </td> + </tr> + </table> + {include file="CRM/Contact/Form/Task/EmailCommon.tpl" upload=1 noAttach=1} + </div> + </fieldset> + {if $sms} + <fieldset id="sms-section" class="crm-collapsible"><legend class="collapsible-title">{ts}SMS{/ts}</legend> + <div> + <table id="sms-field-table" class="form-layout-compressed"> + <tr class="crm-scheduleReminder-form-block-sms_provider_id"> + <td class="label">{$form.sms_provider_id.label} <span class="crm-marker">*</span></td> + <td>{$form.sms_provider_id.html}</td> + </tr> + <tr class="crm-scheduleReminder-form-block-sms-template"> + <td class="label">{$form.SMStemplate.label}</td> + <td>{$form.SMStemplate.html}</td> + </tr> + </table> + {include file="CRM/Contact/Form/Task/SMSCommon.tpl" upload=1 noAttach=1} + <div> + </fieldset> + {/if} -{literal} - <script type='text/javascript'> - CRM.$(function($) { - var $form = $('form.{/literal}{$form.formClass}{literal}'), - recipientMapping = eval({/literal}{$recipientMapping}{literal}); + {literal} + <script type='text/javascript'> + (function($, _) { + $(function($) { + const $form = $('form.{/literal}{$form.formClass}{literal}'), + controlFields = {/literal}{$controlFields|@json_encode}{literal}, + recurringFrequencyOptions = {/literal}{$recurringFrequencyOptions|@json_encode}{literal}; - $('#absolute_date', $form).change(function() { - $('.crm-scheduleReminder-effective_start_date, .crm-scheduleReminder-effective_end_date').toggle(($(this).val() === null)); - }); - $('#start_action_offset', $form).change(function() { - $('.crm-scheduleReminder-effective_start_date, .crm-scheduleReminder-effective_end_date').toggle(($(this).val() !== null)); - }); + // Reload metadata when a controlField is changed + $form.on('change', 'input', function() { + if (controlFields.includes(this.name)) { + const values = {} + controlFields.forEach(function(fieldName) { + const $input = $('[name=' + fieldName + ']', $form); + values[fieldName] = $input.data('select2') ? $input.select2('val') : $input.val(); + }); + // Get directly dependent fields + let $dependentFields = $('[controlField=' + this.name + ']', $form); + // Get sub-dependencies (fortunately the dependency depth doesn't go deeper) + $('[controlField=' + this.name + ']').each(function() { + $dependentFields = $dependentFields.add($('[controlField=' + this.name + ']', $form).not($dependentFields)); + }) + $dependentFields.addClass('loading').prop('disabled', true).val(''); + toggleRecipientManualGroup(); + const dependentFieldNames = $dependentFields.map((i, element) => $(element).attr('name')).get(); + CRM.api4('ActionSchedule', 'getFields', { + select: ['name', 'label', 'options', 'input_attrs', 'required'], + action: 'create', + loadOptions: ['id', 'label'], + values: values, + where: [['name', 'IN', dependentFieldNames]] + }).then(function(fieldSpecs) { + fieldSpecs.forEach(function(fieldSpec) { + const $field = $('input[name=' + fieldSpec.name + ']', $form), + $label = $('label[for=' + fieldSpec.name + ']', $form); + $label.text(fieldSpec.label); + if (fieldSpec.required) { + $label.append(' <span class="crm-marker">*</span>') + } + $field.removeClass('loading'); + // Show field and update option list if applicable + if (fieldSpec.options) { + fieldSpec.options.forEach(function(option) { + option.text = option.label; + delete(option.label); + option.id = '' + option.id; + }); + // Only one option. Select it. + if (fieldSpec.options.length === 1) { + $field.val(fieldSpec.options[0].id); + } + $field.prop('disabled', false).closest('tr').show(); + $field.crmSelect2('destroy'); + $field.crmSelect2({ + multiple: !!fieldSpec.input_attrs.multiple, + data: fieldSpec.options + }); + } else { + // No options - hide field + $field.closest('tr').hide(); + } + }); + toggleLimitTo(); + toggleAbsoluteRelativeDate(); + toggleRepeatSection(); + toggleRecipient(); + }); + } + }); - $('#absolute_date_display', $form).change(function() { - if($(this).val()) { - $('#relativeDate, #relativeDateRepeat, #repeatFields, #OR', $form).hide(); - } else { - $('#relativeDate, #relativeDateRepeat, #OR', $form).show(); - } - }); - if ($('#absolute_date_display', $form).val()) { - $('#relativeDate, #relativeDateRepeat, #repeatFields, #OR', $form).hide(); - } + // Hide dependent fields with no options + $('input[controlField]', $form).each(function() { + if (!getSelect2Options($(this)).length) { + $(this).closest('tr').hide(); + } + }); - loadMsgBox(); - $('#mode', $form).change(loadMsgBox); + // Pluralize frequency options + function pluralizeUnits() { + CRM.utils.setOptions($('[controlField=' + $(this).attr('name') + ']', $form), + $(this).val() === '1' ? recurringFrequencyOptions.single : recurringFrequencyOptions.plural); + } + $('[name=start_action_offset],[name=repetition_frequency_interval],[name=end_frequency_interval]', $form).each(pluralizeUnits).change(pluralizeUnits); - function populateRecipient() { - var mappingID = $('#entity_0', $form).val() || $('[name^=mappingID]', $form).val(); - var recipient = $("#recipient", $form).val(); - $("#recipientList", $form).hide(); - if ($('#limit_to').val() != '' ) { - $.getJSON(CRM.url('civicrm/ajax/recipientListing'), {mappingID: mappingID, recipientType: recipient}, - function (result) { - if (!CRM._.isEmpty(result.recipients)) { - CRM.utils.setOptions($('#recipient_listing', $form), result.recipients); - $("#recipientList", $form).show(); + // If limit_to field has only one option, select it and hide it + function toggleLimitTo() { + const $limitTo = $('[name=limit_to]', $form), + limitToOptions = getSelect2Options($limitTo); + if (limitToOptions.length < 2) { + $limitTo.val(limitToOptions[0].id).closest('span').hide(); + } else { + $limitTo.closest('span').show(); } } - ); - } - - showHideLimitTo(); - } - // CRM-14070 Hide limit-to when entity is activity - function showHideLimitTo() { - // '1' is the value of "Activity" in the entity select box. - $('#limit_to', $form).toggle(!($('#entity_0', $form).val() == '1')); - if ($('#entity_0', $form).val() != '1' || !($('#entity_0').length)) { - // Some Event entity is selected. - if (['2', '3', '5'].includes($('#entity_0', $form).val()) || {/literal}'{$context}'{literal} === 'event') { - $('#limit_to option[value="2"]', $form).attr('disabled','disabled').removeAttr('selected'); - } - else { - $('#limit_to option[value="2"]', $form).removeAttr('disabled'); - } - // Anything but Activity is selected. - if ($('#limit_to', $form).val() == '') { - $('tr.recipient:visible, #recipientList, #recipient, a.recipient').hide(); - $('a.limit_to').show(); - } - else { - $('a.limit_to, a.recipient').show(); - $('#recipient').css("margin-left", "12px"); - } - $("label[for='recipient']").text('{/literal}{$recipientLabels.other}{literal}'); - } - else { - // Activity is selected. - $('#recipient, a.recipient').show() - $('#recipient').css("margin-left", "-2px"); - $('a.limit_to').hide(); - $("label[for='recipient']").text('{/literal}{$recipientLabels.activity}{literal}'); - } - } + function toggleRecipientManualGroup() { + toggleElementBySelection('recipient', {manual: 'recipient_manual', group: 'group_id'}); + } - $('#recipient', $form).change(populateRecipient); + function toggleAbsoluteRelativeDate() { + toggleElementBySelection('absolute_or_relative_date', {absolute: 'absolute_date', relative: 'start_action_offset'}); + $('.crm-scheduleReminder-effective_start_date, .crm-scheduleReminder-effective_end_date', $form).toggle(($('[name=absolute_or_relative_date]', $form).val() === 'relative')); + } - {/literal}{if !$context}{literal} - var entity = $('#entity_0', $form).val(); - if (!(entity === '2' || entity === '3')) { - $('#recipientList', $form).hide(); - } + function toggleRepeatSection() { + toggleElementBySelection('is_repeat', {'true': 'repetition_frequency_interval,end_frequency_interval'}); + } - $('#entity_0, #limit_to', $form).change(buildSelects); + function toggleRecipient() { + if ($('[name=limit_to]', $form).val()) { + $('[name=recipient]', $form).closest('span').show(); + } else { + $('[name=recipient]', $form).val('').closest('span').hide(); + } + } - buildSelects(); + function toggleEmailOrSms() { + const mode = $('[name=mode]', $form).val(), + showSMS = (mode === 'SMS' || mode === 'User_Preference'); + $('#email-section', $form).toggle(mode !== 'SMS'); + $('#sms-section', $form).toggle(showSMS); + if (showSMS) { + showSaveUpdateChkBox('SMS'); + } + } - function buildSelects() { - var mappingID = $('#entity_0', $form).val(); - var isLimit = $('#limit_to', $form).val(); + // Given an input and a set of {optionVal: 'field1,field2'} pairs, show the field(s) that correspond + // to the selected option, while hiding and clearing the others. + function toggleElementBySelection(controlFieldName, options) { + const $controlField = $('[name=' + controlFieldName + ']', $form), + selectedOption = $controlField.is(':checkbox') ? $controlField.is(':checked').toString() : $controlField.val(); + Object.keys(options).forEach(targetValue => { + const targetFieldNames = options[targetValue].split(','); + targetFieldNames.forEach(function(fieldName) { + const $field = $('[name=' + fieldName + ']', $form); + $field.closest('span,tr').toggle(selectedOption === targetValue); + if (selectedOption !== targetValue && $field.val()) { + $field.val('').change(); + } + }); + }); + } - $.getJSON(CRM.url('civicrm/ajax/mapping'), {mappingID: mappingID, isLimit: isLimit}, - function (result) { - CRM.utils.setOptions($('#start_action_date', $form), result.sel4); - CRM.utils.setOptions($('#end_date', $form), result.sel4); - CRM.utils.setOptions($('#recipient', $form), result.sel5); - recipientMapping = result.recipientMapping; - populateRecipient(); + function getSelect2Options($input) { + const data = $input.data(); + // Use raw data.selectParams if select2 widget hasn't been initialized yet + return data.select2 ? data.select2.opts.data : data.selectParams.data; } - ); - } - {/literal}{else}{literal} - populateRecipient(); - $('#limit_to', $form).change(populateRecipient); - {/literal}{/if}{literal} - function loadMsgBox() { - if (cj('#mode').val() == 'Email' || cj('#mode').val() == 0){ - cj('#sms').hide(); - cj('#email').show(); - } - else if (cj('#mode').val() == 'SMS'){ - cj('#email').hide(); - cj('#sms').show(); - showSaveUpdateChkBox('SMS'); - } - else if (cj('#mode').val() == 'User_Preference'){ - cj('#email').show(); - cj('#sms').show(); - showSaveUpdateChkBox('SMS'); - } - } + $('[name=absolute_or_relative_date]', $form) + .change(toggleAbsoluteRelativeDate) + .change(function() { + if ($(this).val() === 'absolute') { + $('[name=absolute_date]', $form).next().datepicker('show'); + } + }); + + $('[name=is_repeat]', $form).click(toggleRepeatSection); + $('[name=mode]', $form).change(toggleEmailOrSms); + $('[name=limit_to]', $form).change(toggleRecipient); - }); - </script> -{/literal} + // Wait for widgets (select2, datepicker) to be initialized + window.setTimeout(function() { + toggleLimitTo(); + toggleRecipientManualGroup(); + toggleAbsoluteRelativeDate(); + toggleRepeatSection(); + toggleEmailOrSms(); + toggleRecipient(); + }); + }); + })(CRM.$, CRM._); + </script> + {/literal} -{/if} + {/if} - <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div> + <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div> </div> diff --git a/civicrm/templates/CRM/Admin/Form/Setting/SettingField.tpl b/civicrm/templates/CRM/Admin/Form/Setting/SettingField.tpl index 0ebecbbe7c31a96fb77cac7b93e090ab63f5b057..7b8ce8101f43755ff0d325282d5df5af4d49ea0b 100644 --- a/civicrm/templates/CRM/Admin/Form/Setting/SettingField.tpl +++ b/civicrm/templates/CRM/Admin/Form/Setting/SettingField.tpl @@ -2,7 +2,7 @@ <tr class="crm-setting-form-block-{$setting_name}"> <td class="label">{$form.$setting_name.label}</td> <td> - {if !empty($fieldSpec.wrapper_element)} + {if array_key_exists('wrapper_element', $fieldSpec) && !empty($fieldSpec.wrapper_element)} {$fieldSpec.wrapper_element.0|smarty:nodefaults}{$form.$setting_name.html}{$fieldSpec.wrapper_element.1|smarty:nodefaults} {else} {$form.$setting_name.html} diff --git a/civicrm/templates/CRM/Admin/Page/APIExplorer.js b/civicrm/templates/CRM/Admin/Page/APIExplorer.js index 6ef22537bf2f8f02fdd9918480e9c32e8781876e..e54d6bcd8005377f083401d74d2727cdeed31ffd 100644 --- a/civicrm/templates/CRM/Admin/Page/APIExplorer.js +++ b/civicrm/templates/CRM/Admin/Page/APIExplorer.js @@ -808,36 +808,6 @@ }); } - /** - * Fetch list of example files for a given entity - */ - function getExamples() { - CRM.utils.setOptions($('#example-action').prop('disabled', true).addClass('loading'), []); - $.getJSON(CRM.url('civicrm/ajax/apiexample', {entity: $(this).val()})) - .then(function(result) { - CRM.utils.setOptions($('#example-action').prop('disabled', false).removeClass('loading'), result); - }); - } - - /** - * Fetch and display an example file - */ - function getExample() { - var - entity = $('#example-entity').val(), - action = $('#example-action').val(); - if (entity && action) { - $('#example-result').block(); - $.get(CRM.url('civicrm/ajax/apiexample', {file: entity + '/' + action})) - .then(function(result) { - $('#example-result').unblock().text(result); - prettyPrint('#example-result'); - }); - } else { - $('#example-result').text($('#example-result').attr('placeholder')); - } - } - /** * Fetch entity docs & actions */ @@ -1002,7 +972,7 @@ }); // Initialize widgets - $('#api-entity, #example-entity, #doc-entity').crmSelect2({ + $('#api-entity, #doc-entity').crmSelect2({ // Add strikethough class to selection to indicate deprecated apis formatSelection: function(option) { return $(option.element).hasClass('strikethrough') ? '<span class="strikethrough">' + option.text + '</span>' : option.text; @@ -1051,8 +1021,6 @@ items: '.api-chain-row, .api-param-row' }); $('#api-join').on('change', 'input', onSelectJoin); - $('#example-entity').on('change', getExamples); - $('#example-action').on('change', getExample); $('#doc-entity').on('change', getDocEntity); $('#doc-action').on('change', getDocAction); $('#api-params-add').on('click', function(e) { diff --git a/civicrm/templates/CRM/Admin/Page/APIExplorer.tpl b/civicrm/templates/CRM/Admin/Page/APIExplorer.tpl index 6e97653060d033ba5c87bcf5d5b7fbec72ebc322..f541fcb568058612e8088ba0a93906446089c927 100644 --- a/civicrm/templates/CRM/Admin/Page/APIExplorer.tpl +++ b/civicrm/templates/CRM/Admin/Page/APIExplorer.tpl @@ -23,8 +23,7 @@ max-height: 50em; } pre#api-result, - div#doc-result, - pre#example-result { + div#doc-result { padding:1em; border: 1px solid lightgrey; margin-top: 1em; @@ -234,9 +233,6 @@ <li class="ui-corner-all" title="GUI to build and execute API calls"> <a href="#explorer-tab"><i class="crm-i fa-search" aria-hidden="true"></i> {ts}Explorer{/ts}</a> </li> - <li class="ui-corner-all" title="Auto-generated examples from the test suite"> - <a href="#examples-tab"><i class="crm-i fa-book" aria-hidden="true"></i> {ts}Examples{/ts}</a> - </li> <li class="ui-corner-all" title="API source-code and code-level documentation"> <a href="#docs-tab"><i class="crm-i fa-code" aria-hidden="true"></i> {ts}Code Docs{/ts}</a> </li> @@ -320,30 +316,6 @@ </div> </div> - <div id="examples-tab"> - <div class="crm-block crm-form-block"> - <form id="api-examples"> - <label for="example-entity">{ts}Entity{/ts}:</label> - <select class="crm-form-select big required" id="example-entity" name="entity"> - <option value="" selected="selected">{ts}Choose{/ts}...</option> - {foreach from=$examples item=entity} - <option value="{$entity}" {if !empty($entities.deprecated) && in_array($entity, $entities.deprecated)}class="strikethrough"{/if}> - {$entity} - </option> - {/foreach} - </select> - - <label for="example-action">{ts}Example{/ts}:</label> - <select class="crm-form-select big crm-select2" id="example-action" name="action"> - <option value="" selected="selected">{ts}Choose{/ts}...</option> - </select> -<pre id="example-result" class="linenums lang-php" placeholder="{ts escape='html'}Results are displayed here.{/ts}"> -{ts}Results are displayed here.{/ts} -</pre> - </form> - </div> - </div> - <div id="docs-tab"> <div class="crm-block crm-form-block"> <form id="api-docs"> diff --git a/civicrm/templates/CRM/Admin/Page/Access.tpl b/civicrm/templates/CRM/Admin/Page/Access.tpl index db04f7f1c3492dded87738319ebafb8eae039dec..dd63c63f4764ac3ea220f584eedaa465003656d7 100644 --- a/civicrm/templates/CRM/Admin/Page/Access.tpl +++ b/civicrm/templates/CRM/Admin/Page/Access.tpl @@ -10,29 +10,36 @@ {capture assign=docUrlText}{ts}Access Control Documentation{/ts}{/capture} {capture assign=docLink}{docURL page="user/initial-set-up/permissions-and-access-control/" text=$docUrlText}{/capture} <div class="help"> - <p>{ts 1=$docLink}ACLs (Access Control Lists) allow you control access to CiviCRM data. An ACL consists of an <strong>Operation</strong> (e.g. 'View' or 'Edit'), a <strong>set of Data</strong> that the operation can be performed on (e.g. a group of contacts), and a <strong>Role</strong> that has permission to do this operation. Refer to the %1 for more info.{/ts} - {if $config->userSystem->is_drupal EQ '1'}{ts}Note that a CiviCRM ACL Role is not related to the Drupal Role.{/ts}{/if}</p> - <p>{ts}<strong>EXAMPLE:</strong> 'Team Leaders' (<em>ACL Role</em>) can 'Edit' (<em>Operation</em>) all contacts in the 'Active Volunteers Group' (<em>Data</em>).{/ts}</p> - <p>{ts 1=$ufAccessURL|smarty:nodefaults 2=$jAccessParams 3=$config->userFramework}Use <a href='%1' %2>%3 Access Control</a> to manage basic access to CiviCRM components and menu items. Use CiviCRM ACLs to control access to specific CiviCRM contact groups. You can also configure ACLs to grant or deny access to specific Events, Profiles, and/or Custom Data Fields.{/ts}</p> - <p>{ts 1=$config->userFramework}Note that %1 Access Control permissions take precedence over CiviCRM ACLs. If you wish to use CiviCRM ACLs, first disable the related permission in %1 Access control for a user role, and then gradually add ACLs to replace that permission for certain groups of contacts.{/ts} + <p>{ts 1=$docLink}ACLs (Access Control Lists) allow you control access to CiviCRM data. An ACL consists of an <strong>Operation</strong> (e.g. 'View' or 'Edit'), a <strong>set of Data</strong> that the operation can be performed on (e.g. a group of contacts), and a <strong>Role</strong> that has permission to do this operation. Refer to the %1 for more info.{/ts} + {if $config->userSystem->is_drupal EQ '1'}{ts}Note that a CiviCRM ACL Role is not related to the Drupal Role.{/ts}{/if}</p> + <p>{ts}<strong>EXAMPLE:</strong> 'Team Leaders' (<em>ACL Role</em>) can 'Edit' (<em>Operation</em>) all contacts in the 'Active Volunteers Group' (<em>Data</em>).{/ts}</p> + <p>{ts}CiviCRM ACLs can control access to specific CiviCRM contact groups. You can also configure ACLs to grant or deny access to specific Events, Profiles or Custom Data Fields.{/ts}</p> + {if $config->userFramework == 'Standalone'} + <p>{ts 1=$ufAccessURL|smarty:nodefaults}Note that <a href="%1">User Role</a> permissions take precedence over CiviCRM ACLs. If you wish to use CiviCRM ACLs, first disable the related permission in User Roles, and then gradually add ACLs to replace that permission for certain groups of contacts.{/ts} + {else} + <p>{ts 1=$ufAccessURL|smarty:nodefaults 2=$jAccessParams 3=$config->userFramework}Note that <a href='%1' %2>%3 permissions</a> take precedence over CiviCRM ACLs. If you wish to use CiviCRM ACLs, first disable the related permission in %3 for a user role, and then gradually add ACLs to replace that permission for certain groups of contacts.{/ts} + {/if} </div> - - <table class="report"> - <tr> - <td class="nowrap"><a href="{$ufAccessURL|smarty:nodefaults}" {$jAccessParams} id="adminAccess"><i class="crm-i fa-chevron-right fa-fw" aria-hidden="true"></i> {ts 1=$config->userFramework}%1 Access Control{/ts}</a></td> - <td>{ts}Grant access to CiviCRM components and other CiviCRM permissions.{/ts}</td> - </tr> - <tr><td colspan="2" class="separator"><strong>{ts}Use following steps if you need to control View and/or Edit permissions for specific contact groups, specific profiles or specific custom data fields.{/ts}</strong></td></tr> - <tr> - <td class="nowrap"><a href="{crmURL p='civicrm/admin/options/acl_role' q="reset=1"}" id="editACLRoles"><i class="crm-i fa-users fa-fw" aria-hidden="true"></i> {ts}1. Manage Roles{/ts}</a></td> - <td>{ts}Each CiviCRM ACL Role is assigned a set of permissions. Use this link to create or edit the different roles needed for your site.{/ts}</td> - </tr> - <tr> - <td class="nowrap"><a href="{crmURL p='civicrm/acl/entityrole' q="reset=1"}" id="editRoleAssignments"><i class="crm-i fa-user-plus fa-fw" aria-hidden="true"></i> {ts}2. Assign Users to CiviCRM ACL Roles{/ts}</a></td> - <td>{ts}Once you have defined CiviCRM ACL Roles and granted ACLs to those Roles, use this link to assign users to role(s).{/ts}</td> - </tr> - <tr> - <td class="nowrap"><a href="{crmURL p='civicrm/acl' q="reset=1"}" id="editACLs"><i class="crm-i fa-id-card-o fa-fw" aria-hidden="true"></i> {ts}3. Manage ACLs{/ts}</a></td> - <td>{ts}ACLs define permission to do an operation on a set of data, and grant that permission to a CiviCRM ACL Role. Use this link to create or edit the ACLs for your site.{/ts}</td> - </tr> - </table> +<table class="report"> + <tr> + {if $config->userFramework == 'Standalone'} + <td class="nowrap"><a href="{$ufAccessURL|smarty:nodefaults}" id="adminAccess"><i class="crm-i fa-chevron-right fa-fw" aria-hidden="true"></i>{ts}User Roles{/ts}</a></td> + {else} + <td class="nowrap"><a href="{$ufAccessURL|smarty:nodefaults}" {$jAccessParams} id="adminAccess"><i class="crm-i fa-chevron-right fa-fw" aria-hidden="true"></i> {ts 1=$config->userFramework}%1 Permissions{/ts}</a></td> + {/if} + <td>{ts}Grant access to CiviCRM components and other CiviCRM permissions.{/ts}</td> + </tr> + <tr><td colspan="2" class="separator"><strong>{ts}Use following steps if you need to control View and/or Edit permissions for specific contact groups, specific profiles or specific custom data fields.{/ts}</strong></td></tr> + <tr> + <td class="nowrap"><a href="{crmURL p='civicrm/admin/options/acl_role' q="reset=1"}" id="editACLRoles"><i class="crm-i fa-users fa-fw" aria-hidden="true"></i> {ts}1. Manage Roles{/ts}</a></td> + <td>{ts}Each CiviCRM ACL Role is assigned a set of permissions. Use this link to create or edit the different roles needed for your site.{/ts}</td> + </tr> + <tr> + <td class="nowrap"><a href="{crmURL p='civicrm/acl/entityrole' q="reset=1"}" id="editRoleAssignments"><i class="crm-i fa-user-plus fa-fw" aria-hidden="true"></i> {ts}2. Assign Users to CiviCRM ACL Roles{/ts}</a></td> + <td>{ts}Once you have defined CiviCRM ACL Roles and granted ACLs to those Roles, use this link to assign users to role(s).{/ts}</td> + </tr> + <tr> + <td class="nowrap"><a href="{crmURL p='civicrm/acl' q="reset=1"}" id="editACLs"><i class="crm-i fa-id-card-o fa-fw" aria-hidden="true"></i> {ts}3. Manage ACLs{/ts}</a></td> + <td>{ts}ACLs define permission to do an operation on a set of data, and grant that permission to a CiviCRM ACL Role. Use this link to create or edit the ACLs for your site.{/ts}</td> + </tr> +</table> diff --git a/civicrm/templates/CRM/Admin/Page/ContactType.tpl b/civicrm/templates/CRM/Admin/Page/ContactType.tpl index 8428faa6f52979044e833a41096d5c9287589609..d50a4c97b34d087c162366c228d2a17a0abd38e9 100644 --- a/civicrm/templates/CRM/Admin/Page/ContactType.tpl +++ b/civicrm/templates/CRM/Admin/Page/ContactType.tpl @@ -32,7 +32,7 @@ </tr> </thead> {foreach from=$rows item=row} - <tr id="contact_type-{$row.id}" data-action="create" class="{cycle values="odd-row,even-row"} {if !empty($row.class)}{$row.class}{/if} crm-contactType crm-entity {if NOT $row.is_active} disabled{/if}"> + <tr id="contact_type-{$row.id}" data-action="create" class="{cycle values="odd-row,even-row"} {$row.class} crm-contactType crm-entity {if NOT $row.is_active} disabled{/if}"> <td class="crm-contactType-label crm-editable" data-field="label">{ts}{$row.label}{/ts}</td> <td class="crm-contactType-parent">{if $row.parent}{ts}{$row.parent_label}{/ts}{else}{ts}(built-in){/ts}{/if}</td> <td class="crm-contactType-description crm-editable" data-field="description" data-type="textarea">{$row.description}</td> diff --git a/civicrm/templates/CRM/Admin/Page/MailSettings.tpl b/civicrm/templates/CRM/Admin/Page/MailSettings.tpl index 35aa2cd59b2820b81a0095a5a5cc67073b7b75c1..7fce4665dd291f60ecd8fd291a05b9d566bebbd5 100644 --- a/civicrm/templates/CRM/Admin/Page/MailSettings.tpl +++ b/civicrm/templates/CRM/Admin/Page/MailSettings.tpl @@ -13,7 +13,8 @@ <div id="mSettings"> <div class="form-item"> {strip} - <table cellpadding="0" cellspacing="0" border="0" class="row-highlight"> + {include file="CRM/common/enableDisableApi.tpl"} + <table cellpadding="0" cellspacing="0" border="0" class="selector row-highlight"> <thead class="sticky"> <th>{ts}Name{/ts}</th> <th>{ts}Server{/ts}</th> @@ -29,7 +30,7 @@ <th></th> </thead> {foreach from=$rows item=row} - <tr id='rowid{$row.id}' class="crm-mailSettings {cycle values="odd-row,even-row"}"> + <tr id='mail_settings-{$row.id}' class="crm-entity {cycle values="odd-row,even-row"} {if NOT $row.is_active} disabled{/if}"> <td class="crm-mailSettings-name">{$row.name}</td> <td class="crm-mailSettings-server">{$row.server}</td> <td class="crm-mailSettings-username">{$row.username}</td> diff --git a/civicrm/templates/CRM/Admin/Page/Reminders.tpl b/civicrm/templates/CRM/Admin/Page/Reminders.tpl index f4e225f4ef2bcca9c95ac2dbe873567d682a9da3..0418fd99e4a59eafd686c25094da278c94756caf 100644 --- a/civicrm/templates/CRM/Admin/Page/Reminders.tpl +++ b/civicrm/templates/CRM/Admin/Page/Reminders.tpl @@ -28,7 +28,7 @@ </thead> {if $rows and is_array($rows)} {foreach from=$rows item=row} - <tr id="action_schedule-{$row.id}" class="crm-entity {cycle values="odd-row,even-row"}{if !empty($row.class)} {$row.class}{/if}{if NOT $row.is_active} disabled{/if}"> + <tr id="action_schedule-{$row.id}" class="crm-entity {cycle values="odd-row,even-row"} {$row.class}{if NOT $row.is_active} disabled{/if}"> <td class="crm-scheduleReminders-title crm-editable" data-field="title">{$row.title}</td> <td class="crm-scheduleReminders-value">{$row.entity} - {$row.value}</td> <td class="crm-scheduleReminders-description">{if $row.absolute_date}{$row.absolute_date|crmDate}{else}{$row.start_action_offset} {$row.start_action_unit}{if $row.start_action_offset > 1}{ts}(s){/ts}{/if} {$row.start_action_condition} {$row.entityDate}{/if}</td> diff --git a/civicrm/templates/CRM/Admin/Page/ScheduleReminders.tpl b/civicrm/templates/CRM/Admin/Page/ScheduleReminders.tpl index c5ed999c9508b534749fef58f0612a75badf3d23..a37ec7e0dbf6e1a45bdaaa99895b7a00a836692f 100644 --- a/civicrm/templates/CRM/Admin/Page/ScheduleReminders.tpl +++ b/civicrm/templates/CRM/Admin/Page/ScheduleReminders.tpl @@ -8,20 +8,13 @@ +--------------------------------------------------------------------+ *} {* this template is for configuring Scheduled Reminders *} -{if !empty($setTab) and $setTab eq 1} - {if !empty($component) and $component eq 'event'} - {include file="CRM/Event/Form/ManageEvent/Tab.tpl"} - {/if} -{else} {if $action eq 1 or $action eq 2 or $action eq 8 or $action eq 16384} {include file="CRM/Admin/Form/ScheduleReminders.tpl"} {else} - {if empty($component)} - {capture assign=schedRemindersDocLink}{docURL page="user/email/scheduled-reminders/"}{/capture} - <div class="help"> - {ts}Scheduled reminders allow you to automatically send messages to contacts regarding their memberships, participation in events, or other activities.{/ts} {$schedRemindersDocLink} - </div> - {/if} + {capture assign=schedRemindersDocLink}{docURL page="user/email/scheduled-reminders/"}{/capture} + <div class="help"> + {ts}Scheduled reminders allow you to automatically send messages to contacts regarding their memberships, participation in events, or other activities.{/ts} {$schedRemindersDocLink} + </div> <div class="crm-content-block crm-block"> {if $rows} <div id="reminder"> @@ -34,14 +27,7 @@ </div> {/if} <div class="action-link"> - {assign var='link' value="civicrm/admin/scheduleReminders/edit"} - {if !empty($component)} - {assign var='urlParams' value="action=add&context=$component&compId=$id&reset=1"} - {else} - {assign var='urlParams' value="action=add&reset=1"} - {/if} - {crmButton p=$link q=$urlParams id="newScheduleReminder" icon="plus-circle"}{ts}Add Reminder{/ts}{/crmButton} + {crmButton p=$addNewLink id="newScheduleReminder" icon="plus-circle"}{ts}Add Reminder{/ts}{/crmButton} </div> </div> {/if} -{/if} diff --git a/civicrm/templates/CRM/Batch/Form/Search.tpl b/civicrm/templates/CRM/Batch/Form/Search.tpl index 66054c2c9c6ea030b3b9c977bee322daf88ef3c9..45b13212f4ad6af045afc7e033380c7f8562c79f 100644 --- a/civicrm/templates/CRM/Batch/Form/Search.tpl +++ b/civicrm/templates/CRM/Batch/Form/Search.tpl @@ -11,12 +11,7 @@ <h3>{ts}Data Entry Batches{/ts}</h3> <table class="form-layout-compressed"> <tr> - <td> - {$form.title.html}<br /> - <span class="description font-italic"> - {ts}Complete OR partial batch name.{/ts} - </span> - </td> + <td>{$form.title.html}</td> <td>{include file="CRM/common/formButtons.tpl" location=''}</td> </tr> </table> diff --git a/civicrm/templates/CRM/Case/Form/CaseView.tpl b/civicrm/templates/CRM/Case/Form/CaseView.tpl index 0c2422ba0323f8c4b5efc8d58760fdf9ef38b634..fba20e624d5bc5accb1b9a7fa3e9256c2654de9e 100644 --- a/civicrm/templates/CRM/Case/Form/CaseView.tpl +++ b/civicrm/templates/CRM/Case/Form/CaseView.tpl @@ -24,7 +24,7 @@ <td colspan="5" class="label"> {ts}Clients:{/ts} {foreach from=$caseRoles.client item=client name=clients} - <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}View contact record{/ts}">{$client.display_name}</a>{if not $smarty.foreach.clients.last}, {/if} + <a href="{crmURL p='civicrm/contact/view' q="action=view&reset=1&cid=`$client.contact_id`"}" title="{ts}View contact record{/ts}">{$client.display_name}</a>{if count($caseRoles.client) gt 1}<a class="crm-popup crm-hover-button" href="{crmURL p='civicrm/contact/view/case/deleteClient' q="action=delete&reset=1&cid=`$client.contact_id`&id=`$caseId`&rcid=`$contactID`"}" title="{ts}Remove Client{/ts}"><i class="crm-i fa-times" aria-hidden="true"></i></a>{/if}{if not $smarty.foreach.clients.last}, {/if} {/foreach} <a href="#addClientDialog" class="crm-hover-button case-miniform" title="{ts}Add Client{/ts}" data-key="{crmKey name='civicrm/case/ajax/addclient'}"> <i class="crm-i fa-user-plus" aria-hidden="true"></i> diff --git a/civicrm/templates/CRM/Case/Form/DeleteClient.tpl b/civicrm/templates/CRM/Case/Form/DeleteClient.tpl new file mode 100644 index 0000000000000000000000000000000000000000..c25999b745c3e103594f59cdccecc769e87613b4 --- /dev/null +++ b/civicrm/templates/CRM/Case/Form/DeleteClient.tpl @@ -0,0 +1,18 @@ +{* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ +*} +{* template for assigning the current case to another client*} +<div class="crm-block crm-form-block crm-case-editclient-form-block"> + <div class="messages status no-popup"> + {icon icon="fa-info-circle"}{/icon} {ts 1=$currentClientName|escape 2=$id}Remove Client %1 from case %2{/ts} + </div> + <div class="crm-form-block"> + <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="bottom"}</div> + </div> +</div> diff --git a/civicrm/templates/CRM/Contact/Form/Domain.tpl b/civicrm/templates/CRM/Contact/Form/Domain.tpl index d3d9547effe20a903d9be8fab4173d7008c0cf40..d1328bff1c74a5fb624610e903e6aaf3552ad1c3 100644 --- a/civicrm/templates/CRM/Contact/Form/Domain.tpl +++ b/civicrm/templates/CRM/Contact/Form/Domain.tpl @@ -28,15 +28,20 @@ <h3>{ts}Default Organization Address{/ts}</h3> <div class="description">{ts 1={domain.address}}CiviMail mailings must include the sending organization's address. This is done by putting the %1 token in either the body or footer of the mailing. This token may also be used in regular 'Email - send now' messages and in other Message Templates. The token is replaced by the address entered below when the message is sent.{/ts}</div> - {include file="CRM/Contact/Form/Edit/Address.tpl" blockId=1 masterAddress='' parseStreetAddress=''} + {include file="CRM/Contact/Form/Edit/Address.tpl" blockId=1 masterAddress='' parseStreetAddress='' className=''} <h3>{ts}Organization Contact Information{/ts}</h3> <div class="description">{ts}You can also include general email and/or phone contact information in mailings.{/ts} {help id="additional-contact"}</div> <table class="form-layout-compressed"> {* Display the email block *} - {include file="CRM/Contact/Form/Edit/Email.tpl" blockId=1} - - {* Display the phone block *} - {include file="CRM/Contact/Form/Edit/Phone.tpl" blockId=1} + <tr> + <td>{ts}Email{/ts}</td> + <td>{$form.email.1.email.html|crmAddClass:email}</td> + </tr> + <tr> + <td>{ts}Phone{/ts}</td> + <td>{$form.phone.1.phone.html}<span class="crm-phone-ext">{ts context="phone_ext"}ext.{/ts} {$form.phone.1.phone_ext.html|crmAddClass:four} </span></td> + <td colspan="2">{$form.phone.1.phone_type_id.html}</td> + </tr> </table> <div class="spacer"></div> diff --git a/civicrm/templates/CRM/Contact/Form/Edit/Address.tpl b/civicrm/templates/CRM/Contact/Form/Edit/Address.tpl index 42699f2f3632f12ca71e9c3b1e7308081a8dd89d..d89db16ae853367498a778b23245773c5af8ad56 100644 --- a/civicrm/templates/CRM/Contact/Form/Edit/Address.tpl +++ b/civicrm/templates/CRM/Contact/Form/Edit/Address.tpl @@ -69,7 +69,7 @@ </div> {/if} -{if $title and $className eq 'CRM_Contact_Form_Contact'} +{if $className eq 'CRM_Contact_Form_Contact' && $title} </div> </div><!-- /.crm-accordion-body --> </div><!-- /.crm-accordion-wrapper --> diff --git a/civicrm/templates/CRM/Contact/Form/Edit/Email.tpl b/civicrm/templates/CRM/Contact/Form/Edit/Email.tpl index b84017515550839f1eae372bc942593aa90fd42e..80d6008cb273728d3e9f4b09557e0d829073f767 100644 --- a/civicrm/templates/CRM/Contact/Form/Edit/Email.tpl +++ b/civicrm/templates/CRM/Contact/Form/Edit/Email.tpl @@ -11,6 +11,7 @@ {* @var $form Contains the array for the form elements and other form associated information assigned to the template by the controller*} {* @var $blockId Contains the current email block id in evaluation, and assigned in the CRM/Contact/Form/Location.php file *} +{* note this is only called from CRM_Contact_Form_Contact in core so the className if clauses are not needed & should be phased out *} {if !$addBlock} <tr> <td>{ts}Email{/ts} diff --git a/civicrm/templates/CRM/Contact/Form/Edit/Phone.tpl b/civicrm/templates/CRM/Contact/Form/Edit/Phone.tpl index ff649fc4ba5aae75334f60d38a832eef20c6b5a2..7e6001697dd0a29964a7ed980b8b3321e54373c6 100644 --- a/civicrm/templates/CRM/Contact/Form/Edit/Phone.tpl +++ b/civicrm/templates/CRM/Contact/Form/Edit/Phone.tpl @@ -11,6 +11,7 @@ {* @var $form Contains the array for the form elements and other form associated information assigned to the template by the controller*} {* @var blockId Contains the current block id, and assigned in the CRM/Contact/Form/Location.php file *} +{* note this is only called from CRM_Contact_Form_Contact in core so the className if clauses are not needed & should be phased out *} {if !$addBlock} <tr> <td>{ts}Phone{/ts}</td> diff --git a/civicrm/templates/CRM/Contact/Form/Search/Intro.tpl b/civicrm/templates/CRM/Contact/Form/Search/Intro.tpl index 9b95ef688b7287699ffb9127a9e8ec4e30e11ef2..1f193c1757e2addbdddb2662600411f34cfe6dd1 100644 --- a/civicrm/templates/CRM/Contact/Form/Search/Intro.tpl +++ b/civicrm/templates/CRM/Contact/Form/Search/Intro.tpl @@ -24,7 +24,7 @@ {if $ssID}{help id="id-add-to-smartGroup"}{/if} {/if} {if $permissionEditSmartGroup} - {capture assign=groupSettingsURL}{crmURL p='civicrm/group' q="action=update&id=`$group.id`&reset=1"}{/capture} + {capture assign=groupSettingsURL}{crmURL p='civicrm/group/edit' q="action=update&id=`$group.id`&reset=1"}{/capture} <a href="{$groupSettingsURL}" class="action-item button"><span><i class="crm-i fa-wrench" aria-hidden="true"></i> {ts}Edit Group Settings{/ts}</span></a> {/if} </div> diff --git a/civicrm/templates/CRM/Contact/Form/Task/SMS.tpl b/civicrm/templates/CRM/Contact/Form/Task/SMS.tpl index b3862f88c4234179885e2f0ce8d934941f4b740d..cde90ede962ca57c0a59b4aa2a9a2d2ab6316fea 100644 --- a/civicrm/templates/CRM/Contact/Form/Task/SMS.tpl +++ b/civicrm/templates/CRM/Contact/Form/Task/SMS.tpl @@ -10,7 +10,7 @@ <div class="crm-block crm-form-block crm-contactSMS-form-block"> {if $suppressedSms > 0} <div class="status"> - <p>{ts count=$suppressedSms plural='SMS will NOT be sent to %count contacts - (no phone number on file, or communication preferences specify DO NOT SMS, or contact is deceased).'}SMS will NOT be sent to %count contact - (no phone number on file, or communication preferences specify DO NOT SMS, or contact is deceased).{/ts}</p> + <p>{ts count=$suppressedSms plural='SMS will NOT be sent to %count contacts who have no mobile phone number, who are set to Do not SMS, or who are deceased.'}SMS will NOT be sent to %count contact who has no mobile phone number, who is set to Do not SMS, or who is deceased.{/ts}</p> </div> {/if} {if $extendTargetContacts > 0} diff --git a/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl b/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl index dbbd2477dd26f02002307bbbe0261af16f79a93a..8f52167de054d600e85f1efa8210ad7102549089 100644 --- a/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl +++ b/civicrm/templates/CRM/Contact/Form/Task/SaveSearch.tpl @@ -39,6 +39,9 @@ <td class="label">{$form.group_type.label}</td> <td>{$form.group_type.html}</td> </tr> + <tr> + <td colspan=2>{include file="CRM/Custom/Form/CustomData.tpl"}</td> + </tr> {/if} </table> diff --git a/civicrm/templates/CRM/Contact/Page/Inline/Address.tpl b/civicrm/templates/CRM/Contact/Page/Inline/Address.tpl index 9c248f2b65d41a906676f9a824bf87916180377a..7c18e020181c857360c634811c30a43de5033365 100644 --- a/civicrm/templates/CRM/Contact/Page/Inline/Address.tpl +++ b/civicrm/templates/CRM/Contact/Page/Inline/Address.tpl @@ -36,7 +36,7 @@ {/if} </div> <div class="crm-content"> - {if !empty($sharedAddresses.$locationIndex.shared_address_display.name)} + {if array_key_exists($locationIndex, $sharedAddresses) && !empty($sharedAddresses.$locationIndex.shared_address_display.name)} <strong>{ts 1=$sharedAddresses.$locationIndex.shared_address_display.name}Address belongs to %1{/ts}</strong><br /> {/if} {$add.display|smarty:nodefaults|purify|nl2br} diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/AuthorizeNetARB.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/AuthorizeNetARB.tpl index 970eb4d6cd52762bd2c4eaba88cd3ef54fd37273..55a0a51db4b095c27f9f0b33586b035c232cb5e6 100644 --- a/civicrm/templates/CRM/Contribute/Form/Contribution/AuthorizeNetARB.tpl +++ b/civicrm/templates/CRM/Contribute/Form/Contribution/AuthorizeNetARB.tpl @@ -42,7 +42,7 @@ </billTo> </subscription> </ARBUpdateSubscriptionRequest> -{elseif isset($subscriptionType) && $subscriptionType eq 'update'} +{elseif $subscriptionType eq 'update'} <?xml version="1.0" encoding="utf-8"?> <ARBUpdateSubscriptionRequest xmlns="AnetApi/xml/v1/schema/AnetApiSchema.xsd"> <merchantAuthentication> diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/Confirm.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/Confirm.tpl index 3bd4ebf4fde3b7cd3dd9fdc6a817c5d7226904b3..d0de9b5044c5d3c97a1a2d4e1297daf6e6c0c07a 100644 --- a/civicrm/templates/CRM/Contribute/Form/Contribution/Confirm.tpl +++ b/civicrm/templates/CRM/Contribute/Form/Contribution/Confirm.tpl @@ -11,8 +11,6 @@ {include file="CRM/Contribute/Form/Contribution/PreviewHeader.tpl"} {/if} -{include file="CRM/common/TrackingFields.tpl"} - <div class="crm-contribution-page-id-{$contributionPageID} crm-block crm-contribution-confirm-form-block" data-page-id="{$contributionPageID}" data-page-template="confirm"> <div class="help"> <p>{ts}Please verify the information below carefully. Click <strong>Go Back</strong> if you need to make changes.{/ts} @@ -30,52 +28,49 @@ {if $amount GTE 0 OR $minimum_fee GTE 0 OR ( $isDisplayLineItems and $lineItem ) } <div class="crm-group amount_display-group"> - {if !$useForMember} - <div class="header-dark"> - {if !$membershipBlock AND $amount OR ( $isDisplayLineItems and $lineItem ) }{ts}Contribution Amount{/ts}{else}{ts}Membership Fee{/ts} {/if} - </div> - {/if} + <div class="header-dark"> + {if !$membershipBlock AND $amount OR ( $isDisplayLineItems and $lineItem ) }{ts}Contribution Amount{/ts}{else}{ts}Membership Fee{/ts} {/if} + </div> + <div class="display-block"> - {if !$useForMember} - {if $lineItem and $isDisplayLineItems} - {if !$amount}{assign var="amount" value=0}{/if} - {assign var="totalAmount" value=$amount} - {include file="CRM/Price/Page/LineItem.tpl" context="Contribution"} - {elseif $is_separate_payment } - {if $amount AND $minimum_fee} - {$membership_name} {ts}Membership{/ts}: - <strong>{$minimum_fee|crmMoney}</strong> - <br/> - {ts}Additional Contribution{/ts}: - <strong>{$amount|crmMoney}</strong> - <br/> - <strong> -------------------------------------------</strong> - <br/> - {ts}Total{/ts}: - <strong>{$amount+$minimum_fee|crmMoney}</strong> - <br/> - {elseif $amount } - {ts}Amount{/ts}: - <strong>{$amount|crmMoney} {if $amount_level }<span class='crm-price-amount-label'> - – {$amount_level}</span>{/if}</strong> - {else} - {$membership_name} {ts}Membership{/ts}: - <strong>{$minimum_fee|crmMoney}</strong> - {/if} + {if $lineItem and $isDisplayLineItems} + {if !$amount}{assign var="amount" value=0}{/if} + {assign var="totalAmount" value=$amount} + {include file="CRM/Price/Page/LineItem.tpl" context="Contribution"} + {elseif $is_separate_payment } + {if $amount AND $minimum_fee} + {$membership_name} {ts}Membership{/ts}: + <strong>{$minimum_fee|crmMoney}</strong> + <br/> + {ts}Additional Contribution{/ts}: + <strong>{$amount|crmMoney}</strong> + <br/> + <strong> -------------------------------------------</strong> + <br/> + {ts}Total{/ts}: + <strong>{$amount+$minimum_fee|crmMoney}</strong> + <br/> + {elseif $amount } + {ts}Amount{/ts}: + <strong>{$amount|crmMoney} {if $amount_level }<span class='crm-price-amount-label'> + – {$amount_level}</span>{/if}</strong> {else} - {if $totalTaxAmount } - {ts 1=$taxTerm}Total %1 Amount{/ts}: - <strong>{$totalTaxAmount|crmMoney} </strong> - <br/> - {/if} - {if $amount} - {if $installments}{ts}Installment Amount{/ts}{else}{ts}Total Amount{/ts}{/if}: - <strong>{$amount|crmMoney:$currency}{if $amount_level }<span class='crm-price-amount-label'> - – {$amount_level}</span>{/if}</strong> - {else} - {$membership_name} {ts}Membership{/ts}: - <strong>{$minimum_fee|crmMoney}</strong> - {/if} + {$membership_name} {ts}Membership{/ts}: + <strong>{$minimum_fee|crmMoney}</strong> + {/if} + {else} + {if $totalTaxAmount } + {ts 1=$taxTerm}Total %1 Amount{/ts}: + <strong>{$totalTaxAmount|crmMoney} </strong> + <br/> + {/if} + {if $amount} + {if $installments}{ts}Installment Amount{/ts}{else}{ts}Total Amount{/ts}{/if}: + <strong>{$amount|crmMoney:$currency}{if $amount_level }<span class='crm-price-amount-label'> + – {$amount_level}</span>{/if}</strong> + {else} + {$membership_name} {ts}Membership{/ts}: + <strong>{$minimum_fee|crmMoney}</strong> {/if} {/if} diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl index c847f4ea8ea041e9825f969bce7beab7345d79c4..b7f75bb871dbb3d3bf834ff9c1a498bdf71f670f 100644 --- a/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl +++ b/civicrm/templates/CRM/Contribute/Form/Contribution/Main.tpl @@ -55,7 +55,6 @@ {crmButton target="_blank" p="civicrm/admin/contribute/settings" q="reset=1&action=update&id=`$contributionPageID`" fb=1 title="$buttonTitle" icon="fa-wrench"}{ts}Configure{/ts}{/crmButton} <div class='clear'></div> {/if} - {include file="CRM/common/TrackingFields.tpl"} <div class="crm-contribution-page-id-{$contributionPageID} crm-block crm-contribution-main-form-block" data-page-id="{$contributionPageID}" data-page-template="main"> diff --git a/civicrm/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl b/civicrm/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl index 8502f4f293d9ddbc2dd037be7b09f6a3bf4897b1..0027c64cdf578183488d1c0f95d12b9da063140e 100644 --- a/civicrm/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl +++ b/civicrm/templates/CRM/Contribute/Form/Contribution/ThankYou.tpl @@ -11,8 +11,6 @@ {include file="CRM/Contribute/Form/Contribution/PreviewHeader.tpl"} {/if} -{include file="CRM/common/TrackingFields.tpl"} - <div class="crm-contribution-page-id-{$contributionPageID} crm-block crm-contribution-thankyou-form-block" data-page-id="{$contributionPageID}" data-page-template="thankyou"> {if $thankyou_text} <div id="thankyou_text" class="crm-section thankyou_text-section"> @@ -76,35 +74,33 @@ {if $amount GTE 0 OR $minimum_fee GTE 0 OR ( $priceSetID and $lineItem ) } <div class="crm-group amount_display-group"> - {if !$useForMember} - <div class="header-dark"> - {if !$membershipBlock AND $amount OR ( $priceSetID and $lineItem )}{ts}Contribution Information{/ts}{else}{ts}Membership Fee{/ts}{/if} - </div> - {/if} + <div class="header-dark"> + {if !$membershipBlock AND $amount OR ( $priceSetID and $lineItem )}{ts}Contribution Information{/ts}{else}{ts}Membership Fee{/ts}{/if} + </div> + <div class="display-block"> - {if !$useForMember} - {if $lineItem and $priceSetID} - {if !$amount}{assign var="amount" value=0}{/if} - {assign var="totalAmount" value=$amount} - {include file="CRM/Price/Page/LineItem.tpl" context="Contribution"} - {elseif $membership_amount} - {$membership_name} {ts}Membership{/ts}: <strong>{$membership_amount|crmMoney}</strong><br /> - {if $amount} - {if !$is_separate_payment} - {ts}Contribution Amount{/ts}: <strong>{$amount|crmMoney}</strong><br /> - {else} - {ts}Additional Contribution{/ts}: <strong>{$amount|crmMoney}</strong><br /> - {/if} - {/if} - <strong> -------------------------------------------</strong><br /> - {ts}Total{/ts}: <strong>{$amount+$membership_amount|crmMoney}</strong><br /> - {else} - {if $totalTaxAmount} - {ts}Tax Amount{/ts}: <strong>{$totalTaxAmount|crmMoney}</strong><br /> + {if $lineItem and $priceSetID} + {if !$amount}{assign var="amount" value=0}{/if} + {assign var="totalAmount" value=$amount} + {include file="CRM/Price/Page/LineItem.tpl" context="Contribution"} + {elseif $membership_amount} + {$membership_name} {ts}Membership{/ts}: <strong>{$membership_amount|crmMoney}</strong><br /> + {if $amount} + {if !$is_separate_payment} + {ts}Contribution Amount{/ts}: <strong>{$amount|crmMoney}</strong><br /> + {else} + {ts}Additional Contribution{/ts}: <strong>{$amount|crmMoney}</strong><br /> {/if} - {if $installments}{ts}Installment Amount{/ts}{else}{ts}Amount{/ts}{/if}: <strong>{$amount|crmMoney:$currency}{if $amount_level } – {$amount_level}{/if}</strong> {/if} + <strong> -------------------------------------------</strong><br /> + {ts}Total{/ts}: <strong>{$amount+$membership_amount|crmMoney}</strong><br /> + {else} + {if $totalTaxAmount} + {ts}Tax Amount{/ts}: <strong>{$totalTaxAmount|crmMoney}</strong><br /> + {/if} + {if $installments}{ts}Installment Amount{/ts}{else}{ts}Amount{/ts}{/if}: <strong>{$amount|crmMoney:$currency}{if $amount_level } – {$amount_level}{/if}</strong> {/if} + {if $receive_date} {ts}Date{/ts}: <strong>{$receive_date|crmDate}</strong><br /> {/if} diff --git a/civicrm/templates/CRM/Contribute/Form/SearchContribution.tpl b/civicrm/templates/CRM/Contribute/Form/SearchContribution.tpl index a282a719b506eeb6bc10ca8037924fe3484f9b54..5e154aa1352d935882ce1d5f35b6ec76d575723c 100644 --- a/civicrm/templates/CRM/Contribute/Form/SearchContribution.tpl +++ b/civicrm/templates/CRM/Contribute/Form/SearchContribution.tpl @@ -11,12 +11,7 @@ <h3>{ts}Find Contribution Pages{/ts}</h3> <table class="form-layout-compressed"> <tr> - <td>{$form.title.html} - <div class="description font-italic"> - {ts}Complete OR partial Contribution Page title.{/ts} - </div> - </td> - + <td>{$form.title.html}</td> <td> <label>{ts}Financial Type{/ts}</label> <div class="listing-box"> diff --git a/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl b/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl index 9a95351e40bdfa930d9cb7624527bce27d2b34d2..3415737f7aa16cf87232d78cb51686e5562bb772 100644 --- a/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl +++ b/civicrm/templates/CRM/Event/Form/ManageEvent/EventInfo.tpl @@ -10,7 +10,6 @@ {* Step 1 of New Event Wizard, and Edit Event Info form. *} <div class="crm-block crm-form-block crm-event-manage-eventinfo-form-block"> - {assign var=eventID value=$id} <div class="crm-submit-buttons"> {include file="CRM/common/formButtons.tpl" location="top"} </div> @@ -42,7 +41,7 @@ </td> </tr> <tr class="crm-event-manage-eventinfo-form-block-participant_listing_id"> - <td class="label">{$form.participant_listing_id.label} {help id="id-listing" isTemplate=$isTemplate action=$action entityId=$entityId}</td> + <td class="label">{$form.participant_listing_id.label} {help id="id-listing" isTemplate=$isTemplate action=$action entityId=$eventID}</td> <td>{$form.participant_listing_id.html}</td> </tr> <tr class="crm-event-manage-eventinfo-form-block-title"> diff --git a/civicrm/templates/CRM/Event/Form/ParticipantView.tpl b/civicrm/templates/CRM/Event/Form/ParticipantView.tpl index c5b2af5bf9ab9072998b279898a91201b07a347b..e0b7d5b42b6adc1d4658289a92ad5f723d76a79e 100644 --- a/civicrm/templates/CRM/Event/Form/ParticipantView.tpl +++ b/civicrm/templates/CRM/Event/Form/ParticipantView.tpl @@ -12,18 +12,18 @@ <div class="action-link"> <div class="crm-submit-buttons"> {if call_user_func(array('CRM_Core_Permission','check'), 'edit event participants')} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context&selectedChild=event"} + {assign var='editUrlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context&selectedChild=event"} {if ( $context eq 'fulltext' || $context eq 'search' ) && $searchKey} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context&selectedChild=event&key=$searchKey"} + {assign var='editUrlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context&selectedChild=event&key=$searchKey"} {/if} - <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$urlParams}" accesskey="e"><span><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Edit{/ts}</span></a> + <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$editUrlParams}" accesskey="e"><span><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Edit{/ts}</span></a> {/if} {if call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviEvent')} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&selectedChild=event"} + {assign var='deleteUrlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&selectedChild=event"} {if ( $context eq 'fulltext' || $context eq 'search' ) && $searchKey} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&selectedChild=event&key=$searchKey"} + {assign var='deleteUrlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&selectedChild=event&key=$searchKey"} {/if} - <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$urlParams}"><span><i class="crm-i fa-trash" aria-hidden="true"></i> {ts}Delete{/ts}</span></a> + <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$deleteUrlParams}"><span><i class="crm-i fa-trash" aria-hidden="true"></i> {ts}Delete{/ts}</span></a> {/if} {include file="CRM/common/formButtons.tpl" location="top"} </div> @@ -99,7 +99,9 @@ <td>{include file="CRM/Price/Page/LineItem.tpl" context="Event"} {if call_user_func(array('CRM_Core_Permission','check'), 'edit event participants')} {if $hasPayment or $parentHasPayment} - <a class="action-item crm-hover-button" href='{crmURL p="civicrm/event/participant/feeselection" q="reset=1&id=`$participantId`&cid=`$contactId`&action=update"}'><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Change Selections{/ts}</a> + <a class="action-item crm-hover-button" href='{crmURL p="civicrm/event/participant/feeselection" q="reset=1&id=`$participantId`&cid=`$contactId`&action=update"}'><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Change Selections{/ts}</a> + {else} + <a class="action-item crm-hover-button" href='{crmURL p="civicrm/contact/view/participant" q=$editUrlParams}'><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Change Selections{/ts}</a> {/if} {if $transferOrCancelLink} <a class="action-item crm-hover-button" href={$transferOrCancelLink}><i class="crm-i fa-times" aria-hidden="true"></i> {ts}Transfer or Cancel{/ts}</a> @@ -126,21 +128,12 @@ {include file="CRM/Contribute/Form/Selector.tpl" context="Search"} {/if} <div class="crm-submit-buttons"> - {if call_user_func(array('CRM_Core_Permission','check'), 'edit event participants')} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context&selectedChild=event"} - {if ( $context eq 'fulltext' || $context eq 'search' ) && $searchKey} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=update&context=$context&selectedChild=event&key=$searchKey"} - {/if} - - <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$urlParams}" accesskey="e"><span><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Edit{/ts}</span></a> - {/if} - {if call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviEvent')} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&selectedChild=event"} - {if ( $context eq 'fulltext' || $context eq 'search' ) && $searchKey} - {assign var='urlParams' value="reset=1&id=$id&cid=$contact_id&action=delete&context=$context&selectedChild=event&key=$searchKey"} - {/if} - <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$urlParams}"><span><i class="crm-i fa-trash" aria-hidden="true"></i> {ts}Delete{/ts}</span></a> - {/if} - {include file="CRM/common/formButtons.tpl" location="bottom"} + {if call_user_func(array('CRM_Core_Permission','check'), 'edit event participants')} + <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$editUrlParams}" accesskey="e"><span><i class="crm-i fa-pencil" aria-hidden="true"></i> {ts}Edit{/ts}</span></a> + {/if} + {if call_user_func(array('CRM_Core_Permission','check'), 'delete in CiviEvent')} + <a class="button" href="{crmURL p='civicrm/contact/view/participant' q=$deleteUrlParams}"><span><i class="crm-i fa-trash" aria-hidden="true"></i> {ts}Delete{/ts}</span></a> + {/if} + {include file="CRM/common/formButtons.tpl" location="bottom"} </div> </div> diff --git a/civicrm/templates/CRM/Event/Form/Registration/AdditionalParticipant.tpl b/civicrm/templates/CRM/Event/Form/Registration/AdditionalParticipant.tpl index 1c00dbfcc6b4f91a687ff4418b8074188908c2a9..3a6523f621866f3a170b3e1447365772b56aeb44 100644 --- a/civicrm/templates/CRM/Event/Form/Registration/AdditionalParticipant.tpl +++ b/civicrm/templates/CRM/Event/Form/Registration/AdditionalParticipant.tpl @@ -14,8 +14,6 @@ {include file="CRM/Event/Form/Registration/PreviewHeader.tpl"} {/if} -{include file="CRM/common/TrackingFields.tpl"} - {*CRM-4320*} {if $statusMessage} <div class="messages status no-popup"> diff --git a/civicrm/templates/CRM/Event/Form/Registration/Confirm.tpl b/civicrm/templates/CRM/Event/Form/Registration/Confirm.tpl index 07987cb835360df1e5e6c075fb376c3def8b6aed..1f10fcc25dd0caac0e7cf2e11e15c2293240bcba 100644 --- a/civicrm/templates/CRM/Event/Form/Registration/Confirm.tpl +++ b/civicrm/templates/CRM/Event/Form/Registration/Confirm.tpl @@ -11,8 +11,6 @@ {include file="CRM/Event/Form/Registration/PreviewHeader.tpl"} {/if} -{include file="CRM/common/TrackingFields.tpl"} - <div class="crm-event-id-{$event.id} crm-block crm-event-confirm-form-block"> <div class="messages status section continue_message-section"><p> {if $isOnWaitlist} diff --git a/civicrm/templates/CRM/Event/Form/Registration/Register.tpl b/civicrm/templates/CRM/Event/Form/Registration/Register.tpl index 660bdd0f662af4bedfee554d6fab57485891610f..769b35276d6c9841ea3bc85c3d31130942b9c065 100644 --- a/civicrm/templates/CRM/Event/Form/Registration/Register.tpl +++ b/civicrm/templates/CRM/Event/Form/Registration/Register.tpl @@ -17,8 +17,6 @@ {include file="CRM/Event/Form/Registration/PreviewHeader.tpl"} {/if} - {include file="CRM/common/TrackingFields.tpl"} - <div class="crm-event-id-{$event.id} crm-block crm-event-register-form-block"> {* moved to tpl since need to show only for primary participant page *} diff --git a/civicrm/templates/CRM/Event/Form/Registration/ThankYou.tpl b/civicrm/templates/CRM/Event/Form/Registration/ThankYou.tpl index 48822814f143acf430589f3df9567ad2ed9ab979..139f2f05e53fc235e0a630d7eb1103e24174d59b 100644 --- a/civicrm/templates/CRM/Event/Form/Registration/ThankYou.tpl +++ b/civicrm/templates/CRM/Event/Form/Registration/ThankYou.tpl @@ -11,8 +11,6 @@ {include file="CRM/Event/Form/Registration/PreviewHeader.tpl"} {/if} -{include file="CRM/common/TrackingFields.tpl"} - <div class="crm-event-id-{$event.id} crm-block crm-event-thankyou-form-block"> {* Don't use "normal" thank-you message for Waitlist and Approval Required registrations - since it will probably not make sense for those situations. dgg *} {if $event.thankyou_text AND (not $isOnWaitlist AND not $isRequireApproval)} @@ -99,7 +97,7 @@ {/if} {if $totalAmount} <div class="crm-section no-label total-amount-section"> - <div class="content bold">{ts}Event Total{/ts}: {$totalAmount|crmMoney}</div> + <div class="content bold">{ts}Total Amount{/ts}: {$totalAmount|crmMoney}</div> <div class="clear"></div> </div> diff --git a/civicrm/templates/CRM/Event/Form/SearchEvent.tpl b/civicrm/templates/CRM/Event/Form/SearchEvent.tpl index fc064e42b976f4eafb03914a9454b1d3485b5a69..45c02680e1129776af5ca4270cbdd921e06863f7 100644 --- a/civicrm/templates/CRM/Event/Form/SearchEvent.tpl +++ b/civicrm/templates/CRM/Event/Form/SearchEvent.tpl @@ -17,9 +17,6 @@ <td> <label>{$form.title.label}</label> {$form.title.html|crmAddClass:twenty} - <div class="description font-italic"> - {ts}Complete OR partial Event name.{/ts} - </div> </td> <td><label>{ts}Event Type{/ts}</label> {$form.event_type_id.html} diff --git a/civicrm/templates/CRM/Group/Form/Search.tpl b/civicrm/templates/CRM/Group/Form/Search.tpl index 67b4815b44e1d5c75acd435dad0b16411f89c1d4..cc635783a5e5f8b4cfa45bcdca10702040946217 100644 --- a/civicrm/templates/CRM/Group/Form/Search.tpl +++ b/civicrm/templates/CRM/Group/Form/Search.tpl @@ -18,36 +18,24 @@ <tr> <td> {$form.title.label}<br /> - {$form.title.html}<br /> - <span class="description font-italic"> - {ts}Complete OR partial group name.{/ts} - </span> + {$form.title.html} </td> {if !empty($form.created_by)} <td> {$form.created_by.label}<br /> - {$form.created_by.html}<br /> - <span class="description font-italic"> - {ts}Complete OR partial creator name.{/ts} - </span> + {$form.created_by.html} </td> {/if} <td> {$form.visibility.label}<br /> - {$form.visibility.html}<br /> - <span class="description font-italic"> - {ts}Filter search by visibility.{/ts} - </span> + {$form.visibility.html} </td> </tr> <tr> {if !empty($form.group_type_search)} <td id="group_type-block"> {$form.group_type_search.label}<br /> - {$form.group_type_search.html}<br /> - <span class="description font-italic"> - {ts}Filter search by group type(s).{/ts} - </span> + {$form.group_type_search.html} </td> {/if} {if !empty($form.group_status)} diff --git a/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl b/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl index 8dfedfa7dbe5d609b6ac1cdb8af866704efc93c1..99c70f8cb2de0783f73199df95411cba6bd8744f 100644 --- a/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl +++ b/civicrm/templates/CRM/Mailing/Form/Unsubscribe.tpl @@ -10,7 +10,7 @@ <div> {if $groupExist} <div class="messages status no-popup"> - {ts}Are you sure you want to be removed from the mailing list(s) shown below:{/ts}<br/> + {ts 1=$name_masked}Are you sure you want to remove %1 from the mailing list(s) shown below:{/ts}<br/> </div> <table class="selector" style="width: auto; margin-top: 20px;"> {counter start=0 skip=1 print=false} @@ -22,8 +22,7 @@ {/foreach} </table> <div class="crm-block crm-form-block crm-miscellaneous-form-block"> - <p>{ts}You are requesting to unsubscribe this email address:{/ts}</p> - <p><strong>{$email_masked}</strong></p> + <p>{ts 1=$name_masked}You are requesting to unsubscribe <strong>all email addresses for %1</strong> from the above mailing list.{/ts}</p> <p> {ts}If this is your email address and you <strong>wish to unsubscribe</strong> please click the <strong>Unsubscribe</strong> button to confirm.{/ts} </p> diff --git a/civicrm/templates/CRM/Price/Form/LineItem.tpl b/civicrm/templates/CRM/Price/Form/LineItem.tpl index e94853330ffc62e80475bb42994c32c7190a93b6..4829b322a60f56c0723c5a2963fc547d087ebe5f 100644 --- a/civicrm/templates/CRM/Price/Form/LineItem.tpl +++ b/civicrm/templates/CRM/Price/Form/LineItem.tpl @@ -108,7 +108,7 @@ {if $context EQ "Contribution"} {ts}Contribution Total{/ts}: {elseif $context EQ "Event"} - {ts}Event Total{/ts}: + {ts}Total Amount{/ts}: {elseif $context EQ "Membership"} {ts}Membership Fee Total{/ts}: {else} diff --git a/civicrm/templates/CRM/Price/Page/LineItem.tpl b/civicrm/templates/CRM/Price/Page/LineItem.tpl index d2c55bebcb520bdb1e3591b68e00fccf26d8b75b..4e22d9780a570560d0a350f38712bd8c37e06b16 100644 --- a/civicrm/templates/CRM/Price/Page/LineItem.tpl +++ b/civicrm/templates/CRM/Price/Page/LineItem.tpl @@ -94,7 +94,7 @@ {if $totalTaxAmount} {ts}Event SubTotal: {$totalAmount-$totalTaxAmount|crmMoney:$currency}{/ts}<br /> {/if} - {ts}Event Total{/ts}: + {ts}Total Amount{/ts}: {elseif $context EQ "Membership"} {ts}Membership Fee Total{/ts}: {else} diff --git a/civicrm/templates/CRM/Report/Form/Layout/Table.tpl b/civicrm/templates/CRM/Report/Form/Layout/Table.tpl index a0ffd698224eebbd7dac922a65474b7915793091..afbb74d3721e36e4f6b01caf8fca0fc994ff9910 100644 --- a/civicrm/templates/CRM/Report/Form/Layout/Table.tpl +++ b/civicrm/templates/CRM/Report/Form/Layout/Table.tpl @@ -99,7 +99,10 @@ {assign var=fieldClass value=$field|cat:"_class"} <td class="crm-report-{$field}{if $header.type eq 1024 OR $header.type eq 1 OR $header.type eq 512} report-contents-right{elseif $row.$field eq 'Subtotal'} report-label{/if}"> {if array_key_exists($fieldLink, $row) && $row.$fieldLink} - <a title="{$row.$fieldHover|escape}" href="{$row.$fieldLink}" {if array_key_exists($fieldClass, $row)} class="{$row.$fieldClass}"{/if}> + <a href="{$row.$fieldLink}" + {if array_key_exists($fieldHover, $row)}title="{$row.$fieldHover|escape}"{/if} + {if array_key_exists($fieldClass, $row)}class="{$row.$fieldClass}"{/if} + > {/if} {if is_array($row.$field)} diff --git a/civicrm/templates/CRM/common/paymentBlock.tpl b/civicrm/templates/CRM/common/paymentBlock.tpl index 4d71d21ded9d63dfc07a21d2eeed248c94ecb229..37be4b714342e56f29e7a8d44c37bee6f47b61d6 100644 --- a/civicrm/templates/CRM/common/paymentBlock.tpl +++ b/civicrm/templates/CRM/common/paymentBlock.tpl @@ -76,35 +76,35 @@ var $form = $('#billing-payment-block').closest('form'); {/literal} {if !$isBackOffice && $contributionPageID} - {capture assign='contributionPageID'}id={$contributionPageID}&{/capture} + {capture assign='contributionPageID'}&id={$contributionPageID}{/capture} {else} {capture assign='contributionPageID'}{/capture} {/if} {if !$isBackOffice && $custom_pre_id} - {capture assign='preProfileID'}pre_profile_id={$custom_pre_id}&{/capture} + {capture assign='preProfileID'}&pre_profile_id={$custom_pre_id}{/capture} {else} {capture assign='preProfileID'}{/capture} {/if} {if $urlPathVar} - {capture assign='urlPathVar'}{$urlPathVar}&{/capture} + {capture assign='urlPathVar'}&{$urlPathVar}{/capture} {else} {capture assign='urlPathVar'}{/capture} {/if} - // Billing profile ID is only ever set on front end forms, to force entering address for pay later. + {* Billing profile ID is only ever set on front end forms, to force entering address for pay later. *} {if !$isBackOffice && $billing_profile_id} - {capture assign='profilePathVar'}billing_profile_id={$billing_profile_id}&{/capture} + {capture assign='profilePathVar'}&billing_profile_id={$billing_profile_id}{/capture} {else} {capture assign='profilePathVar'}{/capture} {/if} - {capture assign='isBackOfficePathVar'}&is_back_office={$isBackOffice}&{/capture} + {capture assign='isBackOfficePathVar'}&is_back_office={$isBackOffice}{/capture} var payment_instrument_id = $('#payment_instrument_id').val(); var currency = '{$currency}'; currency = currency == '' ? $('#currency').val() : currency; - var dataUrl = "{crmURL p='civicrm/payment/form' h=0 q="formName=`$form.formName``$urlPathVar``$isBackOfficePathVar``$profilePathVar``$contributionPageID``$preProfileID`processor_id="}" + type; + var dataUrl = "{crmURL p='civicrm/payment/form' h=0 q="formName=`$form.formName``$urlPathVar``$isBackOfficePathVar``$profilePathVar``$contributionPageID``$preProfileID`"}"; {literal} if (typeof(CRM.vars) != "undefined") { if (typeof(CRM.vars.coreForm) != "undefined") { @@ -117,7 +117,7 @@ } } } - dataUrl = dataUrl + "&payment_instrument_id=" + payment_instrument_id + "¤cy=" + currency; + dataUrl = dataUrl + "&processor_id=" + type + "&payment_instrument_id=" + payment_instrument_id + "¤cy=" + currency; // Processors like pp-express will hide the form submit buttons, so re-show them when switching $('.crm-submit-buttons', $form).show().find('input').prop('disabled', true); diff --git a/civicrm/templates/CRM/common/standalone.tpl b/civicrm/templates/CRM/common/standalone.tpl index 154adfa2f8876cc2c4c837fec5dda86896f0d4ac..3c5b3f46277ad06f8ada2ad0576708010e36b6f3 100644 --- a/civicrm/templates/CRM/common/standalone.tpl +++ b/civicrm/templates/CRM/common/standalone.tpl @@ -38,6 +38,12 @@ </ol></nav> {/if} + {if $standaloneErrors} + <div class="standalone-errors"> + <ul>{$standaloneErrors}</ul> + </div> + {/if} + {if $pageTitle} <div class="crm-title"> <h1 class="title">{if $isDeleted}<del>{/if}{$pageTitle}{if $isDeleted}</del>{/if}</h1> diff --git a/civicrm/vendor/autoload.php b/civicrm/vendor/autoload.php index 66488b582199d07372c6fa5d457e95e6eeb9ac03..3076282fe462a9ed034db491178f0071ebf29e92 100644 --- a/civicrm/vendor/autoload.php +++ b/civicrm/vendor/autoload.php @@ -4,4 +4,4 @@ require_once __DIR__ . '/composer/autoload_real.php'; -return ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075::getLoader(); +return ComposerAutoloaderInit16492df646fda411676597428dd1551a::getLoader(); diff --git a/civicrm/vendor/composer/autoload_real.php b/civicrm/vendor/composer/autoload_real.php index 9b7a9e93cd46b68943f4e98b906336c4b72d4dc2..c6ea2241104e1264d7a2fb6d9b820424b37a6b89 100644 --- a/civicrm/vendor/composer/autoload_real.php +++ b/civicrm/vendor/composer/autoload_real.php @@ -2,7 +2,7 @@ // autoload_real.php @generated by Composer -class ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075 +class ComposerAutoloaderInit16492df646fda411676597428dd1551a { private static $loader; @@ -24,9 +24,9 @@ class ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075 require __DIR__ . '/platform_check.php'; - spl_autoload_register(array('ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075', 'loadClassLoader'), true, true); + spl_autoload_register(array('ComposerAutoloaderInit16492df646fda411676597428dd1551a', 'loadClassLoader'), true, true); self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__))); - spl_autoload_unregister(array('ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075', 'loadClassLoader')); + spl_autoload_unregister(array('ComposerAutoloaderInit16492df646fda411676597428dd1551a', 'loadClassLoader')); $includePaths = require __DIR__ . '/include_paths.php'; $includePaths[] = get_include_path(); @@ -36,7 +36,7 @@ class ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075 if ($useStaticLoader) { require __DIR__ . '/autoload_static.php'; - call_user_func(\Composer\Autoload\ComposerStaticInitfe61fa497677221bb9f34e1742d40075::getInitializer($loader)); + call_user_func(\Composer\Autoload\ComposerStaticInit16492df646fda411676597428dd1551a::getInitializer($loader)); } else { $map = require __DIR__ . '/autoload_namespaces.php'; foreach ($map as $namespace => $path) { @@ -57,12 +57,12 @@ class ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075 $loader->register(true); if ($useStaticLoader) { - $includeFiles = Composer\Autoload\ComposerStaticInitfe61fa497677221bb9f34e1742d40075::$files; + $includeFiles = Composer\Autoload\ComposerStaticInit16492df646fda411676597428dd1551a::$files; } else { $includeFiles = require __DIR__ . '/autoload_files.php'; } foreach ($includeFiles as $fileIdentifier => $file) { - composerRequirefe61fa497677221bb9f34e1742d40075($fileIdentifier, $file); + composerRequire16492df646fda411676597428dd1551a($fileIdentifier, $file); } return $loader; @@ -74,7 +74,7 @@ class ComposerAutoloaderInitfe61fa497677221bb9f34e1742d40075 * @param string $file * @return void */ -function composerRequirefe61fa497677221bb9f34e1742d40075($fileIdentifier, $file) +function composerRequire16492df646fda411676597428dd1551a($fileIdentifier, $file) { if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) { $GLOBALS['__composer_autoload_files'][$fileIdentifier] = true; diff --git a/civicrm/vendor/composer/autoload_static.php b/civicrm/vendor/composer/autoload_static.php index 0f38addf3cbc09dca25a118fe75aaee5483af53c..d50a44363394f8ef3a070fad51aa9657ee7f92c9 100644 --- a/civicrm/vendor/composer/autoload_static.php +++ b/civicrm/vendor/composer/autoload_static.php @@ -4,7 +4,7 @@ namespace Composer\Autoload; -class ComposerStaticInitfe61fa497677221bb9f34e1742d40075 +class ComposerStaticInit16492df646fda411676597428dd1551a { public static $files = array ( 'a4a119a56e50fbb293281d9a48007e0e' => __DIR__ . '/..' . '/symfony/polyfill-php80/bootstrap.php', @@ -729,11 +729,11 @@ class ComposerStaticInitfe61fa497677221bb9f34e1742d40075 public static function getInitializer(ClassLoader $loader) { return \Closure::bind(function () use ($loader) { - $loader->prefixLengthsPsr4 = ComposerStaticInitfe61fa497677221bb9f34e1742d40075::$prefixLengthsPsr4; - $loader->prefixDirsPsr4 = ComposerStaticInitfe61fa497677221bb9f34e1742d40075::$prefixDirsPsr4; - $loader->prefixesPsr0 = ComposerStaticInitfe61fa497677221bb9f34e1742d40075::$prefixesPsr0; - $loader->fallbackDirsPsr0 = ComposerStaticInitfe61fa497677221bb9f34e1742d40075::$fallbackDirsPsr0; - $loader->classMap = ComposerStaticInitfe61fa497677221bb9f34e1742d40075::$classMap; + $loader->prefixLengthsPsr4 = ComposerStaticInit16492df646fda411676597428dd1551a::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInit16492df646fda411676597428dd1551a::$prefixDirsPsr4; + $loader->prefixesPsr0 = ComposerStaticInit16492df646fda411676597428dd1551a::$prefixesPsr0; + $loader->fallbackDirsPsr0 = ComposerStaticInit16492df646fda411676597428dd1551a::$fallbackDirsPsr0; + $loader->classMap = ComposerStaticInit16492df646fda411676597428dd1551a::$classMap; }, null, ClassLoader::class); } diff --git a/civicrm/vendor/composer/installed.json b/civicrm/vendor/composer/installed.json index fb3331db3d4d0789d5a89be5b1606f4fa530268b..f67a645c368c058ac5c9222a733695c2a368c1bd 100644 --- a/civicrm/vendor/composer/installed.json +++ b/civicrm/vendor/composer/installed.json @@ -5368,23 +5368,23 @@ }, { "name": "totten/ca-config", - "version": "v22.11.0", - "version_normalized": "22.11.0.0", + "version": "v23.07.0", + "version_normalized": "23.07.0.0", "source": { "type": "git", "url": "https://github.com/totten/ca_config.git", - "reference": "8a78926b11f00e6a154098aeb2110df53b8a3c67" + "reference": "12571f07b994d555bf1a956e310f224da3ebbd8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/totten/ca_config/zipball/8a78926b11f00e6a154098aeb2110df53b8a3c67", - "reference": "8a78926b11f00e6a154098aeb2110df53b8a3c67", + "url": "https://api.github.com/repos/totten/ca_config/zipball/12571f07b994d555bf1a956e310f224da3ebbd8d", + "reference": "12571f07b994d555bf1a956e310f224da3ebbd8d", "shasum": "" }, "require": { "php": ">=5.2" }, - "time": "2022-11-06T02:39:19+00:00", + "time": "2023-07-14T07:20:50+00:00", "type": "library", "installation-source": "dist", "autoload": { @@ -5406,7 +5406,7 @@ "homepage": "https://github.com/totten/ca_config", "support": { "issues": "https://github.com/totten/ca_config/issues", - "source": "https://github.com/totten/ca_config/tree/v22.11.0" + "source": "https://github.com/totten/ca_config/tree/v23.07.0" }, "install-path": "../totten/ca-config" }, diff --git a/civicrm/vendor/composer/installed.php b/civicrm/vendor/composer/installed.php index 237c915b42031c6a78561da9b94617f4345ef5fd..cd561f72c783f38babfbd9852a42b885da15fb70 100644 --- a/civicrm/vendor/composer/installed.php +++ b/civicrm/vendor/composer/installed.php @@ -1,11 +1,11 @@ <?php return array( 'root' => array( - 'pretty_version' => '5.65.x-dev', - 'version' => '5.65.9999999.9999999-dev', + 'pretty_version' => '5.66.x-dev', + 'version' => '5.66.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '302a4461fa1f8bffbf265e1c1ecc9b1c5e8de5ba', + 'reference' => '5159715422a59556294d10cc056b5a335a6cf9ba', 'name' => 'civicrm/civicrm-core', 'dev' => true, ), @@ -38,12 +38,12 @@ 'dev_requirement' => false, ), 'civicrm/civicrm-core' => array( - 'pretty_version' => '5.65.x-dev', - 'version' => '5.65.9999999.9999999-dev', + 'pretty_version' => '5.66.x-dev', + 'version' => '5.66.9999999.9999999-dev', 'type' => 'library', 'install_path' => __DIR__ . '/../../', 'aliases' => array(), - 'reference' => '302a4461fa1f8bffbf265e1c1ecc9b1c5e8de5ba', + 'reference' => '5159715422a59556294d10cc056b5a335a6cf9ba', 'dev_requirement' => false, ), 'civicrm/civicrm-cxn-rpc' => array( @@ -755,12 +755,12 @@ 'dev_requirement' => false, ), 'totten/ca-config' => array( - 'pretty_version' => 'v22.11.0', - 'version' => '22.11.0.0', + 'pretty_version' => 'v23.07.0', + 'version' => '23.07.0.0', 'type' => 'library', 'install_path' => __DIR__ . '/../totten/ca-config', 'aliases' => array(), - 'reference' => '8a78926b11f00e6a154098aeb2110df53b8a3c67', + 'reference' => '12571f07b994d555bf1a956e310f224da3ebbd8d', 'dev_requirement' => false, ), 'totten/lurkerlite' => array( diff --git a/civicrm/vendor/totten/ca-config/phpunit.xml.dist b/civicrm/vendor/totten/ca-config/phpunit.xml.dist index 3267fce8f8fa033b8b98802c81962a72cbd42dd4..ff6854f7fd4db8f80e11d784e7987feaf961e7b3 100644 --- a/civicrm/vendor/totten/ca-config/phpunit.xml.dist +++ b/civicrm/vendor/totten/ca-config/phpunit.xml.dist @@ -6,7 +6,6 @@ convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" - syntaxCheck="false" bootstrap="tests/bootstrap.php" > <testsuites> diff --git a/civicrm/vendor/totten/ca-config/src/CA/Config/Curl.php b/civicrm/vendor/totten/ca-config/src/CA/Config/Curl.php index 51861e5edb5048cd7ae537405ff5eb1a2abf91f9..ec09b1478ed7e99ede0ca5e32922ace9cd48a649 100644 --- a/civicrm/vendor/totten/ca-config/src/CA/Config/Curl.php +++ b/civicrm/vendor/totten/ca-config/src/CA/Config/Curl.php @@ -10,6 +10,12 @@ class CA_Config_Curl { static private $_singleton; + public $enableSSL; + + public $verifyPeer; + + public $caFile; + /** * Provide a singleton instance to simplify integration. If you prefer * to manage the lifecycle of the config object, then consider using diff --git a/civicrm/vendor/totten/ca-config/src/CA/Config/Stream.php b/civicrm/vendor/totten/ca-config/src/CA/Config/Stream.php index d7b39b5595017444bbab8ef6f01dc5c226727a62..3ab493688a3b9ec406942ab5bf50e59667b7e682 100644 --- a/civicrm/vendor/totten/ca-config/src/CA/Config/Stream.php +++ b/civicrm/vendor/totten/ca-config/src/CA/Config/Stream.php @@ -22,6 +22,12 @@ class CA_Config_Stream { static private $_singleton; + public $enableSSL; + + public $verifyPeer; + + public $caFile; + /** * Provide a singleton instance to simplify integration. If you prefer * to manage the lifecycle of the config object, then consider using diff --git a/civicrm/vendor/totten/ca-config/src/CA/Config/cacert.pem b/civicrm/vendor/totten/ca-config/src/CA/Config/cacert.pem index 0c69f9fc75eca606406dbb01c98f55c749d49303..6b93dc34f8cd251d873ffcea30a80fed04331fba 100644 --- a/civicrm/vendor/totten/ca-config/src/CA/Config/cacert.pem +++ b/civicrm/vendor/totten/ca-config/src/CA/Config/cacert.pem @@ -1,7 +1,7 @@ ## ## Bundle of CA Root Certificates ## -## Certificate data from Mozilla as of: Tue Oct 11 03:12:05 2022 GMT +## Certificate data from Mozilla as of: Tue May 30 03:12:04 2023 GMT ## ## This is a bundle of X.509 certificates of public Certificate Authorities ## (CA). These were automatically extracted from Mozilla's root certificates @@ -14,7 +14,7 @@ ## Just configure this file as the SSLCACertificateFile. ## ## Conversion done with mk-ca-bundle.pl version 1.29. -## SHA256: 3ff8bd209b5f2e739b9f2b96eacb694a774114685b02978257824f37ff528f71 +## SHA256: c47475103fb05bb562bbadff0d1e72346b03236154e1448a6ca191b740f83507 ## @@ -489,29 +489,6 @@ IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN +8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== -----END CERTIFICATE----- -Network Solutions Certificate Authority -======================================= ------BEGIN CERTIFICATE----- -MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG -EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr -IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx -MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu -MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx -jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT -aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT -crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc -/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB -AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP -BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv -bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA -A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q -4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ -GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv -wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD -ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey ------END CERTIFICATE----- - COMODO ECC Certification Authority ================================== -----BEGIN CERTIFICATE----- @@ -626,26 +603,6 @@ NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= -----END CERTIFICATE----- -Hongkong Post Root CA 1 -======================= ------BEGIN CERTIFICATE----- -MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT -DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx -NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n -IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF -AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 -ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr -auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh -qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY -V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV -HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i -h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio -l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei -IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps -T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT -c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== ------END CERTIFICATE----- - SecureSign RootCA11 =================== -----BEGIN CERTIFICATE----- @@ -1284,40 +1241,6 @@ Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= -----END CERTIFICATE----- -E-Tugra Certification Authority -=============================== ------BEGIN CERTIFICATE----- -MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w -DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls -ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN -ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw -NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx -QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl -cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD -DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A -MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd -hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K -CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g -ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ -BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 -E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz -rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq -jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn -rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 -dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB -/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG -MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK -kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO -XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 -VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo -a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc -dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV -KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT -Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 -8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G -C7TbO6Orb1wdtn7os4I07QZcJA== ------END CERTIFICATE----- - T-TeleSec GlobalRoot Class 2 ============================ -----BEGIN CERTIFICATE----- @@ -1654,36 +1577,6 @@ uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 -----END CERTIFICATE----- -Staat der Nederlanden EV Root CA -================================ ------BEGIN CERTIFICATE----- -MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE -CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g -RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M -MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl -cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk -SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW -O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r -0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 -Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV -XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr -08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV -0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd -74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx -fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC -MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa -ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI -eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu -c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq -5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN -b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN -f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi -5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 -WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK -DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy -eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== ------END CERTIFICATE----- - IdenTrust Commercial Root CA 1 ============================== -----BEGIN CERTIFICATE----- @@ -2135,87 +2028,6 @@ F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== -----END CERTIFICATE----- -TrustCor RootCert CA-1 -====================== ------BEGIN CERTIFICATE----- -MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx -MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu -YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe -VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy -dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq -jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 -pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 -JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h -gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw -/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j -BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC -AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 -mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf -ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C -qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P -3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= ------END CERTIFICATE----- - -TrustCor RootCert CA-2 -====================== ------BEGIN CERTIFICATE----- -MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNVBAYTAlBBMQ8w -DQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQwIgYDVQQKDBtUcnVzdENvciBT -eXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0 -eTEfMB0GA1UEAwwWVHJ1c3RDb3IgUm9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEy -MzExNzI2MzlaMIGkMQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5h -bWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U -cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0 -IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnIG7CKqJiJJWQdsg4foDSq8Gb -ZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9Nk -RvRUqdw6VC0xK5mC8tkq1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1 -oYxOdqHp2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nKDOOb -XUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hapeaz6LMvYHL1cEksr1 -/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF3wP+TfSvPd9cW436cOGlfifHhi5q -jxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQP -eSghYA2FFn3XVDjxklb9tTNMg9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+Ctg -rKAmrhQhJ8Z3mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh -8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAdBgNVHQ4EFgQU -2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6UnrybPZx9mCAZ5YwwYrIwDwYD -VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/h -Osh80QA9z+LqBrWyOrsGS2h60COXdKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnp -kpfbsEZC89NiqpX+MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv -2wnL/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RXCI/hOWB3 -S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYaZH9bDTMJBzN7Bj8RpFxw -PIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dv -DDqPys/cA8GiCcjl/YBeyGBCARsaU1q7N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYU -RpFHmygk71dSTlxCnKr3Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANE -xdqtvArBAs8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp5KeX -RKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu1uwJ ------END CERTIFICATE----- - -TrustCor ECA-1 -============== ------BEGIN CERTIFICATE----- -MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP -MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig -U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp -dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw -N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 -MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y -IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG -SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR -MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 -xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc -p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ -fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj -YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL -f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF -AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u -/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F -hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs -J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC -jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== ------END CERTIFICATE----- - SSL.com Root Certification Authority RSA ======================================== -----BEGIN CERTIFICATE----- @@ -3504,3 +3316,48 @@ BggqhkjOPQQDAwNoADBlAjAVXUI9/Lbu9zuxNuie9sRGKEkz0FhDKmMpzE2xtHqiuQ04pV1IKv3L snNdo4gIxwwCMQDAqy0Obe0YottT6SXbVQjgUMzfRGEWgqtJsLKB7HOHeLRMsmIbEvoWTSVLY70e N9k= -----END CERTIFICATE----- + +BJCA Global Root CA1 +==================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIQVW9l47TZkGobCdFsPsBsIDANBgkqhkiG9w0BAQsFADBUMQswCQYDVQQG +EwJDTjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJK +Q0EgR2xvYmFsIFJvb3QgQ0ExMB4XDTE5MTIxOTAzMTYxN1oXDTQ0MTIxMjAzMTYxN1owVDELMAkG +A1UEBhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQD +DBRCSkNBIEdsb2JhbCBSb290IENBMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAPFm +CL3ZxRVhy4QEQaVpN3cdwbB7+sN3SJATcmTRuHyQNZ0YeYjjlwE8R4HyDqKYDZ4/N+AZspDyRhyS +sTphzvq3Rp4Dhtczbu33RYx2N95ulpH3134rhxfVizXuhJFyV9xgw8O558dnJCNPYwpj9mZ9S1Wn +P3hkSWkSl+BMDdMJoDIwOvqfwPKcxRIqLhy1BDPapDgRat7GGPZHOiJBhyL8xIkoVNiMpTAK+BcW +yqw3/XmnkRd4OJmtWO2y3syJfQOcs4ll5+M7sSKGjwZteAf9kRJ/sGsciQ35uMt0WwfCyPQ10WRj +eulumijWML3mG90Vr4TqnMfK9Q7q8l0ph49pczm+LiRvRSGsxdRpJQaDrXpIhRMsDQa4bHlW/KNn +MoH1V6XKV0Jp6VwkYe/iMBhORJhVb3rCk9gZtt58R4oRTklH2yiUAguUSiz5EtBP6DF+bHq/pj+b +OT0CFqMYs2esWz8sgytnOYFcuX6U1WTdno9uruh8W7TXakdI136z1C2OVnZOz2nxbkRs1CTqjSSh +GL+9V/6pmTW12xB3uD1IutbB5/EjPtffhZ0nPNRAvQoMvfXnjSXWgXSHRtQpdaJCbPdzied9v3pK +H9MiyRVVz99vfFXQpIsHETdfg6YmV6YBW37+WGgHqel62bno/1Afq8K0wM7o6v0PvY1NuLxxAgMB +AAGjQjBAMB0GA1UdDgQWBBTF7+3M2I0hxkjk49cULqcWk+WYATAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAUoKsITQfI/Ki2Pm4rzc2IInRNwPWaZ+4 +YRC6ojGYWUfo0Q0lHhVBDOAqVdVXUsv45Mdpox1NcQJeXyFFYEhcCY5JEMEE3KliawLwQ8hOnThJ +dMkycFRtwUf8jrQ2ntScvd0g1lPJGKm1Vrl2i5VnZu69mP6u775u+2D2/VnGKhs/I0qUJDAnyIm8 +60Qkmss9vk/Ves6OF8tiwdneHg56/0OGNFK8YT88X7vZdrRTvJez/opMEi4r89fO4aL/3Xtw+zuh +TaRjAv04l5U/BXCga99igUOLtFkNSoxUnMW7gZ/NfaXvCyUeOiDbHPwfmGcCCtRzRBPbUYQaVQNW +4AB+dAb/OMRyHdOoP2gxXdMJxy6MW2Pg6Nwe0uxhHvLe5e/2mXZgLR6UcnHGCyoyx5JO1UbXHfmp +GQrI+pXObSOYqgs4rZpWDW+N8TEAiMEXnM0ZNjX+VVOg4DwzX5Ze4jLp3zO7Bkqp2IRzznfSxqxx +4VyjHQy7Ct9f4qNx2No3WqB4K/TUfet27fJhcKVlmtOJNBir+3I+17Q9eVzYH6Eze9mCUAyTF6ps +3MKCuwJXNq+YJyo5UOGwifUll35HaBC07HPKs5fRJNz2YqAo07WjuGS3iGJCz51TzZm+ZGiPTx4S +SPfSKcOYKMryMguTjClPPGAyzQWWYezyr/6zcCwupvI= +-----END CERTIFICATE----- + +BJCA Global Root CA2 +==================== +-----BEGIN CERTIFICATE----- +MIICJTCCAaugAwIBAgIQLBcIfWQqwP6FGFkGz7RK6zAKBggqhkjOPQQDAzBUMQswCQYDVQQGEwJD +TjEmMCQGA1UECgwdQkVJSklORyBDRVJUSUZJQ0FURSBBVVRIT1JJVFkxHTAbBgNVBAMMFEJKQ0Eg +R2xvYmFsIFJvb3QgQ0EyMB4XDTE5MTIxOTAzMTgyMVoXDTQ0MTIxMjAzMTgyMVowVDELMAkGA1UE +BhMCQ04xJjAkBgNVBAoMHUJFSUpJTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZMR0wGwYDVQQDDBRC +SkNBIEdsb2JhbCBSb290IENBMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABJ3LgJGNU2e1uVCxA/jl +SR9BIgmwUVJY1is0j8USRhTFiy8shP8sbqjV8QnjAyEUxEM9fMEsxEtqSs3ph+B99iK++kpRuDCK +/eHeGBIK9ke35xe/J4rUQUyWPGCWwf0VHKNCMEAwHQYDVR0OBBYEFNJKsVF/BvDRgh9Obl+rg/xI +1LCRMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2gAMGUCMBq8 +W9f+qdJUDkpd0m2xQNz0Q9XSSpkZElaA94M04TVOSG0ED1cxMDAtsaqdAzjbBgIxAMvMh1PLet8g +UXOQwKhbYdDFUDn9hf7B43j4ptZLvZuHjw/l1lOWqzzIQNph91Oj9w== +-----END CERTIFICATE----- diff --git a/civicrm/xml/schema/ACL/ACL.xml b/civicrm/xml/schema/ACL/ACL.xml index 8a19fab23a4c96ed01f7e934d5b0c5ea9e8d2dc4..1e058ab4732e428696113fec05935188547d6faa 100644 --- a/civicrm/xml/schema/ACL/ACL.xml +++ b/civicrm/xml/schema/ACL/ACL.xml @@ -117,7 +117,7 @@ </html> <pseudoconstant> <callback>CRM_ACL_BAO_ACL::getObjectIdOptions</callback> - <prefetch>false</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <field> diff --git a/civicrm/xml/schema/Activity/Activity.xml b/civicrm/xml/schema/Activity/Activity.xml index bc55111df0fc6dfcf47e90b36846c7a918112eb5..9048aa108506de122e7156a630fad54ec98f0646 100644 --- a/civicrm/xml/schema/Activity/Activity.xml +++ b/civicrm/xml/schema/Activity/Activity.xml @@ -373,7 +373,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Campaign/CampaignGroup.xml b/civicrm/xml/schema/Campaign/CampaignGroup.xml index 317c9ee506014c2168d272726b8fb228c8b55e5a..e88fb0a4304952611110232b81c3310d2a614598 100644 --- a/civicrm/xml/schema/Campaign/CampaignGroup.xml +++ b/civicrm/xml/schema/Campaign/CampaignGroup.xml @@ -37,7 +37,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Campaign/Survey.xml b/civicrm/xml/schema/Campaign/Survey.xml index 4ec988168e71e4ba3526ded7f8c947113d91a124..8a2fe3627ca5e0aeee7e9d21672effad9303415c 100644 --- a/civicrm/xml/schema/Campaign/Survey.xml +++ b/civicrm/xml/schema/Campaign/Survey.xml @@ -54,7 +54,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> @@ -91,12 +91,8 @@ <title>Follow up Interval</title> <type>text</type> <comment>Recontact intervals for each status.</comment> - <html> - <type>TextArea</type> - <rows>20</rows> - <cols>80</cols> - </html> <add>3.3</add> + <drop>5.66</drop> </field> <field> diff --git a/civicrm/xml/schema/Case/Case.xml b/civicrm/xml/schema/Case/Case.xml index 7065db62c88f2c04a0536032d22a94f5d2f4d305..d78de6fc224dbbb553f02317707e8ae355b0e171 100644 --- a/civicrm/xml/schema/Case/Case.xml +++ b/civicrm/xml/schema/Case/Case.xml @@ -122,6 +122,7 @@ </pseudoconstant> <html> <type>Select</type> + <controlField>case_type_id</controlField> </html> <add>1.8</add> </field> diff --git a/civicrm/xml/schema/Contact/Contact.xml b/civicrm/xml/schema/Contact/Contact.xml index 4d25e0cd87c947ef04b72650dbe67088997347df..c1d50300f69342e5a5bbca52c6df47f5d374bc45 100644 --- a/civicrm/xml/schema/Contact/Contact.xml +++ b/civicrm/xml/schema/Contact/Contact.xml @@ -137,6 +137,7 @@ <html> <type>Select</type> <multiple>1</multiple> + <controlField>contact_type</controlField> </html> <serialize>SEPARATOR_BOOKEND</serialize> <add>1.5</add> diff --git a/civicrm/xml/schema/Contact/Group.xml b/civicrm/xml/schema/Contact/Group.xml index d97b95dc564b9162a1708768199ea82a8c0bfd0f..80cfc167a6739ec09a862b0ce81bc62d4912112c 100644 --- a/civicrm/xml/schema/Contact/Group.xml +++ b/civicrm/xml/schema/Contact/Group.xml @@ -198,7 +198,7 @@ <keyColumn>id</keyColumn> <nameColumn>name</nameColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> <html> <type>EntityRef</type> @@ -218,7 +218,7 @@ <keyColumn>id</keyColumn> <nameColumn>name</nameColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> <html> <type>EntityRef</type> diff --git a/civicrm/xml/schema/Contribute/Contribution.xml b/civicrm/xml/schema/Contribute/Contribution.xml index 3e7428a1cea619f7d75c93928cf11de0bec61294..dc9ee3122684ec2c424c0ff515ced6ffbef6d16f 100644 --- a/civicrm/xml/schema/Contribute/Contribution.xml +++ b/civicrm/xml/schema/Contribute/Contribution.xml @@ -480,7 +480,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> <html> <type>EntityRef</type> @@ -513,6 +513,8 @@ <headerPattern>/tax(.?am(ou)?nt)?/i</headerPattern> <dataPattern>/^\d+(\.\d{2})?$/</dataPattern> <comment>Total tax amount of this contribution.</comment> + <default>0</default> + <required>true</required> <add>4.6</add> <html> <type>Text</type> diff --git a/civicrm/xml/schema/Contribute/ContributionPage.xml b/civicrm/xml/schema/Contribute/ContributionPage.xml index 025ff8247786b2ba1aa39d70b79dce8092cc73fa..c0e030b048f203c57e380ca35a4beb1bfd567854 100644 --- a/civicrm/xml/schema/Contribute/ContributionPage.xml +++ b/civicrm/xml/schema/Contribute/ContributionPage.xml @@ -222,6 +222,11 @@ <title>Pay Later Receipt</title> <type>text</type> <localizable>true</localizable> + <html> + <type>RichTextEditor</type> + <rows>8</rows> + <cols>60</cols> + </html> <comment>The receipt sent to the user instead of the normal receipt text</comment> <add>2.0</add> </field> @@ -501,7 +506,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Contribute/ContributionRecur.xml b/civicrm/xml/schema/Contribute/ContributionRecur.xml index d15272ffbf96243043fb3d2c64a8fb8173c315ec..0aae506922d5eaa3f7926a8f68bbbaae63e9a458 100644 --- a/civicrm/xml/schema/Contribute/ContributionRecur.xml +++ b/civicrm/xml/schema/Contribute/ContributionRecur.xml @@ -433,7 +433,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Core/ActionSchedule.xml b/civicrm/xml/schema/Core/ActionSchedule.xml index 78da24ff4a6625560fdbae3f102c4e5a9295dfc4..9063c21e40a2269c08eac482d056dd76f062698f 100644 --- a/civicrm/xml/schema/Core/ActionSchedule.xml +++ b/civicrm/xml/schema/Core/ActionSchedule.xml @@ -7,6 +7,7 @@ <comment>Table to store the reminders.</comment> <add>3.4</add> <labelField>title</labelField> + <title>Scheduled Reminder</title> <paths> <browse>civicrm/admin/scheduleReminders</browse> <add>civicrm/admin/scheduleReminders/edit?reset=1&action=add</add> @@ -31,14 +32,27 @@ <name>name</name> <title>Name</title> <type>varchar</type> + <required>true</required> + <html> + <type>Text</type> + </html> <length>64</length> <comment>Name of the action(reminder)</comment> <add>3.4</add> </field> + <index> + <name>UI_name</name> + <fieldName>name</fieldName> + <unique>true</unique> + <add>5.65</add> + </index> <field> <name>title</name> <title>Title</title> <type>varchar</type> + <html> + <type>Text</type> + </html> <length>64</length> <comment>Title of the action(reminder)</comment> <add>3.4</add> @@ -49,8 +63,13 @@ <length>64</length> <comment>Recipient</comment> <html> - <label>Recipient</label> + <label>Limit or Add Recipients</label> + <type>Select</type> + <controlField>mapping_id</controlField> </html> + <pseudoconstant> + <callback>CRM_Core_BAO_ActionSchedule::getRecipientOptions</callback> + </pseudoconstant> <add>3.4</add> </field> <field> @@ -58,10 +77,12 @@ <type>int</type> <comment>Is this the recipient criteria limited to OR in addition to?</comment> <html> - <label>Limit To</label> + <label>Limit/Add</label> + <type>Select</type> + <controlField>mapping_id</controlField> </html> <pseudoconstant> - <callback>CRM_Core_SelectValues::getLimitToValues</callback> + <callback>CRM_Core_BAO_ActionSchedule::getLimitToOptions</callback> </pseudoconstant> <add>4.4</add> </field> @@ -105,6 +126,8 @@ <comment>Reminder Interval.</comment> <default>0</default> <html> + <type>Number</type> + <min>0</min> <label>Start Action Offset</label> </html> <add>3.4</add> @@ -130,8 +153,12 @@ <length>64</length> <comment>Reminder Action</comment> <html> - <label>Start Action condition</label> + <type>Select</type> + <label>Start Condition</label> </html> + <pseudoconstant> + <callback>CRM_Core_SelectValues::beforeAfter</callback> + </pseudoconstant> <add>3.4</add> </field> <field> @@ -181,6 +208,8 @@ <default>0</default> <comment>Time interval for repeating the reminder.</comment> <html> + <type>Number</type> + <min>0</min> <label>Repetition Frequency Interval</label> </html> <add>3.4</add> @@ -205,6 +234,8 @@ <type>int unsigned</type> <comment>Time interval till repeating the reminder.</comment> <html> + <type>Number</type> + <min>0</min> <label>End Frequency Interval</label> </html> <add>3.4</add> @@ -216,8 +247,12 @@ <length>32</length> <comment>Reminder Action till repeating the reminder.</comment> <html> - <label>End Action</label> + <type>Select</type> + <label>End Condition</label> </html> + <pseudoconstant> + <callback>CRM_Core_SelectValues::beforeAfter</callback> + </pseudoconstant> <add>3.4</add> </field> <field> @@ -252,6 +287,11 @@ <name>recipient_manual</name> <title>Recipient Manual</title> <type>varchar</type> + <html> + <type>EntityRef</type> + <label>Manual Recipients</label> + <multiple>1</multiple> + </html> <length>128</length> <comment>Contact IDs to which reminder should be sent.</comment> <serialize>COMMA</serialize> @@ -262,6 +302,16 @@ <title>Recipient Listing</title> <type>varchar</type> <length>128</length> + <serialize>SEPARATOR_TRIMMED</serialize> + <html> + <label>Recipient Roles</label> + <type>Select</type> + <multiple>1</multiple> + <controlField>recipient</controlField> + </html> + <pseudoconstant> + <callback>CRM_Core_BAO_ActionSchedule::getRecipientListingOptions</callback> + </pseudoconstant> <comment>listing based on recipient field.</comment> <add>4.1</add> </field> @@ -269,6 +319,9 @@ <name>body_text</name> <title>Reminder Text</title> <type>longtext</type> + <html> + <type>TextArea</type> + </html> <comment>Body of the mailing in text format.</comment> <add>3.4</add> </field> @@ -276,6 +329,9 @@ <name>body_html</name> <title>Reminder HTML</title> <type>longtext</type> + <html> + <type>RichTextEditor</type> + </html> <comment>Body of the mailing in html format.</comment> <add>3.4</add> </field> @@ -283,6 +339,9 @@ <name>sms_body_text</name> <title>SMS Reminder Text</title> <type>longtext</type> + <html> + <type>TextArea</type> + </html> <comment>Content of the SMS text.</comment> <add>4.5</add> </field> @@ -290,14 +349,20 @@ <name>subject</name> <title>Reminder Subject</title> <type>varchar</type> + <html> + <type>Text</type> + </html> <length>128</length> <comment>Subject of mailing</comment> <add>3.4</add> </field> <field> <name>record_activity</name> - <title>Record Activity for Reminder?</title> + <title>Record Activity</title> <type>boolean</type> + <html> + <type>CheckBox</type> + </html> <default>0</default> <required>true</required> <comment>Record Activity for this reminder?</comment> @@ -314,6 +379,7 @@ </html> <pseudoconstant> <callback>CRM_Core_BAO_ActionSchedule::getMappingOptions</callback> + <suffixes>name,label,icon</suffixes> </pseudoconstant> <comment>Name/ID of the mapping to use on this table</comment> <add>3.4</add> @@ -327,7 +393,7 @@ <table>civicrm_group</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> <html> <type>EntityRef</type> @@ -375,6 +441,10 @@ <name>absolute_date</name> <title>Fixed Date for Reminder</title> <type>date</type> + <html> + <type>Select Date</type> + <formatType>activityDate</formatType> + </html> <comment>Date on which the reminder be sent.</comment> <add>4.1</add> </field> @@ -382,6 +452,10 @@ <name>from_name</name> <title>Reminder from Name</title> <type>varchar</type> + <html> + <label>From Name</label> + <type>Text</type> + </html> <length>255</length> <comment>Name in "from" field</comment> <add>4.5</add> @@ -390,6 +464,10 @@ <name>from_email</name> <title>Reminder From Email</title> <type>varchar</type> + <html> + <label>From Email</label> + <type>Email</type> + </html> <length>255</length> <comment>Email address in "from" field</comment> <add>4.5</add> @@ -418,6 +496,9 @@ <type>Select</type> <label>SMS Provider</label> </html> + <pseudoconstant> + <callback>CRM_Core_SelectValues::smsProvider</callback> + </pseudoconstant> </field> <foreignKey> <name>sms_provider_id</name> @@ -441,9 +522,15 @@ <type>varchar</type> <length>128</length> <comment>Used for multilingual installation</comment> + <serialize>SEPARATOR_TRIMMED</serialize> <html> - <label>Filter Contact Language</label> + <type>Select</type> + <multiple>1</multiple> + <label>Recipients Language</label> </html> + <pseudoconstant> + <callback>CRM_Core_BAO_ActionSchedule::getFilterContactLanguageOptions</callback> + </pseudoconstant> <add>4.7</add> </field> <field> @@ -452,8 +539,12 @@ <length>8</length> <comment>Used for multilingual installation</comment> <html> + <type>Select</type> <label>Communication Language</label> </html> + <pseudoconstant> + <callback>CRM_Core_BAO_ActionSchedule::getCommunicationLanguageOptions</callback> + </pseudoconstant> <add>4.7</add> </field> <field> @@ -484,6 +575,10 @@ <title>Effective start date</title> <uniqueName>action_schedule_effective_start_date</uniqueName> <type>timestamp</type> + <html> + <type>Select Date</type> + <formatType>activityDate</formatType> + </html> <comment>Earliest date to consider start events from.</comment> <required>false</required> <export>true</export> @@ -494,6 +589,10 @@ <title>Effective end date</title> <uniqueName>action_schedule_effective_end_date</uniqueName> <type>timestamp</type> + <html> + <type>Select Date</type> + <formatType>activityDate</formatType> + </html> <comment>Latest date to consider end events from.</comment> <required>false</required> <export>true</export> diff --git a/civicrm/xml/schema/Core/Address.xml b/civicrm/xml/schema/Core/Address.xml index f9f06ed27ca0e46697f365d478a0c0e01e05a3c7..97199ff588950eb6522a38737a63b97911361edf 100644 --- a/civicrm/xml/schema/Core/Address.xml +++ b/civicrm/xml/schema/Core/Address.xml @@ -273,6 +273,8 @@ <keyColumn>id</keyColumn> <labelColumn>name</labelColumn> <abbrColumn>abbreviation</abbrColumn> + <!-- No 'name' suffix tells SearchKit to use Autocomplete. See #25053 --> + <suffixes>label,abbr</suffixes> </pseudoconstant> <html> <type>ChainSelect</type> @@ -301,6 +303,8 @@ <keyColumn>id</keyColumn> <labelColumn>name</labelColumn> <abbrColumn>abbreviation</abbrColumn> + <!-- No 'name' suffix tells SearchKit to use Autocomplete. See #25053 --> + <suffixes>label,abbr</suffixes> </pseudoconstant> <localize_context>province</localize_context> <html> @@ -372,6 +376,8 @@ <labelColumn>name</labelColumn> <nameColumn>iso_code</nameColumn> <abbrColumn>iso_code</abbrColumn> + <!-- No 'name' suffix tells SearchKit to use Autocomplete. See #25053 --> + <suffixes>label,abbr</suffixes> </pseudoconstant> <localize_context>country</localize_context> <html> diff --git a/civicrm/xml/schema/Core/CustomGroup.xml b/civicrm/xml/schema/Core/CustomGroup.xml index 186c9c60d5ea980209a6bd7d14381ef69b9de93c..95f67f66b282523bc78710bfc596a13049853497 100644 --- a/civicrm/xml/schema/Core/CustomGroup.xml +++ b/civicrm/xml/schema/Core/CustomGroup.xml @@ -63,6 +63,7 @@ <add>1.1</add> <pseudoconstant> <callback>CRM_Core_BAO_CustomGroup::getCustomGroupExtendsOptions</callback> + <suffixes>name,label,grouping</suffixes> </pseudoconstant> <html> <type>Select</type> @@ -76,6 +77,7 @@ <comment>FK to civicrm_option_value.id (for option group custom_data_type.)</comment> <pseudoconstant> <callback>CRM_Core_BAO_CustomGroup::getExtendsEntityColumnIdOptions</callback> + <suffixes>name,label,grouping</suffixes> </pseudoconstant> <add>2.2</add> <html> diff --git a/civicrm/xml/schema/Core/Discount.xml b/civicrm/xml/schema/Core/Discount.xml index c1113add761a36df4b3451ffbeb207120574b036..8e7b921866e5e8485f1c5f44598430f76e9b7bed 100644 --- a/civicrm/xml/schema/Core/Discount.xml +++ b/civicrm/xml/schema/Core/Discount.xml @@ -27,6 +27,10 @@ <title>Entity Table</title> <type>varchar</type> <length>64</length> + <pseudoconstant> + <callback>CRM_Core_BAO_Discount::entityTables</callback> + </pseudoconstant> + <required>true</required> <comment>physical tablename for entity being joined to discount, e.g. civicrm_event</comment> <add>2.1</add> </field> @@ -65,6 +69,7 @@ <html> <label>Price Set</label> <type>Select</type> + <controlField>entity_id</controlField> </html> <add>4.3</add> </field> diff --git a/civicrm/xml/schema/Core/EntityTag.xml b/civicrm/xml/schema/Core/EntityTag.xml index cccfd8314dadc9df5507d1ab3937be58891953b4..ab063e8a7d8faf5eeddd07e7f3f4162bdf672944 100644 --- a/civicrm/xml/schema/Core/EntityTag.xml +++ b/civicrm/xml/schema/Core/EntityTag.xml @@ -62,6 +62,7 @@ <html> <type>Select</type> <label>Tag</label> + <controlField>entity_table</controlField> </html> </field> <foreignKey> diff --git a/civicrm/xml/schema/Core/MailSettings.xml b/civicrm/xml/schema/Core/MailSettings.xml index 1a94d54b05c758b39a6dbdf92150e4172ec9455e..9ef04279d1b4902f3b973d7c48f8008601872099 100644 --- a/civicrm/xml/schema/Core/MailSettings.xml +++ b/civicrm/xml/schema/Core/MailSettings.xml @@ -195,4 +195,88 @@ <description>If this option is enabled, CiviCRM will not create new contacts when filing emails.</description> <add>5.31</add> </field> + <field> + <name>is_active</name> + <title>Enabled?</title> + <type>boolean</type> + <comment>Ignored for bounce processing, only for email-to-activity</comment> + <default>1</default> + <required>true</required> + <html> + <type>CheckBox</type> + </html> + <add>5.66</add> + </field> + <field> + <name>activity_type_id</name> + <title>Activity Type</title> + <type>int unsigned</type> + <comment>Implicit FK to civicrm_option_value where option_group = activity_type</comment> + <add>5.66</add> + <pseudoconstant> + <optionGroupName>activity_type</optionGroupName> + </pseudoconstant> + <html> + <type>Select</type> + </html> + </field> + <field> + <name>campaign_id</name> + <title>Campaign ID</title> + <type>int unsigned</type> + <default>NULL</default> + <comment>Foreign key to the Campaign.</comment> + <html> + <type>EntityRef</type> + <label>Campaign</label> + </html> + <add>5.66</add> + <pseudoconstant> + <table>civicrm_campaign</table> + <keyColumn>id</keyColumn> + <labelColumn>title</labelColumn> + <prefetch>FALSE</prefetch> + </pseudoconstant> + </field> + <foreignKey> + <name>campaign_id</name> + <table>civicrm_campaign</table> + <key>id</key> + <add>5.66</add> + <onDelete>SET NULL</onDelete> + </foreignKey> + <field> + <name>activity_source</name> + <title>Activity Source</title> + <type>varchar</type> + <length>4</length> + <comment>Which email recipient to add as the activity source (from, to, cc, bcc).</comment> + <html> + <type>Select</type> + </html> + <add>5.66</add> + </field> + <field> + <name>activity_targets</name> + <title>Activity Targets</title> + <type>varchar</type> + <length>16</length> + <comment>Which email recipients to add as the activity targets (from, to, cc, bcc).</comment> + <html> + <type>Select</type> + </html> + <serialize>COMMA</serialize> + <add>5.66</add> + </field> <field> + <name>activity_assignees</name> + <title>Activity Assignees</title> + <type>varchar</type> + <length>16</length> + <comment>Which email recipients to add as the activity assignees (from, to, cc, bcc).</comment> + <html> + <type>Select</type> + </html> + <serialize>COMMA</serialize> + <add>5.66</add> + </field> </table> diff --git a/civicrm/xml/schema/Core/UserJob.xml b/civicrm/xml/schema/Core/UserJob.xml index 53a66964d9bb190035d9b752a60d0dca6a0f05db..bdd196a9c9703918e8ec531a2300e25f7579805a 100644 --- a/civicrm/xml/schema/Core/UserJob.xml +++ b/civicrm/xml/schema/Core/UserJob.xml @@ -132,6 +132,7 @@ </html> <pseudoconstant> <callback>CRM_Core_BAO_UserJob::getTypes</callback> + <suffixes>name,label,url</suffixes> </pseudoconstant> <add>5.50</add> </field> diff --git a/civicrm/xml/schema/Event/Event.xml b/civicrm/xml/schema/Event/Event.xml index a83492e983d9e9b390a16db463236c97519acba1..987d8e01ebc8c39d4f184d19be7c9edfaa075feb 100644 --- a/civicrm/xml/schema/Event/Event.xml +++ b/civicrm/xml/schema/Event/Event.xml @@ -831,7 +831,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Event/Participant.xml b/civicrm/xml/schema/Event/Participant.xml index 5d0bd267410efe60db1a4aedaeae7b5e17c3efa7..85e09c766cefe62a07c00b16cdc0c35f40ab1b08 100644 --- a/civicrm/xml/schema/Event/Participant.xml +++ b/civicrm/xml/schema/Event/Participant.xml @@ -287,7 +287,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Mailing/Mailing.xml b/civicrm/xml/schema/Mailing/Mailing.xml index d6f30e66b9026fbc363ce41e01aeb46b8575dd40..3a62f473685249d62ce687fa73309144ef4524f3 100644 --- a/civicrm/xml/schema/Mailing/Mailing.xml +++ b/civicrm/xml/schema/Mailing/Mailing.xml @@ -487,7 +487,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Member/Membership.xml b/civicrm/xml/schema/Member/Membership.xml index bc838f694891aa36096198bd2266461fa3c3b388..cbc921ceab8f79213aa527a52935f4ddcad25254 100644 --- a/civicrm/xml/schema/Member/Membership.xml +++ b/civicrm/xml/schema/Member/Membership.xml @@ -296,7 +296,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Pledge/Pledge.xml b/civicrm/xml/schema/Pledge/Pledge.xml index 779c60965e6511d4763214660bc0217d307fc039..df479d0e6c3732404d02d68702c082c27ad0b089 100644 --- a/civicrm/xml/schema/Pledge/Pledge.xml +++ b/civicrm/xml/schema/Pledge/Pledge.xml @@ -310,6 +310,7 @@ <type>int unsigned</type> <html> <type>Select</type> + <label>Status</label> </html> <pseudoconstant> <optionGroupName>pledge_status</optionGroupName> @@ -351,7 +352,7 @@ <table>civicrm_campaign</table> <keyColumn>id</keyColumn> <labelColumn>title</labelColumn> - <prefetch>FALSE</prefetch> + <prefetch>disabled</prefetch> </pseudoconstant> </field> <foreignKey> diff --git a/civicrm/xml/schema/Price/LineItem.xml b/civicrm/xml/schema/Price/LineItem.xml index d34c93dfbdeaa531f8b14313f2797aa2234c59e4..96c05cb02f98c97d55a3be2dad0ff148a66978a8 100644 --- a/civicrm/xml/schema/Price/LineItem.xml +++ b/civicrm/xml/schema/Price/LineItem.xml @@ -224,6 +224,8 @@ <headerPattern>/tax(.?am(ou)?nt)?/i</headerPattern> <dataPattern>/^\d+(\.\d{2})?$/</dataPattern> <comment>tax of each item</comment> + <default>0</default> + <required>true</required> <add>4.6</add> <html> <type>Text</type> diff --git a/civicrm/xml/templates/civicrm_data.tpl b/civicrm/xml/templates/civicrm_data.tpl index 616499282195116bb34478d6f26c78a51044b0a9..5885d2b7190f17753acfccf3ad7d1b42bfc5f978 100644 --- a/civicrm/xml/templates/civicrm_data.tpl +++ b/civicrm/xml/templates/civicrm_data.tpl @@ -43,62 +43,54 @@ VALUES INSERT INTO civicrm_domain (name, version, contact_id) VALUES (@domainName, '2.2', @contactID); SELECT @domainID := id FROM civicrm_domain where name = 'Default Domain Name'; -{php}echo (include "sql/civicrm_data/civicrm_location_type.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_relationship_type.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_tag.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_component.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_financial_type.sqldata.php")->toSQL();{/php} -{php} - $optionGroups = include 'sql/civicrm_data/civicrm_option_group.php'; - $laterGroups = ['encounter_medium', 'soft_credit_type', 'recent_items_providers']; - foreach ($optionGroups as $groupName => $group) { - if (!in_array($groupName, $laterGroups)) { - echo $group->toSQL(); - } - } -{/php} +{crmSqlData file="sql/civicrm_data/civicrm_location_type.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_relationship_type.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_tag.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_component.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_financial_type.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_option_group/*.sqldata.php" exclude=';(encounter_medium|soft_credit_type|recent_items_providers).sqldata.php$;'} -- CRM-6138 {include file='languages.tpl'} -{php}echo (include "sql/civicrm_data/civicrm_option_group/encounter_medium.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_option_group/encounter_medium.sqldata.php"} -{php}echo (include "sql/civicrm_data/civicrm_membership_status.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_preferences_date.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_payment_processor_type.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_membership_status.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_preferences_date.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_payment_processor_type.sqldata.php"} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/IndividualSupervised.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/OrganizationSupervised.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/HouseholdSupervised.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/IndividualUnsupervised.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/OrganizationUnsupervised.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/HouseholdUnsupervised.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_dedupe_rule/IndividualGeneral.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/IndividualSupervised.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/OrganizationSupervised.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/HouseholdSupervised.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/IndividualUnsupervised.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/OrganizationUnsupervised.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/HouseholdUnsupervised.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_dedupe_rule/IndividualGeneral.sqldata.php"} -{php}echo (include "sql/civicrm_data/civicrm_county.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_county.sqldata.php"} -- Bounce classification patterns -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/AOL.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Away.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Dns.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Host.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Inactive.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Invalid.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Loop.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Quota.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Relay.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Spam.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_mailing_bounce_type/Syntax.sqldata.php")->toSQL();{/php} - -{php}echo (include "sql/civicrm_data/civicrm_uf_group.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_uf_join.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_uf_field.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_participant_status_type.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_contact_type.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/AOL.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Away.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Dns.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Host.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Inactive.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Invalid.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Loop.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Quota.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Relay.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Spam.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_mailing_bounce_type/Syntax.sqldata.php"} + +{crmSqlData file="sql/civicrm_data/civicrm_uf_group.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_uf_join.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_uf_field.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_participant_status_type.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_contact_type.sqldata.php"} {include file='civicrm_msg_template.tpl'} -{php}echo (include "sql/civicrm_data/civicrm_job.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_job.sqldata.php"} -- financial accounts SELECT @option_group_id_fat := max(id) from civicrm_option_group where name = 'financial_account_type'; @@ -107,7 +99,7 @@ SELECT @opexp := value FROM civicrm_option_value WHERE name = 'Expenses' and opt SELECT @opAsset := value FROM civicrm_option_value WHERE name = 'Asset' and option_group_id = @option_group_id_fat; SELECT @opLiability := value FROM civicrm_option_value WHERE name = 'Liability' and option_group_id = @option_group_id_fat; SELECT @opCost := value FROM civicrm_option_value WHERE name = 'Cost of Sales' and option_group_id = @option_group_id_fat; -{php}echo (include "sql/civicrm_data/civicrm_financial_account.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_financial_account.sqldata.php"} SELECT @option_group_id_arel := max(id) from civicrm_option_group where name = 'account_relationship'; SELECT @option_value_rel_id := value FROM civicrm_option_value WHERE option_group_id = @option_group_id_arel AND name = 'Income Account is'; @@ -188,6 +180,6 @@ SELECT @fieldID := max(id) FROM civicrm_price_field WHERE name = 'contribution_a INSERT INTO `civicrm_price_field_value` ( `price_field_id`, `name`, `label`, `amount`, `weight`, `is_default`, `is_active`, `financial_type_id`) VALUES ( @fieldID, 'contribution_amount', 'Contribution Amount', '1', '1', '0', '1', 1); -{php}echo (include "sql/civicrm_data/civicrm_extension.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_option_group/soft_credit_type.sqldata.php")->toSQL();{/php} -{php}echo (include "sql/civicrm_data/civicrm_option_group/recent_items_providers.sqldata.php")->toSQL();{/php} +{crmSqlData file="sql/civicrm_data/civicrm_extension.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_option_group/soft_credit_type.sqldata.php"} +{crmSqlData file="sql/civicrm_data/civicrm_option_group/recent_items_providers.sqldata.php"} diff --git a/civicrm/xml/templates/civicrm_navigation.tpl b/civicrm/xml/templates/civicrm_navigation.tpl index b628524d6182db98b8eebca0d84feb7dc1d47270..33f02e768abde5d2d687ae5872043a1ff8ec3be3 100644 --- a/civicrm/xml/templates/civicrm_navigation.tpl +++ b/civicrm/xml/templates/civicrm_navigation.tpl @@ -344,8 +344,8 @@ SET @usersPermslastID:=LAST_INSERT_ID(); INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) VALUES - ( @domainID, 'civicrm/admin/access?reset=1', '{ts escape="sql" skip="true"}Permissions (Access Control){/ts}', 'Permissions (Access Control)', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 1 ), - ( @domainID, 'civicrm/admin/synchUser?reset=1', '{ts escape="sql" skip="true"}Synchronize Users to Contacts{/ts}', 'Synchronize Users to Contacts', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 2 ); + ( @domainID, 'civicrm/admin/access?reset=1', '{ts escape="sql" skip="true"}Access Control Lists{/ts}', 'Permissions (Access Control)', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 5 ), + ( @domainID, 'civicrm/admin/synchUser?reset=1', '{ts escape="sql" skip="true"}Synchronize Users to Contacts{/ts}', 'Synchronize Users to Contacts', 'administer CiviCRM', '', @usersPermslastID, '1', NULL, 10 ); INSERT INTO civicrm_navigation ( domain_id, url, label, name, permission, permission_operator, parent_id, is_active, has_separator, weight ) diff --git a/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl b/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl index 654224447aa3576fddbcd5eb239c7532a75f8fbd..a4d76250a2c4a62450b8d4447ec808b57cb0a212 100644 --- a/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl +++ b/civicrm/xml/templates/message_templates/contribution_offline_receipt_html.tpl @@ -21,7 +21,10 @@ <tr> <td> {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} - <p>{ts}Below you will find a receipt for this contribution.{/ts}</p> + <p> + {if {contribution.contribution_page_id.receipt_text|boolean}}{contribution.contribution_page_id.receipt_text} + {else}{ts}Below you will find a receipt for this contribution.{/ts}{/if} + </p> </td> </tr> <tr> @@ -163,7 +166,7 @@ </tr> {/if} - {if '{contribution.payment_instrument_id}' and empty($formValues.hidden_CreditCard)} + {if {contribution.payment_instrument_id|boolean}} <tr> <td {$labelStyle}> {ts}Paid By{/ts} diff --git a/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl b/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl index 7f5677af3517e685fd6160ef59aab190127f8192..4e48d1357cd7545d84f7da16c755ae0b72eff7f6 100644 --- a/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl +++ b/civicrm/xml/templates/message_templates/contribution_offline_receipt_text.tpl @@ -1,6 +1,9 @@ {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}{$greeting},{/if} -{ts}Below you will find a receipt for this contribution.{/ts} +{if {contribution.contribution_page_id.receipt_text|boolean}} +{contribution.contribution_page_id.receipt_text} +{else}{ts}Below you will find a receipt for this contribution.{/ts} +{/if} =========================================================== {ts}Contribution Information{/ts} @@ -46,7 +49,7 @@ {if '{contribution.receipt_date}'} {ts}Receipt Date{/ts}: {contribution.receipt_date|crmDate:"shortdate"} {/if} -{if '{contribution.payment_instrument_id}' and empty($formValues.hidden_CreditCard)} +{if {contribution.payment_instrument_id|boolean}} {ts}Paid By{/ts}: {contribution.payment_instrument_id:label} {if '{contribution.check_number}'} {ts}Check Number{/ts}: {contribution.check_number} diff --git a/civicrm/xml/templates/message_templates/contribution_online_receipt_html.tpl b/civicrm/xml/templates/message_templates/contribution_online_receipt_html.tpl index 127b8082a74e94830399eb4ac1e03b8979a55a03..faa9e2611fcc6b2c20ecf5f5766e64128b6a4910 100644 --- a/civicrm/xml/templates/message_templates/contribution_online_receipt_html.tpl +++ b/civicrm/xml/templates/message_templates/contribution_online_receipt_html.tpl @@ -151,13 +151,13 @@ </tr> {/if} - {if !empty($is_monetary) and !empty($trxn_id)} + {if {contribution.trxn_id|boolean}} <tr> <td {$labelStyle}> {ts}Transaction #{/ts} </td> <td {$valueStyle}> - {$trxn_id} + {contribution.trxn_id} </td> </tr> {/if} @@ -407,7 +407,6 @@ </th> </tr> {foreach from=$customPre item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -416,7 +415,6 @@ {$customValue} </td> </tr> - {/if} {/foreach} {/if} @@ -427,7 +425,6 @@ </th> </tr> {foreach from=$customPost item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -436,7 +433,6 @@ {$customValue} </td> </tr> - {/if} {/foreach} {/if} diff --git a/civicrm/xml/templates/message_templates/contribution_online_receipt_text.tpl b/civicrm/xml/templates/message_templates/contribution_online_receipt_text.tpl index fc41c039d6a40571c0101e74a567898e1ed65c20..eaeab5d2bd13c8c47d534acc3af1e2589bf37884 100644 --- a/civicrm/xml/templates/message_templates/contribution_online_receipt_text.tpl +++ b/civicrm/xml/templates/message_templates/contribution_online_receipt_text.tpl @@ -52,8 +52,8 @@ {ts}Date{/ts}: {$receive_date|crmDate} {/if} -{if !empty($is_monetary) and !empty($trxn_id)} -{ts}Transaction #{/ts}: {$trxn_id} +{if {contribution.trxn_id|boolean}} +{ts}Transaction #{/ts}: {contribution.trxn_id} {/if} {if !empty($is_recur)} @@ -187,9 +187,7 @@ =========================================================== {foreach from=$customPre item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} @@ -200,8 +198,6 @@ =========================================================== {foreach from=$customPost item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} diff --git a/civicrm/xml/templates/message_templates/event_offline_receipt_html.tpl b/civicrm/xml/templates/message_templates/event_offline_receipt_html.tpl index 62887a20d2cd674a600468be382c186ff17fabc9..16648dbfb6195ee8497aad578d5527b36fec0981 100644 --- a/civicrm/xml/templates/message_templates/event_offline_receipt_html.tpl +++ b/civicrm/xml/templates/message_templates/event_offline_receipt_html.tpl @@ -23,7 +23,7 @@ {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))} - <p>{$event.confirm_email_text|htmlize}</p> + <p>{$event.confirm_email_text}</p> {/if} {if !empty($isOnWaitlist)} @@ -49,7 +49,7 @@ <tr> <td colspan="2" {$valueStyle}> {event.title}<br /> - {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} + {event.start_date|crmDate}{if {event.end_date|boolean}}-{if '{event.end_date|crmDate:"%Y%m%d"}' === '{event.start_date|crmDate:"%Y%m%d"}'}{event.end_date|crmDate:"Time"}{else}{event.end_date}{/if}{/if} </td> </tr> @@ -133,7 +133,7 @@ {/if} - {if !empty($event.is_public)} + {if {event.is_public|boolean}} <tr> <td colspan="2" {$valueStyle}> {capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} @@ -269,13 +269,13 @@ </tr> {/foreach} {/if} - {if $totalTaxAmount} + {if {contribution.tax_amount|boolean}} <tr> <td {$labelStyle}> {ts}Total Tax Amount{/ts} </td> <td {$valueStyle}> - {$totalTaxAmount|crmMoney:$currency} + {contribution.tax_amount} </td> </tr> {/if} @@ -284,7 +284,7 @@ <tr> <td {$labelStyle}>{ts}Total Paid{/ts}</td> <td {$valueStyle}> - {if {contribution.paid_amount|boolean}}{contribution.paid_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} + {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} </td> </tr> <tr> @@ -295,7 +295,7 @@ <tr> <td {$labelStyle}>{ts}Total Amount{/ts}</td> <td {$valueStyle}> - {if {contribution.total_amount|boolean}}{contribution.total_amount|crmMoney}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} + {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} </td> </tr> {/if} @@ -329,13 +329,13 @@ </tr> {/if} - {if $register_date} + {if {participant.register_date|boolean}} <tr> <td {$labelStyle}> {ts}Registration Date{/ts} </td> <td {$valueStyle}> - {$register_date|crmDate} + {participant.register_date} </td> </tr> {/if} @@ -428,79 +428,6 @@ {/if} {* End of conditional section for Paid events *} - {if !empty($customPre)} - <tr> - <th {$headerStyle}> - {$customPre_grouptitle} - </th> - </tr> - {foreach from=$customPre item=value key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} - <tr> - <td {$labelStyle}> - {$customName} - </td> - <td {$valueStyle}> - {$value} - </td> - </tr> - {/if} - {/foreach} - {/if} - - {if !empty($customPost)} - <tr> - <th {$headerStyle}> - {$customPost_grouptitle} - </th> - </tr> - {foreach from=$customPost item=value key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} - <tr> - <td {$labelStyle}> - {$customName} - </td> - <td {$valueStyle}> - {$value} - </td> - </tr> - {/if} - {/foreach} - {/if} - - {if !empty($customProfile)} - {foreach from=$customProfile item=value key=customName} - <tr> - <th {$headerStyle}> - {ts 1=$customName+1}Participant Information - Participant %1{/ts} - </th> - </tr> - {foreach from=$value item=val key=field} - {if $field eq 'additionalCustomPre' or $field eq 'additionalCustomPost'} - <tr> - <td colspan="2" {$labelStyle}> - {if $field eq 'additionalCustomPre'} - {$additionalCustomPre_grouptitle} - {else} - {$additionalCustomPost_grouptitle} - {/if} - </td> - </tr> - {foreach from=$val item=v key=f} - <tr> - <td {$labelStyle}> - {$f} - </td> - <td {$valueStyle}> - {$v} - </td> - </tr> - {/foreach} - {/if} - {/foreach} - {/foreach} - {/if} - {if !empty($customGroup)} {foreach from=$customGroup item=value key=customName} <tr> diff --git a/civicrm/xml/templates/message_templates/event_offline_receipt_text.tpl b/civicrm/xml/templates/message_templates/event_offline_receipt_text.tpl index c6f5a8550bad96893cb3dd223f86fc0e5b535f97..f4c0805a2d252eadcb1c60fd9296621be941365e 100644 --- a/civicrm/xml/templates/message_templates/event_offline_receipt_text.tpl +++ b/civicrm/xml/templates/message_templates/event_offline_receipt_text.tpl @@ -38,7 +38,7 @@ ==========================================================={if !empty($pricesetFieldsCount) }===================={/if} {event.title} -{event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate}{/if}{/if} +{event.start_date|crmDate}{if {event.end_date|boolean}}-{if '{event.end_date|crmDate:"%Y%m%d"}' === '{event.start_date|crmDate:"%Y%m%d"}'}{event.end_date|crmDate:"Time"}{else}{event.end_date}{/if}{/if} {if !empty($event.participant_role) and $event.participant_role neq 'Attendee' and empty($defaultRole)} {ts}Participant Role{/ts}: {$event.participant_role} @@ -67,7 +67,7 @@ {/if} -{if !empty($event.is_public)} +{if {event.is_public|boolean}} {capture assign=icalFeed}{crmURL p='civicrm/event/ical' q="reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} {ts}Download iCalendar entry for this event.{/ts} {$icalFeed} {capture assign=gCalendar}{crmURL p='civicrm/event/ical' q="gCalendar=1&reset=1&id=`$event.id`" h=0 a=1 fe=1}{/capture} @@ -139,14 +139,14 @@ {/foreach} {/if} -{if $totalTaxAmount} -{ts}Total Tax Amount{/ts}: {$totalTaxAmount|crmMoney:$currency} +{if {contribution.tax_amount|boolean}} +{ts}Total Tax Amount{/ts}: {contribution.tax_amount} {/if} {if {event.is_monetary|boolean}} -{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {if {contribution.paid_amount|boolean}}{contribution.paid_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} +{if {contribution.balance_amount|boolean}}{ts}Total Paid{/ts}: {contribution.paid_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} {ts}Balance{/ts}: {contribution.balance_amount} -{else}{ts}Total Amount{/ts}: {if {contribution.total_amount|boolean}}{contribution.total_amount}{/if} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} +{else}{ts}Total Amount{/ts}: {contribution.total_amount} {if !empty($hookDiscount.message)}({$hookDiscount.message}){/if} {/if} {if !empty($pricesetFieldsCount) } @@ -176,8 +176,8 @@ {/if} -{if $register_date} -{ts}Registration Date{/ts}: {$register_date|crmDate} +{if {participant.register_date|boolean}} +{ts}Registration Date{/ts}: {participant.register_date} {/if} {if $receive_date} {ts}Transaction Date{/ts}: {$receive_date|crmDate} @@ -219,62 +219,6 @@ {/if} {/if} {* End of conditional section for Paid events *} -{if !empty($customPre)} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{$customPre_grouptitle} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$customPre item=value key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} -{$customName}: {$value} -{/if} -{/foreach} -{/if} - -{if !empty($customPost)} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{$customPost_grouptitle} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$customPost item=value key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} -{$customName}: {$value} -{/if} -{/foreach} -{/if} -{if !empty($customProfile)} - -{foreach from=$customProfile item=value key=customName} -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{ts 1=$customName+1}Participant Information - Participant %1{/ts} - -==========================================================={if !empty($pricesetFieldsCount) }===================={/if} - -{foreach from=$value item=val key=field} -{if $field eq 'additionalCustomPre' or $field eq 'additionalCustomPost' } -{if $field eq 'additionalCustomPre' } -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{$additionalCustomPre_grouptitle} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{else} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{$additionalCustomPost_grouptitle} -----------------------------------------------------------{if !empty($pricesetFieldsCount) }--------------------{/if} - -{/if} -{foreach from=$val item=v key=f} -{$f}: {$v} -{/foreach} -{/if} -{/foreach} -{/foreach} -{/if} {if !empty($customGroup)} {foreach from=$customGroup item=value key=customName} =========================================================={if !empty($pricesetFieldsCount) }===================={/if} diff --git a/civicrm/xml/templates/message_templates/event_online_receipt_html.tpl b/civicrm/xml/templates/message_templates/event_online_receipt_html.tpl index ed43e2a8764f2480e79b71823d6757e1e9a275ed..e99c60aa5a5a2f8c232eb8769da2f2aebafe9c5e 100644 --- a/civicrm/xml/templates/message_templates/event_online_receipt_html.tpl +++ b/civicrm/xml/templates/message_templates/event_online_receipt_html.tpl @@ -26,8 +26,8 @@ <td> {assign var="greeting" value="{contact.email_greeting_display}"}{if $greeting}<p>{$greeting},</p>{/if} - {if !empty($event.confirm_email_text) AND (empty($isOnWaitlist) AND empty($isRequireApproval))} - <p>{$event.confirm_email_text|htmlize}</p> + {if {event.confirm_email_text|boolean} AND (empty($isOnWaitlist) AND empty($isRequireApproval))} + <p>{event.confirm_email_text}</p> {else} <p>{ts}Thank you for your registration.{/ts} @@ -64,7 +64,7 @@ <tr> <td colspan="2" {$valueStyle}> {event.title}<br /> - {event.start_date|crmDate:"%A"} {event.start_date|crmDate}{if $event.event_end_date}-{if $event.event_end_date|crmDate:"%Y%m%d" == $event.event_start_date|crmDate:"%Y%m%d"}{$event.event_end_date|crmDate:0:1}{else}{$event.event_end_date|crmDate:"%A"} {$event.event_end_date|crmDate}{/if}{/if} + {event.start_date|crmDate:"%A"} {event.start_date|crmDate}{if {event.end_date|boolean}}-{if '{event.end_date|crmDate:"%Y%m%d"}' === '{event.start_date|crmDate:"%Y%m%d"}'}{event.end_date|crmDate:"Time"}{else}{event.end_date|crmDate:"%A"} {event.end_date|crmDate}{/if}{/if} </td> </tr> @@ -189,12 +189,12 @@ </tr> {if $isShowLineItems} - {foreach from=$participants key=index item=participant} - {if $isPrimary || {participant.id} === $participant.id} + {foreach from=$participants key=index item=currentParticipant} + {if $isPrimary || {participant.id} === $currentParticipant.id} {if $isPrimary && $lineItems|@count GT 1} {* Header for multi participant registration cases. *} <tr> <td colspan="2" {$labelStyle}> - {ts 1=$participant.index}Participant %1{/ts} {$participant.contact.display_name} + {ts 1=$currentParticipant.index}Participant %1{/ts} {$currentParticipant.contact.display_name} </td> </tr> {/if} @@ -213,7 +213,7 @@ <th>{ts}Total{/ts}</th> {if !empty($pricesetFieldsCount)}<th>{ts}Total Participants{/ts}</th>{/if} </tr> - {foreach from=$participant.line_items item=line} + {foreach from=$currentParticipant.line_items item=line} <tr> <td {$tdfirstStyle}>{$line.title}</td> <td {$tdStyle} align="middle">{$line.qty}</td> @@ -234,9 +234,9 @@ {if $isShowTax} <tr {$participantTotal}> <td colspan=3>{ts}Participant Total{/ts}</td> - <td colspan=2>{$participant.totals.total_amount_exclusive|crmMoney}</td> - <td colspan=1>{$participant.totals.tax_amount|crmMoney}</td> - <td colspan=2>{$participant.totals.total_amount_inclusive|crmMoney}</td> + <td colspan=2>{$currentParticipant.totals.total_amount_exclusive|crmMoney}</td> + <td colspan=1>{$currentParticipant.totals.tax_amount|crmMoney}</td> + <td colspan=2>{$currentParticipant.totals.total_amount_inclusive|crmMoney}</td> </tr> {/if} </table> @@ -422,12 +422,10 @@ {foreach from=$customPre item=customPr key=i} <tr> <th {$headerStyle}>{$customPre_grouptitle.$i}</th></tr> {foreach from=$customPr item=customValue key=customName} - {if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} <tr> <td {$labelStyle}>{$customName}</td> <td {$valueStyle}>{$customValue}</td> </tr> - {/if} {/foreach} {/foreach} {/if} @@ -436,13 +434,11 @@ {foreach from=$customPost item=customPos key=j} <tr> <th {$headerStyle}>{$customPost_grouptitle.$j}</th></tr> {foreach from=$customPos item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} <tr> <td {$labelStyle}>{$customName}</td> <td {$valueStyle}>{$customValue}</td> </tr> -{/if} -{/foreach} + {/foreach} {/foreach} {/if} @@ -467,7 +463,7 @@ <tr> <td colspan="2" {$valueStyle}> {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if}<br /> - {capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`{participant.id}`&{contact.checksum}" h=0 a=1 fe=1}{/capture} + {capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture} <a href="{$selfService}">{ts}Click here to transfer or cancel your registration.{/ts}</a> </td> </tr> diff --git a/civicrm/xml/templates/message_templates/event_online_receipt_text.tpl b/civicrm/xml/templates/message_templates/event_online_receipt_text.tpl index dcc72e80be2ff7756e1a263e01dba63fcc8d7375..b20cc1162636c42c7033b1b144649aaf0608b728 100644 --- a/civicrm/xml/templates/message_templates/event_online_receipt_text.tpl +++ b/civicrm/xml/templates/message_templates/event_online_receipt_text.tpl @@ -229,9 +229,7 @@ You were registered by: {$payer.name} ==========================================================={if !empty($pricesetFieldsCount)}===================={/if} {foreach from=$customPr item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/foreach} {/if} @@ -244,9 +242,7 @@ You were registered by: {$payer.name} ==========================================================={if !empty($pricesetFieldsCount)}===================={/if} {foreach from=$customPos item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/foreach} {/if} @@ -276,6 +272,6 @@ You were registered by: {$payer.name} {if !empty($event.allow_selfcancelxfer) } {ts 1=$selfcancelxfer_time 2=$selfservice_preposition}You may transfer your registration to another participant or cancel your registration up to %1 hours %2 the event.{/ts} {if !empty($totalAmount)}{ts}Cancellations are not refundable.{/ts}{/if} - {capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid=`$participant.id`&{contact.checksum}" h=0 a=1 fe=1}{/capture} + {capture assign=selfService}{crmURL p='civicrm/event/selfsvcupdate' q="reset=1&pid={participant.id}&{contact.checksum}" h=0 a=1 fe=1}{/capture} {ts}Transfer or cancel your registration:{/ts} {$selfService} {/if} diff --git a/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl b/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl index e995bbc2b0cdae60eef3811f14dbf20e80970080..61dc61912d37dc932ddbbeeb223e34af2b2abc38 100644 --- a/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl +++ b/civicrm/xml/templates/message_templates/membership_online_receipt_html.tpl @@ -512,7 +512,6 @@ </th> </tr> {foreach from=$customPre item=customValue key=customName} - {if (!empty($trackingFields) and ! in_array($customName, $trackingFields)) or empty($trackingFields)} <tr> <td {$labelStyle}> {$customName} @@ -521,7 +520,6 @@ {$customValue} </td> </tr> - {/if} {/foreach} {/if} diff --git a/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl b/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl index 1d4b977232c700691225173e268ab0f66394c1be..50c8c03663ba4cd4ef47b7c2bd56edc143550cec 100644 --- a/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl +++ b/civicrm/xml/templates/message_templates/membership_online_receipt_text.tpl @@ -221,9 +221,7 @@ =========================================================== {foreach from=$customPre item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} @@ -234,8 +232,6 @@ =========================================================== {foreach from=$customPost item=customValue key=customName} -{if ( !empty($trackingFields) and ! in_array( $customName, $trackingFields ) ) or empty($trackingFields)} {$customName}: {$customValue} -{/if} {/foreach} {/if} diff --git a/civicrm/xml/version.xml b/civicrm/xml/version.xml index 9eb58bc4bc66096dbaf32375d582bc9a0d0138cd..1e590fb8c7c8409cd2d7b1337aeae6b97d414257 100644 --- a/civicrm/xml/version.xml +++ b/civicrm/xml/version.xml @@ -1,4 +1,4 @@ <?xml version="1.0" encoding="iso-8859-1" ?> <version> - <version_no>5.65.2</version_no> + <version_no>5.66.0</version_no> </version> diff --git a/includes/civicrm.basepage.php b/includes/civicrm.basepage.php index 29d333db54e1ec2ac97cbd3a54b21fff0f35835a..0e5eabbd9269fb16d0997dddabda2758d453b379 100644 --- a/includes/civicrm.basepage.php +++ b/includes/civicrm.basepage.php @@ -36,6 +36,30 @@ class CiviCRM_For_WordPress_Basepage { */ public $civi; + /** + * @var bool + * Base Page parsed flag. + * @since 4.6 + * @access public + */ + public $basepage_parsed = FALSE; + + /** + * @var string + * Base Page title. + * @since 4.6 + * @access public + */ + public $basepage_title = ''; + + /** + * @var string + * Base Page markup. + * @since 4.6 + * @access public + */ + public $basepage_markup = ''; + /** * Instance constructor. * @@ -326,9 +350,14 @@ class CiviCRM_For_WordPress_Basepage { return; } - // Do not proceed without the presence of the CiviCRM query var. - $civicrm_in_wordpress = $this->civi->civicrm_in_wordpress(); - if (!$civicrm_in_wordpress) { + // Check for the Base Page query conditions. + $is_basepage_query = FALSE; + if ($this->civi->civicrm_in_wordpress() && $this->civi->is_page_request()) { + $is_basepage_query = TRUE; + } + + // Do not proceed without them. + if (!$is_basepage_query) { return; } @@ -337,8 +366,14 @@ class CiviCRM_For_WordPress_Basepage { return; } - // Get the current Base Page and set a "found" flag. - $basepage = $this->basepage_get(); + /** + * Fires before the Base Page is processed. + * + * @since 5.66 + */ + do_action('civicrm/basepage/handler/pre'); + + // Set a "found" flag. $basepage_found = FALSE; // Get the Shortcode Mode setting. @@ -368,8 +403,11 @@ class CiviCRM_For_WordPress_Basepage { */ $basepage_mode = (bool) apply_filters('civicrm_force_basepage_mode', FALSE, $post); + // Determine if the current Post is the Base Page. + $is_basepage = $this->is_match($post->ID); + // Skip when this is not the Base Page or when "Base Page mode" is not forced or not in "legacy mode". - if ($basepage->ID === $post->ID || $basepage_mode || $shortcode_mode === 'legacy') { + if ($is_basepage || $basepage_mode || $shortcode_mode === 'legacy') { // Set context. $this->civi->civicrm_context_set('basepage'); @@ -417,6 +455,15 @@ class CiviCRM_For_WordPress_Basepage { // Reset loop. rewind_posts(); + /** + * Fires after the Base Page may have been processed. + * + * @since 5.66 + * + * @param bool $basepage_found TRUE if the CiviCRM Base Page was found, FALSE otherwise. + */ + do_action('civicrm/basepage/handler/post', $basepage_found); + // Bail if the Base Page has not been processed. if (!$basepage_found) { return; @@ -444,15 +491,6 @@ class CiviCRM_For_WordPress_Basepage { add_filter('wp_title', [$this, 'wp_page_title'], 100, 3); add_filter('document_title_parts', [$this, 'wp_page_title_parts'], 100, 1); - // Add compatibility with Yoast SEO plugin's Open Graph title. - add_filter('wpseo_opengraph_title', [$this, 'wpseo_page_title'], 100, 1); - - // Don't let the Yoast SEO plugin parse the Base Page title. - if (class_exists('WPSEO_Frontend')) { - $frontend = WPSEO_Frontend::get_instance(); - remove_filter('pre_get_document_title', [$frontend, 'title'], 15); - } - // Regardless of URL, load page template. add_filter('template_include', [$this, 'basepage_template'], 999); @@ -555,24 +593,6 @@ class CiviCRM_For_WordPress_Basepage { } - /** - * Get CiviCRM Base Page title for Open Graph elements. - * - * Callback method for 'wpseo_opengraph_title' hook, to provide compatibility - * with the WordPress SEO plugin. - * - * @since 4.6.4 - * - * @param string $post_title The title of the WordPress page or post. - * @return string $basepage_title The title of the CiviCRM entity. - */ - public function wpseo_page_title($post_title) { - - // Hand back our Base Page title. - return $this->basepage_title; - - } - /** * Get CiviCRM Base Page content. * @@ -818,40 +838,153 @@ class CiviCRM_For_WordPress_Basepage { */ public function basepage_get() { - // Kick out if not CiviCRM. + // Bail if CiviCRM not bootstrapped. + if (!$this->civi->initialize()) { + return FALSE; + } + + // Get config. + $config = CRM_Core_Config::singleton(); + + // Get Base Page object. + $basepage = get_page_by_path($config->wpBasePage); + if (is_null($basepage) || !($basepage instanceof WP_Post)) { + return FALSE; + } + + /** + * Filters the CiviCRM Base Page object. + * + * @since 5.66 + * + * @param WP_Post $basepage The CiviCRM Base Page object. + */ + return apply_filters('civicrm/basepage', $basepage); + + } + + /** + * Gets the current Base Page ID. + * + * @since 5.66 + * + * @return int|bool The Base Page ID or FALSE on failure. + */ + public function id_get() { + + // Get the Base Page object. + $basepage = $this->basepage_get(); + if (!($basepage instanceof WP_Post)) { + return FALSE; + } + + return $basepage->ID; + + } + + /** + * Gets the current Base Page URL. + * + * @since 5.66 + * + * @return str The Base Page URL or empty on failure. + */ + public function url_get() { + + // Get the Base Page object. + $basepage = $this->basepage_get(); + if (!($basepage instanceof WP_Post)) { + return ''; + } + + return get_permalink($basepage->ID); + + } + + /** + * Gets the Base Page title. + * + * @since 5.66 + * + * @return string $basepage_title The title of the CiviCRM entity. + */ + public function title_get() { + return $this->basepage_title; + } + + /** + * Checks a Post ID against the Base Page ID. + * + * @since 5.66 + * + * @param int $post_id The Post ID to check. + * @return bool TRUE if the Post ID matches the Base Page ID, or FALSE otherwise. + */ + public function is_match($post_id) { + + // Get the Base Page ID. + $basepage_id = $this->id_get(); + if ($basepage_id === FALSE) { + return FALSE; + } + + // Determine if the given Post is the Base Page. + $is_basepage = $basepage_id === $post_id ? TRUE : FALSE; + + /** + * Filters the CiviCRM Base Page match. + * + * @since 5.66 + * + * @param bool $is_basepage TRUE if the Post ID matches the Base Page ID, FALSE otherwise. + * @param int $post_id The WordPress Post ID to check. + */ + return apply_filters('civicrm/basepage/match', $is_basepage, $post_id); + + } + + /** + * Gets the current Base Page setting. + * + * @since 5.66 + * + * @return string|bool $setting The Base Page setting, or FALSE on failure. + */ + public function setting_get() { + + // Bail if CiviCRM not bootstrapped. if (!$this->civi->initialize()) { return FALSE; } // Get the setting. - $basepage_slug = civicrm_api3('Setting', 'getvalue', [ + $setting = civicrm_api3('Setting', 'getvalue', [ 'name' => 'wpBasePage', 'group' => 'CiviCRM Preferences', ]); - // Did we get a value? - if (!empty($basepage_slug)) { - - // Define the query for our Base Page. - $args = [ - 'post_type' => 'page', - 'name' => strtolower($basepage_slug), - 'post_status' => 'publish', - 'posts_per_page' => 1, - ]; + return $setting; - // Do the query. - $pages = get_posts($args); + } - } + /** + * Sets the current Base Page setting. + * + * @since 5.66 + * + * @param string $slug The Base Page setting. + */ + public function setting_set($slug) { - // Find the Base Page object. - $basepage = FALSE; - if (!empty($pages) && is_array($pages)) { - $basepage = array_pop($pages); + // Bail if CiviCRM not bootstrapped. + if (!$this->civi->initialize()) { + return; } - return $basepage; + // Set the setting. + civicrm_api3('Setting', 'create', [ + 'wpBasePage' => $slug, + ]); } diff --git a/includes/civicrm.compat.php b/includes/civicrm.compat.php index 063525d1fbccfc0e1167d5bb720899e97659ae77..94aadfa925d3d6b135cd3086efd4a3164055a886 100644 --- a/includes/civicrm.compat.php +++ b/includes/civicrm.compat.php @@ -22,7 +22,7 @@ if (!defined('ABSPATH')) { } /** - * Define CiviCRM_For_WordPress_Compat Class. + * Compatibility class. * * @since 5.24 */ @@ -36,6 +36,30 @@ class CiviCRM_For_WordPress_Compat { */ public $civi; + /** + * @var object + * Miscellaneous plugin compatibility object. + * @since 5.66 + * @access public + */ + public $misc; + + /** + * @var object + * Polylang compatibility object. + * @since 5.66 + * @access public + */ + public $polylang; + + /** + * @var object + * WPML compatibility object. + * @since 5.66 + * @access public + */ + public $wpml; + /** * Instance constructor. * @@ -46,123 +70,38 @@ class CiviCRM_For_WordPress_Compat { // Store reference to CiviCRM plugin object. $this->civi = civi_wp(); - // Register plugin compatibility hooks. - $this->register_hooks(); + // Includes and setup. + $this->include_files(); + $this->setup_objects(); } /** - * Register plugin compatibility hooks. - * - * This is called via the constructor during the "plugins_loaded" action which - * is much earlier that CiviCRM's own internal hooks. The reason for this is - * that compability may need callbacks for events that fire well before "init" - * which is when CiviCRM begins to load. + * Include files. * - * @since 5.24 + * @since 5.66 */ - public function register_hooks() { - - // Bail if CiviCRM not installed yet. - if (!CIVICRM_INSTALLED) { - return; - } + public function include_files() { - // Support Clean URLs when Polylang is active. - add_action('civicrm_after_rewrite_rules', [$this, 'rewrite_rules_polylang'], 10, 2); - - // Prevent AIOSEO from stomping on CiviCRM Shortcodes. - add_filter('aioseo_conflicting_shortcodes', [$this, 'aioseo_resolve_conflict']); + // Include plugin compatibility files. + include_once CIVICRM_PLUGIN_DIR . 'includes/compatibility/civicrm.misc.php'; + include_once CIVICRM_PLUGIN_DIR . 'includes/compatibility/civicrm.polylang.php'; + include_once CIVICRM_PLUGIN_DIR . 'includes/compatibility/civicrm.wpml.php'; } /** - * Support Polylang. - * - * @since 5.24 + * Instantiate objects. * - * @param bool $flush_rewrite_rules True if rules flushed, false otherwise. - * @param WP_Post $basepage The Base Page post object. + * @since 5.66 */ - public function rewrite_rules_polylang($flush_rewrite_rules, $basepage) { - - // Bail if Polylang is not present. - if (!function_exists('pll_languages_list')) { - return; - } - - /* - * Collect all rewrite rules into an array. - * - * Because the array of specific Post IDs is added *after* the array of - * paths for the Base Page ID, those specific rewrite rules will "win" over - * the more general Base Page rules. - */ - $collected_rewrites = []; - - // Support prefixes for a single Base Page. - $basepage_url = get_permalink($basepage->ID); - $basepage_raw_url = PLL()->links_model->remove_language_from_link($basepage_url); - $language_slugs = pll_languages_list(); - foreach ($language_slugs as $slug) { - $language = PLL()->model->get_language($slug); - $language_url = PLL()->links_model->add_language_to_link($basepage_raw_url, $language); - $parsed_url = wp_parse_url($language_url, PHP_URL_PATH); - $regex_path = substr($parsed_url, 1); - $collected_rewrites[$basepage->ID][] = $regex_path; - $post_id = pll_get_post($basepage->ID, $slug); - if (!empty($post_id)) { - $collected_rewrites[$post_id][] = $regex_path; - } - }; - - // Support prefixes for Base Pages in multiple languages. - foreach ($language_slugs as $slug) { - $post_id = pll_get_post($basepage->ID, $slug); - if (empty($post_id)) { - continue; - } - $url = get_permalink($post_id); - $parsed_url = wp_parse_url($url, PHP_URL_PATH); - $regex_path = substr($parsed_url, 1); - $collected_rewrites[$basepage->ID][] = $regex_path; - $collected_rewrites[$post_id][] = $regex_path; - }; - - // Make collection unique and add remaining rewrite rules. - $rewrites = array_map('array_unique', $collected_rewrites); - if (!empty($rewrites)) { - foreach ($rewrites as $post_id => $rewrite) { - foreach ($rewrite as $path) { - add_rewrite_rule( - '^' . $path . '([^?]*)?', - 'index.php?page_id=' . $post_id . '&civiwp=CiviCRM&q=civicrm%2F$matches[1]', - 'top' - ); - } - } - } - - // Maybe force flush. - if ($flush_rewrite_rules) { - flush_rewrite_rules(); - } + public function setup_objects() { - } + // Instantiate plugin compatibility objects. + $this->misc = new CiviCRM_For_WordPress_Compat_Misc(); + $this->polylang = new CiviCRM_For_WordPress_Compat_Polylang(); + $this->wpml = new CiviCRM_For_WordPress_Compat_WPML(); - /** - * Fixes AIOSEO's attempt to modify Shortcodes. - * - * @see https://civicrm.stackexchange.com/questions/40765/wp-all-in-one-seo-plugin-conflict - * - * @since 5.45 - * - * @param array $conflicting_shortcodes The existing AIOSEO Conflicting Shortcodes array. - * @return array $conflicting_shortcodes The modified AIOSEO Conflicting Shortcodes array. - */ - public function aioseo_resolve_conflict($conflicting_shortcodes) { - $conflicting_shortcodes['CiviCRM'] = 'civicrm'; - return $conflicting_shortcodes; } } diff --git a/includes/compatibility/civicrm.misc.php b/includes/compatibility/civicrm.misc.php new file mode 100644 index 0000000000000000000000000000000000000000..627af6ee7413c9c9c0d81664d255cd5aac7e7a68 --- /dev/null +++ b/includes/compatibility/civicrm.misc.php @@ -0,0 +1,130 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +/** + * + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + * + */ + +// This file must not accessed directly. +if (!defined('ABSPATH')) { + exit; +} + +/** + * Miscellaneous plugin compatibility class. + * + * @since 5.24 + */ +class CiviCRM_For_WordPress_Compat_Misc { + + /** + * @var object + * Plugin object reference. + * @since 5.24 + * @access public + */ + public $civi; + + /** + * Instance constructor. + * + * @since 5.24 + */ + public function __construct() { + + // Store reference to CiviCRM plugin object. + $this->civi = civi_wp(); + + // Register plugin compatibility hooks. + $this->register_hooks(); + + } + + /** + * Register plugin compatibility hooks. + * + * This is called via the constructor during the "plugins_loaded" action which + * is much earlier that CiviCRM's own internal hooks. The reason for this is + * that compability may need callbacks for events that fire well before "init" + * which is when CiviCRM begins to load. + * + * @since 5.24 + */ + public function register_hooks() { + + // Bail if CiviCRM not installed yet. + if (!CIVICRM_INSTALLED) { + return; + } + + // Register Base Page callbacks. + add_action('civicrm_basepage_parsed', [$this, 'register_basepage_hooks']); + + // Prevent AIOSEO from stomping on CiviCRM Shortcodes. + add_filter('aioseo_conflicting_shortcodes', [$this, 'aioseo_resolve_conflict']); + + } + + /** + * Register Base Page compatibility hooks. + * + * @since 5.66 + */ + public function register_basepage_hooks() { + + // Add compatibility with Yoast SEO plugin's Open Graph title. + add_filter('wpseo_opengraph_title', [$this, 'wpseo_page_title'], 100, 1); + + // Don't let the Yoast SEO plugin parse the Base Page title. + if (class_exists('WPSEO_Frontend')) { + $frontend = WPSEO_Frontend::get_instance(); + remove_filter('pre_get_document_title', [$frontend, 'title'], 15); + } + + } + + /** + * Get CiviCRM Base Page title for Open Graph elements. + * + * Callback method for 'wpseo_opengraph_title' hook, to provide compatibility + * with the WordPress SEO plugin. + * + * @since 4.6.4 + * + * @param string $post_title The title of the WordPress page or post. + * @return string $basepage_title The title of the CiviCRM entity. + */ + public function wpseo_page_title($post_title) { + + // Hand back our Base Page title. + return $this->civi->basepage->title_get(); + + } + + /** + * Fixes AIOSEO's attempt to modify Shortcodes. + * + * @see https://civicrm.stackexchange.com/questions/40765/wp-all-in-one-seo-plugin-conflict + * + * @since 5.45 + * + * @param array $conflicting_shortcodes The existing AIOSEO Conflicting Shortcodes array. + * @return array $conflicting_shortcodes The modified AIOSEO Conflicting Shortcodes array. + */ + public function aioseo_resolve_conflict($conflicting_shortcodes) { + $conflicting_shortcodes['CiviCRM'] = 'civicrm'; + return $conflicting_shortcodes; + } + +} diff --git a/includes/compatibility/civicrm.polylang.php b/includes/compatibility/civicrm.polylang.php new file mode 100644 index 0000000000000000000000000000000000000000..53261d50dae986bf039477395e32257a318731d2 --- /dev/null +++ b/includes/compatibility/civicrm.polylang.php @@ -0,0 +1,285 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +/** + * + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + * + */ + +// This file must not accessed directly. +if (!defined('ABSPATH')) { + exit; +} + +/** + * Polylang plugin compatatibility class. + * + * @since 5.66 + */ +class CiviCRM_For_WordPress_Compat_Polylang { + + /** + * @var object + * Plugin object reference. + * @since 5.66 + * @access public + */ + public $civi; + + /** + * @var array + * Base Page data. + * @since 5.66 + * @access private + */ + private $basepages = []; + + /** + * @var array + * Collected rewrites. + * @since 5.66 + * @access private + */ + private $rewrites = []; + + /** + * Instance constructor. + * + * @since 5.66 + */ + public function __construct() { + + // Store reference to CiviCRM plugin object. + $this->civi = civi_wp(); + + // Register plugin compatibility hooks. + $this->register_hooks(); + + } + + /** + * Register hooks. + * + * This is called via the constructor during the "plugins_loaded" action which + * is much earlier that CiviCRM's own internal hooks. The reason for this is + * that compability may need callbacks for events that fire well before "init" + * which is when CiviCRM begins to load. + * + * @since 5.66 + */ + public function register_hooks() { + + // Bail if CiviCRM not installed yet. + if (!CIVICRM_INSTALLED) { + return; + } + + // Bail if Polylang is not present. + if (!function_exists('pll_languages_list')) { + return; + } + + // Register Polylang compatibility callbacks. + add_action('civicrm_after_rewrite_rules', [$this, 'rewrite_rules'], 10, 2); + add_filter('pll_check_canonical_url', [$this, 'canonical_url'], 10, 2); + add_filter('civicrm/basepage/match', [$this, 'basepage_match'], 10, 2); + add_filter('civicrm/core/url/base', [$this, 'base_url_filter'], 10, 2); + add_filter('civicrm/core/locale', [$this, 'locale_filter'], 10, 2); + + } + + /** + * Support Polylang. + * + * @since 5.24 + * @since 5.66 Moved to this class. + * + * @param bool $flush_rewrite_rules True if rules flushed, false otherwise. + * @param WP_Post $basepage The Base Page post object. + */ + public function rewrite_rules($flush_rewrite_rules, $basepage) { + + /* + * Collect all rewrite rules into an array. + * + * Because the array of specific Post IDs is added *after* the array of + * paths for the Base Page ID, those specific rewrite rules will "win" over + * the more general Base Page rules. + */ + $collected_rewrites = []; + + // Support prefixes for a single Base Page. + $basepage_url = get_permalink($basepage->ID); + $basepage_raw_url = PLL()->links_model->remove_language_from_link($basepage_url); + $language_slugs = pll_languages_list(); + foreach ($language_slugs as $slug) { + $language = PLL()->model->get_language($slug); + $language_url = PLL()->links_model->add_language_to_link($basepage_raw_url, $language); + $parsed_url = wp_parse_url($language_url, PHP_URL_PATH); + $regex_path = substr($parsed_url, 1); + $collected_rewrites[$basepage->ID][] = $regex_path; + $post_id = pll_get_post($basepage->ID, $slug); + if (!empty($post_id)) { + $collected_rewrites[$post_id][] = $regex_path; + } + }; + + // Support prefixes for Base Pages in multiple languages. + foreach ($language_slugs as $slug) { + $post_id = pll_get_post($basepage->ID, $slug); + if (empty($post_id)) { + continue; + } + $url = get_permalink($post_id); + $parsed_url = wp_parse_url($url, PHP_URL_PATH); + $regex_path = substr($parsed_url, 1); + $collected_rewrites[$basepage->ID][] = $regex_path; + $collected_rewrites[$post_id][] = $regex_path; + }; + + // Make collection unique and add remaining rewrite rules. + $this->rewrites = array_map('array_unique', $collected_rewrites); + if (!empty($this->rewrites)) { + foreach ($this->rewrites as $post_id => $rewrite) { + foreach ($rewrite as $path) { + add_rewrite_rule( + '^' . $path . '([^?]*)?', + 'index.php?page_id=' . $post_id . '&civiwp=CiviCRM&q=civicrm%2F$matches[1]', + 'top' + ); + } + } + } + + // Maybe force flush. + if ($flush_rewrite_rules) { + flush_rewrite_rules(); + } + + } + + /** + * Prevents Polylang from redirecting CiviCRM URLs. + * + * @since 5.66 + * + * @param string|false $redirect_url False or the URL to redirect to. + * @param PLL_Language $language The language detected. + * @return string|false $redirect_url False or the URL to redirect to. + */ + public function canonical_url($redirect_url, $language) { + + // Bail if this is not a Page. + if (!is_page()) { + return $redirect_url; + } + + // Bail if this is not a Base Page. + $post = get_post(); + if (!empty($this->rewrites)) { + foreach ($this->rewrites as $post_id => $rewrite) { + if ($post_id === $post->ID) { + return FALSE; + } + } + } + + return $redirect_url; + + } + + /** + * Checks Polylang for CiviCRM Base Page matches. + * + * @since 5.66 + * + * @param bool $is_basepage TRUE if the Post ID matches the Base Page ID, FALSE otherwise. + * @param int $post_id The WordPress Post ID to check. + * @return bool $is_basepage TRUE if the Post ID matches the Base Page ID, FALSE otherwise. + */ + public function basepage_match($is_basepage, $post_id) { + + // Bail if this is already the Base Page. + if ($is_basepage) { + return $is_basepage; + } + + // Bail if there are no rewrites. + if (empty($this->rewrites)) { + return $is_basepage; + } + + foreach ($this->rewrites as $page_id => $rewrite) { + if ($post_id === $page_id) { + $is_basepage = TRUE; + } + } + + return $is_basepage; + + } + + /** + * Filters the CiviCRM Base URL for the current language reported by Polylang. + * + * Only filters URLs that point to the front-end, since WordPress admin URLs are not + * rewritten by Polylang. + * + * @since 5.66 + * + * @param str $url The URL as built by CiviCRM. + * @param bool $admin_request True if building an admin URL, false otherwise. + * @return str $url The URL as modified by Polylang. + */ + public function base_url_filter($url, $admin_request) { + + // Skip when not defined. + if (empty($url) || $admin_request) { + return $url; + } + + // Find the language slug. + $slug = pll_current_language(); + if (empty($slug)) { + return $url; + } + + // Build the modified URL. + $raw_url = PLL()->links_model->remove_language_from_link($url); + $language = PLL()->model->get_language($slug); + $language_url = PLL()->links_model->add_language_to_link($raw_url, $language); + + return $language_url; + + } + + /** + * Filters the CiviCRM locale for the current language as set by Polylang. + * + * @since 5.66 + * + * @param str $locale The locale as reported by WordPress. + * @return str $locale The locale as modified by Polylang. + */ + public function locale_filter($locale) { + + $pll_locale = pll_current_language('locale'); + if (!empty($pll_locale)) { + $locale = $pll_locale; + } + + return $locale; + + } + +} diff --git a/includes/compatibility/civicrm.wpml.php b/includes/compatibility/civicrm.wpml.php new file mode 100644 index 0000000000000000000000000000000000000000..32decf64a0b783480a99cd3d34603097f37115c6 --- /dev/null +++ b/includes/compatibility/civicrm.wpml.php @@ -0,0 +1,103 @@ +<?php +/* + +--------------------------------------------------------------------+ + | Copyright CiviCRM LLC. All rights reserved. | + | | + | This work is published under the GNU AGPLv3 license with some | + | permitted exceptions and without any warranty. For full license | + | and copyright information, see https://civicrm.org/licensing | + +--------------------------------------------------------------------+ + */ + +/** + * + * @package CRM + * @copyright CiviCRM LLC https://civicrm.org/licensing + * + */ + +// This file must not accessed directly. +if (!defined('ABSPATH')) { + exit; +} + +/** + * WPML plugin compatatibility class. + * + * @since 5.66 + */ +class CiviCRM_For_WordPress_Compat_WPML { + + /** + * @var object + * Plugin object reference. + * @since 5.66 + * @access public + */ + public $civi; + + /** + * Instance constructor. + * + * @since 5.66 + */ + public function __construct() { + + // Store reference to CiviCRM plugin object. + $this->civi = civi_wp(); + + // Register plugin compatibility hooks. + $this->register_hooks(); + + } + + /** + * Register hooks. + * + * This is called via the constructor during the "plugins_loaded" action which + * is much earlier that CiviCRM's own internal hooks. The reason for this is + * that compability may need callbacks for events that fire well before "init" + * which is when CiviCRM begins to load. + * + * @since 5.66 + */ + public function register_hooks() { + + // Bail if CiviCRM not installed yet. + if (!CIVICRM_INSTALLED) { + return; + } + + // Bail if WPML is not present. + if (!defined('ICL_SITEPRESS_VERSION')) { + return; + } + + // Register WPML compatibility callbacks. + add_filter('civicrm/core/locale', [$this, 'locale_filter'], 10, 2); + + } + + /** + * Filters the CiviCRM locale for the current language as set by WPML. + * + * @since 5.66 + * + * @param str $locale The locale as reported by WordPress. + * @return str $locale The locale as modified by Polylang. + */ + public function locale_filter($locale) { + + $languages = apply_filters('wpml_active_languages', NULL); + foreach ($languages as $language) { + if ($language['active']) { + $locale = $language['default_locale']; + break; + } + } + + return $locale; + + } + +}