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


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

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

1- الملف events/index.php

فالمجلد views زيد مجلد جديد سميه events فيه زيد ملف جديد سميه index.php لي غادي يكون هو الصفحة الرئيسية ديال الأحداث غادي تكون فيه القائمة الجانبية لي كتمكن باش تنقل للصفحات الخاصة بإضافة مستخدم حدث أو فئة وجدول ديال الأحداث لي كيجيونا من لfonction index ديال controller Events.php بالإضافة للروابط كيمكنوا من التوجه للصفحة الخاصة بتعديل حدث ولي كيمكن باش نحدف حدث بواسطة ل fonction delete ديال controller Events.php الكود ديال الملف هو :

                                <?php $this->load->view('includes/header');?>
<div class="container">
	<div class="row">
	    <div class="col-md-2">
    		<?php $this->load->view('includes/sidebar.php');?>
		</div>	
		<div class="col-md-10">
			<h2 class="text-primary">Liste des evenements</h2>
	   		<table class="table table-stripped">
	   			<thead>
	   				<tr>
	   					<th>Id</th>
		    				<th>Catégorie</th>
		   				<th>Titre</th>
		    				<th>Déscription</th>
		   				<th>Date debut</th>
		  				<th>Date fin</th>
		   				<th>Publié</th>
		    				<th>Passé</th>
		   				<th>Actions</th>
	    				</tr>
	   			</thead>
	   			<tbody>
	    				<?php if($events):?>
	   					<?php foreach($events as $event):?>
	   						<tr>
				   				<td><?php echo $event->id;?></td>
				   				<td><?php echo $event->cat_id;?></td>
				   				<td><?php echo $event->titre;?></td>
				   				<td><?php echo $event->description;?></td>
				   				<td><?php echo $event->date_debut;?></td>
				   				<td><?php echo $event->date_fin;?></td>
				  				<td><?php echo ($event->in_menu == true ? 'Oui' : 'Non');?></td>
				   				<td><?php echo ($event->is_done == true ? 'Oui' : 'Non');?></td>
				   				<td>
				   				<p>
				   				<?php echo anchor('Events/edit/'.$event->id,'Modifier',['class'=>'btn btn-warning']);?>
				   				</p>
				    				<p>
				   				<?php echo anchor('Events/delete/'.$event->id,'Supprimer',['class'=>'btn btn-danger']);?>
				  				</p> 
				   				</td>
			    				</tr>
	   					<?php endforeach;?>
	    				<?php endif;?>
	   			</tbody>
	   		</table>
		</div>
	</div>
</div>
<?php $this->load->view('includes/footer');?>
                            

2- الملف events/add.php

دائما فالمجلد events فيه زيد ملف جديد سميه add.php لي غادي تكون فيه الفورم لي كتمكن من إضافة حدث ولي كترسل المعلومات للfonction add لي كاينة فل controller Events.php فكيما دكرنا من قبل كنخدمو بل form helper لي هي ديال codeigniter وكتمكن من إضافة les forms أكثر أمن من les forms العاديين ويلا بغيتي تزيد تاخد معلومات عليه شوف la documentation ديال codeigniter فغوغل الكود ديال الملف هو :

                                <?php $this->load->view('includes/header');?>
<div class="container">
	<div class="row">
	    <div class="col-md-3">
    		<?php $this->load->view('includes/sidebar.php');?>
		</div>	
		<div class="col-md-6 col-md-offset-1">
		   <div class="row">
		   		<div class="col-md-8">
		    			<div class="panel panel-default">
		   				 <h2 class="text-info">Ajouter un evenement</h2>
						<?php echo form_open('Events/add');?>
							<div class="form-group">
								<?php echo form_label('Catégorie:','cat');?>
								<?php
									echo form_dropdown('cat', $categories_options,['class'=>'form-control']);
								?>
							</div>
							<div class="form-group">
							    <?php echo form_label('Titre:','titre');?>
								<?php
									$data = array(
								       'name'          => 'titre',
								        'id'            => 'titre',
								        'value'         => set_value('titre'),
								        'maxlength'     => '100',
								        'class'          => 'form-control'
									);
									echo form_input($data);
								?>
							</div>	
							<div class="form-group">
								<?php echo form_label('Déscription:','desc');?>
								<?php 
								    $data = array(
								        'name'          => 'desc',
								        'id'            => 'desc',
								        'value'         => set_value('desc'),
								        'maxlength'     => '1000',
								        'class'          => 'form-control'
									);
									echo form_textarea($data)
								?>
							</div>
							<div class="form-group">
							    <?php echo  form_label('Publier :','is_published');?>
								<?php echo  form_radio('is_published', '1', TRUE);?>Oui
								<?php echo  form_radio('is_published', '0', FALSE);?>Non
							</div>
							<div class="form-group">
							    <?php echo form_label('Date debut :','date_debut');?>
								<?php
									$data = array(
								       'name'          => 'date_debut',
								        'id'            => 'date_debut',
								        'value'         => set_value('date_debut'),
								        'maxlength'     => '100',
								        'class'          => 'form-control'
									);
									echo form_input($data);
								?>
							</div>	
							<div class="form-group">
							    <?php echo form_label('Date fin :','date_fin');?>
								<?php
									$data = array(
								        'name'          => 'date_fin',
								        'id'            => 'date_fin',
								        'value'         => set_value('date_fin'),
								        'maxlength'     => '100',
								        'class'          => 'form-control'
									);
									echo form_input($data);
								?>
							</div>	
							<div class="form-group">
								<?php echo form_submit('submit', 'Valider',array('class'=>'btn btn-success'));?>
							</div>
						<?php echo form_close();?>
		   			</div>
		  		</div>
		   </div>
		</div>
	</div>
</div>
<?php $this->load->view('includes/footer');?>
                            

3- الملف events/edit.php

دائما فالمجلد events فيه زيد ملف جديد سميه edit.php لي غادي تكون فيه الفورم لي كتمكن من تعديل حدث اختارو المستخدم بالإعتماد على لid ديالو ولي كترسل المعلومات للfonction update لي كاينة فل controller Events.php ودائما كنخدمو بل form helper الكود ديال الملف هو :

                                <?php $this->load->view('includes/header');?>
<div class="container">
	<div class="row">
	    <div class="col-md-3">
    		<?php $this->load->view('includes/sidebar.php');?>
		</div>	
		<div class="col-md-6 col-md-offset-1">
		   <div class="row">
		    		<div class="col-md-8">
		   			<div class="panel panel-default">
		   				 <h2 class="text-info">Ajouter un evenement</h2>
						<?php echo form_open('Events/add');?>
							<div class="form-group">
								<?php echo form_label('Catégorie:','cat');?>
								<?php
									echo form_dropdown('cat', $categories_options,['class'=>'form-control']);
								?>
							</div>
							<div class="form-group">
							    <?php echo form_label('Titre:','titre');?>
								<?php
									$data = array(
								       'name'          => 'titre',
								        'id'            => 'titre',
								        'value'         => set_value('titre'),
								        'maxlength'     => '100',
								        'class'          => 'form-control'
									);
									echo form_input($data);
								?>
							</div>	
							<div class="form-group">
								<?php echo form_label('Déscription:','desc');?>
								<?php 
								    $data = array(
								        'name'          => 'desc',
								        'id'            => 'desc',
								        'value'         => set_value('desc'),
								        'maxlength'     => '1000',
								        'class'          => 'form-control'
									);
									echo form_textarea($data)
								?>
							</div>
							<div class="form-group">
							    <?php echo  form_label('Publier :','is_published');?>
								<?php echo  form_radio('is_published', '1', TRUE);?>Oui
								<?php echo  form_radio('is_published', '0', FALSE);?>Non
							</div>
							<div class="form-group">
							    <?php echo form_label('Date debut :','date_debut');?>
								<?php
									$data = array(
								       'name'          => 'date_debut',
								        'id'            => 'date_debut',
								        'value'         => set_value('date_debut'),
								        'maxlength'     => '100',
								        'class'          => 'form-control'
									);
									echo form_input($data);
								?>
							</div>	
							<div class="form-group">
							    <?php echo form_label('Date fin :','date_fin');?>
								<?php
									$data = array(
								        'name'          => 'date_fin',
								        'id'            => 'date_fin',
								        'value'         => set_value('date_fin'),
								        'maxlength'     => '100',
								        'class'          => 'form-control'
									);
									echo form_input($data);
								?>
							</div>	
							<div class="form-group">
								<?php echo form_submit('submit', 'Valider',array('class'=>'btn btn-success'));?>
							</div>
						<?php echo form_close();?>
		   			</div>
		  		</div>
		   </div>
		</div>
	</div>
</div>
<?php $this->load->view('includes/footer');?>
                            

4- الملف Users.php

ف Application/Controllers غادي تزيد ملف جديد سميه Users.php لي غادي يكون فيه ل fonction index لي كتسترجع المستخدمين لي عندنا فقاعدة البيانات بواسطة fonction get_users لي كاينة فل model User لي غادي نزيدوه من بعد ثم كترسلهم للملف users/index.php لي غادي يمكن من عرض المستخدمين ولي غادي نزيدوه من بعد ثم كاين ل fonction add لي من بعد مكتحقق بلي الحقول ما خاوينش كتزيد المعلومات لي ترسلو من form فالجدول users بواسطة fonction add_user لي غادي تكون حتى هي فل model User ثم كاين fonction edit لي كتمكن من تعديل مستخدم بالإعتماد على لid ديالو ولي من بعد مكتحقق بلي الحقول ما خاوينش كتزيد المعلومات لي ترسلو من form فالجدول users بواسطة fonction update لي غادي تكون حتى هي فل model User ثم كاين fonction delete لي كتمكن من حدف مستخدم بالإعتماد على لid ديالو بواسطة fonction delete لي غادي تكون حتى هي فل model User وكاين fonction login ولي من بعد مكتحقق بلي الحقول ما خاوينش كتمكن المستخدم باش يتكونيكطا بواسطة fonction login لي غادي تكون حتى هي فل model User ثم كاين fonction logout لي كتمكن المستخدم باش يديكونيكطا الكود ديال الملف هو :

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

class Users extends CI_Controller {
	public function index()
	{
	    	$data['users'] = $this->User->get_users();
	    $this->load->view('users/index',$data);
	}
	public function add()
	{
	    $this->form_validation->set_rules('nom','Nom','required|trim');
		$this->form_validation->set_rules('prenom','Prénom','required|trim');
		$this->form_validation->set_rules('email','Email','required|trim|valid_email|is_unique[users.email]');
		$this->form_validation->set_rules('passe','Mot de passe','required|trim');
		$this->form_validation->set_rules('is_admin','Admin','required');
		if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
			);
			    $this->session->set_flashdata($data);
			    $this->load->view('users/add',$data);
			}else{
			$data = array(
				'nom'=> $this->input->post('nom'),
				'prenom'=> $this->input->post('prenom'),
				'email'=> $this->input->post('email'),
				'passe'=>  $this->encryption->encrypt($this->input->post('passe')),
				'is_admin'=> $this->input->post('is_admin'),
				'date_ajout'=> date("l jS \of F Y h:i:s A")
			);
			if($this->User->add_user($data)){
				$this->session->set_flashdata('success','Utilisateur ajouté!');
				redirect('users/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('users/add');
			}
		}
	}
	public function edit($id)
	{
	    $this->form_validation->set_rules('nom','Nom','required|trim');
		$this->form_validation->set_rules('prenom','Prénom','required|trim');
		$this->form_validation->set_rules('email','Email','required|trim|valid_email');
		$this->form_validation->set_rules('passe','Mot de passe','required|trim');
		$this->form_validation->set_rules('is_admin','Admin','required');
		if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
			);
			    $this->session->set_flashdata($data);
			    $data['user'] = $this->User->get_user_by_id($id);
			    $this->load->view('users/edit',$data);
			}else{
			$data = array(
				'nom'=> $this->input->post('nom'),
				'prenom'=> $this->input->post('prenom'),
				'email'=> $this->input->post('email'),
				'passe'=>  $this->encryption->encrypt($this->input->post('passe')),
				'is_admin'=> $this->input->post('is_admin'),
				'date_ajout'=> date("l jS \of F Y h:i:s A")
			);
			if($this->User->update($id,$data)){
				$this->session->set_flashdata('success','Utilisateur modifié!');
				redirect('users/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('users/edit');
			}
		}
	}
	public function delete($id)
	{
	    if($this->User->delete($id)){
				$this->session->set_flashdata('success','Utilisateur supprimé!');
				redirect('users/index');
			}else{
				$this->session->set_flashdata('erreur','Erreur veuillez réessayer');
				redirect('users/index');
		}
	}
	public function login()
	{
	   $this->form_validation->set_rules('email','Email','required|trim|valid_email');
	   $this->form_validation->set_rules('passe','Mot de passe','required|trim');
	   if($this->form_validation->run() == FALSE){
			$data = array(
			  'requires' => validation_errors()
			);
		    $this->session->set_flashdata($data);
		    $this->load->view('users/login',$data);
		}else{
			$email = $this->input->post('email');
			$passe = $this->input->post('passe');
			if($user = $this->User->login($email,$passe)){
				$data = array(
					'user_id'=> $user->id,
					'user_nom'=> $user->nom,
					'user_prenom'=> $user->prenom,
					'logged'=> true
				);
				$this->session->set_userdata($data);
				redirect('Admins/index');
			}else{
				$this->session->set_flashdata('erreur','Invalide email ou mot de passe');
				redirect('users/login');
			}
		}
	}
	public function logout(){
		$this->session->unset_userdata('user_id');
		$this->session->unset_userdata('nom');
		$this->session->unset_userdata('prenom');
		$this->session->unset_userdata('logged');
		redirect('Admins/index');
	}
}
                                

5- الملف User.php

ف Application/models غادي تزيد ملف جديد سميه User.php لي غادي يكون فيه ل fonction add_user لي كتزيد مستخدم فقاعدة البيانات من بعد مكيترسلها من fonction add لي ف Controller Users.php ثم كاين fonction get_users لي كتسترجع كل المستخدمين لي عندنا فقاعدة البيانات ثم كاين fonction get_user_by_id لي كترجع مستخدم اختارو الأدمن بالإعتماد على ل id ديالو ثم ل fonction update لي كتعدل مستخدم بالإعتماد على ل id ديالو ثم كاين fonction delete لي كتحدف مستخدم بالإعتماد على ل id ديالو ثم كاين fonction login لي كتحقق من الإمايل وكلمة المرور لي دخل المستخدم واش فعلا كاين فقاعدة البيانات يلا كان كترجعو مكانش كترجع رسالة خطأ الكود ديال الملف هو :

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

class User extends CI_Model {
	public function add_user($data){
		if($this->db->insert('users',$data)){
			return true;
		}else{
			return false;
		}
	}
	public function get_users(){
		$query = $this->db->get('users');
		return $query->result();
	}
	public function get_user_by_id($id){
		$this->db->select('*')->from('users');
		$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('users',$data)){
			return true;
		}else{
			return false;
		}
	}
	public function delete($id){
		$this->db->where('id',$id);
		if($this->db->delete('users')){
			return true;
		}else{
			return false;
		}
	}
	public function login($email,$passe){
		$this->db->select('*');
		$this->db->from('users');
		$this->db->where('email',$email);
		$this->db->limit(1);
		$query = $this->db->get();
		if($query->num_rows() == 1){
			if($this->encryption->decrypt($query->row()->passe) == $passe){
			   return $query->row();
			}else{
			   return false;
		    }
		}else{
			return false;
		}	
	}
}
                                


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

بحث في الموقع


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