Merge remote-tracking branch 'upstream/4.4' into 4.4-4.5-2014-10-01-19-08-00
[civicrm-core.git] / CRM / Contribute / Info.php
index 4b58dd79acbbe16ae6e67f4ffbcf997b251d24da..8c95978dc9f43cd0dc27eebaf438e5dbae71f0a5 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.4                                                |
+ | CiviCRM version 4.5                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2013                                |
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -31,7 +31,7 @@
  * abstract class.
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2013
+ * @copyright CiviCRM LLC (c) 2004-2014
  * $Id$
  *
  */
@@ -42,6 +42,18 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
   protected $keyword = 'contribute';
 
   // docs inherited from interface
+  /**
+   * Provides base information about the component.
+   * Needs to be implemented in component's information
+   * class.
+   *
+   * @return array collection of required component settings
+   * @access public
+   *
+   */
+  /**
+   * @return array
+   */
   public function getInfo() {
     return array(
       'name' => 'CiviContribute',
@@ -53,6 +65,24 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
+  /**
+   * 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
+   *
+   * @return array|null collection of permissions, null if none
+   * @access public
+   */
+  /**
+   * @param bool $getAllUnconditionally
+   *
+   * @return array|null
+   */
   public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'access CiviContribute',
@@ -62,8 +92,34 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
     );
   }
 
+  /**
+   * 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 array(
+      'access CiviContribute',
+    );
+  }
 
   // docs inherited from interface
+  /**
+   * Provides information about user dashboard element
+   * offered by this component.
+   *
+   * @return array|null collection of required dashboard settings,
+   *                    null if no element offered
+   * @access public
+   *
+   */
+  /**
+   * @return array|null
+   */
   public function getUserDashboardElement() {
     return array('name' => ts('Contributions'),
       'title' => ts('Your Contribution(s)'),
@@ -73,6 +129,18 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
+  /**
+   * Provides information about user dashboard element
+   * offered by this component.
+   *
+   * @return array|null collection of required dashboard settings,
+   *                    null if no element offered
+   * @access public
+   *
+   */
+  /**
+   * @return array|null
+   */
   public function registerTab() {
     return array('title' => ts('Contributions'),
       'url' => 'contribution',
@@ -81,6 +149,18 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
+  /**
+   * Provides information about advanced search pane
+   * offered by this component.
+   *
+   * @return array|null collection of required pane settings,
+   *                    null if no element offered
+   * @access public
+   *
+   */
+  /**
+   * @return array|null
+   */
   public function registerAdvancedSearchPane() {
     return array(
       'title' => ts('Contributions'),
@@ -89,30 +169,48 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
+  /**
+   * 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
+   * @access public
+   *
+   */
+  /**
+   * @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')
     ) {
-      $shortCuts = array_merge($shortCuts, array(
-        array('path' => 'civicrm/contribute/add',
-            'query' => "reset=1&action=add&context=standalone",
-            'ref' => 'new-contribution',
-            'title' => ts('Contribution'),
-          )));
+      $shortCut[] = array(
+        'path' => 'civicrm/contribute/add',
+        'query' => "reset=1&action=add&context=standalone",
+        'ref' => 'new-contribution',
+        'title' => ts('Contribution'),
+      );
       if ($newCredit) {
         $title = ts('Contribution') . '<br />&nbsp;&nbsp;(' . ts('credit card') . ')';
-        $shortCuts = array_merge($shortCuts, array(
-          array('path' => 'civicrm/contribute/add',
-              'query' => "reset=1&action=add&context=standalone&mode=live",
-              'ref' => 'new-contribution-cc',
-              'title' => $title,
-            )));
+        $shortCut[0]['shortCuts'][] = array(
+          'path' => 'civicrm/contribute/add',
+          'query' => "reset=1&action=add&context=standalone&mode=live",
+          'ref' => 'new-contribution-cc',
+          'title' => $title,
+        );
       }
+      $shortCuts = array_merge($shortCuts, $shortCut);
     }
   }
 }