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
]
]
];
}