summaryrefslogtreecommitdiff
path: root/controller/admin.php
blob: 90924e0cf6eda3c16a3d0701468e40a8c5bffea7 (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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<?php
// controller/admin.php
//
// utilisation du site en écriture
// version des pages en mode admin lorsque celui-ci crée ou modifie quelque chose

function melaineEdit($numArticle, $suppression)
{
	$page_actuelle = "melaine";

	// modèle
	$Article = new Page($page_actuelle, 'html');
	
	// nouvel article
	if($numArticle == 0)
	{
		$title = "Ajouter un article";
		$texte = '';
	}
	else
	{
		// nom de l'article ciblé (objet et session)
		$Article->findFileName($numArticle);
		$_SESSION['nomFichier'] = $Article->fileName;

		// suppression
		if($suppression)
		{
			$Article->delete();
			header('Location: index.php?page=' . $page_actuelle);
			exit();
		}
		// modification
		else
		{
			$title = "Modifier un article";
			$texte = $Article->readOne(); // entrée de l'éditeur
		}
	}

	// pour l'affichage des articles
	$articles = array_reverse($Article->readAll()); // lourd

	// sécurisation du contenu pré-existant inséré dans l'éditeur
	if($numArticle >= 0 && !$suppression)
	{
		require('controller/ckeditor.php');
		$texte = preparationCKeditor($numArticle, $texte);
	}

	// NB: penser à ajouter au template la fonctionnalité "autosave"
	// https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/saving-data.html

	// morceaux en HTML à assembler
	// variable $editeurHTML, contient $texte
	require('view/template-formulaires.php');
	// variables $css, $js, $header et $content,
	// $content contient $articles et $editeurHTML
	require('view/melaine.php');
	// fin de l'assemblage
	require('view/template.php');
}

function discoEdit($numArticle, $albumCode, $suppression)
{
	$page_actuelle = "discographie";
	$title = "Discographie";

	// modèle
	$Album = new Album($page_actuelle);
	$Album->makeFileList();

	// nouvel album
	if($numArticle == 0)
	{
		$title = "Ajouter un album";
		$texte = '';
	}
	else
	{
		// nom de l'article ciblé (objet et session)
		$Album->findFileName($numArticle);
		$_SESSION['nomFichier'] = $Album->fileName;

		// suppression
		if($suppression)
		{
			$Album->delete();
			header('Location: index.php?page=' . $page_actuelle);
			exit();
		}
		// modification
		else
		{
			$title = "Modifier un album";
			$texte = $Album->readOneAlbum($albumCode);
			$vignette = json_decode($Album->getVignette(), true);
		}
	}

	// traitements PHP pour l'éditeur
	// sécurisation du contenu pré-existant inséré dans l'éditeur
	if($numArticle >= 0 && !$suppression)
	{
		require('controller/ckeditor.php');
		$texte = preparationCKeditor($numArticle, $texte);
	}

	// contenu de tous les fichiers JSON (= tableau de chaines)
	$albumsJSON = $Album->readAll();
	// noms des fichiers JSON
	$albumNamesJSON = $Album->fileList;

	// changer les chaines JSON en tableaux: titre, année, pochette
	$i = 0;
	$annees = array();
	foreach($albumsJSON as $oneAlbum)
	{
		$albumsJSON[$i] = json_decode($oneAlbum, true);

		// ajout des noms des fichiers JSON
		$albumsJSON[$i][3] = $albumNamesJSON[$i];
		$annees[$i] = $albumsJSON[$i][1];
		$i++;
	}
	print_r($albumsJSON);
	//exit();
	// tri d'un tableau multidimensionnel
	array_multisort($annees, $albumsJSON);

	// on passe maintenant au contenu HTML
	$Album->format = 'html';
	$Album->makeFileList();
	$albumNamesHTML = $Album->fileList;

	// lien vers le HTML ou ancre?
	// pour chaque album, détecter le fichier html
	// si non, ne fournir qu'un lien d'ancre pour la liste d'album
	$i = 0;
	$avecLien = [];
	foreach($albumsJSON as $oneAlbum)
	{
		// nom sans extension
		$chemin = pathinfo($oneAlbum[3]);
		$nomJSONsansExt = $chemin['filename'];

		// au cas où la discographie ne contient aucun html
		if(!empty($albumNamesHTML))
		{
			if(file_exists('data/discographie/html/' . $nomJSONsansExt . '.html'))
			{
				$lienAlbum[$i] = 'album&album_code=' . $nomJSONsansExt . '&album_name=' . $albumsJSON[$i][0];
				$lienBoutonModif[$i] = 'discographie&action=edition&album_code=' . $nomJSONsansExt;
				$avecLien[$i] = true;
			}
			else
			{
				$lienAlbum[$i] = 'discographie#' . $albumsJSON[$i][0];
				$avecLien[$i] = false;
			}
			$i++;
		}
	}

	// morceaux en HTML à assembler
	// variable $editeurHTML, contient $texte
	require('view/template-formulaires.php');
	// variables $css, $js, $header et $content,
	// $content contient ???? et $editeurHTML
	require('view/discographie.php');
	// fin de l'assemblage
	require('view/template.php');
}