diff --git a/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.module b/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.module index 605287674..2b778be7f 100644 --- a/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.module +++ b/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.module @@ -14,7 +14,8 @@ function edlp_ajax_node_theme($existing, $type, $theme, $path) { 'edlp_ajax_node' => array( 'file' => 'includes/edlp_ajax_node.inc', 'variables' => array( - 'node' => NULL + 'node_object' => NULL, + 'view_mode' => 'default' ), ), ); diff --git a/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.routing.yml b/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.routing.yml index 43f1bea66..f3c385bb5 100644 --- a/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.routing.yml +++ b/sites/all/modules/figli/edlp_ajax_node/edlp_ajax_node.routing.yml @@ -7,17 +7,19 @@ # @License: GPL-V3 edlp_ajax_node.node: - path: '/edlp/node/{nid}' + path: '/edlp/node/{nid}/{viewmode}' defaults: _controller: '\Drupal\edlp_ajax_node\Controller\EdlpAjaxNodeController::node' _title: 'Node' + viewmode: 'default' requirements: _permission: 'access content' edlp_ajax_node.ajaxnode: - path: '/edlp/node/{nid}/ajax' + path: '/edlp/node/{nid}/ajax/{viewmode}' defaults: _controller: '\Drupal\edlp_ajax_node\Controller\EdlpAjaxNodeController::nodejson' _title: 'AjaxNode' + viewmode: 'default' requirements: _permission: 'access content' diff --git a/sites/all/modules/figli/edlp_ajax_node/includes/edlp_ajax_node.inc b/sites/all/modules/figli/edlp_ajax_node/includes/edlp_ajax_node.inc index c344ec664..7575079ff 100644 --- a/sites/all/modules/figli/edlp_ajax_node/includes/edlp_ajax_node.inc +++ b/sites/all/modules/figli/edlp_ajax_node/includes/edlp_ajax_node.inc @@ -8,5 +8,5 @@ function template_preprocess_edlp_ajax_node(&$vars){ @see https://www.drupal8.ovh/index.php/en/tutoriels/339/render-a-node-or-an-entity */ $view_builder = \Drupal::entityTypeManager()->getViewBuilder('node'); - $vars['node'] = $view_builder->view($vars['node'], 'default'); + $vars['node'] = $view_builder->view($vars['node_object'], $vars['view_mode']); } diff --git a/sites/all/modules/figli/edlp_ajax_node/src/Controller/EdlpAjaxNodeController.php b/sites/all/modules/figli/edlp_ajax_node/src/Controller/EdlpAjaxNodeController.php index a76719254..df9ea1e40 100644 --- a/sites/all/modules/figli/edlp_ajax_node/src/Controller/EdlpAjaxNodeController.php +++ b/sites/all/modules/figli/edlp_ajax_node/src/Controller/EdlpAjaxNodeController.php @@ -14,11 +14,18 @@ class EdlpAjaxNodeController extends ControllerBase { private function toRenderable(){ $this->query(); - // dpm($this->future_nodes); - return array( - "#theme"=>'edlp_ajax_node', - '#node' => $this->node, - ); + + if($this->node){ + return array( + "#theme"=>'edlp_ajax_node', + '#node_object' => $this->node, + '#view_mode' => $this->viewmode, + ); + }else{ + return array( + '#markup'=>'404! Node '.$this->nid." not found!" + ); + } } /** @@ -26,8 +33,9 @@ class EdlpAjaxNodeController extends ControllerBase { * * @return renderable array */ - public function node($nid) { + public function node($nid, $viewmode) { $this->nid = $nid; + $this->viewmode = $viewmode; return $this->toRenderable(); } @@ -36,16 +44,18 @@ class EdlpAjaxNodeController extends ControllerBase { * * @return json */ - public function nodejson($nid) { + public function nodejson($nid, $viewmode) { $this->nid = $nid; - $response = new JsonResponse(); + $this->viewmode = $viewmode; $renderable = $this->toRenderable(); $rendered = render($renderable); + $response = new JsonResponse(); $response->setData([ - 'test'=>'hello edlp ajax node', + 'test' => 'hello edlp ajax node', 'nid' => $this->nid, - 'rendered'=> $rendered + 'view_mode' => $this->viewmode, + 'rendered'=> $rendered, ]); return $response; diff --git a/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js b/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js index 7952b8ecd..fafd0fbfa 100644 --- a/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js +++ b/sites/all/modules/figli/edlp_corpus/assets/dist/scripts/corpus.min.js @@ -379,13 +379,14 @@ var event = { 'type':'corpus-cliked-on-node', 'target_node':{ - 'nid':_node_hover_id, + 'id':_node_hover_id, + 'nid':_nodes[_node_hover_id].nid, 'audio_url':_nodes[_node_hover_id].son_url }, }; _$canvas.trigger(event); }else{ - console.log('corpus : click on map'); + // console.log('corpus : click on map'); _$canvas.trigger('corpus-cliked-on-map'); } } diff --git a/sites/all/modules/figli/edlp_corpus/assets/scripts/corpus.js b/sites/all/modules/figli/edlp_corpus/assets/scripts/corpus.js index 7952b8ecd..fafd0fbfa 100644 --- a/sites/all/modules/figli/edlp_corpus/assets/scripts/corpus.js +++ b/sites/all/modules/figli/edlp_corpus/assets/scripts/corpus.js @@ -379,13 +379,14 @@ var event = { 'type':'corpus-cliked-on-node', 'target_node':{ - 'nid':_node_hover_id, + 'id':_node_hover_id, + 'nid':_nodes[_node_hover_id].nid, 'audio_url':_nodes[_node_hover_id].son_url }, }; _$canvas.trigger(event); }else{ - console.log('corpus : click on map'); + // console.log('corpus : click on map'); _$canvas.trigger('corpus-cliked-on-map'); } } diff --git a/sites/all/modules/figli/edlp_corpus/src/Controller/CorpusController.php b/sites/all/modules/figli/edlp_corpus/src/Controller/CorpusController.php index c5f08c390..14f67d7c0 100644 --- a/sites/all/modules/figli/edlp_corpus/src/Controller/CorpusController.php +++ b/sites/all/modules/figli/edlp_corpus/src/Controller/CorpusController.php @@ -41,11 +41,9 @@ class CorpusController extends ControllerBase { $nodes_data = []; foreach ($nodes as $node) { - - // this is ideal but it's too heavy to load : the whole ajax json goes from 138kb to 1.23Md (even optimized)... + // this would be ideal but it's too heavy to load : the whole ajax json goes from 138kb to 1.23Md (even optimized)... // $node_builder = $view_builder->view($node, 'popup'); - $entrees = []; foreach ($node->get('field_entrees')->getValue() as $key => $term) { $entrees[] = $term['target_id']; diff --git a/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js b/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js index 8b52406b6..6a6c155f4 100644 --- a/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js +++ b/sites/all/themes/custom/edlptheme/assets/dist/scripts/main.min.js @@ -81,6 +81,10 @@ edlp_vars = { this.$time = $('