Merge pull request #5593 from relldoesphp/CRM-15992
[civicrm-core.git] / CRM / Campaign / Info.php
index bbdb234d4514decaa57d47294627310282765909..688ce1676fbd8c3cf8ca94535084cfb9d4fcc822 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.5                                                |
+ | CiviCRM version 4.6                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014                                |
+ | Copyright CiviCRM LLC (c) 2004-2015                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -23,7 +23,7 @@
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  * This class introduces component to the system and provides all the
  * abstract class.
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
  * $Id$
  *
  */
 class CRM_Campaign_Info extends CRM_Core_Component_Info {
 
-  // docs inherited from interface
+  /**
+   * @inheritDoc
+   */
   protected $keyword = 'campaign';
 
-  // docs inherited from interface
   /**
+   * @inheritDoc
    * @return array
    */
   public function getInfo() {
@@ -55,27 +57,57 @@ class CRM_Campaign_Info extends CRM_Core_Component_Info {
   }
 
 
-  // docs inherited from interface
   /**
+   * @inheritDoc
    * @param bool $getAllUnconditionally
+   * @param bool $descriptions
+   *   Whether to return permission descriptions
    *
    * @return array
    */
-  public function getPermissions($getAllUnconditionally = FALSE) {
-    return array(
-      'administer CiviCampaign',
-      'manage campaign',
-      'reserve campaign contacts',
-      'release campaign contacts',
-      'interview campaign contacts',
-      'gotv campaign contacts',
-      'sign CiviCRM Petition',
+  public function getPermissions($getAllUnconditionally = FALSE, $descriptions = FALSE) {
+    $permissions = array(
+      'administer CiviCampaign' => array(
+        ts('administer CiviCampaign'),
+        ts('Create new campaign, survey and petition types and their status'),
+      ),
+      'manage campaign' => array(
+        ts('manage campaign'),
+        ts('Create new campaigns, surveys and petitions, reserve respondents'),
+      ),
+      'reserve campaign contacts' => array(
+        ts('reserve campaign contacts'),
+        ts('Reserve campaign contacts for surveys and petitions'),
+      ),
+      'release campaign contacts' => array(
+        ts('release campaign contacts'),
+        ts('Release reserved campaign contacts for surveys and petitions'),
+      ),
+      'interview campaign contacts' => array(
+        ts('interview campaign contacts'),
+        ts('Record survey and petition responses from their reserved contacts'),
+      ),
+      'gotv campaign contacts' => array(
+        ts('GOTV campaign contacts'),
+        ts('Record that contacts voted'),
+      ),
+      'sign CiviCRM Petition' => array(
+        ts('sign CiviCRM Petition'),
+      ),
     );
+
+    if (!$descriptions) {
+      foreach ($permissions as $name => $attr) {
+        $permissions[$name] = array_shift($attr);
+      }
+    }
+
+    return $permissions;
   }
 
 
-  // docs inherited from interface
   /**
+   * @inheritDoc
    * @return null
    */
   public function getUserDashboardElement() {
@@ -91,8 +123,8 @@ class CRM_Campaign_Info extends CRM_Core_Component_Info {
     return NULL;
   }
 
-  // docs inherited from interface
   /**
+   * @inheritDoc
    * @return null
    */
   public function registerTab() {
@@ -100,8 +132,8 @@ class CRM_Campaign_Info extends CRM_Core_Component_Info {
     return NULL;
   }
 
-  // docs inherited from interface
   /**
+   * @inheritDoc
    * @return null
    */
   public function registerAdvancedSearchPane() {
@@ -109,16 +141,15 @@ class CRM_Campaign_Info extends CRM_Core_Component_Info {
     return NULL;
   }
 
-  // docs inherited from interface
   /**
-   * @return null
+   * @inheritDoc
    */
   public function getActivityTypes() {
     return NULL;
   }
 
-  // add shortcut to Create New
   /**
+   * add shortcut to Create New.
    * @param $shortCuts
    */
   public function creatNewShortcut(&$shortCuts) {
@@ -126,19 +157,20 @@ class CRM_Campaign_Info extends CRM_Core_Component_Info {
       CRM_Core_Permission::check('administer CiviCampaign')
     ) {
       $shortCuts = array_merge($shortCuts, array(
-        array('path' => 'civicrm/campaign/add',
-            'query' => "reset=1&action=add",
-            'ref' => 'new-campaign',
-            'title' => ts('Campaign'),
-          ),
-          array(
-            'path' => 'civicrm/survey/add',
-            'query' => "reset=1&action=add",
-            'ref' => 'new-survey',
-            'title' => ts('Survey'),
-          ),
-        ));
+        array(
+          'path' => 'civicrm/campaign/add',
+          'query' => "reset=1&action=add",
+          'ref' => 'new-campaign',
+          'title' => ts('Campaign'),
+        ),
+        array(
+          'path' => 'civicrm/survey/add',
+          'query' => "reset=1&action=add",
+          'ref' => 'new-survey',
+          'title' => ts('Survey'),
+        ),
+      ));
     }
   }
-}
 
+}