farmOS/modules/farm/farm_metrics/farm_metrics.module

77 lines
1.3 KiB
Plaintext

<?php
/**
* @file
* Farm metrics module.
*/
/**
* Implements hook_hook_info().
*/
function farm_metrics_hook_info() {
$hooks['farm_metrics'] = array(
'group' => 'farm_metrics',
);
return $hooks;
}
/**
* Implements hook_permission().
*/
function farm_metrics_permission() {
$perms = array(
'access farm metrics' => array(
'title' => t('Access farm metrics'),
),
);
return $perms;
}
/**
* Implements hook_farm_access_perms().
*/
function farm_metrics_farm_access_perms($role) {
$perms = array();
// Access farm metrics.
$perms[] = 'access farm metrics';
return $perms;
}
/**
* Implements hook_menu().
*/
function farm_metrics_menu() {
// General farm metrics JSON endpoint.
$items['farm_metrics.json'] = array(
'page callback' => 'farm_metrics_info',
'access arguments' => array('access farm metrics'),
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Farm metrics API callback.
*/
function farm_metrics_info() {
// Ask modules for metrics.
$metrics = module_invoke_all('farm_metrics');
// Make sure all metrics have defaults set.
$defaults = array(
'label' => '',
'value' => '0',
'link' => 'farm',
'weight' => 0,
);
foreach ($metrics as $key => $metric) {
$metrics[$key] = array_merge($defaults, $metric);
}
drupal_json_output($metrics);
}