#rR gscope_html.tcl #rR il y a ici des procedures H_Xyz et HTMl_Xyz #rR les H_Xyz creent du html et le rendent #rR les Html_Xyz creent du html et le rajoutent a une variable globale qui s'appelle H (c'est debile je sais) #rR tout n'est pas vraiment bien fait ... il y a souvent un melange des deux. #rR a priori certaines des Html_Xyz rendent que ce qu'elle ont rajoute #rR Html_Get rend tout #rR Html_Get ZeroIt rend tout et annule le H proc GetPdbForNgl {{Access ""}} { return [TextePDB $Access All "" "OnTheWeb"] } proc NglViewer {FichierPdb} { set Site [ZincrSite] LogWscope "site=$Site FileToViewWithNgl=$FichierPdb" set Html [Chabada "TemplateNglWali.html" "_site_=$Site" "_FileToViewWithNgl_=$FichierPdb" ] return $Html } proc Html_SymTree LesGD { #rR Crée un html avec deux colonnes, celle de gauche cadrée à droite et inversement (en sapin). set Css " " set LeHtml {} lappend LeHtml $Css lappend LeHtml "
| " lappend LeHtml $G lappend LeHtml " | " lappend LeHtml "" lappend LeHtml $D lappend LeHtml " | " lappend LeHtml "
(.*)} $Texte Match BonTexte]} { set Texte $BonTexte } if {$What=="GetText"} { return $BonTexte } if {$What=="GetList"} { return [split $BonTexte "\n"] } append BonTexte "\nZZZZZZ - Bidon" set OldK "" foreach Ligne [split $BonTexte "\n"] { if {[regexp {^([A-Z]+) *\- (.*)} $Ligne Match K Info]} { if {$OldK!=""} { lappend LesInfosDe($OldK) $CurrentInfo } set CurrentInfo $Info set OldK $K continue } append CurrentInfo " [string trim $Ligne]" } if {[info exists LesInfosDe(TI)] } { set LesInfosDe(Title) [lindex $LesInfosDe(TI) 0] } if {[info exists LesInfosDe(AB)] } { set LesInfosDe(Abstract) [lindex $LesInfosDe(AB) 0] } if {[info exists LesInfosDe(DP)] } { set LesInfosDe(Date) [lindex $LesInfosDe(DP) 0] } if {[info exists LesInfosDe(SO)] } { set LesInfosDe(Journal) [lindex $LesInfosDe(SO) 0] } if {[info exists LesInfosDe(AU)] } { set LesInfosDe(Authors) [join $LesInfosDe(AU) ";"] } if {[info exists LesInfosDe(FAU)]} { set LesInfosDe(FullAuthors) [join $LesInfosDe(FAU) ";"] } if {[info exists LesInfosDe(AU)] } { set LesInfosDe(FirstAuthor) [lindex $LesInfosDe(AU) 0] } if {[info exists LesInfosDe(AU)] } { set LesInfosDe(LastAuthor) [lindex $LesInfosDe(AU) end] } if {[info exists LesInfosDe(FAU)]} { set LesInfosDe(FirstFullAuthor) [lindex $LesInfosDe(FAU) 0] } if {[info exists LesInfosDe(FAU)]} { set LesInfosDe(LastFullAuthor) [lindex $LesInfosDe(FAU) end] } if {[info exists LesInfosDe($What)]} { return $LesInfosDe($What) } return "" } proc WebInforme Nom { #rR je ne sais pas qui l'utilise !! set Info [ExtraitInfo $Nom] Html_ZeroToBody Html_Banner Wscope Html_BackTo $Nom Html_Append "
]*>\n*} $Page "" Page
regsub -nocase -nocase {.*} $Page "" Page
regsub -all {\<} $Page "<" Page
regsub -all {\>} $Page ">" Page
regsub -all {\"} $Page "\"" Page
return $Page
}
proc FromEutilsNCBI {Id {Db ""} {Format ""}} {
if {$Db=="" && [regexp {^rs([0-9]+)$} $Id Match N]} {
set Id $N
set Db "snp"
}
if {$Format==""} { set Format "XML" }
set Query "http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=$Db&id=$Id&report=$Format"
set Page [HttpGetTextFromUrl $Query]
return $Page
regsub -nocase {^.+]*>\n*} $Page "" Page
regsub -nocase {.*} $Page "" Page
regsub -all {\<} $Page "<" Page
regsub -all {\>} $Page ">" Page
regsub -all {\"} $Page "\"" Page
return $Page
}
proc ATV {NomFichierOuUrlPhylo {EnExec ""}} {
if {$EnExec==""} { set EnExec "EnHtml" }
if {$EnExec=="EnExec"} { set EnExec 1 } else { set EnExec 0 }
set Nom $NomFichierOuUrlPhylo
set FichierPhylo $NomFichierOuUrlPhylo
if {[regexp "/" $FichierPhylo]} {
set RepPhylo [file dirname $FichierPhylo]
} else {
if {[EstUnPAB $Nom]} {
while 1 {
set RepPhylo "phylosOrg"
set FichierPhylo "[RepertoireDuGenome]/$RepPhylo/$Nom"
if {[file exists $FichierPhylo]} { break }
set RepPhylo "phylos"
set FichierPhylo "[RepertoireDuGenome]/$RepPhylo/$Nom"
if {[file exists $FichierPhylo]} { break }
return ""
}
}
}
if {$EnExec} {
if {$FichierPhylo!="" && ! [file exists $FichierPhylo]} { return "" }
if {[catch {exec atv $FichierPhylo &} Message]} {
return 0
}
return 1
}
if {[EstUnPAB $Nom]} {
set UrlPhylo "[WscopeScience]&FileMoi&$RepPhylo&$Nom"
} else {
set UrlPhylo $NomFichierOuUrlPhylo
}
Html_ZeroToBody
Html_Append ""
Html_BodyToEnd
return [Html_Get]
}
proc H_Redirect {Url {Texte ""}} {
if {$Texte==""} { set Texte "Please visit $Url" }
return [H_Href $Texte $Url]
}
proc H_ColoredLetters {LesLettres LesCouleurs} {
set TexteColore ""
foreach Lettre $LesLettres Couleur $LesCouleurs {
append TexteColore "$Lettre"
}
return $TexteColore
}
proc Html_TableFromList {Liste} {
set NbColonnes [lindex $Liste 0]
set AttTable [lindex $Liste 1]
set AttLigne [lindex $Liste 2]
foreach C [NombresEntre 0 [expr $NbColonnes - 1]] {
set AttColon($C) [lindex $Liste [expr $C + 3]]
}
set DebutValeurs [expr $NbColonnes + 3]
lappend Local [Html_BaliseOpen "table" $AttTable]
set C 0
foreach Valeur [lrange $Liste $DebutValeurs end] {
if {$C==0} {
set TdTh "td"
if {[regexp "^Please_TH_" $Valeur]} {
regsub "^Please_TH_" $Valeur "" Valeur
set TdTh "th"
}
lappend Local [Html_BaliseOpen "tr" $AttLigne]
}
lappend Local [Html_BaliseOpen $TdTh $AttColon($C)]
lappend Local [Html_Append $Valeur]
lappend Local [Html_BaliseClose $TdTh]
set C [expr ($C+1)%$NbColonnes]
if {$C==0} { lappend Local [Html_BaliseClose "tr"]}
}
lappend Local [Html_BaliseClose "table"]
return [join $Local "\n"]
}
proc H_StyleClassePourBalise {Balise LesClassesValeurs {WithElement ""}} {
if {[regexp {WithElement_(.+)} $WithElement Match Element]} {
set WithElement 1
} else {
set WithElement 0
}
lappend Local ""
return [join $Local "\n"]
}
proc WgetzSurWeb {molid {url ""} {GetUrl ""}} {
set SiteRSCB "http://www.rcsb.org"
set SiteIGBMC "http://bips.u-strasbg.fr"
set WGetz "srsbin/cgi-bin/wgetz"
set SwTr "swissprot_SP_sptrembl"
# set SwTrNw "swissprot_SP_sptrembl_SP_sptnew"
set Defauts(UrlPdbHome) "$SiteIGBMC/PipeAlign/get_pdb_file.cgi?XXXX"
# set Defauts(UrlSRSHome) "$SiteIGBMC/$WGetz?-e+\[\{$SwTr\}-acc:XXXX\]|\[swissprot-id:XXXX\]+-vn+2"
set Defauts(UrlSRSHome) "http://www.ncbi.nlm.nih.gov/sites/entrez?Db=protein&Cmd=DetailsSearch&Term=XXXX"
set Defauts(UrlRefSeqH) "$SiteIGBMC/$WGetz?-e+\[\{REFSEQ\}-acc:XXXX\]|\[REFSEQ-id:XXXX\]+-vn+2"
set Defauts(UrlSRSWorld) "$SiteIGBMC/$WGetz?-e+\[\{$SwTr\}-acc:XXXX\]|\[swissprot-id:XXXX\]+-vn+2"
set Defauts(UrlPdbWorld) "$SiteRSCB/pdb/cgi/export.cgi/XXXX.pdb?format=PDB&pdbId=XXXX&compression=None"
set Defauts(UrlUniprot) "http://www.uniprot.org/uniprot/XXXX"
set site "UNK"
if {$url == ""} {
if {[EstUnAccessPDB $molid]} {
set site "Pdb"
set url $Defauts(UrlPdbHome)
} else {
set site "SRS"
if {[regexp "^NM" $molid]} {
set url $Defauts(UrlRefSeqH)
} else {
set url $Defauts(UrlUniprot)
}
}
}
if {[regexp "\:" $molid]} { set molid [StringApres ":" dans $molid] }
regsub -all "XXXX" $url $molid url
if {$GetUrl=="GetUrl"} { return $url }
set LesLignes {}
set TexteHTML [HttpGetTextFromUrl $url]
if {$TexteHTML!=""} {
set LesLignes [split $TexteHTML "\n"]
} else {
HttpCopy $url LesLignes
}
if {$site == "UNK"} {return $LesLignes}
if {$site == "SRS"} {
set TexteHTML [join $LesLignes "\n"]
set Texte [ValeurDeLaBalise "pre" TexteHTML]
set LesLignes [split $Texte "\n"]
}
set head "[string range [lindex $LesLignes 0] 0 1]"
if { $head != "HE" && $head != "ID"} {
set LesLignes {}
regsub -all "XXXX" [set Defauts(Url${site}World)] $molid url
HttpCopy $url LesLignes
if {$site=="SRS"} {
set TexteHTML [join $LesLignes "\n"]
set Texte [ValeurDeLaBalise "pre" TexteHTML]
set LesLignes [split $Texte "\n"]
}
set head "[string range [lindex $LesLignes 0] 0 1]"
if { $head != "HE" && $head != "ID"} {
set LesLignes "ERREUR"
if {$site == "Pdb"} {
if {[file exists "${molid}.pdb"]} {
set LesLignes [LesLignesDuFichier "${molid}.pdb"]
set head "[string range [lindex $LesLignes 0] 0 1]"
if { $head != "HE"} {set LesLignes "ERREUR"}
}
}
}
}
set LesBonnesLignes {}
foreach Ligne $LesLignes {
if {[regexp -nocase "} $Ligne $V Ligne
}
lappend LesBonnesLignes $Ligne
}
return $LesBonnesLignes
}
proc OliWeb {} {
set Page [FormulaireOliWeb]
return $Page
}
proc H_AskAndGetFile {} {
}
proc H_TexteArea {{Texte ""} Name {Rows 5} {Cols 80}} {
return [H_BalAtt $Texte TEXTAREA "name $Name rows $Rows cols $Cols"]
}
proc FormulaireOliWeb {} {
set LH {}
lappend LH [H_Open [H_BalAtt [H_Pivot] FORM \
"ACTION [WscopeServer]?ProGS&TraiteOliWebOrder METHOD post"]]
lappend LH "Select all 5' signals"
lappend LH [H_BR]
lappend LH [H_MorceauxChoisis [LesSignaux] "SigAv"]
lappend LH [H_BR]
lappend LH "Cut and Paste your nucleic sequence"
lappend LH [H_BR]
lappend LH [H_TexteArea "" "Sequence"]
lappend LH [H_BR]
lappend LH "If necessary give fragment limits"
lappend LH [H_TexteArea "" "Fragment" 1 20]
lappend LH " please use following conventions"
lappend LH [H_Open [H_Balise [H_Pivot] PRE]]
lappend LH "Counting AMINO ACIDS :"
lappend LH " 25 58 (from Amino acid 25 to Amino Acid 58) ***USE ONLY NUMBERS***)"
lappend LH "or G25 H58 (from Glycine 25 to Histidine 58 ***USE UPPERCASE LETTERS***)"
lappend LH "Counting NUCLEIC BASES :"
lappend LH " g62 n97 (from guanine 62 to base 97 ***USE LOWERCASE LETTERS***)"
lappend LH [H_Close]
lappend LH "Select all 3' signals"
lappend LH [H_MorceauxChoisis [LesSignaux] "SigAp"]
lappend LH [H_BalAtt "" INPUT "VALUE Reset TYPE reset"]
lappend LH [H_BalAtt "" INPUT "VALUE Submit TYPE submit"]
lappend LH [H_Close]
return [join $LH "\n"]
}
proc H_ChoixParmi {Liste Name {AvecReset ""} {AvecSubmit ""}} {
if {[regexp -nocase "AvecReset" $AvecReset] } { set AvecReset 1 } else { set AvecReset 0 }
if {[regexp -nocase "AvecSubmit" $AvecSubmit]} { set AvecSubmit 1 } else { set AvecSubmit 0 }
set LeTexteCP {}
lappend LeTexteCP [H_Open [H_BalAtt [H_Pivot] SELECT "NAME $Name"]]
lappend LeTexteCP [H_BalAtt ". . . . . . ." OPTION]
foreach Ligne $Liste {
lappend LeTexteCP [H_BalAtt $Ligne OPTION]
}
lappend LeTexteCP [H_Close]
if {$AvecReset} {
lappend LeTexteCP [H_BalAtt "" INPUT "VALUE Reset TYPE reset"]
}
if {$AvecSubmit} {
lappend LeTexteCP [H_BalAtt "" INPUT "VALUE Submit TYPE submit"]
}
return [join $LeTexteCP "\n"]
}
proc H_MorceauxChoisis {Liste NomGeneric {AvecReset ""} {AvecSubmit ""} {MaxCandidats ""}} {
if {[regexp -nocase "AvecReset" $AvecReset] } { set AvecReset 1 } else { set AvecReset 0 }
if {[regexp -nocase "AvecSubmit" $AvecSubmit]} { set AvecSubmit 1 } else { set AvecSubmit 0 }
if {$MaxCandidats==""} { set MaxCandidats 9 }
set LeTexteHMC {}
for {set C 1} {$C<$MaxCandidats} {incr C} {
set Name [format "%s%3.3d" $NomGeneric $C]
lappend LeTexteHMC [H_ChoixParmi $Liste $Name]
lappend LeTexteHMC [H_BR]
}
if {$AvecReset} {
lappend LeTexteHMC [H_BalAtt "" INPUT "VALUE Reset TYPE reset"]
}
if {$AvecSubmit} {
lappend LeTexteHMC [H_BalAtt "" INPUT "VALUE Submit TYPE submit"]
}
return [join $LeTexteHMC "\n"]
}
proc Test_H_Open_Close {} {
lappend LT [H_Open [H_BalAtt [H_Pivot] Coucou "a b c d"]]
lappend LT [H_Open [H_Color [H_Pivot]]]
lappend LT "These lines will"
lappend LT "be enclosed"
lappend LT "between Opens and Closes"
lappend LT [H_Close]
lappend LT [H_Close]
EspionneL $LT
}
proc H_Pivot {} {
return "JeSuIsLePiVoT"
}
proc H_Open {Texte} {
global H_OpenClose
Wup "H_Open and H_Close allows to encapsulate a text. See Test_H_Open_Close"
set Pivot [H_Pivot]
set i [string first [H_Pivot] $Texte]
set Open [string range $Texte 0 [expr $i-1]]
set Close [string range $Texte [expr $i+[string length $Pivot]] end]
lappend H_OpenClose $Close
return $Open
}
proc H_Close {} {
global H_OpenClose
Wup "H_Open and H_Close allows to encapsulate a text. See Test_H_Open_Close"
set Close [lindex $H_OpenClose end]
set H_OpenClose [lrange $H_OpenClose 0 end-1]
return $Close
}
proc DescDuRepertoire {Rep {PleaseAlign ""}} {
global DescDuRepertoire
if {$PleaseAlign=="PleaseAlign"} { set PleaseAlign 1 } else { set PleaseAlign 0 }
set Rep [file tail $Rep]
if {[info exists DescDuRepertoire($Rep)]} {
set Desc [set DescDuRepertoire($Rep)]
if {$PleaseAlign} {
set Blanc "$Rep ..............................................."
regsub $Rep [string range $Blanc 0 30] "" Blanc
return "$Blanc $Desc"
} else {
return $Desc
}
}
if {[info exists DescDuRepertoire("EstCharge")]} {return ""}
set DescDuRepertoire("EstCharge") 1
set DescDuRepertoire(descriptifs) "brief description of each homolog sequence"
set DescDuRepertoire(leonLog) "log file of Leon"
set DescDuRepertoire(notes) "summary of most important information concerning each sequence"
set DescDuRepertoire(infos) "working file used as manual annotation tools for each sequence"
set DescDuRepertoire(nuctfa) "fasta format file of nucleic sequence"
set DescDuRepertoire(nucembl) "swissprot format file of nucleic sequence"
set DescDuRepertoire(prottfa) "fasta format file of protein sequence"
set DescDuRepertoire(protembl) "swissprot format file of protein sequence"
set DescDuRepertoire(psiblastp) "Psiblast against protall (swissprot; sptrembl, sptnew, pdb)"
set DescDuRepertoire(blastp) "BlastP against protall (swissprot; sptrembl, sptnew, pdb)"
set DescDuRepertoire(blastngenembl) "all BlastN againstgenembl"
set DescDuRepertoire(tblastngenomes) "all TBlastN against complete microbial genomes"
set DescDuRepertoire(apns) "it contains a summary of blast hits"
set DescDuRepertoire(daedalushits) "better than apns. It contains also TaxId, Definition, Class, etc. "
set DescDuRepertoire(tfasdescopains) "fasta file containing all sequences used in multiple alignment"
set DescDuRepertoire(msf) "multiple alignment of complete sequences with DbClustal"
set DescDuRepertoire(msfToHtml) "converts the msf file to a MacsimXml and displays it with macsimHtml"
set DescDuRepertoire(msfLeon) "multiple alignment file after Leon's currating process"
set DescDuRepertoire(msffam) "multiple alignment file restricted to familiar organisms only"
set DescDuRepertoire(msf2) "second multiple alignment of complete sequences with DbClustal"
set DescDuRepertoire(rascal) "multiple alignment of complete sequences with DbClustal and Rascal"
set DescDuRepertoire(macsimXml) "Macsim's analysis of multiple alignment in Xml format"
set DescDuRepertoire(macsimRsf) "Macsim's analysis of multiple alignment in Rsf format"
set DescDuRepertoire(macsimHtml) "Macsim's analysis of multiple alignment in Html format"
set DescDuRepertoire(macsimJalview) "See the Macsim with the Jalview java applet (needs JRE1.5)"
set DescDuRepertoire(description) "give a summary of all orthologues (AC, GN, Definition, Organism, ..."
set DescDuRepertoire(aliinout) "why we keep or reject a sequence in the multiple alignment"
set DescDuRepertoire(phylos) "phylogenetic tree of the multiple alignment (text file)"
set DescDuRepertoire(AtvOfphylos) "phylogenetic tree of the multiple alignment displayed by ATV"
set DescDuRepertoire(phylosOrg) "phylogenetic tree of the multiple alignment with Organism names (text file)"
set DescDuRepertoire(AtvOfphylosOrg) "phylogenetic tree of the multiple alignment with Organism names displayed by ATV"
set DescDuRepertoire(disphy) "phylogenetic distance from the multiple alignment"
set DescDuRepertoire(ver) "nuc or prot sequence used to start the analysis"
return [DescDuRepertoire $Rep $PleaseAlign]
}
proc TexteEntreChevrons Texte {
set i [string first "<" $Texte]
if {$i<0} { return "" }
set Bon ""
set N 1
foreach C [split [string range $Texte [incr i] end] ""] {
if {$C==">" && $N==1} { return $Bon }
append Bon $C
if {$C=="<"} { incr N }
if {$C==">"} { incr N -1}
}
return $Bon
}
proc AfficheMoi args {
set Pro [lindex $args 0]
if { ! [HtmlAuthorize $Pro]} { Expe "Error from Gscope : $Pro isn't authorized" ; return "" }
set Retour [eval $args]
return [Html_DuTexteTelQuel $Retour]
}
proc LocaliseLesTfasDuSeqCheck {{Qui ""}} {
global LocaliseLesTfasDuSeqCheck
if {[info exists LocaliseLesTfasDuSeqCheck($Qui)]} { return $LocaliseLesTfasDuSeqCheck($Qui) }
if {[info exists LocaliseLesTfasDuSeqCheck("EstCharge")]} { return "" }
set LocaliseLesTfasDuSeqCheck("EstCharge") 1
set RepPossibles "[RepertoireDuGenome]/atelier/*"
set LesFichiers [glob -nocomplain "$RepPossibles/*.tfa"]
foreach Fichier $LesFichiers {
lappend LocaliseLesTfasDuSeqCheck(ListOfFilepathes) $Fichier
set Queue [file tail $Fichier]
lappend LocaliseLesTfasDuSeqCheck($Queue) $Fichier
lappend LocaliseLesTfasDuSeqCheck(ListOfFilenames) $Queue
regsub -nocase ".tfa$" $Queue "" Name
lappend LocaliseLesTfasDuSeqCheck($Name) $Fichier
lappend LocaliseLesTfasDuSeqCheck(ListOfNames) $Name
}
return [LocaliseLesTfasDuSeqCheck $Qui]
}
proc InsereHrefSeqcheckOligoDans {Ligne S P {PGS ""}} {
set LigneAvecRef $Ligne
set ET "EtCoMeRcIaL"
if {$P!=""} {
set Ref "[WscopeScience] $ET ShowOli $ET P1456"
set HRef [H_Href $P $Ref]
regsub " $P " $LigneAvecRef " $HRef " LigneAvecRef
}
set LesFicSeq [LocaliseLesTfasDuSeqCheck $S]
set LesNouvellesLignesAvecRef {}
foreach FicSeq $LesFicSeq {
set DirSeq [file dirname $FicSeq]
set Qui [file tail $FicSeq]
regsub "[RepertoireDuGenome]/" $DirSeq "" Quoi
set Ref "[WscopeScience] $ET FileMoi $ET $Quoi $ET $Qui"
set HRef [H_Href $S $Ref]
regsub " $S " $LigneAvecRef " $HRef " NouvelleLigneAvecRef
lappend LesNouvellesLignesAvecRef $NouvelleLigneAvecRef
}
if {$LesNouvellesLignesAvecRef!={}} {
set LigneAvecRef [join $LesNouvellesLignesAvecRef "\n"]
}
regsub -all " $ET " $LigneAvecRef {\&} LigneAvecRef
return $LigneAvecRef
}
proc InsereHrefAccessDans {Ligne BanqueId {Access ""}} {
set ET "EtCoMeRcIaL"
set Ref "[WscopeScience] $ET AfficheMoi $ET SequenceDesBanques $ET $BanqueId $ET $Access"
set HRef [H_Href $Access $Ref]
regsub -all {\:} $Access "\\:" AA
regsub $AA $Ligne $HRef LigneAvecRef
regsub -all " $ET " $LigneAvecRef {\&} LigneAvecRef
return $LigneAvecRef
}
proc ContenuDuFichierAvecReferences {Fichier {LesTextesRefs {}} {Ref "NoRefAtAll"}} {
if {$Ref!="NoRefAtAll"} { set LesTextesRefs [list $LesTextesRefs $Ref] }
if {$LesTextesRefs!={}} {
set Page [ContenuDuFichier $Fichier]
foreach {T R} $LesTextesRefs {
regsub -all $T $Page [H_Href $T $R] Page
}
return $Page
}
set Nom [file tail $Fichier]
set Rep [file tail [file dirname $Fichier]]
if {$Rep=="aliinout"} {
set LeTexte {}
foreach Ligne [LesLignesDuFichier $Fichier] {
set Access ""
scan $Ligne "%s %s" BanqueId Access
set LigneAvecRef [InsereHrefAccessDans $Ligne $BanqueId $Access]
lappend LeTexte $LigneAvecRef
}
return [join $LeTexte "\n"]
}
if {$Rep=="infos"} {
set LeTexte [list "<<| "]
lappend Banner [Html_Append " | "]
lappend Banner [Html_Append "
"]
lappend Banner [Html_Append " "]
lappend Banner [Html_Append " | "]
lappend Banner [Html_Append " This page is generated on the fly by Wscope from the Gscope Database [Science] | "]
lappend Banner [Html_Append " "]
lappend Banner [Html_Append " "]
lappend Banner [Html_Append " | "]
lappend Banner [Html_Append "
| "] lappend Banner [Html_BackTo] lappend Banner [Html_Append " | "] lappend Banner [Html_Append "||
| [CaVa] |
$R" } return $R } if {$EstUnJpg} { return [Html_DuFichierJpg $Probable] } if {[EstUnPAB $Qui]} { return [SeeAby $Quoi $Qui] } return [Html_DuTexteTelQuel [ContenuDuFichierAvecReferences $Probable] $Titre] return [Html_DuTexteTelQuel [ContenuDuFichier $Probable] $Titre] } proc Html_ListOfRefs {LesRefText {Titre ""} {PleaseSplitText ""}} { if {$PleaseSplitText=="PleaseSplitText"} { set PleaseSplitText 1 } else { set PleaseSplitText 0 } Html_ZeroToBody Html_Banner Wscope # Html_Append "