<small>{lang}wcf.acp.systemCheck.php.sha256.description{/lang}</small>
</dd>
</dl>
+
+ <dl{if !$results[php][gd][result]} class="formError"{/if}>
+ <dt>{lang}wcf.acp.systemCheck.php.gd{/lang}</dt>
+ <dd>
+ {if $results[php][gd][result]}
+ {@$statusOk} {lang}wcf.acp.systemCheck.pass{/lang}
+ {else}
+ <ul class="nativeList">
+ {if !$results[php][gd][jpeg]}
+ <li>{@$statusInsufficient} <kbd>jpeg</kbd></li>
+ {/if}
+ {if !$results[php][gd][png]}
+ <li>{@$statusInsufficient} <kbd>png</kbd></li>
+ {/if}
+ </ul>
+ {/if}
+ <small>{lang}wcf.acp.systemCheck.php.gd.description{/lang}</small>
+ </dd>
+ </dl>
</section>
<section class="section">
'wcf'. WCF_N .'_user' => [
'avatarID' => [
'referenceTable' => 'wcf'. WCF_N .'_user_avatar',
- 'referenceColumn' => 'avatarID'
- ]
+ 'referenceColumn' => 'avatarID',
+ ],
],
'wcf'. WCF_N .'_comment' => [
'userID' => [
'referenceTable' => 'wcf'. WCF_N .'_user',
- 'referenceColumn' => 'userID'
+ 'referenceColumn' => 'userID',
],
'objectTypeID' => [
'referenceTable' => 'wcf'. WCF_N .'_object_type',
- 'referenceColumn' => 'objectTypeID'
- ]
+ 'referenceColumn' => 'objectTypeID',
+ ],
],
'wcf'. WCF_N .'_moderation_queue' => [
'objectTypeID' => [
'referenceTable' => 'wcf'. WCF_N .'_object_type',
- 'referenceColumn' => 'objectTypeID'
+ 'referenceColumn' => 'objectTypeID',
],
'assignedUserID' => [
'referenceTable' => 'wcf'. WCF_N .'_user',
- 'referenceColumn' => 'userID'
+ 'referenceColumn' => 'userID',
],
'userID' => [
'referenceTable' => 'wcf'. WCF_N .'_user',
- 'referenceColumn' => 'userID'
- ]
- ]
+ 'referenceColumn' => 'userID',
+ ],
+ ],
];
public $results = [
'foreignKeys' => false,
'searchEngine' => [
'result' => false,
- 'incorrectTables' => []
+ 'incorrectTables' => [],
],
],
'php' => [
+ 'gd' => [
+ 'jpeg' => false,
+ 'png' => false,
+ 'result' => false,
+ ],
'extension' => [],
'memoryLimit' => [
'required' => '0',
$this->validatePhpExtensions();
$this->validatePhpMemoryLimit();
$this->validatePhpVersion();
+ $this->validatePhpGdSupport();
$this->validateWritableDirectories();
}
$this->results['status']['php'] = $this->results['status']['php'] && ($this->results['php']['version']['result'] !== 'unsupported');
}
+ protected function validatePhpGdSupport() {
+ if (!function_exists('\gd_info')) {
+ $this->results['status']['php'] = false;
+ return;
+ }
+
+ $gdInfo = \gd_info();
+ $this->results['php']['gd']['jpeg'] = !empty($gdInfo['JPEG Support']);
+ $this->results['php']['gd']['png'] = !empty($gdInfo['PNG Support']);
+
+ $this->results['php']['gd']['result'] = $this->results['php']['gd']['jpeg'] && $this->results['php']['gd']['png'];
+
+ $this->results['status']['php'] = $this->results['status']['php'] && $this->results['php']['gd']['result'];
+ }
+
protected function validateWritableDirectories() {
foreach ($this->directories as $abbreviation => $directories) {
$basePath = Application::getDirectory($abbreviation);
<item name="wcf.acp.systemCheck.mysql.innodb.description"><![CDATA[InnoDB (XtraDB unter MariaDB) ist eine transaktionale Storage-Engine von MySQL und wird zwingend für den Betrieb benötigt. Dies ist eine Standardfunktion von MySQL.]]></item>
<item name="wcf.acp.systemCheck.directories.writable"><![CDATA[Beschreibbare Verzeichnisse]]></item>
<item name="wcf.acp.systemCheck.directories.writable.description"><![CDATA[Einige Verzeichnisse werden zur Laufzeit durch die Software beschrieben, der PHP-Benutzer muss Schreibrechte haben.]]></item>
+ <item name="wcf.acp.systemCheck.php.gd"><![CDATA[Unterstützte Formate der GD-Bibliothek]]></item>
+ <item name="wcf.acp.systemCheck.php.gd.description"><![CDATA[Die GD-Bibliothek muss inklusive der Unterstützung der Formate „jpeg“ und „png“ installiert sein.]]></item>
</category>
<category name="wcf.acp.updateServer">
<item name="wcf.acp.updateServer.add"><![CDATA[Server hinzufügen]]></item>
<item name="wcf.acp.systemCheck.mysql.innodb.description"><![CDATA[InnoDB (XtraDB when using MariaDB) is a transaction storage engine for MySQL and is required for the operation of the software. This is a built-in feature of MySQL.]]></item>
<item name="wcf.acp.systemCheck.directories.writable"><![CDATA[Writable Directories]]></item>
<item name="wcf.acp.systemCheck.directories.writable.description"><![CDATA[Some directories are being written to during the normal operation. The user that runs the PHP process must have write access.]]></item>
+ <item name="wcf.acp.systemCheck.php.gd"><![CDATA[Supported formats of the GD library]]></item>
+ <item name="wcf.acp.systemCheck.php.gd.description"><![CDATA[The GD library must be installed with support for the formats “jpeg” and “png”.]]></item>
</category>
<category name="wcf.acp.updateServer">
<item name="wcf.acp.updateServer.add"><![CDATA[Add Server]]></item>