Loading...

All project content is available for reading, but you need to be a member of the project for Subversion checkout of source code, or to create/modify any information.
Login if you are a member. Apply here to request membership (open to all).

QuickSearchExtender

This allows you to extend EPiServer's quicksearch in the edit mode so you will get a menu to choose from on all the pages with a pagename that starts with your searchstring.

As you can see in the images below, it shows all pages that starts with the letters "si" in a list.

Quicksearch Extender illustration

You can then either choose one with the mouse or use the arrows key to step up or down. So this is a very easy way of finding the page you are looking for without knowing the exact name.

Quicksearch Extender illustration selected

The pages are, of course, filtered by access rights.

Download

The source code as well as an EPiServer Manager "install module"-package can be found here: dropit.QuickSearchContainer

Tickets

Tickets for this component:

#69
Java script Error in QuickSearch.aspx
#123
Getting errormessage when browsing /QuickSearchExtender/WebService/QuickSearchExtenderService.svc/js

Ask a question

Requires login.


Report a bug

Requires login.


Add a feature request

Requires login.


Configuration

You can change two settings. These are:

  • Number of pages to return with each search
  • The root page of the search.

These settings are stored in the .aspx-file right now, but they can easely be moved into a config file or similar if you want to.

Requirements

Runtime:

  • Asp.net Framework 3.5
  • EPiServer CMS 5 R1 (binary compiled with SP3)

If you want to change and compile the source code:

  • Visual Studio 2008

Installation

Simply download the installation package from EPiCode and run the EPiServer Managers "Install module". Or you can download the files directy and do a manual install.

After the installation, you need to verify a few things.

virtualPathMapping

The path in both <virtualPath> as well in <virtualPathMappings> needs to be changed to your own edit-path.

<virtualPath customFileSummary="~/FileSummary.config">
    <providers>
        <add showInFileManager="false"
             virtualName="QuicksearchMappings"
             virtualPath="~/your/relative/path/to/ui/edit/quicksearch.aspx"
             bypassAccessCheck="false"
             name="QuickSearchExtenderUrlMappingVPP"
             type="EPiServer.Web.Hosting.VirtualPathMappedProvider,EPiServer" />
    </providers>
</virtualPath>
<virtualPathMappings>
    <add url="~/your/relative/path/to/ui/edit/quicksearch.aspx"
         mappedUrl="~/QuickSearchExtender/quicksearch.aspx" />
</virtualPathMappings>

Both have the default value of ~/your/relative/path/to/ui/edit... and needs to be changed to your own path.

Location tag

EPiServer Manager is behaving kinda strange when it comes to <location>, it tends to add stuff by it's own. So please verify that your config-section looks like this:

<location path="QuickSearchExtender">
<system.web>
    <authorization>
        <allow roles="WebReaders, WebAdmins, Administrators" />
        <deny users="*" />
    </authorization>
</system.web>
</location>

Where the roles are the same to access your edit-mode.

Hopefully, a few of these problems will be adressed in the new installer for EPiServer CMS 5 R2, but I haven't had the time to look at it yet. So I will have to get back to you on that one.

Troubleshooting

Global.asax.cs

Especially on XP, there seems to be some problem in generating the WSC service correctly. You will notice this by getting a JS-error when you try and use the Quick Search Extender. You can then choose view source and locate the call to QuickSearchExtenderService.svc/js. Try and open it in a browser. If you don't get a js-file you might have to add this in your global.asax.cs-file:

protected void Application_BeginRequest(
object sender, EventArgs e)
{
   System.Web.HttpApplication app = sender 
      as System.Web.HttpApplication;
   System.Web.HttpContext context = app.Context;
   string path = context.Request.Path;
   int svc = path.IndexOf(".svc/",
      StringComparison.OrdinalIgnoreCase);
   if (svc >= 0)
       context.RewritePath(
           path.Substring(0, svc + 4),
           path.Substring(svc + 4),
           context.Request.QueryString.ToString());

}

But as I said, this is only showing in XP (at least as far as I know).

MetaBase

You might have to repair the MetaBase, please see this post: http://blogs.msdn.com/wenlong/archive/2006/09/10/748294.aspx

Remove Basic Auth

You might have to remove Basic Authentication on the `QuickSearchExtender\WebService´ directory in IIS

About the author

This module was created by Fredrik Karlsson of Dropit (SWE). Read more and comment at http://labs.episerver.com/en/Blogs/Fredrik-Karlsson/.

Attachments