آر إس إس (
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>';
?>
تهانينا لقد أصبح لديك الآن RSS خاص بك ومن إنتاجك وعلى مزاجك.

هنالك 14 تعليق على تعرف على RSS وتعلم برمجة RSS خاص بك
Abdula قال:
شكرا لك أخي فارس على هذه الدروس الأكثر من رائعة
تحياتي
سنايبر قال:
شكرا لك على هذه الدروس القيمة!
وفقك الله أخي العزيز
أبو اسر قال:
بارك الله فيك أخي الحبيب و الله يزيدك علم و يفتح عليك .
أخوك ابو اسر
al7boob قال:
تسلم حبب قلبي
منتديات توب سات قال:
بارك الله فيك
محمد نبيل قال:
أسأل الله أن ينفع الأمة كلها بهذا , ويجعله هذا فى ميزان حسناتك
alaa ebrahim قال:
السلام عليكم .. شكرا جزيلا على هذا الشرح الرائع
Elmarnissi Hamza قال:
بارك الله مع انني لم انجح في برمجته ربما لان نسختي لا يتناسب معها
منتديات الاء تايمز قال:
أخي ممكن طريقة أخرى لبرمجة هذه الخاصية لأنني أحتاجها
فارس سوفت قال:
مالذي تقصده بطريقة أخرى …
في هذا الموضوع لقد قمت بشرح تقنية rss
وأعطيت مثالاً بسيطاً لتطبيق هذه التقنية على مدونة wordpress
إذا كنت تستخدم برمجية أخرى فيجب عليك استخراج البيانات من Mysql وعرضها وطباعتها في ملف rss كما فعلنا مع الووردبريس
غير معروف قال:
[...] [...]
عماد الصلاحـــي قال:
لوكان الابداع رجل لشكرته يافارس
وفر وقت تصفحك للأخبار مع خلاصات RSS قال:
[...] تعرف على RSS وتعلم برمجة RSS خاص بك [...]
وفر وقت تصفحك للأخبار مع خلاصات RSS | أبورعد قال:
[...] تعرف على RSS وتعلم برمجة RSS خاص بك [...]