Elgg\Database\Plugins::getDependencyStrings PHP Method

getDependencyStrings() public method

'name' => The name of the requirement / conflict 'value' => A string representing the expected value: <1, >=3, !=enabled 'local_value' => The current value, ("Not installed") 'comment' => Free form text to help resovle the problem ("Enable / Search for plugin ") )
public getDependencyStrings ( array $dep ) : array
$dep array An \ElggPluginPackage dependency array
return array
    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;
    }