TaxonomyTermMappings.php in Schema.org configuration tool (RDF UI) 8
File
src/TaxonomyTermMappings.php
View source
<?php
namespace Drupal\rdfui;
use Drupal\Core\Form\FormStateInterface;
class TaxonomyTermMappings {
public static function alterForm(array &$form, FormStateInterface $form_state) {
$type_options = new SchemaOrgConverter();
$entity_type = $form_state
->getFormObject()
->getEntity();
$existing_type = '';
if (!$entity_type
->isNew()) {
$existing_type = rdf_get_mapping('taxonomy_term', $entity_type
->id())
->getBundleMapping();
}
$form['rdf-mapping'] = array(
'#type' => 'details',
'#title' => t('Schema.org Mappings'),
'#group' => 'additional_settings',
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['rdf-mapping']['types'] = array(
'#id' => 'rdf-predicate',
'#type' => 'select',
'#title' => t('Schema.org Type'),
'#options' => $type_options
->getListTypes(),
'#empty_option' => '',
'#attached' => array(
'library' => array(
'rdfui/drupal.rdfui.autocomplete',
),
),
'#default_value' => !empty($existing_type) ? $existing_type['types'][0] : '',
'#description' => t('Specify the type you want to associated to this content type e.g. Article, Blog, etc.'),
);
return $form;
}
public static function formValidate(array &$form, FormStateInterface $form_state) {
}
public static function submitForm(array &$form, FormStateInterface $form_state) {
if ($form_state
->hasValue('types')) {
$entity_type = $form_state
->getFormObject()
->getEntity();
$mapping = rdf_get_mapping('taxonomy_term', $entity_type
->id());
if ($entity_type
->isNew()) {
$mapping = rdf_get_mapping('taxonomy_term', $form_state
->getValue('types'));
}
if ($form_state
->hasValue('types')) {
$mapping
->setBundleMapping(array(
'types' => array(
$form_state
->getValue('types'),
),
))
->save();
}
}
}
}