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 :: 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 :: How to Generate A Single Package for Skin and Container

clock Januarie 27, 2015 06:45 by author Ben

When I visited the download web page to produce positive downloads are functioning fine, I noticed that skin package is getting far more downloads than container package's download. That is why this query comes to my head.



The idea behind producing a single package is always to make sure newbies may also set up the package appropriately, and after they evaluate the skin. So, I've decided to add two things:

  1. Develop single package for skin and containers.
  2. Generate a web page template (or could be portal template not positive) that may be employed to view the demo.


So, appropriate now I am going to talk about about how I've produced a single package for skin and container. and you have to wait for next post to know how to generate page template that could demonstrate the skin.

Just before starting to manually do the following measures, I've tried discovering if there's an automated method to do this, and currently created a question in dnn skinning forum. Following are manual steps to merge two different skin and container packages to single 1.

  1. Create separate packages for skin and containers using Create Package Wizard.
  2. Copy the packages from dnn's Install folder to a new folder.
  3. Create a New folder called Package and paste all files of skins and containers to a package folder.
  4. Make sure you don't have common name for any file in skin/container's package. Otherwise step 3 will overwrite it.
  5. Open container's .dnn file and copy following section:
    <package name="Multiflex5.4" type="Container" version="0.0.4">
    ...
    </package>
  6. Open .dnn file for skin and paste the it before </packages> tag.
  7. Remove .dnn file for container
  8. Press Cnrl + A to select all files, right click > Send To > Compressed (Zipped) folder
  9. Rename the newly created Zip file to your desired name.
  10. Test it by installing it to new instance of DNN (or change the skin and container names to install it to the existing installation)

Hope this will be helpfull

Best Recommended DotNetNuke Hosting

ASPHostPortal.com
ASPHostPortal.com is the leading provider of Windows hosting and affordable DotNetNuke Hosting. DotNetNuke Hosting from ASPHostPortal.com provides a safe, reliable and performance-driven foundation for your DotNetNuke website. DotNetNuke is the perfect Content Management System for managing and developing your website with one of ASPHostPortal’s Hosting plans. ASPHostPortal has ability to support the latest Microsoft and ASP.NET technology, 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 guarantees the highest quality product, top security, and unshakeable reliability, carefully chose high-quality servers, networking, and infrastructure equipment to ensure the utmost reliability.




DotNetNuke Hosting - ASPHostPortal.com :: What Exactly is Module Definition?

clock Januarie 23, 2015 05:59 by author Ben

What's Module Definition?

A Module must have at the least 1 definition in an effort to show the default view handle in module. Far more more than, Module is collection of module definitions, that contains group of controls (View, Edit, Settings). When a module is installed towards the tab, each of the definitions are installed to it and default or view controls from all the definition is visible for the tab.


But why do I require it?

If you desire to display your module views in diverse panes!

I don't get you!

Well what will you do for those who have a two column layout (skin) and also you are asked to show recent posts within the side bar pane and recent comments at the bottom of content pane?

I'll produce two diverse modules!

No, that's not a proper method to do it! Module definitions are simply to do that kind of factors. Making two different module and after that producing a module package for both of them and installing them individually just isn't an effective way. Logically, your current posts' view and current comments are element of the weblog module and by installing blog module you'll be capable of install both of them in any pane of skin you need.

Ok, But I can just add the current comments in the bottom of my posts within the ascx handle, why do I develop a separate view for it?

Nicely, what if client ask you to move it to sidebar? separating the issues will allow client to complete it him self!

Oh I see! So, I have to create two view controls inside the module and just generate two separate definitions for each of them.

Proper. That's the right strategy to do it.

Ok, and what If I need to add "New Post" link to both on the module definitions?

Nicely, it is possible to generate a single edit sort of manage and also you have to add the control's link to both in the view controls and add the edit control to both definitions. But note that in case you are using module id this may not perform. Module ID for both of them is going to be various.

[But most of the time, you'll not do that in DNN, you'll location edit hyperlink for the view that is most relevant.]

And what about settings, can I share settings of module between them?

Nop, you cannot share it. installing every single definition will generate a new module id. and settings are stored by module id so technically, you do not have facility to complete this by design and style. That tends to make sense, For instance, if you want to show unapproved comment's list to the blog owner, and modify the setting for that definition, that will not influence the weblog list and current post list.

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 :: Custom Profile Properties Cannot Be Chosen for Custom Registration Type (DNN 7)

clock Januarie 20, 2015 05:43 by author Ben

DNN 7 makes it possible for customization on the registration kind by way of an easy interface, with intellisense. You simply choose "Custom" for Registration Type Type in Admin - Site Settings - User Account Settings tab and also you can add all of the fields you prefer to your registration form.

In the moment of writing, this doesn't appear to function nicely with custom registration properties (i.e. fields you might have designed oneself by way of the "Profile Settings - Add New Profile Home button beneath on the same tab). If you try and kind a custom property's name around the Registration Fields box, it just will not come up (despite the fact that it's been reported that properties of datatype "Text" do come up).

In an effort to make these properties obtainable for your registration type until a repair is applied to this, you are able to use SSMS (supplied which you have access and knowledge using it) and do the following:

  • Go to your DNN database
  • Open the "PortalSettings" table for edit and find the record which has the worth "Registration_RegistrationFields" in the "SettingName" field
  • You will see that the "SettingValue" field is really a comma-delimited list containing the field aliases of the properties that are to become displayed on the custom registration form. Add the aliases of the own fields within the list.
  • Update the table and visit your DNN installation (as the Host user), and click on Tools - Clear Cache
  • If every thing goes nicely, you will see that the "Registration Fields" box now contains your properties too, and they'll appear generally on the registration form.


An additional approach to do that would be to use the Host - SQL section on your DNN installation. To find out the present profile properties that are displayed on the custom registration type, sort this in to the Script box and click "Run Script":

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


In order to add one or more fields at the end of the list, you must run something like this (where 'MyField' is your custom field's alias). Remember the comma and use 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 "Registration Fields" box in the Admin - Site Settings - User Account Settings tab.

If you still need more power and customization with your custom registration page, take a look at the Dynamic Registration module from Datasprings - at the moment of writing this, version 5.0 has just been released for DNN 7.x.
 
Standard disclaimer: When you do stuff like the above on your database, you do it at your own risk, and I have no responsibility should you damage your database, your computer, or the universe. Always have a backup handy! :)

Until next time!

Best DotNetNuke Hosting Recommendation

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 every website and software hosted is so secured and performs at the best possible level.



DotNetNuke Hosting - ASPHostPortal.com :: jQuery Tips for DotNetNuke Developers

clock Januarie 16, 2015 05:51 by author Ben

Make sure you call jQuery.noConflict();. This is necessary to not cause other client scripts and libraries to run errors. This is due to the fact that other client scripts might be using the $ designator for a JavaScript class. [jQuery.noConflict(); documentation]


If manually adding jQuery, try to load the jQuery library in the header before all others. Not doing this can lead to the jQuerylibrary not being loaded before another client script or library tries to use it. This is especially true of jQuery plugins.

Always call the jQuery core methods using the jQuery() format. This is related to the previous issue.

Check the jQuery plugin source code. Not all jQuery plugins use the long form of calling jQuery. This can result in errors if you have called jQuery.noConflict();.

In DNN 7+, register jQuery. DNN 7+ allows module developers to register jQuery to be loaded only when modules need it. Just callDotNetNuke.Framework.jQuery.RequestRegistration(). This prevents jQuery from being loaded when it’s not used. If your skin is using widgets, this is not necessary, but should be done for commercial modules regardless.

Use the jQuery hosted option. Look in the Host Settings (DNN 7). This is not necessary, but can reduce page load times, since the site visitor may already have the library loaded in case. However, if the hosted source is having problems hosting the library, your page load times could increase dramatically, as well as not load the library at all. Either way, your client side-code will break.

Only use jQuery Debug Version for debugging. Look in Host Settings (DNN 5). By default, DNN loads the jquery.min.js file. However, when you are debugging jQuery, this makes it nearly impossible to debug. Check this setting to tell DNN to load the uncompressed version of the jQuery library. Only do this on development machines, if possible.


Wrap onload scripts in a ready() function. Wrapping your scripts in the ready() function prevents conflicts with other scripts on the page, including Microsoft scripts, and the DNN Client API.

Best DotNetNuke Hosting Recommendation

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 - 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 - ASPHostPortal.com :: Using Master Pages and ASPX Pages in DNN

clock Januarie 9, 2015 11:06 by author Ben

In this post, we are going to see how we can add new aspx pages in DotNetNuke by re-using the existing skin designs to implement some helpfull programming in it.

Why?

If you are running a multi-portal dnn website and want to build some common pages to share between those portals, there are couple of quick ways to do that.

  • Create a new tab in portal 0 and then share link in all other portals.
  • This technique works fine when you want to show "how to" page or help page, static contents or offers related pages. You don't need any custom coding for this and it will be a matter of adding a text html module and paste the html that you designed!
  • Create a new aspx page and share link in all other portals. Well, this one also looks similar to first option but let's think about this: If you are running a multi-portal dnn site and want to show latest offers from all the portals into a page based on user's country, and users having at least 5 orders in history. Now, this will involve some quick coding to do. So, basically, if you want to show content based on some dynamic parameters like user or portal data or similar data, it will be good to create an aspx page.

There is another option! obviously you can create a new module to do this, but remember that we are not doing anything that depends on moduleId or tabId but depends on UserId or PortalId, so I believe it's a quick way to create a new page in place of building an entire dnn module.

How?

  • Create a new theme
    Create a new theme with the name of your skin and paste your skin's css and images into it.
  • Create a new master page
    Create a new master page and paste your skin's ascx control's entire markup over there. Replace all your content pane (i.e. div or tds with runat=server) with CotentPlace holder
  • Create a new page
    • Add a new aspx page called Default2.aspx and select the new master page when creating it.
    • Go to .aspx.vb file and make your parial page class inherit from DotNetNuke.Framework.PageBase in place of System.Web.UI.Page 
    • And that's it you are ready to go!

Conclusion

It is really easy to add a new aspx page in dnn that is re-using skin and you will be able to access all the information like PortalSettings, UserInfo etc. Things like Tab and Module will not be there and it's obvious! This post doesn't say you should create a new aspx page in some cases or not, but demonstrates how to do it if you want. If you have some good examples WHEN we can use it or some good examples WHEN we should NOT use it, I welcome them!

This example will probably work with dnn 4.x, 5.x, 7.x, though I've used this in dnn 5.2.0 and 7.3.4.

 



DotNetNuke Hosting with ASPHostPortal.com :: Customizing DNN 7 Search and Search Results

clock Januarie 6, 2015 05:38 by author Ben

DNN 7 has introduced a brand new, Lucene-powered indexing and search results retrieval mechanism. This implies that all strategies you knew are not in impact any more. No much more SQL queries and/or tables, information get returned in JSON format and rendered via Javascript.

This adds a whole lot of new functionality but additionally a great deal of limitations inside the way Search Benefits are presented. Actually, there in no way was a simple method to customize Search Outcomes, but until now you might just edit SearchResults.ascx and its corresponding code-behind file and have your preferred result.

 


Things are still ugly regarding customization. The default Search Results layout includes a hyperlink guiding you to sophisticated search concepts, an "Advanced" type that asks you to provide a variety of information like exactly where you want to search (categorized by module variety) and so forth.

This does not constantly make sense to finish customers, and some components need to be removed in certain scenarios. Customers don't always want advanced search possibilities, nor do they ought to know what type of modules your website includes. In some instances they do not give a damn regarding the author, or the last modified date too. But there is no immediate approach to configure what is going to be displayed and what is going to be not.

Additionally, till now you might face the issue of default module titles (which customers normally leave as is since they're making use of containers that didn't incorporate the module title) by tweaking the way module titles have been inserted in the SearchItem table (see this older post for a lot more). Because no SQL tables are employed any more, you happen to be left with ugly "Text/HTML" and other default titles in Search Outcomes. The JSON returned for each and every search result item just consists of a title that's typically created of a concatenation from the tab's name as well as the module's title (or, inside the case of grouped outcomes, just the module's title).

Furthermore, getting a module having a BLANK title is no longer an selection considering that modules with blank titles will not be indexed(!).

So le't see how we are able to address all of the above with some modifications on particular files. Be warned that what I am saying here applies to version 7.1 and might or could not be in effect for future DNN versions, at the same time as that those adjustments are not upgrade-proof, which means that should you upgrade your website to a greater DNN version you might shed them. But, it is far better than absolutely nothing. :)

Make sure to get a backup of each of the files you're going to modify in case some thing goes incorrect!

Let's start.

Hiding the "advanced" link
File: dnn.SearchResult.js
Location: DesktopModules\Admin\SearchResults

Go to line 343, you will see a call to the DnnSearchBox like the following

 dnn.searchResult.searchInput = $('#dnnSearchResult_dnnSearchBox').dnnSearchBox({
           id: 'dnnSearchResult_dnnSearchBox',
           filterText: dnn.searchResult.defaultSettings.advancedText,
           showAdvanced: true,
           advancedId: 'dnnSearchResultAdvancedForm',

Locate this line:

showAdvanced: true,

And change it to

showAdvanced: false,

This is an option that you can't access via the module settings and it hides the "advanced" link. Unfortunately, the form that would pop up will still be visible at the bottom of the page so you have to take an extra step:

File: SearchResults.ascx
Location: DesktopModules\Admin\SearchResults

Go to around line 55 and you'll see a DIV element surrounding the elements of the Advanced form, like the following:

    <div id="dnnSearchResultAdvancedForm" class="dnnForm">
        <div class="dnnFormItem">
            <dnn:Label ID="lblAdvancedTags" runat="server" ResourceKey="lblAdvancedTags" />
            <input type="text" id="advancedTagsCtrl" />
        </div>
        <div class="dnnFormItem">

    ...

Add a style="display:none;" attribute to the outer div to hide the whole form.

If you need the advanced form but do not need to show specific controls, you can just skip the steps above, go at this point and just add a style="display:none;" attribute to any of the DIVs nested inside to hide the specific control you don't need (e.g. Scope)

Hide Advanced Tips link

File: dnn.SearchResult.js
Location: DesktopModules\Admin\SearchResults

Go to line 359 (it's empty), just above this piece of code:

$('a.dnnSearchResultAdvancedTip').on('click', function () {
            $('#dnnSearchResult-advancedTipContainer').slideToggle('fast');
            return false;
        });

And insert the following line:

$('a.dnnSearchResultAdvancedTip').hide();

Alternatively, you can achieve the same result by adding a style="display:none;" attribute at the A tag in SearchResults.ascx, line 6:

<a href="javascript:void(0)" class="dnnSearchResultAdvancedTip"><%= LinkAdvancedTipText %></a>

Hide Results by Page / Sort section

File: SearchResults.ascx
Location: DesktopModules\Admin\SearchResults

Go to line 13 and add a style="display:none;" attribute to the outer DIV element there (first element in code snippet below):

<div class="dnnSearchResultPanel">
    <div class="dnnRight">
        <ul class="dnnSearchResultSortOptions">
            <li class="active"><a href="#byRelevance"><%= RelevanceText %></a></li>
            <li><a href="#byDate"><%= DateText %></a></li>...

If you hide this section but you need to specify a different sort order and/or results per page setting, you can alter the Javascript call at the same file, line 116 onwards, by altering the sortOption and pageSize initial values:

$(function () {
        if(typeof dnn != 'undefined' && dnn.searchResult){
            dnn.searchResult.moduleId = <%= ModuleId %>;
            dnn.searchResult.queryOptions = {
                searchTerm: '<%= SearchTerm %>',
                sortOption: 0,
                pageIndex: 1,
                pageSize: 15
            };

sortOption can be 0 for date, 1 for relevance.
pageSize can be anything you need.

Hide various elements on Search Results

Well, some people don't like the "last updated" information. Others don't like the "author" info. So let's see how we get rid of anything we don't need:

File: dnn.SearchResult.js
Location: DesktopModules\Admin\SearchResults

Start from about line 112,where you'll see code like this:

    markup += '<div class="dnnSearchResultItem-Others">';
            markup += '<span>' + dnn.searchResult.defaultSettings.lastModifiedText + ' </span>';
            markup += data.DisplayModifiedTime;
            markup += '</div>';

            markup += '<div class="dnnSearchResultItem-Others">';
            markup += '<span>' + dnn.searchResult.defaultSettings.sourceText + ' </span>';

Comment lines 112 to 115 to get rid of the "last updated" text
Comment lines 117 to 119 to get rid of the "source" text and link
Comment lines 121 to 123 to get rid of author info
Comment lines 126 to 135 to get rid of 'tags" info

Hide default HTML module titles (if any)

As mentioned earlier, you may not want module titles to appear in search results, but they do, even if your container doesn't display the module's title. The most common is "Text/HTML" and we'll see how to get rid of it in Search Results.

File: dnn.SearchResult.js
Location: DesktopModules\Admin\SearchResults

Scroll down to the bottom of the file and append this function at the end:

function fixTitle (s) {
  
    if (s=='Text/HTML') {
        return ('...');
    }
  
    var s1;
    var s2;
  
    s1=s.substring(0,s.indexOf('>')-1);
    s2=s.substring(s.indexOf('>')+2, s.length);
  
    if (s2=='Text/HTML' || s2==s1) {
        return (s1);
    }
    else
    {
        return (s);
    }
}

This function accepts a search result item title and first checks if the title is "Text/HTML". If so, it returns three dots ("...") instead. You will find this in grouped results, where the module title is displayed on its own.

If the title does not belong to a group subset, it'll be in the format "xxx > yyy" where xxx is the page's name and yyy is the module's title. The code breaks the string in its two parts and checks if the second part is equal to "Text/HTML". If so, it returns only the first part (the page's name). Also, if both parts are the same it once more returns the first part. Useful when a module has the same title as the page and you don't want to see this in search results.

This is not the best possible solution, but it's a decent workaround, provided that you don't have the character ">" anywhere in your module titles or page names. I know it can get better, but this is only to demonstrate how you can do it.
 
In order to put our function into effect, we have to go to line 107:

markup += '<a href="' + data.DocumentUrl + '"' + dnn.searchResult.defaultSettings.linkTarget + '>' + data.Title + '</a></div>';

and replace data.Title with fixTitle(data.Title):

markup += '<a href="' + data.DocumentUrl + '"' + dnn.searchResult.defaultSettings.linkTarget + '>' + fixTitle(data.Title) + '</a></div>';

Hide subsets (grouped results)

If, for some reason, you don't want to have any grouped results then you can comment out the code that is generating them. Be adviced that the result that was supposed to be grouped won't display a description underneath, just the title and link.

File: dnn.SearchResult.js
Location: DesktopModules\Admin\SearchResults

Go to line 159 and comment the code there until line 161:

// render subsets
                   for (var j = 0; j < result.Results.length; j++) {
                       markup += '<div class="dnnSearchResultItem-Subset">' + dnn.searchResult.renderResult(result.Results[j]) + '</div>';
                   }

Finally, if you tamper with the way search results are rendered, you may not want to have auto-search (search-as-you-type) get in your way by rendering everything in a different way (e.g. using default text/html module titles). There is no option for disabling it, but we can always hack the code a little more:

File: SearchSkinObjectPreview.js
Location: Resources\search

Go to line 137 and comment out this piece of code (until line 155):

throttle = setTimeout(function() {
                         var service = $.dnnSF ? $.dnnSF(-1) : null;
                         var url = makeUrl(val, service);
                         if (url) {
                             $.ajax({
                                 url: url,
                                 beforeSend: service ? service.setModuleHeaders : null,
                                 success: function(result) {
                                     if (result)
                                         generatePreviewTemplate(result);
                                 },
                                 error: function() {
                                 },
                                 type: 'GET',
                                 dataType: 'json',
                                 contentType: "application/json"
                             });
                         }
                     }, self.settings.delayTriggerAutoSearch);

This will prevent the Search skin object from auto-searching.

Well, that's all! Even if line numbers change with an upgrade, you have a reference point on what to seek in code. I know this is not the prettiest or the most accurate and bullet-proof solution in the world, but until DNN Corp.




DotNetNuke Hosting with ASPHostPortal.com :: Integration of WSDL to DNN Modules

clock Desember 19, 2014 05:55 by author Ben

I had been functioning with DNN for a long time, Believed this weblog could help other DNN develops. There are two approaches to Contain WSDL files into a DNN module. Service Reference and Web Reference.
Right here I will discussing about Web References.

So to Contain them into DNN initial Correct Click On References within your Project Solution
References -> Add Service Reference -> Advanced(Left bottom Corner) -> Add Web Reference.

Paste your WSDL link towards the URL

Once you hit Add Reference button, Visual Studio will update the Web.config at the Module level.
But need to delete the Module Level Config files.
But Dont forget to take a backup of it, If anything goes wrong

And Set few parameters at Site level web.config file



Remember If you Creating DNN module package and your module uses any kind of SOAP services.
You ought to add parameters to Target Site’s Config file otherwise the site may not work.

Happy Coding



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