Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

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
Previous
 
Next
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
 
Jurgen,

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

Michael Tobisch
DNN★MVP

dnn-Connect.org - 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"
};

searchDocuments.Add(searchDocument);

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()
            };
            searchDocuments.Add(searchDoc);
   // close the loop here
            return searchDocuments;
        }
        #endregion
    }


 

  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 sure...do 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

 

 
Previous
 
Next
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.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out