<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
  <channel xmlns:blog="http://www.dotnetnuke.com/blog/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
    <title>DotNetNuke</title>
    <description>DotNetNuke</description>
    <link>http://www.enio.ch/Blogs/ITBlog/tabid/72/BlogId/11/language/en-US/Default.aspx</link>
    <language>en-US</language>
    <webMaster>thomas.kohler@enio.ch</webMaster>
    <pubDate>Sat, 19 May 2012 19:30:35 GMT</pubDate>
    <lastBuildDate>Sat, 19 May 2012 19:30:35 GMT</lastBuildDate>
    <docs>http://backend.userland.com/rss</docs>
    <generator>Blog RSS Generator Version 4.0.0.0</generator>
    <item>
      <title>DNN Blog Module does not provide proper URL for images</title>
      <link>http://www.enio.ch/Blogs/ITBlog/EntryId/77/DNN-Blog-Module-does-not-provide-proper-URL-for-images.aspx</link>
      <description>&lt;p&gt;Recently I discovered that certain RSS readers could not display my images   &lt;br /&gt;that I added to my blog posts.&lt;/p&gt;  &lt;p&gt;After diving into this topic I discovered that the image source in DNN is mapped   &lt;br /&gt;to something like:    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;/Portals/0/images/%5BProvider%5D/%5BUser%5D/%5BYear%5D.....     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;so basically the &lt;strong&gt;http://domain&lt;/strong&gt; part is missing which some RSS readers have problem with.&lt;/p&gt;  &lt;p&gt;After some email traffic with Don from ITCrossing (&lt;a target="_blank" href="http://www.itcrossing.com"&gt;http://www.itcrossing.com&lt;/a&gt;) he pointed out that this is not an error of the blog provider of the metaPost module (&lt;a title="http://dnn.itcrossing.com/products/modules/metapost/" href="http://dnn.itcrossing.com/products/modules/metapost/"&gt;http://dnn.itcrossing.com/products/modules/metapost/&lt;/a&gt;) of them which I use to post my articles with Windows Live Writer to DNN but rather of the DNN blog module itself. He told me to check this site to find a possible solution:    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://www.subodh.com/Blog/EntryId/110/Fixing-the-DNN-Blog-and-Feedburner-issues.aspx"&gt;http://www.subodh.com/Blog/EntryId/110/Fixing-the-DNN-Blog-and-Feedburner-issues.aspx&lt;/a&gt;    &lt;br /&gt;    &lt;br /&gt;The proposed solution is to adapt some changes in the stored procedures of the DNN installation.    &lt;br /&gt;After diving into this I tried to change the stored procedure as mentioned in the blog entry above but it did not solve my problem fully. So I did have a closer look at it.    &lt;br /&gt;    &lt;br /&gt;Firstly, I changed &lt;strong&gt;not&lt;/strong&gt; to replace the &lt;strong&gt;Description&lt;/strong&gt; field but the &lt;strong&gt;Entry &lt;/strong&gt;field.    &lt;br /&gt;Secondly, I changed more than only the mentioned SP Blog_GetEntry. I changed the following SPs:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Blog_GetEntry&lt;/li&gt;    &lt;li&gt;Blog_ListEntriesByPortalByMonth&lt;/li&gt;    &lt;li&gt;Blog_ListEntriesByPortalByDay&lt;/li&gt;    &lt;li&gt;Blog_ListAllEntriesByBlog&lt;/li&gt;    &lt;li&gt;Blog_ListEntriesByBlog&lt;/li&gt;    &lt;li&gt;Blog_ListEntriesByPortal&lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:32470118-616f-4458-9985-25a0e0d0cb2b" class="wlWriterEditableSmartContent"&gt;&lt;p&gt;Download All Files &lt;a href="http://www.enio.ch/Portals/0/images/%5BProvider%5D/%5BFolderFilePath%5D/WLW/DNNBlogModuledoesnotprovideproperURLfori_86B7/DNNBlogSPs.zip" target="_blank"&gt;download&lt;/a&gt;&lt;/p&gt;&lt;/div&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The change is to replace some text of the blog entry and add the missing fields:&lt;/p&gt;  &lt;p&gt;if you have the PortalID as a parameter in the SP use:&lt;/p&gt;  &lt;div class="csharpcode"&gt;   &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @&lt;span class="kwrd"&gt;Prefix&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(53)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;top&lt;/span&gt; 1 @&lt;span class="kwrd"&gt;Prefix&lt;/span&gt;=&lt;span class="str"&gt;'http://'&lt;/span&gt;+RTRIM( LTRIM(PA.HTTPAlias))&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;from&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    Blog_Blogs B,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    Users U, UserPortals UP, PortalAlias PA&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;where&lt;/span&gt; B.PortalID=@PortalID &lt;span class="kwrd"&gt;and&lt;/span&gt; B.UserID= U.UserID &lt;span class="kwrd"&gt;and&lt;/span&gt; UP.UserID =U.UserID &lt;span class="kwrd"&gt;and&lt;/span&gt; PA.PortalID = UP.PortalID&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; PA.PortalAliasID asc&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;if you have the BlogID as a parameter in the SP use:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;DECLARE&lt;/span&gt; @&lt;span class="kwrd"&gt;Prefix&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(53)&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;select&lt;/span&gt; &lt;span class="kwrd"&gt;top&lt;/span&gt; 1 @&lt;span class="kwrd"&gt;Prefix&lt;/span&gt;=&lt;span class="str"&gt;'http://'&lt;/span&gt;+RTRIM( LTRIM(PA.HTTPAlias))&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;from&lt;/span&gt; &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    Blog_Blogs B,&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;    Users U, UserPortals UP, PortalAlias PA&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;    &lt;span class="kwrd"&gt;where&lt;/span&gt; B.BlogId=@BlogID &lt;span class="kwrd"&gt;and&lt;/span&gt; B.UserID= U.UserID &lt;span class="kwrd"&gt;and&lt;/span&gt; UP.UserID =U.UserID &lt;span class="kwrd"&gt;and&lt;/span&gt; PA.PortalID = UP.PortalID&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="kwrd"&gt;order&lt;/span&gt; &lt;span class="kwrd"&gt;by&lt;/span&gt; PA.PortalAliasID asc&lt;/pre&gt;
&lt;/div&gt;
&lt;style type="text/css"&gt;
.csharpcode, .csharpcode pre
{
	font-size: small;
	color: black;
	font-family: consolas, "Courier New", courier, monospace;
	background-color: #ffffff;
	/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt 
{
	background-color: #f4f4f4;
	width: 100%;
	margin: 0em;
}
.csharpcode .lnum { color: #606060; }&lt;/style&gt;

&lt;p&gt;and then:&lt;/p&gt;

&lt;div class="csharpcode"&gt;
  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;cast&lt;/span&gt;(&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Replace(&lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;REPLACE(&lt;span class="kwrd"&gt;cast&lt;/span&gt;(E.[Entry] &lt;span class="kwrd"&gt;as&lt;/span&gt; &lt;span class="kwrd"&gt;varchar&lt;/span&gt;(&lt;span class="kwrd"&gt;max&lt;/span&gt;)),&lt;span class="str"&gt;'&amp;quot;/Portals/'&lt;/span&gt;,&lt;span class="str"&gt;'&amp;quot;'&lt;/span&gt;+@&lt;span class="kwrd"&gt;Prefix&lt;/span&gt;+&lt;span class="str"&gt;'/Portals/'&lt;/span&gt;) &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;,&lt;span class="str"&gt;'"/Portals/'&lt;/span&gt;,&lt;span class="str"&gt;'"'&lt;/span&gt;+@&lt;span class="kwrd"&gt;Prefix&lt;/span&gt;+&lt;span class="str"&gt;'/Portals/'&lt;/span&gt;) &lt;/pre&gt;

  &lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;as&lt;/span&gt; ntext) &lt;span class="kwrd"&gt;as&lt;/span&gt; [Entry],&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;!!!!!   &lt;b&gt;By changing the SPs be aware that on every update of the blog module your changes will be overwritten. Also be aware that all changes of the SPs you do by your own risk so please back up the SPs before you start changing them.&lt;/b&gt; !!!!&lt;/p&gt;&lt;div class="d_itc_f" style="clear:both;height:11px;"&gt;&lt;a class="a_itc" style="float: right;" href="http://www.itcrossing.com/"&gt;&lt;img alt="powered by metaPost" style="border: none ;" src="/DesktopModules/itcMetaPost/images/m.gif"&gt;&lt;/a&gt;&lt;script src="/DesktopModules/itcMetaPost/js/m.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;a href=http://www.enio.ch/Blogs/ITBlog/EntryId/77/DNN-Blog-Module-does-not-provide-proper-URL-for-images.aspx&gt;More ...&lt;/a&gt;</description>
      <author>thomas.kohler@enio.ch</author>
      <comments>http://www.enio.ch/Blogs/ITBlog/EntryId/77/DNN-Blog-Module-does-not-provide-proper-URL-for-images.aspx#Comments</comments>
      <slash:comments>1</slash:comments>
      <guid isPermaLink="true">http://www.enio.ch/Blogs/ITBlog/EntryId/77/DNN-Blog-Module-does-not-provide-proper-URL-for-images.aspx</guid>
      <pubDate>Wed, 11 Feb 2009 09:22:00 GMT</pubDate>
      <trackback:ping>http://www.enio.chDesktopModules/BlogTrackback.aspx?id=77</trackback:ping>
    </item>
  </channel>
</rss>
