Guest User

seb

a guest
Oct 19th, 2009
146
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ###############################################################################
  2. # Serveur Helene - A digital library management system.
  3. #
  4. # Copyright (C) 2001-2009 by The Serveur Helene Developers (see AUTHORS file).
  5. #
  6. # Serveur Helene comes with ABSOLUTELY NO WARRANTY.
  7. #
  8. # This is free software, placed under the terms of the
  9. # GNU General Public License, as published by the Free Software
  10. # Foundation; either version 2 of the License, or (at your option) any
  11. # later version. Please see the file LICENSE for details.
  12. #
  13. # Web Page: http://www.serveur-helene.org/
  14. ###############################################################################
  15.  
  16. #! /usr/local/bin/perl
  17.  
  18. =pod
  19.  
  20. =head1 COPYRIGHT
  21.  
  22. This file is part of Serveur Helene (helene_webserver package)
  23.  
  24. Copyright (c) BrailleNet 2004 - All rights reserved
  25.  
  26. Author: Benoit Guillon <benoit.guillon@snv.jussieu.fr>
  27.  
  28. This program is NOT a free software. It CANNOT be redistributed
  29. or modified without the agreement of BrailleNet.
  30.  
  31. This program comes with ABSOLUTELY NO WARRANTY
  32.  
  33. $Id: website.pm 552 2009-09-04 13:54:13Z abernier $
  34.  
  35. =cut
  36.  
  37. ###############################################################################################
  38. ## Helene::website
  39. ## 2002-08-01
  40. ##
  41. ## Provides functions to create the HTML pages dynamically.
  42. ## Output information depends on the group of the current user
  43.  
  44. package Helene::website;
  45.  
  46. use strict;
  47. use CGI;
  48. use Helene::session;
  49. use Helene::param qw(:DEFAULT);
  50. use Helene::menu;
  51. use Helene::lang qw(:DEFAULT);
  52. use Helene::errors qw(:DEFAULT);
  53.  
  54. sub maintainance_mode
  55. {
  56. return 0;
  57. }
  58.  
  59. #################################################################
  60. # language_form
  61. # in : -
  62. # out : -
  63. # Displays the formular to switch the language
  64.  
  65. sub language_form {
  66.  
  67. my %languages = ('fr_FR', "Français",
  68. 'en_US'=>"English",
  69. 'it_IT'=>"Italiano");
  70.  
  71. print "<div class='lang_choose'><form method='post' action=''><label for='ln_lang'>".i18n("langue").":</label>&nbsp;<select class='select_lang_choose' name='ln_lang' id='ln_lang'>";
  72.  
  73. while(my($id, $label) = each(%languages)){
  74. print "<option value=\"$id\" lang=\"$id\">$label</option>";
  75. }
  76. print "</select><input class='submit_lang_choose' type='submit' value='ok'/></form></div>";
  77.  
  78. }
  79.  
  80.  
  81. ################################################################################################
  82. ## top
  83. ## displays the top of the HTML page. (logo, title, session information, quick search form, menu
  84. ## in: $session (Helene::session, the current session)
  85. ## $title (the title of the HTML page
  86. ## out:
  87.  
  88. sub top{
  89. my ($title, $isdocument, $querystring) = @_;
  90.  
  91. if($main::g_Session->is_library_mode()){
  92. &top_library($title, $isdocument, $querystring);
  93. }
  94. else{
  95. &top_normal($title, $isdocument, $querystring);
  96. }
  97. }
  98.  
  99.  
  100. sub top_library{
  101. my ($title, $isdocument, $querystring) = @_;
  102.  
  103. my $cgi = new CGI;
  104. my $lang = substr($main::g_Session->{'lang'}, 0, 2);
  105.  
  106. print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  107. print "<!DOCTYPE html\n";
  108. print "PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n";
  109. print "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
  110. print "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"".$lang."\" xml:lang=\"".$lang."\"><head>\n";
  111. print "<title>Bibliothèque Hélène - $title</title>\n";
  112.  
  113.  
  114. print "<link rev=\"made\" href=\"mailto:helene%40snv.jussieu.fr\" />";
  115. print "<link rel=\"stylesheet\" type=\"text/css\" href=\"".LN_HTML_WEB_DIR."/css/library.css\"/>";
  116.  
  117. print "</head>\n";
  118. print "<body>\n";
  119.  
  120. print Helene::html_shortcuts::html_invisible(i18n("Acces direct au contenu"), "#content");
  121.  
  122. print "<a id='top' name='top'/>\n";
  123.  
  124.  
  125. if($main::g_Session->{'user'}->{'usRights'}){
  126. if($main::g_Session->{'user'}->is_admin()){ # If the current user is an administrator, display the admin tool bar
  127. &admintoolbar();
  128. }
  129. }
  130. else{
  131. &bordertop(); # layout
  132. }
  133.  
  134. print "<table border='0' cellpadding='10' width='100%' class='top'>\n";
  135. print "<tr><td width='200'>\n";
  136.  
  137. print "<a href='http://www.braillenet.org'><img border='0' src='".LN_HTML_WEB_DIR."/images/logo_braillenet.gif' alt=\"".i18n("Logo BrailleNet - page d'accueil du site BrailleNet")."\"/></a></td>\n";
  138. print "<td align='center'>\n";
  139. print $cgi->h1("Bibliothèque Hélène");
  140. print "</td><td align='right' width='200'>\n";
  141. $main::g_Session->html_display($cgi);
  142. print "</td></tr></table>\n";
  143.  
  144. print "<form action='".LN_CGI_WEB_DIR."/books/quick.pl' method='post'>\n";
  145.  
  146. &maintoolbar($querystring);
  147.  
  148. print "</form>\n";
  149.  
  150. if(!$isdocument){
  151. print "<div class='maindiv'>\n";
  152. print "<a id='content' name='content'/>\n";
  153. print Helene::html_shortcuts::html_invisible(i18n("Acces direct au menu"), "#menu0");
  154. print Helene::html_shortcuts::html_invisible(i18n("Haut de page"), "#top");
  155. }
  156. $main::g_Session->check_auth();
  157. $main::g_Session->{'html_headers_sent'} = 1;
  158.  
  159. }
  160.  
  161. sub top_normal{
  162. my ($title, $isdocument, $querystring) = @_;
  163.  
  164. my $cgi = new CGI;
  165. my $lang = substr($main::g_Session->{'lang'}, 0, 2);
  166.  
  167. print "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
  168. print "<!DOCTYPE html\n";
  169. print "PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\"\n";
  170. print "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n";
  171. print "<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"".$lang."\" xml:lang=\"".$lang."\"><head>\n";
  172. print "<title>Serveur Hélène - $title</title>\n";
  173.  
  174.  
  175. print "<link rev=\"made\" href=\"mailto:helene%40snv.jussieu.fr\" />";
  176. print "<link rel=\"stylesheet\" type=\"text/css\" href=\"".LN_HTML_WEB_DIR."/css/helene.css\"/>";
  177.  
  178. print "";
  179. print "</head>\n";
  180. print "<body>\n";
  181.  
  182. print Helene::html_shortcuts::html_invisible(i18n("Acces direct au contenu"), "#content");
  183.  
  184. print "<a id='top' name='top'/>\n";
  185.  
  186.  
  187. if($main::g_Session->{'user'}->{'usRights'}){
  188. if($main::g_Session->{'user'}->is_admin()){ # If the current user is an administrator, display the admin tool bar
  189. &admintoolbar();
  190. }
  191. elsif($main::g_Session->{'user'}->is_pub()){ # If the current user is a publisher
  192. &pubtoolbar();
  193. }
  194.  
  195. elsif($main::g_Session->{'user'}->is_cts()){ # If the current user is a transcriptor, display the CTS tool bar
  196. &ctstoolbar();
  197. }
  198. }
  199. else{
  200. &bordertop(); # layout
  201. }
  202.  
  203. print "<table border='0' cellpadding='10' width='100%' class='top'>\n";
  204. print "<tr><td width='200'>\n";
  205.  
  206. print "<a href='http://www.braillenet.org'><img border='0' src='".LN_HTML_WEB_DIR."/images/logo_braillenet.gif' alt=\"".i18n("Logo BrailleNet - page d'accueil du site BrailleNet")."\"/></a></td>\n";
  207. print "<td align='center'>\n";
  208. print $cgi->h1("Serveur Hélène");
  209. print "</td><td align='right' width='200'>\n";
  210. $main::g_Session->html_display($cgi);
  211. print "</td></tr></table>\n";
  212.  
  213. print "<form action='".LN_CGI_WEB_DIR."/books/quick.pl' method='post'>\n";
  214.  
  215. &maintoolbar($querystring);
  216.  
  217. print "</form>\n";
  218.  
  219. if(!$isdocument){
  220. print "<div class='maindiv'>\n";
  221. print "<a id='content' name='content'/>\n";
  222. print Helene::html_shortcuts::html_invisible(i18n("Acces direct au menu"), "#menu0");
  223. print Helene::html_shortcuts::html_invisible(i18n("Haut de page"), "#top");
  224. }
  225. $main::g_Session->check_auth();
  226. $main::g_Session->{'html_headers_sent'} = 1;
  227. }
  228.  
  229.  
  230.  
  231. ############################################################################################
  232. # printable_top
  233. #
  234. # in = title
  235. # out = -
  236.  
  237. sub printable_top{
  238. my ($title) = @_;
  239.  
  240. my $cgi = new CGI;
  241. print $cgi->start_html(-title=>"Serveur Helene - $title",
  242. -author=>"braillenet\@snv.jussieu.fr",
  243. -lang=>"fr",
  244. -style=>{'src'=>LN_HTML_WEB_DIR."/css/printable.css"});
  245.  
  246. print "<h1>Association BrailleNet</h1>";
  247. print "<p class='subtitle'>Internet pour l'integration scolaire, professionnelle et sociale des personnes handicapees valuelles</p>";
  248. print "<p class='Address'>Adresse: UPMC, 9 quai St Bernard, boite 23, F-75252 Paris Cedex05<br/>Tel 01 44 27 34 35 - Fax 01 44 27 34 38<br/>Adresse e-mail: braillenet\@snv.jussieu.fr</p>";
  249.  
  250. print "<p class='Date'>Paris, le ".Helene::tools::date_fr(Helene::tools::get_mysql_today_date())."</p>";
  251.  
  252. }
  253.  
  254. ##############################################################################################
  255. ## bordertop
  256. ## layout - when the user is not logged
  257. ## in:
  258. ## out:
  259.  
  260.  
  261. sub bordertop{
  262.  
  263. print "<table border='0' cellpadding='0' cellspacing='0' width='100%' class='toolbar'>\n";
  264. print "<tr><td>\n";
  265. if(LN_MULTILANG){
  266. &language_form();
  267. }
  268. else{
  269. print "<br/>\n";
  270. }
  271. print "</td></tr>\n";
  272. print "</table>\n";
  273.  
  274. }
  275.  
  276. #############################################################################################
  277. ## maintoolbar
  278. ## displays the main tool bar, in the top of the HTML page
  279. ## in:
  280. ## out:
  281.  
  282. sub maintoolbar{
  283. my ($querystring) = @_;
  284.  
  285. print "<table border='0' cellpadding='4' cellspacing='0' width='100%' class='toolbar'>\n";
  286. print "<tr><td class='menu' align='left'>\n";
  287. print "<label for='quicksearch'>".i18n("Recherche").":</label>&nbsp;<input type='text' size='20' name='query' id='quicksearch' value=\"$querystring\"/>&nbsp;<input type='submit' value='".i18n("Rechercher")."' class='submit'/>\n";
  288. print "</td>\n";
  289. print "<td class='menu' align='right'>";
  290. print "<a href='".LN_CGI_WEB_DIR."/index.pl' class='menu' title=\"".i18n("Page d'accueil")."\">".i18n("accueil")."</a> | ";
  291. print "<a href='".LN_CGI_WEB_DIR."/books/catalog.pl' class='menu' title=\"".i18n("Liste de tous les ouvrages presents sur le Serveur Helene")."\">".i18n("catalogue")."</a> | ";
  292. print "<a href='".LN_CGI_WEB_DIR."/books/adsearch.pl' class='menu' title=\"".i18n("Rechercher un ouvrage dans le catalogue selon differents criteres")."\">".i18n("recherche avancee")."</a> | ";
  293. if ( ! $main::g_Session->is_library_mode() ) {
  294. print "<a href='".LN_CGI_WEB_DIR."/partners/index.pl"."' class='menu' title=\"".i18n("Liste des centres de transcription partenaires")."\">".i18n("partenaires")."</a> | <a href='".LN_ABOUT_URL."' class='menu' title=\"".i18n("Description du projet Serveur Helene")."\">".i18n("a propos")."</a> | <a href='".LN_HELP_URL."' class='menu' title=\"".i18n("obtenir de l'aide sur l'utilisation du Serveur Helene")."\">".i18n("aide")."</a>\n";
  295. }
  296. # if(Helene::users::is_admin()){
  297. # print " | <a href='".LN_CGI_WEB_DIR."/index.pl?switch_mode=1' class='menu' title=\"".i18n("acceder a la bibliotheque pour les personnes handicapees visuelles")."\">".i18n("bibliotheque")."</a>";
  298. # }
  299. print "</td>\n";
  300. print "</tr>\n";
  301. print "</table>\n";
  302. }
  303.  
  304. #############################################################################################
  305. ## maintoolbar
  306. ## displays the main tool bar, in the top of the HTML page
  307. ## in:
  308. ## out:
  309.  
  310. # sub maintoolbar_library{
  311. # my ($querystring) = @_;
  312. #
  313. # print "<table border='0' cellpadding='4' cellspacing='0' width='100%' class='toolbar'>\n";
  314. # print "<tr><td class='menu' align='left'>\n";
  315. # print "<label for='quicksearch'>".i18n("Recherche").":</label>&nbsp;<input type='text' size='20' name='query' id='quicksearch' value=\"$querystring\"/>&nbsp;<input type='submit' value='".i18n("Rechercher")."' class='submit'/>\n";
  316. # print "</td>\n";
  317. # print "<td class='menu' align='right'>";
  318. # print "<a href='".LN_CGI_WEB_DIR."/index.pl' class='menu' title=\"".i18n("Page d'accueil")."\">".i18n("accueil")."</a> | ";
  319. # print "<a href='".LN_CGI_WEB_DIR."/users/reader_registration.pl' class='menu' title=\"".i18n("Inscription a la bibliotheque")."\">".i18n("inscription")."</a> | ";
  320. # print "<a href='".LN_CGI_WEB_DIR."/books/catalog.pl' class='menu' title=\"".i18n("Liste de tous les ouvrages presents sur le Serveur Helene")."\">".i18n("catalogue")."</a> | ";
  321. # print "<a href='".LN_CGI_WEB_DIR."/books/adsearch.pl' class='menu' title=\"".i18n("Rechercher un ouvrage dans le catalogue selon differents criteres")."\">".i18n("recherche avancee")."</a> | ";
  322. # print "<a href='".LN_ABOUT_URL."' class='menu' title=\"".i18n("Description du projet Serveur Helene")."\">".i18n("a propos")."</a> | <a href='".LN_HELP_URL."' class='menu' title=\"".i18n("obtenir de l'aide sur l'utilisation du Serveur Helene")."\">".i18n("aide")."</a> | \n";
  323. # print "<a href='".LN_CGI_WEB_DIR."/index.pl?switch_mode=2' class='menu' title=\"".i18n("acceder au serveur Helene pour l'edition adaptee")."\">".i18n("serveur")."</a>";
  324. # print "</td>\n";
  325. # print "</tr>\n";
  326. # print "</table>\n";
  327. #}
  328.  
  329.  
  330.  
  331. ###############################################################################################
  332. ## admintoolbar
  333. ## displays the administration tool bar, in the top of the HTML page
  334. ## in:
  335. ## out:
  336.  
  337. sub admintoolbar{
  338.  
  339. print "<table border='0' cellpadding='4' cellspacing='0' width='100%' class='admintoolbar'>\n";
  340. print "<tr><td class='menu' align='left'><span class='bold'>".i18n("Administration").":</span></td>\n";
  341. print "<td align='right' class='menu'><a href='".LN_CGI_WEB_DIR."/auth/list.pl' class='menu'>".i18n("autorisations")."</a> | ";
  342. print "<a href='".LN_CGI_WEB_DIR."/books/add.pl' class='menu' title=\"".i18n("ajouter une nouvelle notice")."\">".i18n("nouvelle notice")."</a> | ";
  343. print "<a href='".LN_CGI_WEB_DIR."/validation/list.pl' class='menu' title=\"".i18n("liste des notices entrees par les centres partenaires")."\">".i18n("base temporaire")."</a> | ";
  344. print "<a href='".LN_CGI_WEB_DIR."/users/index.pl' class='menu' title=\"".i18n("gestion des utilisateurs")."\">".i18n("utilisateurs")."</a> | ";
  345. print "<a href='".LN_CGI_WEB_DIR."/publishers/index.pl' class='menu' title=\"".i18n("gestion des editeurs")."\">".i18n("editeurs")."</a> | ";
  346. print "<a href='".LN_CGI_WEB_DIR."/stats/index.pl' class='menu' title=\"".i18n("statistiques de telechargements et de depôts de fichiers")."\">".i18n("statistiques")."</a> | ";
  347. print "<a href='".LN_CGI_WEB_DIR."/news/index.pl' class='menu' title=\"".i18n("gestion des informations presentes sur la page d'accueil")."\">".i18n("breves")."</a> | ";
  348. print "<a class='menu' title=\"".i18n("envoi des messages electroniques aux utilisateurs")."\" href='".LN_CGI_WEB_DIR."/email/index.pl'>".i18n("e-mails")."</a> | ";
  349. print "<a href='".LN_CGI_WEB_DIR."/trash/list.pl' class='menu' title=\"".i18n("liste des elements supprimes")."\">".i18n("corbeille")."</a>\n";
  350.  
  351. print "</td>\n";
  352. print "</tr>\n";
  353. print "</table>\n";
  354. }
  355.  
  356.  
  357. ###############################################################################################
  358. ## pubtoolbar
  359. ## displays the pub tool bar, in the top of the HTML page
  360. ## in:
  361. ## out:
  362.  
  363. sub pubtoolbar{
  364.  
  365. print "<table border='0' cellpadding='4' cellspacing='0' width='100%' class='admintoolbar'>\n";
  366. print "<tr><td class='menu' align='left'><span class='bold'>".i18n("Transcription et autorisations").":</span></td>\n";
  367. print "<td align='right' class='menu'><a href='".LN_CGI_WEB_DIR."/auth/list.pl' class='menu' title=\"".i18n("gestion des autorisations")."\">".i18n("autorisation")."</a> | ";
  368. print "<a href='".LN_CGI_WEB_DIR."/stats/formats_rates.pl' class='menu' title=\"".i18n("repartition des formats")."\">".i18n("formats")."</a> | ";
  369. print "<a href='".LN_CGI_WEB_DIR."/books/add.pl' class='menu' title=\"".i18n("ajouter une nouvelle notice")."\">".i18n("nouvelle notice")."</a>\n";
  370.  
  371. print "</td>\n";
  372. print "</tr>\n";
  373. print "</table>\n";
  374. }
  375.  
  376.  
  377. ##############################################################################################
  378. ## ctstoolbar
  379. ## displays the cts tool bar, in the top of the HTML page
  380. ## in:
  381. ## out:
  382.  
  383. sub ctstoolbar{
  384.  
  385. print "<table border='0' cellpadding='4' cellspacing='0' width='100%' class='admintoolbar'>\n";
  386. print "<tr><td class='menu' align='left'><span class='bold'>".i18n("Centres de transcription").":</span></td>\n";
  387. print "<td align='right' class='menu'><a href='".LN_CGI_WEB_DIR."/stats/formats_rates.pl' class='menu' title=\"".i18n("repartition des formats")."\">".i18n("formats")."</a> | <a href='".LN_CGI_WEB_DIR."/books/add.pl' class='menu' title=\"".i18n("ajouter une nouvelle notice")."\">".i18n("nouvelle notice")."</a>\n";
  388. print "</td>\n";
  389. print "</tr>\n";
  390. print "</table>\n";
  391. }
  392.  
  393. ###############################################################################################
  394. ## bottom
  395. ## displays the bottom of the HTML page (hr, back to the top of the page, contact, link, copyright
  396. ## in:
  397. ## out:
  398.  
  399. sub bottom{
  400. my ($isdocument) = @_;
  401. Helene::menu::check_menus();
  402. if(!$isdocument){
  403. print "</div>\n";
  404. }
  405. print "<hr width='100%'/>\n";
  406. print "<p><a href='http://validator.w3.org/check/referer'><img border='0' align='right' src='http://www.w3.org/Icons/valid-xhtml10' alt='Valid XHTML 1.0!' height='31' width='88' /></a></p>";
  407. print "<p class='bottom'><a href='#top'>".i18n("Haut de page")."</a> | <a href='mailto:helene\@snv.jussieu.fr'>".i18n("Contactez-nous")."</a> | <a href='http://www.braillenet.org'>Braillenet</a><br/>&copy;BrailleNet, 2007<br/>version: ".LN_VERSION."</p>\n";
  408.  
  409. print "</body></html>\n";
  410.  
  411. $main::g_Session->{'html_bottom_sent'} = 1;
  412. }
  413.  
  414. ##############################################################################################
  415. ## auth_form
  416. ## in: $cgi_query (CGI.pm, a CGI object to re-post information after authentication
  417. ## out:
  418.  
  419. sub auth_form{
  420. my $cgi_query = new CGI;
  421.  
  422. print "<form method='post' action=''>";
  423. Helene::tools::cgi_to_hidden($cgi_query);
  424. print "<table border='1' align='center' cellspacing='0'>";
  425. print "<tr><th class='auth'>".i18n("Authentification")."</th></tr><tr><td>";
  426. print "<table border='0' align='center'>";
  427. print "<tr><td>";
  428. print "<input type='hidden' name='authquery' value='1'/>";
  429. print "<label for='login'>".i18n("Login").":</label></td><td><input id='login' type='text' size='20' name='login'/></td></tr>";
  430. print "<tr><td><label for='mdp'>".i18n("Mot de passe").":</label></td><td><input id='mdp' type='password' size='20' name='password'/></td></tr>";
  431. print "<tr><td colspan='2' align='center'><input type='submit' value='".i18n("Enregistrement")."' class='submit'/></td></tr></table>";
  432. print "</td></tr></table>";
  433. print "</form>";
  434. }
  435.  
  436.  
  437. sub non_admin_error{
  438.  
  439. print "<h2 class='error'>".i18n("Erreur d'authentification")."</h2>";
  440.  
  441. print "<p class='error'>".i18n("Vous voulez acceder a une page reservee aux administrateurs, sans en avoir le droit.")."<br/>";
  442. print i18n("Pour ouvrir une nouvelle session, remplissez le formulaire ci-dessous").":</p>";
  443. &auth_form();
  444. }
  445.  
  446. sub non_auth_error{
  447.  
  448. print "<h2 class='error'>".i18n("Erreur d'authentification")."</h2>";
  449.  
  450. print "<p class='error'>".i18n("Vous voulez acceder a une page necessitant une identification sur le serveur.")."<br/>";
  451. print i18n("Pour ouvrir une nouvelle session, remplissez le formulaire ci-dessous").":</p>";
  452. &auth_form();
  453. }
  454.  
  455. sub dont_use_this_site{
  456. my $serverHost = LN_SERVERHOSTNAME;
  457. print "<h2 class='error'>".i18n("Erreur d'authentification")."</h2>";
  458.  
  459. print "<p class='error'>Merci d'utiliser $serverHost pour vos telechargements.<br/>";
  460. }
  461.  
  462. sub non_cts_error{
  463. print "<h2 class='error'>".i18n("Erreur d'authentification")."</h2>";
  464. print "<p class='error'>".i18n("Vous voulez acceder a une page reservee aux centres de transcription ou aux administrateurs, sans en avoir le droit.")."<br/>";
  465. print i18n("Pour ouvrir une nouvelle session, remplissez le formulaire ci-dessous").":</p>";
  466. &auth_form();
  467. }
  468.  
  469. sub non_partner_error{
  470. print "<h2 class='error'>".i18n("Erreur d'authentification")."</h2>";
  471.  
  472. print "<p class='error'>".i18n("Vous voulez acceder a une page reservee aux centres partenaires, sans en avoir le droit.")."<br/>";
  473. print i18n("Pour ouvrir une nouvelle session, remplissez le formulaire ci-dessous").":</p>";
  474. &auth_form();
  475. }
  476.  
  477. sub incompleteRequest
  478. {
  479. # print "<h2 class='error'>".i18n("Requete incomplete")."</h2>";
  480. # print "<p class='error'>".i18n("Certains parametres obligatoires n'ont pas ete specifies.")."<br/>";
  481. throw_error(1, 1, 1);
  482. }
  483.  
  484. #############################################################################################
  485.  
  486. 1;
  487.  
RAW Paste Data