وثائق الاستخدام - حزمة (IT الاصدار 1.6.40)

AR, EN


المقدمة


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

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

المتطلبات.

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

  1. يجب ان يكون اصدار ال PHP الخاص بك بداية من 7.3 على الاقل اثناء استخدام الحزمة وعند اطلاق مشروعك يمكنك تثبيت الاصدار 8.0 من PHP.
  2. يجب عليك عمل بعض الاعدادات فى ملف php.ini للنسخة التى تقوم بالتطوير عليها فى جهازك ولا يشترط ان تكون نفس الاعدادات على الاستضافة اثناء اطلاق مشروعك اليك الاعدادات المطلوب عملها وهي لتسهيل بعض المتطلبات للحزمة
                                         max_input_vars=500000
                                         max_input_time=6000
                                         memory_limit=3000M
                                         max_execution_time=300
                                         post_max_size=2000M
                                         max_file_uploads=200
                                         upload_max_filesize=2000M
                                    
  3. يجب تنصيب المكتبة wkhtmltopdf لتصدير اي تقرير من خلال yajra-datatable علي هيئة pdf يجب اتباع الاتى
    للتنصيب على نظام Mac OSX من خلال مدير الحزم والمكتبات Brew
                                         brew install wkhtmltopdf
                                    
    للتنصيب على نظام Linux وليكن بالتحديد Centos

    CentOS 8

                                         sudo yum -y install wget
                                         wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos8.x86_64.rpm
                                         sudo dnf localinstall wkhtmltox-0.12.6-1.centos8.x86_64.rpm
    
                                    
    CentOS 7
                                         wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox-0.12.6-1.centos7.x86_64.rpm
                                         sudo yum localinstall wkhtmltox-0.12.6-1.centos7.x86_64.rpm
                                         to test pdf version
                                         wkhtmltopdf --version
                                         wkhtmltopdf 0.12.6 (with patched qt)
                                         to test image
                                         wkhtmltoimage --version
                                         wkhtmltoimage 0.12.6 (with patched qt)
                                    

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

(محمود ابراهيم) مطور ومنشيء الحزمة

.

البدء

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

اولا الحزم التى تم تنصيبها تلقائيا هي :-

                    "barryvdh/laravel-snappy"
                    "dompdf/dompdf"
                    "fideloper/proxy"
                    "fruitcake/laravel-cors"
                    "guzzlehttp/guzzle"
                    "intervention/image"
                    "langnonymous/lang"
                    "laravelcollective/html"
                    "maatwebsite/excel"
                    "mpdf/mpdf"
                    "phpanonymous/c3js"
                    "phpanonymous/it"
                    "spatie/laravel-honeypot"
                    "tecnickcom/tcpdf"
                    "tymon/jwt-auth"
                    "unisharp/laravel-filemanager"
                    "yajra/laravel-datatables-buttons"
                    "yajra/laravel-datatables-editor"
                    "yajra/laravel-datatables-fractal"
                    "yajra/laravel-datatables-html"
                    "yajra/laravel-datatables-oracle"
            

تنصيب حزم المصادقةا بحسب موقع Laravel

                    php artisan ui:auth --views
                    php artisan ui:auth
                    php artisan ui bootstrap --auth
                    php artisan ui vue --auth
                    php artisan ui react --auth
            

تجهيز معلومات المشرف لدخول لوحة التحكم

                    php artisan migrate
                    php artisan db:seed
            
اضغط هنا لدخول لوحة التحكم الخاصة بالمشروع https://jobsoffices.com/admin

البريد الالكترونى: [email protected]
كلمة المرور: 123456

الاعدادات التلقائية

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

البيئة والهيكل الذى يتم بنائه تلقائيا بواسطة الحزمة

المجلدات والملفات التى يتم زرعها والتغيير عليها تلقائيا بحسب الاعدادات الحالية لهذا الاصدار

  1. - app
    1. -- DataTables
    2. -- Exceptions
      1. -- Handler.php
    3. -- Handlers
      1. -- LfmConfigHandler.php
    4. - Http
      1. -- Controllers
        1. -- Admin
          1. -- AdminAuthenticated.php
          2. -- AdminGroups.php
          3. -- Admins.php
          4. -- Dashboard.php
          5. -- Settings.php
        2. -- Api
          1. -- AuthApiLoggedIn.php
        3. -- Validations
          1. -- AdminGroupsRequest.php
          2. -- AdminsRequest.php
        4. -- FileUploader.php
      2. -- Middleware
        1. -- AdminAutenticated.php
        2. -- AdminGuest.php
        3. -- AdminRole.php
        4. -- ApiLang.php
    5. -- AdminRouteList.php
    6. -- Kernel.php
    7. -- Mail
      1. -- AdminResetPassword.php
    8. -- Models
      1. -- Admin.php
      2. -- AdminGroup.php
      3. -- AdminGroupRole.php
      4. -- Files.php
      5. -- Setting.php
      6. -- User.php
    9. -- Providers
      1. -- AppServiceProvider.php
      2. -- ExtraValidations.php
      3. -- RouteServiceProvider.php
  2. - config
    1. -- auth.php
    2. -- cors.php
    3. -- datatables-buttons.php
    4. -- datatables-fractal.php
    5. -- datatables-html.php
    6. -- elfinder.php
    7. -- excel.php
    8. -- filesystems.php
    9. -- honeypot.php
    10. -- image.php
    11. -- itconfiguration.php
    12. -- jwt.php
    13. -- langnonymous.php
    14. -- lfm.php
    15. -- logging.php
    16. -- session.php
    17. -- snappy.php
  3. - database
    1. -- migrations
      1. -- 2014_10_12_000000_create_users_table.php
      2. -- 2014_10_12_100000_create_password_resets_table.php
      3. -- 2019_08_19_000000_create_failed_jobs_table.php
      4. -- 2019_10_19_094109_create_admins_table.php
      5. -- 2019_10_19_102130_create_files_table.php
      6. -- 2019_10_19_985759_create_settings_table.php
      7. -- 2021_03_22_134182_create_admin_groups_table.php
      8. -- 2021_03_22_193126_create_admin_group_roles_table.php
    2. - seeders
      1. -- DatabaseSeeder.php
  4. - public
    1. -- design
    2. -- js
    3. -- css
    4. -- it_des
    5. -- vendor
  5. - resources
    1. -- lang
      1. -- ar
        1. -- admin.php
        2. -- pagination.php
        3. -- validation.php
      2. -- en
        1. -- admin.php
        2. -- pagination.php
        3. -- validation.php
      3. -- fr
        1. -- admin.php
        2. -- pagination.php
        3. -- validation.php
    2. - views
      1. -- admin*
      2. -- errors*
      3. -- vendor*
      4. -- welcome.blade.php
  6. - routes
    1. -- admin.php
    2. -- api.php
    3. -- configurations.php
    4. -- web.php

اجريت هذه التغييرات لصالح المشروع الخاص بك اي ان كان الدوافع التى ستبني بها المشروع سواء كانت خدمية بواسطة Api او خدمية بواسطة blade او اي احتياجات اخري ستلقى حتما تجهيزات لها كما اجريت بعض التعديلات على ملف session.php لتوفير تغيير اسم الجلسات فى الاطار بدلا من laravel وايضا اجريت تعديلات على ملف logging.php لتغيير نمطية اخراج logs لتكون مترخة بتاريخ اليوم التى حدثت فيه المشكلة لتفسير منطقى اكثر للمشاكل عوضا عن دمجها ىف ملف واحد باسم laravel.log بحيث تكون مقسمة تقسيما يري المطور انه حكيما واكثر فصاحة او تفسيرا كما تم ادراج مسار فى ملف filesystem.php باسم it يمكنك ازالته ان اردت ذلك بعد انتهائك من المشروع

قائمة المسارات

تم عمل صفحة خاصة لمشاهدة كافة المسارات التى تم إنشائها فى مشروعك وتصنف بحسب حالة كل مسار بحسب الانواع الاتية All Routes , GET , HEAD , POST , PUT , PATCH , DELETE

يمكنك الذهاب للرابط من خلال الضغط هنا https://jobsoffices.com/it/routelist





















سير العمل

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

يمكنك الذهاب للرابط من خلال الضغط هنا https://jobsoffices.com/it/workflow





















بابون

ماهو بابون

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

Init CRUD-Info

Language & Other

Columns & Inputs

Relations

يمكنك الذهاب للرابط من خلال الضغط هنا https://jobsoffices.com/it/baboon-sd

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

Init CRUD-Info

باديء ذي بدء سيكون تجربتك مع بابون هي تجربة رائعة لذا تعددت المهامه فى تبويبات مختلفة تبداء من هذا التبويب الاساسي الذى منه تقوم بإعداد اساسيات الوحدة الواحدة الخاصة بك لتمكنك من اعداد نموذج امثل منها اعدادات مسارات الملفات الخاصة بالنموذج كعنوان النموذج الاول من خلال CRUD Title (Project Name) مع تحديد مساء انشاء ملفات ال blade التى ترتبط بشكل كلي مع المتحكم و النموذج المسؤول عن التخزين فى قاعدة بياناتك فمن هنا من خلال (admin blade path) يمكنك تحديد المسار الذى سيتم انشاء ملفات العرض الخاصة بلوحة التحكم التى يتم منها ادارة النموذج اما من خلال هذا الحقل (Model Name) يمكنك كتابة اسم نموذج مناسب لكل مشروع تقوم بإنشائه او نموذج فيجب عليك ان تتبع المعايير الخاصة بانشاء الكائنات مع امكانية اختيار المسار الذى سيتم انشاء النموذج فيه من خلال القائمة المنسدلة (Model Namespace) بعد ذلك وبكل سهولة يمكنك من خلال الحقل (Controller Name) كتابة اسم المتحكم الخاص بك مع تحديد مسار انشائه ايضا من القائمة المنسدلة امامك وهي (Controller Namespace) يفضل ان تختار المسارات App\Http\Controllers\Admin لمتحكمات الادارة وعند اتمام انشاء اول نموذج خاص بك ستظهر لديك قائمة منسدلة ستراها لاول مرة باسم (Edit Module From List) من خلالها يمكنك التعديل على النماذج التى قمت بانشائها سابقا لتزيد عليها بعض التحسينات بما يتوافق مع الحقول والاشياء الاخري الخاصة بك كما يمكنك ايضا اختيار رمز تعريفي من نوع fontawesome يضفي لنموذجك طابعا خاصا يمكنك اختيار احد الرموز الجاهزة من قائمة الرموز المعدة مسبقا


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

Language & Other

اعدادات اللغة وعناصر اخري تمثل اهمية كبيرة اثناء انشاء النموذج الخاص بك فسيكون امامك فى هذه الواجهة على اليسار بعض الحزم الاساسية التى يتم تنصيبها تلقائيا من خلال حزمة IT وهي LaravelCollective , Yajra , intervention وهذه الحزمة انت من المفترض ان تعرفها جيدا ولا وقت لشرح كل استخدام حزمة بشكل دقيق لان هذه حزم رئيسية شائعة بين المطورين اما الذى يجب ان نركز عليه هي ان هذه الحزم لابد ان تكون منصبة ولا يجوز حذف اي حزمة منهم الا فى حال استغنائك عن اي خدمة من خدماتها ولابد ان تكون على دراية تامة بهذا الامر اما مابعد ذلك فيوجد امامك بعض الخيارات التى تتمثل فى اعدادات محتوي النموذج الخاص بك مثل اولا (LaravelCollective) وهي ان يتم انشاء الحقول وال form الخاص بك من خلال هذه الحزمة اما عن (Enable Soft Delete) فانت تسمح لان تكون كل القيم الخاصة بالجدول تستخدم اسلوب الحذف الناعم اي لا يتم حذفها نهائيا وتكون كمثل قيم مخزنة حيث ان تكون مرجع يمكن استعادتها مرة اخري فى حال حدوث اي خطاء فى النموذج الخاص بك او لاستعادة البيانات عموما اما عن الخيار (Migrate This) فهو من خلاله بعد ما يتم انشاء ملف migration الخاص بالنموذج يقوم مباشرة بإنشاء الجدول تلقائيا الخاص بالنموذج فى قاعدة البيانات مباشرة اما عن الخيار (Have Admin Id) فمن خلاله تتمكن من جعل هذا النموذج تسجيل وربط اسم المشرف تلقائيا مع جدول admins الذى تم اعداده مسبقا فى قاعدة البيانات ليحمل اسماء المشرفين وحساباتهم فبهذا الخيار يتم انشاء العلاقات والربط مباشرة داخل المتحكمات الخاصة بك اما عن خيار (Make Model File) من خلاله تتمكن من انشاء Model او نموذج التخزين الخاص بك فى حال ازالة هذا الخيار لن يتم انشاء ال Model الخاص بك فهو موجود لحسابات اخري يمكن ان تحتاجها مسبقا فهدف المطور جعل الامور اكثر سلاسه ومرونة فى استخدام الحزمة اما عن خيار (Make Migration Schema File) من خلال هذا الخيار يمكنك ايضا ان تمنع انشاء ملف migration الخاص بالجدول والنموذج الخاص بك ويسري نفس الفكرة والفعل على (Make Controller FileوMake Datatable FileوMake View Files) وهو انشاء المتحكمات وملف datatable الخاص بحزمة yajra و ملفات العرض blade files فيجب عليك ان تعرف كيفية استخدام هذه الخيارات بعناية وهناك خيارات اساسية يتم اختيارها بشكل تلقائي من قبل الحزمة فيمكنك ازالة اي خيار حسب حاجتك اما عن الحقل lang file name من خلاله يمكك تحديد اسم الملف الذى سيتم ادخال كل المسميات التى ستقوم كتابتها فى التوبيب Columns & Inputs انظر الصورة بالاسفل

Columns & Inputs

من هنا نكون قد قاربنا على الانتهاء من بناء نموذج اولى يمكن استخدامه وسنكون مع اول حقل تلقائي نقوم ببنائه داخل النموذج الاساسي فيكون امامك Label Name وهو الحقل المسؤول عن ادراج اسم الحقل فى ملفات اللغة الاساسية لديك بعده مباشرة سنري القائمة المنسدلة باسم Input Type منه نختار نوع الحقل وهذه هي الانواع المتاحة اما هناك حقل جاهز باسم textarea مع المحر ckeditor ان قمت باختيار هذا الحقل فساعتها سيتم ادراج محرر ckeditor بشكل ذكي مع امكانية ادراج الصور فيه من خلال laravel-filemanager المستخدمة من قبل unisharp يمكنك البحث عنها وفهم كيفية عملها لكن لا عليك قمنا بالاعدادات الاساسية لهذه الحزمة وربطها عوضا عن تضييع وقتك فعليك فقط استخدامها ولن يضيرك اي شيء فنحن هنا نطب سياسة السرعة والانجاز والحصول على افضل اداء لمشروعك بكل سهولة ويسر ودون عناء اما عن الحقل Column name in table & validation فمن خلاله نكتب اسم الحقل الذى سيتم انشائه داخل جدول قاعدة بياناتك مع معلمات اخري مثل active|1,yes/0,no فى حال كان الحقل من نوع select متعدد القيم المحدودة او user_id|App\Models\User::pluck('name','id') فى حال كان الحقل من قائمة منسدلة تاتى بقيم من جدول اخر وهذا مثال صغير لكيفية كتابة استعلام يتم دمجه تلقائيا فى القائمة المنسدلة بسهولة تامة يمكن استخدام المعلمات مثل checkbox or radio - active#1 مع الحقول من نوع checkbox , radio فى حال اضافة اكثر من معلمة وهنا نأتى الى الحقول Nullable/ SQL NULL - Have Validation فى حال اختيارك Have Validation فهنا تبداء وضع قوانين الحقل الخاصة بك بحسب كل نوع كل حقل ويرجي اختيار القوانين بدقة متناهية حتي لا تواجه اي مشكلة فيها سيظهر امامك Basic Rules وبها بعض القوانين السريعة التى يمكن تحديدها مثل الملفات والصور ونوع القيم المدخلة عن طريق الحقل اما Advanced Rules فستري بعض القوانين المتقدمة التى يتم تخصيص فيها بشكل اكبر من هنا ننتقل الى Schema Relation ومن هنا تبداء خصائص ستسهل الكثير عليك وهي الربط مع جداول قاعدة البيانات الاخري مثل المستخدم الذى قام بإضافة القيمة او اشياء اخري منها ستجد حقول سريعة يتم كتابة forginkey مع تحديد الجدول وخصائصه الاخري مع رؤية مباشرة باسفلها شكل الاستعلام بكل بساطة التى سيتم ادراجه فى ملف migration عن هذا الحقل فى حال كانه ذات علاقة متشعبة مع جدول اخري ايضا ستري بالاسفل زر + باللون الاخضر يمكنك من خلاله تخصيص حقول اخري بقوانين اخري واعدادات بحسب حاجتك لانشاء نموذج تفاعلى كامل ايضا لا تنسي column bootstrap width التى من خلالها تخصيص عرض الحقل بحسب اعدادات bootstrap فى التصميم وهذا لعدم جعل الحقول تشغيل مساحة اكبر من حاجتك انظر الصورة بالاسفل

Relations

من خلال هذا التبويب يمكنك ربط بعض الحقول مع جداول اخري من خلال الحقل (forgin_key like (user_id)) تكتب اسم الحقل وتختار ال Model الذى تريد لاربط معه من خلال relationed To Model ايضا نوع الربط من خلال relation Type

output relation like

            public function user_id
            (){
            return $this->hasOne(\App\Models\User::class,"id","user_id");
            }
            

كيف تنشيء CRUD

كيف تنشيء CRUD

باديء زي بدء يجب ان تعلم انك يجب اتباع التعليمات التى تلي بشكل متتالى حتي تنجح فى انشاء اول CRUD لك فى دقائق معدودة لا تقلق فكل شىء تقريبا جاهز لتدعيم متطلباتك من ادراج الصور والفيديو والصوتيات فى النموذج الذى سنقوم بإنشائه وسنتعرض بصورة بسيطة لإعدادات اول نموذج لك هل انت جاهز حسنا لنبداء
سنقوم بكتابة اسم النوذج التجريبى كما هو بالصورة الموضحة اسفل لقد قمنا بكتابة اسم CRUD title (Project Name) Test CRUD


كتبنا اسم Model Test لاحظ ايضا حددنا مساء Models فى Model Namespace لانه المجلد الافتراضى لتخزين لا ينصح باستخدام مسار اخر الا اذا كنت على دراية بما تفعل فلذا اخترنا App\Models
نأتى لمفات العرض التى تعمل بمحرك Blade المخصصة فى Laravel المجلد الاساسي للوحة التحكم الذى يجب نشر الملفات فيه هو admin انظر يمكن اختيار مسار اخر لكن ينصح باستخدام هذا المسار بشكل اساسي الا اذا انشأت مسار جديد وتريد الكتابه فيه resources/views/admin
بعد ذلك جئنا لإنشاء المتحكم مع اختيار مساره controller Namespace في مجلد App\Http\Controllers\Admin وهذا هو المسار الاساسي الذى يفترض تخزين كل المتحكمات فيه ويمكن ايضا اضافة مجلد جديد اذا كنت تمتلك الخبرة وسيقوم Baboon Maker بدمجه تلقائيا كما سيفعل مع Model,views blade التى ستقوم بإنشائها ايضا لاحظ ايضا اننا حددنا controller name وكتبنا فيه اسم المتحكم باسم Tests انظر الصورة بالاسفل

الان نأتي لإعدادت القائمة CRUD Menu List فى الصورة السابقة ستري على اليمين مربع به هذا الاسم وهنا ستري ايضا انه اخذ نفس الاسم الذى حددناه فى CRUD Title (Project Name) انظر ايضا ستجد فرشاه بجانب هذا الحقل نقوم بالضغط عليها ستظهر لنا قائمة الرموز يمكننا تحديد الرمز الذى نريده بكل سهولة من خلال اكثر من ١٤٠٠ رمز مقدمين بشكل مجانى من fontawesome
حسنا حددنا رمز باسم fa fa-newspaper فقط قم بالضغط على الرمز ليتم دمجه تلقائيا فى baboon maker لاستخدامه داخل لوحة تحكمك
اغلق القائمة ستجد انه بالفعل تم دمج الرمز فى القائمة ليتم استخدامه عند انشاء نموذجنا التجريبي انظر الصورة اسفله

اللغة واعدادات اخري

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


سنري على اليمين حقل باسم (language file translate name) وهو الملف الذى سيتم الكتابه فيه كافة العناوين الخاصة بالحقول الذى سنضيفها لاحقا فبالنسبة لهذه الحزمة يوجد ملف اساسي باسم admin.php وهو الملف الذى سيتم الكتابه عليه بشكل تلقائي فى ثلاث لغات اساسية هي العربية والانجليزية والفرنسية وبعد انتهائك من انشاء مشروعك يجب عليك ترجمة باقى الملفات الاخري مثل الانجليزية او الفرنسية او العكس مع اللغة العربية بحسب اللغة الاساسية التى تكتب بها اسماء الحقول المدخلة فنحن سنكتب على سبيل المثال باللغة العربية بشكل افتراضى
سنري ايضا حقول اخري يمكن الغاء بعضها او بحسب احتياجنا فدعنا نستوضع بالنقاط ماذا يكون فى هذه الحقول الاختيارية
  1. (LaravelCollective) هذا الحقل يعنى انك ستنشيء الكود الخاص بنموذج ادخال البيانات باسلوب هذه الحزمة وهي معروفة لكل المطورين المستخدمين ل Laravel
  2. (Migrate This) يعنى انك تأمر Baboon بان يقوم بزرع الجدول الناتج عن الحقول المدخلة بشكل تلقائي لقاعدة البيانات
  3. (Make Model File) اي انك تخبر Baboon بانه ينشيء ملف Model
  4. (Make Migration Schema File) اي انك تخبر Baboon بانه ينشيء ملف migration لجدول هذا النموذج التجريبى لضم كافة الحقول والجدول الاساسي فيه
  5. (Make Controller File) اي انك تخبر Baboon بان يقوم بإنشاء متحكم هذا النموذج
  6. (Make View Files) اي انك تخبر Baboon بان يقوم بإنشاء ملفات العرض بامتداد Blade التى سيتم إنشائها بحسب اختيار المسار فى admin blade path
  7. (Have Admin Id) اي انك تخبر Baboon ان يقوم بتضمين العلاقات بين المشرف المضيف للقيمة المدخلة فى النموذج الذى ستنشيئه بدلا من ان تقوم بتجهيز حقل تلقائي وتقوم بالاعدادات اللازمة لضبط هذا الامر فهذا الخيار يوفر عليك كل الخطوات التى ستقوم بها
  8. (Enable Soft Delete) اي انك ستخبر Baboon ان يوفر خاصية Soft Delete للقيم المحذوفه من النموذج الخاص بك وهذه الخاصية معروفة لمن هم خبراء فى بنية Laravel وخصوصا Eloquent الخاصة ب Laravel مع ادراج حقل deletet_at بشكل تلقائي داخل Model

حسنا انظر الصورة لمراجعة ما سبق

المدخلات والأعمدة

فى هذا التبويب سنجد اننا امام جزء مهم ودقيق يجب اتباعه بعنايه شديدة وحساسية شديدة ايضا فعليك ان تكون حذر عند انشاء المدخلات الخاصة بك والاعمدة الخاصة بالجدول فيوجد امامك فى البداية بشكل افتراضى حقول خالية افتراضية المدخل الاول باسم Label Name وقائمة منسدلة باسم Input Type والاخير Column name in table & validation وهو اسم العمود داخل جدول النموذج الذى سيتم إنشائه وايضا ستجد اربع قوائم منسدلة تقع تحت عنوان رئيسي باسم column bootstrap width وهذه سنتحدث عنها بالترتيب لاهميتها المتواضعة التى تساهم فى تلقيص الوقت للتعديل على احجام المدخلات والحقول فى صفحة عرض لوحة التحكم


حسنا لنبداء فى شرح كل واحدة بشكل منظم وسريع حتي لا نأخذ الكثير من الوقت
  1. Label Name المدخل الذى سيتم تحديد فيه عنوان الحقل فى التصميم والذى سيتم دمج قيمته فى ملف اللغة الذى حددناه فى التبويب السابق وهو ملف admin.php
  2. Input Type نوع المدخل وهي انواع الحقول المعروفه فى HTML من بين text,email,url,textarea وغيره من الوصوف المستخدمه فى انشاء نموذج ادخال باستخدام HTML مع تضمين خاصيتين مهمين جدا وهي انك يمكن استخدام نوع جديد باسم textarea with CKEditor وهو محرر لتحرير الكلمات والمقاطع النصية لعرضها فى الموقع لتكون منسقة بحسب الشكل الذى يراه المستخدم
  3. Column name in table & validation هو المدخل المسؤول عن اسم العمود فى جدول النموذج الذى سيتم زرعه فى قاعدة بياناتك
  4. column bootstrap width هذه القوائم المنسدلة من خلالها يمكنك التحكم فى عرض div الخاص بكل قيمة على الانواع التالية col-md,col-lg,col-xs,col-sm من بين اختيار من ١ - ١٢ حجم وهو معروف فى bootstrap

فى الصورة بالاسفل ستجد اننا ادخلنا مسميات افتراضية واحدة بالعربية والثانى بالانجليزية وينصح كتابة اسماء الاعمدة بحروف صغيرة (small letter) حتي تتجنب اي عوائق فى المستقبل
انظر ايضا بالاسفل Basic Rules تحديد القوانين للحقل ستجد اننا قمن بتحديد validation رئيسية وهي حقل اجباري required ونوع القيمة التى سيتحقق منها وهي string وهذا ما سيتم دمجه فى قائمة قوانين الحقل
هناك ايضا انواع وانماط جديدة من التحقق فى الاسفل مثل pdf,docx
ايضا تحققات اخري مثل mp3,mp4,mpeg,mov,3gp,webm,mkv,avi,vob وهي خاصة للتحقق من ملفات الرفع الصوتيات والمرئيات
ايضا ستجد انه لدينا تحقق باسم video وهو يتحقق تلقائيا من انواع ملفات الفيديو للامتدادات التالية mp4,mpeg,mov,3gp,webm,mkv,avi,vob
لا تقلق كل هذا تم تجهيزه تلقائيا فى baboon وتم دمج كل هذه الانواع mimetypes تلقائيا فى ملف ستجده على المسار التالى app/Providers/ExtraValidations.php
يمكنك اضافة المزيد عليه لكن هذه هي الافتراضيات التى تم وضعها فى الوقت الحالى وسيتم اضافة المزيد فى الاصدارات القادمة مع شرح لكل هذه الخصائص من و التحققات
ايضا ستجد بالاسفل advanced roules يمكنك اضافة المزيد من خصائص التحقق الموجودة بشكل افتراضى فى اطار العمل laravel
ايضا ستجد خاصية دمج العلاقات مع الجداول الاخري Schema Relation لتمكنك من اضافة forginkey مع تحديد خصائصه مع الجدول الاخر ولكن هذا لا يعمل الا مع العلاقات التعدديه المشتركة مع جداول اخري لكن هذا حقل عادي لن نحتاج الى هذه الخاصية فى الوقت الحالى انظر الصورة بالاسفل

فى الصورة التالية ستجد هناك اننا اضفنا حقل متعدد القيم او قائمة منسدلة لاحظ الصورة بالاسفل ووضعنا القيم الاتية status|show,عرض/hide,اخفاء لماذا وضعناها بهذا الشكل ؟
حسنا ليس هذا هو الشكل الوحيد الذى تم وضعه بالاساس فهناك اشكال اخري متعددة سهله الكتابة كعلامة تفيد بقيم باشكال متعددة اما هذا الشكل فهو للقيم التى من النوع الذي سيحملها جدول النموذج فى قاعدة البيانات بصيغة او نوع Enum وهذه ايضا كفكرة توفر عليك الكثير فى قضاء الوقت لكتابة هذه القائمة المنسدلة فلا تقلق ف baboon سيقوم بهذا بدلا عنك بصورة سهله فقط اعطه التعليمات وهو سينفذ ذلك فى ثوان ستجد ان تجربتك ل baboon هي تجربة ممتعة حقا فى الفترات القادمة سنقوم بتحديث هذه الوثائق لتتضمن معلمات اكثر عن baboon لكن نحاول ان نسرد تفاصيل بسيطة تمكنك من فهمة اّلية عمل baboon maker فى ابسط صورة
حسنا سيتبقى تبويب واحد وهو تبويب العلاقات سنتركه لك لتفهمه بصورة سهله وسنقوم بجمع الاراء حول هذا التبويب لنحاول ان نجعل تجربة المستخدم سهلة ومرحة جدا وهدف هذه الحزمة هي توفير الوقت والجهد على الناس حسنا قم بالضغط على Generate CRUD سيبداء baboon بتنفيذ اوامرك