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"> <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> </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> <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> <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> <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> <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> <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> <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> </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"> </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> <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> <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> <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> <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> <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> <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> </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()"> </a></td>
+ <td valign="top" nowrap><a href="<%=pageURL%>"
target="_blank"><%=contentDisplayName%> </a></td>
<td valign="top"><%=creator%> </td>
<td valign="top"><%=creationDate%> </td>
<td valign="top"><%=lastContributor%> </td>
@@ -188,3 +274,4 @@
}
%>
+</table>
\ No newline at end of file