galaxy.php 14.6 KB
Newer Older
Feu's avatar
Feu committed
1
<?php
Feu's avatar
test    
Feu committed
2
3
4
5
6
7
/* Copyright 2007
 *
 * - Julien Etelain < julien at pmad dot net >
 *
 * "AE Recherche & Developpement" : Galaxy
 *
Ayolo's avatar
Ayolo committed
8
 * Ce fichier fait partie du site de l'Association des étudiant
Feu's avatar
test    
Feu committed
9
10
11
 * de l'UTBM, http://ae.utbm.fr.
 *
 * This program is free software; you can redistribute it and/or
Ayolo's avatar
Ayolo committed
12
 * modify it under the terms of the GNU General Public License a
Feu's avatar
test    
Feu committed
13
14
15
16
17
18
19
20
21
22
23
24
25
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 * 02111-1307, USA.
 */
26

Feu's avatar
Feu committed
27
28
29
30
$topdir = "./";

require_once($topdir. "include/site.inc.php");
require_once($topdir. "include/galaxy.inc.php");
Feu's avatar
Feu committed
31
require_once($topdir . "include/cts/sqltable.inc.php");
Feu's avatar
Feu committed
32
33

$site = new site ();
Feu's avatar
Feu committed
34
35
36
37
$site->allow_only_logged_users("rd");

if ( !$site->user->utbm && !$site->user->ae )
  $site->error_forbidden("matmatronch","group",10001);
38

Feu's avatar
Feu committed
39
40
$galaxy = new galaxy($site->db,$site->dbrw);

Feu's avatar
wip    
Feu committed
41
42
43
44
// trichons un peu...

$GLOBALS["entitiescatalog"]["utilisateur"][3]="galaxy.php";

45
$ready = $galaxy->is_ready_public();
Feu's avatar
Feu committed
46
47
48
49

if ( !$ready )
{
  if ( $_REQUEST["action"] == "area_image" || $_REQUEST["action"] == "area_html"  )
50
    exit();
Feu's avatar
Feu committed
51
  $site->fatal_partial();
52
  exit();
Feu's avatar
Feu committed
53
}
Feu's avatar
wip    
Feu committed
54

Feu's avatar
Feu committed
55
56
57
define('AREA_WIDTH',500);
define('AREA_HEIGHT',500);

Feu's avatar
Feu committed
58
59
if ( $_REQUEST["action"] == "area_image" || $_REQUEST["action"] == "area_html"  )
{
60
  $lastModified = gmdate('D, d M Y H:i:s', filemtime("var/mini_galaxy.png") ) . ' GMT';
Feu's avatar
Feu committed
61
62
63
64
65
66
67
68
69
70
71
72
  $etag=md5($_SERVER['SCRIPT_FILENAME']."?".$_SERVER['QUERY_STRING'].'#'.$lastModified);

  if ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) )
  {
    $ifModifiedSince = preg_replace('/;.*$/', '', $_SERVER['HTTP_IF_MODIFIED_SINCE']);
    if ($lastModified == $ifModifiedSince)
    {
      header("HTTP/1.0 304 Not Modified");
      header('ETag: "'.$etag.'"');
      exit();
    }
  }
73

74
75
76
  if ( isset($_SERVER['HTTP_IF_NONE_MATCH']) )
  {
    if ( $etag == str_replace('"', '',stripslashes($_SERVER['HTTP_IF_NONE_MATCH'])) )
Feu's avatar
Feu committed
77
78
79
80
81
82
    {
      header("HTTP/1.0 304 Not Modified");
      header('ETag: "'.$etag.'"');
      exit();
    }
  }
83
84
  header("Cache-Control: must-revalidate");
  header("Pragma: cache");
Feu's avatar
Feu committed
85
86
87
88
89
  header("Last-Modified: ".$lastModified);
  header("Cache-Control: public");
  header('ETag: "'.$etag.'"');
}

Feu's avatar
Feu committed
90
91
if ( $_REQUEST["action"] == "area_image" )
{
Feu's avatar
Feu committed
92
  $highlight = null;
93

Feu's avatar
Feu committed
94
95
  if ( isset($_REQUEST["highlight"]) )
    $highlight = explode(",",$_REQUEST["highlight"]);
96

Feu's avatar
Feu committed
97
  header("Content-type: image/png");
Feu's avatar
Feu committed
98
  $galaxy->render_area ( intval($_REQUEST['x']), intval($_REQUEST['y']), AREA_WIDTH, AREA_HEIGHT, null, $highlight );
Feu's avatar
Feu committed
99
100
101
  exit();
}

Feu's avatar
Feu committed
102
103
if ( $_REQUEST["action"] == "area_html" )
{
104
105
106
    header("Content-Type: text/html; charset=utf-8");
    $tx = intval($_REQUEST['x']);
    $ty = intval($_REQUEST['y']);
107
108

  if ( isset($_REQUEST["highlight"]) )
Feu's avatar
Feu committed
109
  echo "<div style=\"position:relative;\"><img src=\"?action=area_image&amp;x=$tx&amp;y=$ty&amp;highlight=".$_REQUEST["highlight"]."\" style=\"position:absolute;top:0px;left:0px;\" />";
Feu's avatar
test    
Feu committed
110
  else
Feu's avatar
Feu committed
111
  echo "<div style=\"position:relative;\"><img src=\"?action=area_image&amp;x=$tx&amp;y=$ty\" style=\"position:absolute;top:0px;left:0px;\" />";
112
113


Feu's avatar
Feu committed
114
115
116
117
118
119
120
  $x1 = $tx;
  $y1 = $ty;
  $x2 = $tx+(AREA_WIDTH);
  $y2 = $ty+(AREA_HEIGHT);
  $req = new requete($site->db, "SELECT ".
    "rx_star, ry_star, id_star ".
    "FROM  galaxy_star ".
121
    "WHERE rx_star >= $x1 AND rx_star <= $x2 AND ry_star >= $y1 AND ry_star <= $y2" );
Feu's avatar
Feu committed
122
123
  while($row = $req->get_row() )
  {
Feu's avatar
fix    
Feu committed
124
    $x = $row["rx_star"]-$tx-3;
125
    $y = $row["ry_star"]-$ty-3;
Feu's avatar
test    
Feu committed
126
127
    $id = $row["id_star"];
    echo "<a href=\"galaxy.php?id_utilisateur=$id\" id=\"g$id\" onmouseover=\"show_tooltip('g$id','./','utilisateur','$id');\" onmouseout=\"hide_tooltip('g$id');\" style=\"position:absolute;left:".$x."px;top:".$y."px;width:6px;height:6px;overflow:hidden;\" >&nbsp;</a>";
Feu's avatar
Feu committed
128
  }
Feu's avatar
Feu committed
129
  echo"</div>";
Feu's avatar
Feu committed
130
131
132
  exit();
}

Feu's avatar
test    
Feu committed
133
134
135
if ( $_REQUEST["action"] == "info" )
{
  $user_a = new utilisateur($site->db);
Feu's avatar
test    
Feu committed
136
  $user_a->load_by_id($_REQUEST["id_utilisateur_a"]);
137

Feu's avatar
test    
Feu committed
138
  $user_b = new utilisateur($site->db);
Feu's avatar
test    
Feu committed
139
  $user_b->load_by_id($_REQUEST["id_utilisateur"]);
140

141
142
    if ( !$user_a->is_valid() || !$user_b->is_valid() )
        $site->error_not_found("rd");
143

mbriand's avatar
mbriand committed
144
145
146
147
148
149
  $site->start_page("matmatronch","galaxy");
  $cts = new contents($user_a->prenom." ".$user_a->nom);
  $tabs = $user_a->get_tabs($site->user);
  $cts->add(new tabshead($tabs,"galaxy"));

  $cts->add_title(2,"Cacul du score \"galaxy\" : ".$user_a->get_html_link()." - ".$user_b->get_html_link());
Feu's avatar
blabla    
Feu committed
150

Feu's avatar
test    
Feu committed
151
  $total=0;
152

Feu's avatar
test    
Feu committed
153
  $reasons = new itemlist();
154

Feu's avatar
test    
Feu committed
155
156
157
158
159
160
161
162
  $req = new requete($site->db, "SELECT COUNT( * ) as c ".
    "FROM `sas_personnes_photos` AS `p1` ".
    "JOIN `sas_personnes_photos` AS `p2` ON ( p1.id_photo = p2.id_photo ".
    "AND p1.id_utilisateur != p2.id_utilisateur ) ".
    "WHERE p1.id_utilisateur='".intval($user_a->id)."' AND p2.id_utilisateur='".intval($user_b->id)."' ");

  list($nbphotos) = $req->get_row();

Feu's avatar
Feu committed
163
  $total += round($nbphotos/GALAXY_SCORE_1PTPHOTO);
Feu's avatar
test    
Feu committed
164

Feu's avatar
Feu committed
165
  $reasons->add("$nbphotos photos ensemble : ".round($nbphotos/GALAXY_SCORE_1PTPHOTO)." points");
Feu's avatar
test    
Feu committed
166
167
168
169

  $req = new requete($site->db, "SELECT COUNT(*) ".
    "FROM `parrains` ".
    "WHERE (id_utilisateur='".intval($user_a->id)."' AND id_utilisateur_fillot='".intval($user_b->id)."') ".
Feu's avatar
test    
Feu committed
170
    "OR (id_utilisateur='".intval($user_b->id)."' AND id_utilisateur_fillot='".intval($user_a->id)."')");
171

Feu's avatar
test    
Feu committed
172
  list($nbpar) = $req->get_row();
173

Feu's avatar
Feu committed
174
  $total += $nbpar*GALAXY_SCORE_PARRAINAGE;
175

Feu's avatar
Feu committed
176
  $reasons->add("$nbpar lien de parrainage : ".($nbpar*GALAXY_SCORE_PARRAINAGE)." points");
177

Feu's avatar
test    
Feu committed
178
179
180
181
  $req = new requete($site->db,"SELECT asso.nom_asso, a.id_asso,
  SUM(DATEDIFF(LEAST(COALESCE(a.date_fin,NOW()),COALESCE(b.date_fin,NOW())),GREATEST(a.date_debut,b.date_debut))) AS together
  FROM asso_membre AS a
  JOIN asso_membre AS b ON
182
  (
Feu's avatar
test    
Feu committed
183
  b.id_utilisateur='".intval($user_b->id)."'
Feu's avatar
test    
Feu committed
184
  AND a.id_asso = b.id_asso
Feu's avatar
Feu committed
185
  AND DATEDIFF(LEAST(COALESCE(a.date_fin,NOW()),COALESCE(b.date_fin,NOW())),GREATEST(a.date_debut,b.date_debut)) >= ".GALAXY_SCORE_1PTJOURSASSO."
Feu's avatar
test    
Feu committed
186
187
  )
  INNER JOIN asso ON (asso.id_asso = a.id_asso)
188
  WHERE a.id_utilisateur='".intval($user_a->id)."'
Feu's avatar
test    
Feu committed
189
  GROUP BY a.id_asso");
190

Feu's avatar
test    
Feu committed
191
192
  while ( $row = $req->get_row() )
  {
Feu's avatar
Feu committed
193
194
    $reasons->add($row["together"]." jours ensemble à ".$row["nom_asso"]." : ".round($row["together"]/GALAXY_SCORE_1PTJOURSASSO,3)." points");
    $total += $row["together"]/GALAXY_SCORE_1PTJOURSASSO;
195
196
  }

Feu's avatar
test    
Feu committed
197
  $reasons->add("<b>Total: ".round($total)." points</b>");
198

Feu's avatar
Feu committed
199
200
  if ( round($total) < GALAXY_MINSCORE )
    $reasons->add("<i>Score trop faible pour le lien puisse être considéré comme pertinent</i>");
201

Feu's avatar
test    
Feu committed
202
  $cts->add($reasons);
203

Feu's avatar
blabla    
Feu committed
204
205
  $cts->add_title(2,"A propos de galaxy");
  $cts->add_paragraph("<a href=\"article.php?name=rd:galaxy\">Explications sur ce qu'est et ce que n'est pas galaxy</a>");
Feu's avatar
test    
Feu committed
206
207
  $site->add_contents($cts);
  $site->end_page();
208
  exit();
Feu's avatar
test    
Feu committed
209
210
}
elseif ( isset($_REQUEST["id_utilisateur"]) )
Feu's avatar
Feu committed
211
212
213
{
  $user = new utilisateur($site->db,$site->dbrw);
  $user->load_by_id($_REQUEST["id_utilisateur"]);
214

215
216
    if ( !$user->is_valid() )
        $site->error_not_found("rd");
217

mbriand's avatar
mbriand committed
218
219
220
221
  $site->start_page("matmatronch","galaxy");
  $cts = new contents($user->prenom." ".$user->nom);
  $tabs = $user->get_tabs($site->user);
  $cts->add(new tabshead($tabs,"galaxy"));
222

Feu's avatar
Feu committed
223
  $req = new requete($site->db,"SELECT rx_star,ry_star FROM galaxy_star WHERE id_star='".mysql_real_escape_string($user->id)."'");
Feu's avatar
Feu committed
224

225
  if ( $user->publique < 1 )
mbriand's avatar
mbriand committed
226
227
228
229
  {
    $cts->add_paragraph("C'est utilisateur n'est pas présent dans galaxy car son profil n'est pas publique.");
    if ($user->id==$site->user->id)
      $cts->add_paragraph("Pour apparaitre dans galaxy, vous devez rendre votre profil publique ".
mbriand's avatar
mbriand committed
230
          "<a href=\"http://ae.utbm.fr/taiste/user.php?id_utilisateur=".$site->user->id."&page=edit\">en éditant votre fiche Matmatronch</a>.".
mbriand's avatar
mbriand committed
231
232
          "Vous serez alors automatiquement intégré à galaxy à condition d'être lié à d'autres utilisateurs.");
  }
233
  elseif ( $req->lines == 0 )
Feu's avatar
Feu committed
234
  {
mbriand's avatar
mbriand committed
235
236
    $cts->add_paragraph("C'est utilisateur n'est pas présent dans galaxy.");
    $cts->add_paragraph("Deux raisons peuvent expliquer cela : soit cet utilisateur n'a pas assez de liens avec les autres pour que son ajout ait un sens, soit le profil de cet utilisateur n'est pas publique ou a été rendu publique récemment.");
Feu's avatar
Feu committed
237
238
239
240
  }
  else
  {
    list($rx,$ry) = $req->get_row();
241

Feu's avatar
Feu committed
242
    $cts->add_title(2,"Localisation");
243

Feu's avatar
Feu committed
244
    $hl = $user->id;
245

Feu's avatar
Feu committed
246
247
248
249
250
251
252
253
    $req = new requete($site->db,
    "SELECT id_star_a
    FROM galaxy_link
    WHERE id_star_b='".mysql_real_escape_string($user->id)."'
    UNION
    SELECT id_star_b
    FROM galaxy_link
    WHERE id_star_a='".mysql_real_escape_string($user->id)."'");
254

Feu's avatar
Feu committed
255
256
    while (list($id) = $req->get_row() )
      $hl .= ",".$id;
257

Feu's avatar
Feu committed
258
    $tx = intval($rx-375);
259
    $ty = intval($ry-250);
Feu's avatar
test    
Feu committed
260

Feu's avatar
test    
Feu committed
261
262
263
$site->add_css("css/galaxy.css");
$site->add_js("js/galaxy.js");

Feu's avatar
Feu committed
264
$cts->puts("<div class=\"viewer\" id=\"viewer\">
Feu's avatar
test    
Feu committed
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
<div class=\"square\" id=\"square0\"></div>
<div class=\"square\" id=\"square1\"></div>
<div class=\"square\" id=\"square2\"></div>
<div class=\"square\" id=\"square3\"></div>
<div class=\"square\" id=\"square4\"></div>
<div class=\"square\" id=\"square5\"></div>
<div class=\"square\" id=\"square6\"></div>
<div class=\"square\" id=\"square7\"></div>
<div class=\"square\" id=\"square8\"></div>
<div class=\"square\" id=\"square9\"></div>
<div class=\"square\" id=\"square10\"></div>
<div class=\"square\" id=\"square11\"></div>
<div class=\"square\" id=\"square12\"></div>
<div class=\"square\" id=\"square13\"></div>
<div class=\"square\" id=\"square14\"></div>
<div class=\"square\" id=\"square15\"></div>
Feu's avatar
Feu committed
281
<div class=\"map\" id=\"map\"><img src=\"var/mini_galaxy.png\" />
282
283
284
<div class=\"position\" id=\"position\"></div></div></div><script>init_galaxy($tx,$ty,\"&highlight=$hl\");</script>");


Feu's avatar
Feu committed
285
    $req = new requete($site->db,
286
    "SELECT length_link, ideal_length_link,
mbriand's avatar
mbriand committed
287
    tense_link, COALESCE(surnom_utbm, CONCAT(prenom_utl,' ',nom_utl), alias_utl) AS nom_utilisateur,
288
    utilisateurs.id_utilisateur
Feu's avatar
Feu committed
289
290
    FROM galaxy_link
    INNER JOIN utilisateurs ON ( id_star_a=id_utilisateur)
291
    INNER JOIN `utl_etu_utbm` ON (`utl_etu_utbm`.`id_utilisateur` = `utilisateurs`.`id_utilisateur`)
Feu's avatar
Feu committed
292
293
    WHERE id_star_b='".mysql_real_escape_string($user->id)."'
    UNION
294
    SELECT length_link, ideal_length_link,
mbriand's avatar
mbriand committed
295
    tense_link, COALESCE(surnom_utbm, CONCAT(prenom_utl,' ',nom_utl), alias_utl) AS nom_utilisateur,
296
    utilisateurs.id_utilisateur
Feu's avatar
Feu committed
297
298
    FROM galaxy_link
    INNER JOIN utilisateurs ON ( id_star_b=id_utilisateur)
299
    INNER JOIN `utl_etu_utbm` ON (`utl_etu_utbm`.`id_utilisateur` = `utilisateurs`.`id_utilisateur`)
Feu's avatar
Feu committed
300
    WHERE id_star_a='".mysql_real_escape_string($user->id)."'
Feu's avatar
Feu committed
301
    ORDER BY 1");
302

Feu's avatar
Feu committed
303
304
    $tbl = new sqltable(
      "listvoisins",
Feu's avatar
test    
Feu committed
305
306
      "Personnes liées", $req, "galaxy.php?id_utilisateur_a=".$user->id,
      "id_utilisateur",
Feu's avatar
Feu committed
307
      array("length_link"=>"Distance réelle","ideal_length_link"=>"Distance cible","tense_link"=>"Score","nom_utilisateur"=>"Nom"),
Feu's avatar
test    
Feu committed
308
      array("info"=>"Infos"), array(), array( )
Feu's avatar
Feu committed
309
      );
310
311
    $cts->add($tbl,true);

Feu's avatar
blabla    
Feu committed
312
    $cts->add_paragraph("Le score par lien est calculé à partir du nombre de photos où vous êtes tous deux présents, les liens de parrainage, et le temps inscrits dans les mêmes clubs et associations. Ensuite le score permet de déterminer la longueur du lien en fonction du score maximal de tous les liens de chaque personne. Cliquer sur l'icone \"infos\" pour connaitre le calcul du score");
313

Feu's avatar
Feu committed
314
    $req = new requete($site->db,
315
    "SELECT SQRT(POW(a.x_star-b.x_star,2)+POW(a.y_star-b.y_star,2)) AS dist,
mbriand's avatar
mbriand committed
316
    COALESCE(surnom_utbm, CONCAT(prenom_utl,' ',nom_utl), alias_utl) AS nom_utilisateur,
317
    utilisateurs.id_utilisateur
Ayolo's avatar
bleh    
Ayolo committed
318
    FROM galaxy_star AS a, galaxy_star AS b, utilisateurs
319
    INNER JOIN `utl_etu_utbm` ON (`utl_etu_utbm`.`id_utilisateur` = `utilisateurs`.`id_utilisateur`)
320
    WHERE a.id_star='".mysql_real_escape_string($user->id)."'
Feu's avatar
Feu committed
321
    AND a.id_star!=b.id_star
mbriand's avatar
bleh    
mbriand committed
322
    AND b.id_star=`utilisateurs`.`id_utilisateur`
323
    AND POW(a.x_star-b.x_star,2)+POW(a.y_star-b.y_star,2) < 4
Feu's avatar
Feu committed
324
    ORDER BY 1");
325
326


Feu's avatar
Feu committed
327
328
329
330
331
332
333
    $tbl = new sqltable(
      "listvoisins",
      "Voisinnage", $req, "galaxy.php?id_utilisateur=".$user->id,
      "id_star",
      array("dist"=>"Distance","nom_utilisateur"=>"Nom"),
      array(), array(), array( )
      );
334
335
    $cts->add($tbl,true);

Feu's avatar
wip    
Feu committed
336
    $cts->add_paragraph("Il est possible que de nombreuses personnes soient dans votre \"voisinnage\" par pur harsard. Cependant en général il s'agit soit de personnes liées soit de personnes avec un profil similaire.");
337
338
  }

Feu's avatar
blabla    
Feu committed
339
340
341
  $cts->add_title(2,"A propos de galaxy");
  $cts->add_paragraph("<a href=\"article.php?name=rd:galaxy\">Explications sur ce qu'est et ce que n'est pas galaxy</a>");

Feu's avatar
Feu committed
342
343
  $site->add_contents($cts);
  $site->end_page();
344
  exit();
Feu's avatar
Feu committed
345
346
347
}


mbriand's avatar
mbriand committed
348
349
$site->start_page("matmatronch","Galaxy");
$cts = new contents("Galaxy");
Feu's avatar
Feu committed
350

Feu's avatar
Feu committed
351
352
353
$site->add_css("css/galaxy.css");
$site->add_js("js/galaxy.js");

Feu's avatar
test    
Feu committed
354
list($top_x,$top_y,$bottom_x,$bottom_y) = $galaxy->limits();
Feu's avatar
Feu committed
355

Feu's avatar
test    
Feu committed
356
357
358
359
$top_x = floor($top_x);
$top_y = floor($top_y);
$bottom_x = ceil($bottom_x);
$bottom_y = ceil($bottom_y);
360

Feu's avatar
Feu committed
361
$goX = (($bottom_x-$top_x)*50)-375;
Feu's avatar
test    
Feu committed
362
$goY = (($bottom_y-$top_y)*50)-250;
363

Feu's avatar
wip    
Feu committed
364
$cts->add_title(2,"Voici galaxy");
365

Feu's avatar
Feu committed
366
$cts->puts("<div class=\"viewer\" id=\"viewer\">
Feu's avatar
Feu committed
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
<div class=\"square\" id=\"square0\"></div>
<div class=\"square\" id=\"square1\"></div>
<div class=\"square\" id=\"square2\"></div>
<div class=\"square\" id=\"square3\"></div>
<div class=\"square\" id=\"square4\"></div>
<div class=\"square\" id=\"square5\"></div>
<div class=\"square\" id=\"square6\"></div>
<div class=\"square\" id=\"square7\"></div>
<div class=\"square\" id=\"square8\"></div>
<div class=\"square\" id=\"square9\"></div>
<div class=\"square\" id=\"square10\"></div>
<div class=\"square\" id=\"square11\"></div>
<div class=\"square\" id=\"square12\"></div>
<div class=\"square\" id=\"square13\"></div>
<div class=\"square\" id=\"square14\"></div>
<div class=\"square\" id=\"square15\"></div>
Feu's avatar
Feu committed
383
<div class=\"map\" id=\"map\"><img src=\"var/mini_galaxy.png\" />
384
<div class=\"position\" id=\"position\"></div></div></div><script>init_galaxy($goX,$goY,\"\");</script>");
Feu's avatar
test    
Feu committed
385

Feu's avatar
Feu committed
386
//$cts->add_paragraph("<a href=\"var/galaxy.png\">Tout galaxy sur une seule image</a>");
Feu's avatar
Feu committed
387

Feu's avatar
test    
Feu committed
388
$frm = new form("galaxygo",$topdir."galaxy.php",true,"GET","Aller vers une personne");
Feu's avatar
wip    
Feu committed
389
390
391
392
393
$frm->add_entity_smartselect("id_utilisateur","Nom/Surnom",new utilisateur($site->db));
$frm->add_submit("go","Y aller");

$cts->add($frm,true);

Feu's avatar
blabla    
Feu committed
394
395
396
397
$cts->add_title(2,"A propos de galaxy");
$cts->add_paragraph("<a href=\"article.php?name=rd:galaxy\">Explications sur ce qu'est et ce que n'est pas galaxy</a>");


Feu's avatar
Feu committed
398
399
400
$site->add_contents($cts);
$site->end_page();

Ayolo's avatar
Ayolo committed
401
?>