Learn More





DNN Community Blog

The Community Blog is a personal opinion of community members and by no means the official standpoint of DNN Corp or DNN Platform. This is a place to express personal thoughts about DNNPlatform, the community and its ecosystem. Do you have useful information that you would like to share with the DNN Community in a featured article or blog? If so, please contact .

The use of the Community Blog is covered by our Community Blog Guidelines - please read before commenting or posting.

Extend the DNN disqus App in 3 mins to show only on details pages

A common use case for an app like disqus is to include it in a list/details scenario like a blog, where you only want the discussion items to appear on the details page. Since most such setups use the same DNN page for the list and the details, we need another mechanism to include / not-include this functionality. I present to you: conditional server-views in apps

There's an App for That

As always you can find all this as a simple to install 2sxc app

The Goal: Show Different Views / Templates based on a URL-condition

So this is a very common problem: an app placed on a page has different views - like a list-view, a details-view and a tags-filtered-list view. And each view still uses the same page, so DNN-modules placed on the same page would always appear as well. But this is not always desired. The basic example is the blog-list page 

…which shouldn't show the disqus app, while the blog details page 

…should show it. Note that this is a very generic issue which actually also appears in

  1. The blog list-page should show the list (duh)
  2. …while the details page should show the details (duh again)

Though this may seem logical, before the advent of 2sxc every module had to re-invent the mechanisms to implement this, commonly using a 'if(url.contains("post")) then…' mechanism. But 2sxc will automatically change the views based on the URL parameter thanks to the feature Switch Views On URL which even works for Token templates. 

Implementing Switch Views On URL

Basically we need two views:

  1. The initial view, which is actually empty because in the default (list) mode it shouldn't show anything
  2. The optional view, which is only shown when the URL contains a parameter
    Important: this optional view can use the same template as the standard disqus-view. So we don't need new HTML, we just need another rule so that 2sxc knows when to replace the empty view with the disqus view. 

Step 1: The Initial Empty View

  1. Go to the administration > views, add a view with the name "empty" or similar and tell the system to create a new token template for it. Leave all the other settings blank. 
  2. Then exit the administration and edit the template - either making it completely blank or in our case, just add an HTML comment so that anybody reading this know what happens

Step 2: The Conditional View

  1. Go to the administration > views, then add a view with the name "Show only on details" or similar. 
  2. Re-use the existing template as this should be identical. 
  3. The only special thing you must do is specify the url-param which should activate this view
  4. Optionally I would also set this view as hidden, so that it's not available in the "select view" dropdown when adding an app

Resulting View List

In the end you should have the following views 

Adding to a Page

You can now add the disqus app to the page - and select the Empty view by default.

This causes the user to see nothing (by default), but when the URL parameter exists (in this case the parameter post with a value) then the view is automatically replaced by the real view. 

That's all folks :)
Love from Switzerland,

Daniel Mettler grew up in the jungles of Indonesia and is founder and CEO of 2sic internet solutions in Switzerland and Liechtenstein, an 20-head web specialist with over 800 DNN projects since 1999. He is also chief architect of 2sxc (see forge), an open source module for creating attractive content and DNN Apps.

Read more posts by Daniel Mettler


There are currently no comments, be the first to post one.

Comment Form

Only registered users may post comments.


2sic Daniel Mettler (124)
Aderson Oliveira (15)
Alec Whittington (11)
Alex Shirley (10)
Andrew Nurse (30)
Anthony Glenwright (5)
Antonio Chagoury (28)
Ash Prasad (21)
Ben Schmidt (1)
Benjamin Hermann (25)
Benoit Sarton (9)
Beth Firebaugh (12)
Bill Walker (36)
Bob Kruger (5)
Brian Dukes (2)
Brice Snow (1)
Bruce Chapman (20)
Bryan Andrews (1)
cathal connolly (55)
Charles Nurse (163)
Chris Hammond (203)
Chris Paterra (55)
Clinton Patterson (28)
Cuong Dang (21)
Daniel Bartholomew (2)
Dave Buckner (2)
David Poindexter (3)
David Rodriguez (2)
Doug Howell (11)
Erik van Ballegoij (30)
Ernst Peter Tamminga (74)
Geoff Barlow (6)
Gifford Watkins (3)
Gilles Le Pigocher (3)
Ian Robinson (7)
Israel Martinez (17)
Jan Blomquist (2)
Jan Jonas (3)
Jaspreet Bhatia (1)
Jenni Merrifield (6)
Joe Brinkman (269)
John Mitchell (1)
Jon Henning (14)
Jonathan Sheely (4)
Jordan Coopersmith (1)
Joseph Craig (2)
Kan Ma (1)
Keivan Beigi (3)
Ken Grierson (10)
Kevin Schreiner (6)
Leigh Pointer (31)
Lorraine Young (60)
Malik Khan (1)
Matthias Schlomann (15)
Mauricio Márquez (5)
Michael Doxsey (7)
Michael Tobisch (3)
Michael Washington (202)
Mike Horton (19)
Mitchel Sellers (28)
Nathan Rover (3)
Navin V Nagiah (14)
Néstor Sánchez (31)
Nik Kalyani (14)
Peter Donker (52)
Philip Beadle (135)
Philipp Becker (4)
Richard Dumas (22)
Robert J Collins (5)
Roger Selwyn (8)
Ruben Lopez (1)
Ryan Martinez (1)
Salar Golestanian (4)
Sanjay Mehrotra (9)
Scott McCulloch (1)
Scott S (11)
Scott Wilkinson (3)
Scott Willhite (97)
Sebastian Leupold (80)
Shaun Walker (237)
Shawn Mehaffie (17)
Stefan Cullmann (12)
Stefan Kamphuis (12)
Steve Fabian (31)
Timo Breumelhof (24)
Tony Henrich (3)
Torsten Weggen (2)
Vicenç Masanas (27)
Vincent Nguyen (3)
Vitaly Kozadayev (6)
Will Morgenweck (37)
Will Strohl (163)
William Severance (5)
Try Evoq
For Free
Start Free Trial
a Demo
See Evoq Live
Need More Information?