Merge pull request #6674 from lcdservices/CRM-17148
[civicrm-core.git] / CRM / Core / Component / Info.php
index 45a1d25ca8c83829d7b304eadf6c689be55e6f51..887af332a96d9ca676bc2a0b63d5cd1c1b560303 100644 (file)
@@ -1,9 +1,9 @@
 <?php
 /*
  +--------------------------------------------------------------------+
- | CiviCRM version 4.6                                                |
+ | CiviCRM version 4.7                                                |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2014                                |
+ | Copyright CiviCRM LLC (c) 2004-2015                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
  | GNU Affero General Public License or the licensing of CiviCRM,     |
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
-*/
+ */
 
 /**
  * This interface defines methods that need to be implemented
  * for a component to introduce itself to the system.
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2014
+ * @copyright CiviCRM LLC (c) 2004-2015
  * $Id$
  *
  */
-
 abstract class CRM_Core_Component_Info {
 
   /**
@@ -91,29 +90,32 @@ abstract class CRM_Core_Component_Info {
    */
   public $info;
 
-  /*
-   * Stores component keyword
+  /**
+   * Stores component keyword.
    * @var string name of component keyword
    */
   protected $keyword;
 
   /**
-   * @param string $name name of the component
-   * @param string $namespace namespace prefix for component's files
+   * @param string $name
+   *   Name of the component.
+   * @param string $namespace
+   *   Namespace prefix for component's files.
    * @param int $componentID
    */
   public function __construct($name, $namespace, $componentID) {
-    $this->name        = $name;
-    $this->namespace   = $namespace;
+    $this->name = $name;
+    $this->namespace = $namespace;
     $this->componentID = $componentID;
-    $this->info        = $this->getInfo();
+    $this->info = $this->getInfo();
     $this->info['url'] = $this->getKeyword();
   }
 
   /**
    * EXPERIMENTAL: Get a list of AngularJS modules
    *
-   * @return array list of modules; same format as CRM_Utils_Hook::angularModules(&$angularModules)
+   * @return array
+   *   list of modules; same format as CRM_Utils_Hook::angularModules(&$angularModules)
    * @see CRM_Utils_Hook::angularModules
    */
   public function getAngularModules() {
@@ -125,15 +127,16 @@ abstract class CRM_Core_Component_Info {
    * Needs to be implemented in component's information
    * class.
    *
-   * @return array collection of required component settings
-   *
+   * @return array
+   *   collection of required component settings
    */
   abstract public function getInfo();
 
   /**
-   * Get a list of entities to register via API
+   * Get a list of entities to register via API.
    *
-   * @return array list of entities; same format as CRM_Utils_Hook::managedEntities(&$entities)
+   * @return array
+   *   list of entities; same format as CRM_Utils_Hook::managedEntities(&$entities)
    * @see CRM_Utils_Hook::managedEntities
    */
   public function getManagedEntities() {
@@ -141,9 +144,10 @@ abstract class CRM_Core_Component_Info {
   }
 
   /**
-   * Provides permissions that are unwise for Anonymous Roles to have
+   * Provides permissions that are unwise for Anonymous Roles to have.
    *
-   * @return array list of permissions
+   * @return array
+   *   list of permissions
    * @see CRM_Component_Info::getPermissions
    */
   public function getAnonymousPermissionWarnings() {
@@ -160,15 +164,18 @@ abstract class CRM_Core_Component_Info {
    *
    * @param bool $getAllUnconditionally
    *
-   * @return array|null collection of permissions, null if none
+   * @return array|null
+   *   collection of permissions, null if none
    */
   abstract public function getPermissions($getAllUnconditionally = FALSE);
 
   /**
-   * Determine how many other records refer to a given record
+   * Determine how many other records refer to a given record.
    *
-   * @param CRM_Core_DAO $dao the item for which we want a reference count
-   * @return array each item in the array is an array with keys:
+   * @param CRM_Core_DAO $dao
+   *   The item for which we want a reference count.
+   * @return array
+   *   each item in the array is an array with keys:
    *   - name: string, eg "sql:civicrm_email:contact_id"
    *   - type: string, eg "sql"
    *   - count: int, eg "5" if there are 5 email addresses that refer to $dao
@@ -178,22 +185,22 @@ abstract class CRM_Core_Component_Info {
   }
 
   /**
-   * Provides information about user dashboard element
+   * Provides information about user dashboard element.
    * offered by this component.
    *
-   * @return array|null collection of required dashboard settings,
+   * @return array|null
+   *   collection of required dashboard settings,
    *                    null if no element offered
-   *
    */
   abstract public function getUserDashboardElement();
 
   /**
-   * Provides information about user dashboard element
+   * Provides information about user dashboard element.
    * offered by this component.
    *
-   * @return array|null collection of required dashboard settings,
+   * @return array|null
+   *   collection of required dashboard settings,
    *                    null if no element offered
-   *
    */
   abstract public function registerTab();
 
@@ -201,9 +208,9 @@ abstract class CRM_Core_Component_Info {
    * Provides information about advanced search pane
    * offered by this component.
    *
-   * @return array|null collection of required pane settings,
+   * @return array|null
+   *   collection of required pane settings,
    *                    null if no element offered
-   *
    */
   abstract public function registerAdvancedSearchPane();
 
@@ -213,8 +220,8 @@ abstract class CRM_Core_Component_Info {
    * Needs to be implemented in component's information
    * class.
    *
-   * @return array|null collection of activity types
-   *
+   * @return array|null
+   *   collection of activity types
    */
   abstract public function getActivityTypes();
 
@@ -222,8 +229,8 @@ abstract class CRM_Core_Component_Info {
    * Provides information whether given component is currently
    * marked as enabled in configuration.
    *
-   * @return boolean true if component is enabled, false if not
-   *
+   * @return bool
+   *   true if component is enabled, false if not
    */
   public function isEnabled() {
     $config = CRM_Core_Config::singleton();
@@ -236,8 +243,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's configuration object.
    *
-   * @return mixed component's configuration object
-   *
+   * @return mixed
+   *   component's configuration object
    */
   public function getConfigObject() {
     return $this->_instantiate(self::COMPONENT_CONFIG_CLASS);
@@ -246,8 +253,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's menu definition object.
    *
-   * @return mixed component's menu definition object
-   *
+   * @return mixed
+   *   component's menu definition object
    */
   public function getMenuObject() {
     return $this->_instantiate(self::COMPONENT_MENU_CLASS);
@@ -256,8 +263,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's invocation object.
    *
-   * @return mixed component's invocation object
-   *
+   * @return mixed
+   *   component's invocation object
    */
   public function getInvokeObject() {
     return $this->_instantiate(self::COMPONENT_INVOKE_CLASS);
@@ -266,8 +273,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's BAO Query object.
    *
-   * @return mixed component's BAO Query object
-   *
+   * @return mixed
+   *   component's BAO Query object
    */
   public function getBAOQueryObject() {
     return $this->_instantiate(self::COMPONENT_BAO_QUERY_CLASS);
@@ -275,8 +282,6 @@ abstract class CRM_Core_Component_Info {
 
   /**
    * Builds advanced search form's component specific pane.
-   *
-   *
    */
   public function buildAdvancedSearchPaneForm(&$form) {
     $bao = $this->getBAOQueryObject();
@@ -286,8 +291,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's user dashboard page object.
    *
-   * @return mixed component's User Dashboard applet object
-   *
+   * @return mixed
+   *   component's User Dashboard applet object
    */
   public function getUserDashboardObject() {
     return $this->_instantiate(self::COMPONENT_USERDASHBOARD_CLASS);
@@ -296,8 +301,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's contact record tab object.
    *
-   * @return mixed component's contact record tab object
-   *
+   * @return mixed
+   *   component's contact record tab object
    */
   public function getTabObject() {
     return $this->_instantiate(self::COMPONENT_TAB_CLASS);
@@ -306,8 +311,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides component's advanced search pane's template path.
    *
-   * @return string component's advanced search pane's template path
-   *
+   * @return string
+   *   component's advanced search pane's template path
    */
   public function getAdvancedSearchPaneTemplatePath() {
     $fullpath = $this->namespace . '_' . self::COMPONENT_ADVSEARCHPANE_CLASS;
@@ -317,18 +322,18 @@ abstract class CRM_Core_Component_Info {
   /**
    * Provides information whether given component uses system wide search.
    *
-   * @return boolean true if component needs search integration
-   *
+   * @return bool
+   *   true if component needs search integration
    */
   public function usesSearch() {
     return $this->info['search'] ? TRUE : FALSE;
   }
 
   /**
-   * Provides the xml menu files
-   *
-   * @return array array of menu files
+   * Provides the xml menu files.
    *
+   * @return array
+   *   array of menu files
    */
   public function menuFiles() {
     return CRM_Utils_File::getFilesByExtension($this->_getMenuXMLPath(), 'xml');
@@ -339,8 +344,8 @@ abstract class CRM_Core_Component_Info {
    * FIXME: It should be protected so the keyword is not
    * FIXME: accessed from beyond component infrastructure.
    *
-   * @return string component keyword
-   *
+   * @return string
+   *   component keyword
    */
   public function getKeyword() {
     return $this->keyword;
@@ -349,8 +354,8 @@ abstract class CRM_Core_Component_Info {
   /**
    * Helper for figuring out menu XML file location.
    *
-   * @return mixed component's element as class instance
-   *
+   * @return mixed
+   *   component's element as class instance
    */
   private function _getMenuXMLPath() {
     global $civicrm_root;
@@ -363,11 +368,13 @@ abstract class CRM_Core_Component_Info {
    *
    * @param $cl
    *
-   * @return mixed component's element as class instance
+   * @return mixed
+   *   component's element as class instance
    */
   private function _instantiate($cl) {
     $className = $this->namespace . '_' . $cl;
-    require_once (str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php');
+    require_once str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
     return new $className();
   }
+
 }