'CiviContribute', 'translatedName' => ts('CiviContribute'), 'title' => ts('CiviCRM Contribution Engine'), 'search' => 1, 'showActivitiesInCore' => 1, ]; } /** * @inheritDoc * Provides permissions that are used by component. * Needs to be implemented in component's information * class. * * NOTE: if using conditionally permission return, * implementation of $getAllUnconditionally is required. * * @param bool $getAllUnconditionally * @param bool $descriptions * Whether to return permission descriptions * * @return array|null * collection of permissions, null if none */ public function getPermissions($getAllUnconditionally = FALSE, $descriptions = FALSE) { $permissions = [ 'access CiviContribute' => [ ts('access CiviContribute'), ts('Record backend contributions (with edit contributions) and view all contributions (for visible contacts)'), ], 'edit contributions' => [ ts('edit contributions'), ts('Record and update contributions'), ], 'make online contributions' => [ ts('make online contributions'), ], 'delete in CiviContribute' => [ ts('delete in CiviContribute'), ts('Delete contributions'), ], ]; if (!$descriptions) { foreach ($permissions as $name => $attr) { $permissions[$name] = array_shift($attr); } } return $permissions; } /** * Provides permissions that are unwise for Anonymous Roles to have. * * @return array * list of permissions * @see CRM_Component_Info::getPermissions */ /** * @return array */ public function getAnonymousPermissionWarnings() { return [ 'access CiviContribute', ]; } /** * @inheritDoc * Provides information about user dashboard element * offered by this component. * * @return array|null * collection of required dashboard settings, * null if no element offered */ /** * @return array|null */ public function getUserDashboardElement() { return [ 'name' => ts('Contributions'), 'title' => ts('Your Contribution(s)'), 'perm' => ['make online contributions'], 'weight' => 10, ]; } /** * @inheritDoc * Provides information about user dashboard element * offered by this component. * * @return array|null * collection of required dashboard settings, * null if no element offered */ /** * @return array|null */ public function registerTab() { return [ 'title' => ts('Contributions'), 'url' => 'contribution', 'weight' => 20, ]; } /** * @inheritDoc * @return string */ public function getIcon() { return 'crm-i fa-credit-card'; } /** * @inheritDoc * Provides information about advanced search pane * offered by this component. * * @return array|null * collection of required pane settings, * null if no element offered */ /** * @return array|null */ public function registerAdvancedSearchPane() { return [ 'title' => ts('Contributions'), 'weight' => 20, ]; } /** * @inheritDoc * Provides potential activity types that this * component might want to register in activity history. * Needs to be implemented in component's information * class. * * @return array|null * collection of activity types */ /** * @return array|null */ public function getActivityTypes() { return NULL; } /** * add shortcut to Create New. * @param $shortCuts * @param $newCredit */ public function creatNewShortcut(&$shortCuts, $newCredit) { if (CRM_Core_Permission::check('access CiviContribute') && CRM_Core_Permission::check('edit contributions') ) { $shortCut[] = [ 'path' => 'civicrm/contribute/add', 'query' => "reset=1&action=add&context=standalone", 'ref' => 'new-contribution', 'title' => ts('Contribution'), ]; if ($newCredit) { $title = ts('Contribution') . '
  (' . ts('credit card') . ')'; $shortCut[0]['shortCuts'][] = [ 'path' => 'civicrm/contribute/add', 'query' => "reset=1&action=add&context=standalone&mode=live", 'ref' => 'new-contribution-cc', 'title' => $title, ]; } $shortCuts = array_merge($shortCuts, $shortCut); } } }