<?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 {
/**
*/
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() {
* 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() {
}
/**
- * 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() {
*
* @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
}
/**
- * 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();
* 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();
* 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();
* 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();
/**
* 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);
/**
* 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);
/**
* 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);
/**
* 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);
/**
* Builds advanced search form's component specific pane.
- *
- *
*/
public function buildAdvancedSearchPaneForm(&$form) {
$bao = $this->getBAOQueryObject();
/**
* 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);
/**
* 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);
/**
* 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;
/**
* 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');
* 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;
/**
* 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;
*
* @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();
}
+
}