Learn More





Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDevelopment and...Development and...Building ExtensionsBuilding ExtensionsModulesModulesdnn 7.1 search modulednn 7.1 search module
New Post
8/14/2013 2:13 AM
I've upgraded my version to 7.1 and now I'm trying to get the search functionality to work. To add search content I previously implemented the ISearchable on my controllers. I replaced that with the ModuleSearchBase abstract class and overriden the GetModifiedSearchDocuments class. 

Because ModuleSearchBase is an abstract class I can't inherit from it on al my controller classes because I already implement a baseclass on some of them and multiple inheritance is not supported in C#.

How can I solve this?
New Post
8/14/2013 2:58 AM

I would suggest to implement a controller class that inherits from ModuleSearchBase and does the thing. Set this controller class as the business controller class, and you're done. If you also implement other interfaces like IPortable or IUpgradeable, implement the appropriate methods inside this class as well.

Best wishes

Michael Tobisch
DNN★MVP - Michael Tobisch's Site about DNN, SQL Server, ASP.Net and other related stuff - The most vibrant community around the DNN-platform
New Post
8/14/2013 4:04 AM
Thanks for your quick response. I tried to implement a controller class and changed the business controller class in my module.dnn file to that controller. I manually reindexed via host > schedule and tried to search on a "foo" term but it show no results found.

This is my foo implementation:

public override IList GetModifiedSearchDocuments(ModuleInfo moduleInfo, DateTime beginDate)
IList searchDocuments = new List();

SearchDocument searchDocument = new SearchDocument
AuthorUserId = 1,
Description = "foo",
ModuleId = moduleInfo.ModuleID,
PortalId = moduleInfo.PortalID,
Url = "url/foo",
Title = "foo"


return searchDocuments;
New Post
8/19/2013 2:15 AM
Can nobody help me? I'm pretty stuck
New Post
9/3/2013 4:15 AM

This works for me (of course, I still have to code the details, but I do find " xxxx" in a site search after I have executed the site crawler from the scheduler)

    public class LidBesonderhedeController : ModuleSearchBase
        #region ModuleSearchBase

        public override IList GetModifiedSearchDocuments(ModuleInfo modInfo, DateTime beginDate)
            var searchDocuments = new List();
             //I think I should start my loop here to go through all the members data (my control gets a id parameter to show specific data)
            var searchDoc = new SearchDocument
                UniqueKey = "xxxx",
                PortalId = modInfo.PortalID,
                Title = modInfo.ModuleTitle,
                Description = "xxxxxxxx",
                Body = "xxxxxxxxxxxxxxxx",
                ModifiedTimeUtc = DateTime.Today.ToUniversalTime()
   // close the loop here
            return searchDocuments;


  1. My records has a LastModifiedOn date field, so I will use that at  ModifiedTimeUtc
  2. I'm still not sure how to get just the last modified > than statement. (I do not want to process all records all the time) (How to know when it was last crawled vs the records lastmodifieddate)
  3. and URL (not shown above). In the pre 7.1 I could just make the GUID id={0} and pass it in, now I'm not I have to build the whole URL?

A) Have to add a dedicated class for this (could not use it inside the PortalBase as before
B) Had to modify my DesktopModules, add a BusinessControllerClass and SupportedFeatures=2


HomeHomeDevelopment and...Development and...Building ExtensionsBuilding ExtensionsModulesModulesdnn 7.1 search modulednn 7.1 search module

These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?