Commit 0c1e42b4 authored by mattwire's avatar mattwire
Browse files

Re-generate boilerplate

parent 6b1c23f2
......@@ -9,9 +9,9 @@ use CRM_Civigiftaid_ExtensionUtil as E;
class CRM_Civigiftaid_Upgrader_Base {
/**
* @var varies, subclass of this
* @var CRM_Civigiftaid_Upgrader_Base
*/
static $instance;
public static $instance;
/**
* @var CRM_Queue_TaskContext
......@@ -19,22 +19,25 @@ class CRM_Civigiftaid_Upgrader_Base {
protected $ctx;
/**
* @var string, eg 'com.example.myextension'
* @var string
* eg 'com.example.myextension'
*/
protected $extensionName;
/**
* @var string, full path to the extension's source tree
* @var string
* full path to the extension's source tree
*/
protected $extensionDir;
/**
* @var array(revisionNumber) sorted numerically
* @var revisionNumber[]
* sorted numerically
*/
private $revisions;
/**
* @var boolean
* @var bool
* Flag to clean up extension revision data in civicrm_setting
*/
private $revisionStorageIsDeprecated = FALSE;
......@@ -42,7 +45,7 @@ class CRM_Civigiftaid_Upgrader_Base {
/**
* Obtain a reference to the active upgrade handler.
*/
static public function instance() {
public static function instance() {
if (!self::$instance) {
// FIXME auto-generate
self::$instance = new CRM_Civigiftaid_Upgrader(
......@@ -59,19 +62,25 @@ class CRM_Civigiftaid_Upgrader_Base {
* Note: Each upgrader instance should only be associated with one
* task-context; otherwise, this will be non-reentrant.
*
* @code
* ```
* CRM_Civigiftaid_Upgrader_Base::_queueAdapter($ctx, 'methodName', 'arg1', 'arg2');
* @endcode
* ```
*/
static public function _queueAdapter() {
public static function _queueAdapter() {
$instance = self::instance();
$args = func_get_args();
$instance->ctx = array_shift($args);
$instance->queue = $instance->ctx->queue;
$method = array_shift($args);
return call_user_func_array(array($instance, $method), $args);
return call_user_func_array([$instance, $method], $args);
}
/**
* CRM_Civigiftaid_Upgrader_Base constructor.
*
* @param $extensionName
* @param $extensionDir
*/
public function __construct($extensionName, $extensionDir) {
$this->extensionName = $extensionName;
$this->extensionDir = $extensionDir;
......@@ -82,7 +91,8 @@ class CRM_Civigiftaid_Upgrader_Base {
/**
* Run a CustomData file.
*
* @param string $relativePath the CustomData XML file path (relative to this extension's dir)
* @param string $relativePath
* the CustomData XML file path (relative to this extension's dir)
* @return bool
*/
public function executeCustomDataFile($relativePath) {
......@@ -93,11 +103,12 @@ class CRM_Civigiftaid_Upgrader_Base {
/**
* Run a CustomData file
*
* @param string $xml_file the CustomData XML file path (absolute path)
* @param string $xml_file
* the CustomData XML file path (absolute path)
*
* @return bool
*/
protected static function executeCustomDataFileByAbsPath($xml_file) {
protected function executeCustomDataFileByAbsPath($xml_file) {
$import = new CRM_Utils_Migrate_Import();
$import->run($xml_file);
return TRUE;
......@@ -106,7 +117,8 @@ class CRM_Civigiftaid_Upgrader_Base {
/**
* Run a SQL file.
*
* @param string $relativePath the SQL file path (relative to this extension's dir)
* @param string $relativePath
* the SQL file path (relative to this extension's dir)
*
* @return bool
*/
......@@ -119,10 +131,14 @@ class CRM_Civigiftaid_Upgrader_Base {
}
/**
* Run the sql commands in the specified file.
*
* @param string $tplFile
* The SQL file path (relative to this extension's dir).
* Ex: "sql/mydata.mysql.tpl".
*
* @return bool
* @throws \CRM_Core_Exception
*/
public function executeSqlTemplate($tplFile) {
// Assign multilingual variable to Smarty.
......@@ -141,17 +157,19 @@ class CRM_Civigiftaid_Upgrader_Base {
* Run one SQL query.
*
* This is just a wrapper for CRM_Core_DAO::executeSql, but it
* provides syntatic sugar for queueing several tasks that
* provides syntactic sugar for queueing several tasks that
* run different queries
*
* @return bool
*/
public function executeSql($query, $params = array()) {
public function executeSql($query, $params = []) {
// FIXME verify that we raise an exception on error
CRM_Core_DAO::executeQuery($query, $params);
return TRUE;
}
/**
* Syntatic sugar for enqueuing a task which calls a function in this class.
* Syntactic sugar for enqueuing a task which calls a function in this class.
*
* The task is weighted so that it is processed
* as part of the currently-pending revision.
......@@ -163,11 +181,11 @@ class CRM_Civigiftaid_Upgrader_Base {
$args = func_get_args();
$title = array_shift($args);
$task = new CRM_Queue_Task(
array(get_class($this), '_queueAdapter'),
[get_class($this), '_queueAdapter'],
$args,
$title
);
return $this->queue->createItem($task, array('weight' => -1));
return $this->queue->createItem($task, ['weight' => -1]);
}
// ******** Revision-tracking helpers ********
......@@ -193,6 +211,8 @@ class CRM_Civigiftaid_Upgrader_Base {
/**
* Add any pending revisions to the queue.
*
* @param CRM_Queue_Queue $queue
*/
public function enqueuePendingRevisions(CRM_Queue_Queue $queue) {
$this->queue = $queue;
......@@ -200,23 +220,23 @@ class CRM_Civigiftaid_Upgrader_Base {
$currentRevision = $this->getCurrentRevision();
foreach ($this->getRevisions() as $revision) {
if ($revision > $currentRevision) {
$title = ts('Upgrade %1 to revision %2', array(
$title = E::ts('Upgrade %1 to revision %2', [
1 => $this->extensionName,
2 => $revision,
));
]);
// note: don't use addTask() because it sets weight=-1
$task = new CRM_Queue_Task(
array(get_class($this), '_queueAdapter'),
array('upgrade_' . $revision),
[get_class($this), '_queueAdapter'],
['upgrade_' . $revision],
$title
);
$this->queue->createItem($task);
$task = new CRM_Queue_Task(
array(get_class($this), '_queueAdapter'),
array('setCurrentRevision', $revision),
[get_class($this), '_queueAdapter'],
['setCurrentRevision', $revision],
$title
);
$this->queue->createItem($task);
......@@ -227,11 +247,12 @@ class CRM_Civigiftaid_Upgrader_Base {
/**
* Get a list of revisions.
*
* @return array(revisionNumbers) sorted numerically
* @return array
* revisionNumbers sorted numerically
*/
public function getRevisions() {
if (!is_array($this->revisions)) {
$this->revisions = array();
$this->revisions = [];
$clazz = new ReflectionClass(get_class($this));
$methods = $clazz->getMethods();
......@@ -256,7 +277,7 @@ class CRM_Civigiftaid_Upgrader_Base {
private function getCurrentRevisionDeprecated() {
$key = $this->extensionName . ':version';
if ($revision = CRM_Core_BAO_Setting::getItem('Extension', $key)) {
if ($revision = \Civi::settings()->get($key)) {
$this->revisionStorageIsDeprecated = TRUE;
}
return $revision;
......@@ -281,7 +302,7 @@ class CRM_Civigiftaid_Upgrader_Base {
// ******** Hook delegates ********
/**
* @see https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_install
* @see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_install
*/
public function onInstall() {
$files = glob($this->extensionDir . '/sql/*_install.sql');
......@@ -302,26 +323,26 @@ class CRM_Civigiftaid_Upgrader_Base {
$this->executeCustomDataFileByAbsPath($file);
}
}
if (is_callable(array($this, 'install'))) {
if (is_callable([$this, 'install'])) {
$this->install();
}
}
/**
* @see https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_postInstall
* @see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_postInstall
*/
public function onPostInstall() {
$revisions = $this->getRevisions();
if (!empty($revisions)) {
$this->setCurrentRevision(max($revisions));
}
if (is_callable(array($this, 'postInstall'))) {
if (is_callable([$this, 'postInstall'])) {
$this->postInstall();
}
}
/**
* @see https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_uninstall
* @see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_uninstall
*/
public function onUninstall() {
$files = glob($this->extensionDir . '/sql/*_uninstall.mysql.tpl');
......@@ -330,7 +351,7 @@ class CRM_Civigiftaid_Upgrader_Base {
$this->executeSqlTemplate($file);
}
}
if (is_callable(array($this, 'uninstall'))) {
if (is_callable([$this, 'uninstall'])) {
$this->uninstall();
}
$files = glob($this->extensionDir . '/sql/*_uninstall.sql');
......@@ -342,21 +363,21 @@ class CRM_Civigiftaid_Upgrader_Base {
}
/**
* @see https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_enable
* @see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_enable
*/
public function onEnable() {
// stub for possible future use
if (is_callable(array($this, 'enable'))) {
if (is_callable([$this, 'enable'])) {
$this->enable();
}
}
/**
* @see https://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_disable
* @see https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_disable
*/
public function onDisable() {
// stub for possible future use
if (is_callable(array($this, 'disable'))) {
if (is_callable([$this, 'disable'])) {
$this->disable();
}
}
......@@ -364,7 +385,7 @@ class CRM_Civigiftaid_Upgrader_Base {
public function onUpgrade($op, CRM_Queue_Queue $queue = NULL) {
switch ($op) {
case 'check':
return array($this->hasPendingRevisions());
return [$this->hasPendingRevisions()];
case 'enqueue':
return $this->enqueuePendingRevisions($queue);
......
......@@ -24,9 +24,9 @@ class CRM_Civigiftaid_ExtensionUtil {
* Translated text.
* @see ts
*/
public static function ts($text, $params = array()) {
public static function ts($text, $params = []) {
if (!array_key_exists('domain', $params)) {
$params['domain'] = array(self::LONG_NAME, NULL);
$params['domain'] = [self::LONG_NAME, NULL];
}
return ts($text, $params);
}
......@@ -82,7 +82,7 @@ use CRM_Civigiftaid_ExtensionUtil as E;
/**
* (Delegated) Implements hook_civicrm_config().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_config
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_config
*/
function _civigiftaid_civix_civicrm_config(&$config = NULL) {
static $configured = FALSE;
......@@ -100,7 +100,7 @@ function _civigiftaid_civix_civicrm_config(&$config = NULL) {
array_unshift($template->template_dir, $extDir);
}
else {
$template->template_dir = array($extDir, $template->template_dir);
$template->template_dir = [$extDir, $template->template_dir];
}
$include_path = $extRoot . PATH_SEPARATOR . get_include_path();
......@@ -112,7 +112,7 @@ function _civigiftaid_civix_civicrm_config(&$config = NULL) {
*
* @param $files array(string)
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_xmlMenu
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_xmlMenu
*/
function _civigiftaid_civix_civicrm_xmlMenu(&$files) {
foreach (_civigiftaid_civix_glob(__DIR__ . '/xml/Menu/*.xml') as $file) {
......@@ -123,7 +123,7 @@ function _civigiftaid_civix_civicrm_xmlMenu(&$files) {
/**
* Implements hook_civicrm_install().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_install
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_install
*/
function _civigiftaid_civix_civicrm_install() {
_civigiftaid_civix_civicrm_config();
......@@ -135,12 +135,12 @@ function _civigiftaid_civix_civicrm_install() {
/**
* Implements hook_civicrm_postInstall().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_postInstall
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_postInstall
*/
function _civigiftaid_civix_civicrm_postInstall() {
_civigiftaid_civix_civicrm_config();
if ($upgrader = _civigiftaid_civix_upgrader()) {
if (is_callable(array($upgrader, 'onPostInstall'))) {
if (is_callable([$upgrader, 'onPostInstall'])) {
$upgrader->onPostInstall();
}
}
......@@ -149,7 +149,7 @@ function _civigiftaid_civix_civicrm_postInstall() {
/**
* Implements hook_civicrm_uninstall().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_uninstall
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_uninstall
*/
function _civigiftaid_civix_civicrm_uninstall() {
_civigiftaid_civix_civicrm_config();
......@@ -161,12 +161,12 @@ function _civigiftaid_civix_civicrm_uninstall() {
/**
* (Delegated) Implements hook_civicrm_enable().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_enable
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_enable
*/
function _civigiftaid_civix_civicrm_enable() {
_civigiftaid_civix_civicrm_config();
if ($upgrader = _civigiftaid_civix_upgrader()) {
if (is_callable(array($upgrader, 'onEnable'))) {
if (is_callable([$upgrader, 'onEnable'])) {
$upgrader->onEnable();
}
}
......@@ -175,13 +175,13 @@ function _civigiftaid_civix_civicrm_enable() {
/**
* (Delegated) Implements hook_civicrm_disable().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_disable
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_disable
* @return mixed
*/
function _civigiftaid_civix_civicrm_disable() {
_civigiftaid_civix_civicrm_config();
if ($upgrader = _civigiftaid_civix_upgrader()) {
if (is_callable(array($upgrader, 'onDisable'))) {
if (is_callable([$upgrader, 'onDisable'])) {
$upgrader->onDisable();
}
}
......@@ -193,10 +193,11 @@ function _civigiftaid_civix_civicrm_disable() {
* @param $op string, the type of operation being performed; 'check' or 'enqueue'
* @param $queue CRM_Queue_Queue, (for 'enqueue') the modifiable list of pending up upgrade tasks
*
* @return mixed based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
* for 'enqueue', returns void
* @return mixed
* based on op. for 'check', returns array(boolean) (TRUE if upgrades are pending)
* for 'enqueue', returns void
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_upgrade
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_upgrade
*/
function _civigiftaid_civix_civicrm_upgrade($op, CRM_Queue_Queue $queue = NULL) {
if ($upgrader = _civigiftaid_civix_upgrader()) {
......@@ -217,22 +218,23 @@ function _civigiftaid_civix_upgrader() {
}
/**
* Search directory tree for files which match a glob pattern
* Search directory tree for files which match a glob pattern.
*
* Note: Dot-directories (like "..", ".git", or ".svn") will be ignored.
* Note: In Civi 4.3+, delegate to CRM_Utils_File::findFiles()
*
* @param $dir string, base dir
* @param $pattern string, glob pattern, eg "*.txt"
* @return array(string)
* @param string $dir base dir
* @param string $pattern , glob pattern, eg "*.txt"
*
* @return array
*/
function _civigiftaid_civix_find_files($dir, $pattern) {
if (is_callable(array('CRM_Utils_File', 'findFiles'))) {
if (is_callable(['CRM_Utils_File', 'findFiles'])) {
return CRM_Utils_File::findFiles($dir, $pattern);
}
$todos = array($dir);
$result = array();
$todos = [$dir];
$result = [];
while (!empty($todos)) {
$subdir = array_shift($todos);
foreach (_civigiftaid_civix_glob("$subdir/$pattern") as $match) {
......@@ -243,7 +245,7 @@ function _civigiftaid_civix_find_files($dir, $pattern) {
if ($dh = opendir($subdir)) {
while (FALSE !== ($entry = readdir($dh))) {
$path = $subdir . DIRECTORY_SEPARATOR . $entry;
if ($entry{0} == '.') {
if ($entry[0] == '.') {
}
elseif (is_dir($path)) {
$todos[] = $path;
......@@ -254,12 +256,13 @@ function _civigiftaid_civix_find_files($dir, $pattern) {
}
return $result;
}
/**
* (Delegated) Implements hook_civicrm_managed().
*
* Find any *.mgd.php files, merge their content, and return.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_managed
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_managed
*/
function _civigiftaid_civix_civicrm_managed(&$entities) {
$mgdFiles = _civigiftaid_civix_find_files(__DIR__, '*.mgd.php');
......@@ -285,7 +288,7 @@ function _civigiftaid_civix_civicrm_managed(&$entities) {
*
* Note: This hook only runs in CiviCRM 4.4+.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_caseTypes
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_caseTypes
*/
function _civigiftaid_civix_civicrm_caseTypes(&$caseTypes) {
if (!is_dir(__DIR__ . '/xml/case')) {
......@@ -296,14 +299,13 @@ function _civigiftaid_civix_civicrm_caseTypes(&$caseTypes) {
$name = preg_replace('/\.xml$/', '', basename($file));
if ($name != CRM_Case_XMLProcessor::mungeCaseType($name)) {
$errorMessage = sprintf("Case-type file name is malformed (%s vs %s)", $name, CRM_Case_XMLProcessor::mungeCaseType($name));
CRM_Core_Error::fatal($errorMessage);
// throw new CRM_Core_Exception($errorMessage);
throw new CRM_Core_Exception($errorMessage);
}
$caseTypes[$name] = array(
$caseTypes[$name] = [
'module' => E::LONG_NAME,
'name' => $name,
'file' => $file,
);
];
}
}
......@@ -314,7 +316,7 @@ function _civigiftaid_civix_civicrm_caseTypes(&$caseTypes) {
*
* Note: This hook only runs in CiviCRM 4.5+.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_angularModules
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_angularModules
*/
function _civigiftaid_civix_civicrm_angularModules(&$angularModules) {
if (!is_dir(__DIR__ . '/ang')) {
......@@ -332,6 +334,25 @@ function _civigiftaid_civix_civicrm_angularModules(&$angularModules) {
}
}
/**
* (Delegated) Implements hook_civicrm_themes().
*
* Find any and return any files matching "*.theme.php"
*/
function _civigiftaid_civix_civicrm_themes(&$themes) {
$files = _civigiftaid_civix_glob(__DIR__ . '/*.theme.php');
foreach ($files as $file) {
$themeMeta = include $file;
if (empty($themeMeta['name'])) {
$themeMeta['name'] = preg_replace(':\.theme\.php$:', '', basename($file));
}
if (empty($themeMeta['ext'])) {
$themeMeta['ext'] = E::LONG_NAME;
}
$themes[$themeMeta['name']] = $themeMeta;
}
}
/**
* Glob wrapper which is guaranteed to return an array.
*
......@@ -342,11 +363,12 @@ function _civigiftaid_civix_civicrm_angularModules(&$angularModules) {
*
* @link http://php.net/glob
* @param string $pattern
* @return array, possibly empty
*
* @return array
*/
function _civigiftaid_civix_glob($pattern) {
$result = glob($pattern);
return is_array($result) ? $result : array();
return is_array($result) ? $result : [];
}
/**
......@@ -357,16 +379,18 @@ function _civigiftaid_civix_glob($pattern) {
* 'Mailing', or 'Administer/System Settings'
* @param array $item - the item to insert (parent/child attributes will be
* filled for you)
*
* @return bool
*/
function _civigiftaid_civix_insert_navigation_menu(&$menu, $path, $item) {
// If we are done going down the path, insert menu
if (empty($path)) {
$menu[] = array(
'attributes' => array_merge(array(
$menu[] = [
'attributes' => array_merge([
'label' => CRM_Utils_Array::value('name', $item),
'active' => 1,
), $item),
);
], $item),
];
return TRUE;
}
else {
......@@ -377,9 +401,9 @@ function _civigiftaid_civix_insert_navigation_menu(&$menu, $path, $item) {
foreach ($menu as $key => &$entry) {
if ($entry['attributes']['name'] == $first) {
if (!isset($entry['child'])) {
$entry['child'] = array();
$entry['child'] = [];
}
$found = _civigiftaid_civix_insert_navigation_menu($entry['child'], implode('/', $path), $item, $key);
$found = _civigiftaid_civix_insert_navigation_menu($entry['child'], implode('/', $path), $item);
}
}
return $found;
......@@ -390,7 +414,7 @@ function _civigiftaid_civix_insert_navigation_menu(&$menu, $path, $item) {
* (Delegated) Implements hook_civicrm_navigationMenu().
*/
function _civigiftaid_civix_navigationMenu(&$nodes) {
if (!is_callable(array('CRM_Core_BAO_Navigation', 'fixNavigationMenu'))) {
if (!is_callable(['CRM_Core_BAO_Navigation', 'fixNavigationMenu'])) {
_civigiftaid_civix_fixNavigationMenu($nodes);
}
}
......@@ -432,17 +456,11 @@ function _civigiftaid_civix_fixNavigationMenuItems(&$nodes, &$maxNavID, $parentI
/**
* (Delegated) Implements hook_civicrm_alterSettingsFolders().
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_alterSettingsFolders
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_alterSettingsFolders
*/
function _civigiftaid_civix_civicrm_alterSettingsFolders(&$metaDataFolders = NULL) {
static $configured = FALSE;
if ($configured) {
return;
}
$configured = TRUE;
$settingsDir = __DIR__ . DIRECTORY_SEPARATOR . 'settings';
if (is_dir($settingsDir) && !in_array($settingsDir, $metaDataFolders)) {
if (!in_array($settingsDir, $metaDataFolders) && is_dir($settingsDir)) {
$metaDataFolders[] = $settingsDir;
}
}
......@@ -452,16 +470,14 @@ function _civigiftaid_civix_civicrm_alterSettingsFolders(&$metaDataFolders = NUL
*
* Find any *.entityType.php files, merge their content, and return.
*
* @link http://wiki.civicrm.org/confluence/display/CRMDOC/hook_civicrm_entityTypes
* @link https://docs.civicrm.org/dev/en/latest/hooks/hook_civicrm_entityTypes
*/
function _civigiftaid_civix_civicrm_entityTypes(&$entityTypes) {
$entityTypes = array_merge($entityTypes, array (
'CRM_Civigiftaid_DAO_BatchSettings' =>
array (
$entityTypes = array_merge($entityTypes, [
'CRM_Civigiftaid_DAO_BatchSettings' => [
'name' => 'BatchSettings',
'class' => 'CRM_Civigiftaid_DAO_BatchSettings',
'table' => 'civicrm_gift_aid_batch_settings',
),
));
],
]);
}
Markdown is supported
0%