Retour
Accueil
Actualités
Stéphane Vert : un magicien devenu directeur adjoint d'un club de vacances
Une erreur s'est produite lors du traitement du modèle.
For "." left-hand operand: Expected a hash, but this has evaluated to a string (wrapper: f.t.SimpleScalar):
==> curRelatedAsset.getDDMStructureKey() [in template "21355#21395#TEMOIGNAGE-DETAILS" at line 27, column 15]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #if (curRelatedAsset.getDDMStructureK... [in template "21355#21395#TEMOIGNAGE-DETAILS" at line 27, column 9]
----
1<#assign images_folder = themeDisplay.getPathThemeImages() />
2<#assign date = dateUtil.parseDate('EEE, dd MMM yyyy HH:mm:ss Z', .vars["reserved-article-display-date"].data, localeUtil.getDefault()) />
3<#assign dateFormated = date?string["dd/MM/yyyy"] />
4
5
6<#--## On recupere la primaryKey de l'article affiche, puis ses categories-->
7<#assign longGroupId = getterUtil.getLong(groupId) />
8<#assign journalArticleResourceLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleResourceLocalService") />
9<#assign primKey = journalArticleResourceLocalService.getArticleResourcePrimKey(longGroupId, .vars["reserved-article-id"].data) />
10
11<#--##On recup l'entry-->
12<#assign assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") />
13<#assign entry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", primKey) />
14
15<#--##Classe utilitaire pour récupérer les related assets-->
16<#assign journalArticleUtil = serviceLocator.findService("fr.afpa.ws.service.AfpaJournalArticleLocalService") />
17<#assign allRelatedAssets = journalArticleUtil.getRelatedAssets(entry.getEntryId())! />
18
19<#--## Recuperation de l'url courante pour les twitter cards-->
20<#assign url = portalUtil.getCurrentCompleteURL(httpServletRequest) />
21<#assign titleSEO = httpServletRequest.getAttribute("titleSEO") />
22
23<#assign relatedAssets = [] />
24
25<#assign nbAsset = 0 />
26<#list allRelatedAssets as curRelatedAsset>
27 <#if (curRelatedAsset.getDDMStructureKey().equals("TEMOIGNAGE") && nbAsset < 2)>
28 <#if (journalArticleUtil.isJournalArticleLinkToCategory(curRelatedAsset.getResourcePrimKey(), categoryname_GRAND_PUBLIC, vocabularyname_PUBLIC))>
29 <#assign void = relatedAssets.add(curRelatedAsset) />
30 <#assign nbAsset = nbAsset + 1 />
31 </#if>
32 <#elseif (nbAsset >= 2)>
33 <#break>
34 </#if>
35</#list>
36
37<#--## Récupération de la friendlyUrl courrante-->
38<#assign currentFriendlyUrl = themeDisplay.getLayout().getFriendlyURL() />
39
40<#--## Affichage d'un lien retour sur on est dans l'espace prescritpteur (friendlyUrl == detail_afpa_en_direct)-->
41<#if (currentFriendlyUrl?? && currentFriendlyUrl == friendlyurl_ESPACE_PERSO_DETAIL_AFPA_EN_DIRECT)>
42 <a class="simple-link" href="#" onclick="javascript:history.go(-1);" id="boutonRetour"> <@liferay.language key="actualite.lien.retour"/> </a>
43</#if>
44
45<article>
46<#-- ##Header-->
47 <div>
48 <span class="edito-title-one"><@liferay.language key="temoignage.libelle"/></span>
49<#-- ${dateTool.format("dd/MM/yyyy",date)}-->
50 <span class="date"> ${dateFormated}</span>
51
52 <#assign titreActu=parentStructureFieldSet22996.Titre_actualite.getData() />
53 <h1 class="left-one" id="twitterCardTitle">${titreActu}</h1>
54 <script>
55 // On change le titre de la page en JS pour mettre ne pas mettre le titre du contenu BO
56 jQuery("title").html("${titreActu?html} ${titleSEO}");
57 </script>
58
59 </div>
60<#-- ##/Header-->
61
62<#-- ##Partager & réseaux sociaux-->
63 <div class="social-bar">
64<#-- ## On n'affiche pas le bouton FB et partage sur l'espace perso-->
65 <#if (currentFriendlyUrl?? && currentFriendlyUrl != friendlyurl_ESPACE_PERSO_DETAIL_AFPA_EN_DIRECT)>
66 <#assign facebookAppID = propsUtil.get("facebook.app.id") />
67 <div id="fb-root"></div>
68 <script>(
69 function(d, s, id) {
70 var js, fjs = d.getElementsByTagName(s)[0];
71 if (d.getElementById(id)) return;
72 js = d.createElement(s); js.id = id;
73 js.src = "//connect.facebook.net/fr_FR/sdk.js#xfbml=1&appId=${facebookAppID}&version=v2.3";
74 fjs.parentNode.insertBefore(js, fjs);
75 }(document, 'script', 'facebook-jssdk'));
76
77 jQuery( document ).ready(function() {
78 jQuery("#share-link").on("click",function(event) {
79 jQuery("#share-div").toggle();
80 jQuery(this).toggleClass("active");
81 });
82 jQuery("#print-link").on("click",function(event) {
83 event.preventDefault();
84 print();
85 });
86 //ajout du tooltip sur le bouton imprimer
87 jQuery('#print-link').tooltipster({
88 theme: '.tooltip-custom-theme',
89 position: 'top-left'
90 });
91 //ajout du tooltip sur le bouton share
92 jQuery('#share-link').tooltipster({
93 theme: '.tooltip-custom-theme',
94 position: 'top-left'
95 });
96
97 });
98 </script>
99 <div class="fb-like" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div>
100 </#if>
101
102 <a id="print-link" href="javascript:;" title="<@liferay.language key="partage.imprimer.fiche"/>">print</a>
103
104<#-- ## On n'affiche pas le bouton FB et partage sur l'espace perso-->
105 <#if (currentFriendlyUrl?? && currentFriendlyUrl != friendlyurl_ESPACE_PERSO_DETAIL_AFPA_EN_DIRECT)>
106 <a id="share-link" href="javascript:;" title="<@liferay.language key="partage.partager.fiche"/>">share</a>
107 <div id="share-div" style="display:none;">
108 <span class='st_email_large' displayText='Email' st_image="${images_folder}/afpa/pinAfpa.png"></span>
109 <span class='st_facebook_large' displayText='Facebook'></span>
110 <span class='st_twitter_large' displayText='Tweet'></span>
111 <span class='st_linkedin_large' displayText='LinkedIn'></span>
112 </div>
113 </#if>
114 </div>
115<#-- ##/ Partager & réseaux sociaux-->
116
117<#-- ##Résumé-->
118 <div class="header-article">
119<#-- ## lien image pour facebook-->
120 <link rel="image_src" href="$Visuel.getData()"/>
121
122 <div class="big-mask ">
123 <#if parentStructureFieldSet22996.Visuel.getData() != "">
124 <img id="twitterCardImg" alt="$Auteur.getData()" src="${parentStructureFieldSet22996.Visuel.getData()}" />
125 </#if>
126 </div>
127 <div class="header-teaser">
128 <h2>${Auteur.getData()}</h2> <span class="age">
129
130<#-- ## On ne peut pas éviter le string null en base-->
131 <#if Age?? && Age?has_content && Age.getData() != 'null'>
132 - ${Age.getData()} <@liferay.language key="temoignage.detail.age"/> </span>
133 </#if>
134 <h3 class="medium">${Profession_de_l_auteur.getData()}</h3>
135<#-- ## Atention, le nommage des variables prête à confusion. $en_bref = citation-->
136 <p class="chapeau">${En_Bref.getData()}</p>
137 </div>
138 </div>
139<#-- ##/Résumé-->
140
141 <div class="article-content">
142<#-- ## EnBref : attention, le nommage des variable prête à confusion. $en_bref = citation-->
143 <div class="article-part">
144 <h2><@liferay.language key="temoignage.detail.enbref"/></h2>
145 <p class="exergue" id="twitterCardDescription">
146 ${.vars["reserved-article-description"].getData()}
147 </p>
148 </div>
149<#-- ##/EnBref-->
150
151<#-- ##contenu-->
152 <div class="contribution">
153 ${Contenu.getData()}
154 </div>
155<#-- ##/contenu-->
156
157<#-- ##formations-->
158 <#assign rechercheFormationByMetierUrl = journalArticleUtil.buildUrlToSearchFormationByMetier(longGroupId, serviceContext, Profession_de_l_auteur.getData()) />
159
160 <a href="${rechercheFormationByMetierUrl}" title="<@liferay.language key="temoignage.detail.voir.les.formations.pour.ce.metier"/>" class="pink-button"><@liferay.language key="temoignage.detail.voir.les.formations.pour.ce.metier"/></a>
161<#-- ##/formations-->
162
163<#-- ## Il vous raconte-->
164 <div>
165 <#if Video.getData()?has_content>
166 <h2><@liferay.language key="temoignage.detail.il.vous.raconte"/></h2>
167 <div class="videoWrapper">
168 <iframe title="Vidéo de témoignage" width="100%" height="100%" src="https://www.youtube.com/embed/${Video.getData()}" frameborder="0" allowfullscreen></iframe>
169 </div>
170 </#if>
171 </div>
172<#-- ##/Il vous raconte-->
173
174<#-- ##Ils temoignent aussi-->
175 <#if relatedAssets?has_content>
176 <div class="same-subject">
177 <h2><@liferay.language key="temoignage.detail.ils.temoignent.aussi"/></h2>
178
179 ${serviceContext.setAttribute("parentRelatedArticleId", primKey)}
180 ${serviceContext.setAttribute("afpa_sticky", "DETAIL")}
181 <#if journalArticleUtil?? >
182 <#list relatedAssets as curRelatedAsset>
183 <div class="relative">${journalArticleUtil.render(curRelatedAsset,"Temoignage resume small",themeDisplay)}</div>
184 </#list>
185 </#if>
186 <#assign void = serviceContext.removeAttribute("parentRelatedArticleId") />
187 <#assign void = serviceContext.removeAttribute("afpa_sticky") />
188 </div>
189 </#if>
190<#-- ##/Ils temoignent aussi-->
191 </div>
192</article>
193
194<#assign x = httpServletRequest.getSession().setAttribute("TemoignageSmallImg", "${.vars['reserved-article-small-image-url'].data}")/>
195
196<#-- TODO réparer twitter-->
197<#--##Ajout des twitter card-->
198<#--<#assign afpa_twitter_titre = ["twitter:title", $titreActu.trim()])-->
199<#--<#assign afpa_twitter_description = ["twitter:description", $reserved-article-description.getData().trim()])-->
200
201<#--## Sur l'url, on retire les elements après afpa_query pour ne pas prendre en compte le sticky-->
202<#--<#assign index = $url.trim().indexOf('&afpa_query'))-->
203<#--#if ($index != -1)-->
204<#-- <#assign url = $url.trim().substring(0, $index))-->
205<#--#end-->
206<#--<#assign afpa_twitter_url = ["twitter:url",$url])-->
207
208<#--##Pour le visuel, on a un pattern /image/journal/article?img_id-->
209<#--## qui est pris en compte par le ContentTransformerListener qui prefix par-->
210<#--## (cf. ContentTransformerListener l.169)-->
211<#--## Du coup, je retire le /image de la variable, pour l'ajouter ensuite-->
212<#--<#assign image = $Visuel.getData().trim().toString())-->
213<#--#if($image && $image != '')-->
214<#-- <#assign index = $image.indexOf('/image')+6)-->
215<#-- <#assign image = $image.substring($index))-->
216<#--#end-->
217
218<#--<#assign cur_visuel = "${themeDisplay.getURLPortal()}/image${image}" )-->
219<#--<#assign afpa_twitter_image = ["twitter:image",$cur_visuel])-->
220
221<#--<#assign afpa_twitter = [$afpa_twitter_titre, $afpa_twitter_description, $afpa_twitter_url, $afpa_twitter_image])-->
222<#--<#assign v = $httpServletRequest.getSession().setAttribute("afpa_twitter", $afpa_twitter))-->
223<#--<#assign w = $httpServletRequest.getSession().setAttribute("current_visual", $cur_visuel))-->