مشروع موقع gestion des evénements ب codeigniter الجزء الثاني


فهاد الجزء الثاني من مشروع موقع gestion des evénements ب codeigniter غادي نزيدو الملفات لي كيمكنو من إضافة فئة لقاعدة البيانات ومن إضافة حدث لقاعدة البيانات وأيضا ملف جانبي كيعرض روابط كتدي للصفحات لي كيمكنو المستخدم من إدخال المعلومات الخاصة بالأحداث والفئات.

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

1- الملف sidebar.php

دائم ف includes كتزيد ملف جديد سميه sidebar.php فيه غادي تكون واحد القائمة جانبية كتضمن روابط الأول كيدي للfonction add لي فل controller Users لي غادي نزيدو من بعد ولي غادي تمكن من عرض لform لي كيمكن من إضافة مستخدم لقاعدة البيانات وكاين الرابط لي كيدي لfonction add لي فل controller Events لي غادي نزيدو من بعد ولي غادي تمكن من عرض لform لي كيمكن من إضافة حدث لقاعدة البيانات وكاين الرابط لي كيدي لfonction add لي فل controller Categories لي غادي نزيدو من بعد ولي غادي تمكن من عرض لform لي كيمكن من إضافة فئة لقاعدة البيانات الكود ديال الملف هو :

                                <ul class="list-group">
	<li class="list-group-item"><?php echo anchor('Users/add','Nouveau utilisateur');?></li>
    <li class="list-group-item"><?php echo anchor('Events/add','Nouveau evenement');?></li>
    <li class="list-group-item"><?php echo anchor('Categories/add','Nouvelle catégorie');?></li>
</ul>
                            

2- الملف Categories.php

ف Application/Controllers غادي تزيد ملف جديد سميه Categories.php لي غادي يكون فيه ل fonction index لي كتسترجع الفئات لي عندنا فقاعدة البيانات بواسطة fonction get_categories لي كاينة فل model Category لي غادي نزيدوه من بعد ثم كترسلهم للملف categories/index.php لي غادي يمكن من عرض الفئات ولي غادي نزيدوه من بعد ثم كاين ل fonction add لي من بعد مكتحقق بلي الحقل إسم ما خاويش منبعد كتزيد المعلومات لي ترسلو من form فالجدول فئات بواسطة fonction add_category لي غادي تكون حتى هي فل model Category ثم كاين fonction edit لي كتمكن من تعديل فئة بالإعتماد على لid ديالها ولي من بعد مكتحقق بلي الحقل إسم ما خاويش منبعد كتزيد المعلومات لي ترسلو من form فالجدول فئات بواسطة fonction update لي غادي تكون حتى هي فل model Category ثم كاين fonction delete لي كتمكن من حدف فئة بالإعتماد على لid ديالها بواسطة fonction delete لي غادي تكون حتى هي فل model Category الكود ديال الملف هو :

                                <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Categories extends Admin_AuthController{
	public function index()
	{
	   $data['categories'] = $this->Category->get_categories();
	   $this->load->view('categories/index',$data);
	}
	public function add()
	{
	    $this->form_validation->set_rules('titre','Titre','required|trim');
		if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
			);
			$this->session->set_flashdata($data);
			$this->load->view('categories/add',$data);
		}else{
			$data = array(
				'titre'=> $this->input->post('titre')
			);
			if($this->Category->add_category($data)){
				$this->session->set_flashdata('success','Catégorie ajoutée!');
				redirect('categories/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('categories/add');
			}
		}
	}
	public function edit($id)
	{
	   $this->form_validation->set_rules('titre','Titre','required|trim');
	   if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
		    );
		    $data['categorie'] = $this->Category->get_categorie_by_id($id);
		    $this->load->view('categories/edit',$data);
		}else{
			$data = array(
				'titre'=> $this->input->post('titre')
			);
			if($this->Category->update($id,$data)){
				$this->session->set_flashdata('success','Catégorie modifiée!');
				redirect('categories/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('categories/edit');
			}
		}
	}
	public function delete($id)
	{
		if($this->Category->delete($id)){
				$this->session->set_flashdata('success','Catégorie supprimée!');
				redirect('categories/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('categories/index');
		}
	}
}
                            

3- الملف Category.php

ف Application/models غادي تزيد ملف جديد سميه Category.php لي غادي يكون فيه ل fonction add_category لي كتزيد فئة فقاعدة البيانات من بعد مكترسلها من fonction add لي ف Controller Catgories.php ثم كاين fonction get_categories لي كتسترجع كل الفئات لي عندنا فقاعدة البيانات ثم كاين fonction get_categorie_by_id لي كترجع فئة اختارها المستخدم بالإعتماد على ل id ديالها ثم ل fonction update لي كتعدل فئة بالإعتماد على ل id ديالها ثم كاين fonction delete لي كتحدف فئة بالإعتماد على ل id ديالها الكود ديال الملف هو :

                                <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Category extends CI_Model {
	public function add_category($data){
		if($this->db->insert('categories',$data)){
			return true;
		}else{
			return false;
		}
	}
	public function get_categories(){
		$query = $this->db->get('categories');
		return $query->result();
	}
	public function get_categorie_by_id($id){
		$this->db->select('*')->from('categories');
		$this->db->where('id',$id);
		$query = $this->db->get();
		return $query->row();
	}
	public function update($id,$data){
		$this->db->where('id',$id);
		if($this->db->update('categories',$data)){
			return true;
		}else{
			return false;
		}
	}
	public function delete($id){
		$this->db->where('id',$id);
		if($this->db->delete('categories')){
			return true;
		}else{
			return false;
		}
	}
}
                            

4- الملف Events.php

ف Application/Controllers غادي تزيد ملف جديد سميه Events.php لي غادي يكون فيه ل fonction index لي كتسترجع الأحداث لي عندنا فقاعدة البيانات بواسطة fonction get_events لي كاينة فل model Event لي غادي نزيدوه من بعد ثم كترسلهم للملف events/index.php لي غادي يمكن من عرض الأحداث ولي غادي نزيدوه من بعد ثم كاين ل fonction add لي من بعد مكتحقق بلي الحقول ما خاوياش منبعد كتزيد المعلومات لي ترسلو من form فالجدول أحداث بواسطة fonction add_event لي غادي تكون حتى هي فل model Event ثم كاين fonction edit لي كتمكن من تعديل حدث بالإعتماد على لid ديالو ولي من بعد مكتحقق بلي الحقول ما خاوياش منبعد كتزيد المعلومات لي ترسلو من form فالجدول أحداث بواسطة fonction update لي غادي تكون حتى هي فل model Event ثم كاين fonction delete لي كتمكن من حدف حدث بالإعتماد على لid ديالو بواسطة fonction delete لي غادي تكون حتى هي فل model Event الكود ديال الملف هو :

                                    <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Events extends Admin_AuthController{
	public function index()
	{	
	   $data['events'] = $this->Event->get_events();
	   $this->load->view('events/index',$data);
	}
	public function add()
	{
		$this->form_validation->set_rules('cat','Catégorie','required|trim');
		$this->form_validation->set_rules('titre','Titre','required|trim');
		$this->form_validation->set_rules('desc','Déscription','required|trim');
		$this->form_validation->set_rules('is_published','Publier','required');
		$this->form_validation->set_rules('date_debut','Date debut','required|trim');
		$this->form_validation->set_rules('date_fin','Date fin','required|trim');
		if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
			);
			   $this->session->set_flashdata($data);
			   $categories = $this->Category->get_categories();
			foreach($categories as $categorie){
			   $categories_options[$categorie->id] = $categorie->titre;
			}
		       $data['categories_options'] = $categories_options;
			   $this->load->view('events/add',$data);
			}else{
			$data = array(
				'user_id'=> 1,
				'cat_id'=> $this->input->post('cat'),
				'titre'=> $this->input->post('titre'),
				'description'=> $this->input->post('desc'),
				'date_debut'=> $this->input->post('date_debut'),
				'date_fin'=> $this->input->post('date_fin'),
				'in_menu'=> $this->input->post('is_published')
			);
			if($this->Event->add_event($data)){
				$this->session->set_flashdata('success','Evenement ajouté!');
				redirect('events/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('events/add');
			}
		}
	}
	public function edit($id)
	{
		$this->form_validation->set_rules('cat','Catégorie','required|trim');
		$this->form_validation->set_rules('titre','Titre','required|trim');
		$this->form_validation->set_rules('desc','Déscription','required|trim');
		$this->form_validation->set_rules('is_published','Publier','required');
		$this->form_validation->set_rules('is_done','Passé','required');
		$this->form_validation->set_rules('date_debut','Date debut','required|trim');
		$this->form_validation->set_rules('date_fin','Date fin','required|trim');
		if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
			);
			   $this->session->set_flashdata($data);
			   $categories = $this->Category->get_categories();
			   $data['event'] = $this->Event->get_event_by_id($id);
			foreach($categories as $categorie){
			   $categories_options[$categorie->id] = $categorie->titre;
			}
		       $data['categories_options'] = $categories_options;
			   $this->load->view('events/edit',$data);
		}else{
			$data = array(
				'user_id'=> 1,
				'cat_id'=> $this->input->post('cat'),
				'titre'=> $this->input->post('titre'),
				'description'=> $this->input->post('desc'),
				'date_debut'=> $this->input->post('date_debut'),
				'date_fin'=> $this->input->post('date_fin'),
				'in_menu'=> $this->input->post('is_published'),
				'is_done'=> $this->input->post('is_done')
			);
			if($this->Event->update($data,$id)){
				$this->session->set_flashdata('success','Evenement modifié!');
				redirect('events/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('events/edit');
			}
		}
	}
	public function delete($id)
	{
	    if($this->Event->delete($id)){
				$this->session->set_flashdata('success','Evenement supprimé!');
				redirect('events/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('events/index');
		}
	}
}
                                

5- الملف Event.php

ف Application/models غادي تزيد ملف جديد سميه Event.php لي غادي يكون فيه ل fonction add_event لي كتزيد حدث فقاعدة البيانات من بعد مكترسلها من fonction add لي ف Controller Events.php ثم كاين fonction get_events لي كتسترجع كل الأحداث لي عندنا فقاعدة البيانات ثم كاين fonction get_event_by_id لي كترجع حدث اختارو المستخدم بالإعتماد على ل id ديالو ثم ل fonction update لي كتعدل حدث بالإعتماد على ل id ديالو ثم كاين fonction delete لي كتحدف حدث بالإعتماد على ل id ديالو ثم كاين fonction get_events_active لي كترجع الأحداث فقط لي بغيناها تنشر فالموقع ولي مازال مادازش وقتها الكود ديال الملف هو :

                                    <?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Event extends CI_Model {
	public function add_event($data){
		if($this->db->insert('evenements',$data)){
			return true;
		}else{
			return false;
		}
	}
	public function get_events(){
		$query = $this->db->get('evenements');
		return $query->result();
	}
	public function get_event_by_id($id){
		$this->db->select('*')->from('evenements');
		$this->db->where('id',$id);
		$query = $this->db->get();
		return $query->row();
	}
	public function update($data,$id){
		$this->db->where('id',$id);
		if($this->db->update('evenements',$data)){
			return true;
		}else{
			return false;
		}
	}
	public function delete($id){
		$this->db->where('id',$id);
		if($this->db->delete('evenements')){
			return true;
		}else{
			return false;
		}
	}
	public function get_events_active(){
		$this->db->where('in_menu',1);
		$this->db->where('is_done',0);
		$query = $this->db->get('evenements');
		return $query->result();
	}
}
                                


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

بحث في الموقع


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