Effectivement avec ce genre de code on est bloqué car le code html envoyé au client est tjs le même. Un work around simple serait de générer l'url de l'image côté client via un javascript.

At 06.01.2006 13:52, you wrote:


J'ai un .inc qui est inclus dans le header.inc qui se trouver sur toute les .jsp qui va chercher dans un containerlist qui se trouve sur une page du site où la communication introduit tous les banners du site. Le container sur la page "gestion des des banners" comporte un champ PageID (pour savoir à quelle pageID on veut appliquer le/les banners), un champ image et un champ link.

Ensuite, dans le .inc qui est inclus dans le header.inc, je recherche tous les containers qui ont le pageID de la Page en cours. J'en prends ensuite un au hasard que j'affiche avec le tag html <img comme bandeau


Le code...

<%
SiteBean site = (SiteBean)request.getAttribute("currentSite");
int pid= jData.page().getID();
int i=0;

String[][] tabImage=new String[999][4];
Random genereNo = new Random();
boolean encore=true;
Vector containerFilterVector = new Vector();
ContainerFilterBean dateFilter = new ContainerFilterBean("bannerPageId",true,jData.params().getEntryLoadRequest());

while (encore) {
        PageBean currentPage = site.getPage(pid);
  //Cherche un banner pour la page pid

  //filtre

dateFilter.addClause(ContainerFilterBean.COMP_EQUAL,String.valueOf(pid));
        containerFilterVector.add(dateFilter);
ContainerFilters containerFilters = new ContainerFilters(containerFilterVector,jParams.getSiteID(),"bannersContainerList");

request.setAttribute("bannersContainerList_filter_handler",containerFilters);
  //fin Filtre

JahiaContainerList bannersContainerList = jData.containers().getAbsoluteContainerList("bannersContainerList", 5); Enumeration bannersContainerEnum = bannersContainerList.getContainers();
          while (bannersContainerEnum.hasMoreElements()) {
JahiaContainer bannersContentContainer = (JahiaContainer)bannersContainerEnum.nextElement();
                  encore=false;
                   try {
                           // Banner trouvé !<br>
JahiaFileField banner = (JahiaFileField) bannersContentContainer.getFieldObject("bannerImage"); JahiaPage bannerLien = (JahiaPage) bannersContentContainer.getFieldObject("bannerLien");

         tabImage[i][0]="";
         tabImage[i][1]="";
         tabImage[i][2]="";
         tabImage[i][3]="";
                           if (banner != null) {
                                                if (banner.isImage()) {

tabImage[i][0]=banner.getDownloadUrl();
                                                }
                                 }
                                 if (bannerLien != null ) {

tabImage[i][2]=bannerLien.getTitle();

tabImage[i][3]="".valueOf(bannerLien.getPageType());
if (bannerLien.getPageType() == PageInfoInterface.TYPE_URL) {

tabImage[i][1]=bannerLien.getRemoteURL();
                                                }

if (bannerLien.getPageType() == PageInfoInterface.TYPE_LINK) {

tabImage[i][1]=bannerLien.getUrl(jParams);
                                                }
                           }
                           i++;
                   } catch (NumberFormatException nfe) {
                   }
                }
// fini la boucle, rien trouvé, on continue avec le parent, s'il y a lieu
                if (encore) {
                        // pas trouvé...on continue...<br>
                  pid=currentPage.getParentID();
                  if (pid==0) {
                                encore=false;
                  }
                }
        }

// Prends un banner at random
// [0]=Chemin image [1]=Lien à suivre [2]=Texte alternate [3]=Lien externe ou jahia
if (i>0) {
        int idxRandom=genereNo.nextInt(i);
        %>
<a href="<%=tabImage[idxRandom][1]%>" target="<%=tabImage[idxRandom][3]=="".valueOf(PageInfoInterface.TYPE_URL)?"_new":""%>"> <img src="<%=tabImage[idxRandom][0]%>" border="5" style="border-color:#FFFFFF"
        alt="<%=tabImage[idxRandom][2]%>"/><br>
 <%
}
%>




Jean-Michel Beaupré
Services Industriels de Genève
Ch. du Château-Bloch, 1219 Le Lignon
T +41 (0)22 420 88 09   F +41 (0)22 420 98 72
mailto:[EMAIL PROTECTED]
http://www.mieuxvivre.ch


Philippe Vollenweider <[EMAIL PROTECTED]>

06.01.2006 13:40
Veuillez répondre à
<[email protected]>

Pour
<[email protected]>
cc
Objet
Re: Réf. : Re: Réf. : Re: tags oscache et jahia




Qui génère cette image aléatoire? Jahia via un
jsp? Une image dynamique? du javascript?

At 06.01.2006 11:57, you wrote:


>Je vois...C'est donc pas une bonne idée pour la
>mise en place des bandeaux qui s'affichent
>aléatoirement car c'est dans le header de toutes les pages !
>Je ne vois pas trop comment faire pour forcer le
>rafraichissement de cette partie uniquement à
>chaque fois qu'une page Jahia est appelée
>normalement sans que les perfs ne soient trop pénalisées ?
>Cette fonctionnalités est surtout pour la home
>page...il y a peut-être une solution avec Jahia sans oscache ?
>
>Jean-Michel Beaupré
>Services Industriels de Genève
>Ch. du Château-Bloch, 1219 Le Lignon
>T +41 (0)22 420 88 09   F +41 (0)22 420 98 72
>mailto:[EMAIL PROTECTED]
>http://www.mieuxvivre.ch
>
>
>Philippe Vollenweider <[EMAIL PROTECTED]>
>
>06.01.2006 11:42
>Veuillez répondre à
><[email protected]>
>
>Pour
>Jean-Michel Beaupré <[EMAIL PROTECTED]>
>cc
>[email protected]
>Objet
>Re: Réf. : Re: tags oscache et jahia
>
>
>
>
>Pour tester oscache dans Jahia, il faut surfer un
>site avec /cache/off dans l'url pour ne pas utiliser le cache de Jahia.
>
>Un exemple simple pour tester oscache est de rajouter ceci dans votre jsp:
>
>Non cached date: <%= new Date() %><p>
>
><cache:cache time="30">
>Cached date: <%= new Date() %> (refreshed every 30 seconds)
></cache:cache>
>
>Philippe.
>
>At 06.01.2006 11:27, you wrote:
>
> >Bonjour Philippe,
> >
> >J'avais également mis cette déclaration dans le webxml.
> >Je ne vois pas où j'ai oublié qqch. Peut-être
> >que c'est un fonctionnement "normal" ? Etant
> >donné que la  page se met dans le cache Jahia,
> >Jahia fournit toujours la même page ? Faut-il dire qqch de spécial à Jahia ?
> >
> >
> >
> >Jean-Michel Beaupré
> >
> >
> >
> >Philippe Vollenweider <[EMAIL PROTECTED]>
> >
> >06.01.2006 10:26
> >Veuillez répondre à
> ><[email protected]>
> >
> >Pour
> ><[email protected]>
> >cc
> >Objet
> >Re: tags oscache et jahia
> >
> >
> >
> >
> >Bonjour,
> >
> >Il est nécessaire également de rajouter une ligne
> >dans le fichier WEB-INF/web.xml de Jahia, quelque chose du style
> >
> >   <taglib>
> >     <taglib-uri>oscache</taglib-uri>
> >     <taglib-location>classes/oscache.tld</taglib-location>
> >   </taglib>
> >
> >Philippe.
> >
> >At 05.01.2006 10:43, you wrote:
> >
> >
> > >Bonjour,
> > >
> > >Je tente d'utiliser les caches sectoriels
> > "oscache" conjointement avec jahia.
> > >
> > >Pour résumer, nous voulons raffraichir le banner
> > >haut de page toutes les 10minutes. Les
> > >utilisateurs sont tous logés en tant qu'invité
> > >et accèdent donc tous aux mêmes pages du cache Jahia.
> > >
> > >(nous avons mis le fichier oscache.tld et
> > >oscache.properties dans jahia\WEB-INF\etc\taglibs
> > >et le fichier osCache-2.2.jar dans jahia\WEB-INF\lib
> > >et le fichier oscache.properties tel quel dans classes
> > >et redémarré tomcat.. )
> > >Il n'y a aucun message dans la console tomcat
> > >
> > >
> > >Nous avons tenté d'introduire le cache "oscache"
> > >pour la partie bandeau uniquement de tel sorte :
> > >
> > ><%@ taglib uri="oscache" prefix="cache" %>
> > >...
> > >...
> > >
> > ><cache:cache time="<%= jData.gui().isEditMode() ? 0 : 600"%>
> > >  <a href="<%=tabImage[idxRandom][1]%>"
> > >
> >
> target="<%=tabImage[idxRandom][3]=="".valueOf(PageInfoInterface.TYPE_URL)?"_new":""%>">
>
> >
> > >
> > >         <img src="<%=tabImage[idxRandom][0]%>"
> > > border="5" style="border-color:#FFFFFF"
> > >         alt="<%=tabImage[idxRandom][2]%>"/><br>
> > >  </cache:cache>
> > >
> > >Malheureusement, la partie bandeau ne change
> > >jamais. Nous avons évidemment essayé avec des
> > >time plus petits (5sec); rien à faire.
> > >
> > >Est-ce-que qqn à une idée ?
> > >
> > >
> > >Jean-Michel Beaupré
> >
> >-------=[ pvollenweider at jahia dot com ]=---------
> >Jahia : A collaborative source CMS and Portal Server
> >www.jahia.org Community and product web site
> >www.jahia.com Commercial services company
> >
>
>-------=[ pvollenweider at jahia dot com ]=---------
>Jahia : A collaborative source CMS and Portal Server
>www.jahia.org Community and product web site
>www.jahia.com Commercial services company
>

-------=[ pvollenweider at jahia dot com ]=---------
Jahia : A collaborative source CMS and Portal Server
www.jahia.org Community and product web site
www.jahia.com Commercial services company


-------=[ pvollenweider at jahia dot com ]=---------
Jahia : A collaborative source CMS and Portal Server
www.jahia.org Community and product web site
www.jahia.com Commercial services company

Répondre à