برمجة وأفكار برمجية

دروس 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الأوسمة:

برنامج إعلام لبث الرسائل الصوتي

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

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

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

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

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

مشروع ThroughSky إضافة جديدة للمصادر المفتوحة

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

ait7184.jpg

قمت بحمد الله وتوفيقه بتوفير برنامج ThroughSky لعالم المصادر المفتوحة بشكل رسمي وذلك بالتعاون مع زملائي بالجامعة ابراهيم الدعجان وعبدالعزيز الحسن. http://www.throughsky.net وهذا المشروع هو عبارة عن برنامج إدارة محتوى مخصص ﻹدارة رسائل الجوال بأنواعها المختلفة، بدءاً من رسائل الجوال العادية والنغمات والشعارات وانتهاءً برسائل الوسائط المتعددة. وقد تم تطوير هذا البرنامج المميز ليكون قادر على الربط مع أي بوابة رسائل جوال أو ما يعرف بـ (SMS Gateway )، بما في ذلك (ClickaTell ) أو غيرها من الشركات التي توفر خدمة رسائل الجوال بكميات كبيرة. ويتيح برنامج (ThroughSky) الجديد للمستخدم إمكانية الاعتماد على برنامج إدارة واحد للربط مع شركات متعددة وتوفير حلول مميزة لجهات مختلفة، مما يسمح لهم بتقديم خدمات مميزة من خلال لعب دور الوسيط. وهو أول برنامج عربي مخصص لهذا الغرض مفتوح المصدر خاضع لرخصة المصادر المفتوحة GPL ، وقد أعلن مشروع أوملكس التقني مؤخراً عن انضمام برنامج (ThroughSky) الخاص بإدارة محتوى رسائل الجوال إلى قائمة المشاريع ذات المصدر المفتوح التي يقدمها للمستخدم العربي ، وقد نشر هذا الخبر في العديد من وسائل الإعلام اﻹلكترونية . مثل البوابة العربية لأخبار التقنية: http://www.aitnews.com/index.php?option=newsDetails&nid=7184 وكذلك صحيفة الوئام : http://www.alweeam.com/inf/news.php?action=show&id=566 وأحب ن أشكر اﻷخوة القائمين على مشروع أوملكس http://omlx.omanana.net/ على تقديرهم الرائع لمشروع ThroughSky وأعتقد بأن الفرصة متاحة للشباب العربي الان أكثر من ذي قبل لنشر إبداعهم عبر مثل هذه القنوات التي تدعم إنتاجهم .
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

مسابقة اﻷسرار

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

asrar_logo.png

بينما كنت أبحث عن بعض الملفات القديمة وجدت بين تلك الملفات مسابقة قديمة كنت قد صممتها بينما كنت في المرحلة الثانوية . وهي مسابقة اﻷسرار .. وقد طرحت في ذلك الوقت بشكل تجاري محدود على مستوى مدينتي التي أعيش فيها وهي مدينة الرس بالمملكة العربية السعودية. وقد قمت بتصميم هذه المسابقة بلغة Visual Basic 3 او قريبا من ذلك اﻹصدار :) وكانت من أجمل المسابقات التي أعجبت العديد من اﻷصدقاء وكنت أجدها منسوخة في العديد من اﻷجهزة وكنت أسأل أصحاب تلك اﻷجهزة هل دفعتهم قيمتها لي على سبيل النكتة. وكانوا يردون بأن محل الكمبيوتر هو الذي نسخها لنا . وفكرة هذه المسابقة بسيطة وهي أن يقوم البرنامج بإعطاءك كلمة سر مكونة من خمس أحرف وكذلك لمنافسك وعند الخطأ تقوم المسابقة بكشف حرف واحد من الحروف والذي تنكشف جميع الحروف الخاصة به يكون مهزوما…. وهذه المسابقة ﻻ تعمل اﻵن على نظام وندوز XP فهي تعمل على وندوز 98 أو ملينيوم وهذه واحدة من مشاكل ميكروسوفت المتكررة ، وارتحت كثيرا من مشاكل عدم التوافق مع التحول لنظام لينكس وخصوصا عند البرمجة بلغة جافا ..
..إقرأ المزيد
نشر بواسطة:2الأوسمة:

البرمجة بقوة وببساطة مع بايثون

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

محررات PHP في بيئة لينكس

الزيارات: 39    أضف تعليق
لعل العديد من المبرمجين وخصوصا مبرمجي PHP قد عشقوا كثيرا محررات النصوص التي تعتمد على اﻷلوان وتمميز اﻷوامر عن بقية النص العادي داخل الكود البرمجي ..

وهنا أفضل محررين جربتهما في بيئة لينكس ..
اﻷول : المحرر والبيئة المتكاملة الشهيرة Eclipse
فهو المحرر الشهير للتطوير أصلا للغة جافا وهو مفتوح المصدر وأصبح الان يدعم التحرير بعدة لغات منها
C++
PHP
وكذلك العديد من اللغات اﻷخرى
دعم PHP في هذه البيئة التطويرية رائع جدا فهناك ميزة اﻹكمال تلقائي وكذلك معالج حل مشاكل اﻷخطاء البرمجي Debuger
وهو خيار رائع ويعيبه حجمه الكبير نسبيا..


الخيار الثاني : هو المحرر البسيط والجميل gphpedit
محرر سهل الاستخدام يدعم نظام الألوان والقوالب بعض التعليمات البرمجية الهامة
وليس معه فاحص للأخطاء البرمجية ولكنه خيار جيد لمن يريد أن يحرر بسرعة
ويمكن تركيبه مباشره مع توزيعة أبونتو عبر اﻷمر

sudo apt-get install gphpedit
..إقرأ المزيد
نشر بواسطة: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الأوسمة:

تطوير جديد لموقع مرسول لرسائل الجوال

الزيارات: 25    أضف تعليق
استعد لتطوير جديد لموقع مرسول لرسائل الجوال http://www.mrsool.com/ الذي تقدمه مؤسسة إكساء لتقنية المعلومات http://www.exa.com.sa/ ولقد قمت بتصميم هذا الموقع من الصفر بلغة php مع قواعد بيانات Mysql واعتمد في برمجته على البرمجة كائنية المنحى OOP والتطوير القادم سوف يشمل حل العديد من المشاكل السابقة بالإضافة إلى توفير أدوات تعمل على برنامج Outlook للبريد الإلكتروني

مرسول


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

برنامج مراكز مجاناً الآن

الزيارات: 26    أضف تعليق
تم الإتفاق مع موقع البث الإسلامي .. الموزع الحصري لبرنامج مراكز - الإصدار الثالث أن يتم توزيع برنامج مراكز هذه السنة مجاناً بنتزيله مباشرة من موقع البرنامج www.marakz.com قمت بتصميم برنامج مراكز منذ البداية على ميكروسوفت أكسس ..مع برنامج تنفيذي بسيط بلغة فيجول بيسك … وقد أوقفت التطوير لنسخ جديدة على ميكروسوفت أكسس تمهيداً للتحول إلى لغة أخرى وتطوير يستحق ذلك .. وأفكر فعلياً بأن تكون النسخة الجديدة معتمدة على الوب بشكل أساسي بمعنى php أو jsp والخيارات لا زالت مفتوحة

مراكز

وتم جعل هذه النسخة مجانية تعاوناً مع الجهود الرائعة التي تبذلها المراكز والنوادي الصيفية وكذلك المراكز الإسلامية بالخارج
..إقرأ المزيد
نشر بواسطة: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الأوسمة:

انتهيت من تعريب برنامج إدارة المشاريع DotProject

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

logo_large.png

يعتبر برنامج DotProject من أفضل البرامج لإدارة المشاريع الصغيرة والمتوسطة وذلك لأنه مصمم بطريقة سلسلة وواضحة وكذلك لأنه يعمل على الإنترنت Online مما يسهل أن يكون أعضاء فريق التطوير لأي مشروع في أماكن متفرقة .. وهذا المشروع عبارة عن مشروع مفتوح المصدر متوفر تماماً على موقعه الخاص وعلى موقع sourceforge.net وهو مدعوم بطاقم مطورين حول العالم وحيث أن هذا المشروع المفيد حقا لم يتوفر حتى الآن لنا نحن العرب لغتنا العزيزة على قلوبنا ، فقد قمت بالإنضمام إلى فريق التطوير لهذا المشروع ( وهنا روعة المصادر المفتوحة ) وقمت بالتعريب بنسبة 75% لهذا المشروع ، وقد تم اعتماد هذا التعريب وأصبح DotProject الآن متوفر باللغة العربية . يمكنك تنزيل البرنامج من www.dotproject.net وبعد التنزيل قم بتنزيل ملف اللغة العربية من قائمة اللغات المدعومة هنا http://www.dotproject.net/index.php?name=CmodsDownload&file=index&req=viewsdownload&sid=35&orderby=dateD وبالتوفيق إن شاء الله وإدارة ناجحة لمشاريعك.


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

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

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

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


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

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