public function ImagemagickToolkit::getRequirements in ImageMagick 8.3
Same name and namespace in other branches
- 8 src/Plugin/ImageToolkit/ImagemagickToolkit.php \Drupal\imagemagick\Plugin\ImageToolkit\ImagemagickToolkit::getRequirements()
- 8.2 src/Plugin/ImageToolkit/ImagemagickToolkit.php \Drupal\imagemagick\Plugin\ImageToolkit\ImagemagickToolkit::getRequirements()
Gets toolkit requirements in a format suitable for hook_requirements().
Return value
array An associative requirements array as is returned by hook_requirements(). If the toolkit claims no requirements to the system, returns an empty array. The array can have arbitrary keys and they do not have to be prefixed by e.g. the module name or toolkit ID, as the system will make the keys globally unique.
Overrides ImageToolkitBase::getRequirements
See also
File
- src/
Plugin/ ImageToolkit/ ImagemagickToolkit.php, line 811
Class
- ImagemagickToolkit
- Provides ImageMagick integration toolkit for image manipulation.
Namespace
Drupal\imagemagick\Plugin\ImageToolkitCode
public function getRequirements() {
$reported_info = [];
if (stripos(ini_get('disable_functions'), 'proc_open') !== FALSE) {
// proc_open() is disabled.
$severity = REQUIREMENT_ERROR;
$reported_info[] = $this
->t("The <a href=':proc_open_url'>proc_open()</a> PHP function is disabled. It must be enabled for the toolkit to work. Edit the <a href=':disable_functions_url'>disable_functions</a> entry in your php.ini file, or consult your hosting provider.", [
':proc_open_url' => 'http://php.net/manual/en/function.proc-open.php',
':disable_functions_url' => 'http://php.net/manual/en/ini.core.php#ini.disable-functions',
]);
}
else {
$status = $this
->getExecManager()
->checkPath($this->configFactory
->get('imagemagick.settings')
->get('path_to_binaries'));
if (!empty($status['errors'])) {
// Can not execute 'convert'.
$severity = REQUIREMENT_ERROR;
foreach ($status['errors'] as $error) {
$reported_info[] = $error;
}
$reported_info[] = $this
->t('Go to the <a href=":url">Image toolkit</a> page to configure the toolkit.', [
':url' => Url::fromRoute('system.image_toolkit_settings')
->toString(),
]);
}
else {
// No errors, report the version information.
$severity = REQUIREMENT_INFO;
$version_info = explode("\n", preg_replace('/\\r/', '', Html::escape($status['output'])));
$value = array_shift($version_info);
$more_info_available = FALSE;
foreach ($version_info as $key => $item) {
if (stripos($item, 'feature') !== FALSE || $key > 3) {
$more_info_available = TRUE;
break;
}
$reported_info[] = $item;
}
if ($more_info_available) {
$reported_info[] = $this
->t('To display more information, go to the <a href=":url">Image toolkit</a> page, and expand the \'Version information\' section.', [
':url' => Url::fromRoute('system.image_toolkit_settings')
->toString(),
]);
}
$reported_info[] = '';
$reported_info[] = $this
->t("Enabled image file extensions: %extensions", [
'%extensions' => mb_strtolower(implode(', ', static::getSupportedExtensions())),
]);
}
}
$requirements = [
'imagemagick' => [
'title' => $this
->t('ImageMagick'),
'value' => isset($value) ? $value : NULL,
'description' => [
'#markup' => implode('<br />', $reported_info),
],
'severity' => $severity,
],
];
return $requirements;
}