<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dave Cavins &#187; webparts</title>
	<atom:link href="http://davecavins.com/tag/webparts/feed/" rel="self" type="application/rss+xml" />
	<link>http://davecavins.com</link>
	<description>web design, SharePoint customization &#38; random stuff</description>
	<lastBuildDate>Tue, 31 Aug 2010 18:01:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>SharePoint Vertical News Ticker</title>
		<link>http://davecavins.com/2009/11/sharepoint-vertical-news-ticker/</link>
		<comments>http://davecavins.com/2009/11/sharepoint-vertical-news-ticker/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 20:22:46 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Endusersharepoint]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[ticker]]></category>
		<category><![CDATA[webparts]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=341</guid>
		<description><![CDATA[On a recent project I needed to create a simple news ticker do display announcements from a SharePoint list. It was easy to do because I just used some of the code from the announcements slider I built a while back so I did not bother to write a post about it. Yesterday I saw [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/11/slideshow-with-captions/' rel='bookmark' title='Permanent Link: Image Slideshow with captions'>Image Slideshow with captions</a></li>
<li><a href='http://davecavins.com/2010/08/a-better-annoucements-ticker/' rel='bookmark' title='Permanent Link: A Better Annoucements Ticker'>A Better Annoucements Ticker</a></li>
<li><a href='http://davecavins.com/2009/07/annoucement-slider-using-web-services/' rel='bookmark' title='Permanent Link: Annoucements Slider using SP Web Services'>Annoucements Slider using SP Web Services</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-349 alignright" title="ticker1" src="http://davecavins.com/wp-content/uploads/2009/11/ticker1.jpg" alt="ticker1" width="197" height="433" />On a recent project I needed to create a simple news ticker do display announcements from a SharePoint list. It was easy to do because I just used some of the code from the <a href="http://davecavins.com/2009/07/annoucement-slider-using-web-services">announcements slider</a> I built a while back so I did not bother to write a post about it. Yesterday I saw <a href="http://www.endusersharepoint.com/2009/11/13/scrolling-news-aggregator-in-sharepoint/" target="_blank">a post on EndUserSharePoint.com</a> about how to setup something similar so I figured I would share my (cheaper) solution.</p>
<p>A few features of the ticker:</p>
<ul>
<li>The ticker pulls its contents from the default SharePoint Announcements list using jQuery.</li>
<li>The title of the announcement links to the display form for the item</li>
<li>Ticker pauses on mouseover</li>
<li>For each Announcement the first 500 characters are shown as an intro.</li>
</ul>
<p>Here is the code it can just be pasted in a content editor web part. The only dependency is jQuery. The code for the ticker came from <a href="http://net.tutsplus.com/tutorials/javascript-ajax/build-a-simple-jquery-news-ticker/" target="_blank">this post on Net Tuts Plus</a>. I removed the comments but you can see the <a href="http://net.tutsplus.com/tutorials/javascript-ajax/build-a-simple-jquery-news-ticker/" target="_blank">commented code and an explanation here</a>.<br />
<span id="more-341"></span></p>
<pre class="brush: plain;">
&lt;script type=&quot;text/javascript&quot; src=&quot;http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js&quot;&gt;&lt;/script&gt;
  &lt;script type=&quot;text/javascript&quot; src=&quot;ticker.js&quot;&gt;&lt;/script&gt;
	&lt;script type=&quot;text/javascript&quot;&gt;
       $(document).ready(function() {
        var soapEnv =
            &quot;&lt;soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'&gt; \
                &lt;soapenv:Body&gt; \
                     &lt;GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'&gt; \
                        &lt;listName&gt;Announcements&lt;/listName&gt; \
                         &lt;viewFields&gt; \
                            &lt;ViewFields&gt; \
                               &lt;FieldRef Name='Title' /&gt; \
                               &lt;FieldRef Name='Body' /&gt; \
                               &lt;FieldRef Name='ID' /&gt; \
								&lt;FieldRef Name='FileDirRef' /&gt; \
								&lt;FieldRef Name='Created' /&gt; \
                           &lt;/ViewFields&gt; \
                        &lt;/viewFields&gt; \
                    &lt;/GetListItems&gt; \
                &lt;/soapenv:Body&gt; \
            &lt;/soapenv:Envelope&gt;&quot;;

        $.ajax({
            url: &quot;_vti_bin/lists.asmx&quot;,
            type: &quot;POST&quot;,
            dataType: &quot;xml&quot;,
            data: soapEnv,
            complete: processResult,
            contentType: &quot;text/xml; charset=\&quot;utf-8\&quot;&quot;
        });
    });

    function processResult(xData, status) {
        $(xData.responseXML).find(&quot;z\\:row&quot;).each(function() {
        	var teaser = $(this).attr(&quot;ows_Body&quot;);
        	var teaserText = teaser.slice(0,500);
        	var urlValue = $(this).attr(&quot;ows_FileDirRef&quot;);
			var urlArray;
			var urlName;
			     if (urlValue == undefined)
	    	{
      		urlName = &quot;&quot;;
        	}
        	else {
        		urlArray = urlValue.split(&quot;;#&quot;);
        		urlName= urlArray[1];
        	}     	

            var liHtml = &quot;&lt;dt class='newsItem'&gt;&lt;a href='/&quot; + urlName + &quot;/Dispform.aspx?ID=&quot; + $(this).attr(&quot;ows_ID&quot;) + &quot;'&gt;&quot;
            + $(this).attr(&quot;ows_Title&quot;) + &quot;&lt;/a&gt;&lt;/dt&gt;&lt;dd&gt;&quot; + teaserText + &quot;&lt;/p&gt;&lt;/dd&gt;&quot;;
            $(&quot;#ticker&quot;).append(liHtml);
        });
	$(function() {
		var ticker = $(&quot;#ticker&quot;);
		ticker.children().filter(&quot;dt&quot;).each(function() {
		  var dt = $(this),
		    container = $(&quot;&lt;div&gt;&quot;);
		  dt.next().appendTo(container);
		  dt.prependTo(container);
		  container.appendTo(ticker);
		});
		ticker.css(&quot;overflow&quot;, &quot;hidden&quot;);
		function animator(currentItem) {
		  var distance = currentItem.height();
			duration = (distance + parseInt(currentItem.css(&quot;marginTop&quot;))) / 0.025;
		  currentItem.animate({ marginTop: -distance }, duration, &quot;linear&quot;, function() {
			currentItem.appendTo(currentItem.parent()).css(&quot;marginTop&quot;, 0);
			animator(currentItem.parent().children(&quot;:first&quot;));
		  });
		};
		animator(ticker.children(&quot;:first&quot;));
		ticker.mouseenter(function() {
		  ticker.children().stop();
		});
		ticker.mouseleave(function() {
		  animator(ticker.children(&quot;:first&quot;));
		});
	  });
        }
&lt;/script&gt;
&lt;style type=&quot;text/css&quot;&gt;
#ticker {
  width:180px; height:420px; overflow:auto; border:1px solid #aaaaaa;
}
#ticker dt {
  font:normal 14px Georgia; padding:0 10px 5px 10px;
  background:#e5e5e5 url('/_layouts/images/keyword.gif') no-repeat left 60%; padding-top:10px; padding-left:22px;
  border:1px solid #ffffff; border-bottom:none; border-right:none;
}
#ticker dd {
  margin-left:0; font:normal 11px Verdana; padding:0 10px 10px 10px;
  border-bottom:1px solid #aaaaaa; background-color:#e5e5e5;
  border-left:1px solid #ffffff;
}
#ticker dd.last { border-bottom:1px solid #ffffff;  }
#ticker div { margin-top:0; }
&lt;/style&gt;

&lt;div class=&quot;myclass&quot;&gt;
		&lt;dl id=&quot;ticker&quot;/&gt;
&lt;/div&gt;
</pre>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/11/slideshow-with-captions/' rel='bookmark' title='Permanent Link: Image Slideshow with captions'>Image Slideshow with captions</a></li>
<li><a href='http://davecavins.com/2010/08/a-better-annoucements-ticker/' rel='bookmark' title='Permanent Link: A Better Annoucements Ticker'>A Better Annoucements Ticker</a></li>
<li><a href='http://davecavins.com/2009/07/annoucement-slider-using-web-services/' rel='bookmark' title='Permanent Link: Annoucements Slider using SP Web Services'>Annoucements Slider using SP Web Services</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2009/11/sharepoint-vertical-news-ticker/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Image Slideshow with captions</title>
		<link>http://davecavins.com/2009/11/slideshow-with-captions/</link>
		<comments>http://davecavins.com/2009/11/slideshow-with-captions/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 17:12:01 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[slideshow]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[webparts]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=245</guid>
		<description><![CDATA[This is a very simple image slide show script that uses jQuery, SharePoint webservices and the default images library to show images with captions. All the content is pulled from default fields in the images library but feel free to add more fields and customize the code to fit your needs.  Setup To get this [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/07/annoucement-slider-using-web-services/' rel='bookmark' title='Permanent Link: Annoucements Slider using SP Web Services'>Annoucements Slider using SP Web Services</a></li>
<li><a href='http://davecavins.com/2009/11/sharepoint-vertical-news-ticker/' rel='bookmark' title='Permanent Link: SharePoint Vertical News Ticker'>SharePoint Vertical News Ticker</a></li>
<li><a href='http://davecavins.com/2009/10/suggestions-foto-the-sharepoint-search-box-part-2/' rel='bookmark' title='Permanent Link: Adding Suggestions to the Sharepoint search box : Part 2'>Adding Suggestions to the Sharepoint search box : Part 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>This is a very simple image slide show script that uses jQuery, SharePoint webservices and the default images library to show images with captions. All the content is pulled from default fields in the images library but feel free to add more fields and customize the code to fit your needs. </p>
<div id="attachment_331" class="wp-caption aligncenter" style="width: 464px"><img class="size-full wp-image-331" title="slideshow" src="http://davecavins.com/wp-content/uploads/2009/10/slideshow.jpg" alt="Slide show with captions" width="454" height="301" /><p class="wp-caption-text">Slide show with captions</p></div>
<p><span id="more-245"></span></p>
<h2>Setup</h2>
<p>To get this slideshow up and running there are a few things we have to do to prepare.</p>
<ol>
<li>Create a standard image library.  You can add additional fields if needed but the list needs to have all of the out of the box fields.</li>
<li><a href="http://jquery.com" target="_blank" rel="nofollow">Get jQuery</a>.  Either link to the <a href="http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js" target="_blank" rel="nofollow">latest version from Google</a> or download it and put it in a location on your server.</li>
<li><a href="http://www.serie3.info/s3slider/index.php" target="_blank">Download the s3 slider plugin</a> and put it somewhere on your server.</li>
</ol>
<h2>Querying the SharePoint List</h2>
<p>I am using the <a href="http://weblogs.asp.net/jan/archive/2009/05/06/querying-sharepoint-list-items-using-jquery.aspx" rel="nofollow" target="_blank">techniques described by Jan Tielnes</a> for querying SP lists with javascript.  Here is the code.</p>
<pre class="brush: jscript;">
&lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot; src=&quot;Scripts/jquery-1[1].3.2.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; language=&quot;javascript&quot; src=&quot;Scripts/s3Slider.js
&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
    $(document).ready(function() {
        var soapEnv =
            &quot;&lt;soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'&gt; \
                &lt;soapenv:Body&gt; \
                     &lt;GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'&gt; \
                        &lt;listName&gt;Pictures&lt;/listName&gt; \
                         &lt;viewFields&gt; \
                            &lt;ViewFields&gt; \
                               &lt;FieldRef Name='Title' /&gt; \
                               &lt;FieldRef Name='FileDirRef' /&gt; \
                               &lt;FieldRef Name='NameOrTitle' /&gt; \
                               &lt;FieldRef Name='FileRef' /&gt; \
                               &lt;FieldRef Name='ID' /&gt; \
                               &lt;FieldRef Name='Description' /&gt; \
                               &lt;FieldRef Name='FileType' /&gt; \
                           &lt;/ViewFields&gt; \
                        &lt;/viewFields&gt; \
                    &lt;/GetListItems&gt; \
                &lt;/soapenv:Body&gt; \
            &lt;/soapenv:Envelope&gt;&quot;;
        $.ajax({
            url: &quot;_vti_bin/lists.asmx&quot;,
            type: &quot;POST&quot;,
            dataType: &quot;xml&quot;,
            data: soapEnv,
            complete: processResult,
            contentType: &quot;text/xml; charset=\&quot;utf-8\&quot;&quot;
        });
    });
    function processResult(xData, status) {
        $(xData.responseXML).find(&quot;z\\:row&quot;).each(function() {
            var urlValue = $(this).attr(&quot;ows_FileDirRef&quot;);
                                                var urlArray;
                                                var urlName;
                                                     if (urlValue == undefined)
                                {
                                urlName = &quot;- - -&quot;;
                }
                else {
                                urlArray = urlValue.split(&quot;;#&quot;);
                                urlName= urlArray[1];
                }
                                                var thumbUrl = $(this).attr(&quot;ows_NameOrTitle&quot;);
                                                var thumbArray;
                                                var thumb;          

                                                     if (thumbUrl == undefined)
                                {
                                thumb = &quot;- - -&quot;;
                }
                else {
                                thumbArray = thumbUrl.split(&quot;.&quot;);
                                thumb= thumbArray[0];
                }
            var liHtml = &quot;&lt;li class='s3sliderImage'&gt;&lt;img src='/&quot; + urlName + &quot;/_w/&quot; + thumb +&quot;_&quot; + $(this).attr(&quot;ows_FileType&quot;) + &quot;.jpg'/&gt;&lt;span&gt;&lt;a href='&quot; + urlName + thumb + &quot;.&quot; + $(this).attr(&quot;ows_FileType&quot;) + &quot;'&gt;View Larger&lt;/a&gt;&lt;h3&gt;&quot; + $(this).attr(&quot;ows_Title&quot;) + &quot;&lt;/h3&gt;&quot; + $(this).attr(&quot;ows_Description&quot;) + &quot;&lt;/span&gt;&lt;/li&gt;&quot;;
            $(&quot;#s3sliderContent&quot;).append(liHtml);
        });
        $('#s3slider').s3Slider({timeOut: 4000 });
}
&lt;/script&gt;
&lt;div id=&quot;s3slider&quot; &gt;
   &lt;ul id=&quot;s3sliderContent&quot; /&gt;
&lt;/div&gt;
</pre>
<h3>Configuring the query.</h3>
<p>In the code above I am querying a list named &#8216;Pictures&#8217; and returning the title, link to the file, file name, file type, description and the ID. To change the name of the list just update this tag with the appropriate list name.</p>
<pre class="brush: plain;">&lt;listName&gt;Name of the List you want to use&lt;/listName&gt;</pre>
<p><strong>Note:</strong> If you have renamed a default Image library the name may not have actually changed from SharePoint&#8217;s perspective so double check by browsing to the list and reading the URL string.</p>
<p>If you want to include data from other fields in the html output just add the field names to the &#8216;ViewFields&#8217; section of the soap envelope.</p>
<pre class="brush: plain;"> &lt;FieldRef Name='NameOfField' /&gt; \</pre>
<p>You will also need to add a reference to the field in the &#8216;liHtml&#8217; variable. When referencing fields in the variable remember to put &#8216;ows_&#8217; in front of the field name.</p>
<p>Remember the field name that is displayed through the SharePoint UI is not always the real field name.  In this post <a title="Find field names in SharePoint" rel="nofollow" href="http://www.heathersolomon.com/blog/articles/CustomItemStyle.aspx" target="_blank">Heather Solomon describes a good way to find the real field names</a>.</p>
<h2>The CSS</h2>
<p>I made a few changes to the CSS to set the size of the slideshow and the colors and fonts for the captions</p>
<pre class="brush: css;">
 #s3slider {width: 450px; height: 300px; position: relative; overflow: hidden; border:1px solid #666;}
#s3sliderContent {width: 450px; position: absolute; top: 0; margin-left: 0;}
.s3sliderImage {float: left; position: relative; display: none;}
.s3sliderImage span {
   position: absolute;
   left: 0;
   font: 10px/15px Arial, Helvetica, sans-serif;
   padding: 5px 13px;
   width: 449px;
   background-color: #fff;
   filter: alpha(opacity=70);
   -moz-opacity: 0.7;
   -khtml-opacity: 0.7;
   opacity: 0.7;
   color: #000;
   display: none;
   top: 0;
}
.s3sliderImage span h3{margin:1px;	padding:1px; font:normal italic 18px/14px Georgia, serif;}
.s3sliderImage span a{float:right;color:#fff;background:#333;padding:2px;text-decoration:none;margin-top:5px;}
.clear {clear: both;}
</pre>
<p><a href="http://davecavins.com/wp-content/uploads/2009/11/ImageSlideShowWithCaptions.dwp" target="_blank" rel="nofollow">Download all the the code in a .dwp here</a></p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/07/annoucement-slider-using-web-services/' rel='bookmark' title='Permanent Link: Annoucements Slider using SP Web Services'>Annoucements Slider using SP Web Services</a></li>
<li><a href='http://davecavins.com/2009/11/sharepoint-vertical-news-ticker/' rel='bookmark' title='Permanent Link: SharePoint Vertical News Ticker'>SharePoint Vertical News Ticker</a></li>
<li><a href='http://davecavins.com/2009/10/suggestions-foto-the-sharepoint-search-box-part-2/' rel='bookmark' title='Permanent Link: Adding Suggestions to the Sharepoint search box : Part 2'>Adding Suggestions to the Sharepoint search box : Part 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2009/11/slideshow-with-captions/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>CorasWorks Essentials Training</title>
		<link>http://davecavins.com/2009/06/corasworks-essentials-training/</link>
		<comments>http://davecavins.com/2009/06/corasworks-essentials-training/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 20:53:12 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[corasworks]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[webparts]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=105</guid>
		<description><![CDATA[Last week I attended CorasWorks Essentials Training the the company headquarters in Reston, VA. The training class provided an overview of the essential features and capabilities of the CorasWorks suite of tools as well as covering usage and configuration. The major benefits of the suite are its ability to do charting and to aggregate information [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/12/updating-the-people-picker/' rel='bookmark' title='Permanent Link: Updating the People Picker'>Updating the People Picker</a></li>
<li><a href='http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/' rel='bookmark' title='Permanent Link: Switch Themes Without a Page Refresh: Part 1'>Switch Themes Without a Page Refresh: Part 1</a></li>
<li><a href='http://davecavins.com/2010/01/hiding-the-status-icon/' rel='bookmark' title='Permanent Link: Hiding the user presence icon'>Hiding the user presence icon</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Last week I attended CorasWorks Essentials Training the the company headquarters in Reston, VA. The training class provided an overview of the essential features and capabilities of the CorasWorks suite of tools as well as covering usage and configuration.</p>
<p>The major benefits of the suite are its ability to do charting and to aggregate information across various sites, site collections, and web applications in a manner not possible with out of the box SharePoint tools (not even the DVWP).<span id="more-105"></span> </p>
<div id="attachment_122" class="wp-caption alignleft" style="width: 298px"><a href="http://davecavins.com/wp-content/uploads/2009/06/CorasWorksLogo.jpg"><img class="size-full wp-image-122" title="CorasWorksLogo" src="http://davecavins.com/wp-content/uploads/2009/06/CorasWorksLogo.jpg" alt="Workplace Software for SharePoint" width="288" height="48" /></a><p class="wp-caption-text">Workplace Software for SharePoint</p></div>
<p>CorasWorks makes it simple to create mashups of data from various lists (don&#8217;t have to be the same type) living on different sites or site collections.  In addition to doing rollups it can also do roll-downs by pushing information from one central location down to subsites.</p>
<p>The major drawback of the toolset is its implementation. In general using certain CorasWorks web parts not only suppresses and removes some out of the box SharePoint functionality it also, in some areas, changes basic page update processes that users have become accustomed to. For instance the CorasWorks grid view webpart does not include hyperlinks to view each item and in some configurations the context menu has been repurposed making it difficult to highlight and copy information. </p>
<p>Users who are accustomed to the quirks of SharePoint will find CorasWorks somewhat limiting and may need some retraining. Users who have no experience with SharePoint will be more likely to quickly accept it.</p>
<p>Overall CorasWorks offers some very powerful functionality that could be very useful but the product has some issue both in terms of workflow and user interface that would require significant user training / retraining.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/12/updating-the-people-picker/' rel='bookmark' title='Permanent Link: Updating the People Picker'>Updating the People Picker</a></li>
<li><a href='http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/' rel='bookmark' title='Permanent Link: Switch Themes Without a Page Refresh: Part 1'>Switch Themes Without a Page Refresh: Part 1</a></li>
<li><a href='http://davecavins.com/2010/01/hiding-the-status-icon/' rel='bookmark' title='Permanent Link: Hiding the user presence icon'>Hiding the user presence icon</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2009/06/corasworks-essentials-training/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
