diff --git a/sites/all/modules/figli/edlp_corpus/edlp_corpus.module b/sites/all/modules/figli/edlp_corpus/edlp_corpus.module index 465dd433f..fe6e82887 100644 --- a/sites/all/modules/figli/edlp_corpus/edlp_corpus.module +++ b/sites/all/modules/figli/edlp_corpus/edlp_corpus.module @@ -42,6 +42,13 @@ function edlp_corpus_theme($existing, $type, $theme, $path) { 'articles_nodes' => NULL, ), ), + 'edlp_corpus_collection' => array( + // 'render element' => '', + 'file' => 'includes/edlp_corpus_collection.inc', + 'variables' => array( + 'entrees_terms' => NULL, + ), + ), ); } diff --git a/sites/all/modules/figli/edlp_corpus/edlp_corpus.routing.yml b/sites/all/modules/figli/edlp_corpus/edlp_corpus.routing.yml index 344d8cb57..20d4eb6b2 100644 --- a/sites/all/modules/figli/edlp_corpus/edlp_corpus.routing.yml +++ b/sites/all/modules/figli/edlp_corpus/edlp_corpus.routing.yml @@ -31,7 +31,6 @@ edlp_corpus.lastdocsajax: requirements: _permission: 'access content' - edlp_corpus.articlesindex: path: '/articles' defaults: @@ -47,3 +46,19 @@ edlp_corpus.articlesindexajax: _title: 'Articles Index' requirements: _permission: 'access content' + +edlp_corpus.collection: + path: '/collection' + defaults: + _controller: '\Drupal\edlp_corpus\Controller\CorpusController::collection' + _title: 'Collection' + requirements: + _permission: 'access content' + +edlp_corpus.collectionajax: + path: '/collection/ajax' + defaults: + _controller: '\Drupal\edlp_corpus\Controller\CorpusController::collectionjson' + _title: 'Collection' + requirements: + _permission: 'access content' diff --git a/sites/all/modules/figli/edlp_corpus/includes/edlp_corpus_collection.inc b/sites/all/modules/figli/edlp_corpus/includes/edlp_corpus_collection.inc new file mode 100644 index 000000000..12e3db348 --- /dev/null +++ b/sites/all/modules/figli/edlp_corpus/includes/edlp_corpus_collection.inc @@ -0,0 +1,29 @@ +getViewBuilder('taxonomy_term'); + + if(isset($vars['entrees_terms'])){ + $entrees = array( + '#type'=>"container", + // '#attributes' => array( + // 'id' => array('collection'), + // ), + '#prefix' => '
', + 'title'=>array( + '#markup'=>"

".t("Collection")."

", + ), + 'list'=> array( + '#theme' => 'item_list', + '#items' => [], + ), + ); + foreach($vars['entrees_terms'] as $term){ + $entrees['list']['#items'][] = $term_view_builder->view($term, 'home_mobile'); + } + $vars['entrees'] = render($entrees); + } + +} 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 4311140e8..fd8324079 100644 --- a/sites/all/modules/figli/edlp_corpus/src/Controller/CorpusController.php +++ b/sites/all/modules/figli/edlp_corpus/src/Controller/CorpusController.php @@ -7,6 +7,7 @@ use Drupal\Core\Language\LanguageInterface; use Drupal\workflow\Entity\WorkflowManager; use Drupal\Core\Url; use Drupal\File\Entity\File; +use Drupal\taxonomy\Entity\Term; // use Symfony\Component\HttpFoundation\JsonResponse; use Drupal\Core\Cache\CacheableJsonResponse; use Drupal\Core\Cache\CacheableMetadata; @@ -251,107 +252,199 @@ class CorpusController extends ControllerBase { // /_/ \_\_| \__|_\__|_\___/__/ |___|_||_\__,_\___/_\_\ - private function articlesQuery() { - $query = \Drupal::entityQuery('node') - ->condition('status', 1) - ->condition('type', 'enregistrement') - ->condition('body', '', "<>") - ->sort('created', 'DESC'); - // ->range(0,20); + private function articlesQuery() { + $query = \Drupal::entityQuery('node') + ->condition('status', 1) + ->condition('type', 'enregistrement') + ->condition('body', '', "<>") + ->sort('created', 'DESC'); + // ->range(0,20); - $nids = $query->execute(); - $nodes = entity_load_multiple('node', $nids); + $nids = $query->execute(); + $nodes = entity_load_multiple('node', $nids); - $current_langcode = \Drupal::languageManager()->getCurrentLanguage()->getId(); + $current_langcode = \Drupal::languageManager()->getCurrentLanguage()->getId(); - $this->articles_nodes = []; - $this->articles_nids = []; - foreach ($nodes as $node) { - // remove masqué - $sid = WorkflowManager::getCurrentStateId($node, 'field_workflow'); - if($sid != 'corpus_documents_publie') continue; + $this->articles_nodes = []; + $this->articles_nids = []; + foreach ($nodes as $node) { + // remove masqué + $sid = WorkflowManager::getCurrentStateId($node, 'field_workflow'); + if($sid != 'corpus_documents_publie') continue; - // TODO: check if article is translated - if ($node->getTranslation($current_langcode)->body->isEmpty()) continue; - - $this->articles_nodes[] = $node; - // record an array of nids for corpus map filtering - $this->articles_nids[] = $node->get('nid')->getString(); - } + // TODO: check if article is translated + if ($node->getTranslation($current_langcode)->body->isEmpty()) continue; + $this->articles_nodes[] = $node; + // record an array of nids for corpus map filtering + $this->articles_nids[] = $node->get('nid')->getString(); } - private function articlesToRenderable(){ - $this->articlesQuery(); - // dpm($this->next_event_node); + } - return array( - "#theme"=>'edlp_corpus_articlesindex', - '#articles_nodes' => $this->articles_nodes - ); + private function articlesToRenderable(){ + $this->articlesQuery(); + // dpm($this->next_event_node); - } - /** - * Display lastdocs as a page. - * - * @return renderable array - */ - public function articlesindex() { - return $this->articlesToRenderable(); - } + return array( + "#theme"=>'edlp_corpus_articlesindex', + '#articles_nodes' => $this->articles_nodes + ); - /** - * Get lastdocs data as json through ajax. - * - * @return json - */ - public function articlesindexjson() { + } + /** + * Display lastdocs as a page. + * + * @return renderable array + */ + public function articlesindex() { + return $this->articlesToRenderable(); + } - $renderable = $this->articlesToRenderable(); - // $rendered = render($renderable); - // We can't render directly the entity as it throw an exception with cachable data - //http://blog.dcycle.com/blog/2018-01-24/caching-drupal-8-rest-resource/#the-dreaded-leaked-metadata-error - $rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($renderable) { - return render($renderable); - }); + /** + * Get lastdocs data as json through ajax. + * + * @return json + */ + public function articlesindexjson() { - $data = [ - 'rendered'=> $rendered, - 'title'=>'Articles', - 'articles' => $this->articles_nids, - 'documents_lies' => $this->articles_nids, + $renderable = $this->articlesToRenderable(); + // $rendered = render($renderable); + // We can't render directly the entity as it throw an exception with cachable data + //http://blog.dcycle.com/blog/2018-01-24/caching-drupal-8-rest-resource/#the-dreaded-leaked-metadata-error + $rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($renderable) { + return render($renderable); + }); + + $data = [ + 'rendered'=> $rendered, + 'title'=>'Articles', + 'articles' => $this->articles_nids, + 'documents_lies' => $this->articles_nids, + ]; + + // translations links + // use Drupal\Core\Url; + // use Drupal\Core\Language\LanguageInterface; + $route_name = 'edlp_corpus.articlesindex'; + $links = \Drupal::languageManager()->getLanguageSwitchLinks(LanguageInterface::TYPE_URL, Url::fromRoute($route_name)); + if (isset($links->links)) { + $translations_build = [ + '#theme' => 'links__language_block', + '#links' => $links->links, + '#attributes' => ['class' => ["language-switcher-{$links->method_id}",],], + '#set_active_class' => TRUE, ]; + $translations_rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($translations_build) {return render($translations_build);}); - // translations links - // use Drupal\Core\Url; - // use Drupal\Core\Language\LanguageInterface; - $route_name = 'edlp_corpus.articlesindex'; - $links = \Drupal::languageManager()->getLanguageSwitchLinks(LanguageInterface::TYPE_URL, Url::fromRoute($route_name)); - if (isset($links->links)) { - $translations_build = [ - '#theme' => 'links__language_block', - '#links' => $links->links, - '#attributes' => ['class' => ["language-switcher-{$links->method_id}",],], - '#set_active_class' => TRUE, - ]; - $translations_rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($translations_build) {return render($translations_build);}); - - $data['translations_links'] = $translations_rendered; - } - - $data['#cache'] = [ - 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT, - 'tags' => ['edlp-articlesindex-cache'] - ]; - - // $response = new JsonResponse(); - // $response->setData($data); - $response = new CacheableJsonResponse($data); - $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data)); - $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($renderable)); - - return $response; + $data['translations_links'] = $translations_rendered; } + $data['#cache'] = [ + 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT, + 'tags' => ['edlp-articlesindex-cache'] + ]; + + // $response = new JsonResponse(); + // $response->setData($data); + $response = new CacheableJsonResponse($data); + $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data)); + $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($renderable)); + + return $response; + } + + + +// ___ _ _ _ _ +// / __|___| | |___ __| |_(_)___ _ _ +// | (__/ _ \ | / -_) _| _| / _ \ ' \ +// \___\___/_|_\___\__|\__|_\___/_||_| + + private function collectionQuery(){ + $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); + + $query = \Drupal::entityQuery('taxonomy_term') + // ->sort('weight', 'DESC') + // ->sort('name', 'DESC') + ->condition('vid', 'entrees'); + + $tids = $query->execute(); + // $terms = entity_load_multiple('taxonomy_term', $tids); + // $terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadMultiple($t‌​erms); + $terms = Term::loadMultiple($tids); + + $ordered_terms = []; + foreach ($terms as $term) { + // remove masqué + $sid = WorkflowManager::getCurrentStateId($term, 'field_workflow'); + if($sid == 'generique_masque') continue; + // translate the term + $term = \Drupal::service('entity.repository')->getTranslationFromContext($term, $language); + $name = $term->getName(); + $ordered_trans_terms[$name] = $term; + } + ksort($ordered_trans_terms); + $this->entrees_terms = $ordered_trans_terms; + + } + + private function collectionToRenderable(){ + $this->collectionQuery(); + + return array( + "#theme"=>'edlp_corpus_collection', + '#entrees_terms' => $this->entrees_terms + ); + } + + public function collection(){ + return $this->collectionToRenderable(); + } + + public function collectionjson(){ + $renderable = $this->collectionToRenderable(); + // $rendered = render($renderable); + // We can't render directly the entity as it throw an exception with cachable data + //http://blog.dcycle.com/blog/2018-01-24/caching-drupal-8-rest-resource/#the-dreaded-leaked-metadata-error + $rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($renderable) { + return render($renderable); + }); + + $data = [ + 'rendered'=> $rendered, + 'title'=>'Collection' + ]; + + // translations links + // use Drupal\Core\Url; + // use Drupal\Core\Language\LanguageInterface; + $route_name = 'edlp_corpus.collection'; + $links = \Drupal::languageManager()->getLanguageSwitchLinks(LanguageInterface::TYPE_URL, Url::fromRoute($route_name)); + if (isset($links->links)) { + $translations_build = [ + '#theme' => 'links__language_block', + '#links' => $links->links, + '#attributes' => ['class' => ["language-switcher-{$links->method_id}",],], + '#set_active_class' => TRUE, + ]; + $translations_rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($translations_build) {return render($translations_build);}); + + $data['translations_links'] = $translations_rendered; + } + + $data['#cache'] = [ + 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT, + 'tags' => ['edlp-articlesindex-cache'] + ]; + + // $response = new JsonResponse(); + // $response->setData($data); + $response = new CacheableJsonResponse($data); + $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data)); + $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($renderable)); + + return $response; + } } diff --git a/sites/all/modules/figli/edlp_corpus/templates/edlp-corpus-collection.html.twig b/sites/all/modules/figli/edlp_corpus/templates/edlp-corpus-collection.html.twig new file mode 100644 index 000000000..9892a3a3d --- /dev/null +++ b/sites/all/modules/figli/edlp_corpus/templates/edlp-corpus-collection.html.twig @@ -0,0 +1,3 @@ +{% if entrees %} + {{ entrees }} +{% endif %} diff --git a/sites/all/modules/figli/edlp_home/edlp_home.module b/sites/all/modules/figli/edlp_home/edlp_home.module index 89a9dac70..0b5af9938 100644 --- a/sites/all/modules/figli/edlp_home/edlp_home.module +++ b/sites/all/modules/figli/edlp_home/edlp_home.module @@ -25,7 +25,8 @@ function edlp_home_theme($existing, $type, $theme, $path) { 'promoted_nodes' => array(), 'lastdocs_items' => NULL, 'agenda_items' => NULL, - 'entrees_items' => NULL, + // 'entrees_items' => NULL, + 'collection_link' => NULL, ), ), ); diff --git a/sites/all/modules/figli/edlp_home/edlp_home.routing.yml b/sites/all/modules/figli/edlp_home/edlp_home.routing.yml index fa538044f..136dc70e9 100644 --- a/sites/all/modules/figli/edlp_home/edlp_home.routing.yml +++ b/sites/all/modules/figli/edlp_home/edlp_home.routing.yml @@ -21,3 +21,11 @@ edlp_home.home_mobile: _title: 'Home' requirements: _permission: 'access content' + +edlp_home.home_mobileajax: + path: '/home_m/ajax' + defaults: + _controller: '\Drupal\edlp_home\Controller\HomeController::home_mobilejson' + _title: 'Home' + requirements: + _permission: 'access content' diff --git a/sites/all/modules/figli/edlp_home/includes/edlp_home.inc b/sites/all/modules/figli/edlp_home/includes/edlp_home.inc index e4bd7ece7..464dd6900 100644 --- a/sites/all/modules/figli/edlp_home/includes/edlp_home.inc +++ b/sites/all/modules/figli/edlp_home/includes/edlp_home.inc @@ -4,7 +4,7 @@ use Drupal\Core\Url; function template_preprocess_edlp_home(&$vars){ $node_view_builder = \Drupal::entityTypeManager()->getViewBuilder('node'); - $term_view_builder = \Drupal::entityTypeManager()->getViewBuilder('taxonomy_term'); + // $term_view_builder = \Drupal::entityTypeManager()->getViewBuilder('taxonomy_term'); // dpm($vars); // render the promoted_nodes @@ -34,21 +34,6 @@ function template_preprocess_edlp_home(&$vars){ } } - // render the presentation column - // $vars["presentation"] = array( - // "#type"=>"container", - // "pres"=>$node_view_builder->view($vars["presentation_node"], 'default'), - // "link"=> array( - // '#title' => t('Visiter la collection sonore.'), - // '#type' => 'link', - // '#url' => Url::fromRoute('', [], array( - // 'attributes' => array( - // 'class' => ['corpus-link', 'ajax-link'] - // ) - // )) - // ) - // ); - // render the last fil column // $vars["last_fil"] = array( // "#type" => "container", @@ -81,21 +66,6 @@ function template_preprocess_edlp_home(&$vars){ // // ) // ); - // render the last production column - // $vars["last_production"] = array( - // '#type' => 'container', - // 'prod' => $node_view_builder->view($vars['last_production_node'], 'teaser'), - // 'link'=> array( - // '#title' => t('Voir toutes les productions.'), - // '#type' => 'link', - // '#url' => Url::fromRoute('edlp_productions.productions', [], array( - // 'attributes' => array( - // 'class' => ['productions-link', 'ajax-link'] - // ) - // )) - // ) - // ); - // render the lasts documents of collection as list if(isset($vars['lastdocs_items'])){ @@ -156,25 +126,24 @@ function template_preprocess_edlp_home(&$vars){ $vars['agenda'] = render($agenda); } - if(isset($vars['entrees_items'])){ - $entrees = array( + if(isset($vars['collection_link'])){ + $collection = array( '#type'=>"container", - // '#attributes' => array( - // 'id' => array('collection'), - // ), - '#prefix' => '
', 'title'=>array( - '#markup'=>"

".t("Collection")."

", - ), - 'list'=> array( - '#theme' => 'item_list', - '#items' => [], - ), + '#prefix'=> '

', + '#title' => t("Collection"), + '#suffix' => '

', + '#type' => 'link', + '#url' => $vars['collection_link']['url'], + '#options'=>array( + 'attributes' => array( + 'data-drupal-link-system-path' => $vars['collection_link']['internal_path'], + 'class' => array('ajax-link'), + ) + ) + ) ); - foreach($vars['entrees_items'] as $term){ - $entrees['list']['#items'][] = $term_view_builder->view($term, 'home_mobile'); - } - $vars['entrees'] = render($entrees); + $vars['collection'] = render($collection); } } diff --git a/sites/all/modules/figli/edlp_home/src/Controller/HomeController.php b/sites/all/modules/figli/edlp_home/src/Controller/HomeController.php index 2b801c6b8..f0c1323c8 100644 --- a/sites/all/modules/figli/edlp_home/src/Controller/HomeController.php +++ b/sites/all/modules/figli/edlp_home/src/Controller/HomeController.php @@ -6,7 +6,13 @@ use Drupal\Core\Controller\ControllerBase; use Drupal\Core\Datetime\DrupalDateTime; use Drupal\taxonomy\Entity\Term; use Drupal\workflow\Entity\WorkflowManager; -use Symfony\Component\HttpFoundation\JsonResponse; +use Drupal\Core\Url; +use Drupal\Core\Language\LanguageInterface; +// use Symfony\Component\HttpFoundation\JsonResponse; +use Drupal\Core\Cache\CacheableJsonResponse; +use Drupal\Core\Cache\CacheableMetadata; +use Drupal\core\render\RenderContext; + class HomeController extends ControllerBase { @@ -99,16 +105,17 @@ class HomeController extends ControllerBase { return $contents; } + /** - * Display agenda as a page. + * Display home mobile as a page. * * @return renderable array */ - public function home_mobile() { + public function toMobileHomeRenderable() { // $view_builder = \Drupal::entityTypeManager()->getViewBuilder('node'); - $contents = array("#theme"=>'edlp_home'); + $renderable = array("#theme"=>'edlp_home'); // first get static pages $query = \Drupal::entityQuery('node') @@ -117,7 +124,7 @@ class HomeController extends ControllerBase { ->condition('type', 'static'); $promoted_nids = $query->execute(); - $contents["#promoted_nodes"] = entity_load_multiple('node', $promoted_nids); + $renderable["#promoted_nodes"] = entity_load_multiple('node', $promoted_nids); // then get production pages $query = \Drupal::entityQuery('node') @@ -126,7 +133,7 @@ class HomeController extends ControllerBase { ->condition('type', 'page'); $promoted_nids = $query->execute(); - $contents["#promoted_nodes"] += entity_load_multiple('node', $promoted_nids); + $renderable["#promoted_nodes"] += entity_load_multiple('node', $promoted_nids); // last fil // $query = \Drupal::entityQuery('node') @@ -136,8 +143,8 @@ class HomeController extends ControllerBase { // ->range(0,1); // // $fil = $query->execute(); - // $contents["#last_fil_node"] = entity_load('node', array_pop($fil)); - // $contents["#last_fil_node"] = array('#markup'=>'En développement.'); + // $renderable["#last_fil_node"] = entity_load('node', array_pop($fil)); + // $renderable["#last_fil_node"] = array('#markup'=>'En développement.'); // agenda $now = new DrupalDateTime('now'); @@ -151,100 +158,79 @@ class HomeController extends ControllerBase { ->sort('field_date'); $events = $query->execute(); - $contents['#agenda_items'] = entity_load_multiple('node', $events); + $renderable['#agenda_items'] = entity_load_multiple('node', $events); - // entrées - $language = \Drupal::languageManager()->getCurrentLanguage()->getId(); + // Collection + // TODO: get the link to mobile collection page + $collection_url = Url::fromRoute('edlp_corpus.collection'); + $renderable['#collection_link'] = array( + 'url' => $collection_url, + 'internal_path' => $collection_url->getInternalPath(), + ); - $query = \Drupal::entityQuery('taxonomy_term') - // ->sort('weight', 'DESC') - // ->sort('name', 'DESC') - ->condition('vid', 'entrees'); - $tids = $query->execute(); - // $terms = entity_load_multiple('taxonomy_term', $tids); - // $terms = \Drupal::entityManager()->getStorage('taxonomy_term')->loadMultiple($t‌​erms); - $terms = Term::loadMultiple($tids); - $ordered_terms = []; - foreach ($terms as $term) { - // remove masqué - $sid = WorkflowManager::getCurrentStateId($term, 'field_workflow'); - if($sid == 'generique_masque') continue; - // translate the term - $term = \Drupal::service('entity.repository')->getTranslationFromContext($term, $language); - $name = $term->getName(); - $ordered_trans_terms[$name] = $term; + return $renderable; + } + + + public function home_mobile() { + return $this->toMobileHomeRenderable(); + } + + /** + * Get home mobile data as json through ajax. + * + * @return json + */ + // NOT NEEDED ANY MORE + public function home_mobilejson() { + + $renderable = $this->toMobileHomeRenderable(); + // $rendered = render($renderable); + // We can't render directly the entity as it throw an exception with cachable data + //http://blog.dcycle.com/blog/2018-01-24/caching-drupal-8-rest-resource/#the-dreaded-leaked-metadata-error + $rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($renderable) { + return render($renderable); + }); + + $data = [ + 'rendered'=> $rendered, + 'title'=>'Home Mobile', + ]; + + // translations links + // use Drupal\Core\Url; + // use Drupal\Core\Language\LanguageInterface; + $route_name = 'edlp_home.home_mobile'; + $links = \Drupal::languageManager()->getLanguageSwitchLinks(LanguageInterface::TYPE_URL, Url::fromRoute($route_name)); + if (isset($links->links)) { + $translations_build = [ + '#theme' => 'links__language_block', + '#links' => $links->links, + '#attributes' => ['class' => ["language-switcher-{$links->method_id}",],], + '#set_active_class' => TRUE, + ]; + $translations_rendered = \Drupal::service('renderer')->executeInRenderContext(new RenderContext(), function () use ($translations_build) {return render($translations_build);}); + + $data['translations_links'] = $translations_rendered; } - ksort($ordered_trans_terms); + $data['#cache'] = [ + 'max-age' => \Drupal\Core\Cache\Cache::PERMANENT, + 'tags' => ['edlp-home-cache'], + 'contexts' => [ + 'languages:language_content' + ] + ]; + // $response = new JsonResponse(); + // $response->setData($data); + $response = new CacheableJsonResponse($data); + $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($data)); + $response->addCacheableDependency(CacheableMetadata::createFromRenderArray($renderable)); - // dsm($terms); - // foreach ($ordered_trans_terms as $name => $term) { - // $tid = $term->id(); - // - // $entree = array( - // 'tid'=>$tid - // ); - - // term link - // $url = Url::fromRoute('entity.taxonomy_term.canonical', ['taxonomy_term'=>$tid]); - // $url->setOptions(array( - // 'attributes' => array( - // 'class' => ['term-'.$tid, 'term-link'], - // 'tid'=>$tid, - // 'selector' => 'entree-term-link-'.$tid, - // 'data-drupal-link-system-path' => $url->getInternalPath() - // ) - // )); - // $entree['term_link'] = Link::fromTextAndUrl($name, $url); - // index link - // $url = Url::fromRoute('entity.taxonomy_term.canonical', ['taxonomy_term'=>$tid]); - // $url->setOptions(array( - // 'attributes' => array( - // 'class' => ['index-link', 'ajax-link'], - // 'viewmode'=>'index', - // 'tid'=>$tid, - // 'selector' => 'entree-index-link-'.$tid, - // 'data-drupal-link-system-path' => $url->getInternalPath() - // ) - // )); - // $entree['index_link'] = Link::fromTextAndUrl('index', $url); - - // notice-link - // $url = Url::fromRoute('entity.taxonomy_term.canonical', ['taxonomy_term'=>$tid]); - // $url->setOptions(array( - // 'attributes' => array( - // 'class' => ['notice-link'], - // 'viewmode'=>'notice', - // 'tid'=>$tid, - // 'selector' => 'entree-notice-link-'.$tid, - // 'data-drupal-link-system-path' => $url->getInternalPath() - // ) - // )); - // $entree['notice_link'] = Link::fromTextAndUrl('notice', $url); - - // $entree['description'] = $term->get('description')->value; - // - // $entrees[] = $entree; - // } - - $contents['#entrees_items'] = $ordered_trans_terms; - - // = array ( - // '#theme' => 'blockentrees', - // '#entrees_items' => $entrees, - // '#attached'=>array( - // 'library' => array('edlp_corpus/corpus'), - // 'drupalSettings' => array( - // 'basepath' => base_path() - // ) - // ) - // ); - - - return $contents; + return $response; } } diff --git a/sites/all/modules/figli/edlp_home/templates/edlp-home.html.twig b/sites/all/modules/figli/edlp_home/templates/edlp-home.html.twig index 644a8431f..8c4925e18 100644 --- a/sites/all/modules/figli/edlp_home/templates/edlp-home.html.twig +++ b/sites/all/modules/figli/edlp_home/templates/edlp-home.html.twig @@ -16,6 +16,6 @@ {{ agenda }} {% endif %} -{% if entrees %} - {{ entrees }} +{% if collection %} + {{ collection }} {% endif %} diff --git a/sites/all/modules/figli/edlp_mobile/edlp_mobile.module b/sites/all/modules/figli/edlp_mobile/edlp_mobile.module index fdc77f374..c8774dbe1 100644 --- a/sites/all/modules/figli/edlp_mobile/edlp_mobile.module +++ b/sites/all/modules/figli/edlp_mobile/edlp_mobile.module @@ -116,7 +116,7 @@ function edlp_mobile_page_attachments(array &$attachments) { // we assume that there is only two alias by env (mobile or desktop) foreach ($env_aliases as $env_alias_id => $env_alias) { if($env_alias_id != $alias->id()){ - // we found the desktop pattern + // we found the mobile pattern $mobile_url = $env_alias->getPattern(); break; } @@ -128,6 +128,13 @@ function edlp_mobile_page_attachments(array &$attachments) { $is_front = \Drupal::service('path.matcher')->isFrontPage(); $current_language = \Drupal::languageManager()->getCurrentLanguage()->getId(); + // $config->set($domain_id . '.site_frontpage', $site_frontpage); + + // $mobile_home_path = "???"; + $mobile_home_path = \Drupal::config('domain_site_settings.domainconfigsettings')->get('m_encyclopediedelaparole_org.site_frontpage', FALSE); + // $desktop_home_path = "???"; + $desktop_home_path = \Drupal::config('domain_site_settings.domainconfigsettings')->get('encyclopediedelaparole_org.site_frontpage', FALSE); + // $redirect = false; $js_str = "var edlp_mobile = {\n current_url:'".$base_root."',\n @@ -136,7 +143,9 @@ function edlp_mobile_page_attachments(array &$attachments) { lang_code:'".$current_language."',\n is_mobile_domain:".($is_mobile_domain ? 'true':'false').",\n mobile_url:'".$mobile_url."',\n + mobile_home_path:'".$mobile_home_path."',\n desktop_url:'".$desktop_url."',\n + desktop_home_path:'".$desktop_home_path."',\n };"; $attachments['#attached']['html_head'][] = [ 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 43578d998..402e938bf 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 @@ -1,7 +1,9 @@ -(function($,Drupal,drupalSettings){EdlpTheme=function(){var _ajax_settings=drupalSettings.edlp_ajax;var _$body=$('body');var _corpus_ready=false;var _$corpus_canvas;var _$row=$('main[role="main"]>.layout-content>.row');var _$ajaxLinks;var _audioPlayer;var _randomPlayer;var _compoPlayer;var _ajax_timing={start:0,end:0};var _corpus_promise;var _is_mobile=edlp_mobile.device_is_mobile;function init(){void 0;if(!_is_mobile){initEvents();_audioPlayer=new AudioPlayer();_compoPlayer=new CompoPlayer();checkLayout();initAjaxLinks();initHistory();initAudioLinksHover();}else{if(drupalSettings.path.isFront){initHomeMobile();} -_$body.attr('booted','booted');}};function initHomeMobile(){$('.field--name-field-notice, .index','.entrees .taxonomy-term.vocabulary-entrees').addClass('closed');$('[data-drupal-link-system-path=""]','#block-mainnavigation').removeClass('is-active').attr('href','#collection');$('h2#block-mainnavigation-menu, a','#block-mainnavigation').on('click',onclickHomeMobileMenu);$('.field--name-field-notice>.field__label','.entrees .taxonomy-term.vocabulary-entrees').on('click',onClickHomeMobileNotice);$('.index>.field__label','.entrees .taxonomy-term.vocabulary-entrees').on('click',onClickHomeMobileIndex);};function onclickHomeMobileMenu(e){$('#block-mainnavigation').toggleClass('visible');};function onClickHomeMobileNotice(e){toggleEntreeOpening($(this).parent(),'notice');};function onClickHomeMobileIndex(e){toggleEntreeOpening($(this).parent(),'index');};function toggleEntreeOpening($e,part){$e.toggleClass('closed').parents('.taxonomy-term.vocabulary-entrees.home_mobile').toggleClass(part+'-opened');} -function initEvents(){var $corpus_df=$.Deferred();_corpus_promise=$corpus_df.promise();_$body.on('corpus-map-ready',function(e){onCorpusMapReady(e);$corpus_df.resolve();}).on('on-studio-chutier-updated',initAjaxLinks).on('studio-initialized',function(e){_compoPlayer.newCompo();}).on('studio-not-active',function(e){_compoPlayer.deactivate();}).on('on-studio-compo-updated',function(e){initAjaxLinks();_compoPlayer.refresh();}).on('on-studio-compo-opened',function(e){initAjaxLinks();_compoPlayer.newCompo();}).on('search-results-loaded',function(e){initAjaxLinks();initAudioLinksHover();checkVisibleCorpusMapSpace();}).on('open_entree',function(e){void 0;closeAllModals();checkLayout();_$body.removeClass();if(typeof e.url!='undefined'){var state=getSysPathState(e.sys_path);history.pushState(state,null,e.url);if(typeof _paq!=='undefined'){_paq.push(['setCustomUrl',e.url]);_paq.push(['setDocumentTitle',e.title]);_paq.push(['trackPageView']);}}}).on('close_entree',function(e){backToFrontPage();checkLayout();});window.addEventListener('resize',checkLayout,false);} +(function($,Drupal,drupalSettings){EdlpTheme=function(){var _ajax_settings=drupalSettings.edlp_ajax;var _$body=$('body');var _corpus_ready=false;var _$corpus_canvas;var _$row=$('main[role="main"]>.layout-content>.row');var _$ajaxLinks;var _audioPlayer;var _randomPlayer;var _compoPlayer;var _ajax_timing={start:0,end:0};var _corpus_promise;var _is_mobile=edlp_mobile.device_is_mobile;function init(){void 0;if(_is_mobile){initMobile();} +initEvents();_audioPlayer=new AudioPlayer();_compoPlayer=new CompoPlayer();initAjaxLinks();initHistory();if(!_is_mobile){checkLayout();initAudioLinksHover();} +if(_is_mobile){if(drupalSettings.path.isFront){initHomeMobile();} +_$body.attr('booted','booted');}};function initMobile(){$('h2, a','#block-mainnavigation').add('h2, a','#block-mainnavigation-2').on('click',onclickHomeMobileMenu);} +function onclickHomeMobileMenu(e){$('#block-mainnavigation-2').toggleClass('opened');};function initHomeMobile(){};function initEvents(){var $corpus_df=$.Deferred();_corpus_promise=$corpus_df.promise();_$body.on('corpus-map-ready',function(e){onCorpusMapReady(e);$corpus_df.resolve();}).on('on-studio-chutier-updated',initAjaxLinks).on('studio-initialized',function(e){_compoPlayer.newCompo();}).on('studio-not-active',function(e){_compoPlayer.deactivate();}).on('on-studio-compo-updated',function(e){initAjaxLinks();_compoPlayer.refresh();}).on('on-studio-compo-opened',function(e){initAjaxLinks();_compoPlayer.newCompo();}).on('search-results-loaded',function(e){initAjaxLinks();initAudioLinksHover();checkVisibleCorpusMapSpace();}).on('open_entree',function(e){void 0;closeAllModals();checkLayout();_$body.removeClass();if(typeof e.url!='undefined'){var state=getSysPathState(e.sys_path);history.pushState(state,null,e.url);if(typeof _paq!=='undefined'){_paq.push(['setCustomUrl',e.url]);_paq.push(['setDocumentTitle',e.title]);_paq.push(['trackPageView']);}}}).on('close_entree',function(e){backToFrontPage();checkLayout();});window.addEventListener('resize',checkLayout,false);} function checkLayout(){var $audioplayer=$("#audio-player");if($audioplayer.length){var navpos=$('#block-mainnavigation').position();if(typeof navpos!='undefined'){$audioplayer.css({'width':navpos.left+'px'});}} checkGridBlockHeight();checkGridBlockVisible();};function initScrollbars(){};function getSysPathState(sys_path,view_mode){var state={'sys_path':sys_path,'ajax_path':sys_path};var node_match=state.ajax_path.match(/^\/?(node\/(\d+))$/i);void 0;var term_match=state.ajax_path.match(/^\/?(taxonomy\/term\/(\d+))$/i);void 0;if(node_match){state.ajax_path=_ajax_settings.entityjson_path+'/'+node_match[1];state.node_nid=node_match[2];if(view_mode){state.ajax_path+='/'+view_mode;state.view_mode=view_mode;}}else if(term_match){state.ajax_path=_ajax_settings.entityjson_path+'/'+term_match[1];state.ajax_path=state.ajax_path.replace(/taxonomy\/term/,'taxonomy_term');state.entree_tid=term_match[2];if(view_mode){state.ajax_path+='/'+view_mode;state.view_mode=view_mode;}else{state.ajax_path=null;}}else{state.ajax_path+='/ajax'} return state;};function ajaxLoadContent(state){void 0;_$body.addClass('ajax-loading');_ajax_timing.start=performance.now();var path=window.location.origin+Drupal.url(state.ajax_path);$.getJSON(path,{}).done(function(data){onAjaxLoaded(data,state);}).fail(function(jqxhr,textStatus,error){onAjaxLoadError(jqxhr,textStatus,error,state.sys_path);});};function onAjaxLoadError(jqxhr,textStatus,error,sys_path){void 0;$('.ajax-loading').removeClass('ajax-loading');_$body.removeClass('ajax-loading');};function onAjaxLoaded(data,state){void 0;var $rendered=$(data.rendered);$rendered.attr({'sys_path':state.sys_path,'view_mode':state.view_mode});if(data.entity_type=="node"&&data.bundle=="evenement"){if(_$row.find('.col.event').length){_$row.find('.col.event').replaceWith($rendered);}else if(_$row.find('.col.aside').length){_$row.find('.col.aside').replaceWith($rendered);}else{_$row.append($rendered);}}else{_$row.removeAttr('style').html($rendered);} @@ -13,11 +15,12 @@ if(typeof data.menu_parents!='undefined'){for(var i=0;i').addClass('close-col-btn').on('click',onCloseModal));});};function onCloseModal(e){var $col=$(this).parents('.col');var theme=$col.attr('theme');if(theme!=''){_$body.trigger({'type':theme+'-col-closed'});} if(_$body.is('.entity-type-node.bundle-page')&&$(this).next().is('.node--type-page')){$col.add($col.siblings('.col')).remove();}else{$col.remove();} checkRowEmpty();checkVisibleCorpusMapSpace();if($col.attr('view_mode')&&$col.attr('sys_path')){$('a[data-drupal-link-system-path="'+$col.attr('sys_path')+'"][viewmode="'+$col.attr('view_mode')+'"]').removeClass('is-active');}};function initHistory(){initFirstLoad();window.addEventListener('popstate',onHistoryPopState);};function initFirstLoad(){void 0;void 0;var edlp_origin=JSON.parse(window.localStorage.getItem('edlp_origin'));void 0;if(edlp_origin!=null&&edlp_origin.sys_path){var hash=edlp_origin.hash.replace('#','');var state=getSysPathState(edlp_origin.sys_path,hash);if(edlp_origin.entity_type=="taxonomy_term"&&edlp_origin.entity_bundle=="entrees"&&hash){state.selector='entree-'+hash+'-link-'+edlp_origin.entity_id;if(_corpus_ready){_$corpus_canvas.trigger({type:'open-entree',tid:edlp_origin.entity_id});}else{$('li.entree[tid="'+edlp_origin.entity_id+'"] a.term-link').addClass('is-active');}} @@ -27,20 +30,21 @@ if(state.entree_tid){openEntree(state.entree_tid);} history.replaceState(state,null,edlp_origin.url+edlp_origin.hash);window.localStorage.removeItem("edlp_origin");}else{history.replaceState({home:true},null,window.location.pathname+window.location.hash);initGrid();_$body.attr('booted','booted');}};function onHistoryPopState(e){void 0;if(e.state.home){backToFrontPage(true);} else if(e.state.audio){_audioPlayer.openDocument(e.state.node,'popstate',e.state.historic_index);} else{if(e.state.entree_tid){openEntree(e.state.entree_tid);} -if(e.state.ajax_path){e.state.url=null;ajaxLoadContent(e.state);}}};function initAjaxLinks(){$('a.site-name','#block-edlptheme-branding').add('a','#block-mainnavigation').add('a','#block-footer.menu--footer').add('a','#block-productions').add('a','article.node:not(.node--type-enregistrement) h2.node-title').add('a','.productions-subtree').add('a','.productions-parent').add('a','.field--name-field-son').addClass('ajax-link');$('a[data-drupal-link-system-path=""]','#block-mainnavigation').removeClass('is-active');_$ajaxLinks=$('.ajax-link:not(.ajax-enabled)').each(function(i,e){var $this=$(this);if($this.is('.ajax-enable'))return;if($this.attr('data-drupal-link-system-path')||$this.is('[type^="audio"]')){$this.on('click',onClickAjaxLink).addClass('ajax-enable');}});};function onClickAjaxLink(e){e.preventDefault();var $link=$(this);if($link.is('.is-active')&&!$link.is('.site-name')) +if(e.state.ajax_path){e.state.url=null;ajaxLoadContent(e.state);}}};function initAjaxLinks(){$('a.site-name','#block-edlptheme-branding').add('a','#block-mainnavigation').add('a','#block-mainnavigation-2').add('a','#block-footer.menu--footer').add('a','#block-productions').add('a','article.node:not(.node--type-enregistrement) h2.node-title').add('a','.productions-subtree').add('a','.productions-parent').add('a','.field--name-field-son').addClass('ajax-link');$('a[data-drupal-link-system-path=""]','#block-mainnavigation').removeClass('is-active');_$ajaxLinks=$('.ajax-link');activateAjaxLinks();};function activateAjaxLinks(){_$ajaxLinks.each(function(i,e){var $this=$(this);if($this.is('.ajax-enable'))return;if($this.attr('data-drupal-link-system-path')||$this.is('[type^="audio"]')){$this.on('click',onClickAjaxLink).addClass('ajax-enable');}});};function onClickAjaxLink(e){e.preventDefault();var $link=$(this);if($link.is('.is-active')&&!$link.is('.site-name')) return false;if($link.is('.audio-link')){caller=$link.parents('.lastdocs').length?'lastdocs':null;_audioPlayer.emmit('stop-shuffle').openDocument({nid:$link.attr('nid'),audio_url:$link.attr('audio_url'),title:$link.find('.field--name-title').html()},caller);return false;} if($link.is('[type^="audio"]')){_audioPlayer.emmit('stop-shuffle').openSound($link.attr('href'),$link.html());return false;} -var sys_path=$(this).attr('data-drupal-link-system-path');if(sys_path==''){if($link.is('.is-active')&&_corpus_ready){_$corpus_canvas.trigger({'type':'shuffle-collection'});}else{backToFrontPage();} -return false;} +var sys_path=$(this).attr('data-drupal-link-system-path');if(sys_path==''){if(!_is_mobile){if($link.is('.is-active')&&_corpus_ready){_$corpus_canvas.trigger({'type':'shuffle-collection'});}else{backToFrontPage();} +return false;}} var view_mode=$link.attr('viewmode');var state=getSysPathState(sys_path,view_mode);state.url=$(this).attr('href');if(view_mode){state.url+="#"+view_mode;} if($link.is('[selector]')){state.selector=$link.attr('selector');} $link.addClass('ajax-loading');ajaxLoadContent(state);return false;};function onCorpusMapReady(e){_corpus_ready=true;_$corpus_canvas=$('canvas#corpus-map');_$corpus_canvas.on('corpus-cliked-on-map',function(e){backToFrontPage();}).on('corpus-cliked-on-node',function(e){_audioPlayer.emmit('stop-shuffle').openDocument(e.target_node);});_randomPlayer=new RandomPlayer(e.playlist);initAjaxLinks();_$body.attr('corpus-map','ready');} function openEntree(tid){if(tid){closeAllModals();_$body.removeClass();if(_corpus_ready){_$corpus_canvas.trigger({type:'open-entree',tid:tid});}else{$('li.entree[tid="'+tid+'"] a.term-link').addClass('is-active');}}};function checkVisibleCorpusMapSpace(){var left_limit=0,right_limit=0;_$row.find('.col').each(function(i,e){var $col=$(this);var offset=$col.offset();void 0;switch(true){case $col.is('.float-right'):right_limit=Math.max(right_limit,Math.abs(offset.left-15-window.innerWidth));break;default:left_limit=Math.max(left_limit,offset.left+$col.width()+15);break;}});void 0;if(_corpus_ready){_$body.trigger({type:'visible-space-changed',left_limit:left_limit,right_limit:right_limit});}else{_corpus_promise.done(function(){_$body.trigger({type:'visible-space-changed',left_limit:left_limit,right_limit:right_limit});});}};function AudioPlayer(){var that=this;this.fid;this.audio=new Audio();this.audio_events=["loadedmetadata","playing","pause","timeupdate","ended","error"];this.$container=$('
');this.$btns=$('
').addClass('btns').appendTo(this.$container);this.$previous=$('
').addClass('previous').appendTo(this.$btns);this.$playpause=$('
').addClass('play-pause').appendTo(this.$btns);this.$next=$('
').addClass('next').appendTo(this.$btns);this.$timelinecont=$('
').addClass('time-line-container').appendTo(this.$container);this.$timeline=$('
').addClass('time-line').appendTo(this.$timelinecont);this.$loader=$('
').addClass('loader').appendTo(this.$timeline);this.$cursor=$('
').addClass('cursor').appendTo(this.$timeline);this.$time=$('
').addClass('time').appendTo(this.$container);this.$currentTime=$('
').addClass('current-time').html('00:00').appendTo(this.$time);this.$duration=$('
').addClass('duration').html('00:00').appendTo(this.$time);this.$fav=$('
').addClass('favoris').appendTo(this.$container);this.$cartel=$('
').addClass('cartel').appendTo(this.$container);this.scndCartel_visible=0;this.cartelSwitchIntervalMS=7000;this.cartelSwitchInterval=false;this.hideTimer=false;this.hideTimeMS=15000;this.currentHistoricIndex=null;this.historic=[];this.shuffle_is_active=false;this.auto_open_article=false;this.event_handlers={'audio-open-document':[],'audio-play':[],'audio-pause':[],'audio-play-next':[],'audio-ended':[],'stop-shuffle':[]};this.init();};AudioPlayer.prototype={init(){this.$container_parent=$('header[role="banner"] .region-header');this.$container.appendTo(this.$container_parent);this.timeline_w=parseInt(this.$timeline.width());this.$loader.on('click',this.seek.bind(this));var fn='';for(var i=0;i'+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');this.updateLoadingBar();},updateLoadingBar(){void 0;if(this.audio.buffered.length>0){this.$loader.css({'width':parseInt((100*this.audio.buffered.end(0)/this.audio.duration),10)+'%'});if(this.audio.buffered.end(0)0){this.currentHistoricIndex-=1;this.launch();}},playNext(){if(this.currentHistoricIndex'+(mins<10?'0':'')+mins+':'+(secs<10?'0':'')+secs+'');},onEnded(){void 0;this.stop();this.emmit('audio-ended');},loadNode(nid){this.$cartel.addClass('loading');var vm='player_cartel';var ajax_path=_ajax_settings.entityjson_path+'/node/'+nid+'/'+vm;var path=window.location.origin+Drupal.url(ajax_path);$.getJSON(path,{}).done(this.onNodeLoaded.bind(this)).fail(this.onNodeLoadFail.bind(this));},onNodeLoaded(data){void 0;this.$cartel.html(data.rendered).removeClass('loading');_$body.trigger({'type':'new-audio-cartel-loaded'});initAjaxLinks();this.scndCartel_visible=0;this.$cartel.removeClass('second-visible');if(this.$cartel.find('.second-cartel .col-left').children().length>1||this.$cartel.find('.second-cartel').children('.col-right').length){this.cartelSwitchInterval=setInterval(this.switchCartel.bind(this),this.cartelSwitchIntervalMS);} Drupal.attachBehaviors(this.$cartel);this.setAutoOpenArticle();if(this.auto_open_article){this.$cartel.find('a.link-article').trigger('click');this.auto_open_article=false;}},onNodeLoadFail(jqxhr,textStatus,error){void 0;this.$cartel.removeClass('loading').html('');},setAutoOpenArticle(art){this.auto_open_article=$('a.articles-link').is('.is-active');return this;},show(){this.$container_parent.addClass('audio-player-visible');this.$container.addClass('visible');},showHidePreviousBtn(){if(this.historic.length>1&&this.currentHistoricIndex>0){this.$previous.addClass('is-active');}else{this.$previous.removeClass('is-active');}},showHideNextBtn(){if(this.currentHistoricIndex0){this.$playpause.addClass('is-active');}else{this.$playpause.removeClass('is-active');}} if(this.$next){if(this.playing&&this.playlist.length>1&&this.current_index1&&this.current_index>0){this.$previous.addClass('is-active');}else{this.$previous.removeClass('is-active');}} -return this;},deactivate(){this.stop();this.active=false;},onAudioOpenDocument(args){if(args.caller!==this){this.reset();}},onAudioPlayerPlay(){if(this.playing&&this.paused){this.paused=false;this.showHideControls();}},onAudioPlayerPause(){if(this.playing&&!this.paused){this.paused=true;this.showHideControls();}},onAudioPlayerEnded(){if(this.playing){this.next();}},};function initGrid(){void 0;checkGridBlockHeight();_$row.find('.col').addClass('offfield');if(false){var $grid=$('.grid',_$row).masonry({itemSelector:'.col',columnWidth:'.col-2',containerStyle:null,resizeContainer:false,transitionDuration:0,});$grid.imagesLoaded().progress(function(){$grid.masonry('layout');});$grid.imagesLoaded(function(){$grid.masonry('layout');});$grid.on('layoutComplete',checkGridBlockVisible);}else{checkGridBlockVisible();}};function checkGridBlockHeight(){var $r_h=_$row.height();var $this;$('.grid .col',_$row).each(function(i,e){$this=$(this);if(!$this.is('[init-height]')){$this.attr('init-height',$this.outerHeight())} +return this;},deactivate(){this.stop();this.active=false;},onAudioOpenDocument(args){if(args.caller!==this){this.reset();}},onAudioPlayerPlay(){if(this.playing&&this.paused){this.paused=false;this.showHideControls();}},onAudioPlayerPause(){if(this.playing&&!this.paused){this.paused=true;this.showHideControls();}},onAudioPlayerEnded(){if(this.playing){this.next();}},};function initGrid(){void 0;if(!_is_mobile){checkGridBlockHeight();_$row.find('.col').addClass('offfield');} +if(false){var $grid=$('.grid',_$row).masonry({itemSelector:'.col',columnWidth:'.col-2',containerStyle:null,resizeContainer:false,transitionDuration:0,});$grid.imagesLoaded().progress(function(){$grid.masonry('layout');});$grid.imagesLoaded(function(){$grid.masonry('layout');});$grid.on('layoutComplete',checkGridBlockVisible);}else{if(!_is_mobile){checkGridBlockVisible();}}};function checkGridBlockHeight(){var $r_h=_$row.height();var $this;$('.grid .col',_$row).each(function(i,e){$this=$(this);if(!$this.is('[init-height]')){$this.attr('init-height',$this.outerHeight())} $this.height(Math.min($this.attr('init-height'),_$row.height()));});};function checkGridBlockVisible(){var $r_h=_$row.height();var $this,pos;$('.grid .col',_$row).each(function(i,e){$this=$(this);pos=$this.position();if(pos.top+$this.height()<=$r_h){$this.removeClass('offfield');}else{$this.addClass('offfield');}});} -function initSearch(){$('#edit-entries--wrapper legend','#edlp-search-form').on('click',function(){$(this).parent().toggleClass('opened');});};function initEnregistrementTranscript(){void 0;var $node=_$row.find('article.node--type-enregistrement.node--view-mode-transcript');var $nav=$('
{% endif %} - {% if entrees %} -
+ {% if collection %} +
- {{ entrees }} + {{ collection }}
{% endif %}