Global Internet Business Solutions https://gibs.com RSS feeds for Global Internet Business Solutions 60 https://gibs.com/Support/Knowledge-Base/ID/24103/How_To_Clear_All_Containers_And_Themes_From_Pages_And_Modules_In_DNN#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24103 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24103&PortalID=1&TabID=292 How To Clear All Containers And Themes From Pages And Modules In DNN https://gibs.com/Support/Knowledge-Base/ID/24103/How_To_Clear_All_Containers_And_Themes_From_Pages_And_Modules_In_DNN Clear all page level skins in a Portal update {databaseOwner}{objectQualifier}Tabs set skinsrc=null where SkinSrc is not null and PortalID=0 &nbsp; Clear all page level containers in a Portal update {databaseOwner}{objectQualifier}tabs set containersrc=null where containersrc is not null and PortalID=0 &nbsp; Clear all module level containers in a Portal update {databaseOwner}{objectQualifier}TabModules set ContainerSrc = null where TabModuleID in (select TabModuleId &nbsp;&nbsp;&nbsp; from {databaseOwner}{objectQualifier}TabModules tm &nbsp;&nbsp;&nbsp; join {databaseOwner}{objectQualifier}Modules m &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on (tm.ModuleID = m.ModuleID) &nbsp;&nbsp;&nbsp; where ContainerSrc is not null &nbsp;&nbsp;&nbsp; and m.PortalId=0) DNN Expert Tue, 20 Feb 2024 20:06:00 GMT f1397696-738c-4295-afcd-943feb885714:24103 https://gibs.com/Support/Knowledge-Base/ID/24102/QR_Code_Generator#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24102 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24102&PortalID=1&TabID=292 QR Code Generator https://gibs.com/Support/Knowledge-Base/ID/24102/QR_Code_Generator Great site for generating QR Codes . . .&nbsp;&nbsp;QRCode Monkey - The free QR Code Generator to create custom QR Codes with Logo (qrcode-monkey.com) DNN Expert Mon, 15 Jan 2024 20:32:00 GMT f1397696-738c-4295-afcd-943feb885714:24102 https://gibs.com/Support/Knowledge-Base/ID/24101/C_Rotating_JPG_Image#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24101 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24101&PortalID=1&TabID=292 C# Rotating JPG Image https://gibs.com/Support/Knowledge-Base/ID/24101/C_Rotating_JPG_Image Tested QualityLevel at 90 then 100; image quality results same, but with larger file size than QualityLevel 80. QualityLevel 90 reduced file size to 1.7Mb, and oddly QualityLevel 100 increased file size to 6.3Mb. ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici = null; foreach (ImageCodecInfo codec in codecs) { if (codec.MimeType == &quot;image/jpeg&quot;) ici = codec; } EncoderParameters ep = new EncoderParameters(); ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)100); originalImage.Save(f.FullName.ToString(), ici, ep); DNN Expert Tue, 28 Nov 2023 14:31:00 GMT f1397696-738c-4295-afcd-943feb885714:24101 https://gibs.com/Support/Knowledge-Base/ID/24100/Ticker_Tape#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24100 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24100&PortalID=1&TabID=292 Ticker Tape https://gibs.com/Support/Knowledge-Base/ID/24100/Ticker_Tape <div class="ticker-wrap"> <div class="ticker-heading">Fort Lauderdale</div> <div class="ticker">      <div class="ticker__item">Date: 04/30/2022 6:00 AM</div>   <div class="ticker__item">[MONTHS] months!</div>   <div class="ticker__item">[WEEKS] weeks!</div>     <div class="ticker__item">[DAYS] days!</div>       <div class="ticker__item">[HOURS] hours!</div>         <div class="ticker__item">[MINUTES] minutes!</div>           <div class="ticker__item">[SECONDS] seconds!</div>              </div> </div> CSS @-webkit-keyframes ticker {   0% {     -webkit-transform: translate3d(0, 0, 0);     transform: translate3d(0, 0, 0);     visibility: visible;   }   100% {     -webkit-transform: translate3d(-100%, 0, 0);     transform: translate3d(-100%, 0, 0);   } } @keyframes ticker {   0% {     -webkit-transform: translate3d(0, 0, 0);     transform: translate3d(0, 0, 0);     visibility: visible;   }   100% {     -webkit-transform: translate3d(-100%, 0, 0);     transform: translate3d(-100%, 0, 0);     max-width: 1120px;   } } .ticker-heading {   position: absolute;   background: #000099;   display: block;   left: 0;   top: 0;   height: 2.9rem;   padding: 11px 40px;   z-index: 2;   color: white;   text-transform: uppercase;   font-size: 1.175rem; }   .ticker-wrap .ticker__item:before {   content: "";   height: 11px;   width: 11px;   display: inline-block;   background-color: #1074bc;   border-radius: 100%;   position: relative;   margin-right: 15px; }   .ticker-heading:after {   content: "";   width: 0;   height: 0;   border-top: 8px solid transparent;   border-bottom: 8px solid transparent;   border-left: 11px solid #000099;   position: absolute;   margin-left: 40px; }   .ticker-wrap {   position: relative;   bottom: 0;   width: 100%;   overflow: hidden;   height: 2.9rem;   background-color: #f9f9f9;   padding-left: 100%;   box-sizing: content-box; } .ticker-wrap .ticker:hover {   -webkit-animation-play-state: paused;   -moz-animation-play-state: paused;   -ms-animation-play-state: paused;   -o-animation-play-state: paused;   animation-play-state: paused; } .ticker-wrap .ticker {   display: inline-block;   height: 2.6rem;   line-height: 2.5rem;   white-space: nowrap;   padding-right: 100%;   box-sizing: content-box;   -webkit-animation-iteration-count: infinite;   animation-iteration-count: infinite;   -webkit-animation-timing-function: linear;   animation-timing-function: linear;   -webkit-animation-name: ticker;   animation-name: ticker;   -webkit-animation-duration: 30s;   animation-duration: 30s; } .ticker-wrap .ticker__item {   display: inline-block;   padding: 0 2rem;   font-size: 1.175rem;   color: #454545; }       DNN Expert Tue, 31 May 2022 14:17:00 GMT f1397696-738c-4295-afcd-943feb885714:24100 https://gibs.com/Support/Knowledge-Base/ID/24099/Optional_Telerik_Removal_Steps#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24099 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24099&PortalID=1&TabID=292 Optional Telerik Removal Steps https://gibs.com/Support/Knowledge-Base/ID/24099/Optional_Telerik_Removal_Steps Noteworthy Changes in v9.8.0+ - Optional Telerik Removal The major highlight for this release is that we removed all our dependencies on the Telerik library. In oder to not make this a breaking change, we do leave Telerik removal as a manual option until v10. The main component that still relied on Telerik where Site Assets and Global assets which used Digital Assets Manager. We ship with v9.8.0 a new file manager that has no dependencies on Telerik but it is not installed by default to not break existing sites upon upgrades. Please note that it will be automatically replaced in v10, so please test and plan accordingly. To identify any third-party extension(s) that depend on Telerik, our very own&nbsp;@mitchelsellers&nbsp;has published the&nbsp;DNN Telerik Identifier module&nbsp;which you can download and install to to find assemblies that reference Telerik. Carefully review the results from this module to determine if your website is ready for full removal of Telerik. For any third-party modules that depend on Telerik, you should contact the module vendor/developer before following the steps below. If you would like to remove Telerik in DNN 9.8.0 following are the steps to do so. Again, proceed with caution based on your findings using the&nbsp;DNN Telerik Identifier&nbsp;module above, as performing these steps may also break third-party extensions that depend on Telerik. We recommend you contact the developer/vendor in these cases for further guidance. Create a full backup of the site and database. Install the new&nbsp;Resource Manager&nbsp;module via&nbsp;Extensions &gt; Available Extensions (Modules). Navigate to&nbsp;Manage &gt; Site Assets&nbsp;via the&nbsp;Persona Bar&nbsp;and remove the&nbsp;Digital Assets Management&nbsp;module from the page. Add an instance of the&nbsp;Resource Manager&nbsp;module to the&nbsp;Site Assets&nbsp;page. Navigate to&nbsp;Manage &gt; Global Assets&nbsp;via the&nbsp;Persona Bar&nbsp;and repeat&nbsp;Steps 3 &amp; 4&nbsp;for that page. Navigate to&nbsp;Settings &gt; SQL Console&nbsp;via the&nbsp;Persona Bar&nbsp;and run the following script: UPDATE {databaseOwner}{objectQualifier}Packages SET IsSystemPackage = 0 WHERE Name IN (&#39;DigitalAssetsManagement&#39;, &#39;DotNetNuke.Telerik.Web&#39;, &#39;DotNetNuke.Web.Deprecated&#39;, &#39;DotNetNuke.Website.Deprecated&#39;) GO DELETE FROM {databaseOwner}{objectQualifier}PackageDependencies WHERE (PackageName = &#39;DotNetNuke.Web.Deprecated&#39;) GO UPDATE {databaseOwner}[{objectQualifier}Lists] SET Text = &#39;DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls.DateEditControl, DotNetNuke.Web&#39; WHERE ListName = &#39;DataType&#39; AND Value = &#39;Date&#39; GO UPDATE {databaseOwner}[{objectQualifier}Lists] SET Text = &#39;DotNetNuke.Web.UI.WebControls.Internal.PropertyEditorControls.DateTimeEditControl, DotNetNuke.Web&#39; WHERE ListName = &#39;DataType&#39; AND Value = &#39;DateTime&#39; GO Navigate to&nbsp;Settings &gt; Servers&nbsp;in the&nbsp;Persona Bar&nbsp;and click the&nbsp;Clear Cache&nbsp;button in the top-right corner. Navigate to&nbsp;Settings &gt; Extensions (Modules)&nbsp;in the&nbsp;Persona Bar&nbsp;and uninstall the&nbsp;Digital Assets Management&nbsp;extension. Be sure to check the&nbsp;Delete Files&nbsp;checkbox. Navigate to&nbsp;Settings &gt; Extensions (Libraries)&nbsp;in the&nbsp;Persona Bar&nbsp;and uninstall the&nbsp;DotNetNuke Telerik Web Components&nbsp;extension. Be sure to check the&nbsp;Delete Files&nbsp;checkbox. Navigate to&nbsp;Settings &gt; Extensions (Libraries)&nbsp;in the&nbsp;Persona Bar&nbsp;and uninstall the&nbsp;DNN Deprecated Web Controls Library&nbsp;extension. Be sure to check the&nbsp;Delete Files&nbsp;checkbox. Navigate to&nbsp;Settings &gt; Extensions (Libraries)&nbsp;in the&nbsp;Persona Bar&nbsp;and uninstall the&nbsp;DotNetNuke Deprecated Website Codebehind files&nbsp;extension. Be sure to check the&nbsp;Delete Files&nbsp;checkbox. Open the&nbsp;web.config&nbsp;file within the site root and search for &quot;Telerik&quot;. Delete any lines that reference it. Test all third-party modules to make sure they still work without Telerik. If any do not work properly, please contact the developer/vendor for further guidance. DNN Expert Fri, 26 Feb 2021 18:46:00 GMT f1397696-738c-4295-afcd-943feb885714:24099 https://gibs.com/Support/Knowledge-Base/ID/24098/SQL_Function_to_Lookup_DNN_Profile_Values#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24098 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24098&PortalID=1&TabID=292 SQL Function to Lookup DNN Profile Values https://gibs.com/Support/Knowledge-Base/ID/24098/SQL_Function_to_Lookup_DNN_Profile_Values CREATE FUNCTION GIBS_GetProfileElement ( @userID as int, @portalID as int, @ProfilePropertyName as nvarchar(100) ) RETURNS nvarchar(4000) AS BEGIN -- If input is invalid, return null. IF @ProfilePropertyName IS NULL OR LEN(@ProfilePropertyName) = 0 OR @userID IS NULL OR @userID < 1 RETURN NULL DECLARE @PropertyValue AS NVARCHAR(400) SET @PropertyValue = ( SELECT UserProfile.PropertyValue FROM (Users INNER JOIN UserProfile ON Users.UserID = UserProfile.UserID) INNER JOIN ProfilePropertyDefinition ON UserProfile.PropertyDefinitionID = ProfilePropertyDefinition.PropertyDefinitionID WHERE (((Users.UserID)=@userID) AND ((ProfilePropertyDefinition.PropertyName)=@ProfilePropertyName) AND ProfilePropertyDefinition.PortalID = @portalID) ) RETURN @PropertyValue END DNN Expert Mon, 01 Feb 2021 20:20:00 GMT f1397696-738c-4295-afcd-943feb885714:24098 https://gibs.com/Support/Knowledge-Base/ID/24097/Cant_connect_to_shared_network_drive#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24097 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24097&PortalID=1&TabID=292 Can't connect to shared network drive https://gibs.com/Support/Knowledge-Base/ID/24097/Cant_connect_to_shared_network_drive After the last Windows 10 update (1803), our five Windows 10 Pro computers which are in a WORKGROUP local network (no domain) keep loosing their connection to two shared network drives on one of the computers.&nbsp; Usually by restarting their computer (sometimes multiple times) they can see the shared drives.&nbsp; Also, the following steps almost always fix the problem but again it only lasts for a day or two or sometimes a few hours. Close all running programs. Click on Start Menu and then rt-click on This PC and choose Properties.&nbsp;&nbsp; Click on &ldquo;Advanced System Settings&rdquo; on the left side of the window. Click on Computer Name tab. Click on Network ID button. Accept the default of &ldquo;This computer is part of a business network&rdquo;. Click on the Next button. Change the setting to &ldquo;My computer uses a network&nbsp;without&nbsp;a domain&rdquo;. Accept the default workgroup name of &ldquo;WORKGROUP&rdquo;. Click on Next button. Click on Finish button. Click on OK. Restart the computer. DNN Expert Fri, 11 Dec 2020 13:46:00 GMT f1397696-738c-4295-afcd-943feb885714:24097 https://gibs.com/Support/Knowledge-Base/ID/24096/Getting_Eastern_Standard_Time_from_Azure_SQL#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24096 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24096&PortalID=1&TabID=292 Getting Eastern Standard Time from Azure SQL https://gibs.com/Support/Knowledge-Base/ID/24096/Getting_Eastern_Standard_Time_from_Azure_SQL Declare @todays_date Date set @todays_date = CAST(SYSDATETIMEOFFSET() AT TIME ZONE &#39;Eastern Standard Time&#39; AS date) For example, if you want the current date and time as a datetime value like GETDATE() does, do this: CAST(SYSDATETIMEOFFSET() AT TIME ZONE &#39;Eastern Standard Time&#39; AS datetime) If you want the current date and time as a datetime2 value like SYSDATETIME() does, do this: CAST(SYSDATETIMEOFFSET() AT TIME ZONE &#39;Eastern Standard Time&#39; AS datetime2) And if you just want the current date, you can do this: CAST(SYSDATETIMEOFFSET() AT TIME ZONE &#39;Eastern Standard Time&#39; AS date) DNN Expert Tue, 03 Nov 2020 16:20:00 GMT f1397696-738c-4295-afcd-943feb885714:24096 https://gibs.com/Support/Knowledge-Base/ID/19254/Initializing_a_NotificationController_in_DNN_9#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=19254 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=19254&PortalID=1&TabID=292 Initializing a NotificationController in DNN 9 https://gibs.com/Support/Knowledge-Base/ID/19254/Initializing_a_NotificationController_in_DNN_9 You can use NotificationsController.Instance.SendNotification method to send notifications. Here is an example: &nbsp; public void AddHtmlNotification(string subject, string body) { UserInfo _currentUser = DotNetNuke.Entities.Users.UserController.GetUserById(this.PortalId, PortalSettings.AdministratorId); var notificationType = NotificationsController.Instance.GetNotificationType(&quot;HtmlNotification&quot;); // NEED THE PORTALID HERE AND AGENTID var sender = UserController.GetUserById(this.PortalId, this.UserId); var notification = new Notification { NotificationTypeID = notificationType.NotificationTypeId, Subject = subject, Body = body, IncludeDismissAction = true, SenderUserID = sender.UserID }; NotificationsController.Instance.SendNotification(notification, this.PortalId, null, new List { _currentUser }); } &nbsp; DNN Expert Wed, 21 Oct 2020 11:28:00 GMT f1397696-738c-4295-afcd-943feb885714:19254 https://gibs.com/Support/Knowledge-Base/ID/24095/Azure_Blob_Storage_Task_TLS_12_Windows_Server_2016_Datacenter#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24095 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24095&PortalID=1&TabID=292 Azure Blob Storage Task TLS 1.2 Windows Server 2016 Datacenter https://gibs.com/Support/Knowledge-Base/ID/24095/Azure_Blob_Storage_Task_TLS_12_Windows_Server_2016_Datacenter Fix for Blob Storage Task failing due to: Microsoft.WindowsAzure.Storage.StorageException,Message=The remote server returned an error: (400) Bad Request.,Source=Microsoft.WindowsAzure.Storage,StorageExtendedMessage=The TLS version of the connection is not permitted on this storage account. Add a system-wide registry key (e.g. via group policy) to any machine that needs to make TLS 1.2 connections from a .NET app. This will cause .NET to use the &quot;System Default&quot; TLS versions which adds TLS 1.2 as an available protocol AND it will allow the scripts to use future TLS Versions when the OS supports them. (e.g. TLS 1.3) For 64 bit OS use first key, 32 bit use second . . .&nbsp; reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64 reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32 DNN Expert Wed, 21 Oct 2020 09:24:00 GMT f1397696-738c-4295-afcd-943feb885714:24095 https://gibs.com/Support/Knowledge-Base/ID/24094/Show_Custom_DNN_Error_Message#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24094 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24094&PortalID=1&TabID=292 Show Custom DNN Error Message https://gibs.com/Support/Knowledge-Base/ID/24094/Show_Custom_DNN_Error_Message // ErrorMessage if (Request.QueryString[&quot;ErrorMessage&quot;] != null) { lblFormMessage.Visible = true; _ErrorMessage = Request.QueryString[&quot;ErrorMessage&quot;].ToString(); lblFormMessage.Text = &quot; " + _ErrorMessage.ToString()+ "&quot;; } DNN Expert Thu, 24 Sep 2020 13:51:00 GMT f1397696-738c-4295-afcd-943feb885714:24094 https://gibs.com/Support/Knowledge-Base/ID/24093/Disable_DNN_Popup_Windows#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24093 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24093&PortalID=1&TabID=292 Disable DNN Popup Windows https://gibs.com/Support/Knowledge-Base/ID/24093/Disable_DNN_Popup_Windows UPDATE PortalSettings SET SettingValue = &#39;False&#39; WHERE SettingName = &#39;EnablePopUps&#39; DNN Expert Wed, 23 Sep 2020 10:19:00 GMT f1397696-738c-4295-afcd-943feb885714:24093 https://gibs.com/Support/Knowledge-Base/ID/24092/GridView_CSS_for_Pagination#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24092 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24092&PortalID=1&TabID=292 GridView CSS for Pagination https://gibs.com/Support/Knowledge-Base/ID/24092/GridView_CSS_for_Pagination <PagerStyle  CssClass="pagination-ys" />  .pagination-ys { /*display: inline-block;*/ padding-left: 0; margin: 20px 0; border-radius: 4px; } .pagination-ys table > tbody > tr > td { display: inline; } .pagination-ys table > tbody > tr > td > a, .pagination-ys table > tbody > tr > td > span { position: relative; float: left; padding: 8px 12px; line-height: 1.42857143; text-decoration: none; color: #dd4814; background-color: #ffffff; border: 1px solid #dddddd; margin-left: -1px; } .pagination-ys table > tbody > tr > td > span { position: relative; float: left; padding: 8px 12px; line-height: 1.42857143; text-decoration: none; margin-left: -1px; z-index: 2; color: #aea79f; background-color: #f5f5f5; border-color: #dddddd; cursor: default; } .pagination-ys table > tbody > tr > td:first-child > a, .pagination-ys table > tbody > tr > td:first-child > span { margin-left: 0; border-bottom-left-radius: 4px; border-top-left-radius: 4px; } .pagination-ys table > tbody > tr > td:last-child > a, .pagination-ys table > tbody > tr > td:last-child > span { border-bottom-right-radius: 4px; border-top-right-radius: 4px; } .pagination-ys table > tbody > tr > td > a:hover, .pagination-ys table > tbody > tr > td > span:hover, .pagination-ys table > tbody > tr > td > a:focus, .pagination-ys table > tbody > tr > td > span:focus { color: #97310e; background-color: #eeeeee; border-color: #dddddd; } DNN Expert Mon, 27 Jan 2020 16:22:00 GMT f1397696-738c-4295-afcd-943feb885714:24092 https://gibs.com/Support/Knowledge-Base/ID/24091/Create_DNN_List_Using_ListController#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24091 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24091&PortalID=1&TabID=292 Create DNN List Using ListController() https://gibs.com/Support/Knowledge-Base/ID/24091/Create_DNN_List_Using_ListController public void CreateList() { try { //create a placeholder entry - const string listName = &quot;InventoryReportingType&quot;; var listController = new ListController(); var entry = new ListEntryInfo(); { entry.DefinitionID = -1; entry.ParentID = 0; entry.Level = 0; entry.PortalID = this.PortalId; entry.ListName = listName; entry.Value = &quot;USDA&quot;; entry.Text = &quot;USDA&quot;; entry.SystemList = false; entry.SortOrder = 1; } listController.AddListEntry(entry); } catch (Exception ex) { Exceptions.ProcessModuleLoadException(this, ex); } } DNN Expert Mon, 27 Jan 2020 13:52:00 GMT f1397696-738c-4295-afcd-943feb885714:24091 https://gibs.com/Support/Knowledge-Base/ID/24090/Dim_objRoleController_As_New_RoleController#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24090 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24090&PortalID=1&TabID=292 Dim objRoleController As New RoleController https://gibs.com/Support/Knowledge-Base/ID/24090/Dim_objRoleController_As_New_RoleController Dim objRoleController As New RoleController Dim arrRoles As String() = CType(objRoleController.GetUserRoles(Me.PortalId, Me.UserInfo.Username.ToString(), ""), String()) 'objRoleController.GetRolesByUser(Me.UserId, Me.PortalId) For Each role As String In arrRoles  If PortalSecurity.IsInRole(role) Then   objContentInfo = objContentController.Get(Me.ModuleId, role)   If Not (objContentInfo Is Nothing) Then    If (objContentInfo.SettingValue <> "") Then     Dim val As String = Server.HtmlDecode(objContentInfo.SettingValue)     If (Request.IsAuthenticated) Then      val = val.Replace("[FULLNAME]", Me.UserInfo.DisplayName)      val = val.Replace("[USERNAME]", Me.UserInfo.Username)     End If     literal.Text = val     phControls.Controls.Add(literal)     Return    End If   End If  End If Next DNN Expert Sat, 25 Jan 2020 15:11:00 GMT f1397696-738c-4295-afcd-943feb885714:24090 https://gibs.com/Support/Knowledge-Base/ID/24089/DNN_SendMail_Attachments#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24089 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24089&PortalID=1&TabID=292 DNN SendMail Attachments https://gibs.com/Support/Knowledge-Base/ID/24089/DNN_SendMail_Attachments &nbsp;C# declare empty string array for Attachments string[] arr = new string[] {};string[] arr = new string[] {};string[] attachments = new string[] {}; DNN Expert Sat, 25 Jan 2020 14:11:00 GMT f1397696-738c-4295-afcd-943feb885714:24089 https://gibs.com/Support/Knowledge-Base/ID/24088/DNN_Get_User_DisplayName#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24088 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24088&PortalID=1&TabID=292 DNN Get User DisplayName https://gibs.com/Support/Knowledge-Base/ID/24088/DNN_Get_User_DisplayName private string GetDisplayName(int PortalId, int UserId) { &nbsp;&nbsp; &nbsp;string UserDisplayName = &quot;&quot;; &nbsp;&nbsp; &nbsp;DotNetNuke.Entities.Users.UserInfo userInfo = DotNetNuke.Entities.Users.UserController.GetUserById(PortalId, UserId); &nbsp;&nbsp; &nbsp;if (userInfo != null) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;UserDisplayName = userInfo.DisplayName; &nbsp;&nbsp; &nbsp;return UserDisplayName; } &nbsp; DNN Expert Thu, 23 Jan 2020 12:59:00 GMT f1397696-738c-4295-afcd-943feb885714:24088 https://gibs.com/Support/Knowledge-Base/ID/24087/Token_Replacement#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24087 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24087&PortalID=1&TabID=292 Token Replacement https://gibs.com/Support/Knowledge-Base/ID/24087/Token_Replacement public string FixTokens(string _myOriginal, string _myToken, string _myReplacement) { &nbsp;try &nbsp;{ &nbsp;&nbsp;string _ReturnValue = &quot;&quot;; &nbsp;&nbsp;_ReturnValue = _myOriginal.ToString().Replace(_myToken, _myReplacement.ToString()).ToString(); &nbsp;&nbsp;return _ReturnValue; &nbsp;} &nbsp;catch (Exception ex) &nbsp;{ &nbsp;&nbsp;Exceptions.ProcessModuleLoadException(this, ex); &nbsp;&nbsp;return ex.ToString(); &nbsp;} } DNN Expert Wed, 22 Jan 2020 11:44:00 GMT f1397696-738c-4295-afcd-943feb885714:24087 https://gibs.com/Support/Knowledge-Base/ID/24086/Get_DNN_User_Roles_for_Dropdown_List#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24086 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24086&PortalID=1&TabID=292 Get DNN User Roles for Dropdown List https://gibs.com/Support/Knowledge-Base/ID/24086/Get_DNN_User_Roles_for_Dropdown_List public void GetRoles() { &nbsp;DotNetNuke.Security.Roles.RoleController rc = new DotNetNuke.Security.Roles.RoleController(); &nbsp;var myRoles = rc.GetRoles(this.PortalId); &nbsp;//&nbsp; myRoles &nbsp;ddlRoles.DataSource = myRoles; &nbsp;ddlRoles.DataTextField = &quot;RoleName&quot;; &nbsp;ddlRoles.DataValueField = &quot;RoleName&quot;; &nbsp;ddlRoles.DataBind(); &nbsp;// ADD FIRST (NULL) ITEM &nbsp;ListItem item = new ListItem(); &nbsp;item.Text = &quot;-- Select Role to Assign --&quot;; &nbsp;item.Value = &quot;&quot;; &nbsp;ddlRoles.Items.Insert(0, item); &nbsp;// REMOVE DEFAULT ROLES &nbsp;ddlRoles.Items.Remove(&quot;Administrators&quot;); &nbsp;ddlRoles.Items.Remove(&quot;Registered Users&quot;); &nbsp;ddlRoles.Items.Remove(&quot;Subscribers&quot;); &nbsp;// REPORTS ROLE &nbsp;ddlReportsRoles.DataSource = myRoles; &nbsp;ddlReportsRoles.DataBind(); &nbsp;// ADD FIRST (NULL) ITEM &nbsp;ListItem item1 = new ListItem(); &nbsp;item1.Text = &quot;-- Select Role to View Reports --&quot;; &nbsp;item1.Value = &quot;&quot;; &nbsp;ddlReportsRoles.Items.Insert(0, item1); &nbsp;// REMOVE DEFAULT ROLES &nbsp;ddlReportsRoles.Items.Remove(&quot;Administrators&quot;); &nbsp;ddlReportsRoles.Items.Remove(&quot;Registered Users&quot;); &nbsp;ddlReportsRoles.Items.Remove(&quot;Subscribers&quot;); &nbsp;// MERGE ROLE &nbsp;ddlMergeRoles.DataSource = myRoles; &nbsp;ddlMergeRoles.DataBind(); &nbsp;// ADD FIRST (NULL) ITEM &nbsp;item1.Value = &quot;Select Role to Allow Merge&quot;; &nbsp;ddlMergeRoles.Items.Insert(0, item1); &nbsp;// REMOVE DEFAULT ROLES &nbsp;ddlMergeRoles.Items.Remove(&quot;Administrators&quot;); &nbsp;ddlMergeRoles.Items.Remove(&quot;Registered Users&quot;); &nbsp;ddlMergeRoles.Items.Remove(&quot;Subscribers&quot;); } DNN Expert Sun, 19 Jan 2020 13:20:00 GMT f1397696-738c-4295-afcd-943feb885714:24086 https://gibs.com/Support/Knowledge-Base/ID/24085/SSRS_Commonly_Used_DateTime_Functions#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24085 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24085&PortalID=1&TabID=292 SSRS: Commonly Used Date/Time Functions https://gibs.com/Support/Knowledge-Base/ID/24085/SSRS_Commonly_Used_DateTime_Functions The list below is a few simple functions which I&#39;ve come across for generating various dates based on the current date/time (using the Now() function). Last day of the current year, =DateSerial(Year(Now()), 12, 31) Last day of previous month =DateAdd(&quot;&quot;d&quot;&quot;, -1, DateSerial(Year(Now()), Month(Now()), 1)) First date of previous month =DateAdd(&quot;&quot;m&quot;&quot;, -1, DateSerial(Year(Now()), Month(Now()), 1)) First day of last year =DateSerial(Year(Now())-1, 1, 1) Last day of last year =DateSerial(Year(Now())-1, 12, 31) Last day of this year =DateSerial(Year(Now()), 12, 31) First day of this year =DateSerial(Year(Now()), 1, 1) DNN Expert Sun, 19 Jan 2020 11:13:00 GMT f1397696-738c-4295-afcd-943feb885714:24085 https://gibs.com/Support/Knowledge-Base/ID/24084/Enabling_the_File_Upload_Function_in_DNN_CKEditor#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24084 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24084&PortalID=1&TabID=292 Enabling the File Upload Function in DNN CKEditor https://gibs.com/Support/Knowledge-Base/ID/24084/Enabling_the_File_Upload_Function_in_DNN_CKEditor By default, CKEditor only allows&nbsp;administrators to upload files via CKEditor. The following article will guide users in enabling the option for other role types as well as allowing the uploads to be placed in public asset folders.&nbsp; DNN Expert Fri, 10 Jan 2020 12:06:00 GMT f1397696-738c-4295-afcd-943feb885714:24084 https://gibs.com/Support/Knowledge-Base/ID/10736/DNN_States_Dropdown_List#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=10736 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=10736&PortalID=1&TabID=292 DNN States Dropdown List https://gibs.com/Support/Knowledge-Base/ID/10736/DNN_States_Dropdown_List Get a list of states using the DNN Lists public void GetDropDownListStates() { &nbsp;try &nbsp;{ &nbsp;&nbsp;// Get State Dropdown from DNN Lists var regions = new ListController().GetListEntryInfoItems(&quot;Region&quot;, &quot;Country.US&quot;, this.PortalId); ddlStatesRecipient.DataTextField = &quot;Value&quot;; ddlStatesRecipient.DataValueField = &quot;Value&quot;; ddlStatesRecipient.DataSource = regions; ddlStatesRecipient.DataBind(); ddlStatesRecipient.Items.Insert(0, new ListItem(&quot;-Select-&quot;, &quot;-1&quot;)); ddlStatesRecipient.SelectedValue = &quot;MA&quot;; &nbsp; &nbsp;} &nbsp;catch (Exception ex) &nbsp;{ &nbsp;&nbsp;Exceptions.ProcessModuleLoadException(this, ex); &nbsp;} &nbsp;&nbsp; } DNN Expert Thu, 02 Jan 2020 12:31:00 GMT f1397696-738c-4295-afcd-943feb885714:10736 https://gibs.com/Support/Knowledge-Base/ID/24072/DisplayName_Lookup_by_UserID#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24072 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24072&PortalID=1&TabID=292 DisplayName Lookup by UserID https://gibs.com/Support/Knowledge-Base/ID/24072/DisplayName_Lookup_by_UserID public string CreatedByUserName { get { if (createdByUserName == null) { int portalId = PortalController.Instance.GetCurrentPortalSettings().PortalId; UserController controller = new UserController(); UserInfo user = controller.GetUser(portalId, createdByUserID); if(user != null) { createdByUserName = user.DisplayName; } else { createdByUserName = &quot;Deleted User&quot;; } } return createdByUserName; } } DNN Expert Thu, 26 Dec 2019 19:03:00 GMT f1397696-738c-4295-afcd-943feb885714:24072 https://gibs.com/Support/Knowledge-Base/ID/23180/Check_If_Profile_Property_Exists#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=23180 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=23180&PortalID=1&TabID=292 Check If Profile Property Exists https://gibs.com/Support/Knowledge-Base/ID/23180/Check_If_Profile_Property_Exists Check if a DNN TrueFalse (bool) profile property exists and if it doesn&#39;t create a new one USE: CheckProfilePropertyExistsTrueFalse(&quot;DoNotMail&quot;).ToString(); &nbsp; public string CheckProfilePropertyExistsTrueFalse(string propertyName) { string value = null; ProfilePropertyDefinition ppd = ProfileController.GetPropertyDefinitionByName(this.PortalId, propertyName.ToString()); // ProfileController.AddPropertyDefinition() if (ppd == null) { // IT DOESN&#39;T EXIST - - CREATE IT DotNetNuke.Common.Lists.ListController objListCtrl = new DotNetNuke.Common.Lists.ListController(); DotNetNuke.Entities.Profile.ProfilePropertyDefinition objDef = new DotNetNuke.Entities.Profile.ProfilePropertyDefinition(); DotNetNuke.Entities.Profile.ProfileController objProfileController = new DotNetNuke.Entities.Profile.ProfileController(); objDef.DataType = objListCtrl.GetListEntryInfo(&quot;DataType&quot;, &quot;TrueFalse&quot;).EntryID; objDef.Length = 50; objDef.PortalId = this.PortalId; objDef.PropertyName = propertyName.ToString(); // This is your property Name objDef.Required = false; objDef.DefaultValue = &quot;false&quot;; objDef.ViewOrder = -1; objDef.DefaultVisibility = DotNetNuke.Entities.Users.UserVisibilityMode.AdminOnly; objDef.Visible = true; objDef.PropertyCategory = &quot;Donor&quot;; objDef.ReadOnly = false; DotNetNuke.Entities.Profile.ProfileController.AddPropertyDefinition(objDef); value = &quot;Profile Property Created for &quot; + propertyName.ToString() + &quot;!&quot;; } else { value = &quot;Profile Property Exists!&quot;; } return value; } DNN Expert Tue, 24 Dec 2019 12:30:00 GMT f1397696-738c-4295-afcd-943feb885714:23180 https://gibs.com/Support/Knowledge-Base/ID/24083/2019_DNN_UpdateServiceUrl#Comments 0 https://gibs.com/DesktopModules/DnnForge%20-%20NewsArticles/RssComments.aspx?TabID=292&ModuleID=664&ArticleID=24083 https://gibs.com:443/DesktopModules/DnnForge%20-%20NewsArticles/Tracking/Trackback.aspx?ArticleID=24083&PortalID=1&TabID=292 2019 DNN UpdateServiceUrl https://gibs.com/Support/Knowledge-Base/ID/24083/2019_DNN_UpdateServiceUrl <add key="UpdateServiceUrl" value="https://dnnplatform.io" /> Thanks Mitch Sellers! DNN Expert Mon, 11 Nov 2019 11:52:00 GMT f1397696-738c-4295-afcd-943feb885714:24083