تبلیغات
تبادل لینک - خوراك خوان برای سایت

تبادل لینک

لینک مجاز خود را ارسال نمائید

درباره وبلاگ

شنبه 21 بهمن 1391

خوراك خوان برای سایت

نویسنده:   طبقه بندی: درباره وب و ابزار وب، 

تولید خوراك خوان برای سایت
 
 سایت‌ها را خودمغذی كنید
 
احتمالا با واژه RSS Feed یا خوراك سایت‌ها برخورد كرده‌اید. این خوراك‌ها یك خروجی ساده از محتویات یك سایت بوده كه هدف از تولید‌ آنها ایجاد امكانی برای كاربران است تا بدون دسترسی به كل محتوای سایت، بتوانند مطالب آن را به صورت كوتاه بخوانند و در صورت نیاز به لینك اصل مطلب مراجعه كنند.

مورد استفاده خوراك‌ها بیشتر در مورد سایت‌های خبری صدق می‌كند. برای نمونه شما می‌خواهید تمامی مطالب سایت را تیتروار بخوانید. در این صورت بدون خوراك‌ها شما مجبور به مرور كل محتوای سایت هستید كه این كار قدری زمانبر و خسته‌كننده است،‌ زیرا برای دیدن خبرهای جدید باید كل سایت را مشاهده كنید. البته دیدن كل سایت یك مشكل دیگر هم دارد. فرض كنید یك سایت خبری در مورد بازار سهام اخبار منتشر می‌كند و شما مدام باید این اخبار را دنبال كنید، آیا منطقی است همیشه صفحه وب‌سایت باز باشد و آخرین اخبار را با Refresh‌كردن صفحه مطالعه كنید؟

این كار ممكن است راحت باشد، ولی به مرور خسته‌كننده خواهد بود. اما راه‌حل این است كه به نحوی ساده از این اخبار مطلع شوید. برای این كار یك برنامه ساده روی دستگاه موبایل یا رایانه شخصی شما می‌تواند شما را از آخرین اخبار مطلع كرده و به شما اطلاع‌رسانی كند. این برنامه‌ها برای این‌كه براحتی اجرا شود نیاز به یك RSS Feed دارد كه خوراك آنها را تامین كند و مدام در حال چك‌كردن لینك خبری باشد و به‌روزرسانی‌ها را به شما نمایش دهد. شما می‌توانید بسادگی این برنامه‌ها را در اینترنت پیدا كنید. نمونه معروف و آنلاین آن سایت reader.google.com است كه به شما این امكان را می‌دهد تا لینك‌های RSS‌ خود را به آن بدهید و این سایت به عنوان یك خواننده خوراك یا RSS Reader عمل ‌كند.

اما با پیشرفت فناوری و استفاده از AJAX خیلی از سایت‌ها امكان به‌روزرسانی درجا را به شما می‌دهد و شما می‌توانید بدون Refresh‌كردن سایت مطالب آن را بخوانید. مثلا سایت المپیك كه باید اخبار لحظه‌ای را به روز كند یا سایت‌هایی مثل Twitter و FriendFeed از این فناوری استفاده می‌كند.

اما این خوراك‌ها چگونه تولید می‌شود؟

روش‌های مختلفی برای تولید خوراك برای یك سایت وجود دارد كه با توجه به زبان‌های برنامه‌نویسی و چارچوب‌های كاری كه می‌خواهید از آنها استفاده كنید، فرق می‌كند. برای مثال در دات نت امكان تولید RSS و Atom با استفاده WCF وجود دارد و شما می‌توانید از آن استفاده كنید. قبل از هر چیز باید با ساختار RSS آشنا شوید. به ساختار زیر دقت كنید:

«?xml version="1.0" encoding="UTF-8" ?»

«rss version="2.0"»

«channel»

«title»RSS Title«/title»

«description»This is an example of an RSS feed«/description»

«link»http://www.someexamplerssdomain.com/main.html«/link»

«lastBuildDate»Mon, 06 Sep 2010 00:01:00 +0000 «/lastBuildDate»

«pubDate»Mon, 06 Sep 2009 16:45:00 +0000 «/pubDate»

«item»

«title»Example entry«/title»

«description»Here is some text containing an interesting description.«/description»

«link»http://www.wikipedia.org/«/link»

«guid»unique string per item«/guid»

«pubDate»Mon, 06 Sep 2009 16:45:00 +0000 «/pubDate»

«/item»

«/channel»

«/rss»

در قسمت Channel ابتدا مشخصات RSS یك سایت را معلوم می‌كنید؛ مانند این‌كه این RSS برای چه سایتی است و اطلاعات آن در چه تاریخی منتشر شده‌، اولین خبر مربوط به چه تاریخی است، توضیحات اضافه در مورد سایت، سپس بخش اصلی كه item است. در این قسمت اطلاعاتی در مورد هر خبر مانند عنوان، توضیحات، لینك مربوط به خبر، رشته منحصر به فرد برای هر item و تاریخ انتشار آن مشخص می‌شود. در ساختار بالا كه در قالب xml است مقدار item به صورت یك ارائه در اختیار است، سپس با مرور‌ این ارائه می‌توانیم به خبرها دسترسی داشته‌ باشیم.

به عبارتی ساده‌تر می‌توانید این ساختار را به صورت یك رشته متنی در نظر بگیرید و آن را در برنامه خود تولید و برای هر خبر یك item ایجاد كنید. سپس آن را به بخش Channel اضافه كنید.

تولید خوراك‌خوان برای سایت (بخش دوم)
 
تغذیه مشتریان سایت
 
در شماره پیش در مورد RSS و ساختار آن و لزوم داشتن یك RSS برای یك سایت كه مطالب آن همیشه در حال به‌روزرسانی است، توضیحاتی دادیم، اما این RSS‌ها چگونه تولید می‌شود؟

هر زبان برنامه‌نویسی تحت وب روش‌های متفاوتی برای تولید RSS دارد؛ اما یك راه ساده كه همیشه جوابگوست تولید یك صفحه پاسخ و قراردادن محتویات RSS به صورت یك رشته متنی و با فرمت XML است.

برای شروع از PHP برای نوشتن یك RSS استفاده می‌كنیم. در ادامه در مورد راه‌حل‌هایی كه مایكروسافت برای تولید RSS به برنامه‌نویسان داده است، بحث خواهیم كرد.

در ابتدا به یك Header نیاز داریم تا به مرورگر بگوییم خروجی صفحه مورد نظر برای RSS‌ است، برای این‌كار از كد زیر استفاده می‌كنیم.

header("Content-Type: application/xml; charset=utf-8");

قرار است وقتی این صفحه اجرا شد یك ساختار XML كه در شماره پیش در مورد آن توضیح دادیم، تولید شود.

اگر به ساختار RSS هفته پیش دقت كنید، می‌بینید كه دارای یك بخش اصلی است كه همیشه باید وجود داشته‌باشد، اما یك بخش ثابت و از نوع آرایه دارد كه قرار است بر اساس اطلاعات ما پر شود، این بخش ارائه‌ای محتوای صفحه RSS شما خواهد شد. در اولین مرحله ما بخش‌های ثابت را در خروجی نمایش می‌دهیم سپس ارائه را برای تولید RSS تولید می‌كنیم.

$rssfeed = '«?xml version="1.0" encoding="ISO-8859-1"?»';

$rssfeed .= '«rss version="2.0"»';

$rssfeed .= '«channel»';

$rssfeed .= '«title»Sample«/title»';

$rssfeed .= '«link»http://jamejamonline.ir«/link»';

$rssfeed .= '«description»This is an example RSS feed«/description»';

$rssfeed .= '«copyright»Copyright (C) 2012 jamejamonline.com«/copyright/»';

حالا باید بخش متغیر آن را كه شامل فهرستی از مطالبی است كه در RSS قرار می‌گیرند كامل ‌كنیم:

for($index = 0; $index « 10; $index++) {

$rssfeed .= '«item»';

$rssfeed .= '«title»Ttile' . $index . '«/title»';

$rssfeed .= '«description»Description' . $index . '«/description»';

$rssfeed .= '«link»http://domain.com/' . $index . '«/link»';

$time = time();

$now = (int)(date('Y',$time).date('m',$time).date('j',$time));

$rssfeed .= '«pubDate»' . $now . '«/pubDate»'; $rssfeed .= '«/item»'; }

اما XML بالا دو تگ باز ـ channel و دیگری rss ـ دارد كه باید آنها را ببندید بعد از آن شما می‌توانید متغیر $rssfeed را كه نشان‌دهنده خروجی RSS شماست در خروجی چاپ كنید:

$rssfeed .= '«/channel»';

$rssfeed .= '«/rss»';

echo $rssfeed;

اما به یك نكته دقت داشته‌باشید، در مثال بالا آیتم‌های خود را به صورت نمونه پر كردیم (حلقه for) شما می‌توانید آیتم‌های خود را بر اساس دیتابیس خود پر كنید.

این راه حل در net. هم جوابگوی كار شما خواهد بود. در net. شما صرف نظر از تمامی این كارها می‌توانید از روش Serialize كردن (در php نیز می‌توانید این‌كار را انجام دهید) یك شیء از یك كلاس آن را به قالب یك RSS در بیاورید.

در دات نت شما راه‌های متفاوتی برای این‌كار دارید؛ یكی از این راه‌ها استفاده از كلاس‌هایی است كه برای تولید و پردازش XML به شما ارائه می‌كند استفاده كنید، یا كلاس‌های آماده‌ای را كه دیگران برای تولید RSS‌نوشته‌اند به كار ببرید؛ اما ساده‌ترین كار استفاده از WCF و API‌هایی است كه برای تولید RSS‌ به شما می‌دهد، در زیر یك مثال ساده از تولید RSS‌ با استفاده از WCF بیان می‌كنیم.

ابتدا شما با استفاده از SyndicationFeed مشخصات RSS‌خود را به صورت زیر مشخص می‌كنید:

SyndicationFeed feed = new SyndicationFeed("Sample",

" This is an example RSS feed ",

new Url("http://jamejamonline.ir "));

در این مرحله برای اضافه كردن item می‌توانید از كلاس SyndicationItem استفاده كنید. به كد زیر دقت كنید:

List«SyndicationItem» items = new List«SyndicationItem»();

for (int i = 0; i « 10; i++){

SyndicationItem item = new SyndicationItem(

"Title" + i.ToString(),

"Content" + i.ToString(),

new Url("http://domain.com/" + i.ToString()),

"Item" + i.ToString(),

DateTime.Now);

items.Add(item); }

مقدار items برابر آیتم‌هایی هست كه در RSS نمایش داده می‌شود؛ بنابراین حالا باید به feed ـ كه در بالا تولید كردیم ـ بگوییم چه آیتم‌هایی را باید نمایش دهد، سپس با استفاده از كلاس Rss20FeedFormatter خروجی RSS را تولید كنیم:

feed.Items = items;

return new Rss20FeedFormatter(feed);

كلاس Rss20FeedFormater هدر فایل را برای نمایش RSS مشخص می‌كند، به طوری كه مرورگر شما متوجه می‌شود خروجی صفحه مورد نظر RSS‌ است.


لینک ویژه

صفحات جانبی

آمار - آرشیو وبلاگ

  • "archive - آرشیو"
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :