PAGE SUBSET SEARCHING

"Graham Honey" <[email protected]> Thu, 29 Nov 2007 16:22:44 +1030
Newsgroups gmane.comp.cms.jahia.devel
Message-ID <[email protected]>
Hi all,

 

I hope you can assist.  We have used and adapted the code mentioned on
page 84 of the template development guide to enable page subset
searching, however it consistently captures/searches every page within
the site.  Instead of just  pages under the current page.  The code from
the PDF had to be updated to user StringBuilder as we were getting a
number of errors.  Does anyone know why this is capturing every page
within the site and not limiting the search results to the pages under
the existing page.

 

http://www.jahia.net/jahia/webdav/site/jahia_net/shared/Documentation/5.
0.3/Jahia5TemplateDeveloperGuide.pdf

 

Many thanks in advance.

 

Graham

 

 

Code:

 

 

<div id="search">

  <form name="searchForm" method="post"
action="<%=jData.gui().html().drawSearchLauncher()%>"
onSubmit="checkMaxPageItems(document.searchForm)" >

    <p>

      <label>Search for</label>

      <input type="text" name="search"
value='<%=JahiaTools.getStrParameter(request,"search","")%>' />

 

    <input type="hidden" name="maxPageItems" value="10" />

    <% if (advSearchLicenseEnabled){ %>

 

<a
href="javascript:checkMaxPageItems(document.searchForm);setFreeSearchInp
ut(document.searchForm);document.searchForm.searchView.value='advSearch'
;document.searchForm.submit()"><content:resourceBundle
resourceBundle="jahiatemplates.Corporate_portal_templates"
resourceName="search.advancedSearch" defaultValue="Advanced search"
/></a>

    <% } %>

    <input type="hidden"
name="<%=PageSearchResultBuilderImpl.ONE_HIT_BY_PAGE_PARAMETER_NAME%>"
value="true" />

    <input type="hidden" name="searchView" value="simple" />

    <input type="hidden" name="searchHandler" value="advSearch" />

    <input type="hidden" name="freeSearch" value='' />

    <input type="hidden"
name="<%=Search_Engine.SEARCH_REFINE_ATTRIBUTE%>" value="" />

    </p>

    <p>

      <select name="type">

        <option value="0">All</option>

        <option value="1">News</option>

        <option value="2">Resource</option>

      </select>

    </p>

    <p class="action">     

      <a
href="javascript:checkMaxPageItems(document.searchForm);setFreeSearchInp
ut(document.searchForm);submitSimpleSearchForm();document.searchForm.sub
mit()"><input type="image" src="/../images/btn_go.gif" alt="Go" /></a>


    </p>

            <%

                  //get the current pageID

                  ContentPage startPage =
ContentPage.getPage(jData.page().getID());

                  //get the list of child pages to construct the query

                  //retain active and staged pages

                  int pageInfosFlag = ContentPage.ACTIVE_PAGE_INFOS |
ContentPage.STAGING_PAGE_INFOS;

                  // SiteMapViewHelper.DISPLAY_ALL_LEVEL means that all
subsequent children under the

                  // current pageID node in the tree will be returned.

                  // SiteMapViewHelper.DEFAULT_LEVEL means that only the
immediate children under the

                  // currentpageID node in the tree will be returned.

                  FlatSiteMapViewHelper flatSiteMap = new
FlatSiteMapViewHelper(jParams, jParams.getUser(),

                  startPage, pageInfosFlag,
jParams.getLocale().toString(),

                  FlatSiteMapViewHelper.DEFAULT_LEVEL);

                  //Append the pageID of selected children to the
current query string

                  StringBuilder bob = new StringBuilder();

                  bob.append("(");

                  for (int j = 0; j < flatSiteMap.size(); j++) {

                  int pageId = flatSiteMap.getPageID(j);

                  if (j > 0){

                  bob.append(" OR ");

                  }

                  bob.append("pageid:" + pageId );

                  }

                  bob.append(")");

                  searchQuery = bob.toString();

                  %>

                        <h2>Current page id: <%=
ContentPage.getPage(jData.page().getID()) %></h2>

                        <h3>search string: <%= searchQuery %></h3>

                  <%                

            %>

  </form>

</div>

 


IMPORTANT: This e-mail, including any attachments, may contain private or confidential information.
If you think you may not be the intended recipient, or if you have received this e-mail in error, please contact the sender immediately and delete all copies of this e-mail. 
If you are not the intended recipient, you must not reproduce any part of this e-mail or disclose its contents to any other party. 
This email represents the views of the individual sender, which do not necessarily reflect those of education.au limited except where the sender expressly states otherwise. 
It is your responsibility to scan this email and any files transmitted with it for viruses or any other defects. education.au limited will not be liable for any loss, damage or consequence caused directly or indirectly by this email.

_______________________________________________
dev_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/dev_list