[Koha-cvs] koha koha-tmpl/intranet-tmpl/default/en/value_b... [rel_2_2]

Henri-Damien LAURENT laurenthdl at alinto.com
Mon Sep 4 14:32:53 CEST 2006


CVSROOT:	/sources/koha
Module name:	koha
Branch:		rel_2_2
Changes by:	Henri-Damien LAURENT <hdl>	06/09/04 12:32:53

Added files:
	koha-tmpl/intranet-tmpl/default/en/value_builder: macles.tmpl 
	value_builder  : int_MACLES.pl MACLES2.txt macles.pl 

Log message:
	plugins macles et fichiers utiles.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/koha/koha-tmpl/intranet-tmpl/default/en/value_builder/macles.tmpl?cvsroot=koha&only_with_tag=rel_2_2&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/value_builder/int_MACLES.pl?cvsroot=koha&only_with_tag=rel_2_2&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/value_builder/MACLES2.txt?cvsroot=koha&only_with_tag=rel_2_2&rev=1.1.2.1
http://cvs.savannah.gnu.org/viewcvs/koha/value_builder/macles.pl?cvsroot=koha&only_with_tag=rel_2_2&rev=1.1.2.1

Patches:
Index: koha-tmpl/intranet-tmpl/default/en/value_builder/macles.tmpl
===================================================================
RCS file: koha-tmpl/intranet-tmpl/default/en/value_builder/macles.tmpl
diff -N koha-tmpl/intranet-tmpl/default/en/value_builder/macles.tmpl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ koha-tmpl/intranet-tmpl/default/en/value_builder/macles.tmpl	4 Sep 2006 12:32:53 -0000	1.1.2.1
@@ -0,0 +1,257 @@
+<html>
+<head>
+<title>Gestion_des_index_MACLES</title>
+<!-- TMPL_IF NAME="TemplateEncoding" --><meta http-equiv="Content-Type" content="text/html; charset=<!-- TMPL_VAR NAME="TemplateEncoding" -->"><!-- TMPL_ELSE --><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><!-- /TMPL_IF -->
+<link rel="stylesheet" type="text/css" href="<!-- TMPL_VAR name="themelang" -->/includes/common-style.css">
+<link rel="stylesheet" type="text/css" href="<!-- TMPL_VAR name="themelang" -->/includes/marc-editor.css">
+<style type="text/css">
+.catalogue {
+	background-color:#ad11ad;
+	color:#FFFFFF;
+	background-image:none;
+	text-decoration: normal;
+	}
+a.catalogue:hover {
+	background-color: #ad11ad;
+	color: #FFFFFF;
+	text-decoration: none;
+	}
+
+</style>
+</head>
+
+<body onload="javascript:Activate(0);load_macles(630);">
+<h1 class="catalogue">Gestion des index MACLES</h1>
+<form name="f_pop" onSubmit="javascript:add_macles('630');">
+
+<div class="tabbed">
+	<div class="tabs">
+        <!--TMPL_LOOP name="BIGLOOP" -->
+            <a href="#" onclick="javascript:Activate('<!-- TMPL_VAR name="number"-->'); return false;" id="link<!-- TMPL_VAR name="number"-->"><!-- TMPL_VAR name="number"--></a>
+        <!--/TMPL_LOOP -->
+	</div>
+
+<!-- RESET PAGINATION -->
+<!-- TMPL_LOOP name="BIGLOOP" -->
+<!-- hide every tab except the 1st -->
+<!-- TMPL_IF name="number" -->
+    <div name="<!-- TMPL_VAR name="number" -->XX" id="<!-- TMPL_VAR name="number" -->XX" class="tab" style="visibility:hidden">
+<!-- TMPL_ELSE -->
+    <div name="<!-- TMPL_VAR name="number" -->XX" id="<!-- TMPL_VAR name="number" -->XX" class="tab" style="visibility:visible">
+<!-- /TMPL_IF -->
+          <h2 class="catalogue"> <!--TMPL_VAR Name="hdr_tab"--></h2>
+          <input type="submit" class="button catalogue" value="Envoyer" />
+          <a class="button catalogue" href="" onclick="javascript:load_macles(630);">Réinitialiser</a>
+          <a class="button catalogue" href="javascript:uncheck_tab(<!-- TMPL_VAR name="number" -->)">d&eacute;selectionner onglet</a>
+          <input type="reset" class="button catalogue" value="d&eacute;selectionner tout" />
+        <!--TMPL_IF Name="Table"-->
+          <table>
+            <tr>
+              <th class="catalogue">Espace\Temps</th>
+              <!--TMPL_LOOP Name="col_hdr"-->
+                <th class="catalogue" scope="col" id="<!--TMPL_VAR Name="colvalue"-->">  <!--TMPL_VAR Name="collib" ESCAPE=HTML--> <br /><input type="checkbox" name="<!--TMPL_VAR Name="colvalue"-->" OnClick="check_col('<!--TMPL_VAR Name="colvalue"-->')" />
+                </th>
+              <!--/TMPL_LOOP-->
+            </tr>
+            <!--TMPL_LOOP Name="lines"-->
+            <tr>
+                <th class="catalogue" scope="row" id="<!--TMPL_VAR Name="rowvalue"-->">  <!--TMPL_VAR Name="rowlib" ESCAPE=HTML--> <br /><input type="checkbox" name="<!--TMPL_VAR Name="rowvalue"-->" OnClick="check_row('<!--TMPL_VAR Name="rowvalue"-->')" />
+                </th>
+                <!--TMPL_LOOP Name="cells"-->
+                <td headers="<!--TMPL_VAR Name="rowvalue"--> <!--TMPL_VAR Name="colvalue"-->">
+                  <span TITLE="<!--TMPL_LOOP Name="libs" --><!--TMPL_VAR Name="lib" ESCAPE=HTML--> - <!--/TMPL_LOOP-->">
+                  <!--TMPL_VAR Name="celvalue"--> <br /><input type="checkbox" name="<!--TMPL_VAR Name="celvalue"-->" value="<!--TMPL_VAR Name="celvalue"-->" />
+                  </span>
+                </td>
+                <!--/TMPL_LOOP-->
+            </tr>
+            <!--/TMPL_LOOP-->
+          </table>
+        <!--/TMPL_IF-->
+        <!--TMPL_IF Name="Lists" -->
+          <h2 class="catalogue">s&eacute;lection au moyen d'une liste de descripteurs</h2>
+          <!--TMPL_LOOP name="Lists"-->
+            <h3 class="catalogue"><!--TMPL_VAR name="lib"--></h3>
+            <!--TMPL_LOOP name=liblist -->
+              <a href="#<!--TMPL_VAR Name="listvalue"-->" onclick="javascript:check_multiple(<!--TMPL_VAR Name="listvalue"-->)"> <!--TMPL_VAR name="listlib" escape=html--></a><br />
+            <!--/TMPL_LOOP-->
+          <!--/TMPL_LOOP-->
+        <!--/TMPL_IF-->
+        <!--TMPL_UNLESS Name="Table"-->
+        <!-- Listes simples :Onglets 0 et 9-->
+          <!--TMPL_LOOP Name="lines"-->
+            <h3><!--TMPL_VAR Name="rowvalue" ESCAPE=HTML-->&nbsp;-&nbsp;<!--TMPL_VAR Name="rowlib" ESCAPE=HTML-->&nbsp;<input type="checkbox" name="<!--TMPL_VAR Name="rowvalue"-->" OnClick="javascript:check_row('<!--TMPL_VAR Name="rowvalue"-->')" /></h3>
+            <!--TMPL_LOOP Name="cells"-->
+              <p><!--TMPL_VAR Name="celvalue" ESCAPE=HTML-->&nbsp;-&nbsp;<!--TMPL_LOOP Name="libs" -->
+                    <!--TMPL_VAR Name="lib" ESCAPE=HTML--> &nbsp;
+                 <!--/TMPL_LOOP-->
+                 <input type="checkbox" name="<!--TMPL_VAR Name="celvalue"-->" value="<!--TMPL_VAR Name="celvalue"-->" />
+              </p>
+            <!--/TMPL_LOOP-->
+          <!--/TMPL_LOOP-->
+        <!--/TMPL_UNLESS-->
+    </div>
+<!-- /TMPL_LOOP -->
+</div>
+</form>
+<script language="JavaScript" type="text/javascript">
+function Activate(numlayer)
+{
+	for (i=0; i <= 9 ; i++ ) {
+		ong = i+"XX";
+		link = "link"+i;
+		if (numlayer==i) {
+			with(document){
+			if (document.getElementById(ong)){
+				document.getElementById(ong).style.visibility="visible";
+			}
+			if(document.getElementById(link)){
+				document.getElementById(link).style.color="#000066";
+				document.getElementById(link).style.backgroundColor="#FFFFCC";
+			}
+			}
+		} else {
+			with(document){
+			if (document.getElementById(ong)){
+				document.getElementById(ong).style.visibility="hidden";
+			}
+			if (document.getElementById(link)) {
+				document.getElementById(link).style.color="#669999";
+				document.getElementById(link).style.backgroundColor="#D8DEB8";
+			}
+			}
+		}
+	}
+}
+
+function add_macles(myvalue)
+{
+  var myinputs=document.getElementsByTagName("input");
+  var mycountMACLESgen=0;
+  var tab = new Array();
+  for (i=0;i<myinputs.length;i++){
+    if (myinputs[i].checked) {
+      tab[mycountMACLESgen]=myinputs[i].value;
+      mycountMACLESgen++;
+    }
+  }
+  if (mycountMACLESgen==1){opener.document.f.field_value[<!-- TMPL_VAR name="index" -->].value = tab[0];
+  } else {
+    var mytags=opener.document.getElementsByName("tag");
+    var mycountMACLESinit=0;
+    var indexmin=0
+    //Compter le nombre de MACLES présent
+    for (i=0;i<mytags.length;i++){
+      if (mytags[i].value==myvalue) {
+        if (indexmin==0){
+          indexmin=i
+        }
+        mycountMACLESinit++;
+      }
+    }
+    // Si Nombre de Macles <Nombre de cases cochées, ajouter le nombre de champ manquant
+    if (mycountMACLESinit < mycountMACLESgen){
+    //for (i=0;i< (mycountMACLESgen - mycountMACLESinit);i++){
+    //  PluginAddField(myvalue);
+    //}
+      alert("veuillez d'abord créer le nombre de champs nécessaires ");
+    } else {
+    // Pour chaque valeur cochée, ajouter la valeur dans un noeud MACLES.
+      k=indexmin;
+      for (i=0;i<tab.length;i++){
+          // Se positionner sur le prochain noeud MACLES
+          opener.document.f.field_value[k].value = tab[i];
+          k=k+2;
+      }
+    }
+  }
+  self.close;
+  return false;
+}
+
+function uncheck_tab(number)
+{
+  var myinputs=document.getElementsByTagName("input");
+  var myRegEx=new RegExp(number+"..");
+  for(i=0;i<myinputs.length;i++){
+    if ((myinputs[i].name.search(myRegEx)>=0) && myinputs[i].checked == true) {
+      myinputs[i].checked = false;
+    }
+  }
+}
+function check_col(col)
+{
+  var myref=document.getElementsByName(col);
+  var myinputs=document.getElementsByTagName("input");
+  var myRegEx=new RegExp(col);
+  for(i=0;i<myinputs.length;i++){
+    if (myinputs[i].name.search(myRegEx)>=0) {
+      if (myref[0].checked){
+        myinputs[i].checked = true;
+      } else {
+        myinputs[i].checked = false;
+      }
+    } 
+  }
+  return false;
+}
+
+function check_multiple()
+{
+  for(myi=0;myi<check_multiple.arguments.length;myi++){
+    var myinput=document.getElementsByName(""+check_multiple.arguments[myi]);
+    myinput[0].checked=true;
+  }
+  return false;
+}
+
+function check_row(row)
+{
+  var myref=document.getElementsByName(row);
+  var myinputs=document.getElementsByTagName("input");
+  var myRegEx=new RegExp(row);
+//   alert myRegEx;
+  for(i=0;i<myinputs.length;i++){
+    if (myinputs[i].name.search(myRegEx)>=0){
+      if (myref[0].checked){
+        myinputs[i].checked = true;
+      } else {
+        myinputs[i].checked = false;
+      }
+    } 
+  }
+  return false;
+}
+
+function load_macles(myvalue)
+{
+  document.forms.f_pop.reset;
+  var mystart=<!-- TMPL_VAR name="index" -->;
+  var descent=mystart;
+  var countchecked=0;
+  // Remonter à la source
+  while (opener.document.f.tag[descent].value==myvalue && descent>0){
+    var checkvalue=opener.document.f.field_value[descent].value;
+    var myinput=document.getElementsByName(checkvalue);
+    if (myinput.length>0){
+      myinput[0].checked=true;
+      countchecked++;
+    }
+    descent = descent - 2;
+  }
+  // Continuer jusquà la fin
+  var ascent=mystart+2;
+  while (opener.document.f.tag[ascent].value==myvalue && ascent>0){
+    var checkvalue=opener.document.f.field_value[ascent].value;
+    var myinput=document.getElementsByName(checkvalue);
+    if (myinput.length>0){
+      myinput[0].checked=true;
+      countchecked++;
+    }
+    ascent=ascent+2;
+  }
+  return false;
+}
+</script>
+</body>
+</html>

Index: value_builder/int_MACLES.pl
===================================================================
RCS file: value_builder/int_MACLES.pl
diff -N value_builder/int_MACLES.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ value_builder/int_MACLES.pl	4 Sep 2006 12:32:53 -0000	1.1.2.1
@@ -0,0 +1,52 @@
+#!/usr/bin/perl -w  -CS
+use C4::Context;
+use Encode;
+use Getopt::Long;
+use utf8;
+my ( $input_marc_file) = ('',0);
+my ($version, $delete, $test_parameter,$char_encoding, $verbose,$field,$test_dollar);
+GetOptions(
+    'h'    => \$version,
+    'file:s'    => \$input_marc_file,
+    't' => \$test_parameter,
+    'd' => \$delete,
+);
+
+if ($version || ($input_marc_file eq '')) {
+print <<EOF
+small script to import languages from a file.
+parameters :
+\th : this version/help screen
+\tfile /path/to/file/to/dump : the file to dump
+\tv : verbose mode. 1 means "some infos", 2 means "MARC dumping"
+\tt : test mode : parses the file, saying what he would do, but doing nothing.
+IMPORTANT : don't use this script before you've entered and checked twice (or more) your  MARC parameters tables.
+If you fail this, the import won't work correctly and you will get invalid datas.
+
+SAMPLE : ./bulkmarcimport.pl -file /home/paul/koha.dev/local/npl -n 1
+EOF
+;#'
+die;
+}
+
+my $dbh = C4::Context->dbh;
+$|=1; # flushes output
+
+if ($test_parameter) {
+	print "TESTING MODE ONLY\n    DOING NOTHING\n===============\n";
+}
+if ($delete){
+	$dbh->do("DELETE from authorised_values WHERE category=\"MACLES\";");
+}
+open FILE, "<", $input_marc_file or die "unable to open $input_marc_file";
+my $strsth="INSERT IGNORE into authorised_values (category,authorised_value,lib) VALUES ('MACLES',?,?);";
+my $rq=$dbh->prepare($strsth);
+while (<FILE>){
+  my ($col,$lib)=($1,$3) if ($_=~/(([0-9X]{3}|,)+)\s+(.*)$/);
+#  Encode::from_to( $data[0] ,"utf-8","latin1");
+#  Encode::from_to( $data[1] ,"utf-8","latin1");
+#  warn "col:$col lib:$lib ";  
+  $rq->execute($col,$lib) unless($test_parameter);
+  print "$col\t$lib\n" if ($test_parameter);
+}
+#$rq->finish;

Index: value_builder/MACLES2.txt
===================================================================
RCS file: value_builder/MACLES2.txt
diff -N value_builder/MACLES2.txt
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ value_builder/MACLES2.txt	4 Sep 2006 12:32:53 -0000	1.1.2.1
@@ -0,0 +1,510 @@
+0XX Les sciences de l'Antiquité, objets d'études et disciplines des sciences humaines qui s'y rapportent
+1XX Europe
+2XX Afrique du Nord et du Nord-Est
+3XX Proche-Orient et Moyen Orient
+4XX Asie Centrale, Inde
+5XX Extrême-Orient, Océanie, Australie
+6XX Amérique, Antarctique
+7XX Afrique, sauf Afrique du Nord et Nord-Est
+8XX _________
+9XX Méthodes et techniques des sciences de l'Antiquité, des sciences de base et des disciplines formelles mises en jeu dans les sciences de l'Antiquité
+00X Ouvrages généraux concernant l'étude des objets matériels et culturels
+01X Langues (linguistique, grammaire et philologie,...)
+02X Systèmes de pensée et religions
+03X Histoire et anthropologie culturelle
+04X Matériaux et productions (ressources, exploitations, fabrications, produits finis)
+05X Pratiques et activités (autres que celles de 04X)
+06X Activités artistiques et intellectuelles
+07X Branches établies des sciences de l'Antiquité (autres que celles déjà citées en 03X et 060)
+08X Organisation de la recherche
+09X Outils documentaires (sauf fichiers et bases de données, cf. 923)
+000 Tous continents, toutes périodes et vulgarisation générale
+001 La Préhistoire, le Paléolithique, le Mésolithique
+002 La "Révolution" néolithique
+003 Les Métaux (périodes "archaïques")
+004 Les périodes "préclassiques", ("formatives")
+005 Les civilisations classiques, avant l'ère chrétienne, Antiquité classique au sens large
+006 Les civilisations classiques, après l'ère chrétienne
+007 Les Paléochrétiens, Le Haut Moyen Âge
+008 Le Moyen Âge, expansion islamique (religion islamique cf. 024)
+009 Les Temps Modernes (Renaissance, Temps Modernes, archéologie industrielle) lorsque ces ''âges'' sont considérés sur une aire géographique et culturelle : voir 1** à 7**
+010 Linguistique générale, linguistique comparée
+011 Langues indo-européennes
+012 Langues chamito-sémitiques
+013 Langues de l'Asie, autres que 011, 012
+014 Langues de l'Amérique
+015 Langues de l'Afrique, autres que 012
+016 Langues de l'Océanie
+019 Autres langues
+020 Histoire des religions en général, systèmes de pensée en général
+021 Systèmes de pensée et de religions préhistoriques et protohistoriques non classiques
+022 Systèmes de pensée et de religions orientales autres que 023, 024, 025.
+023 Systèmes de pensée et de religions gréco-romaines
+024 Systèmes de pensée et de religions judéo-chrétiennes
+025 Islam
+026 Systèmes de pensée et de religions de l'lnde et de l'Asie du Sud-Est
+027 Systèmes de pensée et de religions extrême-orientales
+028 ...
+029 Systèmes de pensée et de religions des autres parties du monde
+030 Théorie et histoire générale des sciences de l'Homme, ''Anthropologie'', civilisations à l'exclusion des points de vue 07X, 08X 09X.
+031 L'histoire et ses méthodes, historiographie
+032 Ethnologie, sociologie, anthropologie culturelle, psychologie
+033 Économie politique, organisation de l'État et/ou de la Société, institutions, droit
+034 Géographie humaine, démographie
+035 Géographie physique
+036 Géographie historique, archéologie spatiale, séismicité historique
+040 Technologie générale
+041 Végétaux bruts (cf. textiles), bois, vannerie, sparterie
+042 Minéraux bruts, pierres, taille
+043 Argile et technique de production
+044 Matières organiques (peaux, os, ambres...), textiles, tapisseries...
+045 Métaux
+046 Verre, Émaux
+050 "Culture matérielle" en général, outillage en général, économie, occupation de l'espace
+051 Collecte, chasse, pêche
+052 Agriculture, domestication des plantes, irrigation, occupation du sol
+053 Élevage domestication des animaux
+054 Alimentation, cuisine
+055 Vêtements, parures, tatouages
+056 Habitat, sépulture, nécropoles (pratiques funéraires) Pour monuments funéraires utiliser 064)
+057 Transport (véhicules, bateaux)
+058 Commerce, poids et mesures, voyages, itinéraires, voies
+059 Guerre, arts militaires
+060 Histoire de l'art, esthétique, iconographie en général
+061 Sculpture, modelage, monnaie, ... (art des volumes)
+062 Peinture, mosaïque, fresque, gravure, art rupestre, laque
+063 "Petits objets" divers, jouets, mobilier
+064 Urbanisme, architecture civile et religieuse, monuments funéraires, mégalithes
+065 "Son et geste": musique, danse, spectacle, jeux, gymnastique
+066 Production littéraire
+067 Production philosophique
+068 Production scientifique ou technologique
+069 Savoir non technologique et sa transmission
+070 Général sur les ''spécialités'' des sciences de l'Antiquité selon les types de témoins étudiés
+071 Épigraphie (inscriptions, marques, etc.)
+072 Critique des textes, chartes, diplomatique (Philologie)
+073 Numismatique, sigillographie, glyptique, métrologie
+074 Toponymie
+075 Papyrologie, codicologie
+076 Prosopographie, généalogie, onomastique
+077 Paléographie (écriture, alphabet)
+078 Critique littéraire
+080 Histoire et organisation, les sciences de l'Antiquité en tant que disciplines, administration générale
+081 Les personnes: biographies, bibliographies, hommages
+082 La recherche (documents traitant de)
+083 Les institutions, législation, financement
+084 Musées, dépôts (du point de vue administratif, gestion, etc ..., Pour la muséographie utiliser 936)
+085 L'Enseignement
+086 Archives nationales, municipales, etc.
+087 Associations, sociétés savantes
+090 Manuels d'orientation générale: organisation de l'entreprise, secrétariat
+091 Dictionnaires relatifs aux sciences de l'Antiquité
+092 Atlas, cartes
+093 Annuaires nationaux et internationaux (personnes, institutions)
+094 Bibliographies, tables et index
+095 Rapports, chroniques de fouilles
+096 Inventaires, thésaurus, corpus, catalogues de musée et d'exposition
+097 Guide et récit de voyages
+098 Encyclopédies
+099 Dictionnaires
+1X0 Europe en général Méditerranée
+1X1 Péninsule ibérique
+1X2 France
+1X3 Iles britanniques
+1X4 Scandinavie
+1X5 Benelux, Suisse, Allemagne Autriche
+1X6 Balkans, Roumanie, Hongrie, Bulgarie Croatie, Slovénie, Serbie, etc.
+1X7 Italie, Sicile, Sardaigne, Malte
+1X8 Grèce Égée
+1X9 Russie jusqu'à l'Oural, Pologne, Hongrie, Tchéquie, Slovaquie, Caucase, Ukraine, Moldavie, Pays baltes...
+10X TOUTES PÉRIODES
+11X PRÉHISTOIRE, PALÉOLITHIQUE, MÉSOLITHIQUE, (Boréal)
+12X NÉOLITHIQUE, PRÉCÉRAMIQUE et CÉRAMIQUE (Atlantique)
+13X CHALCOLITHIQUE, BRONZE ANCIEN, BRONZE MOYEN (Sub-Boréal)
+14X BRONZE RÉCENT, TRANSITION AU FER (Sub-Boréal)
+15X CELTES, GRECS, ÉTRUSQUES, (Sub-Atlantique)
+16X ÉP. HELLÉNISTIQUE, ROME --->323 Mort d'Alexandre
+17X PALÉOCHRÉTIENS, BYZANCE, HAUT MOYEN ÂGE --->395 Mort de Théodose
+18X MOYEN-ÂGE, OCCIDENT CHRÉTIEN et ISLAM, CROISADES
+19X RENAISSANCE, TEMPS MODERNES, "GRANDES DÉCOUVERTES", INDUSTRIEL
+112 Tardenoisien
+122 Cardial, Peu Richardien, Chasséen
+123 Windmill Hill
+125,126,129 Danubien, Céramique linéaire
+125 Cortaillod
+126 Starcevo
+126 Cucuteni
+127 Poterie imprimée
+127 Lagoza
+128 Dimini
+129 Tripolje
+129 Danubien,Céramique linéaire
+131,132,133 Campaniformes, Cultures mégalithiques
+131 El Argar
+132 SOM
+132 Céramique cordée
+137 Terramare
+138 Helladique
+138 Cycladique
+138 Minoen ancien et moyen
+138 Mycènes
+142 143 144 145 146 "Champs d'urnes"
+147 "Nouraghe, Peuples de la mer"
+148 (Proto) Géométrique, Doriens
+151,152 Hallstatt, Celtes, La Tène
+151 Ibères
+157 Phéniciens, Etrusques, "Grande Grèce"
+158 Grèce archaïque, classique
+160 Empire romain
+161,162,163,164,165,166,167,168,169 Conquête romaine
+170 Empire byzantin
+172 Mérovingiens, Carolingiens
+172 173 174 175 176 177 178 179 Invasions "Barbares"
+180,181,183,184,185,186 Invasions scandinaves et musulmanes
+181 Califat de Cordoue
+182 Huns, Normands, Royaumes de France et de Bourgogne
+183 Royaume Anglo-Saxon
+185 Royaume de Germanie
+187 Normands, Royaume de Sicile
+188 Royaume de Morée
+189 Royaume de Pologne
+2X0 Général, Maghreb
+2X1 Maroc, Sahara espagnol
+2X2 Algérie, Sahara
+2X3 Tunisie, Libye
+2X4 Égypte, Soudan
+20X TOUTES PÉRIODES
+21X PRÉHISTOIRE, PALÉOLITHIQUE, MÉSOLITHIQUE, (Boréal)
+22X NÉOLITHIQUE, PRÉCÉRAMIQUE et CÉRAMIQUE CHALCOLITHIQUE
+23X BRONZE ANCIEN, BRONZE MOYEN, ANCIEN ET MOYEN EMPIRE
+24X BRONZE RÉCENT, DÉBUT DU FER, NOUVEL EMPIRE
+25X GRÈCE, jusqu'à Alexandre
+26X PTOLEMEES,ROME
+27X HAUT MOYEN ÂGE
+28X MOYEN ÂGE, ISLAM
+29X TEMPS MODERNES
+3X0 Proche et Moyen Orient en général 
+3X1 Anatolie, Turquie, Chypre 
+3X2 Levant, Syrie (en général et jusqu'à l'Euphrate), Phénicie, Palestine, Liban, Israël, Jordanie du Nord 
+3X3 Péninsule arabique, Jordanie du Sud, Nabatène, Arabie, Emirats, Pays du Golfe 
+3X4 Mésopotamie, Syrie du Nord, Iraq 
+3X6 Azerbaïdjan, Susiane, Zagros, Iran (en général)
+3X8 Plateau iranien
+30X TOUTES PÉRIODES
+31X PREHISTOIRE, PALEOLITHIQUE, MÉSOLITHIQUE
+32X NÉOLITHIQUE, PRÉCÉRAMIQUE et CÉRAMIQUE
+33X BRONZE ANCIEN, BRONZE MOYEN
+34X BRONZE RÉCENT, DÉBUT DU FER, Phéniciens
+35X GRECE, PERSE
+36X ÉP. HELLENISTIQUE, ROME, PARTHES
+37X EMPIRE BYZANTINE, SASSANIDES
+38X CONQUÊTES ISLAM, CROISADES
+39X RENAISSANCE, TEMPS MODERNES, CIVILISATION INDUSTRIELLE
+4X0 Général
+4X1 Géorgie, Kirghizistan, Tadjikistan, Ouzbékistan, Kazakhstan, Turkménistan, Caspienne (ancienne U.R.S.S. asiatique), Arménie
+4X2 Asie centrale (Tarim, Altaï), Turkestan chinois (Hsin-chiang)
+4X3 Asie occidentale, Afghanistan, Pakistan
+4X4 Sub-continent indien, Inde, Népal, Sri Lanka, Andaman, Nicobar, Maldives, Laquedives
+4X5 Himalaya, Tibet, Assam, Bhutan, Sikkim, Bangladesh, Birmanie
+40X TOUTES PÉRIODES
+41X PRÉHISTOIRE, PALÉOLITHIQUE ET MÉSOLITHIQUE
+42X NÉOLITHIQUE PRÉCÉRAMIQUE ET CÉRAMIQUE
+43X BRONZE ANCIEN ET MOYEN
+44X BRONZE RÉCENT, DÉBUT DU FER
+45X GRÈCE, PERSE, Age du fer
+46X Ép. HELLÉNISTIQUE, ROME, PARTHES, Indianisation
+47X HAUT MOYEN ÂGE, Sassanides, Huns
+48X MOYEN ÂGE, ISLAM, Omeyyades, Seljukides
+49X TEMPS MODERNES
+5X0 Général, Péninsule indochinoise
+5X1 Thailande, Laos, Malaisie
+5X2 Cambodge, Champa
+5X3 Indonésie, Bornéo, Célèbes, Iles de la Sonde...
+5X4 Mongolie russe, Chine, Mandchourie, Vietnam
+5X5 Sibérie, Corée, Japon
+5X6 Australie, Philippines, Micronésie, Mélanésie
+5X7 Polynésie
+50X TOUTES PÉRIODES
+51X PRÉHISTOIRE, PALÉOLITHIQUE, MÉSOLITHIQUE
+52X NÉOLITHIQUE, PRÉCÉRAMIQUE et CÉRAMIQUE
+53X BRONZE ANCIEN, BRONZE MOYEN, CHINE des SHANG
+54X BRONZE RÉCENT, DÉBUT DU FER, CHINE des ZHOU
+55X Confucius, Chine des Royaumes combattants, indianisation de l'Asie du Sud-Est
+56X Chine des Qin et Han, Asie du Sud-Est indianisée
+57X HAUT MOYEN ÂGE, Chine des Tang, Kambuja, Sailendre, Helen
+58X MOYEN ÂGE, Chine des Song, Yuan, Ming, Angkor, Srivijaya, Mojopahit, Koryo
+59X TEMPS MODERNES
+6X0 Amérique en général, Amérique latine
+6X1 Antarctique, Arctique, Canada
+6X2 USA
+6X3 Mexique, Maya, (même du Guatemala)
+6X4 Amérique centrale, Antilles, Vénézuéla
+6X5 Colombie, Equateur, Pérou, Bolivie, Chili (sauf Patagonie et Terre de Feu)
+6X6 Guyanes, Brésil, Paraguay, Uruguay, Argentine, Patagonie et Terre de Feu
+60X Toutes Périodes
+61X PRÉHISTOIRE, PALÉOLITHIQUE, MÉSOLITHIQUE
+62X NÉOLITHIQUE, PRÉCÉRAMIQUE et CÉRAMIQUE
+63X BRONZE ANCIEN, BRONZE MOYEN
+64X BRONZE RÉCENT, DÉBUT DU FER
+65X ÂGE DU FER jusqu'à -300
+66X Ép. CLASSIQUE
+67X HAUT MOYEN-ÂGE
+68X MOYEN-AGE
+69X TEMPS MODERNES, CONQUÊTE
+7X0 Général, Afrique sauf Nord et Nord-Est 
+7X1 Afrique de l'Ouest : Mauritanie, Mali, Burkina Faso, Sénégal, Guinée, Guinée-Bissau, Côte d'Ivoire, Ghana, Togo, Bénin, Niger, Nigeria, Sierra Leone, Liberia
+7X2 Afrique centrale : Tchad, Cameroun, République centrafricaine, Guinée équatoriale, Gabon, Congo, Rép. Démocratique du Congo
+7X3 Afrique de l'Est et du Sud : Ouganda, Kenya, Rwanda, Burundi, Tanzanie, Angola, Zambie, Malawi, Zimbabwe, Namibie, Afrique du Sud, Botswana, Lesotho, Swaziland, Mozambique, Swaziland, Somalie, Ethiopie, Erythrée
+7X4 Madagascar et Iles de l'Océan indien : Seychelles, Comores, Réunion, Mascareignes, Maurice
+70X Toutes Périodes
+71X PRÉHISTOIRE, PALÉOLITHIQUE, MÉSOLITHIQUE
+72X NÉOLITHIQUE, PRÉCÉRAMIQU et CÉRAMIQUE CHALCOLITHIQUE
+73X BRONZE ANCIEN, BRONZE MOYEN
+74X BRONZE RÉCENT, DÉBUT DU FER
+75X ÂGE DU FER
+76X de -300/-200 à +200/400
+77X HAUT MOYEN ÂGE
+78X MOYEN ÂGE, ISLAM
+79X TEMPS MODERNES
+90X Ouvrages généraux de méthodes
+91X Prospection et fouilles
+92X Documentation, enregistrement, diffusion
+93X Conservation, restauration, muséographie
+94X Analyse des matériaux naturels (écofacts)
+95X Analyse des matériaux fabriqués ou transformés (artefacts)
+96X Datation
+97X Disciplines formelles
+98X Disciplines formelles en sciences de l'Antiquité
+901 Général (Ouvrages couvrant plus de trois indexations suivantes), Archéométrie
+910 Ouvrages généraux sur la prospection et les fouilles, techniques de fouilles
+911 Exploration avant prospection
+912 Prospection sur le terrain, cartographie, photographie aérienne, topographie, télédétection
+913 Prospection géophysique
+914 Fouilles subaquatiques
+920 Général, documentation, information scientifique, bibliothèques
+921 Méthodes et formes d'enregistrement, thésaurus, codes, ontologie, web sémantique
+922 Expression graphique et cartographique, photographie, photogrammétrie
+923 Banque et bases de données (fichiers et systèmes), notice d'utilisation
+924 Diffusion de l'information (audiovisuels, micrographie) autre que 925
+925 Publications: formes, méthodes
+930 Général sur la conservation-restauration, problème des faux
+931 Conservation des objets en pierre
+932 Conservation des céramiques, verres, émaux, mosaïques
+933 Conservation des matières organiques, manuscrits, peintures
+934 Conservation des objets en métal
+935 Conservation des sites
+936 Muséographie, présentation dans les musées
+940 L'homme dans la biosphère (histoire et théorie), écologie, climatologie
+941 Géologie, sédimentologie, minéralogie, géomorphologie, pédologie, géochimie
+942 Botanique, palynologie, anthracologie, carpologie
+943 Zoologie et paléozoologie
+944 Biologie humaine, anthropologie physique, médecine pathologie, paléoanthropologie
+945 Paléontologie générale, ensemble de la paléontologie humaine et animale, problèmes d'évolution
+946 Physique et/ou chimie, astronomie
+950 Général : méthodes physiques et chimiques de l'archéologie
+951 Général : méthodes physiques de l'archéologie
+952 Général : méthodes chimiques de l'archéologie
+953 Analyse physique et/ou chimique des minéraux, pierres (sauf argiles), verres, stucs
+954 Analyse des argiles
+955 Analyse des métaux
+956 Analyse des matériaux organiques préparés ou transformés : aliments, teintures, végétaux, textiles, peaux, bois, os, papier
+957 Restitution des techniques de fabrication par les méthodes de laboratoire, archéologie expérimentale
+960 Méthodes de datation en général
+961 C 14
+962 Radioactivité, autres que C l4 (potassium, argon, plomb, uranium, thorium, etc.), thermoluminescence
+963 Archéomagnétisme
+964 Dendrochronologie et dendroclimatologie
+965 Hydratation de l'obsidienne
+966 Autres méthodes de datation : constituants des os, fluor, racémisation
+970 Général
+971
+972 Mathématiques, statistiques
+973 Logique : épistémologie générale, analyse de discours, simulation, intelligence artificielle
+974 Informatique (logiciels et matériel)
+980 Archéologie théorique
+981 Méthodes ''qualitatives'' : typologies traditionnelles, stylistique
+982 Méthodes ''quantitatives'' : mathématiques, statistiques (échantillonnages, taxinomie, sériation), informatique appliquée à l'archéologie sauf bases de données (cf. 923)
+983 Méthodes logiques appliquées à l'archéologie : épistémologie générale, analyse de discours, simulation, intelligence artificielle
+712,713 Oldowayen, Kalinien
+713 Melka Kontouré 
+722,723 Makalien.
+722 Wiltonien
+723 Sangoen (Tanzanie)
+743 Voyage du Pharaon Nechas sur les côtes orientales
+752,753 Arrivée des Bantou et introduction du fer
+754 la colonisation malaise 
+761 Les Garamantes au Fezzan, culture Nok 
+763 Arabes sur côte orientale (-100); Coptes en Ethiopie (Chrétiens en Abyssinie) 
+773 Islam sur côte orientale (depuis 622-Hégire), Axoumites
+781 Empire du Ghana (VIIIe s. - 918), Royaume du Tekrour du Sosso, Almoravides (Awdaghost), Empire du Mali (apogée : 1255-1290), Yorouba à Ifé (culture Nok), Cités-états Haoussa, Empire de Gao (=Songhaï, 1400-1490), Bénin
+782 Empire d'Oyo, Kanem-Bornou, 1250-1595 : empire du Congo 
+783 Construction de Zimbabwe, Comptoirs arabes sur la côte orientale (Pemba-Kilwa-Mogadichou-739),Proto-Vakaranga au Lac Tanganika vers 850, Fondation de Zanzibar par les Arabes (1107), commerce avec la Chine, Kilwa et Paté (1250) - Sultanat de Kilwa ; Ethiopie : Dynastie Zague (1314-1350), Royaume de Monomotapa
+784 Nouvelle colonisation malaise, colonies arabes (comptoirs), rapport avec Inde
+791 conquête marocaine (1549) puis colonisation
+792 Portugais au Cameroun et au Gabon (1470), colonisation portugaise (1520)
+793 Portugais au Cap de Bonne-Espérance (1487), Portugais au Cap (1498), Portugais en Ethiopie (1520)
+794 Arrivée des Portugais (1500)
+611 Old Cordilleran tradition, Plano, Anangula
+612 Paléoindiens, Clovis, Folsom, Big-game hunting, Desert tradition, Northwest microblade
+613 Santa Isabel, Iztapan, Lerma, Diablo, Paléoindiens
+614 Paléoindiens
+615 Chivateros, précéramique I, II et III
+616 Magellan I, Early Catalan
+622 Archaic tradition I, Northw. tradition, California tradition
+624 Période I : Méso-indiens
+625 Précéramique V, VI, Intihuasi
+626 Magellan III, et IV, San Antonio
+621 631 Prédorsétien (2000-1000/800)
+631 Archaic small tools
+632 Archaic tradition II
+633 Pré-classique I
+635 Période formative, Early Chiripa
+636 Tutishcainyo
+641 651 661 671 Dorsétien (1000- +1500)
+641 Eskimo
+643 Préclassique III, Tlatilco
+644 Période II
+645 Chavin, Late Chiripa
+646 Anapatuba
+653 Olmèques, Cuicuilco-Ticoman, Monte Alban I
+655 Cupisnique
+663 Pré-classique III, Téotihuacan I et II, Monte -Alban II 
+664 Mochica, Lima, Mazca, Cajamarca I, Candellaria I, San Augustin I et II
+672 Mogollon, Basketmakers, Hopewell, Woodland tradition
+673 Totonaque, Zapotèque, Maya classique, Téotihuacan III et IV Monte Alban II
+674 Période III, Coclé, Darien, Selin, Early and Middle polychrome
+675 Pachamac, Cajamarca II et III, Diaguita arch., Candellaria II et III
+674 Manacapuru, Magellan V
+681 Dorsétien, Thulé
+682 Mississipian trad., Plains village trad..
+683 Toltèque (Tula), Aztèque, Chichimèque, Maya Nouv. Empire (Yucatan) Monte Alban IV, Mixtèques
+684 Période IV, Cocal, Late polychrome
+685 Intermediaire tardif, Tiahuanaco, Chimu, Ica, Inca, Cajamarca IV et V, Diaguita, Santa Maria, Belèn, San Augustin III, Chibcha, Tairona
+686 Curimatau, Santarem
+696 Calundu
+511,512, 514 Hoabinien, Bacsonien
+512 Loangien
+514 Sinanthrope 
+515 Sockehang-ni, Tenggwan-Chiu
+517 Préhistoire océanienne, ouvrages généraux 
+522 Laang Spean
+524 Yang-Chao, Long-chan, Hia
+525 Sopo, Kungsan, Jômon ancien
+531 Thaïlande: Bang Chiang, Khok Charoen
+532 Mimotien
+534 Shang (An-yang); Vietnam: Sahuynh
+535,536 Japon: Jômon moyen; Corée: arts des steppes
+541,542,543,544,545 Mégalithes I (Thaïlande, Cambodge, Indonésie)
+541,542 Dongsonien du Sud, Tambours de bronze (pour Thaïlande et Cambodge)
+544 Zhou (Lo-yang); Vietnam: Dong son
+545 Japon: Jômon postérieur et final; Corée: civil. Tagare
+546 Poterie Lapita-Watom
+547 Tonga
+551,552 Dongsonien du Sud, Tambours de bronze Mégalithes II
+553 Indonésie: tambours de bronze, Urnes
+554 Année Printemps et Automne, Royaumes Combattants, Confucius; Vietnam: royaume Lac-Viet
+555 Japon: époque Yayoi : dotâku
+556 Poterie décorée d'incisions et de reliefs appliqués
+561,562 Indianisation , Empire du Fou-nan: Oc-èo
+561 Thaïlande: Dvâravati, Chaiya, Takua Pa
+562 Cambodge: Phnom Da
+563 Târumâ Malayu
+564 Han et Qin: Grande muraille, Trois royaumes, Six dynasties (265-589); Vietnam: conquête chinoise
+565 Corée: Invasion chinoise (-109), Royaumes Paekche, Silla, Koguryo; Japon: Tumulus et Haniwa
+571 Dvâravati, Nakhom Pathom, U Thong, Ku Bua
+572 Kambujâ, Sambor, Prei Kuk, Champa ou Lin Yi, Mi-Son E1, Hoa lai, Dong-duong
+573 Sanjaya, roi Sailendra, style de Dieng, Borobudur
+574 Sui, T'ang; Vietnam: domination chinoise
+575 Corée: Silla unifié; Japon: shintô et bouddhisme, ères Asuka, Tempyô, Heian
+581 Conquête khmère: Lopburi, Conquête Thaï, Srîvijaya, Sukhothai, Royaume Lao
+582 Empire khmer: Angkor, conquête thaï, Srei Santhor, Campa: Mi-Son A1, conquête khmère, conquête Vietnam
+583 Java: Dynastie de Matarâm (Prambanam), Srîvijaya, Royaume de Singhâsari, royaume de Mojopahit, islamisation
+584 Cinq dynasties, Song, Yuan, Ming; Vietnam: dynastie Ly et Trân
+585 Corée: Royaume Koryo; Mongols; Japon: ères de Kamakura, Muromachi
+591 Ayudhya, Lan-na, Thonburi, Bangkok; royaume de Vieng Chan (Laos)
+592 art d'Ang Chan, Oudong, protectorat
+593 Sultanats. Islam, Portugais, Hollandais
+594 Qing, République; Vietnam: dynastie Hô, Lê, Nguyên, Français
+595 Corée: Dynastie Yi; Japon: ères Momoyama, Edo, Tokugama, Meiji
+597 Maori, Marae
+413 Soanien
+415 Tibet: Anyathien
+423 Afghans : Nal
+424 Indes : Kulli
+433,434 Civilisation de l'Indus
+433 Mohenjo-Daro Harappa
+434 Black ware (Inde)
+433,434 Invasion aryennes, civilisations védiques
+443 Painted Gray Ware
+445 Birmanie : mégalithes, Tambours de bronze
+445 Inde : Mégalithes du Dekkan, culture de Jorwe 
+444,443 Invasions aryennes, civilisations védiques
+453 Perses achéménides, Alexandre, Taxila
+454 Satrapes perses, Bouddha, civil. des Brahmanas, Maghada
+462 Asie centre : art de Mirân, Loulan
+463 Kusan, Gandhara: Ai-Khanoum, Begram, Taxila; Scythes
+463,464 Gréco-Bouddhique
+464 Empire Maurya, dyn. Sunga, Kânva, Sâtavâhana: Bhârut, Sanchi; art de Mathurâ, empire Gupta
+465 Indianisation; Birmanie : Royaume Pyu, Suddhamavati, Martaban; indianisation du Népal
+472 Asie centre : Sassanides, Sogdiane, Ferghâna: Ak Bechim, Kuva, Afrasiabad, Bukhara, Pendzikent, Khotan, Koutcha, Tourfan, Arabes 
+473 Perses, Huns Bamiyân, Arabes 
+474 Art post-Gupta, Empire Câlukya, Empire Pallava; Ceylan: royaume d'Anurâdhapura 
+475 Birmanie : royaume de That&ouml;n et de Srîksetra; Népal: dyn. Lichchavi; Tibet: rois Yarlung; Cachemire: Lalitâditya 
+482 Asie centre : Arabes omayyades, Mahmud de Ghazni, Seldjoukides, Gengis Khan, Tamerlan 
+483 Arabes et Chinois Saldjuqides, Gengis Khan, Tamerlan 
+483,484 Invasions musulmanes Pâla Sena 
+484 Inde : Pâla Sena, Empire Pratîhâra, Empire Candella, Invasions musulmanes, Hoysala, Vijayanagar, Cola, Pândya, Moghols 
+485 Birmanie : Empire de Pagan; Cachemire: Utpala et Lohara; Népal: Thâkuri et Malla; Tibet: théocratie, raids mongols 
+493 Sultans Tughluq, Sayyrd et Lodî, Mongols 
+494 Inde: Moghols, Râjput, Portugais, Hollandais, Anglais 
+483,484 Birmanie: royaume Taungu, Pegu, Ava, Anglais; Tibet: Mongols, Dalaï-lamas. 
+214 Sébilien
+211,212,213 Atérien Ibéro-Maurusien
+212,213 Capsien
+221,222,223 Néolithique de tradition caspienne
+224 Badarien, Nagada I, Nagada II, Amratien, Gerzéen
+243 Carthage
+244 Nouvel Empire, Période Libyienne, Période Kouchite, Thèbes, Karnak, Louqsor, Tanis (XVIIIe-XXIVe Dynastie)
+241,242,243 Phéniciens
+251,252,253 Colonisation grecque
+254 Empire éthiopien, Invasion assyrienne, perse (XXVe Dynastie), saïtes, Alexandre
+261,262,263 Guerre punique
+261,262,263,264 Conquête romaine
+243 Ptolémées, Philae, Edfou, Méroé, Coptes
+271,272,273 Invasions barbares
+273 Exarchat de Carthage
+281,282,283 ISLAM
+312 Natoufien
+321 Hacilar, çatal Hüyük, Mersin
+322 Jéricho, Amuq A-D, Ras Shamra, Byblos, Tahunien, Ghassulien
+324 Jarmo, Eridu, Hassuna, Obeid, Ninive 1 et 2, Halaf, Samarra
+326 Giyan 
+326 Sialk I et II
+331 Alaca, Alishar, Troie I II et III, Hittites anciens
+332 Amuq E, Jéricho VIII
+334 Uruk, Nasr, Ur, Ninive 3, Mari, Assur, Dynastie de Babylone, Sumer, Akkad, Isin Larsa, Nippur XX
+336 Suse ABCD, Protoélamite
+326 Sialk III, Hissar, Tureng Tepe
+341 Hittites (Moyen et Nouveau), Chute de Troie, Kassites, Phrygiens, Lydiens
+342 Occupation égytienne, Chute d'Ugarit, Hébreux, Canaan, Peuples de la Mer
+344 Mitanni, Kassites, Assyrie, Hurrites
+341 Urartu, Cimmériens
+351 Ionie, Perse, Grèce
+353 Civilisation Sub-Arabe
+354 Néo-Babyloniens
+356 Persépolis, Achéménides
+356,358 Mèdes, Perse
+361 Conquête hellénistique, Pergame
+362 Syrie romaine, Palmyre
+363 Pétra 
+366 Séleucides
+366,368 Parthes
+371,372 époque byzantine, Paléochristianisme
+374,376,378 Sassanides
+381 Byzance, Islam, Saljûqides
+382 Croisades, Omeyyades
+383 Mahomet, 1ères conquêtes
+384,386,388 Abbassides, Saljûqides
+386 Mongols
+391 Constantinople, Ottomans
+394,396,398 Timurites, Safavides

Index: value_builder/macles.pl
===================================================================
RCS file: value_builder/macles.pl
diff -N value_builder/macles.pl
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ value_builder/macles.pl	4 Sep 2006 12:32:53 -0000	1.1.2.1
@@ -0,0 +1,185 @@
+#!/usr/bin/perl 
+
+# $Id: macles.pl,v 1.1.2.1 2006/09/04 12:32:53 hdl Exp $
+
+# Copyright 2000-2002 Katipo Communications
+#
+# This file is part of Koha.
+#
+# Koha is free software; you can redistribute it and/or modify it under the
+# terms of the GNU General Public License as published by the Free Software
+# Foundation; either version 2 of the License, or (at your option) any later
+# version.
+#
+# Koha 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
+# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
+# Suite 330, Boston, MA  02111-1307 USA
+
+use strict;
+use CGI;
+use C4::Context;
+use C4::Interface::CGI::Output;
+use C4::Auth;
+use HTML::Template;
+use Data::Dumper;
+use vars qw( $tagslib);
+use vars qw( $authorised_values_sth);
+use vars qw( $is_a_modif );
+use utf8;
+
+=head1
+
+plugin_parameters : other parameters added when the plugin is called by the dopop function
+
+=cut
+sub plugin_parameters {
+my ($dbh,$record,$tagslib,$i,$tabloop) = @_;
+return "";
+}
+
+sub plugin_javascript {
+my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_;
+my $function_name= "100".(int(rand(100000))+1);
+my $res="
+<script>
+function Focus$function_name(subfield_managed) {
+return 1;
+}
+
+function Blur$function_name(subfield_managed) {
+	return 1;
+}
+
+function Clic$function_name(i) {
+	newin=window.open(\"../plugin_launcher.pl?plugin_name=macles.pl&index=\"+i,\"MACLES\",',toolbar=false,scrollbars=yes');
+
+}
+</script>
+";
+
+return ($function_name,$res);
+}
+
+sub plugin {
+my ($input) = @_;
+	my %env;
+
+#	my $input = new CGI;
+	my $index= $input->param('index');
+
+
+	my $dbh = C4::Context->dbh;
+    my $rq=$dbh->prepare("SELECT authorised_value, lib from authorised_values where category=\"MACLES\" order by authorised_value DESC");
+    #tabs
+    $rq->execute;
+    my @BIGLOOP;
+    my @innerloop;
+    my (%numbers,%cells, at colhdr, at rowhdr, at multiplelines, at lists,$table);
+    while (my $tab = $rq->fetchrow_hashref){
+      if (! utf8::is_utf8($tab->{lib})) {
+        utf8::decode($tab->{lib});
+      }
+      my $number=substr($tab->{authorised_value},0,1);
+      if ($tab->{authorised_value}=~/[0-9]XX/){
+        $numbers{$number}->{'hdr_tab'}=$tab->{lib};
+        $numbers{$number}->{'Table'}=($number=~/[1-7]/);
+      } elsif ($tab->{authorised_value}=~/.X./){
+        $tab->{authorised_value}=~s/X/\./;
+        $table=1;
+        unshift @{$numbers{$number}->{"col_hdr"}},{"colvalue"=>$tab->{authorised_value},"collib"=>$tab->{lib}};
+      } elsif ($tab->{authorised_value}=~/..X/){
+        $tab->{authorised_value}=~s/X/\./;
+        unshift @{$numbers{$number}->{"row_hdr"}},{"rowvalue"=>$tab->{authorised_value},"rowlib"=>$tab->{lib}}
+      } elsif ($tab->{'authorised_value'}=~/,/){
+        my @listval=split /,/,$tab->{'authorised_value'};
+#          $tab->{authorised_value}=~s/,/","/g;
+#         $tab->{authorised_value}="(".$tab->{authorised_value}.")";
+        my %mulrows;
+        foreach my $val (@listval){
+          unshift @{$numbers{$number}->{$val}},$tab->{'lib'};
+          my $mulrow=substr($val,0,2);
+          $mulrows{$mulrow}=1;
+        }
+        foreach my $mulrow (sort keys %mulrows){
+          unshift @{$numbers{$number}->{$mulrow}},{'listlib' => $tab->{'lib'},'listvalue' => $tab->{'authorised_value'}};
+        }
+      } else {
+        unshift @{$numbers{$number}->{$tab->{'authorised_value'}}},$tab->{'lib'};
+      }
+#       warn "BIGLOOP IN".Dumper(@BIGLOOP);
+    }
+    foreach my $num (sort keys %numbers){
+      my @tmpcolhdr = @{$numbers{$num}->{'col_hdr'}} if ($numbers{$num}->{'col_hdr'});
+      my @tmprowhdr = @{$numbers{$num}->{"row_hdr"}} if ($numbers{$num}->{'row_hdr'});
+      my @lines;
+      my @lists;
+      my %BIGLOOPcell;
+      foreach my $row (@tmprowhdr){
+        my $tmprowvalue=$row->{rowvalue};
+        my $rowcode=$1 if $tmprowvalue=~/[0-9]([0-9])\./;
+        my @cells;
+        if (scalar(@tmpcolhdr)>0){
+        #cas du tableau bidim
+          foreach my $col (@tmpcolhdr){
+            my $tmpcolvalue=$col->{colvalue};
+            my $colcode=$1 if $tmpcolvalue=~/[0-9]\.([0-9])/;
+            my %cell;
+            $cell{celvalue}=$num.$rowcode.$colcode;
+            $cell{rowvalue}=$tmprowvalue;
+            $cell{colvalue}=$tmpcolvalue;
+            if ($numbers{$num}->{$num.$rowcode.$colcode}){
+              foreach (@{$numbers{$num}->{$num.$rowcode.$colcode}}){
+                push @{$cell{libs}},{'lib'=>$_};
+              }
+            }else {
+              push @{$cell{libs}},{'lib'=>$num.$rowcode.$colcode};
+            }
+            push @cells,\%cell;
+          }
+          if ($numbers{$num}->{$num.$rowcode}){
+            my @tmpliblist=@{$numbers{$num}->{$num.$rowcode}};
+            push @lists,{'lib'=>$row->{rowlib},'liblist'=>\@tmpliblist};
+          }
+        } else {
+        #Cas de la liste simple
+          foreach my $key (sort keys %{$numbers{$num}}){
+            my %cell;
+            if ($key=~/$num$rowcode[0-9]/){
+              $cell{celvalue}=$key;
+              foreach my $lib (@{$numbers{$num}->{$key}}){
+                push @{$cell{'libs'}},{'lib'=>$lib};
+              }
+              push @cells,\%cell;
+            }
+          }
+        }
+        push @lines,{'cells'=>\@cells,'rowvalue'=>$row->{rowvalue},'rowlib'=>$row->{rowlib}};
+      }
+      $BIGLOOPcell{'Lists'}=\@lists if (scalar(@lists)>0);
+      $BIGLOOPcell{'lines'}=\@lines if (scalar(@lines)>0);
+      $BIGLOOPcell{'col_hdr'}=\@tmpcolhdr if (scalar(@tmpcolhdr)>0);
+      $BIGLOOPcell{'Table'}=$numbers{$num}->{'Table'};
+      $BIGLOOPcell{'hdr_tab'}=$numbers{$num}->{'hdr_tab'};
+      $BIGLOOPcell{'number'}=$num;
+      push @BIGLOOP,\%BIGLOOPcell;
+    }
+#     warn "BIGLOOP OUT".Dumper(@BIGLOOP);
+    my ($template, $loggedinuser, $cookie)
+        = get_template_and_user({template_name => "value_builder/macles.tmpl",
+                    query => $input,
+                    type => "intranet",
+                    authnotrequired => 0,
+                    flagsrequired => {editcatalogue => 1},
+                    debug => 1,
+                    });
+    $template->param(BIGLOOP=>\@BIGLOOP);
+	$template->param("index"=>$index);
+	print $input->header(-cookie => $cookie),$template->output;
+}
+1;
+
+





More information about the Koha-cvs mailing list