SlideShare a Scribd company logo
Creating URL Providers for Your
Custom Extensions
Brian Dukes, Engage
@BrianDukes

Don’t forget to include #DNNCon in your tweets!

@DNNCon
What It Is
• Extension URL Provider

Don’t forget to include #DNNCon in your tweets!

@DNNCon
How it works – Prerequisites
• DNN 7.1
• Advanced URL Provider

Don’t forget to include #DNNCon in your tweets!

@DNNCon
How it works – Install & Manage
• Just a component in a package
• Optionally tied to a desktop module
• Managed through Site Settings

Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Plan
•
•
•
•

Rearrange parameters?
Remove page names?
Implement redirects?
Store derived URL path components?

Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Manifest
<component type="UrlProvider">
<urlProvider>
<name>My URL Extension Provider</name>
<type>My.Module.Url.UrlProvider</type>
<settingsControlSrc>…</settingsControlSrc>
<redirectAllUrls>true</redirectAllUrls>
<replaceAllUrls>true</replaceAllUrls>
<rewriteAllUrls>true</rewriteAllUrls>
<desktopModule>My Module</desktopModule>
</urlProvider>
</component>
Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Settings
• IExtensionUrlProviderSettingsControl
•
•
•

Provider
void LoadSettings()
Dictionary<string, string> SaveSettings()

• Validation bug

Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Implement
• Override ExtensionUrlProvider (in
DotNetNuke.Entities.Urls)
•
•
•
•
•
•

CheckForRedirect
ChangeFriendlyUrl
TransformFriendlyUrlToQueryString
GetProviderPortalSettings
AlwaysUseDnnPagePath
AlwaysCallForRewrite *
Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Utilities
• ProviderConfig
• CleanNameForUrl(
string, FriendlyUrlOptions)
• EnsureLeadingChar(string, string)
• EnsureNotLeadingChar(
string, string)
• CreateQueryStringFromParameters(
string[], int)
Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Replace
• ChangeFriendlyUrl
• Make generated URLs friendlier
• Called from NavigateURL, EditUrl, etc.
• Look for URL parameters, convert them to
new path

Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Rewrite
• TransformFriendlyUrlToQueryString
• Convert incoming URL to standard query
string format
• May need to find matching DNN page
• Match the root, turn the rest into regular
query string

Don’t forget to include #DNNCon in your tweets!

@DNNCon
Write Your Own – Redirect
• CheckForRedirect
• Determine if incoming URL is in an old
format
• Set new location

Don’t forget to include #DNNCon in your tweets!

@DNNCon
Tip – Debugging
• Turn on debug mode
• AUM_AllowDebugCode

• Request with HTTP__FUGDEBUG
• View messages in Fiddler

Don’t forget to include #DNNCon in your tweets!

@DNNCon
THANKS TO ALL OF OUR GENEROUS
SPONSORS!

Don’t forget to include #DNNCon in your tweets!

@DNNCon

More Related Content

What's hot

Yoast SEO Plugin - 2015 Pubcon Vegas
Yoast SEO Plugin - 2015 Pubcon VegasYoast SEO Plugin - 2015 Pubcon Vegas
Yoast SEO Plugin - 2015 Pubcon Vegas
Search Commander, Inc.
 
SEO and YouTube - PRNews April 2019
SEO and YouTube - PRNews April 2019SEO and YouTube - PRNews April 2019
SEO and YouTube - PRNews April 2019
Charles Taylor
 
Asychronous javascript using LAX
Asychronous javascript using LAXAsychronous javascript using LAX
Asychronous javascript using LAX
Sikha Baid ☁
 
Competitive keyword research | VE PEOPLE
Competitive keyword research | VE PEOPLECompetitive keyword research | VE PEOPLE
Competitive keyword research | VE PEOPLE
Carl Pantaleon
 
Rich text editing with Draft.js
Rich text editing with Draft.jsRich text editing with Draft.js
Rich text editing with Draft.js
Nikolaus Graf
 
seo for blogspot
seo for blogspotseo for blogspot
seo for blogspot
zaman khan
 
Getting started-checklist
Getting started-checklistGetting started-checklist
Getting started-checklist
Brittany Weickert
 
Popular SEO plugin for WordPress - WordCamp Pune 2015
Popular SEO plugin for WordPress - WordCamp Pune 2015Popular SEO plugin for WordPress - WordCamp Pune 2015
Popular SEO plugin for WordPress - WordCamp Pune 2015
Alexander Gounder
 
Podcasts
PodcastsPodcasts
Podcasts
David Kamerer
 
Links4
Links4Links4
Links4
shiking
 
SES SF 2010 - Whats Next for SEO and News
SES SF 2010 - Whats Next for SEO and NewsSES SF 2010 - Whats Next for SEO and News
SES SF 2010 - Whats Next for SEO and News
Topher Kohan
 
20110611 Facebook Case Study
20110611 Facebook Case Study20110611 Facebook Case Study
20110611 Facebook Case Study
Yuki MAEJIMA
 
WordPress Myths Uncovered
WordPress Myths UncoveredWordPress Myths Uncovered
WordPress Myths Uncovered
Lauren Jeffcoat
 

What's hot (13)

Yoast SEO Plugin - 2015 Pubcon Vegas
Yoast SEO Plugin - 2015 Pubcon VegasYoast SEO Plugin - 2015 Pubcon Vegas
Yoast SEO Plugin - 2015 Pubcon Vegas
 
SEO and YouTube - PRNews April 2019
SEO and YouTube - PRNews April 2019SEO and YouTube - PRNews April 2019
SEO and YouTube - PRNews April 2019
 
Asychronous javascript using LAX
Asychronous javascript using LAXAsychronous javascript using LAX
Asychronous javascript using LAX
 
Competitive keyword research | VE PEOPLE
Competitive keyword research | VE PEOPLECompetitive keyword research | VE PEOPLE
Competitive keyword research | VE PEOPLE
 
Rich text editing with Draft.js
Rich text editing with Draft.jsRich text editing with Draft.js
Rich text editing with Draft.js
 
seo for blogspot
seo for blogspotseo for blogspot
seo for blogspot
 
Getting started-checklist
Getting started-checklistGetting started-checklist
Getting started-checklist
 
Popular SEO plugin for WordPress - WordCamp Pune 2015
Popular SEO plugin for WordPress - WordCamp Pune 2015Popular SEO plugin for WordPress - WordCamp Pune 2015
Popular SEO plugin for WordPress - WordCamp Pune 2015
 
Podcasts
PodcastsPodcasts
Podcasts
 
Links4
Links4Links4
Links4
 
SES SF 2010 - Whats Next for SEO and News
SES SF 2010 - Whats Next for SEO and NewsSES SF 2010 - Whats Next for SEO and News
SES SF 2010 - Whats Next for SEO and News
 
20110611 Facebook Case Study
20110611 Facebook Case Study20110611 Facebook Case Study
20110611 Facebook Case Study
 
WordPress Myths Uncovered
WordPress Myths UncoveredWordPress Myths Uncovered
WordPress Myths Uncovered
 

Viewers also liked

Considerations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke siteConsiderations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke site
Engage Software
 
How to customize your linkedin public profile url
How to customize your linkedin public profile urlHow to customize your linkedin public profile url
How to customize your linkedin public profile url
Michael Yublosky
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
SlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
Kapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
Empowered Presentations
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
Jesse Desjardins - @jessedee
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
Oneupweb
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
Content Marketing Institute
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
SlideShare
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
SlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
SlideShare
 

Viewers also liked (13)

Considerations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke siteConsiderations with Writing JavaScript in your DotNetNuke site
Considerations with Writing JavaScript in your DotNetNuke site
 
How to customize your linkedin public profile url
How to customize your linkedin public profile urlHow to customize your linkedin public profile url
How to customize your linkedin public profile url
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content MarketingHow To Get More From SlideShare - Super-Simple Tips For Content Marketing
How To Get More From SlideShare - Super-Simple Tips For Content Marketing
 
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
A Guide to SlideShare Analytics - Excerpts from Hubspot's Step by Step Guide ...
 
2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare2015 Upload Campaigns Calendar - SlideShare
2015 Upload Campaigns Calendar - SlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShare
 
How to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & TricksHow to Make Awesome SlideShares: Tips & Tricks
How to Make Awesome SlideShares: Tips & Tricks
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShare
 

Similar to Creating URL Providers for your Custom Extensions

Search features and architecture in DNN 7.1
Search features and architecture in DNN 7.1Search features and architecture in DNN 7.1
Search features and architecture in DNN 7.1
ashishpd
 
Dnn Con Baltimore Security Flaws
Dnn Con Baltimore Security FlawsDnn Con Baltimore Security Flaws
Dnn Con Baltimore Security Flaws
Joshua Bradley
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobile
ashishpd
 
DNNCON: Lost and Found: New DNN Search
DNNCON: Lost and Found: New DNN SearchDNNCON: Lost and Found: New DNN Search
DNNCON: Lost and Found: New DNN Search
slhilbert
 
Reactive extensions (rx js) in dnn
Reactive extensions (rx js) in dnnReactive extensions (rx js) in dnn
Reactive extensions (rx js) in dnn
jsheely83
 
Dnn con palm_beach_template
Dnn con palm_beach_templateDnn con palm_beach_template
Dnn con palm_beach_template
Philipp Becker
 
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Paul Hunt
 
Word camp 2013 migration
Word camp 2013 migrationWord camp 2013 migration
Word camp 2013 migration
Matt Siltala
 
Continuous Integration With Windows Azure Pack
Continuous Integration With Windows Azure PackContinuous Integration With Windows Azure Pack
Continuous Integration With Windows Azure Pack
Jess Coburn
 
Search driven architecture in SharePoint
Search driven architecture in SharePointSearch driven architecture in SharePoint
Search driven architecture in SharePoint
Jim Lennox
 
#SPSLondon - Session 1 - Building an faq for end users
#SPSLondon - Session 1 - Building an faq for end users#SPSLondon - Session 1 - Building an faq for end users
#SPSLondon - Session 1 - Building an faq for end users
Paul Hunt
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
之宇 趙
 
BrightonSEO 2017 - SEO quick wins from a technical check
BrightonSEO 2017  - SEO quick wins from a technical checkBrightonSEO 2017  - SEO quick wins from a technical check
BrightonSEO 2017 - SEO quick wins from a technical check
Chloe Bodard
 
SPSBE building an faq for end users
SPSBE building an faq for end usersSPSBE building an faq for end users
SPSBE building an faq for end users
Paul Hunt
 
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
BIWUG
 
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Georgiana Laudi
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine Optimisation
Peter Macinkovic
 
EVOLVE'13 | Enhance | Effective SEO | Paul Legan
EVOLVE'13 | Enhance | Effective SEO | Paul LeganEVOLVE'13 | Enhance | Effective SEO | Paul Legan
EVOLVE'13 | Enhance | Effective SEO | Paul Legan
Evolve The Adobe Digital Marketing Community
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT
 
SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014
Avtex
 

Similar to Creating URL Providers for your Custom Extensions (20)

Search features and architecture in DNN 7.1
Search features and architecture in DNN 7.1Search features and architecture in DNN 7.1
Search features and architecture in DNN 7.1
 
Dnn Con Baltimore Security Flaws
Dnn Con Baltimore Security FlawsDnn Con Baltimore Security Flaws
Dnn Con Baltimore Security Flaws
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobile
 
DNNCON: Lost and Found: New DNN Search
DNNCON: Lost and Found: New DNN SearchDNNCON: Lost and Found: New DNN Search
DNNCON: Lost and Found: New DNN Search
 
Reactive extensions (rx js) in dnn
Reactive extensions (rx js) in dnnReactive extensions (rx js) in dnn
Reactive extensions (rx js) in dnn
 
Dnn con palm_beach_template
Dnn con palm_beach_templateDnn con palm_beach_template
Dnn con palm_beach_template
 
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
Creating an FAQ for end users, An evolution of an idea - SharePoint Saturday ...
 
Word camp 2013 migration
Word camp 2013 migrationWord camp 2013 migration
Word camp 2013 migration
 
Continuous Integration With Windows Azure Pack
Continuous Integration With Windows Azure PackContinuous Integration With Windows Azure Pack
Continuous Integration With Windows Azure Pack
 
Search driven architecture in SharePoint
Search driven architecture in SharePointSearch driven architecture in SharePoint
Search driven architecture in SharePoint
 
#SPSLondon - Session 1 - Building an faq for end users
#SPSLondon - Session 1 - Building an faq for end users#SPSLondon - Session 1 - Building an faq for end users
#SPSLondon - Session 1 - Building an faq for end users
 
Django Introduction & Tutorial
Django Introduction & TutorialDjango Introduction & Tutorial
Django Introduction & Tutorial
 
BrightonSEO 2017 - SEO quick wins from a technical check
BrightonSEO 2017  - SEO quick wins from a technical checkBrightonSEO 2017  - SEO quick wins from a technical check
BrightonSEO 2017 - SEO quick wins from a technical check
 
SPSBE building an faq for end users
SPSBE building an faq for end usersSPSBE building an faq for end users
SPSBE building an faq for end users
 
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
 
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
Moving from Wordpress.com to Wordpress.org - Wordcamp Toronto 2011
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine Optimisation
 
EVOLVE'13 | Enhance | Effective SEO | Paul Legan
EVOLVE'13 | Enhance | Effective SEO | Paul LeganEVOLVE'13 | Enhance | Effective SEO | Paul Legan
EVOLVE'13 | Enhance | Effective SEO | Paul Legan
 
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the EnterpriseEnvision IT - Application Lifecycle Management for SharePoint in the Enterprise
Envision IT - Application Lifecycle Management for SharePoint in the Enterprise
 
SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014
 

More from Engage Software

The Importance of UX in Association Website Design
The Importance of UX in Association Website Design The Importance of UX in Association Website Design
The Importance of UX in Association Website Design
Engage Software
 
Millennial Engagement Strategies for Associations
Millennial Engagement Strategies for AssociationsMillennial Engagement Strategies for Associations
Millennial Engagement Strategies for Associations
Engage Software
 
Enterprise Social Networking
Enterprise Social NetworkingEnterprise Social Networking
Enterprise Social Networking
Engage Software
 
Responsive Views with Knockout
Responsive Views with KnockoutResponsive Views with Knockout
Responsive Views with Knockout
Engage Software
 
JavaScript: The Language
JavaScript: The LanguageJavaScript: The Language
JavaScript: The Language
Engage Software
 
Packaging DNN extensions
Packaging DNN extensionsPackaging DNN extensions
Packaging DNN extensions
Engage Software
 
Building A Membership Provider For DotNetNuke 4.X.X
Building A Membership Provider For DotNetNuke 4.X.XBuilding A Membership Provider For DotNetNuke 4.X.X
Building A Membership Provider For DotNetNuke 4.X.X
Engage Software
 
Building DotNetNuke Modules
Building DotNetNuke ModulesBuilding DotNetNuke Modules
Building DotNetNuke Modules
Engage Software
 
DotNetNuke In An Hour
DotNetNuke In An HourDotNetNuke In An Hour
DotNetNuke In An Hour
Engage Software
 
The Right Way To Install Upgrade Dnn
The Right Way To Install Upgrade DnnThe Right Way To Install Upgrade Dnn
The Right Way To Install Upgrade Dnn
Engage Software
 
What’s New In DotNetNuke 5 (Cambrian)
What’s New In DotNetNuke 5 (Cambrian)What’s New In DotNetNuke 5 (Cambrian)
What’s New In DotNetNuke 5 (Cambrian)
Engage Software
 

More from Engage Software (11)

The Importance of UX in Association Website Design
The Importance of UX in Association Website Design The Importance of UX in Association Website Design
The Importance of UX in Association Website Design
 
Millennial Engagement Strategies for Associations
Millennial Engagement Strategies for AssociationsMillennial Engagement Strategies for Associations
Millennial Engagement Strategies for Associations
 
Enterprise Social Networking
Enterprise Social NetworkingEnterprise Social Networking
Enterprise Social Networking
 
Responsive Views with Knockout
Responsive Views with KnockoutResponsive Views with Knockout
Responsive Views with Knockout
 
JavaScript: The Language
JavaScript: The LanguageJavaScript: The Language
JavaScript: The Language
 
Packaging DNN extensions
Packaging DNN extensionsPackaging DNN extensions
Packaging DNN extensions
 
Building A Membership Provider For DotNetNuke 4.X.X
Building A Membership Provider For DotNetNuke 4.X.XBuilding A Membership Provider For DotNetNuke 4.X.X
Building A Membership Provider For DotNetNuke 4.X.X
 
Building DotNetNuke Modules
Building DotNetNuke ModulesBuilding DotNetNuke Modules
Building DotNetNuke Modules
 
DotNetNuke In An Hour
DotNetNuke In An HourDotNetNuke In An Hour
DotNetNuke In An Hour
 
The Right Way To Install Upgrade Dnn
The Right Way To Install Upgrade DnnThe Right Way To Install Upgrade Dnn
The Right Way To Install Upgrade Dnn
 
What’s New In DotNetNuke 5 (Cambrian)
What’s New In DotNetNuke 5 (Cambrian)What’s New In DotNetNuke 5 (Cambrian)
What’s New In DotNetNuke 5 (Cambrian)
 

Recently uploaded

Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
Rohit Gautam
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems S.M.S.A.
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Zilliz
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
James Anderson
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Zilliz
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
Daiki Mogmet Ito
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
Neo4j
 

Recently uploaded (20)

Large Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial ApplicationsLarge Language Model (LLM) and it’s Geospatial Applications
Large Language Model (LLM) and it’s Geospatial Applications
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Uni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdfUni Systems Copilot event_05062024_C.Vlachos.pdf
Uni Systems Copilot event_05062024_C.Vlachos.pdf
 
Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...Building RAG with self-deployed Milvus vector database and Snowpark Container...
Building RAG with self-deployed Milvus vector database and Snowpark Container...
 
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
Alt. GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using ...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
Introducing Milvus Lite: Easy-to-Install, Easy-to-Use vector database for you...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
How to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For FlutterHow to use Firebase Data Connect For Flutter
How to use Firebase Data Connect For Flutter
 
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
GraphSummit Singapore | Graphing Success: Revolutionising Organisational Stru...
 

Creating URL Providers for your Custom Extensions

  • 1. Creating URL Providers for Your Custom Extensions Brian Dukes, Engage @BrianDukes Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 2. What It Is • Extension URL Provider Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 3. How it works – Prerequisites • DNN 7.1 • Advanced URL Provider Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 4. How it works – Install & Manage • Just a component in a package • Optionally tied to a desktop module • Managed through Site Settings Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 5. Write Your Own – Plan • • • • Rearrange parameters? Remove page names? Implement redirects? Store derived URL path components? Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 6. Write Your Own – Manifest <component type="UrlProvider"> <urlProvider> <name>My URL Extension Provider</name> <type>My.Module.Url.UrlProvider</type> <settingsControlSrc>…</settingsControlSrc> <redirectAllUrls>true</redirectAllUrls> <replaceAllUrls>true</replaceAllUrls> <rewriteAllUrls>true</rewriteAllUrls> <desktopModule>My Module</desktopModule> </urlProvider> </component> Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 7. Write Your Own – Settings • IExtensionUrlProviderSettingsControl • • • Provider void LoadSettings() Dictionary<string, string> SaveSettings() • Validation bug Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 8. Write Your Own – Implement • Override ExtensionUrlProvider (in DotNetNuke.Entities.Urls) • • • • • • CheckForRedirect ChangeFriendlyUrl TransformFriendlyUrlToQueryString GetProviderPortalSettings AlwaysUseDnnPagePath AlwaysCallForRewrite * Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 9. Write Your Own – Utilities • ProviderConfig • CleanNameForUrl( string, FriendlyUrlOptions) • EnsureLeadingChar(string, string) • EnsureNotLeadingChar( string, string) • CreateQueryStringFromParameters( string[], int) Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 10. Write Your Own – Replace • ChangeFriendlyUrl • Make generated URLs friendlier • Called from NavigateURL, EditUrl, etc. • Look for URL parameters, convert them to new path Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 11. Write Your Own – Rewrite • TransformFriendlyUrlToQueryString • Convert incoming URL to standard query string format • May need to find matching DNN page • Match the root, turn the rest into regular query string Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 12. Write Your Own – Redirect • CheckForRedirect • Determine if incoming URL is in an old format • Set new location Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 13. Tip – Debugging • Turn on debug mode • AUM_AllowDebugCode • Request with HTTP__FUGDEBUG • View messages in Fiddler Don’t forget to include #DNNCon in your tweets! @DNNCon
  • 14. THANKS TO ALL OF OUR GENEROUS SPONSORS! Don’t forget to include #DNNCon in your tweets! @DNNCon