شوّيت: شبكة كرة قدم اجتماعية




العودة   سوالف سوفت > سوالف برمجة المواقع وتطويرها > PHP
التسجيل المدوّنات البحث مشاركات اليوم جعل الأقسام مقروءة

الرد على الموضوع
 
LinkBack أدوات الموضوع
ليسامحني كل من اخطأت بحقه
#1  
cakephp :( استفسارات عالقة !

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






وضاء is offline   قديم 19-05-2009, 08:01 AM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#2  

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






وضاء is offline   قديم 19-05-2009, 08:43 PM
الرد مع إقتباس
عضو نشيط
#3  

السلام عليكم

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






soma is offline   قديم 20-05-2009, 01:22 PM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#4  

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






وضاء is offline   قديم 20-05-2009, 08:26 PM
الرد مع إقتباس
عضو نشيط جدا
#5  

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

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

jQuery UI - Home






Mr.Ahmed EssAm is offline   قديم 21-05-2009, 01:34 AM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#6  

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






وضاء is offline   قديم 21-05-2009, 02:15 AM
الرد مع إقتباس
عضو نشيط
#7  

لنفرض ان لدينا 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 كامل لتشغيله .






soma is offline   قديم 21-05-2009, 01:02 PM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#8  

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






وضاء is offline   قديم 21-05-2009, 07:59 PM
الرد مع إقتباس
عضو نشيط
#9  

الكود منقول من موقع ... لكن اضفت ملف 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 .

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

بالتوفيق






soma is offline   قديم 22-05-2009, 05:00 PM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#10  

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






وضاء is offline   قديم 22-05-2009, 08:43 PM
الرد مع إقتباس
عضو سوبر نشيط
#11  

السلام عليكم

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

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

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

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

ارق التحية






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

almosmm is offline   قديم 23-05-2009, 12:23 AM
الرد مع إقتباس
ليسامحني كل من اخطأت بحقه
#12  

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






وضاء is offline   قديم 23-05-2009, 07:14 AM
الرد مع إقتباس
الرد على الموضوع


 

أدوات الموضوع

قوانين المشاركات
لا يمكنك كتابة مواضيع جديدة
لا يمكنك إضافة ردود
لا يمكنك إرسال مرفقات
لا يمكنك تعديل مشاركاتك

كود vB متاح
كود [IMG] متاح
كود HTML غير متاح
Trackbacks are متاح
Pingbacks are متاح
Refbacks are متاح


المواضيع المشابهه
الموضوع كاتب الموضوع القسم الردود آخر مشاركة
بالصورة شرح حذف الملفات الغير قابلة للحذف بسبب انها لاتزال عالقة بذاكرة المهام SHARKAWI برامج الحاسب 0 24-03-2009 12:16 AM
Symfony و CakePHP و Codeigniter هل يمكن ان اعرف الفرق بينهم edafa.info PHP 1 02-02-2009 12:20 PM
استفسار في CakePHP soma PHP 2 23-12-2008 09:50 PM
مذربورد اللابتوب احترقت وملفاتي عالقة alsnafi.com الأخبار المتعلقة بالإنترنت والتقنية 0 19-08-2005 04:28 PM


جميع الأوقات بتوقيت غرينتش +3. الوقت الآن هو 04:50 PM.