mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 06:42:42 +01:00
Avoid exception setting project profile image when GD not installed
Summary: When trying to set a custom project profile image while the PHP GD extension is not installed, use the same logic which already exists in `PhabricatorFilesComposeAvatarBuiltinFile.php` to set the default project image. This stills display an unhelpful error message `This server only supports these image formats: .` but avoids an exception trying to call GD's `imagecreatefromstring()`. ``` EXCEPTION: (Error) Call to undefined function imagecreatefromstring() at [<phorge>/src/applications/files/builtin/PhabricatorFilesComposeIconBuiltinFile.php:131] ``` Closes T15326 Test Plan: 1. Remove the php-gd (and potentially gd) packages on your system; restart httpd 2. Go to http://phorge.localhost/project/manage/1/ 3. Select `Edit Picture` in the sidebar on the right to go to the `Edit Project Picture` at http://phorge.localhost/project/picture/1/ 4. Set a custom icon and color and click the `Save Image` button 5. Get `This server only supports these image formats: .` but no exception anymore Reviewers: O1 Blessed Committers, avivey, valerio.bozzolan Reviewed By: O1 Blessed Committers, avivey, valerio.bozzolan Subscribers: avivey, tobiaswiese, valerio.bozzolan, Matthew, Cigaryno Maniphest Tasks: T15326 Differential Revision: https://we.phorge.it/D25515
This commit is contained in:
parent
b035743ce3
commit
7a86040f8a
1 changed files with 8 additions and 0 deletions
|
@ -98,6 +98,14 @@ final class PhabricatorFilesComposeIconBuiltinFile
|
||||||
}
|
}
|
||||||
|
|
||||||
private function composeImage($color, $icon) {
|
private function composeImage($color, $icon) {
|
||||||
|
// If we don't have the GD extension installed, just return a static
|
||||||
|
// default project image rather than trying to compose one.
|
||||||
|
if (!function_exists('imagecreatefromstring')) {
|
||||||
|
$root = dirname(phutil_get_library_root('phabricator'));
|
||||||
|
$default_path = $root.'/resources/builtin/profile.png';
|
||||||
|
return Filesystem::readFile($default_path);
|
||||||
|
}
|
||||||
|
|
||||||
$color_map = self::getAllColors();
|
$color_map = self::getAllColors();
|
||||||
$color = idx($color_map, $color);
|
$color = idx($color_map, $color);
|
||||||
if (!$color) {
|
if (!$color) {
|
||||||
|
|
Loading…
Reference in a new issue