<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>I'm Learning SilverStripe</title>
		<link>http://www.sslearn.info/sslearn/snippets/</link>
		<atom:link href="http://www.sslearn.info/sslearn/snippets/" rel="self" type="application/rss+xml" />
		<description></description>

		
		<item>
			<title>Image with Fixed SIze</title>
			<link>http://www.sslearn.info/sslearn/image-with-fixed-size/</link>
			<description>&lt;p&gt;If we read the &lt;a href=&quot;http://doc.silverstripe.org/doku.php?id=image&quot; target=&quot;_blank&quot;&gt;documentation silverstripe about the image&lt;/a&gt;, we will get the reference method used to resize the image on silverstripe. But there are questions on the documentation. How do I change the image size by specifying the width and height of the image from the template file?&lt;/p&gt;
&lt;p&gt;The trick is with SetSize method or PaddedImage. Both these methods set the image proportionately width and height. If the specified width and height are not proportionate, then the image will be given a white background.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://www.sslearn.info/sslearn/assets/Fix-size-of-the-Image/SetSize200180-thefallen-wallpaper.jpg&quot; width=&quot;200&quot; height=&quot;180&quot; alt=&quot;&quot; title=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;What if we want the image that really fit either the width or height in size without a white background?&lt;/p&gt;
&lt;p&gt;I still have not found a function that could be like that on silverstripe. But I have modify files from Image.php to make that function. The trick is to add the following two methods in the Image Class.&lt;/p&gt;
&lt;p&gt;Open the &lt;strong&gt;sapphire/core/model/Image.php&lt;/strong&gt; file&amp;nbsp; then add these two methods in the Image Class:&lt;/p&gt;
&lt;pre&gt;&lt;strong&gt;class&lt;/strong&gt; Image &lt;strong&gt;extends&lt;/strong&gt; File{&lt;br /&gt;....&lt;br /&gt;	&lt;strong&gt;public function&lt;/strong&gt; SetFixedSize($width, $height) {&lt;br /&gt;		return $this-&amp;gt;getFormattedImage('SetReSize', $width, $height);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	&lt;strong&gt;public function&lt;/strong&gt; generateSetFixedSize(GD $gd, $width, $height) {&lt;br /&gt;		return $gd-&amp;gt;resize($width, $height);&lt;br /&gt;	}&lt;br /&gt;....&lt;br /&gt;} &lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;After adding these two methods later in the template file (. Ss) we just call the method SetFixedSize to use it like we call the SetSize method. If the Image object named Picture, the template code will be like this:&lt;/p&gt;
&lt;pre&gt;&amp;lt;% control Picture %&amp;gt;&lt;br /&gt;	&amp;lt;% control SetFixedSize(100,120) %&amp;gt;&lt;br /&gt;		&amp;lt;img src=&quot;$URL&quot;/&amp;gt;&lt;br /&gt;	&amp;lt;% end_control %&amp;gt;&lt;br /&gt;&amp;lt;% end_control %&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;From the snippet above programs will be created fix image size of 100x120 with no white background.&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;center&quot; src=&quot;http://www.sslearn.info/sslearn/assets/Fix-size-of-the-Image/SetReSize200180-thefallen-wallpaper.jpg&quot; width=&quot;200&quot; height=&quot;180&quot; alt=&quot;&quot; title=&quot;&quot; /&gt;&lt;/p&gt;</description>
			<pubDate>Wed, 31 Mar 2010 07:18:38 -0500</pubDate>
			
			<guid>http://www.sslearn.info/sslearn/image-with-fixed-size/</guid>
		</item>
		
		<item>
			<title>HOW TO Querying Pages in Silverstripe</title>
			<link>http://www.sslearn.info/sslearn/how-to-querying-pages-in-silverstripe/</link>
			<description>&lt;p&gt;Silverstripe uses a class called DataObject to interact with databases. We could say that every interaction with the database will be performed by the DataObject. For example we can do a query for any data we want on the Silverstripe with this object.&lt;/p&gt;
&lt;p&gt;In &lt;a href=&quot;http://www.sslearn.info/sslearn/creating-a-new-page-type/&quot;&gt;making a new page&lt;/a&gt; type called ArticlePage, you may be wondering, &quot;How do I create a list of ArticlePage pages?&quot;. We know that every page on silverstripe will be stored in MySQL database. So the answer to that question is that we live make a query on the MySQL database to get the entire list page and we'll display it on other pages.&lt;/p&gt;
&lt;p&gt;Actually there are two ways to do it all.&lt;/p&gt;
&lt;h4&gt;&lt;br /&gt;&lt;/h4&gt;
&lt;h4&gt;1. Querying If the page it was on the child of a particular page&lt;/h4&gt;
&lt;p&gt;If the page you want to be queried is in the child of a page, we just call the control named Children in the templates (.ss file). Children will give output an array contain objects of the child page. Each array will have the attributes and methods in accordance with the type of pages.&lt;/p&gt;
&lt;p&gt;Example we write like this:&lt;/p&gt;
&lt;pre&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;% control &lt;strong&gt;Children&lt;/strong&gt; %&amp;gt;&lt;br /&gt;	&amp;lt;li&amp;gt;&amp;lt;a href=&quot;$Link&quot;&amp;gt;$Title&amp;lt;/a&amp;gt;&amp;lt;p&amp;gt;$Content.Summary(50)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;	&lt;br /&gt;&amp;lt;% end_control %&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;On that page will be shown a html list that contains a list of titles and summaries from the pages of his children.&lt;/p&gt;
&lt;h4&gt;2. Querying If the pages are not on the child of a particular page&lt;/h4&gt;
&lt;p&gt;This second condition, we must create a method on the controller class of page you want to display a list of other pages. For example a page that wants to display the list is Page and type of page you want to make the list is ArticlePage. Next we must create a new method on the controller of Page.&lt;/p&gt;
&lt;p&gt;mysite/code/Page.php&lt;/p&gt;
&lt;pre&gt;&lt;strong&gt;class&lt;/strong&gt; Page_Controller &lt;strong&gt;extends&lt;/strong&gt; ContentController{&lt;br /&gt;. . . .&lt;br /&gt;	&lt;strong&gt;public&lt;/strong&gt; &lt;strong&gt;function&lt;/strong&gt; ArticlePageList($limit=10){&lt;br /&gt;		$start = isset($_GET['start']) ? (int) $_GET['start'] : 0;&lt;br /&gt;		$list = DataObject::get(&quot;ArticlePage&quot;, &quot;&quot;, &quot;&quot;,&quot;&quot;,&quot;$start , $limit&quot;);&lt;br /&gt;		return $list;&lt;br /&gt;	}&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;This method made ArticlePageList will issue DataObjectSet output that contains a collection of DataObject. Function &lt;strong&gt;DataObject::get&lt;/strong&gt; is a function that is used to retrieve an array of &lt;span style=&quot;text-decoration: underline;&quot;&gt;all DataObject(s) named ArticlePage&lt;/span&gt; found on the SiteTree no matter where the hierarchy location. In the method there is a parameter $limit used to determine the amount of data will be taken, for the default 10 data will be taken.&lt;/p&gt;
&lt;p&gt;Furthermore, to use these methods we should call ArticlePageList controls on the template.&lt;/p&gt;
&lt;pre&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;% control &lt;strong&gt;ArticlePageList&lt;/strong&gt; %&amp;gt;&lt;br /&gt;	&amp;lt;li&amp;gt;&amp;lt;a href=&quot;$Link&quot;&amp;gt;$Title&amp;lt;/a&amp;gt;&amp;lt;p&amp;gt;$Content.Summary(50)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;	&lt;br /&gt;&amp;lt;% end_control %&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;At the function DataObject::get, there are several parameters that can be used to customize the output of the query. Suppose we want to take ArticlePage whose title has the word &quot;silverstripe&quot;, then the code becomes:&lt;/p&gt;
&lt;pre&gt;$list = DataObject::get(&quot;ArticlePage&quot;, &quot;Title LIKE '%silverstripe%' &quot;, &quot;&quot;,&quot;&quot;,&quot;$start , $limit&quot;);&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;or if we want to display the results sorted by the most recent data, then the code becomes:&lt;/p&gt;
&lt;pre&gt;$list = DataObject::get(&quot;ArticlePage&quot;, &quot;&quot;, &quot;Created DESC&quot;,&quot;&quot;,&quot;$start , $limit&quot;);&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;For more details about the method on the DataObject class you can learn its functions in the &lt;a href=&quot;http://api.silverstripe.org/sapphire/core/DataObject.html#get&quot; target=&quot;_blank&quot;&gt;API Documentation of Class DataObject&lt;/a&gt;.&lt;/p&gt;</description>
			<pubDate>Fri, 02 Apr 2010 01:40:42 -0500</pubDate>
			
			<guid>http://www.sslearn.info/sslearn/how-to-querying-pages-in-silverstripe/</guid>
		</item>
		
		<item>
			<title>Creating Paging (per page) for Query Results</title>
			<link>http://www.sslearn.info/sslearn/creating-paging-per-page-for-query-results/</link>
			<description>&lt;p&gt;There's one of my friends asking how to create paging in &lt;a href=&quot;http://www.sslearn.info/sslearn/how-to-querying-pages-in-silverstripe/&quot;&gt;query results on silverstripe&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;It is to display the query results we must make the results is limited per page. Paging is the term used to regulate the number of query results are displayed per page. If not using the paging all the query results will be displayed on one page and it is not reasonable if it is implemented on the website. We can imagine, if the google.com search results do not display in the form of paging, then we must make scrolling to find the search results to the bottom of result page.&lt;/p&gt;
&lt;p&gt;In fact Silverstripe paging facilities already provided by the DataObjectSet object. This object is used to store a collection of DataObject. DataObjek is a Class to represent the Silverstripe Database. You can read how to use DataObject in &lt;a href=&quot;http://doc.silverstripe.org/doku.php?id=dataobject&quot; target=&quot;_blank&quot;&gt;http://doc.silverstripe.org/doku.php?id=dataobject&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Create paging on silverstripe actually easy. We class to use Class DataObjectSet on our query function. Suppose we make a function ArticlePageList whose content type to display the list of pages that we will restrict ArticlePage 10 per page, its code as follows:&lt;/p&gt;
&lt;pre&gt;public function ArticlePageList($limit=10){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $start = isset($_GET['start']) ? (int) $_GET['start'] : 0;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $list = DataObject::get(&quot;ArticlePage&quot;, &quot;&quot;, &quot;&quot;,&quot;&quot;,&quot;$start , $limit&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return $list;&lt;br /&gt;}&lt;/pre&gt;
&lt;p&gt;In functions there is a $list variable which is the DataObjectSet output of the static method DataObject: get. In this function we also determine the limit of the number of query results. Then on the template we can create the following code to display it:&lt;/p&gt;
&lt;pre&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;&amp;lt;% control ArticlePageList %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;li&amp;gt;&amp;lt;a href=&quot;$Link&quot;&amp;gt;$Title&amp;lt;/a&amp;gt;&amp;lt;p&amp;gt;$Content.Summary(50)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;nbsp; &lt;br /&gt;&amp;lt;% end_control %&amp;gt;&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;/pre&gt;
&lt;p&gt;Above code wil be shown a list of type list of pages ArticlePage limit to 10 ArticlePage per Page.&lt;/p&gt;
&lt;p&gt;To make the paging, we just use the method that has been provided by DataObjectSet. Method which we can use for paging is as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;MoreThanOnePage()&lt;/strong&gt;, this method is used to determine if the output of the query results more than one page or not.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NextLink()&lt;/strong&gt;, this method is used to get the URL for the next page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NotFirstPage()&lt;/strong&gt;, this method is used to provide information that the query results are displayed not on the first page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;NotLastPage()&lt;/strong&gt;, this method is used to provide information that the query results are displayed not on the last page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;PrevLink()&lt;/strong&gt;, this method is used to obtain the URL to the previous page.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;to use the methods, we can directly implements it on the template silverstripe as below:&lt;/p&gt;
&lt;pre&gt;&amp;lt;% if LatestChild.NotFirstPage %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a class=&quot;prev&quot; href=&quot;$LatestChild.PrevLink&quot;&amp;gt;&amp;amp;laquo; Sebelumnya&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;% end_if %&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;lt;% if LatestChild.NotLastPage %&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;a class=&quot;next&quot; href=&quot;$LatestChild.NextLink&quot;&amp;gt;Berikutnya &amp;amp;raquo;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;% end_if %&amp;gt;&lt;/pre&gt;
&lt;p&gt;In the above code there will be displayed a link to the previous page and next page for the ArticlePage list.&lt;/p&gt;</description>
			<pubDate>Tue, 20 Apr 2010 04:23:15 -0500</pubDate>
			
			<guid>http://www.sslearn.info/sslearn/creating-paging-per-page-for-query-results/</guid>
		</item>
		
		<item>
			<title>Creating Simple Page Counter</title>
			<link>http://www.sslearn.info/sslearn/creating-simple-page-counter/</link>
			<description>&lt;p&gt;Page counter sometimes we need to know the number of the many people who read a page on our website. From page counters, we can also get information about the pages most often read by people. On silverstripe there is no page counters function, so we have to create your own.&lt;/p&gt;
&lt;p&gt;To create a page counter is very easy. We just need to create a DataObject that contains two fields namely Counter and Page. Counter Field&amp;nbsp; used to store counter&amp;nbsp; data. Later this DataObject we relate to Page with Page field. Here we create an dataobject separate from page object to avoid versioning page data on each data update.&lt;/p&gt;
&lt;p&gt;This Data Object can we save it into a file, for example, let's call the file with a name PageCounter.php in mysite directory.&lt;/p&gt;
&lt;p&gt;PageCounter.php&lt;/p&gt;
&lt;pre&gt;&amp;lt;? &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class PageCounter extends DataObject{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; static $db = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Counter' =&amp;gt; 'Int',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; static $has_one = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'Page' =&amp;gt; 'Page',&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Next we just add the following line in the init() function&amp;nbsp; of Page_Controller class in Page.php file.&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $pagecounter = DataObject::get_one(&quot;PageCounter&quot;,&quot;PageID='$this-&amp;gt;ID'&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(!$pagecounter){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $pagecounter = new PageCounter();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $pagecounter-&amp;gt;PageID=$this-&amp;gt;ID;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $pagecounter-&amp;gt;Counter = $pagecounter-&amp;gt;Counter+1;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $pagecounter-&amp;gt;write();&lt;/pre&gt;
&lt;p&gt;Next we must create a function to get value from the page counter object. This function is created inside the Page_Controller class on Page.php file. The goal is only to take counters data.&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public function pagecount(){&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; $pagecounter = DataObject::get_one(&quot;PageCounter&quot;,&quot;PageID='$this-&amp;gt;ID'&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return $pagecounter-&amp;gt;Counter;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/pre&gt;
&lt;p&gt;This function we can use in our template page.&lt;/p&gt;</description>
			<pubDate>Sun, 09 May 2010 09:15:17 -0500</pubDate>
			
			<guid>http://www.sslearn.info/sslearn/creating-simple-page-counter/</guid>
		</item>
		
		<item>
			<title>Displays month and year options on the calendar datefield</title>
			<link>http://www.sslearn.info/sslearn/displays-month-and-year-options-on-the-calendar-datefield/</link>
			<description>&lt;p&gt;Silverstripe has a datefield. This field is used to fill the dates on the form. In version 2.4 by default, this field is only a text field to fill in the date format as &quot;mm / dd / yyyy&quot;. But this field can be custom to display the calendar of the jquery javascript-UI. How to use it fairly easily:&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $datefield = new DateField(&quot;Date&amp;rdquo;, &quot;Date&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $datefield-&amp;gt;setConfig('showcalendar', true);&lt;/pre&gt;
&lt;p&gt;Calendar of this field can actually be used to fill out the form. But has lacked at the time of filling I have a problem to change the month and year of filling, for example when filling date of birth. Back and forward buttons at the top of this field can only change one month backward or forward.&lt;br /&gt;&lt;br /&gt;To activate the option in the calendar month and year this field, the way he is editing files sapphire / forms / DateField.php at line number 528 by adding two additional array variables:&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'changeYear' =&amp;gt; true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'changeMonth' =&amp;gt; true,&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;So variable conf becomes:&lt;/p&gt;
&lt;pre&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $conf = array(&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'showcalendar' =&amp;gt; true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'dateFormat' =&amp;gt; $format,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'changeYear' =&amp;gt; true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 'changeMonth' =&amp;gt; true,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; );&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;Array variable changeYear and changeMonth a jquery datepicker-UI option to display a selection of months and years. Later after that on datefield calendar will be as below:&lt;/p&gt;
&lt;p&gt;&lt;img class=&quot;left&quot; src=&quot;http://www.sslearn.info/sslearn/assets/Displays-options-months-and-years-on-the-calendar-datefield/dtpicker2.png&quot; width=&quot;308&quot; height=&quot;243&quot; alt=&quot;&quot; title=&quot;&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Thu, 26 Aug 2010 18:40:27 -0500</pubDate>
			
			<guid>http://www.sslearn.info/sslearn/displays-month-and-year-options-on-the-calendar-datefield/</guid>
		</item>
		

	</channel>
</rss>
