bvillersjr
2013-09-04T08:54:33Z
I am very pleased to see a real forum available for DNN!

I thought I would share my thoughts and comments here about the DNN integration in hopes of improving the integration.

First, I had some issues just after the installation. The installation itself went fine, but when I would attempt to import the DNN users into YAF via the provided DNN module button, it would bring in about 5-60 users and then give me the following error:

Error: is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at YAF.DotNetNuke.Utils.UserImporter.CreateYafUser(UserInfo dnnUserInfo, MembershipUser dnnUser, Int32 boardID, PortalSettings portalSettings, YafBoardSettings boardSettings) at YAF.DotNetNuke.YafDnnModuleImport.ImportClick(Object sender, EventArgs e) --- End of inner exception stack trace ---

I found that if I reloaded thepage after the error, I would get 5-100 more users. Over the course of an hour or so and clicking this button a great many times (each time seeing this same error) I finally got my 1400 users imported. Now that they are all imported, I don't see this error anymore when clicking that button, but it does take quite a long time to run.

I have no explanation for this at this time although I do suspect than DNN 7.01.01 has some issues of its own that may be contributing to this behavior.

Once I got this up and going, I then tested to see how the creation of DNN security roles would show in YAF. I was a little surprised to find that they didn't unless I press the button again, which takes over a minute,

From what I could tell, this isn't something that I would want to run very frequently since it appears to be rather resource intensive.

That posed a fairly significant problem for me. My goal is to create an Owners Club fro my product(s). Therefor, when someone buys one of my products, I want my store to assign them to a DNN role, thus granting them access to a particular forum(s).

I then went looking for a stored proc that might be performing this synchronization but soon discovered that this was all done in code.

At this point I'm stuck and wondering if there may not be a more efficient way to perform the synchronization, or in a perfect world, maybe there is a web service for creating YAF and DNN accounts and assigning them to roles?

Surely someone else has attempted to achieve similar functionality?

I'm not a wildly wealthy guy but I would like to contribute toward a DNN integration of YAF. Is there a donation area for this type of thing?
Sponsor
tha_watcha
2013-09-04T10:35:19Z
Originally Posted by: bvillersjr 

First, I had some issues just after the installation. The installation itself went fine, but when I would attempt to import the DNN users into YAF via the provided DNN module button, it would bring in about 5-60 users and then give me the following error:

Error: is currently unavailable. DotNetNuke.Services.Exceptions.ModuleLoadException: Object reference not set to an instance of an object. ---> System.NullReferenceException: Object reference not set to an instance of an object. at YAF.DotNetNuke.Utils.UserImporter.CreateYafUser(UserInfo dnnUserInfo, MembershipUser dnnUser, Int32 boardID, PortalSettings portalSettings, YafBoardSettings boardSettings) at YAF.DotNetNuke.YafDnnModuleImport.ImportClick(Object sender, EventArgs e) --- End of inner exception stack trace ---

I found that if I reloaded thepage after the error, I would get 5-100 more users. Over the course of an hour or so and clicking this button a great many times (each time seeing this same error) I finally got my 1400 users imported. Now that they are all imported, I don't see this error anymore when clicking that button, but it does take quite a long time to run.

I have no explanation for this at this time although I do suspect than DNN 7.01.01 has some issues of its own that may be contributing to this behavior.



I posted an updated dll in the issue report on codeplex.

Originally Posted by: bvillersjr 


At this point I'm stuck and wondering if there may not be a more efficient way to perform the synchronization, or in a perfect world, maybe there is a web service for creating YAF and DNN accounts and assigning them to roles?

Surely someone else has attempted to achieve similar functionality?



On the import Page there is an Scheduler you can activate which automatically checks for new users and updates the existing ones. The same Process happens when you click on import. And also when a user visits the forum the user is automatically imported if not exits or updated (if exists).

The current profile syncing process will be a lot faster in YAF 2.0, because i removed a lot of unessary db calls and also from now on there will be only one user profile used the dnn user profile.

The Role Syncing process is currently really slow because as you already noticed everything is done in the code because the module synchronizes role changes from yaf to dnn and from dnn to yaf.

If i have the time then i am trying to move some of that code in to an sql procedure to make it faster. At the moment i am working on better integration in to dnn (including the social api).
UserPostedImage
bvillersjr
2013-09-04T16:37:08Z
Thanks for the fast response!

I downloaded the latest version from Codeplex. It's working just fine. It imported all of my users the first try. I think it doesn't tell the truth about roles though. No matter what it seems to say that the roles were already synchronized. Nonetheless the roles are now in YAF and this process is working as expected.

EXCELLENT news on the social API integration!

Built into the skin of my site is a section that shows the users name, private message icon and number of message indicator, etc. Everything else in the site integrates into the social journal. For that reason, I want to disable YAF messaging and YAF profile editing, etc.

Really I would like to get rid of the entire YAF toolbar, as most of these these all overlap with DNN functionality. The few things that do not overlap like 'My Topics', 'Search', 'Admin, Host, Moderate' I may like to move into the DNN skin as it will give a much more integrated and polished look. Maybe I will leave the Admin, Host, Moderate in YAF, but move My Topics and Search into the DNN skin.

I think I will need to learn how to modify YAF skins as my next step.
bvillersjr
2013-09-05T01:51:05Z
By setting visibility to false on a lot of things in YafHeader.ascx I was able t get rid if the toolbar except for the admin section.

Then by making a copy of my skin in DNN, assigning the copy to my forum page and modifying it, I am able to integrate the few things from the YAAF menu that I wanted into the social area of my DNN to provide a cohesive experience as follows:

<div class="title-right">
<a title='My Topics' href='http://simxperience.com/tabid/742/g/mytopics/mytopics'>My Topics</a>
<a title="Search Forum" href="http://simxperience.com/tabid/742/g/search/search">Search Forum</a>
<dnn:USER ID="USER1" runat="server" LegacyMode="false" />
<dnn:LOGIN ID="LOGIN1" CssClass="LoginLink" runat="server" LegacyMode="false" />

</div>

I had to get the hyperlinks from the YAF menu before removing this. Presumably they will work as long as I don't move the forum modeul to another page of the DNN site.

The big problem with this though is localization. I need those links for my topics and search forum to vary by language. If have a few hours now into trying to do this with no luck.

I thought it would be as simple as ensuring this was atop the page (which it is by default in my skin):

<%@ Register TagPrefix="dnn" TagName="TEXT" Src="~/Admin/Skins/Text.ascx" %>

and adding this with but with the hyperlink as text:

<dnn:TEXT runat="server" Text="My Topics" ResourceKey="MyTopics.Text" ReplaceTokens="False" />

as it turns out though, I cant even get a simple piece of text as shownin the line above to show up, let alone a hyperlink :)

If I type some plain text in this same area, it shows up. I can't seem to figure out how to get these basics working in DNN7.
tha_watcha
2013-09-05T11:05:24Z
Originally Posted by: bvillersjr 

Built into the skin of my site is a section that shows the users name, private message icon and number of message indicator, etc. Everything else in the site integrates into the social journal. For that reason, I want to disable YAF messaging and YAF profile editing, etc.



You can turn off messaging in the host settings.

Quote:

Really I would like to get rid of the entire YAF toolbar, as most of these these all overlap with DNN functionality.



There is an appsetting for that

<add key="YAF.ShowToolBar" value="false" />

Quote:

and adding this with but with the hyperlink as text:

<dnn:TEXT runat="server" Text="My Topics" ResourceKey="MyTopics.Text" ReplaceTokens="False" />

as it turns out though, I cant even get a simple piece of text as shownin the line above to show up, let alone a hyperlink

If I type some plain text in this same area, it shows up. I can't seem to figure out how to get these basics working in DNN7.



That can not work, yaf did not use the standard language file that dnn uses. And in your case the resourcekey you entered needs to be stored in the language file for your skin.
UserPostedImage
Users browsing this topic

    About Us

    The YAF.NET is an open source .NET forum project. YAF.NET is supported by an team of international developers who are build community by building community software.

    Powered by Resharper Donate with PayPal button

    Project Twitter Updates

    Copyright © YetAnotherForum.NET & Ingo Herbote. All rights reserved