Bonjour,

 

            Je fais des testes sur le fonctionnement du filtering et du sorting sur un absoluteContaineurList. J’ai déjà réussi à faire appliquer un filtre et un trie sur un containeurList. Je veux maintenant le faire sur un absoluteContaineurList. J’ai donc pris le même code et changer les noms. La recherche fonctionne correctement. La pagination aussi, mis à part le windowSize par defaut, mais j’ai déjà écrit un sujet à ce propos. Par contre, le filtre et le trie ne fonctionnent pas. Y à t – il quelque chose de différent à faire lorsque l’on veut appliquer un filtre ou un trie sur un absoluteContainerList ?

 

Merci!

 

J’utilise Jahia 4.0.5

 

 

 

Voici mon code :

 

<?xml version="1.0" encoding="iso-8859-1"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html>

<head>

<%@ include file="include/declarations.jsp"%>

 

<%//traitement du filter  (doit etre avant toute déclaration selon le guide)

// Our vector of container filter beans

Vector cFilterBeans = new Vector();

ContainerFilterBean containerFilter = null;

 

String selNom = request.getParameter("nom_filter");

if ( selNom == null )

{

selNom = "Tous"; // By default, select all Skills.

}

 

if ( !selNom.equals("Tous") )

{

  // Create a filter only if needed.

  // The filter is created with the field name

  containerFilter = new ContainerFilterBean("nom", jParams.getEntryLoadRequest());

  // Then we add a comparison clause , here an EQUAL comparison.

  containerFilter.addClause(ContainerFilterBean.COMP_EQUAL,selNom);

}

if ( containerFilter != null )

{

  // Add the Filter Bean to the vector

  cFilterBeans.add(containerFilter);

}

// reset the Container Filter Bean.

containerFilter = null;

// Now we create the Filters Handler, only if there is at least one

// available Filter Bean.

if ( cFilterBeans.size()>0 )

{

  ContainerFilters containerFilters =  new ContainerFilters( "listeRessource", jParams,cFilterBeans);

  // Store the list of filters in the request object.

  // It will be used later by the container list loader.

  request.setAttribute( "listeRessource_filter_handler", containerFilters);

}

 

//traitement du sorte

String nomSort = request.getParameter("listeRessource_sort");

if ( nomSort == null )

{

  nomSort = "none"; // By default, no Sort required.

}

String nomSortOrder = request.getParameter("listeRessource_sort_order");

if ( nomSortOrder == null )

{

  nomSortOrder = "asc"; // By default set to Ascending.

}

if ( !nomSort.equals("none") )

{

  ContainerSorterBean sorter = new ContainerSorterBean("listeRessource",jParams,nomSort,false,jParams.getEntryLoadRequest());

  if ( !nomSortOrder.equals("asc") )

  {

    sorter.setDescOrdering();

  }

  else

  {

     sorter.setAscOrdering();

  }

  // Store the sort handler in the request object.

  // It will be used later by the container list loader.

  request.setAttribute("listeRessource_sort_handler", sorter);

}

 

//traitement du search

String searchQuery = request.getParameter(JahiaSearchConstant.CLIST_SEARCHQUERY_INPUT_PREFIX+ "listeRessource");

if (searchQuery != null && !"".equals(searchQuery.trim()) )

{

   ContainerSearcher containerSearcher = new ContainerSearcher("listeRessource",jParams, searchQuery,jParams.getEntryLoadRequest());

   request.setAttribute("listeRessource_search_handler",containerSearcher);

}

 

 

%>

 

      <%//declaration%>

<content:declareContainerList name="test" title="test">

        <content:declareContainer>

          <content:declareField name="nom" title="Nom affiché dans la liste" type="SmallText"/>

        </content:declareContainer>

</content:declareContainerList>

       

       

       

        <%//test pour le sort%>

      <div id="chercher">

      <%

        /*Inversion du trie*/

        String prochaineTrie = "asc";

        if(nomSortOrder.equals("asc"))

        {

          prochaineTrie = "desc";

        }

     

      %>

      <a href="" par nom (<%=prochaineTrie%>)</a>

 

<content:jahiaPageForm name="formTest">

     

      <content:absoluteContainerList name="listeRessource" id="listeRessource" pageId="203" windowSize="5">

     

            <input type="text" name="<content:ctnListSQueryInputName/>" value="<content:ctnListSQueryInputValue/>" />       

           

            <%//test pour le filter%>

            <select name="nom_filter">

              <option value="Tous">Tous</option>

              <option value="fournier">fournier</option>

              <option value="bouchard">bouchard</option>

            </select>

 

            <%//test pour le window size%>

            <select class="text" name="listeRessource_windowsize" >

              <option></option>

              <option value="3">3</option>

              <option value="5">5</option>

              <option value="10">10</option>

              </select>

 

          <input type="submit" value="go" />

      <br />

<%//pagination%>

<p>

    [<content:cListPaginationFirstItemIndex /> - <content:cListPaginationLastItemIndex />]

of <content:cListPaginationTotalSize />

    <content:previousWindowButton title="&lt;&lt;Prev" />

    <content:cListPagination nbStepPerPage="3">

      <content:ifCListPaginationCurrentPage><b>

      </content:ifCListPaginationCurrentPage>

      <content:cListPaginationPreviousRangeOfPages title="&#160;..&#160;"/>

        <content:cListPaginationPageUrl/>&#160;

      <content:cListPaginationNextRangeOfPages title="&#160;..&#160;"/>

      <content:ifCListPaginationCurrentPage></b>

      </content:ifCListPaginationCurrentPage>

  </content:cListPagination>

  <content:nextWindowButton title="Next&gt;&gt;" />

</p>

     

     <content:cListPaginationCurrentPageScrollingValue valueOnly="false" />

 

      <content:container id="listeRessourceContainer">

         

            <content:textField name='nom' valueId='nom' diffActive='true' />,

            <content:textField name='prenom' valueId='prenom' diffActive='true' />

 

         

          <br />

      </content:container>

 

   </content:absoluteContainerList>

</content:jahiaPageForm>

Répondre à