CakePHP

عودة للتدوين والبداية ستكون مع تطبيقات عملية بواسطة CakePHP بإذن الله

الزيارات: 54    أضف تعليق
الحمد لله رب العالمين .. والصلاة على خير عباد الله أجمعين .... أكتب هذه التدوينة بعد فترة إنقطاع كبيرة نسبيا وذلك بسبب انتقالي لعملي الجديد في البنك السعودي السعودي للتسليف والادخار كمحلل نظم في مدينة الرياض وكنت خلال الفترة الماضية منشغل كليا بترتيبات السكن بالرياض والتعود على نمط العمل الجديد .. وقد تم كل ذلك على ما يرام بتوفيق من الله عز وجل ، فله تعالى الحمد أولاً وآخرا ... وقبل الشروع في التدوين من جديد أود أن أقول بأن التدوينات القادمة سوف تكون في مجملها عن إطار العمل CakePHP وكيفية البرمجة بسهولة وسرعة وإتقان من خلاله .. ولكن قبل ذلك أود أن أسلط الضوء على بعض الأمور الهامة التي لم يتسنى لي الكتابة عنها في وقتها : 1- أعزي أخي فهد السعيدي بوفاة زوجته وجده فأحسن الله عزاءه وألهمه الصبر والسلوان ( والاخ فهد له جهود بارزة في نشر الثقافة التقنية العالية من خلال الموقع التقني الشهير "وادي التقنية"  والذي يعنى بدرجة كبيرة بأخبار المصادر المفتوحة وخصوصا في العالم العربي). 2- كانت أيام حرب غزة أيام صعبة علينا جميعاً ، وأود أن أسجل هنا إعجابي وتقديري للكرامة العربية والاسلامية التي أعاد إحياءها  رجال المقاومة الشجعان الذين يدافعون عن أرضهم ودينهم وكذلك أهل غزة الشرفاء الذين صبروا على العدوان لوحدهم بعد أن تم إغلاق كافة طرق النجاة من قبل الأخوة في الدين والعروبة .. فحسبنا الله ونعم الوكيل. 3- كذلك أود أن أسجل إعجابي الشديد بمشروع "أعجوبة" والذي هو فعلا أعجوبة بحجم العمل المنظم والكبير المبذول فيه ، وهو مشروع تقني يهدف إلى الاستفاددة من عالم المصادر المفتوحة في دعم اللغة العربية وأهلها وتوفير أنظمة تشغيل وبرامج ومكتبات عالية الجودة ومفتوحة المصدر ، وكل الشكر لمن يقف خلف هذا المشروع وخصوصا الأخ  الفاضل : مؤيد السعدي. هذا ما كنت أود طرحه قبل العودة للتدوين مرة أخرى ... وسوف أبدأ لاحقا بإذن الله بحلقات تطبيقية ( وليست تعليمية من الصفر ) للبرمجة من خلال إطار العمل الرائع CakePHP ....
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

دروس CakePHP#1 : التركيب على أوبونتو لينكس Ubuntu

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

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

1- في البداية سوف نقوم الان بتجهيز أوبونتو لينكس ليكون سيرفر شخصي يدعم PHP وكذلك Mysql وبطبيعة الحال وقبل كل ذلك Apache ، لعمل ذلك نقوم أولا بالذهاب إلى مدير الحزم عبر قوائم System ثم Administration ثم Synaptic Package Manager

ثم بعد ذلك اختر قائمة Edit ثم Mark Packages By Task

سوف يظهر لك بعدها نوع التركيب اختر LAMP Server ثم OK

إقرأ المزيد

نشر بواسطة:2الأوسمة:

دروس CakePHP#2 : فكرة موقع "بنك الأفكار الإبداعية"

الزيارات: 148    أضف تعليق
أبدأ في هذه التدوينة باول التطبيقات العملية لفهم إطار CakePHP بعمق واستخدام عملي أكثر . وسوف نقوم ببناء تطبيق متكامل من الصفر  يمر بعدة مراحل مثل بناء النظام الأولي ونظام تعدد المستخدمين والصلاحيات والمجموعات ونظام تعدد اللغات وكذلك استخدام تقنية AJAX في أغلب خدمات الموقع وكذلك استخدام تغذيات  RSS  وأخيرا كيفية بناء تطبيق متعدد القوالب لكل مستخدم ، وسوف نمر خلال رحلتنا هذه ببناء بعض الـ Helpers وكذلك ربط بعض الـ Vendors الخاصة بنا كعرب ومسلمين مثل دعم التاريخ الهجري وأدوات تفقيط الأرقام وكذلك تسهيل التعامل مع إنتاج ملفات PDF باللغة العربية  ، وفي النهاية سوف نحاول تطبيق اختبارات للنظام ، وفي العموم سوف يمر المشروع بأربع مراحل  : المرحلة الأساسية : مرحلة بلورة فكرة النظام وتحديد الرسالة والرؤية. المرحلة الأولى : مرحلة التحليل وتحديد  المتطلبات الأساسية . المرحلة الثانية : مرحلة التصميم على الورق والمدخلات والمخرجات والعمليات . المرحلة الثالثة : مرحلة التطبيق وتشمل بناء قاعدة البيانات وكتابة الكود . المرحلة الرابعة : مرحلة الاختبار . المرحلة الخامسة : مرحلة تسليم المشروع :) وسوف يكون التركيز وأغلب الوقت مركز على المرحلة الثالثة بحكم أننا مبرمجين . حيث أن عدد الدروس المتوقعة لهذا التطبيق هي تقريبا 30 درس ، سوف سوف أحاول بأن تكون في فترات منتظمة بقدر الامكان. وبسم الله نبدأ في التدوينة التالية مع موقع ( بنك الأفكار الابداعية ) ..
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

دروس CakePHP # 3 : مرحلتي التحليل والتصميم لموقع "أفكار إبداعية"

الزيارات: 67    أضف تعليق
نبدأ الان بتطبيق المراحل التي تكلمنا عنها في التدوينة السابقة ، وسوف يكون ذلك بشكل سريع حتى نبدأ بشكل تطبيقي أكثر ... المرحلة الأساسية : مرحلة بلورة فكرة النظام وتحديد الرسالة والرؤية: من أين جاءت فكرة الموقع؟ : أعتقد بأن من أكبر أسباب فشل العديد من المواقع هو إهمال رأي زواره أثناء مرحلة التطوير فيكون توجه الموقع في اتجاه وأغلب الزوار يرغبون بتوجه آخر فيبدأ الموقع بفقد زواره يوما بعد يوم وذلك لصالح المواقع التي توفر لهم البيئة التي يرغبونها. وعلى هذا فإن صاحب أي موقع يرغب بالتطور الدائم والحفاظ على زواره فإن عليه وبشكل دائم معرفة آراء زواره بكل شيء وعليه أن يشجعهم على طرح أفكارهم وذلك حتى يستفيد منها ، وعليه كذلك جعل الزوار يصوتون على أفكار بعضهم البعض حتى يحدد ماهي الخدمات التي يرغبها زواره أكثر . وهنا جاءت فكرة موقع "بنك الأفكار" لتوفير هذه الخدمة على شكل شبكة اجتماعية، تتيح لصاحب أي موقع الاشتراك فيها وتحديد المواضيع التي يرغب بأن يطرح زوار موقعه أفكارهم عنها وتصويتهم على أفكار بعضهم البعض ثم إتاحة هذا الرابط على موقعه. الرسالة : نعمل في بنك الأفكار الابداعية على تغيير واقع التواصل بين مقدمي الخدمات بأنواعها والمستفيدون من تلك الخدمات إلى الأفضل عبر توفير بيئة تواصل وتقييم دائم بشكل متفاعل وذلك في شتى المجالات. الرؤية : أكبر موقع عالمي لانتاج وتشارك الأفكار على شبكة الانترنت. المرحلة الأولى : مرحلة التحليل وتحديد المتطلبات الأساسية : المتطلبات الرئيسية للنظام : * يقبل النظام إضافة مواضيع عدة بشأن كل مجال مثل "أفكار لتطوير محرك بحث جوجل" ثم يتيح للزوار إضافة مثل تلك الأفكار. * يمكن تأييد كل فكرة إبداعية لأي زائر أو عدم تأييدها. * يتم إضافة المواضيع وكذلك الأفكار بعد التسجيل بالموقع. * يتم إرسال بريد الكتروني ترحيبي لكل مشترك عند اشتراكه يحتوي على طريقة التواصل مع الموقع بشكل سهل وسريع. * توفر ميزة مشاركة المواضيع والأفكار عبر عدة طرق للمشاركة الاجتماعية. * الموقع يجب أن يعمل بتقنية AJAX وذلك لتوفير سرعة التحميل وتقليل الضغط على قاعدة البيانات. *يجب أن يدعم الموقع نظام القوالب لكل زائر . *يجب أن يدعم الموقع الاشتراك بتغذية RSS وذلك لمعرفة آخر الأفكار أولا بأول من قبل المشتركين بتلك الخدمة. * في حال تنفيذ أحد الأفكار على أرض الواقع يتم نشر ذلك وتغيير حالتها وإخبار من اقترحها مباشرة عن تنفيذها. * يدعم النظام الاشتراك واسترجاع كلمة المرور عبر البريد الالكتروني. * أريد أن يكون النظام عبارة عن تطبيق ويب ويكون بلغة مرنة وقابلة للتعديل بسهولة حتى لو أصبح حجم النظام كبيرا. * يتم عرض وترتيب الأفكار بعدة طرق مثل الأحدث إضافة أو الأكثر شعبية أو الأكثر تأييدا أو الأكثر زيارة . المرحلة الثانية : مرحلة التصميم على الورق والمدخلات والمخرجات والعمليات : بعد الاطلاع على المتطلبات السابقة يمكن البدء بمرحلة التصميم المبدئية للنظام وذلك بتصور مبدئي للنظام من خلال شاشتين الأولى تخص المواضيع التي يراد توفير أفكار إبداعية لحلها. أما الشاشة الثانية فهي شاشة الأفكار الابداعية لكلك موضوع كما يلي : هذا بالنسبة للتجهيز ..... أتمنى أن تكون الفكرة واضحة وذلك حتى يتم الانتقال للمرحلة التالية وهي مرحلة التنفيذ عبر تصميم قاعدة البيانات والبدء بالبرمجة الفعلية...
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

دروس CakePHP # 4 : بعض المصادر والأدوات قبل البدء في برمجة "أفكار إبداعية"

الزيارات: 108    أضف تعليق
في هذه التدوينة أود بأن أبين بأن طريقة طرح الدروس سوف تكون على شكل حلقات منفصلة عن بعضها البعض في البداية فمثلا سوف تكون هناك حلقتين عن "إنشاء نظام المستخدمين والصلاحيات والمجموعات" تعتبر هذه الحلقات منفصلة تماما عن أي حلقات أخرى بحيث يمكن تطبيقها لوحدها ودمجها في أي برنامج يخص المشاركين بالدورة . وأعتقد بأن هذا الأسلوب هو الأنسب ،  وسوف تكون التدوينات مستمرة بإذن الله بغض النظر عن عدد الحضور للدورة لاعتقادي بأن ما يكتب سوف يبقى في الانترنت لمن يبحث عنه لاحقا . بعد هذا التوضيح نأتي الان إلى تحديد بعض المصادر والأدوات التي سوف نحتاجها في هذه الدورة : أولا : نحتاج إلى شعار  Logo  للموقع وأتمنى من أحد الأخوة المصممين بأن يحتفنا بهذا الشعار والذي يحتوى على عبارة  " بنك الأفكار الإبداعية" . ثانيا : نحتاج إلى قالب CSS  قياسي نعتمد عليه وأنا أرشح هذا القالب في البداية وإذا  كان لدى أي من الأخوة  قالب آخر فأتمنى ألا يبخل به علينا . ثالثا : سوف نحتاج إلى بعض الصور البسيطة مثل صورة سهم متجة للأعلى وآخر للأسفل وكذلك صورة متحركة لعمليات التحديث عبر AJAX وأيقونة للمشاركة وأقترح الصور التالية : رابعا : نحتاج إلى محرر للكود وأترك لكل أخ اختيار محرره المناسب له ، أما بالنسبة لي فسوف أستخدم Eclipse PDT في كافة خطوات المشروع بإذن الله. خامسا : سوف نضع هذا المشروع كمشروع مفتوح المصدر تحت الرخصة العمومية GPL2  وسوف نتمتع بكافة مزايا التشارك في الكود عبر استخدام خدمة جوجل لاستضافة المشاريع المفتوحة المصدر على رابط المشروع الجديد هنا http://code.google.com/p/creativeideasbank/ ولربط برنامج Eclipse بموقع المشروع للتشارك والعمل الجماعي على الكود  أو لسحب آخر التحديثات للمشروع بشكل تلقائي يمكن الاطلاع على الرابط التالي هنا سادسا : ورقة أو وثيقة بدء المشروع هي كما يلي :

اسم المشروع

بنك الأفكار الإبداعية

نوع المشروع

تطبيق ويب

لغة البرمجة ومحرك  قواعد البيانات

PHP By CakePHP with MySQL

لغة التطبيق  - ولغة الواجهة

التطبيق: الانجليزية - الواجهة : متعدد اللغات

رخصة  استخدام المشروع

GPL 2.0

تاريخ البدء بالمشروع ومدة التنفيذ

16 فبراير 2009 - المدة : 4 أسابيع

مدير المشروع

الموقع المتوفر عليه مصدر المشروع للتشارك

http://code.google.com/p/creativeideasbank/

سابعا : نحتاج إلى توفيق الله تعالى لنا جميعا.
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

ربط برنامج RapidSVN في عملية تشارك التعديلات على مشروعنا

الزيارات: 68    أضف تعليق
rapidsvn قبل البدء في أول تدوينة عملية لمشروع "بنك الأفكار الابداعية" أود أن أشكر كافة الأخوة الذين شجعوني على الاستمرار بهذه الحلقات وقد رغب البعض بأن يكون هناك شرح لبعض مهارات التعامل مع برامج التشارك بالملفات والتطوير الجماعي المتبع في عالم المصادر المفتوحة  ونزولا عند رغبة هؤلاء الأخوة أود أن أوضح كيف يمكن للأعضاء في المشروع الربط مباشرة في نظام تنقيح وتطوير المشروع بشكل متزامن ومنظم  أو الحصول على نسخة ليليلة Nightly ( إن صح التعبير ) وذلك عبر استخدام خدمة SVN وسوف أقوم شرح بسيط لاستخدام هذه الخدمة مع أحد البرامج المتوفرة وهي كثيرة وذلك باستخدام برنامج   RapidSVN أولا : لتركيب البرنامج في أوبونتو اذهب إلى Applications   ثم   Add/Remove  ثم في خانة البحث في الأعلى ابحث عن كلمة svn  بعدها سوف تظهر لك البرامج المطابقة اختر RapidSVN  ثم أخيرا انقر على Apply Changes  وسوف يتم بعدها تركيب البرنامج في قسم Programming * بالنسبة لمستخدمي ويندوز فإن هناك نسخة خاصة على موقع البرنامج وهي هنا بعد تركيب البرنامج وتشغيله كل ما عليك هو اختيار قائمة Respository  ثم خيار Checkout   ستظهر شاشة تطلب منك عنوان URL  لموقع المشروع انسخ الرابط التالي : https://creativeideasbank.googlecode.com/svn/trunk أما في خانة اسم الملجد الهدف فيمكنك وضع مسار واسم المجلد الذي تريد تنزيل ملفات المشروع عليه .... بعد ذلك انقر على موافق وسوف يتم تنزيل كافة ملفات المشروع على جهازك ( والموجود حاليا هو نسخة نظيفة من آخر إصدارات الكيك )  ..... ويمكنك الاطلاع على ملفات البرنامج كاملة عبر موقع المشروع على GoogleCode عبر الرابط التالي : http://code.google.com/p/creativeideasbank/source/browse/#svn/trunk في كل مرة تالية تود الحصول على آخر التعديلات اختر المشروع الذي تم إنشاءه وانقر عليه بالزر الأيمن للفأرة ثم اختر   update وإذا كنت تود المشاركة في التعديلات فيمكن اختيار المشروع الذي تود التعديل عليه بالزر الأيمن للفأرة ثم اختيار Login  وأدخل اسم المستخدم وكلمة المرور الخاصة بك في جوجل ولكن قبل ذلك أعلمني حتى أضيفك لأعضاء المشروع . وبعد إجراءات التعديلات التي تراها مناسبة وعند رغبتك رفعها للسيرفر كل ما عليك هو اختيار Commit بالتوفيق إن شاء الله وسوف تكون التدوينة التالية عن إنشاء نظام تعدد المستخدمين  والمجموعات والصلاحيات  ونظام تسجيل الدخول الخروج  وهي على حلقتين بإذن الله حيث انتهيت من 95% من العمل على تلك التدوينات وبقي أمور بسيطة تتعلق بتنسيق الكود والتوافق مع آخر إصدارات الكيك .
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

دروس CakePHP # 5 : بناء نظام تعدد المستخدمين والمجموعات والصلاحيات.

الزيارات: 113    أضف تعليق

users

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

مميزات النظام الذي سوف نبنيه في هذه التدوينة :

1- نظام مرن في منح الصلاحيات على كل Action تابع لأي Controller .

2- يمكن تعيين الصلاحيات للمجموعات  .

3- عند وضع أي مستخدم في أي مجموعة فإن المستخدم سوف يمنح كافة صلاحيات تلك المجموعة.

4- يتم إنشاء قائمة لكل مستخدم عند تسجيل دخوله بحسب صلاحياته ، بحيث يعرض له الـ Controller الذي له صلاحية عليه. ( هذه الميزة أراحتني كثيرا كثيرا ) .

5- إدارة الصلاحيات تتم بشكل سهل جدا ومريح بدون تعقيدات ACL

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

نبدأ الآن ببناء نظام تعدد المستخدمين ... أولا سوف نقوم بإنشاء 5 جداول جديدة في قاعدة البيانات لديك  ( ملاحظة : لنسخ الكود انقر على صورة الورقة التي بجوار الطابعة أعلى كل صندوق للكود ثم انسخ ما سيظهر في الصندوق ) : [code language='sql'] CREATE TABLE IF NOT EXISTS `groups` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) collate utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `groups_permissions` ( `group_id` int(11) NOT NULL, `permission_id` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `groups_users` ( `group_id` int(11) NOT NULL, `user_id` int(11) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `permissions` ( `id` int(11) NOT NULL auto_increment, `name` varchar(50) collate utf8_unicode_ci NOT NULL, `title` varchar(250) collate utf8_unicode_ci NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL auto_increment, `username` varchar(40) collate utf8_unicode_ci NOT NULL, `email_address` varchar(50) collate utf8_unicode_ci NOT NULL, `password` varchar(50) collate utf8_unicode_ci NOT NULL, `language_id` int(11)   NULL, `active` tinyint(1) NOT NULL, `created` datetime NOT NULL, `modified` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; [/code] نقوم الأن بإضافة بعض البيانات الهامة للجداول السابقة كما يلي : [code language='sql'] INSERT INTO `groups` (`id`, `name`, `created`, `modified`) VALUES (1, 'Administrators', '2008-11-07 18:44:13', '2008-11-07 21:47:24'); INSERT INTO `groups_permissions` (`group_id`, `permission_id`) VALUES (1, 1); INSERT INTO `groups_users` (`group_id`, `user_id`) VALUES (1, 1); INSERT INTO `permissions` (`id`, `name`, `title`, `created`, `modified`) VALUES (1, '*', 'جميع الصلاحيات', '2008-11-07 18:43:40', '2008-12-12 15:45:27'); INSERT INTO `users` (`id`, `username`, `email_address`, `password`, `language_id`, `active`, `created`, `modified`) VALUES (1, 'admin', 'na@nahedh.com', '3c2164ad6d86cefb2151cf1e1a8d6a2a084b759e', 2, 1, '2008-11-07 18:45:34', '2008-12-19 23:18:15'); [/code] بعد إعداد الجداول وإضافة البيانات إليها سوف يكون لدينا مستخدم واحد اسمه admin  وكلمة المرور الخاصة به مشفرة وهي 1111 ، له كافة الصلاحيات * لأنه في مجموعة Administrators  ، والأن نقوم بإنشاء الملفات المطلوبة : أولا نقوم بإنشاء الـ Models المطلوبة للربط مع الجداول السابقة : قم بإنشاء الملف التالي :

app/models/user.php

[code language='php'] array('email'), 'password' => array('alphaNumeric'), 'active' => array('numeric') ); var $hasAndBelongsToMany = array( 'Group' => array('className' => 'Group', 'joinTable' => 'groups_users', 'foreignKey' => 'user_id', 'associationForeignKey' => 'group_id', 'unique' => true ) ); } ?> [/code]

قم الان بإنشاء الملف :

app/models/group.php

[code language='php'] array('className' => 'Permission', 'joinTable' => 'groups_permissions', 'foreignKey' => 'group_id', 'associationForeignKey' => 'permission_id', 'unique' => true ), 'User' => array('className' => 'User', 'joinTable' => 'groups_users', 'foreignKey' => 'group_id', 'associationForeignKey' => 'user_id', 'unique' => true ) ); } ?> [/code] ثم الملف:

app/models/permission.php

[code language='php'] array('className' => 'Group', 'joinTable' => 'groups_permissions', 'foreignKey' => 'permission_id', 'associationForeignKey' => 'group_id', 'unique' => true ) ); } ?> [/code] نأتي الان إلى إنشاء  الـ Controllers : قم بإنشاء الملف التالي :

app/controllers/users_controller.php

[code language='php']Session->del('Permissions'); $this->redirect($this->Auth->logout()); }
..إقرأ المزيد

نشر بواسطة:2الأوسمة:

تدوينة مرئية لإعداد إطار عمل CakePHP على السيرفر المحلي

الزيارات: 99    أضف تعليق
flash-iphone أكتب هذه التدوينة على عجل وذلك بعد أن انتهيت من إعدادها بشكل مرئي على ملف فلاش أتمنى أن يعجب بعض الأخوة الذين طلبوا شرح طريقة التركيب ... www.nahedh.com/cakephp/flash/cakephp01.swf
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

انتقال المدونة إلى نظام التدوين الجديد FishBlog بنسخة ألفا

الزيارات: 264    أضف تعليق

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


..إقرأ المزيد
نشر بواسطة:1الأوسمة:

باستخدام برنامج التدوين المفتوح المصدر FishBlog | هذا القالب بواسطة & الأيقونات بواسطة N.Design Studio
RSSدخول