micon_vocabulary.module in Micon 8
Same filename and directory in other branches
Contains micon_vocabulary.module.
File
micon_vocabulary/micon_vocabulary.moduleView source
<?php
/**
* @file
* Contains micon_vocabulary.module.
*/
use Drupal\Core\Form\FormStateInterface;
use Drupal\taxonomy\VocabularyInterface;
use Drupal\Core\Cache\Cache;
/**
* Implements hook_form_FORM_ID_alter().
*
* Adds icon options to the vocabulary form.
*
* @see VocabularyForm::form()
*/
function micon_vocabulary_form_taxonomy_vocabulary_form_alter(&$form, FormStateInterface $form_state) {
/** @var \Drupal\taxonomy\VocabularyInterface $type */
$type = $form_state
->getFormObject()
->getEntity();
$form['icon'] = [
'#type' => 'micon',
'#title' => t('Icon'),
'#default_value' => micon_vocabulary_icon($type),
'#weight' => 0,
];
$form['#entity_builders'][] = 'micon_vocabulary_form_taxonomy_vocabulary_form_builder';
}
/**
* Entity builder for the vocabulary form with menu options.
*
* @see menu_ui_form_taxonomy_vocabulary_form_alter()
*/
function micon_vocabulary_form_taxonomy_vocabulary_form_builder($entity_type, VocabularyInterface $type, &$form, FormStateInterface $form_state) {
$type
->setThirdPartySetting('micon_vocabulary', 'icon', $form_state
->getValue('icon'));
Cache::invalidateTags([
'micon.discovery',
]);
}
/**
* Helper function for retrieving the icon from a vocabulary.
*
* @var \Drupal\taxonomy\VocabularyInterface $type
* The taxonomy vocabulary.
*/
function micon_vocabulary_icon(VocabularyInterface $type) {
return $type
->getThirdPartySetting('micon_vocabulary', 'icon');
}
/**
* Implements hook_micon_icons_alter().
*/
function micon_vocabulary_micon_icons_alter(&$icons) {
$defaults = [
'text' => '',
'regex' => '',
'weight' => 0,
'provider' => 'micon_vocabulary',
];
$types = \Drupal::entityTypeManager()
->getStorage('taxonomy_vocabulary')
->loadMultiple();
foreach ($types as $type) {
if ($icon = micon_vocabulary_icon($type)) {
$id = 'vocabulary.' . $type
->id();
$icons[$id] = [
'text' => 'vocabulary.' . strtolower($type
->label()),
'icon' => $icon,
'id' => $id,
] + $defaults;
}
}
}
Functions
Name | Description |
---|---|
micon_vocabulary_form_taxonomy_vocabulary_form_alter | Implements hook_form_FORM_ID_alter(). |
micon_vocabulary_form_taxonomy_vocabulary_form_builder | Entity builder for the vocabulary form with menu options. |
micon_vocabulary_icon | Helper function for retrieving the icon from a vocabulary. |
micon_vocabulary_micon_icons_alter | Implements hook_micon_icons_alter(). |