Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ CI_ENVIRONMENT = development
#--------------------------------------------------------------------

database.default.hostname = localhost
database.default.database = test6
database.default.database = login
database.default.username = root
database.default.password =
database.default.DBDriver = MySQLi
Expand Down
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

55 changes: 32 additions & 23 deletions vendor/sebastian/type/.idea/php.xml → .idea/php.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 10 additions & 0 deletions .idea/phpunit.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
12 changes: 1 addition & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,3 @@
# CodeIgniter 4 Login & Register
CodeIgniter 4 Login & Register System based on YouTube tutorial
Tuto pour le login :
> https://www.youtube.com/watch?v=uYX9FLi1BYg&list=PLYogo31AXFBONHR0WjlnhxN4ulRrF98aA
## 1. Setup
Change .env settings to apply to your environment

## 2. Run migration
Open terminal and navigate to your project folder, then run:
> php spark migrate

This will create the table 'users' in your database that you secified in your .env file

### 3. Now you can Register your first user
1 change: 1 addition & 0 deletions app/Config/Filters.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ class Filters extends BaseConfig
'csrf' => \CodeIgniter\Filters\CSRF::class,
'toolbar' => \CodeIgniter\Filters\DebugToolbar::class,
'honeypot' => \CodeIgniter\Filters\Honeypot::class,
'authadmin' => \App\Filters\AuthAdm::class,
'auth' => \App\Filters\Auth::class,
'noauth' => \App\Filters\Noauth::class,
'userscheck' => \App\Filters\UsersCheck::class,
Expand Down
8 changes: 8 additions & 0 deletions app/Config/Routes.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,15 @@
$routes->get('logout', 'Users::logout');
$routes->match(['get','post'],'register', 'Users::register', ['filter' => 'noauth']);
$routes->match(['get','post'],'profile', 'Users::profile',['filter' => 'auth']);
$routes->match(['get','post'],'publication', 'PublicationController::publication',['filter' => 'auth']);
$routes->match(['get','post'],'displayPublication', 'PublicationController::displayVerifiedPublication',['filter' => 'auth']);
$routes->get('dashboard', 'Dashboard::index',['filter' => 'auth']);
$routes->match(['get','post'],'userpublication', 'PublicationController::userPublish',['filter' => 'auth']);
$routes->match(['get','post'],'unverifiedpublication', 'PublicationController::displayUnVerifiedPublication',['filter' => 'authadmin']);
$routes->match(['get','post'],'publicationGestion', 'PublicationController::publicationGestion',['filter' => 'authadmin']);
$routes->match(['get','post'],'aprouvePublish', 'PublicationController::aprouvePublish',['filter' => 'authadmin']);
$routes->match(['get','post'],'deletePublish', 'PublicationController::deletePublish',['filter' => 'authadmin']);


/**
* --------------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion app/Controllers/BaseController.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*
* @package CodeIgniter
*/

/* Controlleur de base de CI*/
use CodeIgniter\Controller;

class BaseController extends Controller
Expand Down
2 changes: 1 addition & 1 deletion app/Controllers/Dashboard.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php namespace App\Controllers;

/* Header et footer*/
class Dashboard extends BaseController
{
public function index()
Expand Down
12 changes: 0 additions & 12 deletions app/Controllers/Home.php

This file was deleted.

147 changes: 147 additions & 0 deletions app/Controllers/PublicationController.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
<?php


namespace App\Controllers;


use App\Models\PublicationModel;

class PublicationController extends BaseController /*Déclaration de classe qui hérite du controlleur de base de CI*/
{


public function publication(){ /*Crée une nouvelle publication*/
$data = [];
helper(['form']);

if ($this->request->getMethod() == 'post') { /* méthode post pour masqué les infos */
$rules = [
'hashtag' => 'required|min_length[1]|max_length[255]', /* règle de longueur des info */
'description' => 'required|min_length[1]|max_length[255]',
'auteur' => 'required|min_length[1]|max_length[255]'

];

if (! $this->validate($rules)) { /* est_ce que regle NOK ?*/
$data['validation'] = $this->validator; /*NOK*/
}else{
$model = new PublicationModel(); /* Création d'un nouvel objet PublicationModel afin d'appeler notre model*/

$newData = [
'users_id' => session()->get('id'), /*Récuperation de l'id de l'user connecté que l'on affectera à la publication afin de lié user et publi */
'hashtag' => $this->request->getVar('hashtag'), /* Récupération des var de POST*/
'description' => $this->request->getVar('description'),
'auteur' => $this->request->getVar('auteur')


];
$model->save($newData); /* save est une méthode de CI pour sauvegarder des data en db équivaut à INSERT INTO etc.....*/
$session = session();
$session->setFlashdata('success', 'Successful Publish'); /*Validation*/
return redirect()->to('/'); /*Rédirection vers dashboard*/

}
}


echo view('templates/header', $data); /* Appel des vues*/
echo view('publication');
echo view('templates/footer');
}

public function displayVerifiedPublication(){ /*AFFICHAGE des publi verifiée*/

$model = new PublicationModel();
$dataTable['table'] = $model->selectVerifiedPublish();



echo view('templates/header');
echo view('displayPublication', $dataTable);
echo view('templates/footer');
}

public function displayUnVerifiedPublication(){ /*AFFICHAGE des publi non vérifiée*/

$model = new PublicationModel();
$dataTable['table'] = $model->selectUnVerifiedPublish();



echo view('templates/header');
echo view('aprouvepublish', $dataTable);
echo view('templates/footer');
}

public function userPublish(){ /*Afficher les publication de l'user courant */
$idUser = session()->get('id');
$model = new PublicationModel();
$dataTable['table'] = $model->selectUserPublish($idUser); /*Envoi en parametre l'id de l'user courant au model */

echo view('templates/header');
echo view('displayPublication', $dataTable);
echo view('templates/footer');
}



public function aprouvePublish()
{ /*Permet d'approuvé les publications*/

helper(['form']);

if ($this->request->getMethod() == 'post') {
//


$newData = [ // On change l'état du champs isverified à 1
'isverified' => 1,


];
$model = new PublicationModel();
$model->update($this->request->getVar('approuve'), $newData);
$session = session();
$session->setFlashdata('success', 'Publication approuvée !');
return redirect()->to('/');


}


}


public function deletePublish(){ //Pour supprimer une publication
$data = [];
helper(['form']);

if ($this->request->getMethod() == 'post') {

$model = new PublicationModel();
$model->delete(['id' => $this->request->getVar('delete')]); // supprimer une ligne dans la table Publication en fct de son id
$session = session();
$session->setFlashdata('success', 'Successful deleted');
return redirect()->to('/');


}



}
public function publicationGestion(){ //gère l'aprobation ou la suppression des publication en fonction du bouton cliqué
if(isset($_POST['approuve'])) {
$this->aprouvePublish();
}
if(isset($_POST['delete'])){
$this->deletePublish();

}

$this->displayUnVerifiedPublication();

}


}
Loading