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


فهاد المشروع الجديد مشروع موقع gestion des evénements ب codeigniter غادي نشوفو كيفاش نقادو واحد الموقع كيعرض مجموعة ديال الأحداث لي مسجلة عندنا فقاعدة البيانات مهرجانات مباريات رياضية وغيرها فهاد المشروع غادي يكون التركيز على ل backend يعني جهة الأدمن كثرمن الواجهة لي كيشوف الزائر هاد المشروع كيتطلب تكون عندك قاعدة معلومات ف codeigniter و يلا مكانتش عندك شوف la documentation فغوغل راها بسيطة حيت هاد ل framework هو أسهل واحد ما بين كل framework php لي كاينين.

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

1- إنشاء قاعدة البيانات

أول حاجة غادي نديرو هي غادي نزيدو قاعدة بيانات جديدة ف phpmyadmin نسميوها eventswebsite من بعد غادي نزيد فيها 3 ديال لtables نسميهم users,categories,evenements هي قاعدة البيانات لي غادي تمكنا من حفظ الأحداث لي غادي نزيدوها الكود باش تزيد الجداول فقاعدة البيانات هو :

                                -- Structure de la table `categories`
--

CREATE TABLE IF NOT EXISTS `categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `titre` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
-- Structure de la table `evenements`
--

CREATE TABLE IF NOT EXISTS `evenements` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `user_id` int(11) NOT NULL,
  `cat_id` int(11) NOT NULL,
  `titre` varchar(255) NOT NULL,
  `description` text NOT NULL,
  `date_debut` varchar(60) NOT NULL,
  `date_fin` varchar(60) NOT NULL,
  `is_done` tinyint(4) NOT NULL DEFAULT '0',
  `in_menu` tinyint(4) NOT NULL DEFAULT '1',
  PRIMARY KEY (`id`),
  KEY `user_id` (`user_id`,`cat_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
-- Structure de la table `users`
--

CREATE TABLE IF NOT EXISTS `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(255) NOT NULL,
  `prenom` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `passe` varchar(255) NOT NULL,
  `is_admin` tinyint(4) NOT NULL DEFAULT '0',
  `date_ajout` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
                            

2- تحميل Codeigniter

ثاني حاجة غادي نديروها هي تحميل Codeigniter من الموقع الإلكتروني https://www.codeigniter.com/download من بعد غادي تهز المجلد لي حملتي وغادي تحطو فc:wamp/www وتسميه events_website باش تشوف الصفحة ديال الترحيب غادي تمشي للمتصفح ديالك http://localhost/events_website/index.php باش نحيدو داك index.php من الرابط ديالنا غادي نزيدو واحد الملف سميتو htaccess. فالمجلد ديال المشروع لي هو events_website وغادي نزيدو فيه الكود التالي :

                                <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /events_website/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
                            

3- ربط الإتصال بقاعدة البيانات

باش تربط الإتصال بقاعدة البيانات غادي تمشي ل application/config/database.php وغادي تدير تعديلات على الكود غادي تزيد سمية قاعدة البيانات لي زدتي فphpmyadmin ولusername لي هو root وكلمة المرور الكود ملي تغير هو :

                                <?php
defined('BASEPATH') OR exit('No direct script access allowed');
$active_group = 'default';
$query_builder = TRUE;

$db['default'] = array(
	'dsn'	=> '',
	'hostname' => 'localhost',
	'username' => 'root',
	'password' => '',
	'database' => 'eventswebsite',
	'dbdriver' => 'mysqli',
	'dbprefix' => '',
	'pconnect' => FALSE,
	'db_debug' => (ENVIRONMENT !== 'production'),
	'cache_on' => FALSE,
	'cachedir' => '',
	'char_set' => 'utf8',
	'dbcollat' => 'utf8_general_ci',
	'swap_pre' => '',
	'encrypt' => FALSE,
	'compress' => FALSE,
	'stricton' => FALSE,
	'failover' => array(),
	'save_queries' => TRUE
);

                            

4- الصفحات الأساسية

غادي تمشي لviews من بعد تزيد مجلد جديد تسميه includes فهاد المجلد غادي تزيد ملف تسميه header.php لي غادي يكون أساس كل الصفحات وفيه روابط لملفات الcss لي غادي نحتاجو وغادي تكون فيه القائمة لي غادي تمكنا من التنقل بين الصفحات فanchor هو لي كيمكنك باش تعرض رابط باستخدام codeigniter وكاين Déconnexion لي كتعرض فقط ملي المستخدم كيكون مكونيكطي هادشي غادي نشوفوه من بعد وأيضا session flashdata لي كتمكن من عرض رسائل الخطأ والنجاح و validation_errors لي كتعرض رسائل التحقق من الحقول لي كيعمر المستخدم فل form الكود النهائي ديالو:

                                    <!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="description" content="">
    <meta name="author" content="">
    <title>Gestion evenements</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    <link rel="stylesheet" href="<?php echo base_url();?>assets/css/main.css">
  </head>
  <body>
  <?php if($this->session->userdata('logged')):?>
    <nav class="navbar navbar-inverse">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="<?php echo base_url();?>/Admins/index">Admin Panel</a>
        </div>
        <div id="navbar" class="collapse navbar-collapse">
          <ul class="nav navbar-nav">
            <li><?php echo anchor('Admins/index','Accueil');?></li>
            <li><?php echo anchor('Categories/index','Catégories');?></li>
            <li><?php echo anchor('Events/index','Evenements');?></li>
            <li><?php echo anchor('Users/index','Utilisateurs');?></li>
          </ul>
          <ul class="nav navbar-nav pull-right">
             <li><?php echo anchor('Home/index','Retour au site');?></li>
             <?php if($this->session->userdata('logged')):?>
                <li><?php echo $this->session->userdata('nom').' '.$this->session->userdata('prenom');?></li>
                <li><?php echo anchor('Users/logout','Déconnexion');?></li>
             <?php endif;?>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>
    <?php endif;?>
    <?php if($this->session->flashdata('success')):?>
      <div class="alert alert-success">
         <?php echo $this->session->flashdata('success');?>
      </div>
    <?php endif;?>
    <?php if($this->session->flashdata('erreur')):?>
      <div class="alert alert-danger">
        <?php echo $this->session->flashdata('erreur');?>
      </div>
    <?php endif;?>
    <?php echo validation_errors('<div class="alert alert-danger">','</div>');?>
                                

5- الصفحات الأساسية تتمة

دائما فالمجلد includes غادي تزيد ملف تسميه footer.php لي غادي يكون أساس كل الصفحات وفيه روابط لملفات الjs لي غادي نحتاجو الكود النهائي ديالو:

                                     <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="../../dist/js/bootstrap.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
  </body>
</html>
                                


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

بحث في الموقع


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