IconManagerService.php in Font Awesome Icons 8.2
File
modules/fontawesome_iconpicker_widget/src/IconManagerService.php
View source
<?php
namespace Drupal\fontawesome_iconpicker_widget;
use Drupal\fontawesome\FontAwesomeManagerInterface;
class IconManagerService implements IconManagerServiceInterface {
protected $fontAwesomeManager;
public function __construct(FontAwesomeManagerInterface $font_awesome_manager) {
$this->fontAwesomeManager = $font_awesome_manager;
}
public function getIcons() {
$icons = [];
$iconData = $this->fontAwesomeManager
->getIcons();
$classes = [];
foreach ($iconData as $icon => $data) {
foreach ($iconData[$icon]['styles'] as $style) {
switch ($style) {
case 'brands':
$iconPrefix = 'fab';
break;
case 'light':
$iconPrefix = 'fal';
break;
case 'regular':
$iconPrefix = 'far';
break;
case 'duotone':
$iconPrefix = 'fad';
break;
case 'kit_uploads':
$iconPrefix = 'fak';
break;
default:
case 'solid':
$iconPrefix = 'fas';
break;
}
$classes[$icon][] = $iconPrefix . ' fa-' . $icon;
}
$icons[] = [
'name' => $iconData[$icon]['name'],
'search_terms' => $iconData[$icon]['search_terms'],
'classes' => $classes[$icon],
];
}
return $icons;
}
public function formatIconList(array $icons) {
$icon_list = [];
foreach ($icons as $properties) {
$icon_list[] = implode(', ', $properties['classes']);
}
$formatted_icon_list = explode(', ', implode(', ', $icon_list));
return $formatted_icon_list;
}
public function formatSearchTerms(array $icons) {
$terms_list = [];
foreach ($icons as $properties) {
foreach ($properties['classes'] as $item) {
array_push($properties['search_terms'], $properties['name']);
$terms_list[] = $properties['search_terms'];
}
}
return $terms_list;
}
public function getFormattedIconList() {
$icon_list = $this
->formatIconList($this
->getIcons());
return $icon_list;
}
public function getFormattedTermList() {
$terms_list = $this
->formatSearchTerms($this
->getIcons());
return $terms_list;
}
public function getIconBaseNameFromClass($class) {
list($prefix, $base) = explode('fa-', $class);
return $base;
}
public function getIconPrefixFromClass($class) {
list($prefix, $base) = explode('fa-', $class);
return trim($prefix);
}
}