You are here

course_node.module in Course 3.x

File

modules/course_node/course_node.module
View source
<?php

use Drupal\course\Entity\Course;
use Drupal\node\Entity\Node;
use Drupal\node\Entity\NodeType;

/**
 * Check if a Node references a Course.
 *
 * @param Node $node
 *   A node.
 *
 * @return bool
 */
function course_node_is_course(Node $node) {
  $type = $node
    ->getType();
  $node_type = NodeType::load($type);
  return $node_type
    ->getThirdPartySetting('course_node', 'enabled');
}

/**
 * Implements hook_node_presave().
 *
 * Add an empty course entity if necessary.
 */
function course_node_presave(Node $node) {
  if (course_node_is_course($node) && $node
    ->get('course')
    ->isEmpty()) {
    $course = Course::create([
      'type' => 'course',
    ]);
    $course
      ->save();
    $node
      ->set('course', $course);
  }
}

Functions

Namesort descending Description
course_node_is_course Check if a Node references a Course.
course_node_presave Implements hook_node_presave().