knguyen     2005/11/03 14:47:19 CET

  Modified files:
    src/view/jsp/include declarations.inc metadataapi.inc 
  Log:
  - metadata template using content search with sorter.
  - still in progress
  
  Revision  Changes    Path
  1.16      +2 -0      
corporate_portal_templates/src/view/jsp/include/declarations.inc
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/corporate_portal_templates/src/view/jsp/include/declarations.inc.diff?r1=1.15&r2=1.16&f=h
  1.5       +174 -87   
corporate_portal_templates/src/view/jsp/include/metadataapi.inc
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/corporate_portal_templates/src/view/jsp/include/metadataapi.inc.diff?r1=1.4&r2=1.5&f=h
  
  
  
  Index: declarations.inc
  ===================================================================
  RCS file: 
/home/cvs/repository/corporate_portal_templates/src/view/jsp/include/declarations.inc,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- declarations.inc  2 Nov 2005 16:56:59 -0000       1.15
  +++ declarations.inc  3 Nov 2005 13:47:19 -0000       1.16
  @@ -12,6 +12,7 @@
   <%@ page import="org.jahia.data.beans.portlets.*" %>
   <%@ page import="org.jahia.data.containers.*" %>
   <%@ page import="org.jahia.data.fields.*" %>
  +<%@ page import="org.jahia.data.search.*" %>
   <%@ page import="org.jahia.data.files.*" %>
   <%@ page import="org.jahia.data.viewhelper.sitemap.*" %>
   <%@ page import="org.jahia.exceptions.*" %>
  @@ -22,6 +23,7 @@
   <%@ page import="org.jahia.services.categories.*" %>
   <%@ page import="org.jahia.services.containers.*" %>
   <%@ page import="org.jahia.services.fields.*" %>
  +<%@ page import="org.jahia.services.metadata.*" %>
   <%@ page import="org.jahia.services.pages.*" %>
   <%@ page import="org.jahia.services.search.*" %>
   <%@ page import="org.jahia.services.sites.*" %>
  
  
  
  Index: metadataapi.inc
  ===================================================================
  RCS file: 
/home/cvs/repository/corporate_portal_templates/src/view/jsp/include/metadataapi.inc,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- metadataapi.inc   24 Oct 2005 16:31:57 -0000      1.4
  +++ metadataapi.inc   3 Nov 2005 13:47:19 -0000       1.5
  @@ -1,12 +1,6 @@
  -<%
  -     /*
  -     String searchQuery = request.getParameter("contentSearchQuery");
  -     if (searchQuery != null && !"".equals(searchQuery.trim()) ){
  -             ContainerSearcher cSearcher =
  -             new ContainerSearcher("directoryPeopleContainer",jParams,
  -             searchQuery,jParams.getEntryLoadRequest());
  -             
request.setAttribute("directoryPeopleContainer_search_handler",cSearcher);
  -     }*/
  +<%// flush cache after 5 sec.
  +     long cacheExpirationDelay = 3000; // [ms]
  +     jParams.setCacheExpirationDelay(cacheExpirationDelay);
   
        
//--------------------------------------------------------------------------
        //
  @@ -15,6 +9,15 @@
        
//--------------------------------------------------------------------------
   
        //-----------------------------------------------------------
  +     // Filtering content location
  +     //-----------------------------------------------------------
  +     String jahiaContentPath = request.getParameter("jahiaContentPath");
  +     if ( jahiaContentPath == null ){
  +             jParams.setParameter("jahiaContentPath","0");
  +             jahiaContentPath = "0";
  +     }
  +
  +     //-----------------------------------------------------------
        // Filtering content type
        //-----------------------------------------------------------
        String jahiaContentType = request.getParameter("jahiaContent_type");
  @@ -39,9 +42,47 @@
                jahiaContentSortOrder = "desc";
        }
   
  +     // Build the searcher
        Vector results = new Vector();
  +     StringBuffer searchQueryBuffer = new StringBuffer();
  +     
  +     // limit to current site
  +     searchQueryBuffer.append(JahiaSearchConstant.JAHIA_ID);
  +     searchQueryBuffer.append(":");
  +     searchQueryBuffer.append(NumberPadding.pad(jParams.getSiteID()));
  +     
  +     // limit to content type
  +     if ( "ContentPage".equals(jahiaContentType) ){
  +             searchQueryBuffer.append(" AND ");
  +             searchQueryBuffer.append(JahiaSearchConstant.CONTENT_TYPE);
  +             searchQueryBuffer.append(":");
  +             searchQueryBuffer.append(JahiaSearchConstant.PAGE_TYPE);
  +     } else if ( "ContentContainer".equals(jahiaContentType) ){              
        
  +             searchQueryBuffer.append(" AND ");
  +             searchQueryBuffer.append(JahiaSearchConstant.CONTENT_TYPE);
  +             searchQueryBuffer.append(":");
  +             searchQueryBuffer.append(JahiaSearchConstant.CONTAINER_TYPE);
  +     }               
  +     
  +     // limit to page location ( Sub Tree )
  +     if ( "0".equals(jahiaContentPath) ){
  +             searchQueryBuffer.append(" AND ");
  +             searchQueryBuffer.append(JahiaSearchConstant.METADATA_PREFIX + 
CoreMetadataConstant.PAGE_PATH.toLowerCase());
  +             searchQueryBuffer.append(":");
  +             
  +             ContentPage currentPage = jParams.getContentPage();
  +             
searchQueryBuffer.append(currentPage.getPagePathString(jParams));
  +             searchQueryBuffer.append("*");
  +     }
  +                             
  +     PageSearchResultBuilderImpl resultBuilder = new 
PageSearchResultBuilderImpl(false);
  +     //resultBuilder.setCheckPageACL(false);
  +     //resultBuilder.setCheckContentObjectACL(true);
   
  -     if ( jahiaContentSort != null ){
  +    JahiaSearchResult searchResult = ServicesRegistry.getInstance 
().getJahiaSearchService ()
  +        .search(jParams.getSiteID(), searchQueryBuffer.toString(), jParams, 
new ArrayList(), resultBuilder);
  +     
  +     if ( searchResult != null && jahiaContentSort != null ){
   
                ContentSorterByMetadata contentSorter = new 
ContentSorterByMetadata(
                                                                                
                                                jParams.getSiteID(),
  @@ -60,8 +101,8 @@
                }               
                
                
contentSorter.setNumberOrdering(numberSortFieldsList.contains(jahiaContentSort));
       
  -
  -             results = contentSorter.doSort();
  +             searchResult.sort(new JahiaSearchResultSorter[]{contentSorter});
  +             //results = contentSorter.doSort();
        }
   
   %>
  @@ -74,98 +115,118 @@
               <option value="All Types" <% if (jahiaContentType.equals("All 
Types")){%>selected<% }%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="allTypes" defaultValue="allTypes"/></option>
               <option value="ContentPage" <% if 
(jahiaContentType.equals("ContentPage")){%>selected<% }%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" resourceName="pages" 
defaultValue="pages"/></option>
               <option value="ContentContainer" <% if 
(jahiaContentType.equals("ContentContainer")){%>selected<% 
}%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="containers" defaultValue="containers"/></option>
  -            <option value="ContentContainerList" <% if 
(jahiaContentType.equals("ContentContainerList")){%>selected<% 
}%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="containerLists" defaultValue="container lists"/></option>
  +            <!--<option value="ContentContainerList" <% if 
(jahiaContentType.equals("ContentContainerList")){%>selected<% 
}%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="containerLists" defaultValue="container lists"/></option>-->
  +        </select>
  +    </td>
  +    <td nowrap="nowrap" valign="top" 
align="left">&nbsp;&nbsp;<b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="contentLocated" defaultValue="Content Located"/> : </b></td>
  +    <td>
  +             <select name="jahiaContentPath" 
onChange="javascript:document.jahiapageform.submit()">
  +            <option value="-1" <% if 
("-1".equals(jahiaContentPath)){%>selected<% }%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="Anywhere" defaultValue="Anywhere"/></option>
  +            <option value="0" <% if 
("0".equals(jahiaContentPath)){%>selected<% }%>><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="FromCurrentPageAndSubPagesOnly" defaultValue="From current page 
and sub-pages only"/></option>
           </select>
       </td>
   </tr>
   </table>
  -
  +<br/><br/>
   <input type="hidden" name="jahiaContent_sort" value="<%=jahiaContentSort%>"/>
   <input type="hidden" name="jahiaContent_sort_order" 
value="<%=jahiaContentSortOrder%>"/>
   </jahia:jahiaPageForm>
   
   <table width="100%" border="0" cellspacing="0" cellpadding="2">
  +<tr>
  +<td valign="top" class="EPMetaDataTitle" nowrap><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="content Name" defaultValue="Content Name"/></b>&#160;</td>
  +<td valign="top" class="box" height="23px">
  +    <a class="EPMetaDataTitle" href="javascript:<%
  +        %>document.jahiapageform.jahiaContent_sort.value='creator';<%
  +        %>document.jahiapageform.jahiaContent_sort_order.value=<%
  +        if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} else {%>'asc'<%}
  +        %>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="creator" defaultValue="Creator"/></b>&#160;<img
  +            src="<%=theURL%>/images/sort_desc.gif" alt="sort" border="0" 
width="5" height="7"/><img
  +            src="<%=theURL%>/images/sort_asc.gif" alt="" border="0" 
width="5" height="7"/></a>
  +</td>
  +<td valign="top" class="EPMetaDataTitle">
  +    <a class="EPMetaDataTitle" href="javascript:<%
  +        %>document.jahiapageform.jahiaContent_sort.value='creationDate';<%
  +        %>document.jahiapageform.jahiaContent_sort_order.value=<%
  +        if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} else {%>'asc'<%}
  +        %>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="creationDate" defaultValue="Creation date" /></b>&#160;<img
  +            src="<%=theURL%>/images/sort_desc.gif" alt="sort" border="0" 
width="5" height="7"/><img
  +            src="<%=theURL%>/images/sort_asc.gif" alt="" border="0" 
width="5" height="7"/></a>
  +</td>
  +<td valign="top" class="EPMetaDataTitle">
  +    <a class="EPMetaDataTitle" href="javascript:<%
  +        %>document.jahiapageform.jahiaContent_sort.value='lastContributor';<%
  +        %>document.jahiapageform.jahiaContent_sort_order.value=<%
  +        if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} else {%>'asc'<%}
  +        %>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastContributor" defaultValue="Last contributor"/></b>&#160;<img
  +            src="<%=theURL%>/images/sort_desc.gif" alt="sort" border="0" 
width="5" height="7"/><img
  +            src="<%=theURL%>/images/sort_asc.gif" alt="" border="0" 
width="5" height="7"/></a>
  +</td>
  +<td valign="top" class="EPMetaDataTitle">
  +    <a class="EPMetaDataTitle" href="javascript:<%
  +        
%>document.jahiapageform.jahiaContent_sort.value='lastModificationDate';<%
  +        %>document.jahiapageform.jahiaContent_sort_order.value=<%
  +        if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} else {%>'asc'<%}
  +        %>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastModificationDate" defaultValue="Modification 
date"/></b>&#160;<img
  +            src="<%=theURL%>/images/sort_desc.gif" alt="sort" border="0" 
width="5" height="7"/><img
  +            src="<%=theURL%>/images/sort_asc.gif" alt="" border="0" 
width="5" height="7"/></a>
  +</td>
  +<td valign="top" class="EPMetaDataTitle">
  +    <a class="EPMetaDataTitle" href="javascript:<%
  +        %>document.jahiapageform.jahiaContent_sort.value='lastPublisher';<%
  +        %>document.jahiapageform.jahiaContent_sort_order.value=<%
  +        if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} else {%>'asc'<%}
  +        %>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastPublisher" defaultValue="Last publisher"/></b>&#160;<img
  +            src="<%=theURL%>/images/sort_desc.gif" alt="sort" border="0" 
width="5" height="7"/><img
  +            src="<%=theURL%>/images/sort_asc.gif" alt="" border="0" 
width="5" height="7"/></a>
  +</td>
  +<td valign="top" class="EPMetaDataTitle">
  +    <a class="EPMetaDataTitle" href="javascript:<%
  +        
%>document.jahiapageform.jahiaContent_sort.value='lastPublishingDate';<%
  +        %>document.jahiapageform.jahiaContent_sort_order.value=<%
  +        if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} else {%>'asc'<%}
  +        %>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastPublishingDate" defaultValue="Publishing date"/></b>&#160;<img
  +            src="<%=theURL%>/images/sort_desc.gif" alt="sort" border="0" 
width="5" height="7"/><img
  +            src="<%=theURL%>/images/sort_asc.gif" alt="" border="0" 
width="5" height="7"/></a>
  +</td>
  +<td valign="top" class="EPMetaDataTitle"><b>&#160;</b></td>
  +</tr>
  +
   
   <%
   
  +String creator = "";                 
  +String creationDate = "";                    
  +String lastContributor = "";                 
  +String lastModificationDate = "";                    
  +String lastPublisher = "";                   
  +String lastPublishingDate = "";                      
  +
  +String pageURL = "";                 
  +String contentDisplayName = "";                      
  +
   int rowColorCount = 0;
   String rowColor = "";
   int contentCount = 0;
   ObjectKey objectKey = null;
   ContentObject contentObject = null;
  -Enumeration contentEnum = results.elements();
  -while (contentEnum.hasMoreElements()) {
  -     contentObject = 
(ContentObject)ContentObject.getContentObjectInstance((ObjectKey)contentEnum.nextElement());
  +Enumeration hitEnum = searchResult.results().elements();
  +ContentPage contentPage = null;
  +JahiaPage jahiaPage = null;
  +JahiaSearchHit hit = null;
  +while (hitEnum.hasMoreElements()) {
  +     hit = (JahiaSearchHit)hitEnum.nextElement();
  +     contentObject = 
(ContentObject)ContentObject.getContentObjectInstance(hit.getSearchHitObjectKey());
  +     if ( contentObject == null ){
  +             continue;
  +     }
       contentCount++;
  -    if (contentCount == 1){
  -        %>
  -        <tr>
  -            <td valign="top" class="box">&#160;</td>
  -            <td valign="top" class="box">
  -                <a href="javascript:<%
  -                    
%>document.jahiapageform.jahiaContent_sort.value='creator';<%
  -                    %>document.jahiapageform.jahiaContent_sort_order.value=<%
  -                    if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} 
else {%>'asc'<%}
  -                    
%>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="creator" defaultValue="Creator"/></b>&#160;<img
  -                        src="<%=theURL%>/images/sort_desc.gif" alt="sort" 
border="0" width="5" height="7"/><img
  -                        src="<%=theURL%>/images/sort_asc.gif" alt="" 
border="0" width="5" height="7"/></a>
  -            </td>
  -            <td valign="top" class="box">
  -                <a href="javascript:<%
  -                    
%>document.jahiapageform.jahiaContent_sort.value='creationDate';<%
  -                    %>document.jahiapageform.jahiaContent_sort_order.value=<%
  -                    if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} 
else {%>'asc'<%}
  -                    
%>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="creationDate" defaultValue="Creation date" /></b>&#160;<img
  -                        src="<%=theURL%>/images/sort_desc.gif" alt="sort" 
border="0" width="5" height="7"/><img
  -                        src="<%=theURL%>/images/sort_asc.gif" alt="" 
border="0" width="5" height="7"/></a>
  -            </td>
  -            <td valign="top" class="box">
  -                <a href="javascript:<%
  -                    
%>document.jahiapageform.jahiaContent_sort.value='lastContributor';<%
  -                    %>document.jahiapageform.jahiaContent_sort_order.value=<%
  -                    if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} 
else {%>'asc'<%}
  -                    
%>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastContributor" defaultValue="Last contributor"/></b>&#160;<img
  -                        src="<%=theURL%>/images/sort_desc.gif" alt="sort" 
border="0" width="5" height="7"/><img
  -                        src="<%=theURL%>/images/sort_asc.gif" alt="" 
border="0" width="5" height="7"/></a>
  -            </td>
  -            <td valign="top" class="box">
  -                <a href="javascript:<%
  -                    
%>document.jahiapageform.jahiaContent_sort.value='lastModificationDate';<%
  -                    %>document.jahiapageform.jahiaContent_sort_order.value=<%
  -                    if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} 
else {%>'asc'<%}
  -                    
%>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastModificationDate" defaultValue="Modification 
date"/></b>&#160;<img
  -                        src="<%=theURL%>/images/sort_desc.gif" alt="sort" 
border="0" width="5" height="7"/><img
  -                        src="<%=theURL%>/images/sort_asc.gif" alt="" 
border="0" width="5" height="7"/></a>
  -            </td>
  -            <td valign="top" class="box">
  -                <a href="javascript:<%
  -                    
%>document.jahiapageform.jahiaContent_sort.value='lastPublisher';<%
  -                    %>document.jahiapageform.jahiaContent_sort_order.value=<%
  -                    if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} 
else {%>'asc'<%}
  -                    
%>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastPublisher" defaultValue="Last publisher"/></b>&#160;<img
  -                        src="<%=theURL%>/images/sort_desc.gif" alt="sort" 
border="0" width="5" height="7"/><img
  -                        src="<%=theURL%>/images/sort_asc.gif" alt="" 
border="0" width="5" height="7"/></a>
  -            </td>
  -            <td valign="top" class="box">
  -                <a href="javascript:<%
  -                    
%>document.jahiapageform.jahiaContent_sort.value='lastPublishingDate';<%
  -                    %>document.jahiapageform.jahiaContent_sort_order.value=<%
  -                    if (jahiaContentSortOrder.equals("asc")){%>'desc'<%} 
else {%>'asc'<%}
  -                    
%>;document.jahiapageform.submit();"><b><jahia:resourceBundle 
resourceBundle="jahiatemplates.Corporate_portal_templates" 
resourceName="lastPublishingDate" defaultValue="Publishing date"/></b>&#160;<img
  -                        src="<%=theURL%>/images/sort_desc.gif" alt="sort" 
border="0" width="5" height="7"/><img
  -                        src="<%=theURL%>/images/sort_asc.gif" alt="" 
border="0" width="5" height="7"/></a>
  -            </td>
  -            <td valign="top" class="box"><b>&#160;</b></td>
  -        </tr>
  -             <%
  -     }
  -     String creator = contentObject.getMetadataValue("creator",jParams,"");  
                
  -     String creationDate = 
contentObject.getMetadataValue("creationDate",jParams,"");                      
  
  -     String lastContributor = 
contentObject.getMetadataValue("lastContributor",jParams,"");                  
  -     String lastModificationDate = 
contentObject.getMetadataValue("lastModificationDate",jParams,"");              
          
  -     String lastPublisher = 
contentObject.getMetadataValue("lastPublisher",jParams,"");                     
 
  -     String lastPublishingDate = 
contentObject.getMetadataValue("lastPublishingDate",jParams,"");                
    
  -
  +     creator = contentObject.getMetadataValue("creator",jParams,"");         
        
  +     creationDate = 
contentObject.getMetadataValue("creationDate",jParams,"");                      
 
  +     lastContributor = 
contentObject.getMetadataValue("lastContributor",jParams,"");                 
  +     lastModificationDate = 
contentObject.getMetadataValue("lastModificationDate",jParams,"");              
         
  +     lastPublisher = 
contentObject.getMetadataValue("lastPublisher",jParams,"");                     
  +     lastPublishingDate = 
contentObject.getMetadataValue("lastPublishingDate",jParams,"");                
   
   
       rowColorCount++;
       if (rowColorCount % 2 == 1){
  @@ -173,9 +234,34 @@
       } else {
           rowColor = "#dddddd"; // grey
       }
  +    
  +    try {
  +         contentPage = null;
  +         if ( contentObject instanceof PageReferenceableInterface ){
  +             contentPage = 
((PageReferenceableInterface)contentObject).getPage();
  +             } else if ( contentObject instanceof ContentPage ){
  +             contentPage = (ContentPage)contentObject;
  +             }                                   
  +         if ( contentPage != null ){
  +             jahiaPage = contentPage.getPage(jParams.getEntryLoadRequest(),
  +                                                                             
jParams.getOperationMode(),
  +                                                                             
jParams.getUser());
  +             pageURL = jahiaPage.getURL(jParams);
  +         }
  +     } catch ( Throwable t ){
  +     }           
  +     
  +     contentDisplayName = contentObject.getDisplayName(jParams);
  +     if ( contentObject instanceof ContentPage ){
  +             contentDisplayName += " (pageid" + contentObject.getID() + ")";
  +     } else if (     contentObject instanceof ContentContainer ){    
  +             contentDisplayName += " (ctnid" + contentObject.getID() + ")";
  +     }
       %>
  +    
  +    
       <tr bgcolor="<%=rowColor%>">
  -        <td valign="top" width="16"><a 
href="javascript:void()">&#160;</a></td>
  +        <td valign="top" nowrap><a href="<%=pageURL%>" 
target="_blank"><%=contentDisplayName%>&#160;</a></td>
           <td valign="top"><%=creator%>&#160;</td>
           <td valign="top"><%=creationDate%>&#160;</td>
           <td valign="top"><%=lastContributor%>&#160;</td>
  @@ -188,3 +274,4 @@
       
   }
   %>
  +</table>
  \ No newline at end of file
  

Reply via email to