ماي سمارت بيبي تعود للحياة

بسم الله الرحمن الرحيم السلام عليكم ورحمة الله وبركاته،، عاد العملاق العربي ما سمارت بيبي الى الحياة بإصدار جديد 2.0.0 ..


موضوع مغلق

الصفحة 1 من 2 < 1 2 > الأخيرة »


16-03-2012 07:02 مساء
wisal
عضـو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 10-11-2011
رقم العضوية : 1923
المشاركات : 40
الدولة : الأمة الإسلامية
الجنس : ذكر
تاريخ الميلاد : 25-2-1995
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 275
موقعي : زيارة موقعي
اصدار المنتدى : 2.1.4
 offline 
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته،،
عاد العملاق العربي ما سمارت بيبي الى الحياة بإصدار جديد 2.0.0 واللي صدر بتاريخ الثامن من منارس الحالي
اقتباس من الموقع الرسمي
اقتبـاس ،،

إنتهيت للتو من رفع النسخه التطويرية الجديدة إلى موقع Sourceforge :%29.

كان التركيز الأساسي في هذا الإصدار على نظام الإضافات (Plugin)، الحمدلله يبدو إن لدينا الآن نظام إضافات متكامل يمكننا إستخدامه لكتابة أي نوع من الإضافات :%29.

سأبدأ فيما بعد إن شاء الله بكتابة توثيق حول نظام الإضافات الجديد، يمكن لمهتمين حالياً أن يدرسوا الإضافة MySmartMicroblog المُرفقة مع النسخة الرسمية لمعرفة طريقة عمل نظام الإضافات، تجدون الإضافة في المجلد plugins/MySmartMicroblog.

للمتابعين القُدامى، الإصدار التطويري الثالث (ALPHA 3) كان آخر إصدار تم طرحه في الموقع الرسمي قبل توقفه، بعدها تم إطلاق ALPHA 4 و ALPHA 5 على موقع المشروع في Sourceforge، هناك بعض التغييرات الجذريه في هذين الإصدارين لذا سأكتب عنهما تدوينة منفصلة أوضّح بها هذه التغييرات الجذريه (أتحدث عن الجانب البرمجي هنا). :%29

يمكنكم تحميل النسخة الجديدة على موقع مشروع MySmartBB.

8/3/2012 - أهم التغييرات على شيفرة MySmartBB منذ ALPHA 4 إلى 6

اقتبـاس ،،


كما أخبرتكم في تدوينة إطلاق الإصدار التطويري السادس من MySmartBB، إن هنالك بعض التغييرات الجذرية في الشيفرة المصدرية منذ الإصدار التطويري الرابع، و سأُكرّس هذه التدوينة لذكر أهم هذه التغييرات :%29.

الملف records.class.php
أولاً لنتحدث عن الملف records.class.php، و هو أحد أهم الملفات في البرنامج حيث تقع على عاتقه مسؤولية التعامل مع قواعد البيانات و بناء الإستعلامات، و يوفّر واجهة دوال للمبرمج للتعامل مع قواعد البيانات بدون الحاجة إلى كتابة شيفرة SQL الكامله للإستعلامات، في النسخ التطويرية القديمة من الجيل الثاني (و هي ALPHA 1 إلى ALPHA 3) مكان هذا الملف في المجلد engine/libs/records.class.php، أما في الإصدارات التطويرية الحديثة و التي شهدت التغيرات التي نتحدث عنها في هذه التدوينة فستجدونه في includes/systems.

تم تبسيط هذا الملف و الواجهه التي يُقدمها بقدر الإمكان، و بعد التطويرات تقلّصت أسطر الملف من 600 سطر برمجي (تقريباً) إلى 300 سطر برمجي (تقريباً)، هنا أتحدث عن النسخة القديمة من هذا الملف :%29، لأن الملف الحالي (في الإصدار ALPHA 6) تم إضافة المزيد من الدوال الجديده إليه و بالتالي وصل إلى 520 سطر برمجي تقريباً.

على كُل حال، التغيير الأساسي في هذا الملف كان تغيير طريقة التعامل معه، فهو عباره عن مكتبه يستخدمها MySmartBB في جميع أجزاءه للتعامل مع قواعد البيانات، و بالتالي تم تغيير طريقة مناداة دوال هذا الملف بغرض التبسيط، و فعلاً بعد تطبيق التعديلات على جميع الملفات البرمجية لـ MySmartBB (و التي كانت تستخدم النسخة القديمة من ملف records.class.php) قلّ حجم البرنامج بشكل كبير و الأهم من ذلك قلّت التعقيدات في كتابة الشيفره.

وفقاً لإحصائيات موقع Ohloh فقد كان MySmartBB يصل إلى 26439 سطر برمجي، و بعد التغيير إلى ملف records.class.php الجديد تقلّص الحجم إلى 19884 سطر برمجي، هذا يعني التخلص من 6555 سطر برمجي :%29.

لنلقي نظره سريعة على طريقة إستخدام ملف records.class.php القديم و الجديد.
الشيفره التاليه كانت مسؤوله عن إحضار آخر موضوع كتبه العضو في الملف profile.module.php :
[LEFT][table][tr][td]$LastSubjectArr					[color=#007700]=	array();
	   
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]]			  =	array();
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]0[/color][color=#007700]]		   =	array();
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]0[/color][color=#007700]][[/color][color=#DD0000]'name'[/color][color=#007700]]	=	[/color][color=#DD0000]'writer'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]0[/color][color=#007700]][[/color][color=#DD0000]'oper'[/color][color=#007700]]	=	[/color][color=#DD0000]'='[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]0[/color][color=#007700]][[/color][color=#DD0000]'value'[/color][color=#007700]]	=	[/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]_CONF[/color][color=#007700][[/color][color=#DD0000]'template'[/color][color=#007700]][[/color][color=#DD0000]'MemberInfo'[/color][color=#007700]][[/color][color=#DD0000]'username'[/color][color=#007700]];
	   
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]1[/color][color=#007700]]		   =	array();
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]1[/color][color=#007700]][[/color][color=#DD0000]'con'[/color][color=#007700]]	    =	[/color][color=#DD0000]'AND'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]1[/color][color=#007700]][[/color][color=#DD0000]'name'[/color][color=#007700]]	=	[/color][color=#DD0000]'delete_topic'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]1[/color][color=#007700]][[/color][color=#DD0000]'oper'[/color][color=#007700]]	=	[/color][color=#DD0000]'<>'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]1[/color][color=#007700]][[/color][color=#DD0000]'value'[/color][color=#007700]]	=	[/color][color=#DD0000]'1'[/color][color=#007700];
	   
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]2[/color][color=#007700]]		   =	array();
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]2[/color][color=#007700]][[/color][color=#DD0000]'con'[/color][color=#007700]]	    =	[/color][color=#DD0000]'AND'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]2[/color][color=#007700]][[/color][color=#DD0000]'name'[/color][color=#007700]]	=	[/color][color=#DD0000]'sec_subject'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]2[/color][color=#007700]][[/color][color=#DD0000]'oper'[/color][color=#007700]]	=	[/color][color=#DD0000]'<>'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'where'[/color][color=#007700]][[/color][color=#0000BB]2[/color][color=#007700]][[/color][color=#DD0000]'value'[/color][color=#007700]]	=	[/color][color=#DD0000]'1'[/color][color=#007700];
	   
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'order'[/color][color=#007700]]			  =	array();
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'order'[/color][color=#007700]][[/color][color=#DD0000]'field'[/color][color=#007700]]	    =	[/color][color=#DD0000]'id'[/color][color=#007700];
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'order'[/color][color=#007700]][[/color][color=#DD0000]'type'[/color][color=#007700]]	    =	[/color][color=#DD0000]'DESC'[/color][color=#007700];
	   
		  [/color][color=#0000BB]$LastSubjectArr[/color][color=#007700][[/color][color=#DD0000]'limit'[/color][color=#007700]]			  =	[/color][color=#DD0000]'0,1'[/color][color=#007700];
	   
		  [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]_CONF[/color][color=#007700][[/color][color=#DD0000]'template'[/color][color=#007700]][[/color][color=#DD0000]'LastSubject'[/color][color=#007700]] = [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]subject[/color][color=#007700]->[/color][color=#0000BB]GetSubjectInfo[/color][color=#007700]([/color][color=#0000BB]$LastSubjectArr[/color][color=#007700]);
		  
		  [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]functions[/color][color=#007700]->[/color][color=#0000BB]CleanVariable[/color][color=#007700]([/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]_CONF[/color][color=#007700][[/color][color=#DD0000]'template'[/color][color=#007700]][[/color][color=#DD0000]'LastSubject'[/color][color=#007700]],[/color][color=#DD0000]'html'[/color][color=#007700]);
[/color][/td][/tr][/table][/LEFT]

و بعد الإنتقال إلى ملف records.class.php أصبحت كالتالي :
[LEFT][table][tr][td][/td][/tr][tr][td]1
2
3
4
5
6[/td][td]		  $MySmartBB[color=#007700]->[/color][color=#0000BB]rec[/color][color=#007700]->[/color][color=#0000BB]table [/color][color=#007700]= [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]table[/color][color=#007700][ [/color][color=#DD0000]'subject' [/color][color=#007700]];
		  [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]rec[/color][color=#007700]->[/color][color=#0000BB]filter [/color][color=#007700]= [/color][color=#DD0000]"writer='" [/color][color=#007700]. [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]_CONF[/color][color=#007700][[/color][color=#DD0000]'template'[/color][color=#007700]][[/color][color=#DD0000]'MemberInfo'[/color][color=#007700]][[/color][color=#DD0000]'username'[/color][color=#007700]] . [/color][color=#DD0000]"' AND delete_topic<>'1' AND sec_subject<>'1'"[/color][color=#007700];
		  [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]rec[/color][color=#007700]->[/color][color=#0000BB]order [/color][color=#007700]= [/color][color=#DD0000]"id DESC"[/color][color=#007700];
		  [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]rec[/color][color=#007700]->[/color][color=#0000BB]limit [/color][color=#007700]= [/color][color=#DD0000]'0,1'[/color][color=#007700];
		  
		  [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]_CONF[/color][color=#007700][[/color][color=#DD0000]'template'[/color][color=#007700]][[/color][color=#DD0000]'LastSubject'[/color][color=#007700]] = [/color][color=#0000BB]$MySmartBB[/color][color=#007700]->[/color][color=#0000BB]rec[/color][color=#007700]->[/color][color=#0000BB]getInfo[/color][color=#007700]();[/color][/td][/tr][/table][/LEFT]

يُمكنكم ملاحظة الفرق :%29، بالطبع الطريقة الثانيه أبسط بكثير و توفّر الكثير، سواء توفير بذاكرة الخادم، أو توفير بحجم البرنامج :%29.

كان هذا أحد الأمثله، و هكذا بالنسبه لبقية ملفات البرنامج، أما الشيء الآخر الهام في النسخه الجديدة من ملف records.class.php هو معالجته التلقائيه للبيانات لتجنب ثغرات XSS و SQL Injection، ففي السابق كُنا نضطر لمناداة الدالة CleanVariable بعد إحضار البيانات من قواعد البيانات لمعالجة البيانات.

مع الطريقة الجديدة لسنا مضطرين لمناداة دالة المعالجة CleanVariable، و بالتالي لا داعي للقلق بشأن معالجة البيانات بعد إحضارها من قواعد البيانات، مما سيزيد من الأمان و هذا يمنع الثغرات في حال الغفله عن مناداة دالة معالجة البيانات، بالإضافة إلى ذلك سيحسّن هذا من الأداء لأ
التخلص من المُحرّك
الفكره كانت من وراء مُحرّك MySmartBB بسيطه، تقريباً لكل جدول في قواعد البيانات كان هناك ملف برمجي مُكرّس له، و هذا الملف عبارة عن مكتبة تُقدّم الدوال الأساسية للتعامل مع قواعد البيانات و هذه الملفات كانت تعتمد على الملف records.class.php لفعل ذلك.

بعد تفكير طويل في الموضوع وجدت إن الطريقة غير مُجدية، لماذا لا نستخدم دوال records.class.php مباشرة، خصوصاً و إن جميع المكتبات التي يُقدمها المُحرّك متشابهه إلى حد كبير حتى في الشيفره.

و بالتالي قررت إزالة المُحرّك بشكل كامل و الإحتفاظ بالدوال المفيدة فقط و نقلتها إلى المجلد includes/functions، و بالتالي قلل هذا من تعقيد كتابة الشيفره.

تبسيط شيفرة المُثبت
في السابق كان برنامج تثبيت MySmartBB يعتمد على فئة (Class) ضخمه يُطلق عليها إسم Datab*aseStruct، و كان عدد أسطر ملف هذه الفئة يبلغ من الحجم 1937 سطر، و كان الغرض منها بسيط و هو إنشاء الجداول في قواعد البيانات!، يا إلهى هل نحن بحاجة فعلاً إلى كل هذا العدد من الأسطر لإنشاء ما يقل عن 35 جدول! roll.

على كُل حال تغير الأسلوب المُستخدم بهدف التبسيط و أصبح الملف المسؤول عن إنشاء الجداول يبلغ من الأسطر ما يقارب الـ 200 سطر فقط، أما معلومات الجداول فتُخزّن بملفات نصيّه بسيطه و تحتوي على أوامر SQL الخاصة ببناء الجداول، أبسط بكثير و أسهل في الإضافه فيما بعد :%29

نظام الإضافات
نظام الإضافات (Plugins) بدأ مع الإصدار التطويري الرابع (ALPHA 4)، و كُرّست النسخة ALPHA 6 لتطويره و جعله أكثّر قوّة و تكاملاً، سأتحدث عن هذا النظام فيما بعد بالتفصيل إن شاء الله.

تعديلات أخرى
هناك بعض الميزات التي أُضيفت و التي رأيت إنه لا بد من إزالتها لأنها لا تُضيف قيمة للبرنامج.

بالإضافة إلى ذلك تم تجزئة عدد من الملفات البرمجية التي كانت كبيره جداً إلى ملفات صغيره تحمل وظيفة واحده.

كما تم دعم التدويل في MySmartBB (نُسميها بملفات اللغه :%29)، و تعمدت إستخدام أبسط طريقة و هي طريقة المصفوفات.

و تم نقل MySmartBB إلى إستخدام النسخة الخامسة من PHP، و لا يخفى عليكم إنّ الدعم الحقيقي للبرمجة كائنية التوجه كان مع PHP5 :%29.

هذا بالإضافة إلى التحسينات على الدوال القديمة.





16-03-2012 07:09 مساء
مشاهدة مشاركة منفردة [1]
wisal
عضـو مشارك
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 10-11-2011
رقم العضوية : 1923
المشاركات : 40
الدولة : الأمة الإسلامية
الجنس : ذكر
تاريخ الميلاد : 25-2-1995
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 275
موقعي : زيارة موقعي
اصدار المنتدى : 2.1.4
 offline 
look/images/icons/i1.gif ماي سمارت بيبي تعود للحياة
اقتبـاس ،،


آخر نسخه تطويريه : MySmartBB 2.0.0 ALPHA 6، بتاريخ 8-3-2012


بخصوص الكود الرجاء التعديل عليه
http://www.maastaar.com/index.php?page=read&show=1&id=375


تم تحرير المشاركة بواسطة :wisal
بتاريخ:16-03-2012 07:11 مساء


16-03-2012 08:27 مساء
مشاهدة مشاركة منفردة [2]
AHMED
عضـو ستـار
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-07-2009
رقم العضوية : 18
المشاركات : 2796
الجنس : ذكر
تاريخ الميلاد : 1-10-1981
الدعوات : 25
يتابعهم : 0
يتابعونه : 2
قوة السمعة : 4978
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.1
 offline 
look/images/icons/i1.gif ماي سمارت بيبي تعود للحياة
رائع عودة ماى سمارت بى بى من جديد لتقوى المنافسه العربيه الاجنبيه فى هذا النوع من البرامج
عاد الموقع الى الافتتاح و لكن لازال منتدى الدعم الفنى القديم له مغلقا


تم تحرير المشاركة بواسطة :AHMED
بتاريخ:16-03-2012 08:32 مساء


16-03-2012 10:16 مساء
مشاهدة مشاركة منفردة [3]
مهند
عضـو ستـار
rating
العضو غائب كن في الطريق عفيف الخطى شريف السماع كريم النظر وكن رجلاً ان اتوا بعده يقولون مر وهذا الاثر
معلومات الكاتب ▼
تاريخ الإنضمام : 11-07-2010
رقم العضوية : 586
المشاركات : 2310
الدولة : العراق
الجنس : ذكر
تاريخ الميلاد : 11-12-1995
الدعوات : 3
الإنذارات : 1
يتابعهم : 0
يتابعونه : 1
قوة السمعة : 4012
موقعي : زيارة موقعي
اصدار المنتدى : 2.1.4
 offline 
look/images/icons/i1.gif ماي سمارت بيبي تعود للحياة
عمل رائع هيك حتصير تنافس بين منتدانا الرائع و ماي سمارت بي بي biggrin2

17-03-2012 12:16 صباحا
مشاهدة مشاركة منفردة [4]
تكـت فور
عضـو نشيط
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 20-07-2009
رقم العضوية : 33
المشاركات : 318
الدولة : HadRamouT | حضرمـوتُ
الجنس : ذكر
تاريخ الميلاد : 1-1-1994
يتابعهم : 0
يتابعونه : 1
قوة السمعة : 563
موقعي : زيارة موقعي
اصدار المنتدى : غير محدد
 offline 
look/images/icons/i1.gif ماي سمارت بيبي تعود للحياة
سبعين الف علامة استفهام وتعجب يجب وضعها لماستر..؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
الان الان بعد غياب ثلاث سنوات26
يعود ليكمل المشروع بدون سابق انذار او اعتذار عن ماحصل
الا يعتقد ان ماي سمارت بي بي اصابته الشيخوخه والترهل والامراض المزمنه هل يعتقد ان هناك من سيثق به بعد الانتكاسات التي حصلت في فترة ادارته ..؟؟puppyeyes

17-03-2012 12:42 صباحا
مشاهدة مشاركة منفردة [5]
حمودي
عضو فعال
rating
معلومات الكاتب ▼
تاريخ الإنضمام : 23-12-2011
رقم العضوية : 1966
المشاركات : 248
الدولة : السعودية
الجنس : ذكر
يتابعهم : 0
يتابعونه : 0
قوة السمعة : 109
موقعي : زيارة موقعي
اصدار المنتدى : 3.0.0
 offline 
look/images/icons/i1.gif ماي سمارت بيبي تعود للحياة
ماي سمارت بي بي على مااضن من برمجة الأخ مشراق بس تركها وبدأ يبرمج pbbord

بس حتى بعد رجوع ماي سمارت بي بي اتوقع انى pbbord الأفضل

هذي وجهة نضري 155

17-03-2012 01:38 صباحا
مشاهدة مشاركة منفردة [6]
مهند
عضـو ستـار
rating
العضو غائب كن في الطريق عفيف الخطى شريف السماع كريم النظر وكن رجلاً ان اتوا بعده يقولون مر وهذا الاثر
معلومات الكاتب ▼
تاريخ الإنضمام : 11-07-2010
رقم العضوية : 586
المشاركات : 2310
الدولة : العراق
الجنس : ذكر
تاريخ الميلاد : 11-12-1995
الدعوات : 3
الإنذارات : 1
يتابعهم : 0
يتابعونه : 1
قوة السمعة : 4012
موقعي : زيارة موقعي
اصدار المنتدى : 2.1.4
 offline 
look/images/icons/i1.gif ماي سمارت بيبي تعود للحياة
ردي الطويل حول الموضوع غير السابق
=======================
=========================
بالنسبة للبرنامج سيحتاج على الاقل سنتين من التطوير المستمر لكي يستعيد مستخدمية
السابقين ويكون منافس لل pbboard لكن هذا يحتاج لسنين من العمل لكي يكون منافس
لان حالياً اي مستخدم عربي يريد منتدى برمجه عربية يتوجه للباور بورد
و ماستر لم يضع سبب للغياب والعوده التي فاجئتني واعتقد انها فاجئت الجميع
لاني نسيت اصلا الماي سمارت بي بي لان غيابها طول
لكن نتمنى التوفيق لاي برنامج عربي ليرتقي ويكون منافس للبرامج الاجنبية ..
وشكرا


الصفحة 1 من 2 < 1 2 > الأخيرة »


الكلمات الدلالية
لا يوجد كلمات دلالية ..







الساعة الآن 02:10 صباحا