class AutocompleteController in Font Awesome Icons 8.2
Defines a route controller for entity autocomplete form elements.
Hierarchy
- class \Drupal\Core\Controller\ControllerBase implements ContainerInjectionInterface uses LoggerChannelTrait, MessengerTrait, LinkGeneratorTrait, RedirectDestinationTrait, UrlGeneratorTrait, StringTranslationTrait
- class \Drupal\fontawesome\Controller\AutocompleteController
Expanded class hierarchy of AutocompleteController
File
- src/
Controller/ AutocompleteController.php, line 17
Namespace
Drupal\fontawesome\ControllerView source
class AutocompleteController extends ControllerBase {
/**
* Drupal Font Awesome manager service.
*
* @var \Drupal\fontawesome\FontAwesomeManagerInterface
*/
protected $fontAwesomeManager;
/**
* Drupal configuration service container.
*
* @var \Drupal\Core\Config\ConfigFactory
*/
protected $configFactory;
/**
* {@inheritdoc}
*/
public static function create(ContainerInterface $container) {
$fontAwesomeManager = $container
->get('fontawesome.font_awesome_manager');
$configFactory = $container
->get('config.factory');
return new static($fontAwesomeManager, $configFactory);
}
/**
* {@inheritdoc}
*/
public function __construct(FontAwesomeManagerInterface $fontAwesomeManager, ConfigFactory $config_factory) {
$this->fontAwesomeManager = $fontAwesomeManager;
$this->configFactory = $config_factory;
}
/**
* Handler for autocomplete request.
*/
public function handleAutocomplete(Request $request) {
$results = [];
// Get the typed string from the URL, if it exists.
if ($input = $request->query
->get('q')) {
$typed_string = Tags::explode($input);
$typed_string = mb_strtolower(array_pop($typed_string));
// Load the icon data so we can check for a valid icon.
$iconData = $this->fontAwesomeManager
->getIconsWithCategories();
// Load the configuration settings.
$configuration_settings = $this->configFactory
->get('fontawesome.settings');
// Determine which files we are using.
$activeFiles = [
'use_solid_file' => is_null($configuration_settings
->get('use_solid_file')) === TRUE ? TRUE : $configuration_settings
->get('use_solid_file'),
'use_regular_file' => is_null($configuration_settings
->get('use_regular_file')) === TRUE ? TRUE : $configuration_settings
->get('use_regular_file'),
'use_light_file' => is_null($configuration_settings
->get('use_light_file')) === TRUE ? TRUE : $configuration_settings
->get('use_light_file'),
'use_brands_file' => is_null($configuration_settings
->get('use_brands_file')) === TRUE ? TRUE : $configuration_settings
->get('use_brands_file'),
'use_duotone_file' => is_null($configuration_settings
->get('use_duotone_file')) === TRUE ? TRUE : $configuration_settings
->get('use_duotone_file'),
];
// Check each icon to see if it starts with the typed string.
foreach ($iconData as $thisIcon) {
// If the string is found.
if (strpos($thisIcon['name'], $typed_string) === 0 || in_array($typed_string, $thisIcon['search_terms'])) {
$iconRenders = [];
// Loop over each style.
foreach ($thisIcon['styles'] as $style) {
// Determine the prefix.
$iconPrefix = '';
switch ($style) {
case 'brands':
// Don't show if unavailable.
if (!$activeFiles['use_brands_file']) {
break;
}
$iconPrefix = 'fab';
break;
case 'light':
// Don't show if unavailable.
if (!$activeFiles['use_light_file']) {
break;
}
$iconPrefix = 'fal';
break;
case 'regular':
// Don't show if unavailable.
if (!$activeFiles['use_regular_file']) {
break;
}
$iconPrefix = 'far';
break;
case 'duotone':
// Don't show if unavailable.
if (!$activeFiles['use_duotone_file']) {
break;
}
$iconPrefix = 'fad';
break;
case 'kit_uploads':
$iconPrefix = 'fak';
break;
default:
case 'solid':
// Don't show if unavailable.
if (!$activeFiles['use_solid_file']) {
break;
}
$iconPrefix = 'fas';
break;
}
// Render the icon.
if (!empty($iconPrefix)) {
$iconRenders[] = new FormattableMarkup('<i class=":prefix fa-:icon fa-fw fa-2x"></i> ', [
':prefix' => $iconPrefix,
':icon' => $thisIcon['name'],
]);
}
}
// Don't show if we have no available icons.
if (count($iconRenders) == 0) {
continue;
}
$results[] = [
'value' => $thisIcon['name'],
'label' => implode('', $iconRenders) . $thisIcon['name'],
];
}
}
}
return new JsonResponse($results);
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
AutocompleteController:: |
protected | property |
Drupal configuration service container. Overrides ControllerBase:: |
|
AutocompleteController:: |
protected | property | Drupal Font Awesome manager service. | |
AutocompleteController:: |
public static | function |
Instantiates a new instance of this class. Overrides ControllerBase:: |
|
AutocompleteController:: |
public | function | Handler for autocomplete request. | |
AutocompleteController:: |
public | function | ||
ControllerBase:: |
protected | property | The current user service. | 1 |
ControllerBase:: |
protected | property | The entity form builder. | |
ControllerBase:: |
protected | property | The entity manager. | |
ControllerBase:: |
protected | property | The entity type manager. | |
ControllerBase:: |
protected | property | The form builder. | 2 |
ControllerBase:: |
protected | property | The key-value storage. | 1 |
ControllerBase:: |
protected | property | The language manager. | 1 |
ControllerBase:: |
protected | property | The module handler. | 2 |
ControllerBase:: |
protected | property | The state service. | |
ControllerBase:: |
protected | function | Returns the requested cache bin. | |
ControllerBase:: |
protected | function | Retrieves a configuration object. | |
ControllerBase:: |
private | function | Returns the service container. | |
ControllerBase:: |
protected | function | Returns the current user. | 1 |
ControllerBase:: |
protected | function | Retrieves the entity form builder. | |
ControllerBase:: |
protected | function | Retrieves the entity manager service. | |
ControllerBase:: |
protected | function | Retrieves the entity type manager. | |
ControllerBase:: |
protected | function | Returns the form builder service. | 2 |
ControllerBase:: |
protected | function | Returns a key/value storage collection. | 1 |
ControllerBase:: |
protected | function | Returns the language manager service. | 1 |
ControllerBase:: |
protected | function | Returns the module handler. | 2 |
ControllerBase:: |
protected | function |
Returns a redirect response object for the specified route. Overrides UrlGeneratorTrait:: |
|
ControllerBase:: |
protected | function | Returns the state storage service. | |
LinkGeneratorTrait:: |
protected | property | The link generator. | 1 |
LinkGeneratorTrait:: |
protected | function | Returns the link generator. | |
LinkGeneratorTrait:: |
protected | function | Renders a link to a route given a route name and its parameters. | |
LinkGeneratorTrait:: |
public | function | Sets the link generator service. | |
LoggerChannelTrait:: |
protected | property | The logger channel factory service. | |
LoggerChannelTrait:: |
protected | function | Gets the logger for a specific channel. | |
LoggerChannelTrait:: |
public | function | Injects the logger channel factory. | |
MessengerTrait:: |
protected | property | The messenger. | 29 |
MessengerTrait:: |
public | function | Gets the messenger. | 29 |
MessengerTrait:: |
public | function | Sets the messenger. | |
RedirectDestinationTrait:: |
protected | property | The redirect destination service. | 1 |
RedirectDestinationTrait:: |
protected | function | Prepares a 'destination' URL query parameter for use with \Drupal\Core\Url. | |
RedirectDestinationTrait:: |
protected | function | Returns the redirect destination service. | |
RedirectDestinationTrait:: |
public | function | Sets the redirect destination service. | |
StringTranslationTrait:: |
protected | property | The string translation service. | 1 |
StringTranslationTrait:: |
protected | function | Formats a string containing a count of items. | |
StringTranslationTrait:: |
protected | function | Returns the number of plurals supported by a given language. | |
StringTranslationTrait:: |
protected | function | Gets the string translation service. | |
StringTranslationTrait:: |
public | function | Sets the string translation service to use. | 2 |
StringTranslationTrait:: |
protected | function | Translates a string to the current language or to a given language. | |
UrlGeneratorTrait:: |
protected | property | The url generator. | |
UrlGeneratorTrait:: |
protected | function | Returns the URL generator service. | |
UrlGeneratorTrait:: |
public | function | Sets the URL generator service. | |
UrlGeneratorTrait:: |
protected | function | Generates a URL or path for a specific route based on the given parameters. |