SlideShare una empresa de Scribd logo
1 de 14
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

Más contenido relacionado

La actualidad más candente

SEO and YouTube - PRNews April 2019
SEO and YouTube - PRNews April 2019SEO and YouTube - PRNews April 2019
SEO and YouTube - PRNews April 2019Charles Taylor
 
Asychronous javascript using LAX
Asychronous javascript using LAXAsychronous javascript using LAX
Asychronous javascript using LAXSikha Baid ☁
 
Competitive keyword research | VE PEOPLE
Competitive keyword research | VE PEOPLECompetitive keyword research | VE PEOPLE
Competitive keyword research | VE PEOPLECarl Pantaleon
 
Rich text editing with Draft.js
Rich text editing with Draft.jsRich text editing with Draft.js
Rich text editing with Draft.jsNikolaus Graf
 
seo for blogspot
seo for blogspotseo for blogspot
seo for blogspotzaman khan
 
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 2015Alexander Gounder
 
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 NewsTopher Kohan
 
20110611 Facebook Case Study
20110611 Facebook Case Study20110611 Facebook Case Study
20110611 Facebook Case StudyYuki MAEJIMA
 
WordPress Myths Uncovered
WordPress Myths UncoveredWordPress Myths Uncovered
WordPress Myths UncoveredLauren Jeffcoat
 

La actualidad más candente (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
 

Destacado

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 siteEngage 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 urlMichael Yublosky
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
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 SlideshareEmpowered Presentations
 
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 OptimizationOneupweb
 
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 MarketingContent 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 - SlideShareSlideShare
 
What to Upload to SlideShare
What to Upload to SlideShareWhat to Upload to SlideShare
What to Upload to SlideShareSlideShare
 
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 & TricksSlideShare
 
Getting Started With SlideShare
Getting Started With SlideShareGetting Started With SlideShare
Getting Started With SlideShareSlideShare
 

Destacado (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 a 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.1ashishpd
 
Dnn Con Baltimore Security Flaws
Dnn Con Baltimore Security FlawsDnn Con Baltimore Security Flaws
Dnn Con Baltimore Security FlawsJoshua Bradley
 
DNN Web API For Mobile
DNN Web API For MobileDNN Web API For Mobile
DNN Web API For Mobileashishpd
 
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 Searchslhilbert
 
Reactive extensions (rx js) in dnn
Reactive extensions (rx js) in dnnReactive extensions (rx js) in dnn
Reactive extensions (rx js) in dnnjsheely83
 
Dnn con palm_beach_template
Dnn con palm_beach_templateDnn con palm_beach_template
Dnn con palm_beach_templatePhilipp 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 migrationMatt Siltala
 
Continuous Integration With Windows Azure Pack
Continuous Integration With Windows Azure PackContinuous Integration With Windows Azure Pack
Continuous Integration With Windows Azure PackJess Coburn
 
Search driven architecture in SharePoint
Search driven architecture in SharePointSearch driven architecture in SharePoint
Search driven architecture in SharePointJim 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 usersPaul 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 checkChloe 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 usersPaul Hunt
 
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02Spsbe buildinganfaqforendusers-150422122027-conversion-gate02
Spsbe buildinganfaqforendusers-150422122027-conversion-gate02BIWUG
 
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 2011Georgiana Laudi
 
Drupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationDrupal 7 Search Engine Optimisation
Drupal 7 Search Engine OptimisationPeter Macinkovic
 
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 EnterpriseEnvision IT
 
SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014SharePoint Search - SPSNYC 2014
SharePoint Search - SPSNYC 2014Avtex
 

Similar a 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
 

Más de 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 AssociationsEngage Software
 
Enterprise Social Networking
Enterprise Social NetworkingEnterprise Social Networking
Enterprise Social NetworkingEngage Software
 
Responsive Views with Knockout
Responsive Views with KnockoutResponsive Views with Knockout
Responsive Views with KnockoutEngage Software
 
JavaScript: The Language
JavaScript: The LanguageJavaScript: The Language
JavaScript: The LanguageEngage Software
 
Packaging DNN extensions
Packaging DNN extensionsPackaging DNN extensions
Packaging DNN extensionsEngage 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.XEngage Software
 
Building DotNetNuke Modules
Building DotNetNuke ModulesBuilding DotNetNuke Modules
Building DotNetNuke ModulesEngage 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 DnnEngage 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
 

Más de 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)
 

Último

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Último (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

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