l'extension " . $extension . ' est manquante

'); $flag = true; } } if(!extension_loaded('imagick') && !extension_loaded('gd')){ echo("

il manque une de ces extensions au choix pour le traitement des images: imagick (de préférence) ou gd.

"); $flag = true; } if($flag){ echo '

Réalisez les actions nécéssaires sur le serveur ou contactez l\'administrateur du site.
Quand le problème sera résolu, il vous suffira de recharger la page.

'; die; } } function installation(): void { // -- droits des fichiers et dossiers -- $droits_dossiers = 0700; $droits_fichiers = 0600; if(!file_exists('user_data')){ // créer le dossier user_data mkdir('user_data/'); chmod('user_data/', $droits_dossiers); echo '

Le dossier public/user_data introuvable et le serveur n\'a pas la permission de le créer.
Pour faire ça bien:
sudo -u "serveur web" mkdir /chemin/du/site/public/user_data

Aide: "serveur web" se nomme "www-data" sur debian et ubuntu, il s\'appelera "http" sur d\'autres distributions.

'; die; } if(!file_exists('../config/config.ini')){ // aide à la création du config.ini echo '

Ce fichier contient les codes de la base de données et quelques paramètres utilisés pour créer les liens internes.
Un modèle est disponible, il s\'agit du fichier config/config-template.ini

Quand vous aurez terminé votre config.ini, donnez-lui si possible des droits 600.

'; die; } } /* // droits du config.ini if(substr(sprintf('%o', fileperms('../config/config.ini')), -4) != 600){ chmod('../config/config.ini', $droits_fichiers); } // création de data et sous-dossiers if(!file_exists('../data')){ mkdir('../data/'); chmod('../data/', $droits_dossiers); } if(!touch('../data')){ echo("dossier data non autorisé en écriture"); die; } $sous_dossiers = array('images', 'images-mini', 'videos'); foreach ($sous_dossiers as $sous_dossier){ if(!file_exists('../data/' . $sous_dossier)){ mkdir('../data/' . $sous_dossier); chmod('../data/' . $sous_dossier, $droits_dossiers); } if(!touch('../data/' . $sous_dossier)){ echo("dossier data non autorisé en écriture"); die; } } */ // création d'un site minimal avec une page d'accueil à la toute 1ère visite du site // fonctiona appelée après la première requête envoyée en BDD, // en l'occurence dans Menu parce que count($bulk_data) === 0 function fillStartingDatabase(EntityManager $entityManager){ /* -- table page -- */ // paramètres: name_page, end_of_path, reachable, in_menu, hidden, position, parent $accueil = new Page('Accueil', 'accueil', "Page d'accueil", true, true, false, 1, NULL); $article = new Page('Article', 'article', "", true, false, false, NULL, NULL); $connection = new Page('Connexion', 'connection', "Connexion", true, false, false, NULL, NULL); $my_account = new Page('Mon compte', 'user_edit', "Mon compte", true, false, false, NULL, NULL); $menu_paths = new Page("Menu et chemins", 'menu_paths', "Menu et chemins", true, false, false, NULL, NULL); $menu_paths->addCSS('menu'); $menu_paths->addJS('menu'); $new_page = new Page('Nouvelle page', 'new_page', "Nouvelle page", true, false, false, NULL, NULL); $new_page->addCSS('new_page'); $new_page->addJS('new_page'); $emails = new Page("Courriels", 'emails', "Consulter les courriels en base de données", true, false, false, NULL, NULL); $emails->addCSS('show_emails'); $emails->addJS('form'); /* -- table node -- */ // paramètres: name_node, article_timestamp, attributes, position, parent, page, article $head = new Node('head', 1, NULL, NULL, NULL); $header = new Node('header', 2, NULL, NULL, NULL); $nav = new Node('nav', 1, $header, NULL, NULL); $main = new Node('main', 3, NULL, NULL, NULL); $footer = new Node('footer', 4, NULL, NULL, NULL); $breadcrumb = new Node('breadcrumb', 2, $header, NULL, NULL); $login = new Node('login', 1, $main, $connection, NULL); $user_edit = new Node('user_edit', 1, $main, $my_account, NULL); $bloc_edit_menu = new Node('menu', 1, $main, $menu_paths, NULL); $bloc_new_page = new Node('new_page', 1, $main, $new_page, NULL); $bloc_emails = new Node('show_emails', 1, $main, $emails, NULL); /* -- table node_data -- */ // paramètres: data, node, images $head_data = new NodeData([], $head); $header_data = new NodeData([], $header); $footer_data = new NodeData([], $footer); $emails_data = new NodeData([], $bloc_emails); /* -- table page -- */ $entityManager->persist($accueil); $entityManager->persist($article); $entityManager->persist($connection); $entityManager->persist($my_account); $entityManager->persist($menu_paths); $entityManager->persist($new_page); $entityManager->persist($emails); /* -- table node -- */ $entityManager->persist($head); $entityManager->persist($header); $entityManager->persist($nav); $entityManager->persist($main); $entityManager->persist($footer); $entityManager->persist($breadcrumb); $entityManager->persist($login); $entityManager->persist($user_edit); $entityManager->persist($bloc_edit_menu); $entityManager->persist($bloc_new_page); $entityManager->persist($bloc_emails); /* -- table node_data -- */ $entityManager->persist($head_data); $entityManager->persist($header_data); $entityManager->persist($footer_data); $entityManager->persist($emails_data); $entityManager->flush(); header('Location: ' . new URL); die; }