#!/usr/bin/perl # # REF: resoolinkadmin.pl # ResooSite v.0.9.6.5 -(p)Resoo 2002-2005 # (c)2005 - pascal blain / GNU GPL - General Public License # http://www.resoo.com/resoosite # pascal@resoo.org # require "resooconf.pl"; $query = $ENV{'QUERY_STRING'}; &parse_form; &get_date; &get_variables; ######## recuperation des variables ######## ##################################################### # Obtenir les informations du formulaire - Subroutine sub parse_form { # recevoir les variables read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # partager les variables en paire ( nom , valeur ) @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $value =~ s///g; $value =~ s/<([^>]|\n)*>//g; $FORM{$name} = $value; } } ################################################### # Mettre les champs dans des variables - Subroutine sub get_variables { if ($FORM{'page'}) { $page = "$FORM{'page'}"; } else { $page = "$query"; } if ($FORM{'titre'}) { $titre = "$FORM{'titre'}"; $renew = $titre; &unword; &ctrlline; $titre = $renew; } if ($FORM{'retour'}) { $retour = "$FORM{'retour'}"; } else { $retour = "$defautretour"; } if ($FORM{'retourold'}) { $retourold = "$FORM{'retourold'}"; } if ($FORM{'creation'}) { $creation = "$FORM{'creation'}"; } if ($FORM{'maj'}) { $maj = "$FORM{'maj'}"; } if ($FORM{'auteur'}) { $auteur = "$FORM{'auteur'}"; } if ($FORM{'resume'}) { $resume = "$FORM{'resume'}"; $renew = $resume; &unword; $resume = $renew; $resume =~ s/\n/
/g; } if ($FORM{'note'}) { $note = "$FORM{'note'}"; $renew = $note; &unword; &ctrlline; $note = $renew; } # if ($FORM{'lettrine'}) { if ($FORM{'linkRsort'}) { $linkRsort = "$FORM{'linkRsort'}"; } if ($FORM{'linkSsort'}) { $linkSsort = "$FORM{'linkSsort'}"; } if ($FORM{'linkLsort'}) { $linkLsort = "$FORM{'linkLsort'}"; } # if ($FORM{'codehtml'}) { if ($FORM{'link_space'}) { $link_space = "$FORM{'link_space'}"; } # if ($FORM{'coderesoohtml'}) { if ($FORM{'GUI'}) { $GUI = "$FORM{'GUI'}"; } if ($FORM{'codepage'}) { $codepage = "$FORM{'codepage'}"; } # if ($FORM{'article'}) { # } if ($FORM{'actual'}) { $actual = "$FORM{'actual'}"; } if ($FORM{'codeconsole'}) { $codeconsole = "$FORM{'codeconsole'}"; if ($codeconsole eq "M"){ $linkcode0 = "$FORM{'linkcode0'}"; $linkcode1 = "$FORM{'linkcode1'}"; $linkcode2 = "$FORM{'linkcode2'}"; $linkcode3 = "$FORM{'linkcode3'}"; $linkcode4 = "$FORM{'linkcode4'}"; } } if ($FORM{'linkline'}) { $linkline = "$FORM{'linkline'}"; if ($FORM{'linklinectrl0'}) {$linklinectrl0 = "$FORM{'linklinectrl0'}";} else {$linklinectrl0 = "0";} if ($FORM{'linklinectrl1'}) {$linklinectrl1 = "$FORM{'linklinectrl1'}";} else {$linklinectrl1 = "0";} } if ($FORM{'action'}) { $action = "$FORM{'action'}"; } if ($FORM{'verif'}) { $verif = "$FORM{'verif'}"; } else { $verif = "0"; } if ($FORM{'util'}) { $util = "$FORM{'util'}"; if ($util eq "LINK_GUI"){ ## la requete vient de la console publique if ($gui_su) { ## et super admin est d'accord if ($gui_control) { ## si super admin impose password if ($FORM{'passlink'}) { $passlink = "$FORM{'passlink'}"; chomp($passlink); $passlink =~ s/\r//g; $passlink =~ s/\n/ /g; ##### a voir: controle du nombre de caractères $util = "users"; $action = ""; &verify_GUI; } else { &erreurpass2; } } else { ## si super admin n'impose PAS password $util = "users"; $codeconsole = "M"; $codepage = 1; $verif = 9; $action = 5; &action; } } else { ## et super admin n'est PAS d'accord &erreurpass2; } } else{ if ($FORM{'pass'}) { $pass = "$FORM{'pass'}"; &verify; } else { $verif = ( $verif + 1 ); &page_verify; } } } else { &page_verify; } } ######## affichage page mot de passe ######## sub page_verify { &page_tete; if ($verif == 2) { print "$fontgrande\n"; print "Votre mot de passe n'est pas valide,
\n"; print "merci de contacter \n"; print "l'administrateur du site $dir.
\n"; print "$finfontgrande\n"; } else { print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Utilisateur: $finfont
$font Mot de passe: $finfont
\n"; print "
\n"; if ($verif == 1) { print "
\n"; print "$fontstitre\n"; print "deuxième essai\n"; print "$finfontstitre\n"; } else { print "
\n"; print "$fontpetite\n"; print "premier essai\n"; print "$finfontpetite\n"; } print "
"; print "Accès au mode Super-Administrateur... cliquez ici!\n"; print "
\n"; if ($bbs > 1) { print "Administration Forum... cliquez ici!\n"; print "
\n"; } } &page_pied; } ######## verification mot de passe ######## sub verify { open(MAIN,"$private/$util.txt") || &erreurpass; @main =
; close(MAIN); foreach $main_line (@main) { $passcrypt = &resoocrypt($pass); if ($main_line =~ /^$passcrypt$/) { if ($action > 0) { &action; } else { $verif = "9"; #condition du titre page_admin $action = "0"; &page_admin; } } else { &erreurpass; } } } sub verify_GUI { open(MAIN,"$private/$util.pass") || &erreurpass2; @main =
; close(MAIN); foreach $main_line (@main) { chomp $main_line; if (($main_line =~ /^LNK$passlink$/) or ($main_line =~ /^ALL$passlink$/)) { $codeconsole = "M"; $codepage = 1; $verif = 9; #condition du titre page_erreur $action = 5; } } if ($action == 5) { &action; } else { &erreurpass2; } } sub erreurpass { $verif = ( $verif + 1 ); &page_verify; } sub erreurpass2 { $verif = 2; &page_verify; } ######## administration du site ######## sub page_admin { &page_tete; if (($page>0) or ($page eq "link")) { open(MAIN2,"$dir_txt/$page.idx"); @main2 = ; close (MAIN2); $titreold = $main2[0]; $titreold =~ s/\n//; $renew = $titreold; &unword; $titreold = $renew; $titreold =~ s/\"/\"\;/g; $retourold = $main2[1]; $retourold =~ s/\n//; $creationold = $main2[2]; $creationold =~ s/\n//; $majold = $main2[3]; # inutile $majold =~ s/\n//; $auteurold = $main2[4]; $auteurold =~ s/\n//; $resumeold = $main2[5]; $resumeold =~ s/\n//; $renew = $resumeold; &unword; $resumeold = $renew; $noteold = $main2[6]; $noteold =~ s/\n//; $noteold =~ s/\"/\"\;/g; $codepageold = $main2[9]; $codepageold =~ s/\n//; $link_sort = $main2[7]; $link_sort =~ s/\n//; @link_sort = split(/\|/,$link_sort); $linkRsortold = @link_sort[0]; $linkSsortold = @link_sort[1]; $linkLsortold = @link_sort[2]; $link_spaceold = $main2[8]; $link_spaceold =~ s/\n//; $GUIold = $main2[10]; $GUIold =~ s/\n//; print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "


\n"; print "
\n"; print "
\n"; if ($page ne "link"){ print "\n"; print "\n"; } else { print "\n"; } print "\n"; if ($page ne "link") { print "\n"; } else { print "\n"; } print "\n"; if ($page ne "link") { print "\n"; print "\n"; print "\n"; print ""; if ($gui_su){ print "\n"; } else { print "> oui non$finfont\n"; } } else { print "\n"; } print "\n"; } else { print "> double simple$finfont\n"; } print "\n"; print "\n"; } elsif ($linkRsortold == 2) { print "> ordre de saisie saisie inverse alpha$finfont\n"; } else { print "> ordre de saisie saisie inverse alpha$finfont\n"; } print "\n"; } elsif ($linkSsortold == 2) { print "> ordre de saisie saisie inverse alpha$finfont\n"; } else { print "> ordre de saisie saisie inverse alpha$finfont\n"; } print "\n"; } elsif ($linkLsortold == 2) { print "> ordre de saisie saisie inverse alpha$finfont\n"; } else { print "> ordre de saisie saisie inverse alpha$finfont\n"; } &hidden; print "\n"; print "\n"; print "\n"; print "\n"; if ($page ne "link") { print "\n"; print "
$font Réactivation: $finfont$font oui \n"; print " non $finfont
$font Mise à jour du: $finfont \n"; print " $fontpetite (article créé le $creationold"; if ($majold) { print " - m.a.j. du $majold"; } print ") $finfontpetite
$font Titre: $finfont
$font Titre: $finfont $fontstitre$linktitre$finfontstitre
$font Email auteur: $finfont
$font Retour: $finfont"; if ($retourfiles > 1) { print "\n"; } else { foreach $key (sort keys %indexfiles) { print ""; print "$key\n"; } } } print ""; print "
$font Présentation: $finfont
$font Note: $finfont
$font Console utilisateur: $finfont$font oui non$finfont
$font Option non disponible (cf. super administrateur)$finfont
$font Espacement: $finfont$font double simple$finfont
$font Classement: $finfont
$font Rubriques: $finfont$font ordre de saisie saisie inverse alpha$finfont
$font Sous-rubriques: $finfont$font ordre de saisie saisie inverse alpha$finfont
$font Liens: $finfont$font ordre de saisie saisie inverse alpha$finfont

\n"; print "
\n"; print "
\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; } else { print "\n"; } print "

\n"; print "
\n"; &creation_liens; print "
\n"; print "\n"; print "\n"; print "

$fonttitre Autre(s) choix:$finfonttitre
\n"; print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "
\n"; print "\n"; print "\n"; print "\n"; if ($bbs > 1) { print "\n"; print "\n"; } print "

$fontAccès au mode Super-Administrateur... cliquez ici!$finfont

$fontAdministration Forum... cliquez ici!$finfont

\n"; print "$fontpetite
 
\n"; print "en cas de difficulté, merci de contacter \n"; print "l'administrateur du site $title.
\n"; print "
$finfontpetite\n"; } else { print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print ""; if ($gui_su){ print "\n"; } else { print "\n"; } print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Date de création: $finfont
$font Titre: $finfont
$font Email auteur: $finfont
$font Retour: $finfont"; if ($retourfiles > 1) { print "\n"; } else { foreach $key (sort keys %indexfiles) { print ""; print "$key\n"; } } print "
$font Présentation: $finfont
$font Note: $finfont
$font Console utilisateur: $finfont$font oui non$finfont
$font Option non disponible (cf. super administrateur)$finfont
$font Espacement: $finfont$font double simple$finfont
$font Classement: $finfont
$font Rubriques: $finfont$font ordre de saisie saisie inverse alpha$finfont
$font Sous-rubriques: $finfont$font ordre de saisie saisie inverse alpha$finfont
$font Liens: $finfont$font ordre de saisie saisie inverse alpha$finfont


\n"; print "
\n"; print "
\n"; print "\n"; print "\n"; print "

$fonttitre Autre(s) choix:$finfonttitre
\n"; print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "

\n"; print "
\n"; print "\n"; print "\n"; print "\n"; if ($bbs > 1) { print "\n"; print "\n"; } print "

$fontAccès au mode Super-Administrateur... cliquez ici!$fintfont

$fontAdministration Forum... cliquez ici!$finfont

\n"; print "$fontpetite
 
\n"; print "en cas de difficulté, merci de contacter \n"; print "l'administrateur du site $title.
\n"; print "
$finfontpetite\n"; } &page_pied; } sub console_linkadmin { ######################################################## ## codes console: ## aucun : affichage formulaire creation (sans message) ## C : affichage formulaire creation (avec message) ## CL: creation lien ## CR: creation rubrique ## CS: creation sous-rubrique ## M : affichage formulaire modification ## ML: modification lien ## MR: modification rubrique ## MS: modification sous-rubrique ## D : suppression &linkutil; ## affichage résultat d'opération if ($codeconsole eq "C"){ print "$font Opération réalisée avec succès !! $finfont

\n"; } print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "


\n"; ## affichage console modif ## modification de lien if ($codeconsole eq "MR"||$codeconsole eq "MS"||$codeconsole eq "ML"){ @linkline = split(/\|/,$linkline); print "$font Modification: $finfont
\n"; print "
\n"; print "
\n"; if ($codeconsole eq "MS"||$codeconsole eq "ML"){ if ($codeconsole eq "ML"){ print "\n"; print "\n"; if ($codeconsole eq "ML"){ print "\n"; } elsif ($codeconsole eq "MS"){ print "\n"; } else{ print "\n"; } print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Lien $finfont"; if ($TRsort + $TSsort) { print "$font fils de $finfont"; print "\n"; print "\n"; print "\n"; print "
$font Sous-rubrique $finfont"; if ($TRsort) { print "$font fille de $finfont"; print "\n"; } else{ print "
$font Rubrique $finfont"; print "\n"; print "\n"; } print "
$font Titre: $finfont $font (*) $finfont
$font URL: $finfont $font (**) $finfont
$font Description: $finfont
\n"; print "
\n"; print "$fontpetite (*): champs obligatoire pour un commentaire / (**): champs obligatoire pour un lien $finfontpetite\n"; print "

\n"; print "

\n"; print "
\n"; } ## liste modification de lien @lnk=@Tsort; print "
\n"; foreach $line (@lnk) { @line = split(/\|/,$line); $linkline = "@line[1]|@line[2]|@line[3]|@line[0]|@line[4]"; if (@line[3] eq "."){ print ""; print "\n"; print "\n"; print "\n"; } elsif (@line[3] eq ".."){ print ""; print "\n"; print "\n"; print "\n"; } else{ if (@line[3]){ print ""; } else { print ""; } print "\n"; print "\n"; print "\n"; } } print "
$font Rub: @line[0] $finfont
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font S/rub: @line[0] $finfont
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Lien: @line[0] $finfont
$font Comm: @line[0] $finfont
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; &creation_liens; print "
\n"; print "\n"; print "\n"; print "

$fonttitre Autre(s) choix:$finfonttitre
\n"; } ######## entete et pied de page ######## sub page_tete { print "Content-type: text/html\; charset=ISO-8859-1\n\n"; &head; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
\n"; print "$font\n"; if (-e "$dir_txt/$retour.txt") { print "\n"; } else { print "\n"; } print "
\n"; print "$fonttitre\n"; if ( $verif == 9 ) { if ( $action == "4" ) { print "Oups ! Erreur...\n"; } else { if ($page) { if ($action == "1") { print "Création article lien\n"; } elsif ($action == "5") { print "Administration des liens\n"; } else { if ($page == "link"){ print "Modification $linktitre\n"; } else { print "Suppression / Modification\n"; } } } else { print "Création article lien\n"; } } } else { print "Saisie du mot de passe $fontstitre(administrateur)$finfontstitre\n"; } print "$finfonttitre

\n"; print "Si vous avez un problème avec cette page, merci d'en informer "; print "l'administrateur de ce site
\n"; print "$finfont\n"; print "
\n"; print "$font\n"; print "\ \;
\ \;\n"; print "$finfont\n"; print "
\n"; print "$font \ \;
\n"; } sub page_pied { print "$finfont\n"; print "
\n"; print "$font\n"; if (-e "$dir_txt/$retour.txt") { print "\n"; } else { print "\n"; } print "
\n"; &foot; } ######## routines "action" ######## # action = 1 (creation) # action = 2 (modification) # action = 3 (suppression) # action = 4 (erreur) # action = 5 (gestion des liens) sub action { ✓ # verifie les champs obligatoire if ($action == 3) { $delfic1 = "$dir_txt/$page.txt"; unlink ($delfic1); $delfic2 = "$dir_txt/$page.idx"; unlink ($delfic2); $delfic3 = "$dir_comp/$page.cmp"; unlink ($delfic3); } elsif ($action == 5 ) { if ($codeconsole eq "D") { ## controle code enfant pour rubrique et sous rubrique open(MAIN4,"$dir_txt/$page.txt") || die $!; @lnk=; close(MAIN4); open(MAIN5,">$dir_txt/$page.txt") || die $!; foreach $line(@lnk){ if ($line ne "$linkline\n"){ if ($linklinectrl1){ ## suppression sous rubrique $line =~ s/^$linklinectrl0\|$linklinectrl1\|/$linklinectrl0\|0\|/; } elsif ($linklinectrl0){ ## sinon suppression rubrique $line =~ s/^$linklinectrl0\|/0\|/; } print MAIN5 $line; } } close(MAIN5); $codeconsole = "C"; } if ($codeconsole eq "M") { ## controle code enfant pour sous rubrique if ($linkcode0 =~ /.*\|.*/){ $newlinkline = "$linkcode0|$linkcode2|$linkcode3|$linkcode4\n"; } else{ $newlinkline = "$linkcode0|$linkcode1|$linkcode2|$linkcode3|$linkcode4\n"; } if ($linkline){ open(MAIN4,"$dir_txt/$page.txt") || die $!; @lnk=; close(MAIN4); open(MAIN5,">$dir_txt/$page.txt") || die $!; foreach $line(@lnk){ if ($line ne "$linkline\n"){ if ($linklinectrl1){ ## modif de sous rubrique $line =~ s/^$linklinectrl0\|$linklinectrl1\|/$linkcode0\|$linklinectrl1\|/; } print MAIN5 $line; } } print MAIN5 "$newlinkline"; close(MAIN5); } else{ open(MAIN5,">>$dir_txt/$page.txt") || die $!; print MAIN5 "$newlinkline"; close(MAIN5); } $codeconsole = "C"; } } elsif ($action != 4 ) { ## si creation, recuperer le numero de fichier if ($action == 1) { &get_numb; $page = "$numb"; ## creer ou ecraser le fichier txt open(MAIN5,">$dir_txt/$page.txt") || die $!; print MAIN5 ""; close(MAIN5); } ## creer ou ecraser le fichier idx open(MAIN4,">$dir_txt/$page.idx") || die $!; print MAIN4 "$titre\n"; print MAIN4 "$retour\n"; print MAIN4 "$creation\n"; print MAIN4 "$maj\n"; print MAIN4 "$auteur\n"; print MAIN4 "$resume\n"; print MAIN4 "$note\n"; print MAIN4 "$linkRsort|$linkSsort|$linkLsort\n"; ### lettrine print MAIN4 "$link_space\n"; ### codehtml print MAIN4 "$codepage\n"; print MAIN4 "$GUI\n"; ### coderesoohtml close(MAIN4); } if ($page ne "link") { &maj_index; } &page_tete; print "$fontgrande\n"; if ($action == 1) { print "Création de page terminée :
\n"; print "Page \# $page

\n"; } if ($action == 2) { print "Modification de page terminée :
\n"; print "Page \# $page

\n"; } if ($action == 3) { print "Suppression de page terminée

\n"; } if ($action == 4) { print "Erreur: champs \"$error\" $mesgerror.

\n"; print "$font\n"; print "utiliser le bouton retour de votre navigateur pour revenir au formulaire prédédent.

\n"; print "$finfont\n"; } if (($action == 5) and ($util ne "users")) { &console_linkadmin; } if (($util eq "users") and ($action != 4)) { print "Création de lien acceptée :
\n"; print "Retour page précédente

\n"; } if ($util ne "users") { print "
\n"; print "
\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "

\n"; print "


\n"; } print "$finfontgrande\n"; print "$font\n"; print "...
\n"; print "$finfont\n"; &page_pied; } sub check { if (($action != 3) and ($action != 5)) { # si suppression ou modif lien, on passe # if (!$article) { # $error = "article"; # $action = "4"; # $mesgerror = "non servi"; # } if (!$resume) { $error = "résumé"; $action = 4; $mesgerror = "non servi"; } if (!$titre) { $error = "titre"; $action = 4; $mesgerror = "non servi"; } if (($page ne "link") and (!($creation =~ /^(\d{2})\/(\d{2})\/(\d{4})$/))) { $error = "date de création"; $action = 4; $mesgerror = "non valide"; } if (($maj) and (!($maj =~ /^(\d{2})\/(\d{2})\/(\d{4})$/))) { $error = "date de mise a jour"; $action = 4; $mesgerror = "non valide"; } if (($auteur) and (!($auteur =~ /^\S+\@\S+$/))) { $error = "email auteur"; $action = 4; $mesgerror = "non valide"; } } if (($action == 5) and ($codeconsole eq "M")) { if ($linkcode2 eq "."||$linkcode2 eq ".."){ if (!$linkcode3){ $error = "obligatoire"; $action = 4; $mesgerror = "non servi"; } } else{ if ((!$linkcode2) and (!$linkcode3)){ $error = "obligatoire"; $action = 4; $mesgerror = "non servi"; } if (($linkcode2) and (!($linkcode2 =~ /^\S+$/))){ $error = "URL"; $action = "4"; $mesgerror = "URL incorrecte (les espaces sont interdits)"; } if (($linkcode2) and (!$linkcode3)){ $linkcode3 = $linkcode2; } } } } sub maj_index { if (($action != 4) and ($action != 5)) { # si pas d'erreur &maj_date; if ( $retour ne $retourold ) { open(MAIN6,"$dir_txt/$retour.lst") || die $!; @art = ; close (MAIN6); if ($action != 3) { #si ce n'est pas une suppression open(MAIN6,">$dir_txt/$retour.lst") || die $!; # cree la nouvelle ligne print MAIN6 "$page\n"; # recopie le reste du fichier foreach $line (@art) { print MAIN6 "$line"; } } close(MAIN6); if ($action != 1) { #si ce n'est pas une creation open(MAIN7,"$dir_txt/$retourold.lst") || die $!; @artold = ; close (MAIN7); open(MAIN7,">$dir_txt/$retourold.lst") || die $!; foreach $line (@artold) { # cherche et supprime l'ancienne ligne if ($line =~ /^$page$/) { $line = "" } # recopie le reste du fichier print MAIN7 "$line"; } close(MAIN7); } } else { if ($actual != 1) { # si actualisation non invalide open(MAIN6,"$dir_txt/$retour.lst") || die $!; @art = ; close (MAIN6); open(MAIN6,">$dir_txt/$retour.lst") || die $!; if ($action != 3) { #si ce n'est pas une suppression # cree la nouvelle ligne print MAIN6 "$page\n"; } foreach $line (@art) { if ($action != 1) { #si ce n'est pas une creation # cherche et supprime l'ancienne ligne if ($line =~ /^$page$/) { $line = "" } } # recopie le reste du fichier print MAIN6 "$line"; } close(MAIN6); } } } } sub creation_liens { print "
\n"; print "\n"; print "\n"; print "

$fontstitre Création de liens / rubriques / etc.:$finfontstitre
\n"; &linkutil; ## creation de lien print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Lien $finfont"; if ($TRsort + $TSsort) { print "$font fils de $finfont"; print "\n"; } print "
$font Titre: $finfont $font (*) $finfont
$font URL: $finfont $font (**) $finfont
$font Description: $finfont
\n"; print "
\n"; print "$fontpetite (*): champs obligatoire pour un commentaire / (**): champs obligatoire pour un lien $finfontpetite\n"; print "

\n"; ## cration de rubrique print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; $linkRlast++; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Rubrique $finfont
$font Titre: $finfont $font (*) $finfont
$font Description: $finfont
\n"; print "
\n"; print "$fontpetite (*): champs obligatoire pour une rubrique $finfontpetite\n"; print "

\n"; ## creation de sous-rubrique print "
\n"; print "
\n"; print "\n"; print "\n"; print "\n"; &hidden; print "\n"; $linkSlast++; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "\n"; print "
$font Sous-rubrique $finfont"; if ($TRsort) { print "$font fille de $finfont"; print "\n"; } print "
$font Titre: $finfont $font (*) $finfont
$font Description: $finfont
\n"; print "
\n"; print "$fontpetite (*): champs obligatoire pour une sous-rubrique $finfontpetite\n"; print "

\n"; } sub helpnote { print "
\n"; print ""; print "\n"; print "
$font"; print "
\n"; print " - Aide -
\n"; print "$fintfont
$font"; print "
\n"; print " chaque lien peut se présenter (au minimum)

\n"; print " \ø\; soit sous la forme *mon_URL*
\n"; print " (le titre du lien sera l'URL en question)

\n"; print " \ø\; soit sous la forme *mon_URL|Mon Titre*
\n"; print " (le titre du lien sera alors \"Mon Titre\")
\n"; print "
\n"; print " par exemple:
\n"; print " *http://www.resoo.com/resoosite|Le site d'info ResooSite*
\n"; print " s'affichera : o Le site d'info Resoosite
\n"; print " et
\n"; print " *http://www.resoo.com/resoosite*
\n"; print " s'affichera : o http://www.resoo.com/resoosite
\n"; print "
\n"; print " Option:
\n"; print " - Si le protocole est précisé, les liens peuvent pointer une url http:// ou ftp:// et le lien s'ouvrira dans une nouvelle fenêtre.
\n"; print " - Si le protocole est omis, c'est http:// qui est automatiquement rajouté, et le lien s'ouvrira dans la fenêtre par défaut.
\n"; print " - Pour les liens avec titre, un simple \"|\" de séparation provoque l'ouverture du lien dans une nouvelle fenêtre, pour forcer l'ouverture dans la fenêtre par défaut, utiliser un double \"||\" de séparation.
\n"; print " - Il est possible d'inhiber le saut de ligne automatique avant un lien, pour cela faire terminer le mien par un signe \"-\"
\n"; print " ( par exemple *http://www.resoo.com/resoosite*- )
\n"; print "
\n"; print " Optionnellement, il est possible d'inclure des lignes débutant par
\n"; print " R_ (suivi d'un titre de Rubrique)
\n"; print " S_ (suivi d'un titre de Sous-rubrique)
\n"; print " _ (suivi d'un commentaire ou d'une description)
\n"; print " _ (seul, pour créer une ligne Vide)
\n"; print " _--- (pour créer une trait horizontal de séparation)
\n"; print "
\n"; print " toutes les autres lignes de textes (ou vide) seront ignorées à l'affichage !!
\n"; print "
\n"; print " pour faire reconnaitre une adresse email \"cliquable\" dans une ligne Rubrique, Commentaire, etc. il suffit de l'entourer de 2 étoiles (par exemple: *admin\@resoo.com*)
\n"; print "
\n"; print " l'ordre d'affichage des lignes sera identique à l'ordre de saisie
\n"; print "
\n"; print "$finfont
\n"; }