Here is a simply example I put together to get shadowbox to work in DotNetNuke. I used the simplewrapper module to inject a custom ascx file onto the page. The ascx handles everything. It would work exactly the same in an ascx file that belonged to a module.
You can see it working here:
http://kellyandsarah.com/test.aspx
You can download it here:
http://kellyandsarah.com/portals/0/co...
Here is the usercontrol code inside the zip.
<%@ Control Language="vb" AutoEventWireup="true" debug="true" %>
<script runat="server">
Protected Overrides Sub OnPreRender(ByVal e As System.EventArgs)
MyBase.OnPreRender(e)
AddHeaderContent("link", "/portals/0/controls/shadowbox/shadowbox.css", "text/css", "stylesheet")
AddHeaderContent("script", "/portals/0/controls/shadowbox/shadowbox.js", "text/javascript", "")
End Sub
Protected Sub AddHeaderContent(ByVal elementtype As String, ByVal srcOrHref As String, ByVal type As String, Optional ByVal rel As String = "")
Dim gc As System.Web.UI.HtmlControls.HtmlGenericControl = New System.Web.UI.HtmlControls.HtmlGenericControl(elementtype)
If elementtype.ToLower = "link" Then
gc.Attributes.Add("href", srcOrHref)
gc.Attributes.Add("rel", rel)
ElseIf elementtype.ToLower = "script" Then
gc.Attributes.Add("src", srcOrHref)
End If
gc.Attributes.Add("type", type)
Page.Header.Controls.Add(gc)
End Sub
</script>
<script type="text/javascript">
Shadowbox.init();
</script>
<a href="/portals/0/controls/shadowbox/nature.jpg" rel="shadowbox">My Image</a>