Convert legacy icons
authorAlexander Ebert <ebert@woltlab.com>
Mon, 22 Aug 2022 15:24:37 +0000 (17:24 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Mon, 22 Aug 2022 15:24:37 +0000 (17:24 +0200)
wcfsetup/install/files/lib/data/media/ViewableMedia.class.php
wcfsetup/install/files/lib/data/moderation/queue/ModerationQueueAction.class.php
wcfsetup/install/files/lib/data/moderation/queue/ViewableModerationQueue.class.php
wcfsetup/install/files/lib/data/user/UserAction.class.php
wcfsetup/install/files/lib/data/user/menu/item/UserMenuItem.class.php
wcfsetup/install/files/lib/data/user/notification/UserNotificationAction.class.php
wcfsetup/install/files/lib/system/style/FontAwesomeIcon.class.php
wcfsetup/install/files/lib/system/template/plugin/IconFunctionTemplatePlugin.class.php
wcfsetup/install/files/lib/system/template/plugin/PagesFunctionTemplatePlugin.class.php

index 3b12914abc27294bac8e0ebd0f91841b66d39cca..7c7ac7aa5c48f69c94b8bf3601dcdf72a98cae65 100644 (file)
@@ -6,6 +6,7 @@ use wcf\data\DatabaseObjectDecorator;
 use wcf\data\user\UserProfile;
 use wcf\system\cache\runtime\UserProfileRuntimeCache;
 use wcf\system\html\output\AmpHtmlOutputProcessor;
+use wcf\system\style\FontAwesomeIcon;
 use wcf\util\FileUtil;
 use wcf\util\StringUtil;
 
@@ -192,8 +193,13 @@ class ViewableMedia extends DatabaseObjectDecorator
         }
 
         $icon = FileUtil::getIconNameByFilename($this->filename);
+        if ($icon) {
+            $icon = "file-{$icon}";
+        } else {
+            $icon = 'file';
+        }
 
-        return '<span class="icon icon' . $size . ' fa-file' . ($icon ? '-' . $icon : '') . '-o"></span>';
+        return FontAwesomeIcon::fromValues($icon, false)->toHtml($size);
     }
 
     /**
index 8d62242f06b7aadd97b712d6fd08fe9054e19d67..c26ac335ecd0ac5b9800e172ec7a8419de0a07b7 100644 (file)
@@ -116,7 +116,7 @@ class ModerationQueueAction extends AbstractDatabaseObjectAction
         $items = \array_map(static function (ViewableModerationQueue $queue) {
             return [
                 'content' => $queue->getAffectedObject()->getTitle(),
-                'image' => '<span class="icon icon48 ' . $queue->getIconName() . '"></span>',
+                'image' => $queue->getIcon()->toHtml(48),
                 'isUnread' => $queue->isNew(),
                 'link' => $queue->getLink(),
                 'objectId' => $queue->queueID,
index 72902431cd052f548fef534f7f07b72bba6013c9..d49e44528ecbade6f79d8c2d79d49761262fc479 100644 (file)
@@ -12,6 +12,7 @@ use wcf\data\user\UserProfile;
 use wcf\system\bbcode\SimpleMessageParser;
 use wcf\system\cache\runtime\UserProfileRuntimeCache;
 use wcf\system\moderation\queue\ModerationQueueManager;
+use wcf\system\style\FontAwesomeIcon;
 use wcf\system\visitTracker\VisitTracker;
 use wcf\system\WCF;
 
@@ -231,20 +232,20 @@ class ViewableModerationQueue extends DatabaseObjectDecorator implements ILinkab
     }
 
     /**
-     * @since 5.5
+     * @since 6.0
      */
-    public function getIconName(): string
+    public function getIcon(): FontAwesomeIcon
     {
         $definition = ObjectTypeCache::getInstance()->getDefinition(ObjectTypeCache::getInstance()->getObjectType($this->objectTypeID)->definitionID);
 
         if ($definition->definitionName === 'com.woltlab.wcf.moderation.activation') {
             if ($this->getAffectedObject()->enableTime) {
-                return 'fa-clock-o';
+                return FontAwesomeIcon::fromValues('clock');
             } else {
-                return 'fa-check-square-o';
+                return FontAwesomeIcon::fromValues('square-check');
             }
         }
 
-        return 'fa-exclamation-triangle';
+        return FontAwesomeIcon::fromValues('triangle-exclamation');
     }
 }
index a43fced14d9e65503198ac16741154c4471dadaf..770b105441eeae8dcebca1e1e9f8ef07dfdc346d 100644 (file)
@@ -24,6 +24,7 @@ use wcf\system\exception\UserInputException;
 use wcf\system\language\LanguageFactory;
 use wcf\system\request\RequestHandler;
 use wcf\system\session\SessionHandler;
+use wcf\system\style\FontAwesomeIcon;
 use wcf\system\user\group\assignment\UserGroupAssignmentHandler;
 use wcf\system\WCF;
 use wcf\util\UserRegistrationUtil;
@@ -575,7 +576,7 @@ class UserAction extends AbstractDatabaseObjectAction implements IClipboardActio
                     $pos = \mb_strripos($groupName, $searchString);
                     if ($pos !== false && $pos == 0) {
                         $list[] = [
-                            'icon' => '<span class="icon icon16 fa-users"></span>',
+                            'icon' => FontAwesomeIcon::fromValues('users')->toHtml(16),
                             'label' => $groupName,
                             'objectID' => $group->groupID,
                             'type' => 'group',
index 443d4eb722b59d8c47922a6a6e89b4bdae5b2688..48ee2873ed530847567ce6f635e751bc020246a2 100644 (file)
@@ -162,6 +162,6 @@ class UserMenuItem extends ProcessibleDatabaseObject implements ITitledObject, I
             return FontAwesomeIcon::fromString($this->iconClassName);
         }
 
-        return FontAwesomeIcon::fromValues('bars', false);
+        return FontAwesomeIcon::fromValues('bars');
     }
 }
index ae9bd8b9178d9e2598f1565d87e505d703fb32ba..4fab75bb51a4723b70cd2c622cca4208e95a5b9e 100644 (file)
@@ -8,6 +8,7 @@ use wcf\data\user\UserProfile;
 use wcf\system\database\util\PreparedStatementConditionBuilder;
 use wcf\system\exception\PermissionDeniedException;
 use wcf\system\request\LinkHandler;
+use wcf\system\style\FontAwesomeIcon;
 use wcf\system\user\notification\event\IUserNotificationEvent;
 use wcf\system\user\notification\UserNotificationHandler;
 use wcf\system\user\storage\UserStorageHandler;
@@ -206,7 +207,7 @@ class UserNotificationAction extends AbstractDatabaseObjectAction
             if ($notificationData['authors'] === 1) {
                 $image = $event->getAuthor()->getAvatar()->getImageTag(48);
             } else {
-                $image = '<span class="icon icon48 fa-users"></span>';
+                $image = FontAwesomeIcon::fromValues('users')->toHtml(48);
             }
 
             if ($event->isConfirmed()) {
index 4eeac58e66aa2307f66a30bce62d9dfe1f514ed8..93be797f3d1d6ce9b6b18cf78ec3aa9a2de34793 100644 (file)
@@ -96,7 +96,7 @@ final class FontAwesomeIcon implements \Stringable
         return new FontAwesomeIcon($name, $forceSolid);
     }
 
-    public static function fromValues(string $name, bool $forceSolid): self
+    public static function fromValues(string $name, bool $forceSolid = false): self
     {
         self::validateName($name);
 
index ac23755e95bdce8cf169999ae3e4dee41eca2018..da05723ed0b9f1afe651ab93d37fd406e7d37cb2 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace wcf\system\template\plugin;
 
+use wcf\system\style\FontAwesomeIcon;
 use wcf\system\template\TemplateEngine;
 use wcf\util\JSON;
 
@@ -69,13 +70,7 @@ final class IconFunctionTemplatePlugin implements IFunctionTemplatePlugin
             HTML;
         }
 
-        $modifier = '';
-        if ($type === 'solid') {
-            $modifier = ' solid';
-        }
-
-        return <<<HTML
-        <fa-icon size="{$size}" name="{$name}"{$modifier}></fa-icon>
-        HTML;
+        $forceSolid = $type === 'solid';
+        return FontAwesomeIcon::fromValues($name, $forceSolid)->toHtml($size);
     }
 }
index 402910aa2fcc4909e9690d51767296fa6bef8cb7..729138d397975cf136ce7638eedb3931d48b8f19 100644 (file)
@@ -94,9 +94,11 @@ class PagesFunctionTemplatePlugin implements IFunctionTemplatePlugin
             return '<li class="skip"><a href="' . self::insertPageNumber(
                 $link,
                 $pageNo - 1
-            ) . '" title="' . WCF::getLanguage()->getDynamicVariable('wcf.global.page.previous') . '" class="icon icon24 fa-chevron-left jsTooltip" rel="prev"></a></li>' . "\n";
+            ) . '" title="' . WCF::getLanguage()->getDynamicVariable('wcf.global.page.previous') . '" class="jsTooltip" rel="prev">
+                <fa-icon size="24" name="chevron-left"></fa-icon>
+            </a></li>' . "\n";
         } else {
-            return '<li class="skip disabled"><span class="icon icon24 fa-chevron-left"></span></li>' . "\n";
+            return '<li class="skip disabled"><fa-icon size="24" name="chevron-left"></fa-icon></li>' . "\n";
         }
     }
 
@@ -114,9 +116,11 @@ class PagesFunctionTemplatePlugin implements IFunctionTemplatePlugin
             return '<li class="skip"><a href="' . self::insertPageNumber(
                 $link,
                 $pageNo + 1
-            ) . '" title="' . WCF::getLanguage()->getDynamicVariable('wcf.global.page.next') . '" class="icon icon24 fa-chevron-right jsTooltip" rel="next"></a></li>' . "\n";
+            ) . '" title="' . WCF::getLanguage()->getDynamicVariable('wcf.global.page.next') . '" class="jsTooltip" rel="next">
+                <fa-icon size="24" name="chevron-right"></fa-icon>
+            </a></li>' . "\n";
         } else {
-            return '<li class="skip disabled"><span class="icon icon24 fa-chevron-right"></span></li>' . "\n";
+            return '<li class="skip disabled"><fa-icon size="24" name="chevron-right"></fa-icon></li>' . "\n";
         }
     }