Affichage d'un contenu dans une sidebar

Bonjour

Je suis actuellement sur le développement d'un module.

J'ai réussi à créer ce qu'il faut pour ouvrir une sidebar sur le clic d'un contenu.

Mon souci c'est que je ne vois pas comme faire pour afficher ce contenu dans cette sidebar.

Par avance merci,

Expert Kevin Bransard on 7/4/19 at 6:04 PM

Bonjour, 

pour ouvrir cette sidebar vous : 

  • Utilisez les attributs data ?
  • Utilisez l'API Javascript ?
Guillaume Clément on 7/5/19 at 9:12 AM

Ouvrir, il n'y a pas de souci, ce que je voudrais c'est que ce soit le contenu que j'ai cré qui s'affiche dedans

Guillaume Clément on 7/5/19 at 9:16 AM

il y a un attribut particulier pour passer une variable peut-etre ?

J'ai essayé avec l'attribut "id="toto"" mais il ne remonte que le dernier de mon tableau

8 pts
Expert Olivier Jaquemet on 7/4/19 at 5:55 PM

Bonjour, 

Vous trouverez la documentation des sidebars sur notre site de documentation technique, docs.jalios.com :

https://docs.jalios.com/jplatform10/jcms/fr/front-end/composants/panneau-lateral-du-membre-45597

Guillaume Clément on 7/5/19 at 10:17 AM

Oui j'ai vu tout ça mais je n'y trouve pas la réponse dont j'ai besoin... La création + l'ouverture pas de problème.

C'est l'affichage d'un contenu que j'ai créé que je n'arrive pas à faire...

1 pt
Expert Kevin Bransard on 7/5/19 at 3:12 PM

Voici ce que j'utilise dans certains développements : 

!(function($) {

var selectedItemId;


$(document).ready(function() {
  $(document).on("click", ".item", function(event) {
    selectedItemId = $(event.currentTarget).data("jalios-data-id");
    // Ouverture programmatique de la sidebar
  });


  $(document).on("show.jalios.sidebar", function(event) {
    let $sidebar= $(event.target);
    if (!$sidebar.hasClass("my-sidebar-selector")) {
      return;
    }
    $(".my-sidebar-inner-ajax-div").refresh({
      itemId: selectedItemId
    });
  });
});

})(window.jQuery);

Qui fonctionnerait donc avec le DOM suivant : 

<div>
  <a class="item" data-jalios-data-id="ItemId"></a>
  
</div>
<div class="sidebar3 sidebar-component is-closed sidebar-left" data-jalios-sidebar-direction="left" data-jalios-sidebar-overlay="false">
  <a class="btn btn-default pull-right" data-jalios-sidebar-action="close" data-jalios-sidebar-target=".sidebar3">
    Fermer la sidebar
  </a>
  <jalios:include jsp="ajaxJsp.jsp" />
</div>

et ajaxJsp : 

<%@ include file='/jcore/doInitPage.jspf' %><%

Publication item = getPublicationParameter("itemId"); 

%>
<div class="ajax-refresh-div" data-jalios-ajax-refresh-url="ajaxJsp">
  <%= item.getTitle() %>
</div>
Display all comments
Expert Kevin Bransard on 7/5/19 at 3:14 PM

J'ai créé un ticket pour simplifier : https://issues.jalios.com/browse/JCMS-7439

Guillaume Clément on 7/8/19 at 9:20 AM

Ok merci , je teste ça dès que possible

Guillaume Clément on 7/8/19 at 11:43 AM

J' ai du mal à voir ou mettre la première partie ... c'est le fichier ajaxJsp.jsp ?

Expert Kevin Bransard on 7/8/19 at 12:27 PM

La partie avec : 

<div>
  <a class="item" data-jalios-data-id="ItemId"></a>

</div>

C'est la jsp qui affiche votre application.

Guillaume Clément on 7/8/19 at 1:01 PM

non celui-ci

!(function($) {

var selectedItemId;


$(document).ready(function() {
  $(document).on("click", ".item", function(event) {
    selectedItemId = $(event.currentTarget).data("jalios-data-id");
    // Ouverture programmatique de la sidebar
  });


  $(document).on("show.jalios.sidebar", function(event) {
    let $sidebar= $(event.target);
    if (!$sidebar.hasClass("my-sidebar-selector")) {
      return;
    }
    $(".my-sidebar-inner-ajax-div").refresh({
      itemId: selectedItemId
    });
  });
});

})(window.jQuery);
Expert Kevin Bransard on 7/8/19 at 2:24 PM

Ah ça c'est un javascript à charger dans votre application via jcmsContext.addJavascript()

Guillaume Clément on 7/8/19 at 2:28 PM

il est obligatoire je suppose ...

Guillaume Clément on 7/8/19 at 3:00 PM

C'est bizarre... Tout se passe plutôt bien mais il me met une erreur sur la ligne 140

Exception in 'APP Portal - Selection'

Message: org.apache.jasper.JasperException: An exception occurred processing JSP page [/plugins/CCPC19PetiteEnfance/jsp/AppRPE/demandesRpe_outilsDuRpe.jsp] at line [140]

137: <div>
138: <%Publication item = getPublicationParameter("itemId");%>
139: <div class="ajax-refresh-div" data-jalios-ajax-refresh-url="ajaxJsp">
140: <%= item.getId() %>
141: </div>
142: </div>
143: <%-- <%String var_id = request.getParameter("id"); %>
Expert Kevin Bransard on 7/8/19 at 3:04 PM

Le paramètre est censé être envoyé en ajax via cette ligne : 

    $(".my-sidebar-inner-ajax-div").refresh({
      itemId: selectedItemId
    });

Il faut regarder ce qui se passe dans votre JS, si il n'y a rien dans la requête XHR envoyée, c'est que le javascript n'a pas réussi à récupérer l'id stocké sur le data attribute.

Guillaume Clément on 7/9/19 at 4:48 PM

XHR ? comment le vérifer ?

1 pt
Guillaume Clément on 7/10/19 at 2:25 PM

Bonjour Kevin Bransard 

Alors j'ai réussi à sortir quelque chose en bricolant avec ce que tu m'a donné et d'autre chose... et bizarrement il me remonte l'id du portail racine...

J'ai l'impression que je passe à côté e quelque chose parce que je parviens à pousser l'id du contenu vers la jsp mais il ne l'ouvre pas en sidebar... Bizarre 

0 pts
Guillaume Clément on 7/17/19 at 11:10 AM

Bonjour Kevin Bransard 

Voilà le point d'étape ... Je te confirme que ce que tu m'as donné fonctionne dans sa grande partie .... Mais j'ai l'impression que la donnée ne passe pas dans le tuyau...?

[Capture d ecran][GClément]2019-07-17 Image numero 01 

Voilà le message d'erreur complet :

Exception in 'plugins/CCPC19PetiteEnfance/jsp/AppRPE/ajaxJsp.jsp'

Message: An exception occurred processing JSP page [/plugins/CCPC19PetiteEnfance/jsp/AppRPE/ajaxJsp.jsp] at line [8]

5:
6: %>
7: <div class="ajax-refresh-div" data-jalios-ajax-refresh-url="ajaxJsp">
8: <%= item.getTitle() %>
9: </div>


Stacktrace:

Stack Trace:
java.lang.NullPointerException
at org.apache.jsp.plugins.CCPC19PetiteEnfance.jsp.AppRPE.ajaxJsp_jsp._jspService(ajaxJsp_jsp.java:1075)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:524)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:648)
at com.jalios.jcms.taglib.IncludeTag.include(IncludeTag.java:424)
at com.jalios.jcms.taglib.IncludeTag.include(IncludeTag.java:322)
at com.jalios.jcms.taglib.IncludeTag.doEndTag(IncludeTag.java:286)
at org.apache.jsp.plugins.CCPC19PetiteEnfance.jsp.AppRPE.demandesRpe_005foutilsDuRpe_jsp._jspx_meth_jalios_005finclude_005f3(demandesRpe_005foutilsDuRpe_jsp.java:2236)
at org.apache.jsp.plugins.CCPC19PetiteEnfance.jsp.AppRPE.demandesRpe_005foutilsDuRpe_jsp._jspService(demandesRpe_005foutilsDuRpe_jsp.java:1810)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:524)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
at org.apache.jsp.types.PortletSelection.doPortletSelectionFullDisplay_jsp._jspService(doPortletSelectionFullDisplay_jsp.java:1193)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:524)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
at org.apache.jsp.types.AbstractPortletSkinable.doAbstractPortletSkinableFullDisplay_jsp._jspService(doAbstractPortletSkinableFullDisplay_jsp.java:1115)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:524)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
at org.apache.jsp.types.PortletPortal.doPortletPortalFullDisplay_jsp._jspService(doPortletPortalFullDisplay_jsp.java:1510)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:524)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
at org.apache.jsp.types.AbstractPortletSkinable.doAbstractPortletSkinableFullDisplay_jsp._jspService(doAbstractPortletSkinableFullDisplay_jsp.java:1115)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:524)
at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:895)
at org.apache.jsp.display_jsp._jspService(display_jsp.java:1647)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:443)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.servlet.InitFilter.doFilter(InitFilter.java:85)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.servlet.FinallyFilter.doFilter(FinallyFilter.java:22)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:392)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)
at com.jalios.jcms.servlet.DisplayServlet.doGet(DisplayServlet.java:100)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.servlet.FriendlyURLFilter.doFilter(FriendlyURLFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.servlet.GZIPFilter.doFilter(GZIPFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.servlet.InitFilter.doFilter(InitFilter.java:211)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.db.HibernateSessionFilter$1.execute(HibernateSessionFilter.java:40)
at com.jalios.jcms.db.HibernateSessionFilter$1.execute(HibernateSessionFilter.java:34)
at com.jalios.jcms.db.HibernateUtil.executeTransaction(HibernateUtil.java:348)
at com.jalios.jcms.db.HibernateSessionFilter.doFilter(HibernateSessionFilter.java:34)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.upload.MultipartFilter.doFilter(MultipartFilter.java:186)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.jalios.jcms.servlet.FinallyFilter.doFilter(FinallyFilter.java:27)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)

J'ai l'impression que c'est dans ce fichier que ça coince :

!(function($) {

var selectedItemId;


$(document).ready(function() {
$(document).on("click", ".item", function(event) {
selectedItemId = $(event.currentTarget).data("jalios-data-id");
// Ouverture programmatique de la sidebar
});


$(document).on("show.jalios.sidebar", function(event) {
let $sidebar= $(event.target);
if (!$sidebar.hasClass("my-sidebar-selector")) {
return;
}
$(".my-sidebar-inner-ajax-div").refresh({
itemId: selectedItemId
});
});
});

})(window.jQuery);

Qu'en pense tu ?

Display all comments
Expert Kevin Bransard on 7/22/19 at 3:03 PM

Il faudrait voir en debug ce que te remonte $(event.currentTarget).data("jalios-data-id");

Je me suis trompé dans l'appel à refresh aussi il me semble, il faut définir une entrée params : 

$(".app-sidebar-categorytree").refresh({
  params: {
    itemId: selectedItemId
  }
});

My bad

Guillaume Clément on 8/19/19 at 10:56 AM

Bonjour Kevin Bransard 

Je viens de revenir de congés... Dans l'attente j'avais changé mon fusil d'épaule en faisant un affichage "classique" du contenu dans le body de l'application.

En utilisant ce tuto : https://docs.jalios.com/jplatform10/jcms/fr/front-end/applications/applications-body-10483

avec ce code :

ça fonction bien... par contre, lorque j'ai deux types de contenu différents il ne m'affiche que le premier, même si je crée une page d'affichage par type de contenu... Je ne vois pas ce que j'ai raté.

Merci pour ton aide

 <%-- BODY --%> 
<div class="app-body">
<% request.setAttribute(AppConstants.BODY_INCLUDE_PUB_REQUEST_ATTR, DocumentationSamples.getRandomArticle());
request.setAttribute(AppConstants.BODY_INCLUDE_PATH_REQUEST_ATTR, "/types/Article/doArticleFullDisplay.jsp"); %>
<jalios:include jsp="/front/app/doAppBodyInclude.jsp" />
</div>
Expert Kevin Bransard on 8/20/19 at 10:17 AM

Bonjour Guillaume, 

juste pour précision, tu cherches à afficher deux contenus dans le body à la suite ? donc tu fais deux inclusions de doAppBodyInclude ?

Guillaume Clément on 8/20/19 at 11:55 AM

Bonjour Kévin,

Non, l'un ou l'autre ... pas en même temps...

je pensai faire :

- Affichage type de contenu 1 = jsp 1 avec inclusion 1

- Affichage type de contenu 2 = jsp 2 avec inclusion 2

Qu'en pense-tu ?

Expert Kevin Bransard on 8/20/19 at 4:19 PM

Je ne comprends pas, c'est possible d'avoir un bout de code d'exemple ? Merci

Guillaume Clément on 8/20/19 at 4:47 PM

J'ai plusieurs types de contenu dans mon module.

Différentes jsp ou j'affiche des tableaux regroupant ces différents types de contenu.

Les lignes suivante permettent d'afficher un type de contenu (ligne 1) selon un gabarit (ligne 2). ... on est d'accord ?

<% 
request.setAttribute(AppConstants.BODY_INCLUDE_PUB_REQUEST_ATTR, DocumentationSamples.getRandomArticle());
request.setAttribute(AppConstants.BODY_INCLUDE_PATH_REQUEST_ATTR, "/types/Article/doArticleFullDisplay.jsp"); %>

Ces lignes, je dois les mettre et adaptées à mon type de contenu dans une jsp spécifique pour l'affichage   .... 

Si j'ai un deuxième type de contenu, je dois utiliser la même jsp pour afficher ? (avec une condition peut-être)

Ou je dois créer une autre jsp pour afficher mon second types de contenu ?

N'hésite pas si je ne suis pas assez clair ...?

Expert Kevin Bransard on 8/20/19 at 4:49 PM

C'est au choix, soit tu fait le routage directement dans les request attributes que tu positionnes, soit tu utilises toujours la même jsp qui fera un routage en fonction du type de publication. 

Guillaume Clément on 8/20/19 at 5:06 PM

tu as un exemple ? à tout hasard ...?

Expert Kevin Bransard on 8/21/19 at 12:03 PM
 <%-- BODY --%> 
<div class="app-body"> 
<% request.setAttribute(AppConstants.BODY_INCLUDE_PUB_REQUEST_ATTR, DocumentationSamples.getRandomArticle());
 request.setAttribute(AppConstants.BODY_INCLUDE_PATH_REQUEST_ATTR, "/plugins/monPlugin/jsp/app/appBodyRouting.jsp"); %> 
<jalios:include jsp="/front/app/doAppBodyInclude.jsp" /> 
</div>

Et contenu de la jsp de routing : 

<%@page import="com.jalios.jcms.uicomponent.app.AppConstants"%>
<%@ include file="/jcore/doInitPage.jspf" %><%

Publication pub = (Publication) request.getAttribute(AppConstants.BODY_INCLUDE_PUB_REQUEST_ATTR);

String myJsp = "";

if (pub instanceof MonType) {
  myJsp = "toto.jsp"
} else if (...) {
  ...
}

%>


<jalios:include jsp="<%= myJsp %>" />
Guillaume Clément on 8/21/19 at 2:07 PM

Merci Kevin Bransard 

petite question, a quoi sert cette ligne ? :

<jalios:include jsp="/front/app/doAppBodyInclude.jsp" />
Expert Kevin Bransard on 8/21/19 at 3:24 PM

mceclip3 - 2019-08-21 15h24m51s

Il va afficher le menu d'action de la publication, ainsi qu'une DIV englobante. Bien sur ce n'est pas obligatoire.

Guillaume Clément on 8/21/19 at 3:27 PM

Je pose la question parce qu'a chaque fois que je le met il me met une erreur

Guillaume Clément on 8/22/19 at 8:40 AM

Pour ma culture perso tu as un exemple de l'autre méthode en passant par une jsp par affichage ?

Par avance merci

Expert Kevin Bransard on 8/23/19 at 10:41 AM

On fait tout côté app (Dans l'idéal, tout le code serait dans le handler). Par contre cela nécessite de faire du css custom, et de positionner vous même le menu d'actions si besoin.

<%-- BODY --%>
<div class="app-body">
<%
String myJsp = "";

if (displayedPub instanceof MonType) { %>
  <jalios:include jsp="" />
<% } else if (...) {
  <jalios:include jsp="" />
}
%>
%>

</div>
Guillaume Clément on 8/23/19 at 1:28 PM

Ok, le code si dessus sert au routage pour l'affichage du contenu ?

je ne vois pas bien ou je dois le mettre et l'adapter

Expert Kevin Bransard on 8/23/19 at 1:57 PM

Là ou tu affiches ton tableau j'imagine. Si le parametre displayedPub est présent, tu affiches une publication, sinon tu affiches le tableau. 

Mais je n'ai pas de visibilité sur le code actuel.

Guillaume Clément on 8/23/19 at 2:12 PM

Initialement j'avais créé des jsp comme celles ci dessous, une par type de contenu à afficher ... j'avais bon ? ?

https://docs.jalios.com/jplatform10/jcms/fr/front-end/applications/applications-body-10483 >> tout en bas...

<%@page import="com.jalios.jcms.uicomponent.app.AppConstants"%><%
jcmsContext.setPageTitle("Search input"); // The app page title (Displayed in head)
%><%@ include file="/front/app/doAppCommon.jspf" %><%
%><%@ include file="/jcore/doHeader.jspf" %>
<form action="myUrl.jsp" method="POST">
<div class="app app-myapp">
<%-- SIDEBAR --%>
<div class="app-sidebar">
<div class="app-sidebar-icon">
<a href="debug/app/debugAppFullDisplay.jsp" title="Return to app home">
<jalios:icon src="glyph: icomoon icomoon-pacman" />
</a>
</div>
</div>
<%-- MAIN --%>
<div class="app-main">
<%-- HEADER --%>
<div class="app-header has-title">
<h1>My app title</h1>
</div>

<%-- BODY --%>
<div class="app-body">
<%
request.setAttribute(AppConstants.BODY_INCLUDE_PUB_REQUEST_ATTR, DocumentationSamples.getRandomArticle());
request.setAttribute(AppConstants.BODY_INCLUDE_PATH_REQUEST_ATTR, "/types/Article/doArticleFullDisplay.jsp");
%>
<jalios:include jsp="/front/app/doAppBodyInclude.jsp" />
</div>
</div>
</div>
</form>
<%@ include file='/jcore/doFooter.jspf' %>
0 pts
Guillaume Clément on 8/29/19 at 11:20 AM

Merci pour les infos c'est résolu

0 pts