DotNetNuke kullanan webmasterların bildiği üzere statik sayfaların yanında bazı modüller tarafından üretilen dinamik sayfalar da yer almaktadır. Statik sayfalara her türlü modülü rahatlıkla ekleyebilirken, dinamik sayfalarda bu durum farklılık göstermektedir.
Bu yazımda, statik sayfalara da modül eklemenin mümkün olduğunu göstereceğim. Ekibimize ulaşan bir mobilya & dekorasyon sitesi webmaster'ı, kampanyalarına ilişkin reklamları sayfalarında göstermek istediklerini ancak modül tarafından oluşturulan dinamik sayfalara sabit içerikten başka içerik ekleyemediklerini belirtti.
Çözüm:
İlk olarak skin.ascx dosyasına aşağıdaki kodu ekliyoruz.
Div için id ve
Regex ifadesine dikkat ederek...
<% If Regex.IsMatch (Request.URL.ToString, "REGEX'i Buraya Yazıyoruz") Then %>
<
div
id
=
"EkstraPanel"
runat
=
"server"
></
div
>
<% End If %>
İfademizde
ASP.NET Regex kullanarak
istenilen URL ile eşleştirmeyi hedefledik.
http://www.dinamiksite.com/dinamiksayfamiz/tabid/14/yaziTipi/
YaziGoster/yazıId/12/Ornek-Sayfa.aspx
Yukarıdaki bağlantıda
YaziGoster benzersiz
parametre olarak öne çıkıyor.
<% If Regex.IsMatch (Request.URL.ToString, "YaziGoster") Then %>
Girdiğimiz Regex değerinin mutlaka
Raw URL ile eşleşmesi gerekiyor.
DotNetNuke'de
Friendly URL desteği de mevcut. Ancak Friendly URL'lerde sayfaları belirlemekte kullanılan tabid parametresi bulunmuyor.
<!-- <%= Request.URL.ToString %> -->
HTML Comment (<!-- -->) normal görünümde yer almasa da kaynak kodunda ifadenin yer alması için kullanılıyor.
Son örneğimizde ise, ekstra panel yalnızca
regex url ile eşleştiğinde ve sayfayı isteyen kişi portal yöneticileri grubunda ise gösteriliyor.
<% If Regex.IsMatch (Request.URL.ToString, "YaziGoster") AND DotNetNuke.Security.PortalSecurity.IsInRoles(PortalSettings.AdministratorRoleName) Then %>
<
div
id
=
"EkstraPanel"
runat
=
"server"
></
div
>
<% End If %>