use wcf\system\devtools\DevtoolsSetup;
use wcf\system\exception\SystemException;
use wcf\system\exception\UserInputException;
+use wcf\system\image\adapter\GDImageAdapter;
use wcf\system\image\adapter\ImagickImageAdapter;
use wcf\system\io\File;
use wcf\system\io\Tar;
$system['uploadMaxFilesize']['value'] = min(ini_get('upload_max_filesize'), ini_get('post_max_size'));
$system['uploadMaxFilesize']['result'] = (intval($system['uploadMaxFilesize']['value']) > 0);
- // gdlib version
- $system['gdLib']['value'] = '0.0.0';
- if (function_exists('gd_info')) {
- $temp = gd_info();
- $match = [];
- if (preg_match('!([0-9]+\.[0-9]+(?:\.[0-9]+)?)!', $temp['GD Version'], $match)) {
- if (preg_match('/^[0-9]+\.[0-9]+$/', $match[1])) $match[1] .= '.0';
- $system['gdLib']['value'] = $match[1];
- }
+ // graphics library
+ $system['graphicsLibrary']['result'] = false;
+ $system['graphicsLibrary']['value'] = '';
+ if (ImagickImageAdapter::isSupported() && ImagickImageAdapter::supportsAnimatedGIFs(ImagickImageAdapter::getVersion())) {
+ $system['graphicsLibrary'] = [
+ 'result' => true,
+ 'value' => 'ImageMagick',
+ ];
}
- $system['gdLib']['result'] = (version_compare($system['gdLib']['value'], '2.0.0') >= 0);
-
- // ImageMagick
- $system['imagick'] = ['result' => false];
- if (ImagickImageAdapter::isSupported()) {
- $system['imagick'] = [
+ else if (GDImageAdapter::isSupported()) {
+ $system['graphicsLibrary'] = [
'result' => true,
- 'value' => ImagickImageAdapter::getVersion(),
+ 'value' => 'GD Library',
];
- $system['imagick']['supportsAnimatedGIFs'] = ImagickImageAdapter::supportsAnimatedGIFs($system['imagick']['value']);
}
// memory limit
* @inheritDoc
*/
public static function isSupported() {
- return true;
+ return function_exists('gd_info');
}
}
<item name="wcf.global.systemRequirements.sql.description"><![CDATA[Ohne die „pdo_mysql“ PHP-Erweiterung kann diese Software nicht installiert werden.]]></item>
<item name="wcf.global.systemRequirements.uploadMaxFilesize"><![CDATA[Maximale Größe für das Hochladen von Dateien]]></item>
<item name="wcf.global.systemRequirements.uploadMaxFilesize.description"><![CDATA[Die derzeitige Konfiguration der Skriptsprache „PHP“ macht das Hochladen von Dateien unmöglich. Einige Funktionalitäten werden durch diese Konfiguration nur eingeschränkt funktionieren.]]></item>
- <item name="wcf.global.systemRequirements.gdLib"><![CDATA[Installierte Version der Grafikbearbeitungs-Bibliothek „gdlib“]]></item>
- <item name="wcf.global.systemRequirements.gdLib.description"><![CDATA[Grafikbearbeitungs-Bibliothek „gdlib“ ist für die Verarbeitung und dynamische Generierung von Bildern zuständig.]]></item>
- <item name="wcf.global.systemRequirements.imagick"><![CDATA[Installierte Version der Grafikbearbeitungs-Bibliothek „ImageMagick“]]></item>
- <item name="wcf.global.systemRequirements.imagick.description"><![CDATA[Grafikbearbeitungs-Bibliothek „ImageMagick“ ist für die Verarbeitung und dynamische Generierung von Bildern zuständig. Unterstützt zusätzlich die Skalierung von animierten GIF-Dateien.]]></item>
- <item name="wcf.global.systemRequirements.gdLib.notFound"><![CDATA[nicht gefunden]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary"><![CDATA[Grafikbearbeitungs-Bibliothek]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary.requirement"><![CDATA[GD Library oder ImageMagick]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary.description"><![CDATA[Die Grafikbearbeitungs-Bibliothek ist für die Verarbeitung und dynamische Generierung von Bildern zuständig. Es wird die GD Library oder alternativ ImageMagick benötigt.]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary.notFound"><![CDATA[nicht gefunden]]></item>
<item name="wcf.global.systemRequirements.active"><![CDATA[aktiviert]]></item>
<item name="wcf.global.systemRequirements.notActive"><![CDATA[nicht aktiviert]]></item>
<item name="wcf.global.systemRequirements.memoryLimit"><![CDATA[Zur Verfügung stehender Arbeitsspeicher]]></item>
<item name="wcf.global.systemRequirements.sql.description"><![CDATA[The “pdo_mysql” PHP extension is required to install this software.]]></item>
<item name="wcf.global.systemRequirements.uploadMaxFilesize"><![CDATA[Maximum Size for File Uploads]]></item>
<item name="wcf.global.systemRequirements.uploadMaxFilesize.description"><![CDATA[The current configuration of the installed “PHP” version does not allow file uploads. Due to this configuration, some features of this software will not be available.]]></item>
- <item name="wcf.global.systemRequirements.gdLib"><![CDATA[Installed version of the graphics library “GDLib”]]></item>
- <item name="wcf.global.systemRequirements.gdLib.description"><![CDATA[The graphics-library “GDLib” is needed to read images and for the dynamic image generation.]]></item>
- <item name="wcf.global.systemRequirements.gdLib.notFound"><![CDATA[not found]]></item>
- <item name="wcf.global.systemRequirements.imagick"><![CDATA[Installed version of the graphics library “ImageMagick”]]></item>
- <item name="wcf.global.systemRequirements.imagick.description"><![CDATA[The graphics-library “ImageMagick” is used to read images and for the dynamic image generation. Supports for scaling of animated GIF files.]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary"><![CDATA[Graphics library]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary.requirement"><![CDATA[GD library or ImageMagick]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary.description"><![CDATA[A graphics library is needed to read images and for the dynamic image generation. The GD library or alternatively ImageMagick is required.]]></item>
+ <item name="wcf.global.systemRequirements.graphicsLibrary.notFound"><![CDATA[not found]]></item>
<item name="wcf.global.systemRequirements.active"><![CDATA[Enabled]]></item>
<item name="wcf.global.systemRequirements.notActive"><![CDATA[Not enabled]]></item>
<item name="wcf.global.systemRequirements.memoryLimit"><![CDATA[PHP memory limit]]></item>
</section>
<section class="section">
- <h2 class="sectionTitle">{lang}wcf.global.systemRequirements.gdLib{/lang}</h2>
+ <h2 class="sectionTitle">{lang}wcf.global.systemRequirements.graphicsLibrary{/lang}</h2>
<div class="row rowColGap formGrid">
<dl class="col-xs-12 col-md-6">
<dt>{lang}wcf.global.systemRequirements.element.required{/lang}</dt>
- <dd>2.0.0</dd>
+ <dd>{lang}wcf.global.systemRequirements.graphicsLibrary.requirement{/lang}</dd>
</dl>
<dl class="col-xs-12 col-md-6">
<dt>{lang}wcf.global.systemRequirements.element.yours{/lang}</dt>
<dd>
- <span class="badge {if !$system.gdLib.result}red{else}green{/if}">{$system.gdLib.value}</span>
- {if !$system.gdLib.result}<small>{lang}wcf.global.systemRequirements.gdLib.description{/lang}</small>{/if}
+ <span class="badge {if !$system.graphicsLibrary.result}red{else}green{/if}">{if !$system.graphicsLibrary.result}{lang}wcf.global.systemRequirements.graphicsLibrary.notFound{/lang}{else}{$system.graphicsLibrary.value}{/if}</span>
+ {if !$system.graphicsLibrary.result}<small>{lang}wcf.global.systemRequirements.graphicsLibrary.description{/lang}</small>{/if}
</dd>
</dl>
</div>
</dl>
</div>
</section>
-
- <section class="section">
- <h2 class="sectionTitle">{lang}wcf.global.systemRequirements.imagick{/lang}</h2>
-
- <div class="row rowColGap formGrid">
- <dl class="col-xs-12 col-md-6">
- <dt>{lang}wcf.global.systemRequirements.element.recommended{/lang}</dt>
- <dd>{lang}wcf.global.systemRequirements.active{/lang}</dd>
- </dl>
-
- <dl class="col-xs-12 col-md-6">
- <dt>{lang}wcf.global.systemRequirements.element.yours{/lang}</dt>
- <dd>
- <span class="badge {if !$system.imagick.result}red{elseif !$system.imagick.supportsAnimatedGIFs}yellow{else}green{/if}">{if !$system.imagick.result}{lang}wcf.global.systemRequirements.notActive{/lang}{else}{$system.imagick.value}{/if}</span>
- {if !$system.imagick.result}<small>{lang}wcf.global.systemRequirements.imagick.description{/lang}</small>{/if}
- </dd>
- </dl>
- </div>
- </section>
</section>
<div class="formSubmit">
- <input type="submit" value="{lang}wcf.global.button.next{/lang}"{if !$system.phpVersion.result || !$system.sql.result || !$system.memoryLimit.result || (!$system.gdLib.result && !$system.imagick.result)} disabled{/if} accesskey="s">
+ <input type="submit" value="{lang}wcf.global.button.next{/lang}"{if !$system.phpVersion.result || !$system.sql.result || !$system.memoryLimit.result || !$system.graphicsLibrary.result} disabled{/if} accesskey="s">
<input type="hidden" name="step" value="{@$nextStep}">
<input type="hidden" name="tmpFilePrefix" value="{@$tmpFilePrefix}">
<input type="hidden" name="languageCode" value="{@$languageCode}">