Sindbad~EG File Manager
<?php
/*
* @file
*
*/
use Drupal\Core\Url;
use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\Core\Render\Element;
use Drupal\Core\Entity\EntityInterface;
use Drupal\node\Entity\Node;
const NODE_TYPE_COURSE = 'pe_course';
/**
* Implements hook_help().
*/
function pe_course_help($route_name, RouteMatchInterface $route_match) {
switch ($route_name) {
case 'help.page.pe_course':
$output = '';
$output .= '<h3>' . t('About') . '</h3>';
$output .= '<p>' . t('TODO') . '</p>';
return $output;
}
}
/**
* Implements hook_ENTITY_TYPE_presave() for node entities.
*/
function pe_course_node_presave(EntityInterface $node) {
pe_course_build_book($node);
}
/**
* Create book for course.
*
* @param \Drupal\Core\Entity\EntityInterface $entity
*/
function pe_course_build_book(EntityInterface $entity) {
if ($entity->bundle() == NODE_TYPE_COURSE) {
if (empty($entity->get('field_course_book')->target_id)) {
$node = Node::create([
'type' => 'book',
'title' => '[BOOK]: ' . $entity->getTitle(),
'uid' => '1',
'status' => 1,
]);
$node->body->generateSampleItems(1);
$node->book['bid'] = 'new';
$node->save();
// Update the course book reference field.
$entity->field_course_book->target_id = $node->id();
}
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists