HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.2.34
System: Linux atalantini.com 3.10.0-1127.13.1.el7.x86_64 #1 SMP Tue Jun 23 15:46:38 UTC 2020 x86_64
User: root (0)
PHP: 7.2.34
Disabled: NONE
Upload Files
File: /var/www/html/drupal/pagina46_zoom/pagina46_zoom.module
<?php

use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\node\Entity\Node;
use Drupal\pagina46_zoom\Controller\Pagina46ZoomController;

/**
 * @file
 * Primary module hooks for pagina46_zoom module.
 *
 * @DCG
 * This file is no longer required in Drupal 8.
 * @see https://www.drupal.org/node/2217931
 */


function pagina46_zoom_help($route_name, RouteMatchInterface $route_match)
{
  switch ($route_name) {
    case 'help.page.pagina46_zoom':
      return '<h1>hello</h1>';
  }
  return NULL;
}

function isEventType($node)
{
  return $node->bundle() == 'evento';
}

function pagina46_zoom_node_delete(Node $node){
  if (isEventType($node)) {
    $controller = new Pagina46ZoomController(true);
    $zoom_id = $node->get('field_zoom_id')->value;
    $tipo_evento_zoom_new = $node->get('field_evento_zoom')->value;
    if (strlen($zoom_id)) {
      switch ($tipo_evento_zoom_new) {
        case '0': //Evento semplice
          break;
        case '1': //Meeting Zoom
          $controller->deleteZoomMeeting($node);
          break;
        case '2': //Webinar Zoom
          $controller->deleteZoomWebinar($node);
          break;
      }
    }
  }
}

function pagina46_zoom_node_presave(Node $node)
{
  if (isEventType($node)) {
    $zoom_id = $node->get('field_zoom_id')->value;
    $controller = new Pagina46ZoomController(true);
    $tipo_evento_zoom_new = $node->get('field_evento_zoom')->value;

    if (!strlen($zoom_id)) {
      switch ($tipo_evento_zoom_new) {
        case '0': //Evento semplice
          break;
        case '1': //Meeting Zoom
          $controller->createZoomMeeting($node);
          break;
        case '2': //Webinar Zoom
          $controller->createZoomWebinar($node);
          break;
      }
    } else {
      $tipo_evento_zoom = $node->original->get('field_evento_zoom')->value;

      if ($tipo_evento_zoom <> $tipo_evento_zoom_new) {
        switch ($tipo_evento_zoom_new) {
          case '0': //Evento semplice
          case null: //Evento nessuno
            $controller->deleteZoomMeeting($node);
            $controller->deleteZoomWebinar($node);
            break;
          case '1': //Meeting Zoom
            $controller->deleteZoomWebinar($node);
            $controller->createZoomMeeting($node);
            break;
          case '2': //Webinar Zoom
            $controller->deleteZoomMeeting($node);
            $controller->createZoomWebinar($node);
            break;
        }
      } else {
        switch ($tipo_evento_zoom_new) {
          case '0': //Evento semplice
          case null: //Evento nessuno
            break;
          case '1': //Meeting Zoom
            $controller->updateZoomMeeting($node);
            break;
          case '2': //Webinar Zoom
            $controller->updateZoomWebinar($node);
            break;
        }
      }
    }
  }
}

function pagina46_zoom_node_update(Node $node)
{
}

function pagina46_zoom_preprocess_block(&$variables)
{
  $block = $variables['elements']['#configuration']['id'];
  if($block == "pagina46_zoom_subscription"){
    $variables['is_public'] = $variables['elements']['content']['variables']['is_public'];
    $variables['just_register'] = $variables['elements']['content']['variables']['just_register'];
  }
}

function pagina46_zoom_page_attachments(array &$page)
{
  $page['#attached']['library'][] = 'pagina46_zoom/pagina46_zoom';
}

//function pagina46_zoom_theme_suggestions_node_alter(array &$suggestions, array $variables) {
//  if (\Drupal::currentUser()
//      ->isAuthenticated() && $variables['elements']['#node']->getType() == 'evento') {
//    $suggestions[] = 'node--evento';
//  }
//}

//function pagina46_zoom_theme_suggestions_field_alter(array &$suggestions, array $variables) {
//  $suggestions[] = 'node__p46field';
//}


function pagina46_zoom_theme($existing, $type, $theme, $path)
{
  return [
    'node__evento' => [
      'template' => 'node--evento',
      'base hook' => 'node',
    ],
//    'field__node__field_evento_data_inizio__evento' => [
//      'template' => 'field--node--field-evento-data-inizio--evento',
//      'base hook' => 'field',
//    ],
//    'field__node__field_image__evento' => [
//      'template' => 'field--node--field-image--evento',
//      'base hook' => 'field',
//    ],
    'block__pagina46_zoom_subscription' => [
      'template' => 'block--pagina46-zoom-subscription',
      'base hook' => 'block',
      'variables'=>[
        'aaa' => 666
      ]
    ]
  ];
}