لو فرضنا انك عملت فورم اضافة " يوزر جديد " او " محرر جديد " ذو صلاحيات وليكن كالتالي ( المطلوب ) :
1- السماح بالتحكم في الاخبار
2- السماح بالتحكم في الاقسام
3- .. اي شيء آخر
وعند اختيار " السماح بالتحكم في الاقسام " يتم تحديد الاقسام التي سيكون له صلاحية عليها ..
( الحل ) :
عندك 3 نقاط ..
اول نقطة :
عملية السماح نفسها كما ذكر الاخوة ، يكون عندك حقل في الداتا بيز لكل يوزر اسمها مثلا allow_news و allow_cats واي شيء تريده .. وتكون قيمه 0 و 1
ولا يوجد فرق اذا كان 0 = false او العكس .. المهم ما تحدده انت وما تقوم بالتحقق منه ، ولكن طبعا المفروض والطبيعي .. والمتعارف عليه
0 = false
1 = true
النقطة الثانية :
تحديد الاقسام الذي له صلاحية عليها .. وهنا يوجد طريقتين ، الطريقة الاولى غير مستحبة ، والثانية احترافية إلى حد ما ..
+ ملحوظة : طبعا في الفورم ستعطيه قائمة select list فيها الاقسام كلها وهو يقوم باختيار الاقسام multiple choice
الطريقة الاولى :
- ان تقوم بتحديد الاقسام في فيلد آخر في الداتا بيز مثلا allowed_cats = 1,2,3,4 ، وعند قرائة الاقسام تقوم استخدام explode مثلا للحصول على الايديهات ثم الاستعلام عنها في الداتا بيز عن طريق
كود PHP:
select any from any where id in ('$ids')
الطريقة الثانية ( المفضلة ) :
- تقوم باضافة جدول آخر يحتوي فقط على صلاحيات الاقسام لكل محرر .. ستكون الهيئة الخاصة به بالشكل التالي مثلا :
catid - editor_id
بحيث يكون اي دي المحرر ثابت والمتغير هو اي دي القسم .. مثلا المحرر للآي دي 1 يقوم بالتحكم في الاقسام 1 و 2 و 3
فتكون بالشكل التالي
1 - 1
1 - 2
1 - 3
وعند الاستعلام عنها .. تقوم باستعلام كالتالي
كود PHP:
select any from any where editor_id = 1
ستحصل على مصفوفة بها جميع الايديهات تبع الاقسام ..
وهذه تسمى علاقة one to many relationship
النقطة الثالثة والاخيرة :
كيفية التعامل مع المحرر ، او كيف تقوم باعطائه صلاحياته فعليا .. ويوجد طريقتين :
1- تقوم بعمل لوحة تحكم خاصة بالمحررين
2- يكون دخول المحررين في نفس لوحة تحكم المشرف العام
كل طريقة لها مميزات وعيوب ..
الطريقة الاولى :
ممتازة امنيا ، وتقوم بالتحكم في صلاحيات المحررين دون اي خوف .. ولكن عيبها انك بحاجة إلى نظام تربط فيها بين التمبليتس .. والخصائص بشكل عام ..
عشان مثلا لو جيت عدلت فوم اضافة الخبر .. لا تعدله هنا وهناك ..
الطريقة الثانية :
سهلة من حيث انك لن تضطر لتعديل هنا وهناك .. ولكن عيوبها انك ستضطر انك تشيك في كل نقطة على الصلاحيات .. وتهتم بظهور العناصر او لا .. ولاحظ انه لابد ان تقوم بالتحقق من شيئين :
1- انه لا يظهر غير العناصر الذي له صلاحياتها فقط
2- انه حتى لو قام بكتابة الرابط مباشرة لن يكون مخول لدخول لتلك الصفحة
اتمنى اني اكون قدرت اوصلك اي حاجة .. لأني شخصيا مش فاهم حاجة من اللي انا كتبته
بالتوفيق