النتائج 1 إلى 12 من 12

الموضوع: cakephp :( استفسارات عالقة !

  1. #1
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897

    cakephp :( استفسارات عالقة !



    السلام عليكم و رحمة الله و بركاته
    تحية طيبة ان شاء الله .
    انتقلت من تعلم Codeigniter بعد تغيب اخوي المصمم عن طرح الدروس علما باني اطلعت على الويكي و السكرين كاست و المنتدى و الدليل باكمله لكن لم اجد شيئا محفزاً حتى الدعم ضعيف .
    انتقلت للكيك اذن ، ما شغفني هو الانتشار الواسع ، الدعم العارم و مكتبة ضخمة من الشروحات و الهلبرز و المكتبات الجاهزة الاستخدام.
    لدي بعض الاستفسارات و امل من الله ان اجد لها اجوبة لاني مقبل على مشروع يعتمد كليا هذا الاطار .
    كيف يعمل نظام الـ form في الكيك علما اني اطلعت على الموضوع في الويكي لكن لا اظنه يسد رمق حاجتي ، فانا اود ان انسق الفورم بملف CSS و هكذا ، و هل يمكنني اضافتها يدويا في ملفات الـ Views ؟
    الاستفسار الثاني ، ماهي افضل مكتبة اجاكس يمكنني الاعتماد عليها في الكيك؟
    لعمل موقع مثلا للبطاقات كم يستغرق ذلك من الوقت لعمله بالكيك حسب تجربة شخصية؟! معدل العمل يويا ازيد من 8 ساعات !
    بارك الله فيكم







  2. #2
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    للعجلة ياخوان بارك الله فيكم






  3. #3
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    61


    السلام عليكم

    اخي مالذي تريده بالضبط من طريقة عمل الفورم ؟
    هل انشأت الفورم وتريد طريقة ارسال البيانات وتخزينها في قاعدة البيانات
    ام تريد من بداية انشاء الفورم ..؟






  4. #4
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    طريقة الادخال تكون اتوماتكياً عن طريق الكيك ! اود فقط طريقة عمل الفورم باستعمال المكتبات المسخرة لذلك بالاضافة الى طريقة تنسيق هذا الفورم الذي تم توليده عن طريق الكيك ...
    يعطيك العافية






  5. #5


    لا استطيع ان افيدك بذلك الاطار ولكن انصحك باطار Zend

    اما عن مكتبة الاجاكس فالافضل في نظري هي Jquery

    jQuery UI - Home






  6. #6
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


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






  7. #7
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    61


    لنفرض ان لدينا Users نريد ادخال بيانات تسجيل الدخول الى موقع :

    اولا ملف Users_Controller ::::
    كود:
    class UsersController extends Appcontroller{
      var $name='Users';
      var $helpers = array('Form','Javascript','Html');   
      
    function login() {
       $this->pageTitle = 'تسجيل الدخول';
       $this->layout = 'login'; 
       
       if (!empty($this->data)) {  
      }
    }	
      }
    في الكود السابق قمنا بتعريف الدالة login ... المتغير الاول قمنا بتعريف عنوان الصفحة , المتغير الثاني قمنا بتحديد ملف الـ Layout ... واخيرا الشرط لتحديد هل هنالك بينات ارسلت من الفورم ام لا ويمكننا من هنا التعامل مع قاعدة البيانات من خلال البحث عن هذه المستخدم مخزن لدينا ام لا ..

    لانشاء حقول الفورم ننشئ ملف Viewداخل مجلد نسميه users داخل مجلد View ... سيتم تسمية الملف بنفس اسم الدالة login.ctp ...
    كود:
    echo $javascript->link('jquery',false); 
     echo $javascript->link('login_form',false);
    echo $form->create('User', array('action' => 'login','class' => 'myform')); 
     
      echo $form->label('اسم المستخدم');
      echo $form->text('username',array('class' => 'inputWithImge')); 
      
      echo $form->label('كلمة المرور');
      echo $form->password('password',array('class' => 'inputWithImge'));
    
      echo $form->submit('دخــــول', array('class' => 'but'));
    ?>
    قمنا في الكود السابق بتحديد الحقول التي نريدها , وعند انشاء الفورم سنحدد له اذا ضغطنا على الزر submit ان ينتقل الى الى الدالة login ن خلال action=login ..
    بالإضافة الى ذلك اذا اردنا استخدام مكتبات الجافا مثل الـ JQuery سنستخدم $link للإشارة الى اسم ملف الجافا .

    بالنسبة لتنسيق ال View سننشئ ملف style.css نضع الملف في مجلد CSS الموجود داخل المجلد webroot .
    اما ملفات الجافا فتوضع داخل المجلد JS داخل المجلد webroot ايضا .

    لو لاحظت انك عندما تقوم بعرض موقع باستخدام الكيك فإن التنسيق العام للصفحة يكون موحدا (( اللون الاخضر للهيدر والفوتر )) ولتغيير هذا الاستايل ننشئ ملف layout باسم default.ctp ونضعه في مجلد ال layout .. لكن ماذا نضع في هذا الملف .... توجه الى مجلد cake ثم lib ثم view ثم layout ستجد ملف default.ctp لاحظ كيف قام باستدعاء ملفات CSS وكيفية كتابة ال head .... فقم بنسخ الملف الى الملف default.ctp الجديد مع تغيير الاستايل لما تريد , لكن كما لاحظت سابقا من ملف ال controller قمنا بتسمية ملف ال layout باسم login .ctp

    ايضا يجدر بك الانتباه في ملف ال layout الى echo $scripts_for_layout; لتشغيل ملفات الجافا و echo $content_for_layout; لاستدعاء البيانات .

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






  8. #8
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    بارك الله فيك و يعطيك الف عافية حتى استزيد الثقة .
    دعنا نفترض ان لدينا نموذج مكون من خانتين اسم المستخدم و كلمة المرور
    و جدول admins به التالي : id و adminame و adminpass .
    اذا وجد ان الادمن موجود يقوم بكتابة تم تسجيل دخولك جاري نقلك لصفحة الرئيسية index و اذا لا يعيد النموذج مع طباعة الخطا .
    طبعاً حتى اضرب عصفورين بحجر واحد استعمل الاجاكس في العملية .
    و اعتذر لك على اتعابك بارك الله فيك و عسى الله يقدرني على در معروفك .
    >> لو لديك ايميلك ارسله لي عبر النموذج <<






  9. #9
    عضو نشيط
    تاريخ التسجيل
    Jan 2008
    المشاركات
    61


    الكود منقول من موقع ... لكن اضفت ملف layout باسم default وملفين CSS للتنسيق , لكن التنسيق مش جميل بلكن للتوضيح فقط ...
    لم استطع ارفاق المجلد لان حجمه كبير .. وهذه هي الاكواد

    Users_Controller.php

    كود:
    <?php
    class UsersController extends AppController {
    
          var $name = 'Users';
          var $helpers = array('Html','Form','Javascript');
          function add() {
    	      $this->pageTitle = 'Home';    
       $this->layout = 'default';  
              if(!empty($this->data)) {
                  $this->User->save($this->data);
              }
          }
    
          function ajax_validate() {
    	      $this->pageTitle = 'Home';    
              $this->layout = 'default';  
              Configure::write('debug', 0);
    
              if($this->RequestHandler->isAjax()) {
    
                  $this->data['User'][$this->params['form']['field']] = $this->params['form']['value'];
    
                  $this->User->set($this->data);
    
                  if($this->User->validates()) {
                      $this->autoRender = false;
                  }
                  else {
                     $errorArray = $this->validateErrors($this->User);
    
                     $this->set('error', $errorArray[$this->params['form']['field']]);
                  }
              }
          }
        }
    
    ?>
    ملف User.php الـ Model

    [code]
    <?php
    class User extends AppModel {

    var $name = 'User';

    var $validate = array('username'=>
    array('rule'=>'isUnique',
    'message'=>'Sorry, this username already exists'));

    }
    ?>

    في مجلد الـ View انشيء مجلد باسم users
    وضع بداخله الملفين التاليين :

    1- ad.ctp

    كود:
    <?php
        //let's load up the jQuery core
        echo $javascript->link('jquery', false);
    
        //and now... some file that will be specific to this view (page)
        echo $javascript->link('users_add', false);
    ?>
    
    <?php echo $form->create(); ?>
    <?php echo $form->input('username', array('id'=>'username')); ?>
    <?php echo $form->end('Add User'); ?>
    2-
    ajax_validate.ctp :

    كود:
    <?php
        echo $error;
    ?>
    *** في مجلد CSS في webroot ضع الملف التالي :
    Style.css

    كود:
    body{
     background-color:#8B7D6B;
    }
    form{
     background-color:#E0EEEE;
     margin-left:10px;
     width:150px;
    }
    #username{
     border:1px solid red;
    }
    وضع ايضا في نفس المجلد ملف reset.css ابحث عنه من خلال قوقل

    **** في مجلد Js في webroot ضع الملف التالي :
    users_add.js

    كود:
    $(document).ready( function() {
    
        $('#username').blur( function () {
    
            fieldName = $(this).attr('id');
            fieldValue = $(this).val();
    
            $.post('/users/ajax_validate', {
                                            field: fieldName,
                                            value: fieldValue
                                            },
                   function(error) {
    
                       if(error.length != 0) {                
    
                           $('#username').after('<div class="error-message" id="'+ fieldName +'-exists">' + error + '</div>');
                       }
                       else {
                           $('#' + fieldName + '-exists').remove();
                       }
                   });
         });   
    
    });
    بالاضافة الى وضع ملف مكتبة الـ jquery.js .

    *** انشئ قاعدة البيانات الجدول باسم users وبه حقلين id و username .

    *** الكود يقوم بتخزين اسماء في الجدول واذا وجد اسم مشابه يخرج رسالة تنبيه

    بالتوفيق






  10. #10
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


    بارك الله فيك ، اتضحت الفكرة .
    لكن ما الفرق بين Layout و View






  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    Feb 2004
    المشاركات
    659


    السلام عليكم

    اخي العزيز وضاء.

    اولاً اعتذر انني كنت من الأسباب التي جعلتك تترك CI ولكن دعني اقدم لك نصيحة خارج الموضوع
    تعلم إطار العمل اولاً, ثم بعد ذلك قم بتنفيذ الأعمال بإستخدامه ( اقصد الاعمال التجارية وليست الشخصية )

    ايضاً نصيحة اخرى, اختر ما يناسبك من إطارات العمل وليس فقط لأن فلان يستخدمه
    لنفترض انني استخدم Firefox مثلاً .. انا لدي اسبابي . ولكن ما هي الاسباب التي تجعلك انت تستخدم Firefox ؟ هل لأنني انا فقط كنت استخدمه ؟
    اذاً ليس لأنه هناك مستخدمين كثيرين لإطار العمل CakePHP فأصبح عليك انت ايضا ان تستخدمه ( بغض النظر عن ما اذا كان هذا مناسباً لك ام لاً )

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

    ارق التحية





    __________________
    مدونتي | تويتر


  12. #12
    عضو فعال
    تاريخ التسجيل
    Dec 2008
    المشاركات
    1,897


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










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

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