noalyss Version-9
index.php
Go to the documentation of this file.
1<?php
2/*
3 * This file is part of NOALYSS.
4 *
5 * NOALYSS is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * NOALYSS is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with NOALYSS; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */
19
20/*!
21 * \file
22 * \brief default page where user access
23 */
24/*!
25 * \mainpage NOALYSS
26 * Documentation
27 * - \subpage Francais
28 * - \subpage English
29 *
30 * \page Francais
31 * \section intro_sec Introduction
32 *
33 * Cette partie contient de la documentation pour les développeurs.
34 *
35 * \section convention_code Convention de codage
36 * <p>
37 * Quelques conventions de codage pour avoir un code plus ou moins
38 * homogène
39 * <ol>
40 * <li>Tant que possible réutiliser ce qui existe déjà, </li>
41 * <li>Améliorer ce qui existe déjà et vérifier que cela fonctionne toujours</li>
42 * <li>Documenter avec les tags doxygen votre nouveau code,</li>
43 * <li>Dans le répertoire include: Les noms de fichiers sont *.inc.php pour les fichiers à exécuter</li>
44 * <li>Dans le répertoire include: Les noms de fichiers sont *.php pour les fichiers contenant des fonctions uniquement</li>
45 * <li>Dans le répertoire include: Les noms de fichier sont
46 * class_*.php pour les fichiers contenant des classes.</li>
47 * <li>Dans le répertoire include: Les noms de fichier ajax* correspondent aux fichiers appelé par une fonction javascript en ajax,
48 * normalement le nom de fichier est basé sur le nom de la fonction javascript
49 * exemple pour la fonction javascript anc_key_choice le fichier correspondant est
50 * ajax/ajax_anc_key_choice.php
51 * <li>Dans le répertoire include/template: les fichiers de
52 * présentation HTML </li>
53 * <li>Utiliser sql/upgrade.sql comme fichier temporaire pour modifier la base de données, en général
54 * ce fichier deviendra l'un des patch </li>
55 * <li>Faire de la doc </li>
56 * </ol>
57 *
58 * </p>
59 * \section conseil Conseils
60 * <p>
61 * Utiliser cette documentation, elle est générée automatiquement avec Doxygen,
62 * <ul>
63 * <li>Related contient tous les \\todo</li>
64 * <li>Global -> function pour lire toute la doc sur les fonctions</li>
65 * <li>Regarder dans dossier1.html et account_repository.html pour la doc des base de données
66 * </ul>
67 * et il ne faut connaître que ces tags
68 * <ul>
69 * <li> \\file en début de fichier</li>
70 * <li> \\todo ajouter un todo </li>
71 * <li> \\enum pour commenter une variable</li>
72 * <li> \\param pour commenter le paramètre d'une fonction</li>
73 * <li> \\brief Commentaire du fichier, de la fonction ou de la classe</li>
74 * <li> \\note des notes, des exemples</li>
75 * <li> \\throw or exception is a function can throw an exception
76 * <li> \\par to create a new paragraph
77 * <li> \\return ce que la fonction retourne</li>
78 * <li> \\code et \\endcode si on veut donner un morceau de code comme documentation</li>
79 * <li> \\verbatim et \\endverbatim si on veut donner une description d'un tableau, comme documentation</li>
80 * <li> \\see xxxx Ajoute un lien vers un fichier, une fonction ou une classe </li>
81 * </ul>
82 * ----------------------------------------------------------------------
83 * \page English
84 * \section intro_sec Introduction
85 *
86 * This parts contains documentation for developpers
87 *
88 * \section convention_code Coding convention
89 * <p>
90 * Some coding conventions to have a homogeneous code
91 * <ol>
92 * <li>Reuse the existing code , </li>
93 * <li>Improve and test that the function is still working</li>
94 * <li>Make documentation thanks doxygen tag</li>
95 * <li>In the folder include: filenames ending by *.inc.php will be executer after being included</li>
96 * <li>In the folder include: filenames end by *.php if they contains only function</li>
97 * <li>In the folder include: filenames starting with
98 * class_*.php if it is related to a class.</li>
99 * <li>In the folder include, files starting with ajax are executed by ajax call, usually, the file name is
100 * based on the javascript function, example for the javascript function anc_key_choice the corresponding file is
101 * ajax/ajax_anc_key_choice.php
102 *
103 * <li>In the folder include/template: files for the HTML presentation
104 * </li>
105 * <li>Use sql/upgrade.sql as temporary file to modify the database,this file will be the base for a SQL patch
106 * </li>
107 * <li>Write documentation </li>
108 * </ol>
109 *
110 * </p>
111 * \section advice Advices
112 * <p>
113 * Use this document, it is generated automatically by doxygen, check the documentation your made, read it first this
114 * documentation before making changes
115 * <ul>
116 * <li>Related contains all the \\todo</li>
117 * <li>Global -> all the functions</li>
118 * <li>check into mod1.html and account_repository.html for the database design
119 * </ul>
120 * You need to know only these tags
121 * <ul>
122 * <li> \\file in the beginning of a file</li>
123 * <li> \\todo add a todo </li>
124 * <li> \\enum comment a variable</li>
125 * <li> \\param about the parameter of a function</li>
126 * <li> \\brief Documentation of the file, function or class</li>
127 * <li> \\note note exemple</li>
128 * <li> \\throw or exception is a function can throw an exception
129 * <li> \\par to create a new paragraph
130 * <li> \\return what the function returns</li>
131 * <li> \\code and \\endcode code snippet given as example</li>
132 * <li> \\verbatim and \\endverbatim if we want to keep the formatting without transformation</li>
133 * <li> \\see xxxx create a link to the file, function or object xxxx </li>
134 * </ul>
135 */
136
137
138if (!file_exists('..'.DIRECTORY_SEPARATOR.'include'.DIRECTORY_SEPARATOR.'config.inc.php') )
139{
140 echo <<<EOF
141
142<script>
143window.location="install.php";
144</script>
145EOF;
146
147 header("Location: install.php", true, 307);
148
149 exit(0);
150}
151
152
153echo '<!doctype html><HTML>
154<head>
155<TITLE> NOALYSS </TITLE>
156<link rel="shortcut icon" type="image/ico" href="favicon.ico" />
157<meta name="viewport" content="width=device-width, initial-scale=1.0">
158<meta charset="UTF-8">
159<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" media="screen">
160<link rel="stylesheet" type="text/css" href="css/index.css" media="screen">
161<script src="js/prototype.js" type="text/javascript"></script>
162<script src="js/noalyss_script.js" type="text/javascript"></script>
163</head>
164<BODY>';
166require_once '../include/constant.php';
167require_once '../include/config.inc.php';
168require_once NOALYSS_INCLUDE.'/lib/ac_common.php';
169MaintenanceMode("block.html");
170
171if ( file_exists("install.php")&& DEBUGNOALYSS == 0 )
172{
173 // At the end of the installation procedure , the install file must be removed
174 if (isset($_GET['remove_install']))
175 {
176 if (is_writable(__DIR__."/install.php"))
177 {
178 unlink(__DIR__."/install.php");
179 }
180 }
181 // if removed failed then
182 if (file_exists("install.php"))
183 {
184 /*
185 * This file shouldn't exist
186 */
187 echo "<h1>";
188 printf(_("Le fichier %s/install.php est encore présent, après l'avoir exécuté pour vous mettre à jour, vous devez l'effacer."),
189 __DIR__);
190 echo "<br>";
191 echo _("Tant que ce n'est pas fait, vous ne pouvez pas utiliser NOALYSS");
192 echo "</h1>";
193 return;
194 }
195}
196
197/**
198 * Debug Design
199 */
200if ( DEBUGNOALYSS == 2 )
201{
202 echo <<<EOF
203<div class="d-none d-sm-block d-md-none d-lg-none d-xl-none bg-info">Small</div>
204<div class="d-none d-md-block d-lg-none bg-info">Medium</div>
205<div class="d-none d-lg-block d-xl-none bg-info">Large</div>
206<div class="d-none d-xl-block bg-info">X Large</div>
207EOF;
208}
209
210if (strlen(domaine)>0)
211{
212 $my_domain=sprintf(_("Domaine")." : %s", domaine);
213}
214
215if (defined("RECOVER")&&isset($_REQUEST['recover']))
216{
217 require_once '../include/recover.php';
218}
219// reconnect , create a variable to reconnect properly in login.php
221if (isset($_REQUEST['reconnect'])&&isset($_REQUEST['backurl']))
222{
223 $goto='<input type="hidden" value="'.strip_tags($_REQUEST['backurl']).'" name="backurl">';
224}
225?>
226<div>
227 <div class="d-sm-block">
228 <a href="https://www.noalyss.eu"><IMG SRC="image/logo9000.png" id="logo_id" alt="NOALYSS"></a>
229
230 </div>
231 <div class="container">
232
233 <div class="mx-auto" id="login_div" style="margin-top:10%">
234 <h1 style="text-align: center;color:darkblue;font-weight: 800">NOALYSS</h1>
235 <form id="login_frm" action="login.php" method="post" name="loginform" class="p-sm-3" >
236 <?php echo $goto; ?>
237
238
239 <div class="form-group row ">
240 <input type="text" class="input_text " value="" id="p_user" name="p_user" autofocus tabindex="1" placeholder="User" style="padding:10px;margin:15px" >
241 </div>
242
243 <div class="form-group row">
244 <INPUT TYPE="PASSWORD" class="input_text" value="" id="p_pass" NAME="p_pass" tabindex="2" placeholder="*******" style="padding:10px;margin:15px;">
245 </div>
246
247 <?php
248// if captcha is used
249 if (defined('NOALYSS_CAPTCHA') && NOALYSS_CAPTCHA==true) :
250 ?>
251 <div class="form-group row justify-content-center">
252 Indiquer le code que vous lisez dans l'image
253 <img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" border=1/>
254
255 <input type="text" class="input_text" name="captcha_code" size="10" maxlength="6" autocomplete="off"/>
256 <a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">Reload Image</a>
257 </div>
258 <?php
259 endif;
260 ?>
261 <div class="form-group row justify-content-center">
262 <INPUT TYPE="SUBMIT" class="button" style="width:91%;height:53px" NAME="login" value="se connecter">
263 </div>
264
265 </form>
266 <div>
267 <?php if (defined("RECOVER")) : ?>
268 <a id="recover_link" href="#">Mot de passe oublié ? </a>
269
270 <div id="recover_box">
271 <span style="display:block;font-size:120%;background-color: white;margin:0px">Recouvrement identifiant
272 <span style="cursor: pointer;float: right;position:relative;right:0px" id="close">
273 <a ref="#" id="close_link">&times;</a></span>
274 </span>
275 Indiquez votre login ou votre email
276 <form method="POST" style="padding:20px">
277 <input type="hidden" value="send_email" name="id">
278 <input type="hidden" value="recover" name="recover" >
279 <div class="form-group row ">
280 <label for="login">Login</label>
281 <input type="text" class="input_text " value="" name="login" placeholder="login" nohistory >
282 </div>
283
284 <div class="mx-auto info" style="background-color: darkgray;text-align: center;">OU </div>
285 <div class="form-group row ">
286 <label for="email">e-mail</label>
287
288 <input type="text" class="input_text" name="email" nohistory placeholder="email@domain.eu">
289 </div>
290 <input type="submit" class="button" name="send_email" value="Envoi email">
291 <input type="button" class="button" id="close_link_bt" value="Annuler">
292 </div>
293 </div>
294 <script>
295 document.getElementById('recover_link').onclick = function () {
296 document.getElementById('recover_box').style.display = "block";
297 }
298 document.getElementById('close_link').onclick = function () {
299 document.getElementById('recover_box').style.display = "none";
300 }
301 document.getElementById('close_link_bt').onclick = function () {
302 document.getElementById('recover_box').style.display = "none";
303 }
304 </script>
305 <?php endif; ?>
306
307 <span id="info_noalyss">
308 version <?=NOALYSS_VERSION?> - <?php echo $my_domain; ?>
309 </SPAN>
310
311 </div>
312 </div>
313 </div>
314 <script> SetFocus('p_user');</script>
315
316 </body>
317 </html>
318
MaintenanceMode($p_file)
When you want to prevent users to connect, create a file in noalyss/ (NOALYSS_BASE) with the message ...
Definition: ac_common.php:1663
h1($p_string, $p_class="")
Definition: ac_common.php:72
$opd_description style
$_REQUEST['ac']
$from_poste name
$input_from type
Definition: balance.inc.php:65
$_GET['qcode']
$anc_filter placeholder
for($e=0; $e< count($afiche); $e++) exit
$my_domain
Definition: index.php:165
if(file_exists("install.php")&&DEBUGNOALYSS==0) if(DEBUGNOALYSS==2) if(strlen(domaine)>0) if(defined("RECOVER")&&isset($_REQUEST['recover'])) $goto
Debug Design.
Definition: index.php:220
domaine
Definition: install.php:370