function getDependencyStrings($dep)
{
$translator = _elgg_services()->translator;
$dep_system = elgg_extract('type', $dep);
$info = elgg_extract('dep', $dep);
$type = elgg_extract('type', $info);
if (!$dep_system || !$info || !$type) {
return false;
}
// rewrite some of these to be more readable
$comparison = elgg_extract('comparison', $info);
switch ($comparison) {
case 'lt':
$comparison = '<';
break;
case 'gt':
$comparison = '>';
break;
case 'ge':
$comparison = '>=';
break;
case 'le':
$comparison = '<=';
break;
default:
//keep $comparison value intact
break;
}
/*
'requires' 'plugin oauth_lib' <1.3 1.3 'downgrade'
'requires' 'php setting bob' >3 3 'change it'
'conflicts' 'php setting' >3 4 'change it'
'conflicted''plugin profile' any 1.8 'disable profile'
'provides' 'plugin oauth_lib' 1.3 -- --
'priority' 'before blog' -- after 'move it'
*/
$strings = array();
$strings['type'] = $translator->translate('ElggPlugin:Dependencies:' . ucwords($dep_system));
switch ($type) {
case 'elgg_release':
// 'Elgg Version'
$strings['name'] = $translator->translate('ElggPlugin:Dependencies:Elgg');
$strings['expected_value'] = "{$comparison} {$info['version']}";
$strings['local_value'] = $dep['value'];
$strings['comment'] = '';
break;
case 'php_version':
// 'PHP version'
$strings['name'] = $translator->translate('ElggPlugin:Dependencies:PhpVersion');
$strings['expected_value'] = "{$comparison} {$info['version']}";
$strings['local_value'] = $dep['value'];
$strings['comment'] = '';
break;
case 'php_extension':
// PHP Extension %s [version]
$strings['name'] = $translator->translate('ElggPlugin:Dependencies:PhpExtension', array($info['name']));
if ($info['version']) {
$strings['expected_value'] = "{$comparison} {$info['version']}";
$strings['local_value'] = $dep['value'];
} else {
$strings['expected_value'] = '';
$strings['local_value'] = '';
}
$strings['comment'] = '';
break;
case 'php_ini':
$strings['name'] = $translator->translate('ElggPlugin:Dependencies:PhpIni', array($info['name']));
$strings['expected_value'] = "{$comparison} {$info['value']}";
$strings['local_value'] = $dep['value'];
$strings['comment'] = '';
break;
case 'plugin':
$strings['name'] = $translator->translate('ElggPlugin:Dependencies:Plugin', array($info['name']));
$expected = $info['version'] ? "{$comparison} {$info['version']}" : $translator->translate('any');
$strings['expected_value'] = $expected;
$strings['local_value'] = $dep['value'] ? $dep['value'] : '--';
$strings['comment'] = '';
break;
case 'priority':
$expected_priority = ucwords($info['priority']);
$real_priority = ucwords($dep['value']);
$strings['name'] = $translator->translate('ElggPlugin:Dependencies:Priority');
$strings['expected_value'] = $translator->translate("ElggPlugin:Dependencies:Priority:{$expected_priority}", array($info['plugin']));
$strings['local_value'] = $translator->translate("ElggPlugin:Dependencies:Priority:{$real_priority}", array($info['plugin']));
$strings['comment'] = '';
break;
}
if ($dep['type'] == 'suggests') {
if ($dep['status']) {
$strings['comment'] = $translator->translate('ok');
} else {
$strings['comment'] = $translator->translate('ElggPlugin:Dependencies:Suggests:Unsatisfied');
}
} else {
if ($dep['status']) {
$strings['comment'] = $translator->translate('ok');
} else {
$strings['comment'] = $translator->translate('error');
}
}
return $strings;
}