blob: 89246868a5c69c2a4b6400de61da83ab11ea1083 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
<?php
// src/controller/post.php
declare(strict_types=1);
if($_SERVER['REQUEST_METHOD'] === 'POST' && $_SESSION['admin'] === true)
{
/* -- requêtes non AJAX -- */
// page Menu et chemin
/*if(isset($_POST['menu_edit_post']) && isset($_POST['id']))
{
// <= flèche gauche: le parent devient le grand-parent position = position du parent + 1, recalculer les positions des enfants restants
if($_POST['menu_edit_post'] == 'move_one_level_up'){
Director::$menu_data = new Menu($entityManager);
$page = Director::$menu_data->findPageById((int)$_POST['id']);
$parent = $page->getParent(); // peut être null
if($parent === null){
// 1er niveau: ne rien faire
header('Location: ' . new URL(['page' => 'menu_chemins']));
die;
}
else{
$page->setPosition($parent->getPosition() + 1); // nouvelle position
// 2ème niveau: le parent devient $menu_data, puis null après tri
if($parent->getParent() === null){
// connexion dans les deux sens
$page->setParent(Director::$menu_data); // => pour la persistance
Director::$menu_data->addChild($page); // => pour sortChildren
//Director::$menu_data->sortChildren(true); // positions décaléees des nouveaux petits frères
$page->getParent()->sortChildren(true); // positions décaléees des nouveaux petits frères
$page->setParent(null);
}
// 3ème niveau et plus
else{
$page->setParent($parent->getParent()); // nouveau parent
$page->getParent()->sortChildren(true); // positions décaléees des nouveaux petits frères
}
//$parent->sortChildren(true); // positions des enfants restants, inutile si la fonction est récursive?
echo $page->getPosition();
//die;
}
$entityManager->flush();
header('Location: ' . new URL(['page' => 'menu_chemins']));
die;
}
// => flèche droite: l'élément précédent devient le parent, position = nombre d'éléments de la fraterie + 1
elseif($_POST['menu_edit_post'] == 'move_one_level_down')
{
Director::$menu_data = new Menu($entityManager);
$page = Director::$menu_data->findPageById((int)$_POST['id']);
$parent = $page->getParent(); // peut être null
if($parent == null){
$parent = Director::$menu_data;
}
$parent->sortChildren(true); // trie et réindexe par sécurité: 1, 2, 3...
if($page->getPosition() > 1){
foreach($parent->getChildren() as $child){
echo $child->getPageName();
if($child->getPosition() === $page->getPosition() - 1){
$page->setParent($child);
break;
}
}
$page->setPosition(count($page->getParent()->getChildren()) + 1);
}
$entityManager->flush();
header('Location: ' . new URL(['page' => 'menu_chemins']));
die;
}
else{
// you talking to me?
die;
}
}*/
/* -- requêtes AJAX -- */
require '../src/controller/ajax.php';
// formulaires HTML
/*if(isset($_POST['from']) // page d'où vient la requête
&& isset($_POST)) // données
{
echo "requête envoyée en validant un formulaire";
}*/
}
|