node_class.module in Node Class 8
Same filename and directory in other branches
This is the file description for Node class module.
This file adds a fieldset to the node form and adds classes to the node page in article tag.
File
node_class.moduleView source
<?php
/**
* @file
* This is the file description for Node class module.
*
* This file adds a fieldset to the node form and adds classes to the
* node page in article tag.
*/
use Drupal\Core\Entity\EntityTypeInterface;
use Drupal\Core\Field\BaseFieldDefinition;
use Drupal\Core\Form\FormStateInterface;
/**
* Implements hook_form_FORM_ID_alter().
*/
function node_class_form_node_form_alter(&$form, FormStateInterface &$form_state, $form_id) {
$form['node_class_group'] = [
'#type' => 'details',
'#title' => t('Node Class settings'),
'#description' => t('Assign CSS classes to the node.'),
'#group' => 'advanced',
'#open' => FALSE,
'#access' => TRUE,
'#attributes' => [
'class' => [
'node-class-form',
],
],
];
$form['node_class']['#group'] = 'node_class_group';
}
/**
* Implements hook_entity_base_field_info().
*/
function node_class_entity_base_field_info(EntityTypeInterface $entity_type) {
if ($entity_type
->id() === 'node') {
$fields['node_class'] = BaseFieldDefinition::create('string')
->setLabel(t('CSS class(es)'))
->setDisplayOptions('form', [
'type' => 'string_textfield',
'weight' => 35,
])
->setDisplayConfigurable('form', TRUE);
return $fields;
}
}
/**
* Implements hook_preprocess_html().
*/
function node_class_preprocess_node(&$variables) {
if (!empty($variables['node'])) {
$entity = $variables['node'];
$classes = $entity
->get('node_class')
->getValue();
if (!empty($classes)) {
$variables['attributes']['class'][] = $classes['0']['value'];
}
}
}
Functions
Name![]() |
Description |
---|---|
node_class_entity_base_field_info | Implements hook_entity_base_field_info(). |
node_class_form_node_form_alter | Implements hook_form_FORM_ID_alter(). |
node_class_preprocess_node | Implements hook_preprocess_html(). |