آر إس إس ( RSS )

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

يمكنك الاشتراك في هذه الخدمة باستخدام أحد برامج قراءة ملقم RSS أو من خلال المتصفح الذي تستخدمه إذا كان مزوداً بخاصية لقراءة هذا الملقم أو يمكنك استخدام أحد المواقع التي تساعدك في قراءة هذا الملقم ومتابعة الأخبار أولاً بأول كموقع Google Reader الذي يمكنك من متابعة عدة مواقع في نفس اللحظة مما يسهل عليك الأمر ويعلمك بالجديد فور إضافته.

وهناك العديد من الأجهزة المزودة ببرامج لقراءة هذا الملقم خصوصاً أجهزة الجوال والكمبيوترات الكفية وغيرها. وعادة ما يعرض لك هذا الملقم عناوين الأخبار الجديدة وتاريخ إضافتها ونبذة عنها وقد يعرض البعض منها الخبر كاملاً مع بعض المميزات الأخرى التي سوف نتعرف عليها عما قريب.

RSS هو اختصار لـ Really Simple Syndication ويعني تلقيم بسيط جداً.

هناك الكثير من المواقع التي تدعم هذا الملقم خصوصاً المدونات والمنتديات ومواقع الأخبار وغيرها الكثير، وأكبر مثال على ذلك الخلاصة الموجود في أكاديمية فارس سوفت. [ اضغط هنا ]

كيف يمكنني دعم هذا الملقم في موقعي ؟

إذا كنت تستخدم برمجية جاهزة في موقعك كبرمجيات المدونات مثل WordPress أو أحد برمجيات المنتديات مثل Vbulletin أو Phpbb فبالتأكيد سوف تجد إضافات ( هاكات ) تستطيع إضافتها ببساطة إلى هذه البرمجيات وسوف تدعم ملقم RSS، أما إذا كنت تستخدم برمجية خاصة من برمجتك وتريد إضافة ملقم RSS إليها أو أنك تريد تطوير RSS الموجود في منتداك أو مدونتك فتابع معنا الدرس لكي تصل إلى مرادك.

في البداية دعنا نتعرف على برمجية RSS

RSS عبارة عن تعليمات مكتوبة بلغة XML ولكنك تستطيع عمل ملف برمجي بلغة php لتتمكن من إحضار البيانات من قاعدة البيانات ولكن الناتج النهائي الذي يصل إلى متابع الخلاصة سوف يكون عبارة عن تعليمات XML. وهذا ما سوف نتعرف عليه في الخطوات القادمة.

كيف يمكنني برمجة RSS خاص بموقعي ؟

سوف نقوم بإنشاء ملف برمجي php ثم نقوم بعمل اتصال بقاعدة البيانات التي نريد إحضار البيانات منها ومن ثم سنقوم بطباعة التعليمات الخاصة بملقم RSS المكتوبة بلغة XML.

هناك عدة إصدارات من RSS ولكننا سوف نتعامل مع الإصدار 2.0

وهذا أبسط ما يمكن كتابته من وسوم إجبارية ليبين لك طبيعة ملف RSS.


<?xml version="1.0"?>

<rss version="2.0">

<channel>

<title>Channel's Name</title>

<link>http://example.com/</link>

<description>Channel's description</description>

<item>

<title>News's Title</title>

<link>http://yoursite.com/Newsurl</link>

<description>News's description</description>

</item>

<item>

<title>News2's Title</title>

<link>http://yoursite.com/News2url</link>

<description>News2's description</description>

</item>

</channel>

</rss>

يمكنك وضع الكود السابق في ملف بالامتداد xml ومن ثم فتحه بأحد المتصفحات المزودة بخاصية لقراءة RSS كمتصفح فايرفوكس.

كما شاهدت فإن الكود الذي كتبناه يتكون من عدة وسوم

في البداية قمنا بتعريف إصدار xml ومن ثم rss 2.0.

وكما تلاحظ فإن الكود يتكون من وسوم فتح وإغلاق كـ <channel> و </channel>.

داخل الوسم </channel> قمنا أولاً بكتابة معلومات عن الموقع ( القناة ) مثل العنوان والرابط والوصف. ثم قمنا بإضافة عنصرين أو خبرين وتكون الوسوم الخاصة بهذين الخبرين ضمن وسمي <item> و </item> لكل عنصر ( خبر ).

التعرف على المزيد من الوسوم

لقد تعرفنا على طبيعة ملف RSS وما يحتويه بصفة عامة ولكن دعنا الآن نتعرف على المزيد من الوسوم التي يمكنك إضافتها في ملف RSS الخاص بك.

المقصود من عبارة channel الموقع الذي تقوم بعرض أخباره في ملقم RSS.

[ الوسوم الإجبارية الخاصة بالقناة Channel ]

الوسم الوظيفة مثال
title اسم القناة أو عنوانها. ومن المفترض أن تقوم بوضع نفس عنوان موقعك أكاديمية فارس سوفت
link رابط القناة http://www.faressoft.org
description وصف القناة تعلم بالعربي \ الفوتوشوب \ الإليستريتور \ تطوير المواقع \ الفلاش … والمزيد

[ الوسوم الاختيارية الخاصة بالقناة Channel ]

الوسم الوظيفة مثال
language اللغة التي تم بها كتابة محتويات القناة ar
copyright حقوق النشر لمحتويات القناة جميع الحقوق محفوظة لفارس سوفت
managingEditor بريد مسؤول التحرير والمحتويات

info@faressoft.org (Anas Fares)

webMaster بريد الشخص المسؤول عن الأمور التقنية المتعلقة بالقناة

info@faressoft.org (Anas Fares)

pubDate تاريخ نشر محتويات القناة. كما لو كان لديك صحيفة تصدر كل يوم فعندئذ توضح للمتابع تاريخ النشر ووقته Mon, 03 Nov 2009 05:50:18 GMT
lastBuildDate آخر مرة تم فيها تغيير محتويات القناة ( إضافة خبر جديد ) Mon, 03 Nov 2009 06:55:11 GMT
category التصنيف أو فئة القناة. كما لو كان لديك موقع إخباري وهذه الخلاصة خاصة بالأخبار التقنية Newspapers
generator البرنامج الذي تم بواسطته إنشاء RSS ( لكنك هنا قمت بإنشائه بنفسك وليس بواسطة برنامج ) faressoft.org tutorials
docs رابط يشير إلى المستندات التي استخدمتها في تنسيق RSS ——————-
image صورة بالامتداد GIF أو JPEG أو PNG سوف تظهر في الخلاصة كشعار للقناة ——————-
textInput خانة كتابة تظهر في القناة ( يمكنك استخدامها لعمل خانة بحث أو ما شابه ) ——————-

المقصود من عبارة item الخبر أو الموضوع الذي يظهر في ملقم RSS.

[ الوسوم الإجبارية الخاصة بالعنصر item ]

الوسم الوظيفة مثال
title اسم أو عنوان العنصر تصميم واجهة موقع بالفوتوشوب بتأثيرات ضوئية
link رابط العنصر http://photoshop.faressoft.org/?p=229
description وصف العنصر في هذا الدرس سوف أريك كيف تقوم بتصميم واجهة احترافية لموقع خاص بالمصممين ليعرضوا فيه أعمالهم ونبذة عنهم. أعتقد أنك سوف تتعلم الكثير من التقنيات الجديدة في هذا الدرس الاحترافي. خصوصاً التعامل مع أداة القلم والتعامل مع أنماط الطبقات.

[ الوسوم الاختيارية الخاصة بالعنصر item ]

الوسم الوظيفة مثال
author بريد مؤلف ( كاتب ) العنصر info\@faressoft.org
category التصنيف أو الفئة التي يوجد بها هذا العنصر ——————-
comments رابط لصفحة التعليقات المرتبطة بهذا العنصر http://photoshop.faressoft.org/?p=229
enclosure رابط لملف وسائط تستطيع تضمينه في هذا العنصر ——————-
guid رابط لمعرف فريد في هذا العنصر ——————-
pubDate تاريخ نشر العنصر Mon, 02 Nov 2009 04:21:28 GMT
source مصدر العنصر. كما لو كنت تريد الإشارة إلى مصدر الخبر الذي نشرته في موقعك http://www.faressoft.org

وها قد انتهينا من التعرف على طبيعة ملف RSS بشكل كامل.

برمجة ملقم RSS خاص بك

حان الوقت الآن لكي نقوم بإنشاء ملف برمجي php لكي يتصل بقاعدة بيانات موقعنا لإحضار آخر المستجدات منها وإرسالها إلى العميل على شكل RSS.

سوف نقوم بتطبيق ذلك على مدونة تستخدم برمجية WordPess ولكن يمكنك تطبيق نفس الفكرة على موقعك إذا كنت تستخدم برمجية مختلفة ولكن يجب عليك كتابة استعلامات قواعد البيانات بشكل مختلف.

الناتج النهائي من RSS الذي سوف نقوم ببرمجته شبيه بهذا

ولكن يمكنك الاستعانة بالوسوم الاختيارية الموجودة في الجدول أعلاه لإضافة المزيد من الميزات والخصائص

أولاً سوف نقوم بإنشاء ملف Rss.php ونقوم بوضع وسمي لغة php لكي نضع بينهما الأكواد التي سوف نكتبها بعد قليل.

سنقوم الآن بعمل اتصال بقاعدة البيانات كما يلي :


define('DB_HOST', 'localhost'); // المستضيف

define('DB_NAME', 'database_name'); // اسم قاعدة البيانات

define('DB_USER', 'database_user');  // اسم مستخدم قاعدة البيانات

define('DB_PASSWORD', 'database_pass'); // كلمة سر مستخدم قاعدة البيانات

$connect   = @mysql_connect(DB_HOST,DB_USER,DB_PASSWORD); // الاتصال بقاعدة البيانات

$setnames  = @mysql_query("SET NAMES 'utf8' "); // ضبط الترميز

$select_db = @mysql_select_db(DB_NAME,$connect);

سوف نقوم الآن بكتابة كود الاستعلام الذي سوف يحضر لنا البيانات من قاعدة بيانات المدونة


$result = @mysql_query("SELECT * FROM wp_posts where wp_posts.post_status='publish' ORDER BY wp_posts.post_date DESC LIMIT 0 , 20"); // الاستعلام

كما تلاحظ فإننا قمنا بأخذ آخر 20 تدوينة في المدونة ثم قمنا بترتيبها من الأحدث إلى الأقدم

نقوم الآن بوضع كل البيانات في متغيرات على شكل مصفوفات لكي يسهل علينا استخدامها فيما بعد


while ($row = @mysql_fetch_array($result)) {

$title[] = $row['post_title']; // عنوان التدوينة

$date[] = strtotime($row['post_date']); // تاريخها

$url[] = $row['guid']; // رابطها

$excerpt[] = $row['post_excerpt']; // مقتطف منها

$content[] = $row['post_content']; // المحتوى

$postID[] = $row['ID']; // رقمها

}

لمعرفة عدد المواضيع ( في حالة وجود أقل من 20 تدوينة في مدونتك قد يفيد هذا الكود )


$count = count($title); // عدد التدوينات

إذا كنت تستخدم صوراً مصغرة thumbnails مع كل التدوينة فقم الآن بالاستعلام عن روابط الصور المصغرة الخاصة بالموضوع والتي يتم إضافتها من الحقول الإضافية في المدونة باستخدام الكود التالي :


for ( $e = 0; $e <= $count-1; $e += 1) {

$imagesQuery = @mysql_query("SELECT * FROM wp_postmeta where post_id=$postID[$e] AND meta_key LIKE 'image' LIMIT 0 , 20");

$row = @mysql_fetch_array( $imagesQuery );

$image[] = $row['meta_value'];

}

كما لاحظت فإن روابط الصور قد تم وضعها في المتغير image كمصفوفة.

سوف نبدأ الآن بطباعة ملف RSS وسوف نطبع أولاً معلومات القناة باستخدام الكود التالي


echo '<?xml version="1.0"?>

<rss version="2.0">

<channel>

<title>أكاديمية فارس سوفت</title>

<link>http://www.faressoft.com/</link>

<description>تعلم بالعربي \ الفوتوشوب \ الإليستريتور \ تطوير المواقع \ الفلاش ... والمزيد.</description>';

والآن نقوم بعمل حلقة تكرارية لكي تطبع لنا جميع العناصر ( التدوينات ).


for ( $i = 0; $i <= $count-1; $i += 1) {

$thumb = '<img class="thumb" src="' . $image[$i] .'" align="left" width="110" height="110" border="0" hspace="12" style="margin-left: 0px;" />';

$Body = '<![CDATA[' . '<p>' . $thumb . '<span dir="rtl">' . $excerpt[$i] . '</p>' . ']]>';

echo '<item>

<title>' . $title[$i] . '</title>

<link>' . $url[$i] . '</link>

<description>' . $Body . '</description>

</item>';

}

ملاحظة : إذا كنت لا تستخدم الصور المصغرة فقم بإزالة كود الصورة من المتغير thumb.

$thumb = '';

كما تلاحظ فإننا قمنا بوضع الوسم <![CDATA[ قبل المحتوى الذي سوف يظهر في RSS ثم قمنا بوضع وسم الإغلاق الخاص به ]]> والفائدة من هذا الوسم أنه يمكنك من كتابة كود html بداخله.

سوف يظهر لقراء الخلاصة وصف كل تدوينة لأننا وضعنا المتغير الذي يحتوي على الوصف excerpt

أما إذا أردت إظهار محتوى التدوينة بالكامل فما عليك إلا استبدال متغير الوصف بمتغير المحتوى content

ولكني لا أنصحك بذلك إلا إذا كان المحتوى بسيطاً وإلا فلن تجد أحداً يزور مدونتك لأنهم يكتفون بالاطلاع على المحتوى كاملاً هنا ( رأي شخصي ).

ولكي ننهي ملف RSS نقوم بكتابة الكود التالي

echo'</channel>
</rss>';

إضافة RSS إلى موقعك

لكي تقوم بإضافة RSS إلى موقعك يجب عليك كتابة السطر التالي بين وسمي head في صفحات موقعك.

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://www.faressoft.org/rss.php" />

جرب الآن فتح موقعك بأي متصفح سوف تلاحظ وجود شعار الخلاصة بجانب خانة عنوان الموقع كما في متصفح فايرفوكس.

الكود الكامل لملف RSS.php

<?php

define('DB_HOST', 'localhost'); // المستضيف
define('DB_NAME', 'database_name'); // اسم قاعدة البيانات
define('DB_USER', 'database_user');  // اسم مستخدم قاعدة البيانات
define('DB_PASSWORD', 'database_pass'); // كلمة سر مستخدم قاعدة البيانات

$connect   = @mysql_connect(DB_HOST,DB_USER,DB_PASSWORD); // الاتصال بقاعدة البيانات
$setnames  = @mysql_query("SET NAMES 'utf8' "); // ضبط الترميز
$select_db = @mysql_select_db(DB_NAME,$connect);

$result = @mysql_query("SELECT * FROM wp_posts where wp_posts.post_status='publish' ORDER BY wp_posts.post_date DESC LIMIT 0 , 20"); // الاستعلام

/* كما تلاحظ فإننا قمنا بأخذ آخر 20 تدوينة في المدونة ثم قمنا بترتيبها من الأجدد إلى الأقدم */

while ($row = @mysql_fetch_array($result)) {
	$title[] = $row['post_title']; // عنوان التدوينة
	$date[] = strtotime($row['post_date']); // تاريخها
	$url[] = $row['guid']; // رابطها
	$excerpt[] = $row['post_excerpt']; // مقتطف منها
	$content[] = $row['post_content']; // المحتوى
	$postID[] = $row['ID']; // رقمها
}

$count = count($title);  // عدد التدوينات

/* سوف نقوم الآن بالاستعلام عن روابط الصور المصغرة الخاصة بالموضوع والتي يتم إضافتها من الحقول الإضافية في المدونة */

for ( $e = 0; $e <= $count-1; $e += 1) {
	$imagesQuery = @mysql_query("SELECT * FROM wp_postmeta where post_id=$postID[$e] AND meta_key LIKE 'image' LIMIT 0 , 20");
	$row = @mysql_fetch_array( $imagesQuery );
	$image[] = $row['meta_value'];
}

echo '<?xml version="1.0"?>
<rss version="2.0">

	<channel>

		<title>أكاديمية فارس سوفت</title>
		<link>http://www.faressoft.com/</link>
		<description>تعلم بالعربي \ الفوتوشوب \ الإليستريتور \ تطوير المواقع \ الفلاش ... والمزيد.</description>';

for ( $i = 0; $i <= $count-1; $i += 1) {

$thumb = '<img class="thumb" src="' . $image[$i] .'" align="left" width="110" height="110" border="0" hspace="12" style="margin-left: 0px;" />';
$Body = '<![CDATA[' . '<p>' . $thumb . '<span dir="rtl">' . $excerpt[$i] . '</span></p>' . ']]>';

echo '<item>
		   <title>' . $title[$i] . '</title>
		   <link>' . $url[$i] . '</link>
		   <description>' . $Body . '</description>
		</item>';

}

echo'</channel>

</rss>';

?>
ملاحظة هامة : يجب أن يكون الترميز ( encoding ) الخاص بملف rss من النوع UTF-8 without BOM فإذا واجهت أي مشاكل كعدم ظهور العناصر في الخلاصة أو ما شابه فقم بتحويل الترميز إلى هذا الترميز ولعمل ذلك أنصحك باستخدام برنامج notepad++ الذي أستخدمه في عملية البرمجة. ولتحويل الترميز باستخدام هذا البرنامج توجه إلى القائمة Encoding > Convert to UTF-8 without BOM وسوف تعمل الخلاصة بالتأكيد.

تهانينا لقد أصبح لديك الآن RSS خاص بك ومن إنتاجك وعلى مزاجك.

حول الكاتب فارس سوفت

محمد فارس : مطور ومصمم ويب أعمل على Html Css JavaScript jQuery Php MySql ولدي خبرة في برمجة التطبيقات بلغات البرمجة المختلفة من مواليد سوريا - حلب ومقيم حالياً في مكة المكرمة.

هنالك 14 تعليق على تعرف على RSS وتعلم برمجة RSS خاص بك