كيفاش تصاوب موقع ecommerce ب codeigniter الجزء الثاني


فهاد الجزء الثاني من كيفاش تصاوب موقع ecommerce ب codeigniter غادي نقادو الملفات لي عبارة عن controllers ولي غادي يمكنونا من الإضافة التعديل فقاعدة البيانات عبر ل models ليغادي نزيدوهوم حتى هما .

نظرة سريعة بالفيديو

1- الملف Products.php

ف Application/Controllers غادي تزيد ملف جديد سميه Products.php لي غادي يكون فيه ل fonction index لي كسترجع المنتوجات لي عندنا فقاعدة البيانات بواسطة fonction get_products لي كاينة فل model Product_model لي غادي نزيدوه من بعد ثم كاين ل fonction details لي كترجع المعلومات ديال منتوج اختارو المستخدم ولي كاتاخد ل id ديال المنتوج وكترسلو لfonction get_product_details لي غادي تكون حتى هي فل model Product_model ثم كاين fonction category لي كترجعنا المنتوجات حسب الفئة ولي كاتاخد ل id ديال الفئة وكترسلو لfonction get_product_by_category لي غادي تكون حتى هي فل model Product_model وكل المعلومات لي كيرجعونا كنخزنوهم ونسيفطوهم للviews لي غادي نزيدو منبعد الكود ديال الملف هو :

                                <?php
/**
 *
 */
class Products extends CI_Controller
{
    public function index(){
        $data['products'] = $this->Product_model->get_products();
        $data['main_content'] = 'products_view';
        $this->load->view('layouts/main',$data);
    }
    public function details($id){
       $data['product'] = $this->Product_model->get_product_details($id);
       $data['main_content'] = 'details_product_view';
       $this->load->view('layouts/main',$data);
    }
    public function category($id){
       $data['products'] = $this->Product_model->get_product_by_category($id);
       $data['main_content'] = 'category_view';
       $this->load->view('layouts/main',$data);
    }
}


 ?>
                            

2- الملف Product_model.php

ف Application/modelsغادي تزيد ملف جديد سميه Product_model.php لي غادي يكون فيه ل fonction get_products لي كتسترجع كل المنتوجات لي عندنا فقاعدة البيانات ثم كاين fonction get_product_details لي كترجع المعلومات الخاصة بمنتوج بالإعتماد على ل id ديالو ثم ل fonction get_categories لي كترجع كل الفئات لي عندنا فقاعدة البيانات ثم ل fonction get_product_by_category لي كترجع المنتوجات حسب الفئة ثم fonction get_popular لي كترجع المنتوجات لي تباعت بزاف الكود ديال الملف هو :

                                <?php

/**
 *
 */
class Product_model extends CI_model
{
  public function get_products(){
      $this->db->select('*');
      $this->db->from('products');
      $query = $this->db->get();
      return $query->result();
  }
  public function get_product_details($id){
      $this->db->where(array('id'=>$id));
      $query = $this->db->get('products');
      return $query->row();
  }
  public function get_categories(){
      $this->db->select('*');
      $this->db->from('categories');
      $query = $this->db->get();
      return $query->result();
  }
  public function get_product_by_category($id){
      $this->db->where(array('categorie_id'=>$id));
      $query = $this->db->get('products');
      return $query->result();
  }
  public function get_popular(){
      $this->db->select('*');
      $this->db->from('products');
      $this->db->order_by('sold','desc');
      $query = $this->db->get();
      return $query->result();
  }
}

 ?>
                            

3- الملف Users.php

ف application/controllers كنزيد controller جديد سميه Users.php لي فيه fonction register لي كتمكن المستخدم من التسجيل فقاعدة البيانات فمنبعد مكتحقق بلي كل الحقول مملوءة وكل الحقول فيها على الأقل 3 دالحروف كتصيفط المعلومات للfonction register لي غادي تكون فل model Users_model لي غادي نزيدوه من بعد ثم كاين fonction login لي كتمكن المستخدم باش ستكونيكطا من بعد مكتحقق بلي حقل الإمايل وكلمة المرور عامرين وكتسيفط المعلومات ل fonction login لي غادي تكون فل model Users_model لي غادي نزيدوه من بعد يلا كان فعلا المستخدم مسجل كتcréer session فيها ل id ول email ديالو وهي لي خدامين بها فالملف header.php يلا كان المستخدم كونيكطي كنعرض déconnexion فالقائمة مكانش كنعرض ل form ديال connexion أو ل inscription ثم كاين fonction logout لي كتمكن المستخدم باش يديكونيكطا الكود ديال الملف هو :

                                <?php

/**
 *
 */
class Users extends CI_Controller
{
    public function register(){
      $this->form_validation->set_rules('firstname','Nom','required|min_length[3]|trim');
      $this->form_validation->set_rules('lastname','Prénom','required|min_length[3]|trim');
      $this->form_validation->set_rules('username','Pseudo','required|min_length[3]|trim');
      $this->form_validation->set_rules('email','Email','required|trim|valid_email');
      $this->form_validation->set_rules('password','Mot de passe','required|min_length[3]|trim');
      if($this->form_validation->run() == false){
        $data['main_content'] = 'register_view';
        $this->load->view('layouts/main',$data);
      }else{
          if($this->Users_model->register()){
              $this->session->set_flashdata('registred','Compte crée avec succés');
              redirect('products');
          }
      }

    }
    public function login(){
         $this->form_validation->set_rules('email','Email','required|trim|valid_email');
         $this->form_validation->set_rules('password','Mot de passe','required|min_length[5]|trim');
         $email = $this->input->post('email');
         $passe = md5($this->input->post('password'));
         $user = $this->Users_model->login($email,$passe);
         if($user != null){
            $user_data = array(
                'id'=>$user->id,
                'email'=>$user->email,
                'logged'=>true
            );
            $this->session->set_userdata($user_data);
            $this->session->set_flashdata('logged','Vous êtes connectés');
            redirect('products');
         }else{
            $this->session->set_flashdata('fail','Email ou mot de passe est incorrect'); 
            redirect('products');
         }
    }
    public function logout(){
        $this->session->unset_userdata('id');
        $this->session->unset_userdata('email');
        $this->session->unset_userdata('logged');
        redirect('cart/cancel_cart');
     }
}



?>

                            

4- الملف Users_model.php

ف Application/modelsغادي تزيد ملف جديد سميه Users_model.php لي غادي يكون فيه ل fonction register لي كتزيد المعلومات الخاصة بالمستخدم فقاعدة البيانات ديالنا ثم كاين fonction login لي كتحقق واش المستخدم مسجل فقاعدة البيانات يلا كان فعلا مسجل كترجع صحيح مكانش كترجع خطأ الكود ديال الملف هو :

                                    <?php

/**
 *
 */
class Users_model extends CI_Model
{
  public function register(){

      $data = array(
          'nom' => $this->input->post('firstname'),
          'prenom' => $this->input->post('lastname'),
          'email' => $this->input->post('email'),
          'pseudo' => $this->input->post('username'),
          'password' => md5($this->input->post('password')),
          'date_insc' => date('Y-m-d h:i:s')
      );
      $insert = $this->db->insert('users',$data);
      return $insert;
  }
  public function login($email,$passe){
        $this->db->where('email',$email);
        $this->db->where('password',$passe);
        $result = $this->db->get('users');
        if($result->num_rows() == 1){
            return $result->row();
        }else{
            return false;
        }
  }
}


 ?>

                                

5- الملف Cart.php

ف application/controllers كنزيد controller جديد سميه Cart.php لي فيه fonction index لي كتدي المستخدم للصفحة الخاصة بل panier ولي غادي نزيدوها منبعد ثم كاين fonction add لي كتزيد منتوج فلpanier ملي كيظغط المستخدم على ajouter au panier كيترسلها لid ولqté والإسم و الثمن ديال المنتوج ومنبعد كيتزادو فل panier بإستعمال ل class cart لي هي خاصة بcodeigniter يمكنلك تقلب عليها فغوغل باش تزيد تاخد عليها معلومات ثم كاين fonction update ولي هي لي كتمكن المستخدم من تعديل ل panier ديالو ثم كاينfonction cancel_cart لي كتخوي ل panier الكود ديال الملف هو :

                                    <?php
/**
 *
 */
class Cart extends CI_Controller
{
    public function index(){
        $data['main_content'] = 'cart_view';
        $this->load->view('layouts/main',$data);
    }
    public function add(){
        $data = array(
            'id'      => $this->input->post("item_number"),
            'qty'     => $this->input->post("qty"),
            'price'   => $this->input->post("price"),
            'name'    => $this->input->post("title"),
        );
        $this->cart->insert($data);
        $this->db->query("UPDATE products SET sold = sold + 1 WHERE id=".$this->input->post("item_number"));
        //print_r($data);
        redirect("products");
    }
    public function update($cart = null){
        $data = $_POST;
        $this->cart->update($data);
        //print_r($data);
        redirect("products");
    }
    public function cancel_cart(){
        $this->cart->destroy();
        redirect("products");
    }
}
?>
                                


إشترك في قناتنا على اليوتيوب

بحث في الموقع


إشترك للتوصل بالجديد