diff --git a/sites/all/modules/figli/edlp_ajax/edlp_ajax.module b/sites/all/modules/figli/edlp_ajax/edlp_ajax.module index 40ed0e254..8c375bc9a 100644 --- a/sites/all/modules/figli/edlp_ajax/edlp_ajax.module +++ b/sites/all/modules/figli/edlp_ajax/edlp_ajax.module @@ -95,7 +95,8 @@ function edlp_ajax_theme($existing, $type, $theme, $path) { 'variables' => array( 'entity_type' => 'node', 'entity' => NULL, - 'view_mode' => 'default' + 'view_mode' => 'default', + 'aside' => array(), ), ), ); diff --git a/sites/all/modules/figli/edlp_ajax/includes/edlp_ajax.inc b/sites/all/modules/figli/edlp_ajax/includes/edlp_ajax.inc index acd6601ac..d9b9773b3 100644 --- a/sites/all/modules/figli/edlp_ajax/includes/edlp_ajax.inc +++ b/sites/all/modules/figli/edlp_ajax/includes/edlp_ajax.inc @@ -9,4 +9,5 @@ function template_preprocess_edlp_ajax(&$vars){ */ $view_builder = \Drupal::entityTypeManager()->getViewBuilder($vars['entity_type']); $vars['content'] = $view_builder->view($vars['entity'], $vars['view_mode']); + } diff --git a/sites/all/modules/figli/edlp_ajax/src/Controller/EdlpAjaxController.php b/sites/all/modules/figli/edlp_ajax/src/Controller/EdlpAjaxController.php index 2dc36d63e..b41a326fe 100644 --- a/sites/all/modules/figli/edlp_ajax/src/Controller/EdlpAjaxController.php +++ b/sites/all/modules/figli/edlp_ajax/src/Controller/EdlpAjaxController.php @@ -7,6 +7,8 @@ use Symfony\Component\HttpFoundation\Request; use Drupal\Core\Url; use Drupal\Core\Language\LanguageInterface; use Drupal\menu_link_content\Entity\MenuLinkContent; +use Drupal\Core\Datetime\DrupalDateTime; + // use Symfony\Component\HttpFoundation\JsonResponse; use \Drupal\block\Entity\Block; use Drupal\Core\Cache\CacheableJsonResponse; @@ -18,6 +20,104 @@ class EdlpAjaxController extends ControllerBase { private function query() { $this->entity = entity_load($this->entity_type, $this->id); + + if($this->entity){ + switch($this->entity_type){ + case 'node': + $this->bundle = $this->entity->getType(); + break; + case 'taxonomy_term': + $this->bundle = $this->entity->bundle(); + break; + default: + $this->bundle = NULL; + } + } + } + + private function getProductionDatesAside(){ + + $now = new DrupalDateTime('now'); + $now->setTimezone(new \DateTimeZone(DATETIME_STORAGE_TIMEZONE)); + + $future_dates_query = \Drupal::entityQuery('node') + ->condition('status', 1) + ->condition('type', 'evenement') + ->condition('field_page_liee.target_id', $this->entity->id(), 'IN') + ->condition('field_date', $now->format(DATETIME_DATETIME_STORAGE_FORMAT), '>=') + ->sort('field_date'); + $future_nids = $future_dates_query->execute(); + + $past_dates_query = \Drupal::entityQuery('node') + ->condition('status', 1) + ->condition('type', 'evenement') + ->condition('field_page_liee.target_id', $this->entity->id(), 'IN') + ->condition('field_date', $now->format(DATETIME_DATETIME_STORAGE_FORMAT), '<') + ->sort('field_date', 'DESC'); + $past_nids = $past_dates_query->execute(); + + if(count($future_nids) || count($past_nids)){ + + $aside = array( + '#type'=>'container' + ); + + $node_view_builder = \Drupal::entityTypeManager()->getViewBuilder('node'); + + if(count($future_nids)){ + $future_nodes = entity_load_multiple('node', $future_nids); + $future_list = array ( + '#theme' => 'item_list', + '#items' => [], + ); + foreach($future_nodes as $node){ + $future_list['#items'][] = $node_view_builder->view($node, 'teaser'); + } + $aside['future_events'] = array( + "#type"=>"container", + "#attributes"=>array( + "class"=>['future-events'] + ), + "#markup"=>"