debut réorganisation projet + index.php + controleur + config

pull/17/head
kevin.modejar 6 months ago
parent 109ddd9ff5
commit 55d1d5372e

@ -0,0 +1,51 @@
<?php
class Autoload
{
private static $_instance = null;
public static function charger()
{
if(null !== self::$_instance) {
throw new RuntimeException(sprintf('%s is already started', __CLASS__));
}
self::$_instance = new self();
if(!spl_autoload_register(array(self::$_instance, '_autoload'))) {
throw RuntimeException(sprintf('%s : Could not start the autoload', __CLASS__));
}
}
public static function shutDown()
{
if(null !== self::$_instance) {
if(!spl_autoload_unregister(array(self::$_instance, '_autoload'))) {
throw new RuntimeException('Could not stop the autoload');
}
self::$_instance = null;
}
}
private static function _autoload($class)
{
global $rep;
$filename = $class.'.php';
$dir =array('models/','./','config/','controllers/');
foreach ($dir as $d){
$file=$rep.$d.$filename;
//echo $file;
if (file_exists($file))
{
include $file;
}
}
}
}
?>

@ -0,0 +1,27 @@
<?php
//gen
//$rep = __DIR__ . '/../';
// liste des modules à inclure
//$dConfig['includes']= array('controleur/Validation.php');
//BD
$base = 'dbkemondejar';
$login = '';
$mdp = '';
//Vues
$vues['erreur'] = 'views/erreur.php';
$vues['accueil'] = 'views/accueil.php';
$vues['bandeau'] = 'views/HeaderView.php';
$vues['citation']= 'views/CitationView.php';
$model['citation'] = 'models/CitationModel.php';
$style['accueil'] = 'public/styles/styleAccueil.css';
?>

@ -0,0 +1,94 @@
<?php
class Controleur {
function __construct() {
global $rep,$vues,$model,$style;
session_start();
//debut
//on initialise un tableau d'erreur
$dVueEreur = array ();
try{
$action=$_REQUEST['action'];
switch($action) {
//pas d'action, on r<>initialise 1er appel
case NULL:
$this->Reinit();
break;
case 'accueil':
$this->AffAccueil();
break;
//mauvaise action
default:
$dVueEreur[] = "Erreur d'appel php";
$this->AffAccueil();
break;
}
} catch (PDOException $e)
{
//si erreur BD, pas le cas ici
$dVueEreur[] = "Erreur inattendue!!! ";
require ($rep.$vues['erreur']);
}
catch (Exception $e2)
{
$dVueEreur[] = "Erreur inattendue!!! ";
require ($rep.$vues['erreur']);
}
//fin
exit(0);
}//fin constructeur
function Reinit() {
global $rep,$vues; // nécessaire pour utiliser variables globales
//$model = new Simplemodel();
//$model->build_data("",0);
require ($rep.$vues['accueil']);
}
function AffAccueil(){
global $rep,$vues,$model,$style;
require($rep.$model['citation']);
require($rep.$vues['bandeau']);
require($rep.$vues['citation']);
// Gestion du thème
if (isset($_POST['theme'])) {
$theme = $_POST['theme'];
setcookie('theme', $theme, time() + (30 * 24 * 60 * 60), "/");
} elseif (isset($_COOKIE['theme'])) {
$theme = $_COOKIE['theme'];
} else {
$theme = 'dark-mode';
}
// Récupérer les données via le modèle
$modelCit = new CitationModel();
$citationDuJour = $modelCit->getCitationDuJour();
$suggestions = $modelCit->getSuggestions($citationDuJour);
// Afficher la page via la vue
HeaderView::display($theme);
CitationView::display($citationDuJour, $suggestions);
}
}//fin class
?>

@ -0,0 +1,18 @@
<?php
$rep = __DIR__ . '/';
//controller objet
require(__DIR__.'/controllers/controleur.php');
//chargement config
require_once(__DIR__.'/config/config.php');
//chargement autoloader pour autochargement des classes
require_once(__DIR__.'/config/autoload.php');
Autoload::charger();
$_REQUEST['action'] = 'accueil';
$cont = new Controleur();
?>

@ -1,6 +0,0 @@
<?php
require_once('../../controllers/CitationController.php');
$controller = new CitationController();
$controller->index();
?>

@ -12,7 +12,7 @@ class HeaderView {
<title>Wiki Fantasy</title> <title>Wiki Fantasy</title>
<link id="favicon" rel="icon" href="../images/dark.svg" type="image/x-icon" /> <link id="favicon" rel="icon" href="../images/dark.svg" type="image/x-icon" />
<script src="../script/truncateQuotes.js"></script> <script src="../script/truncateQuotes.js"></script>
<link rel="stylesheet" href="../styles/styleAccueil.css"> <!-- Import de styleAccueil.css --> <link rel="stylesheet" href="<?php global $rep,$style; echo $rep.$style['accueil']; ?>"> <!-- Import de styleAccueil.css -->
<script defer src="../script/theme-toggle.js"></script> <!-- Import du script --> <script defer src="../script/theme-toggle.js"></script> <!-- Import du script -->
</head> </head>
<body class="<?php echo htmlspecialchars($theme); ?>"> <body class="<?php echo htmlspecialchars($theme); ?>">

@ -0,0 +1,5 @@
<?php
require (__DIR__.'/HeaderView.php');
//require ($rep.$vues['bandeau']);
//require ($rep.$vues['citation']);
?>
Loading…
Cancel
Save