Avaxnet
مقاله اي كامل راجع به RSS - نسخه قابل چاپ

+- Avaxnet (http://www.avaxnet.com)
+-- انجمن: کامپیوتر (/forum-1.html)
+--- انجمن: برنامه نویسی (/forum-6.html)
+--- موضوع: مقاله اي كامل راجع به RSS (/thread-1209.html)



مقاله اي كامل راجع به RSS - round_robin - Monday 26 March 2007 09:38

چكيده:

معمولا محتواي سايتها در قالب مشخصي ريخته و به بازديدكنندگان نمايش داده ميشود. اين كار گاهي به صورت دستي و گاهي به صورت اتوماتيك انجام ميشود ولي در هر حال نتيجه يكي است. اينكار باعث ميشود در هر بار بازديد از سايت اطلاعات بي موردي لود شود كه اصلا لازم نيست. علاوه بر اين هر سايت به طريقي اطلاعات را نمايش ميدهد كه اين باعث گيج شدن كاربران تازه كار خواهد شد. به اين صورت اسناد و مطالب غير قابل انعطاف خواهند بود.

News Feed اين مشكل را حل و محتويات سايت را از شكل و قالب آن جدا ميكند. News Feed از چيزي كه به نظر ميرسد ساده تر است. اين اسناد صفحات ساده متني هستند. اطلاعات در اين صفحات به گونه اي مرتب و طبقه بندي شده اند كه به راحتي به وسيله برنامه هاي كامپيوتري قابل خواندن هستند. از لحاظ فني اين اسناد XML هستند كه به صورت خاصي استاندارد شده اند.

براي News Feed تعدادي استاندارد وجود دارد. مشهورترين آنها RSS است كه در نسخه هاي مختلفي عرضه شده است. RDF و Atom از ديگر استاندارهاي News Feed هستند. برنامه هايي كه قادر به خواندن News Feed هستند اغلب از تمام اين استانداردها پشتيباني ميكنند بنابراين از اين بابت مشكلي وجود ندارند.

سايتهايي كه News Feed ارائه ميدهند آن را اكثرا با علامتهاي زير نشان ميدهند:

 

آيکون های فوق لينک های گرافيکی به فايل های RSS می باشند که  URLs مورد نظر را برای يک و يا چندين RSS Feed ، ارائه می نمايند .با کليک بر روی آنان يک فايل با فرمت  XML نمايش داده می شود . با استفاده از برنامه هائی خاص  نيز می توان آدرس مربوط به هر RSS Feed  مورد علاقه را مشخص تا  در ادامه ، خلاصه ای از  اطلاعات و لينک های مربوطه نمايش داده شود.




RE: مقاله اي كامل راجه به RSS - round_robin - Monday 26 March 2007 10:01

1-1 : معرفي RSS :

RSS که از کلمات Really Simple Syndication   و يا   Rich Site Summary اقتباس شده است ،  روشی به منظور توزيع لينک ها به صفحات وب از طريق فايل های مبتنی بر XML است . فايل های فوق معمولا" شامل عنوان ، خلاصه ای از آن  و لينک به صفحه حاوی تمامی اطلاعات مرتبط با عنوان منتشر شده ، می باشند. علاقه مندان ( افراد و يا سايت ها ) می توانند با دريافت فايل های فوق ( مشترک آنان شوند ) ،  آگاهی لازم در خصوص تغييرات و يا آخرين وضعيت اطلاعات منتشر شده بر روی يک وب سايت را کسب نمايند .


يکی از متداولترين کاربردهای استفاده از تکنولوژی
RSS ، نشر عناوين و خلاصه اخبار است . سازمان ها و آژانس های خبری به صورت مستمر فايل RSS مربوط به خود را که نظير يک فايل ايندکس به اخبار و يا مقالات است ، بهنگام می نمايند . خوانندگان می توانند با استفاده از لينک ارائه شده و کليک بر روی آن به صفحه اصلی نشر خبر و يا مقاله  هدايت شوند . با عضويت کاربران به مجموعه ای از فايل های RSS ، امکان بهنگام سازی مستمر اطلاعات آنان در خصوص موضوعات مورد علاقه فراهم می گردد . ( مطالعه خلاصه اطلاعات ارائه شده و در صورت تمايل، استفاده از لينک به منظور مطالعه تمامی خبر و يا مقاله ) . فايل های RSS محدود به نشر خلاصه اخبار نبوده و هر وب سايتی که به صورت مستمر اقدام به ارائه محتوا می نمايد نيز می تواند از اين تکنولوژی استفاده نمايد . بدين ترتيب ، اطلاعات لازم برای کاربران ارسال و آنان می توانند خلاصه ای از اطلاعات منتشر شده را بر روی کامپيوتر خود مشاهده نموده  و در صورت تمايل از سايت اصلی نشر خبر و يا مقاله استفاده نمايند .

2-1 : ايجاد RSS :

RSS feeds با ايجاد يک فايل XML  و ارائه لينک آن برای اعضاء و متقاضيان ، ايجاد می گردد . فرآيند ايجاد فايل می تواند به صورت دستی ( استفاده از يک اديتور متنی و يا يک اديتور XML ) و يا به صورت پويا و بر اساس برنامه ای خاص باشد . با توجه به اين که اغلب،  محتوای فايل های  RSS از يک بانک اطلاعاتی دريافت می گردد ، می بايست ايجاد فايل های RSS  حتی المقدور به صورت اتوماتيک باشد .

3-1 : استانداردهای RSS :

تاکنون استانداردهای متعددی به منظور کدينگ RSS ايجاد شده است. متداولترين آنان نسخه شماره دو می باشد  که در مشاهده لینک ، تشريح شده است . RSS  عضوی از خانواده بزرگ  XML بوده و تمامی فايل های RSS می بايست بر اساس  مشخصه استاندارد XML 1.0 که توسط کنسرسيوم وب       ( W3C ) منتشر شده است ، تائيد شوند .

4-1 : معرفي تگها :

همان طور که قبلا اشاره شد RSS چيزی به جز يک XML نشانه گذاری شده با تگ های مخصوص نيست. کد زير يک نمونه ساده RSS را نشان می دهد.

کد:
<SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">&lt;rss version="2.0"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;channel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;title&gt;IranASP.NET New Articles RSS Feed&lt;/title&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;language&gt;fa-IR&lt;/language&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;copyright&gt;(c) 2004 by IranASP.NET&lt;/copyright&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;pubDate&gt;Sun, 08 Aug 2004 06:11:37 GMT&lt;/pubDate&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;lastBuildDate&gt;Sun, 08 Aug 2004 06:11:37 GMT&lt;/lastBuildDate&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;generator&gt;IranASP.NET rss generator&lt;/generator&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;item&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;</SPAN><SPAN lang=AR-SA dir=rtl style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">کاهش</SPAN><SPAN dir=ltr></SPAN><SPAN lang=AR-SA style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA"><SPAN dir=ltr></SPAN> </SPAN><SPAN lang=AR-SA dir=rtl style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">حجم خروجی در</SPAN><SPAN dir=ltr></SPAN><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA"><SPAN dir=ltr></SPAN> ASP.NET&lt;/title&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;link&gt;http://www.iranasp.net/articles/showarticle.aspx?articleid=154&lt;/link&gt; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;pubDate&gt;Sun, 25 Jul 2004 19:30:00 GMT&lt;/pubDate&gt; <BR>&nbsp;&nbsp;&nbsp; &lt;/item&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/channel&gt;<BR>&lt;/rss&gt;</SPAN>

اجازه بدهيد به تگ های اين سند کمی دقيق تر نگاه کنيم
 :<rss> 
تشکيل دهنده تگ ريشه سند است که شامل نسخه سند RSS هم می باشد. آخرين نسخه   RSS نسخه 2 است.

 :<channel> 
گره ريشه سند RSS می تواند تگ <channel> هم داشته باشد. اين تگ هم به نوبه خود می تواند شامل گره های <tile>,<link> و <item> باشد.

 :<title> 
مشخص کننده عنوان سند RSS است.

 :<link> 
اين تگ URL سايت ارايه دهنده RSS را مشخص می کند.
 :<description> 
جزييات و اطلاعات بيشتر مربوط به اين سند را مشخص می کند.
 

:<copyright>  اطلاعات مربوط به کپی رايت سند را مشخص می کند.


 :<generator> 
اين تگ Application ای که اين سند را ساخته معرفی می کند.
علاوه بر تگ های بالا، يک سند RSS می تواند يک يا چند تگ <item> داشته باشد. تگ <item> مشخص کننده همان محتوايی است که می خواهيد به اشتراک بگذاريد مثلا يک مقاله يا يکی از پست های يک وبلاگ. هر تگ <item> به علاوه شامل زيرگره های زير است:

 :<title> 
اين تگ عنوان آيتم را مشخص می کند مثلا عنوان مقاله.

 :<link> 
اين تگ URL آن آيتم را نشان می دهد مثلا آدرس مقاله در وب.

 :<description> 
اين تگ آيتم را توصيف می کند، در مورد يک مقاله می تواند شامل خلاصه مقاله    باشد.
 :<pubDate> 
اين تگ تاريخ انتشار آن آيتم را نشان می دهد. فرمت معمول برای نمايش اين تاريخ به صورت Sun, 25 Jul 2004 12:00:00 GMT است.

 

 

5-1 : معرفي عناصر :

يک سند RSS با عنصر <rss>  که به دنبال آن خصلت " version = "2.0  آورده می شود ، تعريف           می گردد  .عنصر فوق به همراه  تگ پايانی ،  تمامی سند را در خود جای می دهد :

<rss version="2.0">
   ...
</rss>

عنصر <channel> :

زير مجموعه عنصر <rss> را يک المان <channel> تشکيل می دهد که شامل اطلاعاتی در رابطه وب سايتی است که لينک ها و خلاصه اطلاعات موردنظر از آن استخراج می گردند . channel از سه عنصر ضرروی تشکيل می گردد :  <title>, <link>و <description>.

کد:
</P>
<P class=MsoNormal dir=rtl style="TEXT-JUSTIFY: kashida; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%; TEXT-ALIGN: justify; TEXT-KASHIDA: 0%; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"></P>
<DIV dir=rtl align=left>
<TABLE class=MsoNormalTable dir=rtl style="WIDTH: 290.25pt; BORDER-COLLAPSE: collapse; mso-padding-alt: 0cm 0cm 0cm 0cm; mso-table-dir: bidi" cellSpacing=0 cellPadding=0 width=387 border=0>
<TBODY>
<TR style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<TD style="BORDER-RIGHT: #c0c0c0; PADDING-RIGHT: 0cm; BORDER-TOP: #c0c0c0; PADDING-LEFT: 0cm; BACKGROUND: #f4f4ff; PADDING-BOTTOM: 0cm; BORDER-LEFT: #c0c0c0; WIDTH: 290.25pt; PADDING-TOP: 0cm; BORDER-BOTTOM: #c0c0c0" width=387>
<P class=MsoNormal dir=ltr style="MARGIN: 0cm 0cm 0pt; DIRECTION: ltr; LINE-HEIGHT: 200%; unicode-bidi: embed; TEXT-ALIGN: left; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA; mso-bidi-font-family: 'B Nazanin'">&lt;rss version="2.0"&gt;<BR>&nbsp; &lt;channel&gt;<BR></SPAN><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">&nbsp;&nbsp;&nbsp;&nbsp; &lt;title&gt;</SPAN><SPAN lang=AR-SA dir=rtl style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">عنوان سايت</SPAN><SPAN dir=ltr></SPAN><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA"><SPAN dir=ltr></SPAN> &nbsp;.&lt;/title&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;link&gt;</SPAN><SPAN lang=AR-SA dir=rtl style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">آدرس</SPAN><SPAN dir=ltr></SPAN><SPAN lang=AR-SA style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA"><SPAN dir=ltr></SPAN> </SPAN><SPAN lang=AR-SA dir=rtl style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">سايت</SPAN><SPAN dir=ltr></SPAN><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA"><SPAN dir=ltr></SPAN> &lt;/link&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;description&gt; </SPAN><SPAN lang=AR-SA dir=rtl style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA">توضيحاتی در رابطه با عملکرد سايت</SPAN><SPAN dir=ltr></SPAN><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA"><SPAN dir=ltr></SPAN> &lt;/description&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<BR>&nbsp; &lt;/channel&gt;<BR>&lt;/rss&gt;</SPAN><SPAN style="FONT-SIZE: 14pt; COLOR: black; LINE-HEIGHT: 200%; mso-bidi-language: AR-SA; mso-bidi-font-family: 'B Nazanin'"><o:p></o:p></SPAN></P></TD></TR></TBODY></TABLE></DIV>
<P class=MsoNormal dir=rtl style="TEXT-JUSTIFY: kashida; MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 200%; TEXT-ALIGN: justify; TEXT-KASHIDA: 0%; mso-margin-top-alt: auto; mso-margin-bottom-alt: auto">

ساير اطلاعات مورد نياز را می توان به بخش channel و با استفاده از مشاهده لینک   ، اضافه نمود . 

عنصر <item> :

يک channel می تواند شامل يک و يا چندين عنصر  <item> باشد . يک <item> شامل عناصری به منظور مشخص نمودن عنوان، لينک و خلاصه ای از اطلاعات  در رابطه با مطلب منتشر شده ( خبر ، مقاله )  است . يک عنصر <item> معمولا" از سه عنصر <title>, <link>و <description> تشکيل می گردد . اطلاعات ارائه شده توسط يک <item>  ممکن است کامل بوده و نيازی به استفاده از گره فرزند <link> نباشد .




RE: مقاله اي كامل راجه به RSS - round_robin - Monday 26 March 2007 10:05

1-2 : ايجاد بانك اطلاعاتي  :

اطلاعات موجود در فايل های RSS را می توان به صورت دستی و با استفاده از يک اديتور متنی و يا يک اديتور XML ايجاد نمود. در صورتی که فرکانس تغيير اطلاعات زياد باشد، روش فوق گزينه ای مناسب نخواهد بود. در چنين مواردی می توان اطلاعات مورد نظر را از بانک اطلاعاتی مربوطه ( اخبار ، مقالات )  بازيابی و آنان را در فايل RSS درج نمود . بدين ترتيب در صورت بروز هر گونه تغيير در بانک اطلاعاتی ، فايل RSS نيز به صورت اتوماتيک بهنگام می گردد.

مثال : ايجاد  RSS با استفاده از يک بانک اطلاعاتی

در اين مثال قصد د اريم اطلاعات را از يک بانک اطلاعاتی اکسس خوانده و به صورت يک فايل XML با فرمت RSS ذخيره نمائيم .

فرضيات :

  • بانک اطلاعاتی نمونه :  RSS.mdb 
  • جدول حاوی لينک های مورد نظر:  XMLlink
  • جدول XMLLink در بانک اطلاعاتی rss.mdb  دارای لی اوت زير است . اسامی فيلدها در جدول XMLlink مشابه اسامی مورد نياز يک فايل RSS 2.0 در نظر گرفته شده اند .

اندازه

نوع

نام فيلد

 

Date/Time

PubDate

100

Text

Title

100

Text

Link

 

Memo

Description

2-2 : ايجاد  فايل RSS Feed :
مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر
اسکريپت های زير يک فايل
RSS 2.0 را با توجه به اطلاعات موجود در بانک اطلاعاتی RSS.mdb ايجاد و آن را با نام RSS.XML در فهرست ريشه وب مورد نظر ذخيره می نمايد. 

<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.IO" %>

<SCRIPT runat="server">

  
Sub Page_Load
       Create_RSS ()
   End Sub

Sub Create_RSS ( )

Dim DBConnection As OleDbConnection
Dim DBCommand As OleDbCommand
Dim DBReader As OleDbDataReader
Dim SQLString As String
Dim FileWriter As StreamWriter

DBConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\RSS.mdb")
DBConnection.Open()
SQLString = "SELECT * FROM XMLLink"
DBCommand = New OleDbCommand(SQLString, DBConnection)
DBReader = DBCommand.ExecuteReader()

FileWriter = File.CreateText(MapPath("RSS.xml"))
FileWriter.WriteLine("<rss version=""2.0"">" )
FileWriter.WriteLine("<channel>")
FileWriter.WriteLine("<title>Sakha Ravseh </title>")
FileWriter.WriteLine("<link>http://www.srco.ir/</link>")
FileWriter.WriteLine("<description>Software ,Hardware ,Network </description>")

While DBReader.Read()
  FileWriter.WriteLine("<item>")
  FileWriter.WriteLine("<pubDate>" & DBReader("PubDate") & "</pubDate>")
  FileWriter.WriteLine("<title>" & DBReader("Title") & "</title>")
  FileWriter.WriteLine("<link>" & DBReader("Link") & "</link>")
  FileWriter.WriteLine("<description>" & DBReader("Description") & "</description>")
  FileWriter.WriteLine("</item>")
End While

FileWriter.WriteLine("</channel>")
FileWriter.WriteLine("</rss>")
FileWriter.Close()
DBReader.Close()
DBConnection.Close()
End Sub

</SCRIPT>

 مرحله دوم :  پس از ذخيره کد فوق در فايلی با نام MakeRss.aspx و اجرای آن ، فايل RSS.xml ايجاد    می گردد .

توضيحات :

  • به منظور بازيابی رکوردهای موجود در بانک اطلاعاتی و ايجاد يک فايل  RSS از ساختار تکرار While استفاده شده است .
  • به منظور نوشتن رکوردهای بازيابی شده در فايل RSS از کلاس StreamWriter دات نت استفاده شده است . بنابراين لازم است که از System.IO در ابتدای برنامه استفاده شود .          ( " Import Namespace="System.IO )
  •  namespace فوق کلاس های StreamReader و StreamWriter را به منظور خواندن و نوشتن در فايل های text ارائه می نمايد.
     
  • کلاس StreamReader دارای متدهای متفاوتی  به منظور خواندن فايل های text است :

Dim FileReader As StreamReader

FileReader = File.OpenText(path)
FileLine = FileReader.ReadLine()
FileContents = FileReader.ReadToEnd()

FileReader.Close()

 

  •  FileReader متغيری است که به عنوان يک شی StreamReader تعريف شده است . متد openText  فايل موجود در مسير مشخص شده را به شی FileReader نسبت می دهد . متد ReadLine يک خط از فايل text را بدون در نظر گرفتن کاراکتر Line-break ، می خواند. با استفاده از  متد ReadToEnd تمامی محتويات فايل با لحاظ نمودن کاراکترهای  line-break ، خوانده می شوند. از متد close  پس از اتمام کار و به منظور بستن فايل استفاده می گردد .
  • کلاس StreamWriter دارای متدهای متفاوتی به منظور نوشتن در فايل های text است :

Dim FileWriter As StreamWriter

FileWriter = File.CreateText(path)
FileWriter = File.AppendText(path)
FileWriter.WriteLine(text)
FileWriter.Write(text)

FileWriter.Close()

  •  FileWriter متغيری است که به عنوان يک شی StreamWriter تعريف شده است . متد CreateText  فايل text موجود  در آدرس Path  را به شی FileWriter نسبت می دهد . متد فوق در صورتی که فايل موجود نباشد آن را ايجاد و در صورت موجود بودن فايل بر روی آن بازنويسی می نمايد .متد AppendText خطوطی را به يک فايل موجود اضافه می نمايد . متد WriteLine يک رشته متن به همراه يک کاراکتر Line-break را به فايل text اضافه می نمايد.  متد Write يک رشته متن را بدون لحاظ  نمودن يک کاراکتر Line-break به فايل text اضافه می نمايد . از متد close  پس از اتمام کار و   به منظور بستن فايل استفاده می گردد .
  • در ابتدا،  گره ريشه <channel> و اطلاعات مربوط به لينک به سايت ، تعريف شده اند .
     
  • برای هررکورد بازيابی شده از بانک اطلاعاتی يک  گره <item> ايجاد شده است . گره فوق دارای  سه گره فرزند به اسامی <pubDate>, <title>, <link> و <description> می باشد .  
  • به منظور معرفی فايل RSS  می توان از يک دکمه گرافيکی ( ) که به فايل RSS اشاره می نمايد، استفاده کرد . توجه داشته باشيد که قبل از کليک بر روی دکمه فوق، می بايست فايل RSS با فرآيندی خاص ايجاد شده باشد ( اجرای فايل حاوی اسکريپت های نوشته شده ) .

3-2 :  بهنگام سازی اتوماتيک فايل  RSS Feed  :
محتويات يک فايل RSS متاثر از داده های موجود در بانک اطلاعاتی است . بديهی است در صورتی که لينک های جديدی به بانک اضافه شده و يا لينک هائی حذف گردد ، می بايست فايل RSS بهنگام گردد . در مثال فوق ، عمليات بهنگام سازی فايل RSS صرفا" پس از اجرای اسکريپت های نوشته شده ، انجام خواهد شد ( اجرای فايل MakeRss.aspx ) . ما نيازمند روشی هستيم که بر اساس آن فرآيند بهنگام سازی فايل RE: مقاله اي كامل راجه به RSS - round_robin - Monday 26 March 2007 10:12

1-3 : نمايش RSS در صفحات :HTML

در بعضي از سايتها News Feed با لينك "Syndicate this site" مشخص شده است. براي به دست آوردن آدرس ابتدا روي آنها راست كليك كنيد و سپس روي Copy shortcut كليك كنيد. سپس ميتوانيد در جاي لازم آدرس را Paste كنيد.

برنامه هاي زيادي براي خواندن News Feed در كامپيوتر وجود دارد.  Tristana Reader 4.5و Snarfer 0.2 و ...

بعد از اين مقدمه ميرسيم به اصل مطلب. در حال حاضر بسياري از سايتها و وبلاگهاي فارسي RSS توليد ميكنند. بنابراين اگر بتوانيم اين RSS ها را به فرمي كه ميخواهيم در صفحات وب خود قرار دهيم بسيار جالب خواهد بود. به عنوان مثال ميتوانيم عناوين آخرين مطالب وبلاگهاي مورد علاقه را در وبلاگ خود داشته باشيم.

روشهاي زيادي براي خواندن RSS توسط زبانهاي طرف سرور (server side) مثل PHP، ASP و ASP .net وجود دارد اما براي استفاده از اين زبانها اولا بايد سرور از آنها پشتيباني كند و ثانيا پسوند فايلها را بايد تغيير داد كه در بعضي از مواقع ممكن نيست. مشاهده لینک اين مشكل را بر طرف ميكند. Feed2js كه يك برنامه php است يك سري كد JavaScript توليد ميكند كه موارد خوانده شده از RSS را به راحتي در صفحات HTML درج ميكند. اين كد ها را به راحتي در هر صفحه اي (با هر پسوندي) ميتوان قرار داد.

Feed2js نياز است بر روي يك سرور نصب شود ولي اگر به سروري دسترسي نداريد نگران نباشيد چون Feed2js بر روي سايتي نصب شده و ميتوان در آنجا از آن استفاده كرد ولي در ضمن كد هاي آن هم در دسترس است و ميتوان براي تضمين سرعت و دسترسي، آن را روي سرور خود نصب كرد.

2-3 : استفاده از سايت Feed2js:


1.  ابتدا به روشي كه توضيح دادم آدرس RSS سايتي را به دست آوريد.

2.  به آدرس مشاهده لینک مشاهده لینک برويد. (قسمت Building )

3.  آدرس RSS را در جعبه URL وارد كنيد.

4.  در بخش Show channel در صورتي كه مايليد عنوان و توضيح ناشر RSS نمايش پيدا كند Yes، در صورتي كه مايليد عنوان ناشر نمايش پيدا كند Title و در غير اين دو صورت No را انتخاب كنيد.

5.  در بخش Number of items to display تعداد مواردي كه ميخواهيد نمايش پيدا كند را وارد كنيد. 0 همه موارد موجود را نمايش ميدهد.

6.  در بخش Show item descriptions? How much? تعداد حروف توضيحات هر مطلب را وارد كنيد. عدد 0 توضيحي نشان نميدهد. عدد 1 همه توضيحات را نشان ميدهد. بيشتر از 1 تعداد حروفي كه ميتواند نشان بدهد را مشخص ميكند.

7.  در بخش Show item posting date? ميتوانيد مشخص كنيد تاريخ هر مطلب نمايش پيدا كند يا نه.

8.  در بخش Open links in a new window? ميتوانيد تايين كنيد كه لينكهاي RSS در پنجره جديد نمايش پيدا كند.

9.  براي ديدن و آزمايش تنظيمات Preview the Feed را بزنيد. (در صورتي كه RSS مورد نظر شما يوني كد باشد بايد انكديگ صفحه را خود انتخاب كنيد. به وسيله منو: View>Encoding>unicode (utf-8))

10.                     وقتي تنظيمات مورد نظر خود را انجام داديد Generate JavaScript را بزنيد.

11.                     در صفحه اي كه باز ميشود كدهاي ساخته شده براي نمايش RSS نمايش داده ميشود. بخش NOSCRIPT اين كد باعث ميشود در مرورگرهايي كه از جاوا اسكريپت پشتيباني نميكنند براي نمايش RSS لينكي در صفحه نمايش داده شود.

اكنون ميتوانيد اين كد را در هر صفحه اي كه مايليد RSS در آن نمايش پيدا كند در مكان مورد نظر Paste كنيد.

3-3 : تنظيم نحوه نمايش :

Feed2js براي هر مورد از RSS يك class در نظر ميگيرد بنابراين به راحتي ميتوان طرز نمايش RSS را تايين كرد. class هاي مورد استفاده Feed2js به اين شرح هستند:

 

.RSS_box {} <!-- جعبه اي كه ار اس اس در آن نمايش داده ميشود -->
.RSS_title {} <!--
عنوان ار اس اس -->
.RSS_items {} <!--
هر مورد از ار اس اس -->
.RSS_date {} <!--
تاريخ هر مورد از ار اس اس -->

 

در اينجا يك style نمونه را مشاهده مي كنيد. شما ميتوانيد بنا به نياز خود Style را تغيير دهيد.:

 

.RSS_box {
    margin: 10px 5%;
    padding: 4px 8px;
    width: 100%;
    background-color: #ededed;
    border: 2px dashed #7485CA;
    direction:rtl;
}

.RSS_title, RSS_title a {
    font-family: Arial;
    font-size: 18px;
    font-weight:bold;
    margin: 5px 0;
    padding: 0;
    letter-spacing: 1px;
}

.RSS_item {
    font-family: tahoma, arial, sans-serif;
    font-size: 10pt;
    margin: 8px 0;
}

.RSS_item a:link, .RSS_item a:visited, .RSS_item a:active {
    text-decoration : none;
    border-bottom: 1px solid #ededed;
    color: #88b;
}

.RSS_item a:hover {
    text-decoration : none;
    color: #e0861e;
    border-bottom: 1px dotted #e0861e;
}

.RSS_date {
    font-size: 8pt;
    font-weight : normal;
    color: #F60;
}

 

براي استفاده اين style ميتوانيد به دو صورت عمل كنيد:

  • style را در فايلي با پسوند CSS ذخيره كنيد و سپس در قسمت <head> صفحه خود اين كد را وارد كنيد:

<link rel="stylesheet" type="text/CSS" href="Style.css">

در قسمت href بايد آدرس فايل CSS خود را وارد كنيد.

  •   در بخش <head> صفحه تگهاي زير را وارد كنيد و سپس به جاي "..." style ها را وارد كنيد:

<style>

</style>

 

 

 

 

 

4-3 : عضويت در يک  :RSS feed

به منظورعضويت در يک RSS feed می توان از برنامه های  متعددی که RSS aggregators  ناميده می شوند  استفاده نمود . مشاهده لینک يک نمونه متدوال در اين زمينه است . شکل زير اجرای اين برنامه را نشان       می دهد .

ليست Subscribed Feeds در ستون سمت چپ ، شامل لينک هائی به فايل های RSS است .با کليک بر روی يکی ازآنان،  فايل مربوطه فعال شده و عناوين تمامی آيتم ها در فريم بالا ( سمت راست ) ،  نمايش داده می شود . با کليک بر روی يک عنوان، خلاصه ای از اطلاعات در رابطه با آيتم مورد نظر در فريم پائين ( سمت راست ) ، نمايش داده خواهد شد . محتوای ارائه شده از گره های <title>  ، <link> و <description> ، موجود در فايل RSS دريافت و نمايش داده می شود . با کليک بر روی يکی از عناوين ، صفحه اصلی حاوی عنوان منتشر شده در فريم پائين نمايش داده می شود :

 

به منظور عضويت در يک  RSS feeds می توان گزينه "Open RSS Feed" را از طريق منوی فايل انتخاب و URL مربوط به يک فايل RSS را مشخص نمود .پس از انجام عمليات فوق ، عنوان سايتی که از آن فايلی دريافت شده است  به ليست اضافه می گردد . هر مرتبه که ليست refresh  می گردد ، نسخه ای جديد از فايل RSS دريافت و نمايش داده خواهد شد .

 

 




RE: مقاله اي كامل راجع به RSS - 20050 - Thursday 27 May 2010 18:14

سلام من میثم هستم و مقاله ی خیلی خوبی را نوشته اید در مورد مودم های کابلی مقاله ای دارید اگر دارین بنویسید  زیاد باشه برای پروزه دانشگاه می خوام ممنونم0
سلام مقاله در مورد مودم های کابلی می خواستم برای پروزه دانشگاه اگ دارین بنویسید ممنونم