Select the search type
  • Site
  • Web
Search
You are here:  Company/News

Blog2mind

Why content search in DMX is not integrated into DNN search

Let's examine DNN search first. DNN indexes content by regularly passing by modules and requesting searchable content. It will knock on the door saying 'give me all your search items'. A search item is a distinct unit of information that can be retrieved. It contains a block of text (the contents), a summary (to display in the search results list), and an identifier that can be used to link to this content. What DNN does with these is to index the contents block (i.e. carve it up so you can easily find a word in it) and store it with the two other fields plus an identifier of the module.

Now, we have an index of contents linked to a module. When a user searches using DNN, the framework matches (1) the requested search to match the indexed contents, and (2) the user's permissions to modules. This means the user sees a list of matching items for modules to which he/she has view permission. So far so good. This will work fine for almost any module. But there is something that is overlooked for a module like DMX. In DMX each item has its own set of permissions. Let's assume we have user with a role of RoleA. RoleA has view permissions on the DMX module instance. Let's assume there's a document that should not be seen by RoleA. If DMX would send it's contents for indexing to the DNN framework, our user would see this document in the search results because RoleA matches the view permissions of the DMX module. If our user would click on the link he/she would be confronted by an error message saying 'you don't have access to this document'. Not very friendly. This is undesirable. DMX only shows what you're allowed to see.

So there you have it. In short: DNN search was never designed with this scenario in mind. It assumes all content in a module has its permissions set at module level. This is too limited for a module like DMX.

Are there alternatives? Yes. The one thing that can be done is to add something to the search results page that will react to the search request and properly matches the content to the user. This was done in DMX 3 by adding a DMX instance there and setting the default pane to 'Search' in DMX settings. Then the module would pick up the requested search, perform the search, and return results. The user would see a list at the top of the page of regular DNN results and below a list of DMX results. Still not perfect, but the best we can do given the DNN architecture. A similar implementation will be made for DMX 4 in due course.

Archive