DotNetNuke Hosting with ASPHostPortal.com

BLOG about DotNetNuke CMS, latest technology and Special DotNetNuke Hosting Package with ASPHostPortal.com

DotNetNuke Hosting - ASPHostPortal.com :: Simple jQuery/CSS Tabs In DotNetNuke

clock Februarie 6, 2015 07:26 by author Ben

There are many jQuery tabs to pick from out there. You will discover even quite a few DotNetNuke Tab Modules accessible. But imagine if you'd like only a basic down and filthy list of tabs that just receive the career kept away from needing to depend upon other jQuery libraries or make bloat?

I’m likely to showcase a really easy tab structure that utilizes jQuery and CSS originally made by SOHTANAKA which i have adapted to my DNN website and into Ventrian House Agent.


Structuring The Tabs

The tab framework may be very simple. Just an unordered record to the tabs, and also a div box to deal with the tab information. The crucial thing to recollect when building your tabs is the fact that just about every tab wants a novel id connected to it.

<div class="tabsBlock">
  <ul class="tabs">
    <li><a href="#tab1">Tab 1</a></li>
    <li><a href="#tab2">Tab 2</a></li>
    <li><a href="#tab3">Tab 3</a></li>
    <li><a href="#tab4">Tab 4</a></li>
  </ul>
  <div class="tab_container">
    <div id="tab1" class="tab_content">
      <p>Enter Content</p>
    </div>
    <div id="tab2" class="tab_content">
      <p>Enter Content</p>
    </div>
    <div id="tab3" class="tab_content">
      <p>Enter Content</p>
    </div>
    <div id="tab4" class="tab_content">
      <p>Enter Content</p>
    </div>
  </div>
</div>
<!--Want Another Set of Tabs? -->
<div class="tabsBlock">
  <ul class="tabs">
    <li><a href="#tab5">Tab 1</a></li>
    <li><a href="#tab6">Tab 2</a></li>
    <li><a href="#tab7">Tab 3</a></li>
    <li><a href="#tab8">Tab 4</a></li>
  </ul>
  <div class="tab_container">
    <div id="tab5" class="tab_content">
      <p>Enter Content</p>
    </div>
    <div id="tab6" class="tab_content">
      <p>Enter Content</p>
    </div>
    <div id="tab7" class="tab_content">
      <p>Enter Content</p>
    </div>
    <div id="tab8" class="tab_content">
      <p>Enter Content</p>
    </div>
  </div>
</div>

Add Styling For your Tabs

Styling the tabs as well as the tab content is extremely straightforward to attain and can be simply changed with some creativity and imagination. I’ll be referencing my css styling for the tabs that I use. If you'd like much more examples, possess a look at examples provided by SOHTANAKA and verify the comments in his tutorial for additional designed by other customers.

In case you are an Active Social user, you are going to discover that if you're utilizing these jQuery tabs, you'll be able to simply transfer the appear and feel by means of CSS for the AS tab interface located on profile journals, group journals, and also the message center. For demonstration purposes, I’ve decided to leave in my css code utilised for the Active Social Message Center. When you do not use AS, simply take away all references to “am-ui-tab-n”.

.tabsBlock {margin-bottom:10px;}
 
ul.tabs,ul.am-ui-tab-strip {
height:29px;
list-style:none;
position:relative;
padding:1px 5px 0;
display:block;
font-size:12px;
/* CSS3 Rounded Corners For Top Left/Top Right of Tabs */
-moz-border-radius-topleft:8px;
-moz-border-radius-topright:8px;
-webkit-border-radius-topleft:8px;
-webkit-border-radius-topright:8px;
-khtml-border-radius-topleft:8px;
-khtml-border-radius-topright:8px;
}
 
ul.tabs li,ul.am-ui-tab-strip li,ul.am-ui-tab-strip li {
margin:2px 2px 0 0;
padding:4px 8px;
border:solid 1px transparent;
background:url(http://cdn.northeastok.com/common/2-0bg-blue.gif) center center repeat-x;
position:relative;
float:left;
text-decoration:none;
border-bottom-width:0 !important;
outline:none;
cursor:pointer;
}
 
ul.tabs li.active,ul.am-ui-tab-strip li.am-ui-tab-selected {
border-bottom:solid 1px #fff !important;
border:solid 1px #ccc;
background:#fff;
}
    
ul.tabs li:hover,ul.tabs li.active:hover,ul.am-ui-tab-strip li:hover,ul.am-ui-tab-strip li.am-ui-tab-selected:hover  {
border-bottom:solid 1px #fff !important;
border:solid 1px #555;
background:url(http://cdn.northeastok.com/common/grad-horz-grey.gif) top center repeat-x;
color:#444;
}
 
ul.tabs li a,ul.am-ui-tab-strip li a {
color:#fff;
font-weight:700;
}
 
ul.tabs li a:hover,ul.tabs li.active a,ul.am-ui-tab-strip li a:hover,ul.am-ui-tab-strip li.am-ui-tab-selected a {
color:#444;
}
 
.tab_container {
background:url(http://cdn.northeastok.com/common/grad-horz-rev-grey.gif) bottom center repeat-x;
border:solid 1px #ccc;
margin-bottom:6px;
}
 
.tab_content {
display:block;
min-height:100px;
padding:10px;
/* CSS3 Rounded Corners For the Box Outline */
-moz-border-radius:6px;
-webkit-border-radius:6px;
-khtml-border-radius:6px;
}

You will notice that I've several photos referenced because the background pictures for my tabs and tab container. All you may have to complete is modify the backgrounds to a colour or reference your individual image files.
The jQuery Tab Script

Now that the HTML and CSS is full, all we have to accomplish is add within the script. Out of habit, when producing scripts, I save them in my DNN directory to "/Resources/Shared/scripts" or if jQuery, I save to "/Resources/Shared/scripts/jquery". We’ll get in touch with this script "jquery.tabs.js" and save it to my shared jquery scripts folder.

Whenever you reference the script, just add in <script type="text/javascript" src="/Resources/Shared/scripts/jquery/jquery.tabs.js"></script>. In case you design and style in HTML5, you can drop "type="text/javascript". Add the reference for the bottom of the skin file, module template, or under DNN page settings > advanced settings within the page header tags. You can also add to the header or footer of module settings.

jQuery(document).ready(function() {
jQuery.fn.tabsBlock = function(){
    //Default Action
    jQuery(this).find(".tab_content").hide(); //Hide all content
    jQuery(this).find("ul.tabs li:first").addClass("active").show(); //Activate first tab
    jQuery(this).find(".tab_content:first").show(); //Show first tab content
    
    //On Click Event
    jQuery("ul.tabs li").click(function() {
        jQuery(this).parent().parent().find("ul.tabs li").removeClass("active"); //Remove any "active" class
        jQuery(this).addClass("active"); //Add "active" class to selected tab
        jQuery(this).parent().parent().find(".tab_content").hide(); //Hide all tab content
        var activeTab = jQuery(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
        jQuery(activeTab).show(); //To Fade in the active content, change ".show" to ".fadeIn"
        return false;
    });
};//end function
jQuery("div[class^='tabsBlock']").tabsBlock(); //Run function on any div with class name of "tabsBlock"
});

Using Tabs In Ventrian Home Agent

The tabs as they currently stand can simply be utilised in Property Agent. What I need to show you is how you can extend the tabs a little bit additional to let for targeting precise customers.

Say you have a get in touch with type, or possibly you've a assessment type within your view template that you simply only want to show for registered users. Why not wrap the tab with tokens to show or hide the tabs? This really is only one instance I’ll show, but it is possible to see where this leads to additional customizations.

<div class="tabsBlock">
  <ul class="tabs">
    <li><a href="#overview">Overview</a></li>
    <li><a href="#reviews">Reviews ([REVIEWCOUNT])</a></li>
    <li><a href="#write-review">Write A Review</a></li>
    <!-- Show Tab only when a property has no owner -->
    [HASNOAGENT]
    <li><a href="#claim">Claim It</a></li>
    [/HASNOAGENT]
  </ul>
  <div class="clearfix tab_container">
    <div id="overview" class="tab_content">
      <p>[CUSTOM:Details]</p>
    </div>
    <div id="reviews" class="tab_content"> [HASNOREVIEWS]
      <p class="alert-frame">No reviews yet. Why not be the first to review &quot;[CUSTOM:TITLE]&quot;. Simply "click" on the "Write A Review" tab above to get started.</p>
      [/HASNOREVIEWS]
      [HASREVIEWS][REVIEWS][/HASREVIEWS] </div>
    <div id="write-review" class="tab_content">
      <h4 class="p5 bgblue">Create A Review for [CUSTOM:TITLE]</h4>
      <!-- Show a message to guests that cant write a review --->
      [ISINROLE:Unauthenticated Users]
      <p class="info-frame">Sorry, but in order to write a review for [CUSTOM:TITLE], you must be a site member. Becoming a site member is completely free with no obligations. The NortheastOK Community wants to hear what you have to say about [CUSTOM:TITLE]. So feel free to see more about our <a href="/Help/Membership">"membership details"</a>, or get started and <a href="/Help/Sign-Up">"Sign Up"</a> today! If you are already a site member, you just need to <a href="/Login">"log in"</a> to write your own review of [CUSTOM:TITLE]</p>
      [/ISINROLE:Unauthenticated Users]
      <!-- Show only to registered users -->
      [ISINROLE:Registered Users]
      <div class="divcenter min80 max80 p5 tblw100"> [REVIEWFORM]</div>
      [/ISINROLE:Registered Users] </div>
    <!-- Show Tab Content only when a property has no owner -->
    [HASNOAGENT]
    <div id="claim" class="tab_content">
      <p class="alert-frame">Is this your Website? Fill out the form provided below to be contacted by an administrator to claim &quot;[CUSTOM:TITLE]&quot;. As the owner of this listing, you will be able to make updates and changes.</p>
      [COMMENTFORM]
      <!-- Show only comments to Admins -->
      [HASCOMMENTS][ISINROLE:Administrators]
      <hr />
      [COMMENTS][/ISINROLE:Administrators][/HASCOMMENTS]</div>
    [/HASNOAGENT] </div>
</div>

So as it is possible to see above, I've a tab called "Claim It". So whenever there's a listing with no an owner, the tab shows to permit a user to comment on the listing and claim that listing. I then possess the comments to show only to Admins. An admin can evaluation the listing and assign the listing towards the user, or make extra inquiry and get in touch with with that user. That is only a single instance of wrapping the tabs with tokens in Property Agent. Yet another notion is usually to also develop a tab that may be only visible to home owners to show stats, comments, and so on, or possibly a tab for brokers. On and on.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com
ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: Cleaning and Re-Indexing your DotNetNuke Search Tables

clock Februarie 5, 2015 06:56 by author Dan

Today we will tell you about Cleaning and Re-Indexing your DotNetNuke Search Tables. A week ago, we put a great deal of exertion into upgrades to the inquiry and RSS parts of Efficion's Articles module. As a feature of that, we recognized that regardless of how often you hit the Re-Index substance interface on the Host-> search Admin page, the connections never really get redesigned. As we dug further, it got to be clear that to upgrade the connections utilized by DNN's pursuit and RSS, you really need to cleanse the hunt tables.

This has suggestions past our module so I thought I'd impart the steps as a decent practice to do each once in momentarily on your DNN site to verify you Search Results and RSS Feeds are connecting legitimately.

Along these lines, if your query items aren't showing or connecting the route you'd like them to, the first thing you ought to attempt is clearing and re-indexing the inquiry tables. To do this:

1.) Login as host or an alternate superuser account

2.) Go to the Host->sql tab and run the accompanying as script:

delete {databaseOwner}{objectQualifier}SearchItemWordPosition
delete {databaseOwner}{objectQualifier}SearchItemWord
delete {databaseOwner}{objectQualifier}SearchWord
delete {databaseOwner}{objectQualifier}SearchItem

3.) Go to Host -> Search Admin and click the Re-Index substance catch. It may take for a little while for the re-indexing to finish so provide for it a couple of hours before testing once more.

On the off chance that this does not work, there may be an alternate module that is creating issues with Search. Take a gander at your Event Viewer and check whether you can discover any slip messages identifying with hunt.

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com
ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: DotNetNuke Search

clock Januarie 30, 2015 06:06 by author Ben

DotNetNuke Search (core project)
DNN Search is part of the DNN core that may be installed and configured out with the box.

DotNetNuke Search consists of four primary pieces:

  • Scheduled Job
    The scheduled process initiates the approach of indexing the modules, in the scheduled time interval. An iteration of all modules that support iSearchable is performed. Throughout this process, text that is extracted in the module is cleaned, parsed, and added to search word and search things tables.
  • Search Admin
    The search admin is for setting the maximum word length, minimum word length, selection to involve typical words, plus the alternative to consist of numbers.
  • Search Input Module
    A module or skin object is often made use of to provide the form for the search query. In module settings, you may make use of the default button, or an image. You do not have the selection to transform this image inside the module, nor change the text. Types is often made use of to produce some look and feel modifications, nevertheless it is limited. When a search is performed, the user is redirected for the Search Results web page.
  • Search Outcomes Module
    This module offers the search benefits. Within the settings, you can set the maximum search results, final results per page, maximum title length, maximum description length, along with the selection to show description. Final results are restricted for the exact word queried.


SEARCH DotNetNuke

The ISearchable interface is utilised to permit the users of one's module to look for content material employing the search mechanism provided by the DotNetNuke framework It works a lot more like an index inside the back of a book. The only things in the index are products that the author (in this case the module developer) has decided to put there. The search merely enables DotNetNuke portal users to speedily find things placed within this index.

Implementing Look for the Survey Module

To implement search for the Survey module we performed three measures:

Indicate that the controller class will implement the ISearchable interface

  • Insert the code for the ISearchable interface
  • Update the module configuration

Implement ISearchable in the Controller Class

When you look at the module definition for the Survey module, you can see that the controller

class defined is DotNetNuke.Modules.Survey.SurveyController
Public Function GetSearchItems(ByVal ModInfo As Entities.Modules.ModuleInfo) _
As Services.Search.SearchItemInfoCollection Implements Entities.Modules.ISearchable.GetSearchItems
' Get the Surveys for this Module instance
Dim colSurveys As List(Of SurveyInfo) = GetSurveys(ModInfo.ModuleID)
Dim SearchItemCollection As New SearchItemInfoCollection
Dim SurveyInfo As SurveyInfo
For Each SurveyInfo In colSurveys
Dim SearchItem As SearchItemInfo
SearchItem = New SearchItemInfo _
(ModInfo.ModuleTitle & " - " & SurveyInfo.Question, _
SurveyInfo.Question, _
SurveyInfo.CreatedByUser, _
SurveyInfo.CreatedDate, ModInfo.ModuleID, _
SurveyInfo.SurveyId, _
SurveyInfo.Question)
SearchItemCollection.Add(SearchItem)
Next
Return SearchItemCollection
End Function

To implement the search we performed 3 methods:

  • Developed and filled a SearchItemInfo object
  • Added this object for the SearchItemInfoCollection collection
  • Returned the SearchItemInfoCollection as the output for the approach
  • The essential point to remember is that the SearchKey parameter has to be a one of a kind value. In this case we passed the contents from the SurveyId field (in the Surveys table) towards the SearchKey parameter.
  • The Content material is the content that the portal customers will likely be looking on. We passed the contents on the Question field towards the Content parameter. As you are able to see within the table schema under, the Question field includes a direct one-to-one connection together with the SurveyID field.


This line adds the SearchItemInfo object for the SearchItemInfoCollection collection:
SearchItemCollection.Add(SearchItem), This line returns the SearchItemInfoCollection collection because the output on the technique:
Return SearchItemCollection

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com
ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.




DotNetNuke Hosting - ASPHostPortal.com :: Single Sign-on (SSO) and Modulesharing in DotNetNuke CE 06.01.00 and above

clock Januarie 29, 2015 06:42 by author Dan

One issue that is confronting you now and again as a dotnetnuke expert is the smoldering yearning of clients to have a solitary sign-on answer for their multi-entryway framework. Regularly they have diverse entryways for their organization offices or separate intranet and web entrances or some other multiportal needs. At the same time none of these clients comprehend the need of logging seperatly into each and every entryway! What's more for the framework executives it is a bad dream to keep all these client accounts in sync! A considerable measure of business and open source modules and suppliers served to take care of this issue previously.

An alternate inconvenience is the inconceivability to impart content between entries. Consider  a desktop program site and his portable friendly (acknowledged as two entries). On the off chance that you compose an article in the desktop gateway and you need to demonstrate this uncommon article on the portable entry as well, what did you need to do ? Yes, duplicate and glue! Conceivable, however not exceptionally rich!

Since Version 6.1  of Dotnetnuke  there is an answer for this in the Proffessional Version (PE). Lamentably this should be excluded in the group version of DNN. Yet you ought to realize that the usefulness is actualized in the center and just the organization module is inadequate in the CE form! So you have the capacity utilize this, even in  CE, with negligible changes straightforwardly in the database:

Base of all the functionality is the new table “PortalGroups”:

For every group of portals we need to insert here one record:

Next to the Portalgroupname and the Portalgroupdescription, which are selfexplaining, and the normal fields Createdondate, Createdbyuserid and so forth , just  Masterportalid and Authenticationdomain  are intriguing. Masterportalid  ought to be supplanted with the portalid of the entryway which ought to be utilized as the entry where the client logs later on. Authenticationdomain ought to be loaded with the space name of the expert entryway (e.g. www.yourdomain.com)

Presently we need to fill in the Portalgroupid of the recently made portalgroup into the field with the same name in the comparing Portal records and our SSO arrangement is finished:

Tip: Eventually you have to recycle the Applicationpool to see your results!

And now see how this affects your portal administration:

Add an existing module – before

 

Add an existing module – after

And after login in the main portal the user is also automatically logged in into the child portal and all users of both portals show up together in the user administration!

Please make a special effort to be mindful of this:

  • A client made on the expert entryway is known on all entrances of the entrance bunch
  • Login at an entryway consequently logs you into all entrances with the same area (incl. subdomains + childportals). SSO for different areas does NOT work (yet you can log in with the same client certifications)

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com
ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: Bug Custom profile properties cannot be selected for custom registration form (DNN 7)

clock Januarie 22, 2015 06:59 by author Dan

DNN 7 permits customization of the enlistment structure through a simple interface, with intellisense. You simply select "Custom" for Registration Form Type in Admin - Site Settings - User Account Settings tab and you can include all the fields you like to your enlistment structure.

Site Settings

Right now of composing, this doesn't appear to function admirably with custom enlistment properties (i.e. fields you have made yourself through the "Profile Settings - Add New Profile Property catch underneath on the same tab). On the off chance that you attempt to sort a custom property's name on the Registration Fields box, it simply won't come up (despite the fact that its been accounted for that properties of datatype "Content" do come up).

With a specific end goal to make these properties accessible to your enrollment structure until a fix is connected to this, you can utilize SSMS (gave that you have entry and experience utilizing it) and do the accompanying:

  • Go to your DNN database

  • Open the "Portalsettings" table for alter and discover the record that has the worth "Registration_registrationfields" in the "Settingname" field

  • You'll see that the "Settingvalue" field is a comma-delimited rundown containing the field monikers of the properties that are to be shown on the custom enlistment structure. Include the nom de plumes you could call your own fields in the rundown.

  • Redesign the table and go to your DNN establishment (as the Host client), and click on Tools - Clear Cache

  • In the event that everything goes well, you'll see that the "Enrollment Fields" box now contains your properties as well, and they will seem regularly on the enlistment structure.

An alternate approach to do this is to utilize the Host - SQL segment on your DNN establishment. To see the current profile properties that are shown on the custom enrollment structure, sort this into the Script box and click "Run Script":

SELECT
SettingValue
FROM  {databaseOwner}{objectQualifier}PortalSettings
WHERE
SettingName = 'Registration_RegistrationFields'

With a specific end goal to include one or more fields toward the end of the rundown, you must run something like this (where "Myfield" is your custom field's assumed name). Keep in mind the comma and utilize no spaces.

UPDATE

{databaseOwner}{objectQualifier}PortalSettings
SET
SettingValue = SettingValue + ',MyField'
WHERE
SettingName = 'Registration_RegistrationFields'

After you run it, go to Tools and click Clear Cache and you will see your fields on the "Enrollment Fields" box in the Admin - Site Settings - User Account Settings tab.

On the off chance that despite everything you require more power and customization with your custom enlistment page, take a gander at the Dynamic Registration module from Datasprings - right now of composing this, form 5.0 has quite recently been discharged for DNN 7.x.

Standard disclaimer: When you do stuff like the above on your database, you do it at your own danger, and I have no obligation if you harm your database, your machine, or the universe. Continuously have a reinforcement helpful!

Best DotNetNuke Hosting Recommendation

ASPHostPortal.com

ASPHostPortal.com provides its customers with Plesk Panel, one of the most popular and stable control panels for Windows hosting, as free. You could also see the latest .NET framework, a crazy amount of functionality as well as Large disk space, bandwidth, MSSQL databases and more. All those give people the convenience to build up a powerful site in Windows server. ASPHostPortal.com offers DotNetNuke hosting starts from $5/month only. We also guarantees 30 days money back and guarantee 99.9% uptime. If you need a reliable affordable DotNetNuke Hosting, we should be your best choice.



DotNetNuke Hosting - ASPHostPortal.com :: Easily Embed a Google Hangout on Your Website

clock Januarie 13, 2015 05:51 by author Ben

If you’re not sure what a Google Hangout is, well…  You’ve been under a rock for a while.  Simply put, this is a very easy and web-based way to talk to someone face-to-face, from any nearly web-based device that has a web browser.  You can do this one-on-one like with Skype, or you can use this for more of a public webinar kind of use case.  It’s part of the whole Google+ suite of features.  Even if you’re not actively using Google+, this feature is pretty sweet.  It’s amazing what they’re able to enable you to do with a web browser!  If you’re doing the latter, you might want to read on…


It’s been a long while since I’ve released a NEW module into the DotNetNuke community – maybe at least a year ago since my last release.  It’s been even longer since I’ve blogged here, and I am sorry for that.  But as I said on twitter the other night, I’m back! I’ve had some modules go out into the wild that you might not have heard of, including a couple for user groups as proof of concepts, and even an update to the Media Module in February.  (Do a search for “user group labs” for the others on codeplex.)

Google Hangout for DNN

If you’re reading this and not using DNN, sorry.  But this is an open source module, so if you’re a developer, you can take a look at the source for this module (and many of my others) on github.  You’ll be able to see this module in action next week though for a live DNN webinar with

Peter Donker (T|B|L), Joe Brinkman (T|B|L), and myself.  You can follow our twitter feeds to get those details as soon as they’re available.

“Hey Will.  Why should I build a module for this?  Google Hangouts has an embed code.  I can just copy and paste it.”

If you are asking yourself that, you’re absolutely right, and there’s nothing to prevent you from doing that.  However, having a module to manage this gives you the benefit of structured content, ability to delegate management of Hangouts to non-technical people, and there are more features and purposes planned for this module that will be announced later.

DNN Hangout Features

This is a first release, so there is going to of course be a minimal number of features, and they include:

    Quickly add a Google Hangout via copy/paste
    Template available to change how the module is displayed to users
    Show start date/time and duration for future/past Hangouts

For those of you that are developers, here is a feature list for you!

    Uses content items for the DAL
    Uses DNN token replace
    Uses PortalSecurity for user input filtering

This version 01.00.00 release has the following minimum requirements.

    DNN version 07.03.04
    SQL Server newer
    Microsoft.Net version 4.0 or newer

How do I use DNN hangout?

Today, the features are simple…  You create a hangout in Google Hangout.  It can be a regular hangout, but what this module is really meant for is On Air Hangouts.  These are the kind of hangouts where you would be broadcasting an even to the public.

Next, you copy the hangout URL, video ID, or embed code.  This module will accept them all and magically grab the information it needs from you.  Go into the module’s edit view to manage those settings.

Once you see the edit view, add the relevant information, including the Google Hangout information you copied earlier.

You even have some sample Google Hangout addresses to test and compare with to make sure you’re adding the right information.  As long as you add the right address, it will be parsed and the video ID will be the only thing that remains once you save.

Now that you have the right information in place, you can save your new hangout and you’ll see it immediately on the page.

This is probably not how you want your hangout to be displayed on you site.  Don’t worry…  You’re covered with the module settings.  Just update the default template with your own HTML and use the placeholder tokens to add the hangout information in the places of the HTML that you want.  Once you save it, your changes will be reflected on the page.  You should know that this module also supports DNN tokens, so feel free to add things like user personalization if you want.


Best DotNetNuke Hosting

Following reviewed for Best ASP.NET hosting companies that help with DotNetNuke, ASPHostPortal is Best ASP.NET Hosting for DotNetNuke Recommendation. They give 99,99% uptime assured, as well as 30 Days Money back assured, best friendly customer service, and many more.



DotNetNuke Hosting with ASPHostPortal :: How to optimise DotNetNuke site for speed by improving page load, caching and use of CDN

clock Desember 23, 2014 05:42 by author Mark

How to optimise DotNetNuke speed by improving page load, caching and use of CDN

This is a real example of what can be done to get your sites running faster before upgrading the hardware.
Starting point - this blog mattjura.com with following specification: Server: Microsoft Windows NT 6.1.7601 Service Pack 1, IIS/7.5, .Net 4.0 and SQL Server 2008 R2 Express edition, 2GB RAM, 1GHZ CPU – running multiple sites. DotNetNuke

Stats before optimisation

WebPageTest.org results: Load time: 5.546s, First byte 1.491s, Start render 3.675s, Requests 66,

YSlow results: Overall performance score 70 Grade C
The page has a total of 46 components and a total weight of 558.8K bytes
Primed cache: HTTP Requests - 4, Total Weight - 56.2K

Google Page Speed results:
Page Speed Score of 54 (out of 100)
Not a good set of results but here are the steps to get the site running faster.

Server configuration - actions to complete

Enable content compression in: IIS Manager >> Compression
Add HTTP response headers in: IIS Manager >> HTTP response headers
(Enable HTTP keep alive and Expire web content after 7 days or as required)
Enable output caching in: IIS Manager >> Output Caching for the following file extensions .css, .gif, .jpg, .js and .png files (User-mode caching, using file change notifications)
This may not always be possible on the shared servers but if you do not ask you do not get.

Results:
WebPageTest results: Load time 3.82, First byte 1.489, Start render 2.751 Keep alive A, Compress Transfer A
YSlow results: Overall performance score 80 Grade C
Google Page Speed results: overall PageSpeed Score of 63 (out of 100)

DNN upgrade and configuration

Upgrade the site 6.02.05 >> 7.00.05 >> 7.03.04 (latest version)
Change the following settings in host >> host settings:
Basic settings - turn off copyright credits
Performance settings - cache setting heavy
Authenticated cacheability - Public
Client resource management - Enable Composite Files
Client resource management - Minify CSS
Client resource management - Minify JS
Scheduler mode - Timer Method
Enable Event Log Buffer - on
Auto sync file system - off
In Admin >> Site Settings turn off Enable Skin Widgets if not used

Results:
WebPageTest results: Load time 3.78, First byte 0.995, Start render 2.340 Keep alive A, Compress Transfer A, Effective use of CDN - yes
YSlow results: Overall performance score 83 Grade B
The page has a total of 34 components and a total weight of 331.9K bytes
Primed cache: HTTP Requests - 4, Total Weight - 23.4K
Google Page Speed results: overall PageSpeed Score of 88 (out of 100)

OK - getting better but still room for improvement.

Use Content Delivery Network

A CDN service will take all of your images, java script, and CSS (Cascading Style Sheets) and host them on to their network to quickly load them on your visitors browsers. Another benefit is that a CDN usually has a huge network of servers that are closer to your potential visitor ensuring that your site will load quickly wherever in the world they are visiting.
It has its drawback as you have to change your DNS settings to one supplied by CloudFlare however the process is very simple and takes 5 minutes. If your site has google ads or third party content you should try the rocket optimiser - free on all plans. Please check your site works as normal with rocket optimizer as it is still in beta at the time of writing this post.

Results:
WebPageTest results: Load time 3.01, First byte 0.995, start render 2.120 Keep alive A, Compress Transfer A, Effective use of CDN - yes
YSlow results: Overall performance score 94 Grade A !
The page has a total of 28 components and a total weight of 225.4K bytes
Primed cache: HTTP Requests - 2, Total Weight - 16.7K
Google Page Speed results: overall PageSpeed Score of 88 (out of 100)

Images, CSS, HTML

First to optimise the images, css files, and the code, implement sprites, optimise fav icon, replace deprecated menu.

Results:
WebPageTest results: Load time 2.361, First byte 1.230, start render 1.594 Keep alive A, Compress Transfer A, Effective use of CDN - yes
YSlow results: Overall performance score 95 Grade A !
The page has a total of 20 components and a total weight of 217.4K bytes
Primed cache: HTTP Requests - 2, Total Weight - 16.4K
Google Page Speed results: overall PageSpeed Score of 88 (out of 100)

How much has the speed of the site improved

WebPageTest results:
Load time improvement from 5.546 to 2.361 seconds
Start render improvement from 3.675 to 1.230 seconds
YSlow results:
Grade improvement from Grade C & score 70 to Grade A & score 95
Improvement from 46 components and a total weight of 558.8K bytes to 20 components and a total weight of 217.4K bytes
Google Page Speed
Improvement from PageSpeed 54 to PageSpeed 88

Note: "Without adding additional hardware I have managed to lower the load speed considerably. To improve it even more I could add more RAM and additional CPU on the server and move the database to its own full web edition SQL server, however with a current speed load below 3 seconds I could not justify the costs in this case. Please let me know if you have any other suggestions or what is your experience with the speed of your DNN sites".



ASPHostPortal.com Proudly Announces DotNetNuke 7.3.4 Hosting

clock Desember 22, 2014 11:07 by author Dan

ASPHostPortal.com, The Best, Cheap and Recommended ASP.NET Hosting proudly announces DotNetNuke 7.3.4 Hosting with a combination of affordable price, fast & stable network and high customer satisfaction rate. ASPHostPortal.com provides full trust web hosting services for DotNetNuke 7.3.4 site.

DNN (formerly DotNetNuke) provides a suite of solutions for creating rich, rewarding online experiences for customers, partners and employees. DNN products and technology are the foundation for 750,000+ websites worldwide. In addition to commercial CMS and social community solutions, DNN is the steward of the DotNetNuke Open Source Project.

DNN Platform 7.3.4 has been released. The 7.3.4 release is a stabilization release. DNN 7.3.4 is a smaller maintenance release than normal and is focused on addressing the most serious platform issues. This version release to solve some issue, such as : fixed issue where site settings were not updating correctly in multi-language installations, fixed issue where partial site templates were not working correctly with child sites, fixed issue where links created in Telerik RadEditor were not correct and many others.

ASPHostPortal.com, a windows-based hosting service provider offers the most reliable and stable DotNetNuke 7.3.4 web hosting infrastructure on the net with great features, fast and secure servers. Customer’s site will be hosted in USA, Amsterdams or Singapore based server. All of our windows hosting plan supports DotNetNuke 7.3.4 and you can install DotNetNuke 7.3.4 with just one click. We offer professional DotNetnuke 7.3.4 site start from $5/month. The following are the reasons why you should choose and keep trust with us :

Uptime & Support Guarantees
We are so confident in Windows hosting services, we not only provide you with a 30 days money back guarantee, but also give 99.9% uptime guarantee.

Best and Friendly Support
Our support team is extremely fast and can help you with setting up and using DotNetNuke 7.3.4 on your account. Our customer support will help you 24 hours a day, 7 days a week and 365 days a year.

Dedicated Application Pool
Your site will be hosted using isolated application pool in order to meet maximum security standard and reliability.

ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET Hosting. With the DotNetNuke 7.3.4 in their hosting deal will make ASPHostPortal continue to be the Best ASP.NET hosting providers. To learn more about DotNetNuke 7.3.4 Hosting, please visit http://asphostportal.com/DotNetNuke-734-Hosting

About ASPHostPortal.com :

ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET Hosting. ASPHostPortal.com has ability to support the latest Microsoft and ASP.NET technology, such as: such as: WebMatrix, WebDeploy, Visual Studio 2015, .NET 5/ASP.NET 4.5.2, ASP.NET MVC 6.0/5.2, Silverlight 6 and Visual Studio Lightswitch. ASPHostPortal include shared hosting, reseller hosting, and sharepoint hosting, with speciality in ASP.NET, SQL Server, and architecting highly scalable solutions. ASPHostPortal.com strives to supply probably the most technologically advanced hosting solutions available to all consumers the world over. Protection, trustworthiness, and performance are on the core of hosting operations to make certain each and every website and/or software hosted is so secured and performs at the best possible level.



DotNetNuke Hosting with ASPHostPortal :: How To Creating a webservice in DotNetNuke 7

clock Desember 19, 2014 06:57 by author Mark

I have recently been assigned to built a DotNetNuke web service to allow a windows application (or any type of web client for that matter) the ability to manage DotNetNuke user accounts (create, change roles, delete, retrieve email address, etc.).
Since I had a hard time finding a correct code sample or documentation that actually applies to DotNetNuke 7 and accessing it without being previously logged in to DotNetNuke, it was difficult to built anything. I finally found out how to do it correctly so I tough I would put my efforts to some use and write a blog post explaining how to do it step by step.

The basics

That said, let's begin by the basics and just make a publicly accessible web service that allows anyone to ping the web service and get a pong back. For that we will use the new DotNetNuke 7 Services Framework which makes it quite simple if you know how to use it.
In order to make a web service that will work withing DotNetNuke 7, you will need to fire up Visual Studio and create a Class Library project (c# or VB but all examples here will be in c#).
That done, we will then reference some required DotNetNuke 7 required libraries (using the Add Reference dialog box), here's the list:

  • DotNetNuke.dll
  • DotNetNuke.Web.dll
  • System.Net.Http.dll
  • System.Net.Http.Formatting.dll
  • System.Web.Http.dll

Then we also need to reference the System.Web class from the .NET tab of the same dialog box.
Finally, we neet to set the output path of the project to the DotNetNuke bin directory and we are ready to code.
Here is the code, the explanations follow:

  • We simply start with some using statements for our requirements as shown above
  • We create a namespace for our service and whatever name we use here will be part of the url. I used MyService just for this example but use any name that makes sense for your service.
  • Now we create a public class for our controller. You can create multiple controllers if you need to and the controller is just a group of related actions that make sense to group together. In my real project I have a PingController for testing purposes, a UsersController for any actions that relate to user accounts etc. Just use a name that makes sense since it will also show up in the url. Two things to be careful here:
  • The name of your controller must end with the word Controller but only what comes before it will show in the url, so for PingController, only Ping will show in the url path.
  • It must inherit DnnApiController so it will use the DotNetNuke Services Framework.
  • Then we create the actual action, in our case, PublicPing. It is just a simple method which return an HttpResponseMessage and can have a few attributes. By default the new services framework will respond only to host users and you need to explicitly allow other access rights if needed, in this case the [AllowAnonymous] makes this method (or action if you prefer) available to anyone without credentials. The second attribute, [HttpGet] will make this action respond to HTTP GET verb, which is usually used when requesting some date from the web server.
  • Finally in that action, you insert whatever code you action needs to do, in this case just return the string "Pong!", just remember that you need to return an HttpResponseMessage and not a string or int or other object.

Ok so our controller and action is done, now we just need to map that to an actual URL and that what the last part of the previous code does. In essence this code tells DotNetNuke to map a certain url pattern to the methods defined in your class. You can use that code as is just replacing MyService by whatever your service name is.

Testing:

That's all there is to it, your service is ready!  To test it, first compile it, then just navigate to http://yourdomain/DesktopModules/MyService/API/Ping/PublicPing and you should see "Pong!" in your browser as a response.

Passing parameters

Ok, so the basic code above is working but it doesn't do anything useful. Lets add something more useful by creating an action that will give us the email address for a specific user id.
Again, here's the code and the explanations will follow (place the code inside the same namespace as the previous one)

  • First we build a UsersController class that will hold all actions related to user accounts, it is not absolutely necessary, you can have many actions in the same controller, however since this action is not at all related to our PingController, let'a make a new one more descriptive.
  • We then make a GetEmail action (method) that will accept a userid parameter. The [RequireHost] parameter here will make it accessible only to host users, we'll see later other authentication options.
  • The code in the method itself is pretty much self explanatory. The only interesting thing to note here is that because our class inherits DnnApiController, we already have a PortalSettings object available. That's the big advantage of making use of the DotNetNuke Services Framework. You will have a ModuleInfo object to represent your module (if there is one with the same name as your service, which is not necessary such in this case), a PortalSettings object that represents the portal at the domain name used to access the service (portal alias) and finally a UserInfo object representing the user that accessed the web service.

Testing:

If we now navigate to http://yourdomain/MyService/API/Users/GetEmail?userid=2 you should receive the email address back from the server unless of course that userid does not exist, make sure to test with a userid that actually exists for that portal. If you where not previously connected with a host account, then you will be asked for credentials.

Limiting access to certain roles

Ok, that works but you need to give host credentials to any person needing to use your webservice. To avoid that you can replace [RequireHost] by [DnnAuthorize(StaticRoles="Administrators")] which will limit access to administrators. Better but you still need to give them an admin account. So the easy way to give only limited access would be to create a new role in DotNetNuke just for your web service and replace Administrators by that specific role name in the authentication parameter.

Using HttpPost : (answer to a comment down bellow)

To answer Massod comment bellow, it is almost the same thing but you need to create an object to contain the posted data.
Let's make a simple ping that uses POST, first we need to create an object that will contain the posted data such as:

Then we create the service method something like this:

Note that normally, a post would only return ok and no message, I am just doing this so we can test here.

Now since this is a POST verb, we can't test it by only using url parameters, we need to make an html file with a form to test it out. It would be someting like this:

The important thing to not here is that you can't just create your POST method taking a string even if this is only what you need, you do need to create an object that will take your parameters.
Also don't forget that this is only for testing, you usually don't want to make this publicly available, you would normally use another parameter than [AllowAnonymous] such as  [DnnModuleAuthorize(AccessLevel = SecurityAccessLevel.View)] and [ValidateAntiForgeryToken] unless you really want that to be public.
Let me know if you have any more questions.



DotNetNuke 7.3 Hosting - ASPHostPortal.com :: How to Navigate to Another Page from DotNetNuke Custom Module

clock Desember 8, 2014 07:43 by author Dan

Today, we will explain about Navigating to Another Page from DotNetNuke Custom Module. In a few circumstances, there is a prerequisite to add usefulness that permits clients to explore from one page then onto the next in Dotnetnuke Custom Module. For instance, in the event that you have a custom module called "Register" and the client has successfully registered, you may need to explore the client to an alternate page to view client login detail where an alternate custom module as of now been included request to view login client detail.

In Dotnetnuke module we require the Tab Id of the page so as to explore to an alternate page.So to attain this we can include a dropdown field in Edit page of our custom module(register) to demonstrate all the accessible Tab/ Page names of DNN site where client can choose the Page name to redirect which  inside keeps the Tab Id as quality. Then, we can utilize that Tab Id value as a part of request to explore to other page.

[Code in C#]

EditRegister.ascx

//Adding a Dropdown field in EditRegister.ascx page to allow admin or host to select the redirect page name
<asp:DropDownList ID="ddlTabNames" runat="server"></asp:DropDownList>

EditRegister.ascx.cs

//Adding available page names to the dropdown using object of TabController
if (Page.IsPostBack == false)
{
       DotNetNuke.Entities.Tabs.TabController objTabController = new DotNetNuke.Entities.Tabs.TabController();
 
        ArrayList arrlTabs = null;
        arrlTabs = objTabController.GetTabs(this.PortalId);

        string strKey = string.Empty;
        string strValue = string.Empty;

        ddlTabNames.Items.Clear();
 
       //Get the tabname and tabid of each tabs or page using object of TabInfo and added to dropdownlist field
        foreach (Entities.Tabs.TabInfo objTab in arrlTabs)
        {
            strKey = objTab.TabName;
            strValue = objTab.TabID.ToString();

            ddlTabNames.Items.Add(new ListItem(strKey, strValue));
        }
}

       //Using ModuleControler object we need to save selected Page TabId in module specific variable
        ModuleController objController = new ModuleController();
        objController.UpdateModuleSetting(this.ModuleId, "TabID", ddlTabNames.SelectedValue);

ViewRegister.ascx.cs

       Now From custom module view page we can redirect to another Page or Tab of DNN website using following code

       //Get the selected TabId
       int iProfileTabId = Convert.ToInt32(Settings["TabID"]);

       //Redirect to selected Page
        this.Response.Redirect(Globals.NavigateURL(iProfileTabId), true);



About ASPHostPortal.com

We’re a company that works differently to most. Value is what we output and help our customers achieve, not how much money we put in the bank. It’s not because we are altruistic. It’s based on an even simpler principle. "Do good things, and good things will come to you".

Success for us is something that is continually experienced, not something that is reached. For us it is all about the experience – more than the journey. Life is a continual experience. We see the Internet as being an incredible amplifier to the experience of life for all of us. It can help humanity come together to explode in knowledge exploration and discussion. It is continual enlightenment of new ideas, experiences, and passions

Author Link


 photo ahp banner aspnet-01_zps87l92lcl.png

Corporate Address (Location)

ASPHostPortal
170 W 56th Street, Suite 121
New York, NY 10019
United States

Tag cloud

Sign in