الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

دراسة نظرية حول بناء منتدى متطور في انترنت (برجاء المشاركة)

مغلق
بدأه خضر ترزي في 17 مايو 2002 · 29 رد · 3,220 مشاهدة · في هندسة البرمجيات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

الإخوة الكرام، هذه الرسالة و الرسائل المستقبلية المرفقة بها سوف تناقش أفضل عملية بناء منتدى متطور على انترنت، منتدى قادر على إدارة كمية هائلة من البيانات بطرق مختلفة قليلا عما هو موجود اليوم.

أحب أذكركم أولا انه لدينا عدة مشاريع لبناء منتديات و جزء منها جاهز في منتدى تصميم أل ASP في الفريق العربي للبرمجة، و هو اكبر شيء اشتغل حتى الآن من تصميم الأخ عبد الرحمن المعزاب على الوصلة التالية

http://www.arabteam2000.com/vb/showthread....=&threadid=7216

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

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

هذه هي نبذة عامة عن الفكرة، و في الرسائل التالية تتبع بعض التفاصيل و التي سوف تحدث من وقت لآخر

#2

وانا مستعد للمساهمة معكم بعد الانتهاء من امتحاناتي

counter2001.cgi?548123

#3

هناك الكثير من المنتديات اليوم في انترنت، و معظمها تهتم بعرض البيانات بالطريقة المعروفة حاليا، و هي المنتديات الرئيسية و من ثم المنتديات الفرعية و من ثم الرسائل الخاصة بهذه المنتديات.

|- منتدى رئيسي

|- منتدى فرعي

|- رسالة

|- رسالة

|- .....

|- رسالة

تختلف تلك المنتديات في طريقة بنائها، البعض استخدمت فيه تكنولوجيا مثل PHP لبناء الصفحات من طرف الجهاز المركزي، البعض استخدمت فيه تكنولوجيا ASP و قليلا جدا استخدمت ASP.NET و هناك منتديات أخرى مشهورة أيضا استخدمت فيها تكنولوجيا مثل CGI و PERL و غيرها.

المنتديات أيضا تعتمد على قواعد البيانات لتخزين محتوياتها، بعض المنتديات تعتمد على ملفات ال HTML لتخزين بياناتها، أي بمجرد كتابة شيء يحفظ كملف HTML و تربط معا من خلال الجهاز المركزي، و هذه فكرة جيدة نوعا ما مع بعض القصور ربما، هناك بعض المنتديات اعتمدت على تخزين بياناتها في ملفات تديرها هي مثل ملفات Text بحيث يحتوي المنتدى على نظام لتخزين و استرجاع البيانات من تلك الملفات، و هناك منتديات اعتمدت على قواعد بيانات مثل MySQL و Access Database و SQL Server (عدد محدود فقط) و نظم قواعد بيانات أخرى.

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

كل المنتديات الموجودة تركز كثيرا على مسألة الشكل، حيث أنها توفر إمكانيات كبيرة لتغير الشكل العام الذي تظهر عليه، بالطبع مهما غيرت في الشكل فهو تغير في الألوان، لان الشكل العام هو تقسيم المنتدى إلى منتديات و رسائل بداخلها بنفس الطريقة في كل المنتديات.

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

التركيز الكبير على الشكل الخارجي أدى كثيرا إلى إهمال أهم الأمور التي تبحث عنها المنتديات الكبيرة، و من أهمها طرق متقدمة لتنظيم الرسائل، و نظم حماية و تتبع متقدمة.

حتى أحدث المنتديات اليوم بتقدم نظم حماية من ابسط ما يمكن، تخزين cookie في جهاز المستخدم ربما بحيث يحتوي على اسمه و كلمة السر الخاصة به، بحيث إذا عن طريق الخطاء نسي مستخدم ما إن يسجل خروج من المنتدى إذا كان يستخدم جهاز عام، فان الطريقة الوحيدة هي بتغير كلمة السر الخاصة به لاحقا.

مشكل الحماية هي احد المشاكل البسيطة، مشكلة إدارة البيانات و الرسائل هي مشكلة اكبر بكثير، ربما لا تظهر عندما يكون لديك منتدى صغير به 100 إلى 1000 مشاركة و لكن المشكلة تصبح كبيرة عندما تصبح لديك 50 ألف مشاركة تقريبا.

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

ابسط المشاكل التي تواجهنا مثلا إن يطرح شخص ما رسالة تتعلق بمنتديين، مثلا سؤال في الفيجوال بيزك و ويتعلق في تصميم البرامج و التعريب، نظريا يجب إن تظهر الرسالة في 3 منتديات، عمليا ذلك غير ممكن في كل المنتديات التي رائيتها لليوم، حيث يجب إن تكون هناك 3 رسائل.

هذه إضافة إلى نظام الصلاحيات المعقد الذي لا يمكن الاستفادة منه كثيرا، على سبيل المثال منتدى المشرفين لدينا كان عرضة للاقتحام لفترات طويلة نتيجة نظم الصلاحيات الموجودة اليوم.

أما المحررات الموجودة فهي أيضا لا توفر لك شكل النص، عليك بتخيل الشكل النهائي عبر أوامر تستبدل بتشكيل للنص، لا يمكنك إضافة رسومات تخزن بداخل الرسالة حيث يجب إن تخزنها في مكان ما على انترنت سابقا و الكثير من الأمور المشابهة.

حتى الرسائل نفسها لا تتوفر حولها بيانات دقيقة، عداد قراءة الرسائل يزيد بمعدل زيارة عند كل فتح للرسالة من نفس الشخص، أي إذا فتحت رسالة 10 مرات فعدادها سوف يصبح 10 زيارات.

المشاكل المتعلقة بقواعد البيانات في المنتديات كبيرة أيضا، في الكثير من الأحيان قد يحتاج مدير المنتدى الوصول مباشرة إلى قاعدة البيانات و التعديل بداخلها، معظم قواعد البيانات المصممة ب MySQL لا تحافظ على هيكلية منطقية للبيانات، أي انه بتغير خطأ واحد لن يخبرك خادم قواعد البيانات بكسرك لتكامل البيانات مما سوف يؤدي إلى عدم عمل المنتديات لاحقا أو عملها بصورة خطا.

إضافة إلى نظم البحث، فالمنتديات تعتمد اليوم على جداول للبحث يجب إن تحدث من لوحات الإدارة، و التي في الكثير من الأحيان لا توفر فهرسة كاملة لكل محتويات الرسائل، بكلمات أخرى قد تبحث عن شيء موجود و لا يظهر لك، نتيجة لأنه لم يدخل محتويات الفهرس

هناك الكثير من المشاكل الاخرى التي يمكنكم مناقشتها حول المنتديات اليوم و التي قد تواجهونها في منتديات الفريق العربي للبرمجة او المنتديات الاخرى على انترنت و التي تستخدم نفس النظم المستخدمة منا

#4

أفكار حول بناء نظام متقدم من المنتديات

المنتديات اليوم ممتازة لمعالجة أعداد غير كبيرة من الرسائل، ربما هي مجهزة لمعالجة أعداد هائلة من الناحية البرمجية إلا انه من الناحية العملية هناك صعوبة كبيرة في إدارة الرسائل حسب الطريقة التي توفرها المنتديات اليوم.

هناك اليوم أيضا طرق أخرى لإدارة المعلومات في انترنت، مايكروسوفت على سبيل المثال توفر Microsoft Share Point Team Services و Microsoft Share Point Portal Server و كلاهما بامكانه القيام بأعمال إدارة رائعة للرسائل و المعلومات و لكنهما يركزان على أجهزة تحتوي على Microsoft Office بالتحديث، كما إن المنتديات التي يقدمانها لا يمكنها أن تنافس المنتديات المتطورة اليوم، إضافة إلى مشكلة اللغة العربية، حيث إن البرامج السابقة تعمل بدعم كامل للغة الإنجليزية.

هناك نظم أخرى مشهورة و مجانية و اشهرها PHP Nuke و الذي يدير الصفحة الرئيسية لموقعنا، فهو نظام جيد أيضا و معرب بصورة ما و يستخدم في الكثير من المواقع العربية في انترنت، و بامكانه تنظيم الرسائل و المعرفة، و لكن ليس بالطريقة المثلى أيضا.

لو كان توفر PHP Nuke في موقعنا في العام السابق لمنت اعتمدت عليه بالكامل و لكن عدم معرفتي بوجوده في تلك الفترة و محاولاتنا لتصميم موقع جديد مثالي أدت بنا إلى عدم استخدامه، و اليوم بعد ما وجد و تم تثبيته في الموقع لا أستطيع إن أتعود على استخدامه، فانا استخدم المنتديات من مدة طويلة و اعتد على تخزين كل ما ارغب بإخباره للآخرين عن طريقها، و سوف اشعر بسعادة أكثر بكثير لو هناك منتديات متطورة أكثر قليلا تصل لدرجة إمكانية جمعها ما بين PHP Nuke و النسخة الحالية لمنتديات VB إضافة إلى أفكار إضافية أخرى.

أول مشكلة تواجه المنتديات اليوم و يجب التخلص منها في بناء المنتديات الجديدة هي طريقة التقسيم العامة و طريقة عرض الرسائل، كل منتدى يمكنه أن يحتوي على رسائل و منتديات فرعية، و الرسائل مرتبطة بهذا المنتدى بصورة كاملة.

في الكثير من الأحيان نحن بحاجة إلى إدراج رسالة لتناقش في منتديين معا، قد يكون لها علاقة بالتعريب و تصميم البرامج معا، فلماذا لا تناقش في هذين المنتديين.

عند تصميم منتدى جديد يجب إن يأخذ بعين الاعتبار إمكانية بناء منتديات متداخلة، بصورة هرمية، و لكن يجب الأخذ بعين الاعتبار أيضا أن الرسائل يجب إن تكون مفصولة عن المنتديات بالكامل، بحيث يكون للمشرفين الحق في إظهار الرسالة في منتديات أخرى عوضا عن المنتديات الحالية، أو الأعضاء كذلك إن كانت لهم الصلاحيات اللازمة لذلك.

عندما تمتلئ المنتديات بالرسائل تصبح عملية تنظيمها أمر صعب، ما نقوم به هو في اغلب الأحيان بناء منتديات فرعية بداخل المنتديات الحالية لأرشفة بعض الرسائل القديمة، و لكن ذلك لا يكفي أيضا.

الفكرة هنا لماذا لا نجعل المنتديات طريقة من طرق تصنيف الرسائل فقط، بكلمات أخرى إن يكون للمشرفين الحق ببناء طرق تصنيف إضافية للرسائل، أي انه أعلى الصفحة عندما تزور الموقع سوف تأتي إلى صفحة المنتديات و التي هي طريقة تصنيف للرسائل فقط، و يمكنك إذا توفرت لديك الصلاحية لبناء طريقة عرض جديدة تأتي أعلى الصفحة تسمى الدروس التدريبية مثلا، بحيث تقسم إلى أقسام مختلفة و ترفق فيها رسائل من المنتديات التي لها علاقة بالموضوع.

بع الرسائل أحيانا تحتوي على دروس رائعة، كما أنها قد تحتوي على أمر أخرى تجعل الحاجة إلى تصنيفها إلى جزأين في نفس الوقت، بتوفير فصل الرسائل عن المنتديات و توفير طرق عرض مختلفة للرسائل سوف يتمكن المشرفون و مدراء المنتديات من بناء عدة طرق مختلفة لعرض الرسائل نفسها

قد يكون هناك الدروس التدريبية، حيث تقسم إلى أجزاء و من ثم ترفق الرسائل التي لها علاقة بالدروس فقط، قد يكون هناك فرع يسمى الكود، بحيث ترفق الرسائل التي بها ملفات مرفقة و أمثلة و كود برمجي، و ما إلى ذلك.

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

طرق العرض طبعا لا يجب أن تتبع التقسيم الحالي للمنتديات، التقسيم اليوم هو عبارة عن جدول و به اسطر لكل منتدى سطر، و لكن لماذا لا نضيف إمكانية جديدة للعرض، العرض على شكل أيقونات مثلا، مثل المثال التالي

msgb1.gif

و أيضا لماذا لا تكون هناك طريقة لعرض المنتديات على شكل index مثلما يعرض Yahoo الفهرس الرئيسي الخاص به، أي بكلمات أخرى إيجاد 3 طرق لعرض البيانات بدلا من الطريقة الحالية.

ربما المنتديات الرئيسية تعرض بالطريقة الحالية أو على شكل أيقونات، و طرق العرض الأخرى الخاصة بالدروس و المقالات تعرض على شكل المنتديات اليوم، ربما شكل ثالث يعرض على الطريقة التي يعرض بها Yahoo فهرسه في انترنت.

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

بالنسبة للرسائل فلماذا لا نطورها قليلا.

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

ولكن لماذا لا نستبدل الرسائل بكائنات، أنا مثلا قد ارغب بتخزين رسالة تحتوي على ملف في المنتديات فقط، ملف مثال مع كود، لا ارغب بان يقوم شخص آخر بإضافة نصوص إليه، لماذا لا يظهر لي نموذج خاص لتحميل الملف و كتابة الكود بصورة تختلف قليلا عن نموذج الرسائل العادية.

من ناحية أخرى ربما ارغب بإضافة مقال إلى المنتديات و ليس رسالة، المقال يجب إن يعامل و يظهر بطريقة أخرى، على الأقل 3 أو 4 صفحات من الشرح مع أزرار للتحرك للأمام و الخلف بين الصفحات، و بما انه مقال فلن يسمح إلا للكاتب بإضافة إضافات إليه، الأعضاء ربما يمكنهم التعليق في رسائل صغيرة أسفل آخر صفحة في المقال فقط.

بالطبع ارغب بان تبقى الطريقة الحالية للرسائل أيضا حيث يمكنني كتابة رسائل و الرد عليها.

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

في الردود على الرسائل يرغب المشرفين أحيانا بإضافة ملاحظات لا يراها الأعضاء إلى الرسالة، مثلا تنبيه إلى المشرفين الآخرين عن موضوع ما كان يقصده السائل و لكنه لم يتمكن من التعبير عن نفسه جيدا، بالطبع قد لا يكون من الجميل إن يرى الكل هذه الملاحظات، و لكن إذا كانت المنتديات ذكية فسوف تعمل على التعرف على هوية الشخص و تحديد صلاحياته و بناءا على صلاحياته سوف تعرض له الرسائل مع تعليقات المشرفين أو بدون تعليقات المشرفين.

إضافة إلى ذلك الرسائل يجب إن تحلل بياناتها ، بكلمات أخرى آخر الرسالة و الردود يجب على النظام إن يذكر لي أهم أسماء و عناوين الانترنت التي ذكرت في كل الرسالة، إذا كانت الرسائل عدة صفحات فهذا سوف يساعد بدل البحث بداخلها.

المنتديات يمكنها إن ترسل تنبيه إلى الصفحة الشخصية الخاصة بالكاتب إذا استخدم عناوين انترنت غير معروفة في قاعدة البيانات، بحيث إذا أضاف عنوان مثل Microsoft.com و لم يكن مسجل مسبقا، سوف يمكنه كتابة القليل عن ذلك العنوان و اختيار المكان الذي يرغب بان يعرض فيه في منتدى روابط الانترنت، أو في التقسيم الخاص بمواقع الانترنت.

كتابة الرسالة نفسها يجب إن تكون مرئية، و يجب إن تكون هناك إمكانية لتحرير النصوص لحظة كتابتها، مثل الصورة التالية التي قمنا بالتجارب عليها العام السابق

msgb3.gif

الصورة تظهر محرر بسيط و به البيانات على شكلها الحقيقة و صورة أيضا مرفقة في الوقت الحقيق، ذلك بدل استبدال أوامر خاصة في النصوص لإظهار الصور و الوصلات و ألوان النصوص.

يجب أيضا أن يتم بناء نظام فرز كود أل HTML من طرف الجهاز المركزي حتى لا يحدث و يضع شخصا ما أدوات Active X على سبيل المثال في رسالة ما في المنتدى و يركبها في جهاز الزوار على أنها إضافة من إضافات المنتدى ، لذا يجب بناء نظام فرز كود أل HTML بحيث يزيل بصورة آلية كل ما له علاقة بكائنات أل Active X و ال VBScript و ال JScript .

الرسائل نفسها قد تكون في حالات مختلفة أيضا، على سبيل المثال قد أبداء بكتابة مقال ما و لم انتهي منه، ربما لا اغرب عرضه إلا عندما انتهي منه، مع إنني ارغب بحفظه في المنتدى و لكن عدم عره نظرا لأنه غير مكتمل أو مدقق.

الرسائل الأخرى قد تكون لها حالات مختلفة أيضا، على سبيل المثال قد يكون شخص ما بحاجة إلى مساعدة ما فيكتب رسالة، ربما عنوانها لا يدر على انه بحاجة إلى مساعدة، ولكن لو وجدت أيقونة خاصة لذلك فسوف تعلمنا بان الشخص بحاجة إلى مساعدة.

عندما يقدم له شخص المساعدة فيمكنه إن يصنف رده على انه حل الموضوع نسبة 50 أو 60 أو 100 بالمائة، لذلك يجب إن تختفي هذه الأيقونة بصورة آلية من الرسالة ليعرف الجميع إن الموضوع محلول و منتهي.

الأيقونات بجانب الرسائل يجب إن تكون توضيحية، مثل الرسالة تحتوي على مشكلة، مقال، وصلة انترنت، الرسالة بحاجة إلى متابعة إضافية، الرسالة لم تحل، الرسالة ألغيت ، .... ما إلى ذلك

ربط الرسائل معا، في الكير من الأحيان قد يكتب شخص رسالة ما، و قد تكون لها علاقة ب 4 رسائل أخرى في نفس المنتدى، يجب إن نعطي للشخص إمكانية بربط رسالته برسائل أخرى في المنتدى، أو إعطاء تلك الإمكانية للمشرفين أيضا، أو إن نضع تصنيفات كثيرة داخلية بحيث إذا الشخص اختار تصنيف ما النظام يقوم بربط رسالته مع الرسائل الأخرى ذات علاقة بصورة آلية.

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

#5

حول حذف و تعديل الرسائل، يجب على المنتديات الجديدة أن توفر إمكانية إخفاء للرسائل أو حذفها حسب صلاحيات المشرفين و المدراء في الموقع، بالطبع بالنسبة للمستخدم النهائي فالرسالة حذفت، سواءً أخفيت أو حذفت نهائيا، عملية الإخفاء هي للحفاظ على مركزية الحذف حتى لا تحدث عمليات حذف غير مراقبة.

تعديل الرسائل يجب آن يسمح لفترة محدودة أيضا، أي لمدة عدة ساعات و لاحقا يجب أن يأخذ إذن من المشرف لتعديلها، و الرسالة السابقة سوف تحفظ في ملف التعديلات و الرسالة الجديدة سوف تظهر بدل الرسالة السابقة و يمكن المشرف أن ينظر إلى كل التعديلات السابقة و تاريخ القيام بهذه التعديلات عبر وصلة تظهر له فقط، حتى لا يحدث و يقوم شخص ما بالاستيلاء على كلمة سر شخص آخر و تدمير رسائله عبر التعديلات.

أيضا محرر الرسائل يجب أن يتمكن من الوصول إلى المدقق الإملائي الموجود في برامج Microsoft Office لو وجد مركب في الجهاز، بحيث يسمح لك بفحص الأخطاء الإملائية في رسالتك قبل إرسالها إلى انترنت.

بخلاف الرسائل و المنتديات فنحن بحاجة إلى مخزن للصور التي قد تستخدم في بعض الرسائل، ما يقوم به الأعضاء اليوم هو إرفاق الصور في مواقع مختلفة و من ثم ربطها بالرسائل في المنتديات، حيث تختفي بعد مدة أو تفشل عملية الربط نظرا لان الموقع الذي خزنت به الصور لا يرغب بان تخزن به هناك.

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

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

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

التكامل الفيزيائي لقاعدة البيانات سوف يحدث عبر المفاتيح الرئيسية و المفاتيح الفرعية، التكامل المنطقي يجب أن يحدث عبر كود أل SQL المخزن في أل Triggers في جداول قاعدة البيانات.

اقصد بالتكامل الفيزيائي هو منع وضع رسالة لشخص غير موجود مثلا، أو حذف شخص له رسائل حتى لا تحدث مشاكل في قاعدة البيانات، و بالتكامل المنطقي هو الحفاظ على منطقية البيانات، بكلمات أخرى إذا تاريخ آخر تعديل للرسالة في جدول الرسائل هو 1/1/2000 فلا يجوز أن نقبل أن تضاف بيانات غير ذلك ي جدول متابعة تواريخ تعديلات الرسائل، و إن أضيف هناك فيجب أن يحدث جدول الرسائل بصورة آلية عبر أل Triggers و التي سوف تشغل بصورة آلية لحظة عمل أية تعديلات على قاعدة البيانات,

مشاركة المنتديات المختلفة لبعض بياناتها لبعضها البعض.

احد الأمور المهمة في انترنت هي أن تشارك بعض المواقع أجزاء من منتدياتها مع مواقع أخرى، اقتراح غريب أليس كذلك :)؟ ، إذا انتبهنا أكثر فبعض المواقع على انترنت اليوم تحتوي على منتديات ربما سوف يكون أفضل لو تشاركت بها مع مواقع أخرى، أي إذا نظرنا لموقع الفريق العربي للبرمجة و موقع فيجوال بيزك للعرب و جمعنا محتوياتهم معا فربما نجد بان في المنتديات أكثر من 100 ألف مشاركة، هذا رقم خيالي بالطبع.

إذا استخدم الموقعان نظام المنتديات الجديد فقد يمكنهم مشاركة منتدى واحد بينهم هما الاثنين، لا اقصد كل المنتديات طبعا و لا اقصد الفريق العربي للبرمجة و فيجوال بيزك للعرب حتى ما تحدث مشاكل معهم لأنني لم اخذ إذنهم للكتابة، و لكن تخيلوا لو أننا رغبنا بفتح منتدى جديد قليل الاستخدام لدينا بالاسم XYZ ، لماذا لا توجد طريقة ما لربط الجهاز المركزي الخاص بنا بالجهاز المركزي الخاص بفيجوال بيزك للعرب عبر XML لمشاركة هذا المنتدى معهم

بحيث عندما يكتب شخص رسالة هنا تظهر هناك و العكس صحيح، بحيث تخزن الرسائل في الموقعين معا، فإذا ضاع احد الموقعين لا يؤثر ذلك على الأخر.

بالطبع المشاركة قد تكون بكل المنتدى مثلا، أو برسالة ما مهمة رغب المشرفون هناك بعرضها في منتدانا للأهمية، أو بنظام إلي يشارك برسالة أو كذا رسالة يوميا، بحيث تبقى الرسائل مخزنة عندهم و الردود على الرسائل التي سوف تضاف من عندنا إلى رسائلهم تخزن عندهم و لكن فقط الرسالة سوف تظهر في الموقعين معا.

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

المشاركة قد تكون بواسطة البحث فقط، أي عند القيام بحيث ما أن تأتي الرسائل من منتديات فيجوال بيزك للعرب و الفريق العربي للبرمجة معا، أو في مواقع برمجة أخرى أيضا قد تتفق على الأقل لمشاركة البحث.

بالطبع المواقع قد تنشئ فدرالية بينها :) (صرنا دول) مع اتفاقات و نظم حماية و منتدى مشرفين موحد، بالطبع قد يكون هناك منتدى مشرفين لكل موقع و واحد خاص مشترك بين الموقعين أو المواقع المختلفة معا.

بالنسب للبحث فهو يجب أن يشمل الجهاز المركزي بالكامل، و كل البيانات بالداخل، البحث يجب ان يعطينا الإمكانية للوصول آلية أية بيانات في المنتديات مهما كانت طريقة تخزينها، مع المحافظة على صلاحيات الوصول إلى البيانات طبعا.

#6

عندما أتحدث عن السابق فانا أتحدث عنه متخيلا كل التكنولوجيا المتوفرة من Microsoft في هذا الموضوع و خصوصا .NET الجديدة كلغة برمجة و أجهزة مركزية، و التي قد تختلف قليلا إذا تخيلت المقال عبر MySQL و PHP حيث أن MySQL على سبيل المثال لن يتمكن من تقديم الكثير من الأمور السابقة في حماية قاعدة البيانات التي تحدثت عنها سابقا.

Microsoft .NET توفر في النظم التالية التي يمكن استخدامها لبناء مشروع مثل المشروع السابق

Microsoft SQL Server 2000

و الذي يوفر محرك قواعد بيانات ممتاز يمكنه استضافة قاعدة البيانات السابقة، حيث انه يوفر أيضا إمكانية المحافظة على هيكلية قاعدة البيانات منطقيا و فيزيائيا، كما يوفر حماية لقاعدة البيانات من التلف في حالة حدوث انقطاع للكهرباء، و في حالة عدم اكتمال بعض الطلبات مثلا أن يضيف شخص رسالة فتعدل نصف الجداول بدل كل الجداول، حيث يمنع ذلك، كما انه قادر على فهرسة البيانات للبحث بها بدون الحاجة إلى جداول إضافية.

Microsoft Internet Information Services 5 or 6

و الذي يقدم بيئة رائعة لتشغيل تطبيقات الويب، إضافة إلى إمكانيته لاستضافة ملفات DLL مختلفة سوف تستخدم لاحقا في عملية بناء المنتديات الجديدة، كما يمكنه فتح قنوات SSL مشفرة ما بين المستخدم النهائي و الجهاز المركزي، حيث تشفر بها البيانات بطريقة لا تتمكن نظم أل Proxy من التعرف على البيانات المتنقلة بالداخل.

Microsoft .NET Framework

و الذي يقدم بدوره دعم كامل لصفحات ASP.NET و التي باستخدامها يمكننا بناء منتديات بسرعات خيالية، اعتمادا على Microsoft Visual Studio .NET الذي يكتب الكثير من الكود لوحده و اعتمادا أيضا إلى لغات و نظم توصيف بيانات مساعدة مثل XML و DHTML مع Jscript و غيرها.

#7

نظم الحماية المستخدمة في المنتديات اليوم تعتمد أساسا على حفظ اسم الدخول و كلمة السر الخاصة بالمستخدم في متصفحه بداخل ملف cookie أو ربما تحفظ بصورة مؤقتة في المتغير Session طالما المستخدم فاتح المتصفح.

و طريقة عرض البيانات و حمايتها مسئول عنها المنتدى نفسه بحيث يوفر إمكانيات بسيطة لحماية البيانات في المنتديات، بالطبع البيانات محمية جيدا من الوصول إليها بطريقة غير مشروعة، و لكن الصلاحيات و هيكلتها محدودة جدا بالداخل، يعني في الفريق العربي للبرمجة واجهنا مشاكل كثيرة لحماية منتدى المشرفين مثلا (الذي هو مخفي الآن).

على المنتدى الجديد أن يوفر مفهوم أكثر تطورا عندما يتعلق الأمر بتسجيل الدخول و الحصول على البيانات، حيث المسئول الأول و الأخير عن ذلك يجب أن يكون محرك قاعدة البيانات نفسها و ليس برنامج المنتديات.

كل الطلبات يجب أن تذهب إلى قاعدة البيانات مرفقة بتعريف للمستخدم و قاعدة البيانات هي التي سوف تحدد ما هي البيانات التي يمكن أن يطلع عليها ذلك المستخدم و سوف ترجعها له، أي أن ليس المنتدى هو المسئول عن ذلك بعد الآن، كما انه يجب أن لا تستخدم الجداول مباشرة بل عبر Stored Procedures مخصصة لفحص المستخدم في كل أجزاء البرنامج.

الآن حول عملية تسجيل الدخول نفسها إلى الموقع هناك طريق كثيرة يمكن استخدامها، أسهل تلك الطرق هي الطلب من Windows تسجيل دخول المستخدم، حيث بمجرد الضغط على زر تسجيل الدخول سوف تفتح شاشة صغيرة لذلك و يتولى Microsoft Windows بالباقي، المشكلة في استخدام هذه الطريقة لو قرر احد استخدامها هي صعوبة إيجاد موقع على انترنت يعطي إمكانية للوصول إلى ملف مستخدمي آل Windows الخاص به، كما يجب على المستخدم لن يسجل دخول كل زيارة له للموقع، و إن نسى كلمة السر الخاصة به محفوظة في متصفح عام يمكن لشخص آخر استخدامها.

مع انه تبقى عملية تسجيل الدخول عبر Microsoft Windows (نظام المستخدمين بالداخل) من أقوى الطرق من ناحية التشفير.

ثاني طريقة ممكن استخدامها هي passport.com و لكن ذلك يعني انه على المبرمج أن يبقى جهازه متصل بانترنت 24 ساعة و يجب أن يتوفر له IP خاص للتجارب، كما إن الإخوة في سورية لا يستطيعون الوصول إلى Hotmail أو passport.com بكلمات أخرى ذلك الحل لن ينفع.

هناك طرق أخرى، أفضلها هي بناء نظام تسجيل للدخول خاص بالمنتدى نفسه، نظام بسيط و سلس و يمكن للجميع استخدامه بسهولة لاحقا.

فكرة النظام المقترح هي كالتالي:

أن يكون هناك جدول في أل SQL Server بالاسم Users تخزن به كل أسماء الدخول و كلمات السر

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

اسم الدخول و رقم السر سوف تشفر و ترسل إلى الجهاز المركزي مشفرة حتى لا تعترض في الطريق.

صفحة أل ASP.NET سوف تطلب من قاعدة البيانات تسجيل دخول للمستخدم، إذا نجح ذلك التسجيل سوف ترجع قاعدة البيانات رقم عشوائي مؤقت على شكل الرقم التالي مثلا:

{7AA49DEF-9AB9-4E51-9396-45A7484A8E4E}

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

كل صفحة تطلبها من الجهاز المركزي يجب أن تقدم معها الرقم السابق (المتصفح سوف يقدمه)، سوف قاعدة البيانات بالتأكد من ذلك الرقم و إعطائك البيانات التي لديك صلاحية للوصول إليها بناءا على ذلك الرقم العشوائي المؤقت.

مدة الرقم العشوائي المؤقت قد نضعها 900 ثانية مثلا، بحيث إذا لم يصل أية طلب إلى قاعدة البيانات في تلك الفترة فعليك تسجيل الدخول من جديد، بكلمات أخرى إذا نسيت نفسك مسجل دخول في متصفح ما يحتفظ بالرقم العشوائي المؤقت و غادرت الجهاز، فلن يتمكن الشخص التالي من الوصول إلى الموقع عبر ذلك الرقم المخزن إذا مرت 15 دقيقة.

بالطبع أنت قد تحدد الرقم الخاص بك، قد تجعله صفر حتى لا ينتهي ذلك الرقم نهائيا، بالطبع عندا يجب أن تكون أكثر حرصا.

عند كل عملية تسجيل دخول أن تحصل على رقم عشوائي جديد، بكلمات أخرى لو نسيت تسجيل دخولك في جهاز ما و لا توجد مدة انتهاء لتسجيل دخولك هناك، فكل ما هو مطلوب أن تسجل دخول من جهاز آخر لتصدر قاعدة البيانات رقم عشوائي مؤقت جديد و لا تتعرف على الرقم السابق بعد ذلك، تسجيل خروج آلي بكلمات أخرى.

#8

السلام عليكم ورحمة الله وبركاته جميعا

وبعد

الأستاذ خضر لم يترك لنا شيأ بدون أن يشبعه تفصيلا وتحليلا

ولكن من باب المشاركة أقول

من الناحية الإدارية أو لنقل المعنوية للمشاركات في المنتديات,

تختلف المشاركات في قيمتها من ناحية العمر والوقت ومن ناحية ارتباطها المعنوي بين المشاركات تحت موضوع واحد.

فمثلا....

لو كتب مقال مطول حول موضوع من المواضيع.

ثم كتب أحد المشاركين استفسارا حوله, وجاءه الرد المناسب.

فالنتيجة في الغالب أن الاستفسار قلت قيمته كموضوع يستحق القراءة. ولكن باستعمال الطرق الحالية لإدارة المنتديات تعامل كل المشاركات بطريقة عرض واحدة بغض النظر عن انتهاء وضيفة المشاركة أم لا.

ومن الناحية الأخرى.

الردود على المشاركات تختلف في علاقتها بالمقال الأصلي.

فمن المؤيد والمعارض, إلى المستفسر والمقرّض.

المفترض أن كل رد بحسب علاقته من المقال الذي كتب من أجله, المفترض أن يأخذ مسارا مستقلا ويتطور الحوار بناء عليه.

ويتفرع من الموضوع الرئيسي شجرة واضحة الفروع كل فرع وكل فرع يتفرع من الفرع أخذ موقعه من الشجرة بناء على نوع علاقته بالفرع الذي قبله.

لو كان هذا ممكننا لقل تأثير المهاترات الكلامية في المنتديات نتيجة إهمال الفروع الناتجة عنها ولأصبح الفرع ذو الفائدة الأكبر هو الذي يأخذ حقه في النمو عن طريق التفاعل.

لكن الحاصل في الشكل الحالي للمنتديات أن المقال الواحد يصعب أن يتجاوز مسارا واحدا يتحدد غالبا بالقوة الكلامية -لا المعنوية- للردود التي يستقبلها.

والسلام عليكم.

#9

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

و انا من ناحيتي مستعد للموضوع من قسم التصميم والويب و يكفي ان المنتدى راح يكون من انتاجنا .. لكن اخاف ان الشركات الأجنبية تاخذ المنتدى مننا و تقوم بتحويله لمنتديات اجنبية :D ..

طبعا العمل راح يكون عظيم و شاق محتاج تحليل نظام قوي و قاعدة بيانات قوية فيزيائيا و منطقيا و يبقى تصميم الصفحات برمجيا أبسط في حالة وجود تحليل نظام واضح جدا ..

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

You can fly while you can touch the sky

#10

الهدف من تثبيت الرسالة هنا هو ان تتكون افكار تتحول الى مخطط تصميم منتدى متكامل لاحقا يقوم بها اية من الاعضاء او الادارة او اية شخص.

في تصميم البرامج المرحلة الاولى هي عرض الافكار بهذا الشكل، و المرحلة الثانية تحويل الافكار الى ورق و ليس الى المشروع، لان جربنا ذلك سابقا و لم ينجح.

رسم المشروع بكل تفاصيله، انا باستخدم برنامجين لهذا الامر عندما بابني برامجي احدهما Microsoft Visio و الذي بيجعلت تشعر بانك تحتاج الى شاشة 21 بوصة لتتمكن من استخدامه جيدا و للاسف لا يدعم اللغة العربية جيدا، و الثاني هو Microsoft PowerPoint و الذي هو رائعة في هذا المجال.

يعني بامكانكم ان تجربوا من بناء كل المنتدى المقترح على شكل مربعات في PowerPoint بالتفصيل الممل و شرح كل منها في جزء الملاحظات التابعة للصفحة لتصبح كل صفحة PowerPoint هي صفحة تبنى ب ASP.NET لاحقا.

يمكن ان يقوم شخص بتصميم كل الملف و ارفاقه في هذه الرسالة و من ثم سوف ننبه اذا نسى شيئ او سوف يقوم الاعضاء باضافة اضافات الى الرسمة، لان الكل لديه PowerPoint و الكل قادر على الرسم بدالخه بسهولة، فهو اسهل البرامج.

عندما ينتهي المخطط بالكامل انا باتبرع ان ابني لكم قاعدة ابيانات هي و كل كود ال Transact SQL في SQL Server لن ياخذ وقت تقريبا، المهم ان يوجد المخطط بالكامل ليتمكن الاخرين من تطبيقه

بامكانكم بناء المخطط بالعربية و مقابله بالانجليزية، حتى يتمكن المنتدى بالعمل باللغتين فورا، هذا سوف يجعله منتدى مشهور جدا و يغطي مرة واحدة على المنتديات الانجليزية الاخرى، يعني بدل ان يعرف العرب بالارهاب و الصحراء و الجمال، سوف يعرفون ايضا بافضل من يبني المنتديات :D

هذا هو هدف قسم تصميم البرامج ايضا ;)

#11

هناك ايضا طريقة اخرى للتصميم و هي بواسطة FrontPage بامكانك فتح مشروع ويب جديد و رسم المنتدى بالداخل عبر رسائل وهمية، و من ثم ارفاق وصلة اسفل كل صفحة لترسلك الى صفحة الشرح الخاصة بهذا الرسم.

هذه الطريقة اعقد قليلا و لكنها ليست بالمعقدة جدا، الا اذا لم تكن لديك خبرة في ال HTML طبعا و لم يتوفر لديك برامج مثل FrontPage XP.

الان هناك 3 طرق لذلك، الطريقة الرابعة هي ان يرسم على ورق اذا لم ترتاح امام شاشة الكومبيوتر و ان يمسح ضوئيا و يعرض على شكل ملفات مرفقة في هذه الرسالة ايضا.

و لكن الاهم هو ان لا يذهب الشخص لبناء شيئ بدون تصميم سابق معلن امام جميع الاخرين يمشيئ الشخص او المجموعة عليه، يعني الرسمات السابقة في الاعلى هي صور فعلية من منتديات لم تنتهي نظرا لعدم وجود تصميم مسبق.

#12

الأخ: خضر

أشكرك كثيراً على هذا الموضوع والذي لا أخفي أنه شمل العديد من الأفكار التي تمنيت أن تذكر عندما يأتي الحديث حول تطوير المنتديات العربية.

وقبل أن أبدأ بالتعليق حول الموضوع أحب أن أنوه بأن هذا الموضوع لا يجب أن يوجه في مجال المنتديات فقط بل يجب أن يشمل ذلك ليكون نظام كاملاً (للأداء التفاعلي على الويب) وأقصد بذلك أن المنتديات بكل أنواعها ليست إلاَ واحداً بالمائة من مجال (الأداء التفاعلي على الويب)، لذلك أتمنى أن يتم توجيه المشروع المقترح ليغطي كل الأفكار التي تحتاجها مواقع الويب التفاعلية (منتديات، أنظمة مستخدمين، محركات بحث، إدارة المحتويات، الأنظمة الإحصائية، أنظمة الإعلانات، أنظمة التجارة الإلكترونية البسيطة، الأرشفة، الخ)

أرجو من المهتمين قراءة الموضوع في العنوان التالي:

http://www.postnuke.com/modules.php?op=mod...article&artid=2

ما زالت لدي أفكار واقتراحات أخرى سوف أقوم بكتابتها في وقت لاحق لضيق الوقت الآن

#13

بعد التحية ...

لم يترك الاخ خضر اي شئ ... و ما اخافه هو ان يستحوذ على المشروع كاملا ايضا ... على العموم .. اشكره على هذه المشاركة ... و انا في الخدمة ... في اي شئ ضمن امكاناتي ،،،

#14

بما أن الموضوع يدعو إلى دراسة نظرية وليس عملية، فأعتقد أنه لا داعي لذكر نوعية البرامج الي سيتم استخدامها لعمل النظام (أفضل أن أستخدم كلمة نظام بدلاً من منتدى)؛ حيث أعتقد أننا إذا نجحنا في التخطيط الجيد لطريقة الأداء والعمل فإننا سنستطيع برمجة النظام باستخدام أي لغة أو أي برنامج وبالاعتماد على أي نوع من أنواع قواعد البيانات،

لذلك سأفترض أننا سنستخدم لغة PHP وقواعد بيانات MySQL أو Oracle ، ولكنني سأفترض أيضاً أننا سنستخدم لغة ASP وقواعد بيانات Microsoft SQL أو ربما خليط من هذا وذاك.

وحتى لا يكون هناك لبس في الموضوع فإن هدف النظام هو استخدام واجهة بلغة HTML (على شكل صفحات ويب)، مهما كانت اللغة والبرامج التي سيتم استخدامها في السيرفر.

وبما أنني أقترح أن يكون النظام موجهاً للأداء التفاعلي ليشمل المنتديات ومجلات الويب (أو أنظمة التحكم في صفحات الويب) وغيرها، وليس المنتديات فقط فسأقوم بعرض نظرية شاملة لمناقشتها بهذا الخصوص:

1- يجب أن يكون النظام قابلاً للتعديل من قبل مبرمجين آخرين، وقابلاً للإضافة والتطوير لذلك أقترح تكوين عدة وحدات برمجية (Modules) تكون كل وحدة مختصة بمجال ما، ويتم دمج كل الوحدات عن طريق وحدة رئيسية Main Module عن طريق توجيه مدخلات ومخرجات كل وحدة إلى الأخرى ذات العلاقة بحسب توجيه معين سأطلق عليه المسار الموجِّه (Director Path) والذي سيحدد كيف ستندمج هذه الوحدات مع بعضها لتكوين النظام النهائي.

2- يجب تكوين واجهة بسيطة (كلوحة تحكم) يستطيع من خلالها المبرمجين كتابة التوجيه (Director Path) الذي سيتبعه النظام في دمج الوحدات مع بعضها البعض، وبالتالي إمكانية تحويل مجال النظام من منتدى إلى موقع ويب اعتيادي، إلى مجلة إخبارية أو نظام إحصائي، أو ما إلى ذلك حسب رغبة المبرمج الذي يقوم بالتهيئة لأول مرة، وبطريقة لا تحد من خيال المبرمج يجب أن يكون النظام قادراً على خلق أي تشكيلة من دمج الوحدات Modules بحسب فائدة كل وحدة مع بعضها البعض.

3- يجب أن يعتمد النظام على اسلوب معين لعرض المخرجات النهائية، وأقترح أن يكون هذا الأسلوب هو اسلوب القوالب الجاهزة، حيث يقوم المصمم (الشخص/الأشخاص المسئولون عن الشكل النهائي للنظام) بتكوين قوالب صفحات ويب دون الحاجة إلى معرفة طريقة البرمجة، ويقوم النظام باستخدام هذه القوالب تلقائياً فيظهر النظام بشكله النهائي، وأقصد بذلك طريقة شبيهة بالاسلوب المتّبع في كل من PHPNuke ، PostNuke ، و vB Forums ، بحيث يصبح المستخدم النهائي للنظام قادراً على تغيير الشكل دون الحاجة إلى فهم طريقة البرمجة أو الرجوع إلى المبرمجين، ودون وضع حدود لإمكانية تغيير الشكل.

4- طريقة عمل النظام يجب أن تبنى على مفهوم الفروع عديدة التشعب Multi-Threads بشكل شجرة، أوضح ذلك كما يلي:

|-الجذر

...|----|-الفرع الأول

............|-----|-التفرع الأول

............|-----|-التفرع الثاني

........................|---------التفرع الأول

...|----|-الفرع الثاني

...|----|-الفرع الثالث

...|----|-الفرع الرابع

وباستخدام المسار الموجِّه سيقوم النظام بتحديد نوعية كل تفرع بحيث يصبح الفرع الأول مثلاً منتدى ويصبح الفرع الثاني أرشيف ملفات، وعندما ينشأ تفرع من الفرع الأول يرث صفاته من الأب (الفرع الأول) فيصبح منتدىً فرعياً بحسب توجيه المسار Director Path، كما يمكن تحديد الصفات التي سيرثها التفرع من الفرع الأعلى، بحيث يمكن أن يرث صفات محدودة بحيث الفرع الأدنى يصبح موضوعاً أو رسالة وليس منتدى ، ويقوم كل فرع بتشغيل الوحدة Module التي سيستخدم صفاتها الرئيسية ، وتقوم الوحدة Module بدورها بتغشيل الوحدات الأخرى التي لها علاقة بنفس الفرع بحسب التوجيه.

فيمكن تكوين المنتدى بهذا الشكل

|-المنتدى الرئيسي

...|----|-المنتدى الفرعي الأول

............|-----|-الموضوع الأول

............|-----|-الموضوع الثاني

........................|---------الرسالة الأولى

...|----|-المنتدى الفرعي الثاني

كما يمكن بسهولة تغيير نوع أو إنشاء فرع جديد يتصف بصفات أخرى و يستخدم بعضاً من صفات الفروع الأخرى ، بحيث يمكن إنشاء موقع تفاعلي متنوع بشكل واسع ودون ظهور أي انفصال بين أجزائه فكل الفروع تعمل تحت نظام واحد، مثال:

|-الموقع الرئيسي

...|----|-الصفحة الرئيسية

...|----|-المنتدى

............|-----|-الموضوع الأول

............|-----|-الموضوع الثاني

........................|---------الرسالة الأولى

...|----|-أرشيف الملفات

............|-----|-القسم الأول

........................|---------الملف الأول

........................|---------الملف الثاني

...|----|-صفحة العناوين

............|-----|-المجموعة الأولى

........................|---------العنوان الأول

5- تستخدم كل الوحدات Modules قاعدة بيانات واحدة، ولكنها لا تعمل إلا عن طريق المسار المحدد، بحيث تكون كل وحدة عبارة عن كائن Object له خصائص Properties ، وإجراءات Methods ، و أحداث Events، بحيث يمكن للمسار أن يربط بين عدد من الوحدات عن طريق الأحداث مثلاً، فعندما يقوم المستخدم بطلب كتابة رسالة جديدة (حدث طلب الكتابة Event) تقوم وحدة الرسائل بطلب وحدة المستخدمين للتأكد من صلاحيات هذا المستخدم (خاصية صلاحية المستخدم Property) ، فإذا ما كانت الصلاحيات صحيحة تقوم الوحدة بكتابة رسالة جديدة وهي بالتالي ستستخدم إجراء Method يقوم بإنشاء تفرع جديد يرث الصفات نفسها أو حسب التوجيه من الفرع الحالي، كما يمكن بسهولة.

6- يجب أن تكون الوحدة الرئيسية Main Module قادرة على التفاهم مع أي وحدات أخرى جديدة حتى يمكننا بسهولة أن نقوم ببناء وحدات جديدة ودمجها مع الأنظمة القائمة في أي وقت.

إذا اقتنعتم بالفكرة يمكننا عندئذ دراسة كل وحدة Module على حدة، بحيث نتمكن من إنشاء نظام متكامل ويحتوي على كل الصفات التي ذكرها الأخ/ خضر ، وأكثر

لا أدري إذا كان شرحي للفكرة كافياً، أم أنه مبهم؟

#15

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

حسب الهيكلية الهرمية سوف تضيع امكانية اظهار رسالة في منطقتين في نفس الوقت، هذه هي الملاحظة الوحيدة، مع انه لا فكرة كاملة لدي كيف سوف يحدث ذلك ، اقصد الهيكلية الشبكية :D

باقي الفكرة رائعة، و ياريت تكمل كل الافكار التي لديك حتى نتمكن من وضع دراسة موحدة و شاملة و نبني على اساسها هيكلية قاعدة البيانات ايضا.

#16

لحل كل من مشكلة ربط أحد الفروع (موضوع منتدى مثلاً) في أكثر من قسم، ومشكلة ربط المواقع المختلفة مع بعضها البعض فإنني أقترح إعداد قاعدة البيانات لهذا الغرض، فنقوم أولاً بتعريف جدول خاص بارتباطات المواقع مع بعضها البعض، فحين يتم الاتفاق بين موقعين أو أكثر على مشاركة المحتويات يقوم كل موقع بإضافة اسم مستخدم للموقع الآخر للارتباط بقاعدة البيانات وتحديد نوعية الارتباط، وإن لم يكن ذلك ممكناً فإن ذلك قد يتم عبر سكربت معين لتبادل البيانات داخلياً، ولكن ذلك يشترط أيضاً وضع اسلوب معين لمشاركة مجموعة المستخدمين وكذلك مشاركة مؤشر الجلسة Session Handler ولكن هذا موضوع جانبي سأقوم بتوضيحه لاحقاً، وسوف اكتفي الآن بذكر طريقة هيكلة قاعدة البيانات لتفعيل عمليات الربط المختلفة بين الأقسام والمواقع...

فيما يلي مثال لجدول بيانات يحتوي على تعريفات ارتباطات موقعنا مع مواقع أخرى:

matrix01.jpg

وبالتالي فإن مرجع موقعنا هو رقم صفر والذي يقوم باستخدام قاعدة بيانات MySQL مثلاً، ومرجع الموقع 1 هو ربط بموقع vb4arab مثلاً باستخدام MicrosoftSQL وباسم دخول وكلمة مرور معطاه من قبلهم بعد الاتفاق بحيث يسمح للنظام بمشاركة بعض المواضيع المتفق عليها.

ولمعالجة ربط الأقسام مع بعضها البعض مع وجود إمكانية مشاركة موضوع في أكثر من قسم، فإننا يجب أن نستخدم جدولاً لتحديد التفرعات الرئيسية (الآباء Parent Threads) كما هو موضح في المثال التالي:

matrix02.jpg

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

matrix03.jpg

لاحظوا ارتباط الفرع VB4ARAB_Home والفرع Ex_Article بموقع vb4arab حسب رمز الارتباط المذكور في جدول ارتباطات النطاقات.

وكذلك ارتباط LinkedArticle بقسمين رئيسين هما SubForum1 و SubForum2 ، دون الحاجة إلى استخدام نسختين من نفس الفرع وذلك بدلالة الربط 3 والتي تؤخذ من جدول ارتباطات التفرعات الرئيسية.

وبذلك نستطيع تمثيل موقعنا بطريقة الشجرة كالتالي:

matrix04.jpg

ما رأيكم بالفكرة؟

#17

يا اخوان انا فكرتكم عجبتني ورغم اني مو لذيك الدرجة خبير لكني باساعدكم على الي اقدر عليه:)

وعندي اقتراحات لكم :

ان بعض الأجزاء والفقرات من المنتدى تكون مدعمة بالفلاش, كالوقت مثلا!

وان لوحة تحكم صاحب المنتدى تكون مدعمة بنافذة صغيره بالـ Html

لكي يكون على اتصال بالفريق العربي للبرمجة واخر اخبار والهاكات والتحديثات للمنتدى.

نضع برنامج مسابقات او اسئلة بحيث يمكن من لوحة التحكم ان يضع مسابقة أو اسئلة في كل المنتديات.

ان البرنامج يتيح لكل عضو ان يضع له توقيع واحد فقط في المنتدى وبحجم معين.

كل هذه الميزات لا توجد في باقي المنتديات وتحقيقها سهل:)

#18

كهذا مثلا:

pw.gif

#19

بالنسبة لفكرة الربط فهي جيدة مع الاعتقاد بانه قد تكون مشاكل اذا قررنا ربط نظم قواعد بيانات معا، ايضا لو امكننا ان نجعل الربط XML Services سوف نضمن ان نربط نظم قواعد البيانات معا، اي ان مايكروسوفت و صن و IBM و اوراكل الان يدعموا ال XML services و هذا يعطي الامكانية ربط قواعد البيانات و المواقع بغض النظر عن التكنولوجيا

بالنسبة لان يكون جزء من الموقع فلاش فانا نفسي ان يكون اغلبة فلاش او داعم للوسائط المتعددة، بحيث تاتي الرسائل من قوعدة البيانات و تمر الى صفحة HTML+Flash لتظهر بشكل متقدم على الشاشة و بشكل جميل

للاسف فلاش لا يدعم العربية، ربما تحتب به بحيلة ولكنه عندما يتصل بقاعدة البيانات ليحضر البيانات ، حسب علمي لن يحضرها بصورة صحيحة بالعربية .

يمكن للتحايل على ذلك استخدام SMIL2 و VML مع ال MSHTML ذلط سوف يبني واجهة خيالية للمنتديات غنية بالوسائط المتعددة و داعمة لكل اللغات، مثلما ان يكون البرنامج من المستقبل، ولكن ذلك سوف يجعل المنتديات لا تعمل الا في متصفح Internet Explorer 6 لانه الوحيد الذي يدعم التكنولوجيات السابقة معا.

الان هناك ايضا موضوع اخر، يظهر هذا العام هو اخر عام لقواعد البيانات العلاقية، التكنولوجيا القادمة يمكن تسميتها Object Server او Document Server بخلاف Database Server، شيء متقدم للغاية قد يستبدل خادم الويب ايضا لانه سوف يعمل ك XML Service.

و قد تستبدل لغة XHTML كل لغات HTML الموجودة الان، لان المتصفح قد يتصل بال Object Server مباشرة.

امر معقد و غير مؤكد في كل اجزائه، على العموم هذا لا يلغي طبعا بناء المنتدى بما هو متوفر من تكنولوجيا اليوم لانها رائعة.

#20

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

وفي جزئية مهمة جدا وهي في الملفات المرفقة :

لما يجي العضو ويحمل ملف لازم يكون متاكد ما فيه فايروس او اي شي ممكن يضر بقاعدة البيانات, فمن الأفضل للأمان نوصله بالمكافي لو بيصير المنتدى بالـphp صعب شوي لكن بالـ Asp يكون اسهل من اي لغة اخرى.

http://antivirus.arabteam2000.com

|

|

Member Attachments

==========================

من خضر ترزي: اعذرني على التعديل البسيط، التعديل حدث في الوصلة فقط لم امسك الرسالة :D

#21

بالنسبة للفلاش انا لا اقصد بناء صور كثيرة به، بل استخدامه لاحضار النصوص من قواعد بيانات و عرضها بصور مختلفة على الشاشة، و هذا لا يثقل المتصفح اذا صمم بصورة صحيحة، بل ربما يسرعه قليلا.

بالطبع المشكلة القائمة الى الان معه هي دعمه للعربية و اللغات الاخرى، لذلك تقريبا لا ارغب باستخدامه، والا هناك طرق مختلفة تجعلك تحمل الكائنات مرة واحدة و تستخدمها لاحقا.

#22

ممكن استخدام تقنية بعض البرامج مثل الرسام العربي S + خط عربي = س

W + خط عربي = و

#23

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

راح تكون مسئلة صعبة شوية يعني :D

المقصود بالسابق هو ان تصنع صفحات فلاش فارغة، تتصل بقاعدة بيانات و تحضر منها النصوص المخزنة بالعربية هناك.

المنتديات نفسها تعتمد على قاعدة بيانات، منتدانا مثلا يخن كل شيئ في قاعدة بيانات و الصفحات هي صفحات فارغة تحضر البيانات منها، هذا المقصود بصفحات فلاش التي تحتوي على طريقة تحريك النصوص و تحضر تلك النصوص من قاعدة البيانات.

النصوص سوف تكون نصوص عربية في هذا الوقت، وال server هو الذي يجب ان يبني ملفات الفلاش بصورة الية، بواسطة برنامج اضافي من ماكروميديا.

هذا الذي كنت اقصده بالضبط :D

على العموم الفكرة تبقى مستحيلة نتيجة لدعم اللغة العربية، ولكن لو قمت بتجارب و نجحت فبرجاء اخبارنا، انا قمت قبل اسبوع بكتابة رسالة طويلة عريضة الى ماكروميديا حول اللغة العربية في فلاش و ما تلقيت اية رد، مثلما قام الكثيرون قبلي

#24

والله انا اذكر موقع عربي لتصميم عروض الفلاش بحيث ان تكتب الكلمة بحيث انك تكتب النص ويظهره في عرض الفلاش دون اي اخطاء وبالعربي لكن اعطيني وقت اطلع الموقع لاني نسيت:)

#25

والله انا اذكر موقع عربي لتصميم عروض الفلاش بحيث انك تكتب النص ويظهره في عرض الفلاش دون اي اخطاء وبالعربي لكن اعطيني وقت اطلع الموقع لاني نسيته:)

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…