Un portail de briques

Le 21 juin dernier, nous avons été invités par l’ADBS Auvergne à une après-midi d’étude sur les portails de bibliothèques à l’Institut National de Recherche en Sciences et Technologies pour l’Environnement et l’Agriculture (IRSTEA) d’Aubières, à deux pelouses de nos bureaux.

Marc Maisonneuve, formateur chez Tosca Consultants, était aussi convié pour faire le point sur la notion de portail documentaire et présenter l’offre de logiciel.  Nous sommes ensuite intervenus pour présenter le portail de la BCU. Colette Cadiou, responsable du service IST de l’IRSTEA a pris la parole à son tour pour présenter les portails Cemadoc et ist.irstea.fr, le tout nouveau portail de l’IRSTEA dédié à l’IST qui venait juste d’être mis en ligne, pour l’occasion.

Que retenir de cette après-midi de travail et d’échanges ?
D’abord des éclaircissements, salutaires, sur la notion de portail, qui nous apparaissait, à bien des égards, confuse, ambiguë, et polémique, tant et si bien que dans l’équipe, on rechignait parfois à employer ce mot, lui préférant celui, plus consensuel, de site web.
Marc Maisonneuve se donnait pour tâche de démêler cet embrouillamini. L’expression portail de bibliothèque n’est-elle pas employée à toutes les sauces? Tantôt on parle de portail pour parler de site web, tantôt de catalogue, tantôt d’outil de recherche fédérée, tantôt d’OPAC nouvelle génération… Il faut dire que même le JISC (Joint Information Systems Comittee) entretient cette confusion, en parlant de “service réseau”, de point d’accès, où l’information, en ses différentes sources, se présente et se recherche par différents moyens, par l’entremise de technologies variées, pour se retrouver, sous forme de résultat, uniformisée, fusionnée, et affichée dans un format unifié. Si l’idée de portail y est, elle pourrait s’exprimer de façon plus limpide. Marc Maisonneuve la passe au crible et en extrait l’essence : le portail, c’est un “outil permettant de réaliser tout ou partie d’un site web, point d’accès unique à de multiples ressources documentaires, services et contenus.”
On perçoit mieux la différence entre portail et site web. Si le portail peut effectivement être un site web, il peut aussi n’en être qu’une composante, la composante-outil, en l’occurrence, pour rechercher des ressources documentaires, bénéficier des services en ligne de la bibliothèque, et, accessoirement, accéder aux contenus proposés par le bibliothèque. Cela ne veut pas dire que les contenus sont accessoires, bien au contraire, simplement qu’ils peuvent être dissociés du portail comme outil, en demeurant par exemple sur un site à part, comme celui de l’institution à laquelle appartient la bibliothèque.

Le portail peut se résumer à un seul outil, mais il en intègre souvent plusieurs. Marc Maisonneuve le qualifie à juste titre d’“outil composite”. Idéalement, le portail doit répondre à toutes les attentes des usagers. La typologie présentée des logiciels métiers recense tous les logiciels conçus pour répondre à ces attentes.
Le degré zéro du portail de bibliothèque, c’est le catalogue bien sur, avec pour corolaire en terme de logiciels, le SIGB et l’OPAC. Difficile en effet d’imaginer une bibliothèque sans catalogue. Ensuite, bien sur, c’est l’accès aux ressources numériques qui prime, avec pour corolaire les outils de signalement (liste AZ, résolveur, recherche fédérée etc.) On peut envisager, aussi, d’intégrer au portail une bibliothèque numérique, pour accéder aux documents primaires, sans oublier qu’il s’agit là juste d’un autre site que le portail interrogera, et non d’un élément charnière structurant. Le système de gestion de contenu, permettant d’éditer les contenus relatifs à la bibliothèque peut être une autre brique du portail.

Des briques très chics
Les briques très chic (upper level) par fallentoato flickr (CC BY-NC-SA 2.0)

Un portail de bibliothèque, ce sont des briques agrégées. Comment les agréger ? C’est l’architecture du portail qui sera décisive. Marc Maisonneuve présente plusieurs cas de figure. Le must, c’est d’ajouter à ces briques essentielles un opac de nouvelle génération, pour interroger de façon unifiée les métadonnées de toutes les ressources. C’est là un vrai service. Ce que n’est pas la recherche fédérée, qui interrogeant séparément les ressources de la bibliothèque apparaît beaucoup trop complexe et difficile à prendre en main pour les usagers.
L’architecture idéale ? Elle allie SIGB, catalogue, annuaire LDAP, CMS, base de données, et un OPAC de nouvelle génération pour chercher au sein de toutes ces ressources de façon unifiée via des métadonnées rassemblées, unifiées et enrichies.
Une fois définie l’architecture, il est nécessaire de mettre en œuvre une stratégie conforme à ses moyens pour réaliser le portail, en commençant par la brique la plus essentielle, le SIGB, puis le CMS, enfin les autres briques complémentaires qui ajoutent de la valeur à l’ensemble. Marc Maisonneuve nous met en garde vis à vis des produits tout en un, conçus pour répondre à toutes les fonctions. Cette ambition les dessert, le risque guettant de faire tout à peu près, comme le défunt jubil, comme notre ancien portail Archimed. Ces solutions tout en un sont envisageables pour les bibliothèques démunies, qui manquent de moyens et de compétences pour réaliser et mettre en oeuvre des outils libres, pouvant s’interfacer les uns les autres.

L’intervention de Marc Maisonneuve éclairait sous un nouveau jour notre propre démarche de construction de portail. Rétro-éclairage, pourrait-on dire, car le même Marc Maisonneuve était déjà intervenu à la BCU, en 2009,  à un moment où la BCU était encore BCIU pour donner une formation sur les portails documentaires, et faire le diagnostic de l’existant Archimed : cet ancien portail ne convenait plus en terme de positionnement, étant destiné à la fois aux usagers des bibliothèques communautaires et universitaires. Il était cher, peu ergonomique, et rigide, puisque la moindre modification supposait une intervention facturée du prestataire. La seule issue possible était de se donner les moyens de créer un nouveau portail. Comment ? En renforçant l’équipe de la bibnum. C’est ainsi que Mathieu et moi-même furent recrutés, que Raphaële et Karine intégrèrent à plein temps l’équipe, qu’Olivier prit les rennes du service. La BCU disposait déjà d’un SIGB et d’un opac absysnet. L’urgence était de concevoir et de construire le site. Nous nous y attelâmes. Les bibliothécaires des sections purent gérer comme ils le souhaitaient leurs contenus en ligne. Après l’évaluation du site, nous sommes à même de proposer bientôt une nouvelle mouture. Un résolveur de lien a été mis en place. Nous avons mis en oeuvre notre première bibliothèque virtuelle avec les carnets géologiques de Philippe Glangeaud. L’OPAC de nouvelle génération sera bientôt en ligne. Les archives ouvertes institutionnelles ont été développées. Demain, un nouveau SIGB s’imbriquera sans doute.

De briques en briques, le portail se façonne, avec des outils libres. Les briques s’interfacent, s’interposent, communiquent entre elles, pour un accès unifié aux résultats des recherches documentaires.

Portails de bibliothèques et centres de documentation : Présentation de l’offre de logiciels par Marc Maisonneuve Tosca Consultant, Aubière 21 Juin 2012 14h à 15h 30

Le portail de la BCU : retour d’expérience, par Olivier Legendre, Camille Meyer, Mathieu Bacault, Aubière 21 Juin 2012, 15h30 à 16h30

Le tout électronique, à quoi bon ?

A bin of books, by Jane Cockman (Publié sur FlickR sous licence Creative Commons Paternité, Pas d'utilisation commerciale).
A bin of books, by Jane Cockman (Publié sur FlickR sous licence Creative Commons Paternité, Pas d’utilisation commerciale).

Face à une évolution inéluctable, et même lorsqu’on l’a reconnue comme telle, il n’est pas inutile de s’interroger sur ses conséquences positives et négatives, ne serait-ce que pour amortir celles-ci et accroître celles-là autant que possible. Le fait est là : la BCU va passer au tout électronique pour la plupart de ses revues. L’échéance est incertaine, mais il n’y a pas de doute sur le fait. J’y travaille activement, pour ma part.  Non que ce passage m’apparaisse comme un pas historique exaltant, une sorte de saut qualitatif sans précédent dans l’histoire du savoir, qui ouvrirait soudain d’infinis possibles à la science et à l’humanité. Vingt ans de reculs sur les effets du Web me semblent prouver qu’il produit naturellement la profusion, non la qualité. Si je travaille à ce que la BCU s’achemine, comme toutes les bibliothèques scientifiques, vers le tout électronique, c’est simplement parce que cela relève d’une nécessité pratique que j’admets fort bien. Et que l’énergie qui ne sera pas dépensée à refuser l’inéluctable pourra être consacrée à des efforts bien nécessaires pour que les conséquences positives puissent compenser, à terme, les quelques désagréments liés à ce passage.

État des lieux

Commençons par examiner la situation : concrètement, que signifie ‘Nous passons au tout électronique‘ ?

Catalogue, par AAlain (publié sur FlickR sous licence Creative Commons Paternité, Pas d'utilisation commerciale, Partage dans les conditions initiales).
Catalogue, par AAlain (publié sur FlickR sous licence Creative Commons Paternité, Pas d’utilisation commerciale, Partage dans les conditions initiales).

Pas le tarissement de toute arrivée d’ imprimés à la bibliothèque. La disparition du papier n’est effective que dans des domaines précis et pour des raisons précises. La dématérialisation a d’abord affecté les outils de signalement (catalogues et bases de données bibliographiques), puis les publications à mises à jour (Encyclopédies et bases de données factuelles) puis les revues, et ne se propage aux ouvrages que très progressivement. Tout cela est conforme au bon sens : la consultation d’un ordinateur se prête remarquablement bien à la pêche à l’information ponctuelle : signalement (catalogue ou base de données bibliographique), fait brut (base de données factuelle). Elle se prête aussi assez bien à la lecture de formes courtes (articles d’encyclopédie ou de revues généralistes). Mais le saut vers les formes longues (articles scientifiques et ouvrages proprement dits) est plus hasardeux, les tâtonnements encore en cours dans le lancement des outils de lecture le montrent, me semble-t-il.

Bart Heird , I blame the Internet (publié sur FlickR sous licence Creative Commons Attribution, Pas d'Utilisation Commerciale, Pas de modification).
Bart Heird , I blame the Internet (publié sur FlickR sous licence Creative Commons Attribution, Pas d’Utilisation Commerciale, Pas de modification).

À Clermont comme ailleurs, le passage est déjà derrière nous pour les outils de signalement et les encyclopédies. Lorsque je parle de passage au tout électronique en train de se faire, je pense donc aux revues, mais parmi les revues seulement aux revues de sciences dites dures ; et parmi celles-ci seulement aux bouquets de trois grands éditeurs, qui fonctionnent tous trois sur le même mode : la conservation du chiffre d’affaires historique avec constitution d’une liste de titres souscrits. En l’occurrence : Elsevier, Wiley, Springer.
À la BCU, la dépense cumulée pour ces trois éditeurs est de 650 000 € environ : 450 000 € pour Elsevier, 130 000 € pour Wiley, 70 000 € pour Springer. Nous sommes à un stade différent d’avancement vers le tout électronique pour les trois.

  1. Pour Springer, le passage a été effectué.
  2. Pour Elsevier, il a été effectué pour les abonnements relevant directement de la BCU, mais non pour les abonnements des divers laboratoires et UFR.
  3. Pour Wiley, il n’a été effectué ni à l’intérieur de la BCU ni à l’extérieur.

Effets négatifs avérés ou prévisibles

À Clermont comme ailleurs, nous savons que passage au tout électronique pour un outil de signalement comme le catalogue est déjà assimilé comme définitif dans l’esprit de tous, alors même que dans les faits il n’est pas achevé : une petite partie de notre catalogue sous forme papier n’est toujours pas informatisé, et pourtant, il n’est plus disponible au public puisque le moyen normal d’accès est désormais, aux yeux de tous, l’électronique. Si un garagiste disait au propriétaire d’une automobile en panne : “Vous allez marcher un peu, cela va vous faire du bien !” il entendrait probablement : “Je fais quotidiennement 35 kilomètres sur l’autoroute, donc merci de parler sérieusement et de me trouver rapidement une voiture de prêt”. De la même façon, lorsqu’il arrive que l’accès en ligne à une revue soit coupée, il est bien inutile de dire aux lecteurs : vous savez, nous avons le papier ! Pour la forme courte qu’est l’article comme pour la recherche de références, le papier n’est plus une alternative acceptable à l’électronique. Point. Puisque dans certains cas (pour la partie non informatisée du catalogue, par exemple), l’information existe mais n’est, en pratique, plus disponible, je pense que l’on peut ranger au nombre des effets secondaires indésirables du passage au tout électronique la perte marginale d’information qui résulte de ce caractère désormais “invisible” du papier.

L’autre effet négatif solidement avéré est financier : les grands éditeurs ont réussi pour l’instant, en instaurant un rapport de forces favorable et  par le biais du recours au “chiffre d’affaires historique”, à faire admettre en pratique un dangereux principe : “l’électronique, c’est comme le papier, mais plus cher”. Cette théorie est pourtant battue en brèche par la réalité des tractations avec certains autres éditeurs. Voici trois ans, Clermont-Ferrand s’est désabonné intégralement des revues imprimées d’un éditeur scientifique. Deux ans après, le chiffre d’affaires historique ayant été “effacé” par ce désabonnement, l’abonnement électronique a pu être souscrit à un coût 5 fois inférieur. L’expérience montre donc que l’électronique peut aussi être “comme le papier, mais moins cher”. La difficulté est évidemment que pour mettre en évidence cette possibilité, il a fallu accepter de se priver, pour un temps, du papier ET de l’électronique. Le postulat des grands éditeurs résultant essentiellement d’un rapport de forces, il n’est pas inéluctable. Mais c’est un fait que la migration des revues vers l’électronique leur a conféré de puissants moyens de pressions. De ce point de vue, le passage au tout électronique est ambivalent, nous allons le voir.

Le dernier effet négatif est local et joue sur le court terme, mais il est pour nous le plus difficile à affronter et c’est la raison pour laquelle je défends si activement un passage volontaire et concerté au tout électronique : mal négocié, ce passage nous procure un grand  inconfort budgétaire. En théorie, il est neutre sur le plan financier (le saut de TVA entre le papier et l’électronique étant compensé par les éditeurs à titre de mesure incitative). C’est ce qui rend très facile le passage au tout électronique à l’intérieur de la BCU, pour les abonnements que nous gérons déjà. Mais il n’en va pas de même pour les abonnements imprimés extérieurs : actuellement détenus par des laboratoires et des UFR sur leur budget propre, ces abonnements se trouvent transférés mécaniquement à la BCU par le passage au tout électronique. Il est donc important pour nous que le transfert de budget accompagne le transfert de charge. Or, il se fait que les laboratoires, faute de bien connaître des clauses des contrats qui nous lient aux éditeurs, ont tendance à opérer les désabonnements pour soulager leur budget, sans avoir bien conscience du transfert automatique qui s’opère sur le nôtre. Tout désabonnement opéré par elles, conformément au contrat qui stipule de maintien du chiffre d’affaires historique, est ipso facto facturé à la BCU. Cette année, ces désabonnements “sauvages” vont dépasser 20 000 €. Inconfortable, disais-je.

Effets positifs possibles

C’est pourquoi il faut travailler à effectuer ce passage d’une façon à la fois officielle et organisée. Si nous y parvenons, des effets positifs du passage au tout électronique peuvent être espérés. 

D’un point de vue interne : la centralisation de la dépense pour ces trois grands bouquets entraînerait une évidente simplification administrative. Une facture annuelle pour la même dépense, c’est mieux que trois ou quatre. Mettre fin à la gestion de flux de papier inutile et des factures dispersées semble aussi de bon sens. Cela ne nous exonère pas d’une réflexion sur ce que l’on fait du temps ainsi économisé. Autre chantier important, mais que nous pouvons aborder sans trop de crainte me semble-t-il, car l’ouvrage ne manque pas franchement.

D’un point de vue stratégique dans les négociations : en centralisant le chiffre d’affaires global, on le rend plus visible, plus identifiable, plus frappant aussi :

La facture 2013 pour les revues est de 500 000 €

 se passe d’explication. Ce n’est pas le cas de :

La facture 2013 est de 300 000 € en apparence mais en fait il  ne faut oublier de prendre en compte les abonnement de l’UMR 575582 et ceux du LHIFT, du CFADE, ainsi que ceux de la bibliothèque associée de  sciences phrénologiques à l’UFR, ainsi que les 12 revues du Centre interdisciplinaire de géographie  historique du Massif Central, que nous finançons par convention reconduite annuellement, ce qui porte la facture à 500 000 €” [toute ressemblance avec des UMR, UFR et autres composantes existant ou ayant existé etc. etc.]

À moyen terme la disparition du papier, mettant fin à la corrélation artificiellement établie entre le portefeuille d’abonnements imprimés détenus et la collection électronique, permettra d’évoluer vers un modèle économique différent.  Elle va nous obliger à regarder vraiment ce que nous obtenons pour l’argent que nous dépensons, et à exiger davantage si nous ne sommes pas satisfaits. Le changement de modèle nous offre par là une chance de faire diminuer nos coûts, ce qui est impossible dans les modèles actuels. Bien entendu, cette diminution des coûts ne découlera pas ipso facto du changement, et l’on peut supposer que les éditeurs vont faire quelques efforts pour maintenir nos coûts à un haut niveau. Mais comme toute redistribution des cartes, le changement offre l’occasion d’une renégociation, et quelques arguments pour faire advenir un changement positif, changement que nous avons déjà obtenu dans certains cas, je l’ai dit plus haut.

Sous réserve d’une réussite au moins partielle sur le point  précédent, l’occasion pourrait  même s’offrir de réutiliser une partie du flux financier capté aujourd’hui par les éditeurs vers l’Open Access, que ce soit par le financement de publications (subvention aux publications dans un modèle auteur-payeur) ou par le financement direct de quelques revues.

En résumé, si notre objectif est de retrouver les moyens de mener une véritable politique documentaire (avec des vrais choix et une vraie liberté), le passage au tout électronique pour les grandes revues, celles qui fonctionnent sur le modèle du “bouquet”, fait partie des nécessaires préalables. Condition non suffisante, mais nécessaire. Nous sommes donc en train de proposer aux deux universités que nous desservons de l’accomplir d’une façon concertée et organisée, dans les deux ou trois ans à venir.

Si ce n’est pas possible, nous avons un plan B, éprouvé par l’expérience humaine sous tous les cieux, en tous les âges : le passage au tout électronique se fera d’une façon non-concertée et désorganisée.

Communication, The work way, by TrasherDave (Publié sur FlickR, sous licence Creative Commons Paternité, Partage dans les conditions initiales).
Communication, The work way, by TrasherDave (Publié sur FlickR, sous licence Creative Commons Paternité, Partage dans les conditions initiales). 

Jumble, by Ian Corey (Publié sur FlickR sous licence Creative Commons Paternité, Pas d'utilisation commerciale, Partage dans les conditions initiales).
Jumble, by Ian Corey (Publié sur FlickR sous licence Creative Commons Paternité, Pas d’utilisation commerciale, Partage dans les conditions initiales). 

 

On sait faire…

Blacklight, deuxième partie : les données d’exemplaires

Quand l'eau se fait RUBIS -Par CHRIS230*** - Licence CC BY-NC-SA 2.0 - Sur Flickr
Quand l’eau se fait RUBIS -Par CHRIS230*** – Licence CC BY-NC-SA 2.0 – Sur Flickr

Suite de notre série de billets sur Blacklight, commencée par une présentation générale.
La question qui nous intéresse désormais est de savoir comment connecter Blacklight à un SIGB. À priori, les nouvelles sont peu réjouissantes car Blacklight ne connait ni le z3950, ni OAI-PMH, ni aucun autre protocole pour interroger directement un catalogue. On peut l’alimenter d’une seule manière par défaut : en lisant des données au format Marc en XML ou ISO2709. Cependant, on peut le faire communiquer avec un catalogue, via z3950 notamment, sans devoir reprogrammer entièrement un client dédié. Si z3950 ne peut pas servir a récupérer un catalogue entier il peut être utile en revanche pour récupérer des informations en direct, comme les données d’exemplaires.

Nous allons utiliser ruby-zoom, une bibliothèque écrite en ruby et interrogeant ZOOM, une API disponible pour développer des services autour de z3950 (ce composant existe aussi pour PHP et C).
Pour l’installer sur un serveur Debian disposant d’un environnement Ruby, cette commande suffit :

[sourcecode language=”bash” gutter=”false”]$ apt-get install yaz libyaz4-dev[/sourcecode]

Ensuite, dans le fichier Gemfile de BL, ajoutons la ligne :

[sourcecode language=”ruby” gutter=”false”]gem ‘zoom’, :git => ‘https://github.com/bricestacey/ruby-zoom.git'[/sourcecode]

puis, dans le répertoire de BL, exécutons la commande suivante pour terminer l’installation de ruby-zoom (il sera compilé puis installé dans ruby on rails) :

[sourcecode language=”ruby” gutter=”false”]$ bundle install[/sourcecode]

Quelques lignes de code pour finir

À cette étape, il faut mettre la main à la pâte et programmer en Ruby. Le plus simple est de créer un nouveau modèle dans le framework Ruby on rails de BL dédié à la connexion z3950. Voici un exemple utilisant les fonctionnalités de ZOOM.

[sourcecode language=”ruby”]

class Z3950
attr_reader :ip, :base, :port, :url
attr_accessor :keyword

def initialize(ip, base, port)
@ip = ip
@base = base
@port = port
@url = @ip + ‘:’ + @port + ‘/’ + @base
end

def search
resultats = ”
begin
ZOOM::Connection.open(url) do |conn|
rset = conn.search(@keyword)
rset.each_record do |record|
resultats += record.xml
end
end
resultats.force_encoding(“ISO-8859-1”).encode(“UTF-8″)
rescue
nil
end
end

def get_localisations(resultats=”)
doc = REXML::Document.new(resultats)
resultats = []
root = doc.root

if root.respond_to?(‘elements’)
#parcours des champs 998
root.elements.each(“datafield[@tag=’998′]”) do |element|
resultab = {}
#pour chaque element fils on récupère les informations d’exemplaire (localisation, salle, cote, empruntable ou non)
element.each do |field|
if field.respond_to?(‘elements’)
resultab[:localisation] = field.elements[“[@code=’b’]”].text if !field.elements[“[@code=’b’]”].nil?
resultab[:salle] = field.elements[“[@code=’c’]”].text if !field.elements[“[@code=’c’]”].nil?
resultab[:cote] = field.elements[“[@code=’e’]”].text if !field.elements[“[@code=’e’]”].nil?
if !field.elements[“[@code=’h’]”].nil?
if field.elements[“[@code=’h’]”].text ==  ‘ ‘
resultab[:empruntable] = nil
else
resultab[:empruntable] = field.elements[“[@code=’h’]”].text
end
end
end
end
resultats << resultab
end
end
resultats
end
end

[/sourcecode]

La méthode search définie ici s’occupe de la connexion au serveur z3950 et la méthode get_localisations récupère et traite la réponse XML du serveur pour obtenir les données d’exemplaire.
Il reste à ajouter quelques lignes de code dans le fichier catalog_controller.rb ou  l’on utilise les deux méthodes précédemment créées, puis dans le fichier show.html.erb pour afficher les résultats obtenus. Voici le résultat sur notre serveur de test, suivi des quelques lignes de code adéquates dans la vue et le contrôleur.

Affichage des données d’exemplaire dans BL

Le code à ajouter dans le fichier catalog_controller.rb :

[sourcecode language=”ruby”]
# surcharge de la méthode show du module catalog de blacklight
def show
@response, @document = get_solr_response_for_doc_id
connexion_z3950 = Z3950.new(‘X.X.X.X’, ‘base’, ‘port’)
connexion_z3950.keyword = @document.id
resultats = connexion_z3950.search
@localisations = connexion_z3950.get_localisations(resultats)

respond_to do |format|
format.html {setup_next_and_previous_documents}

# Add all dynamically added (such as by document extensions)
# export formats.
@document.export_formats.each_key do | format_name |
# It’s important that the argument to send be a symbol;
# if it’s a string, it makes Rails unhappy for unclear reasons.
format.send(format_name.to_sym) { render :text => @document.export_as(format_name), :layout => false }
end

end
end
[/sourcecode]

Et dans la vue (le fichier show.html.erb)

[sourcecode language=”html”]<p>
<table>
<tr>
<td>Disponibilité</td>
<td>Localisation</td>
<td>Salle</td>
<td>Cote</td>
</tr>
<% @localisations.each do |loc| %>
<tr>
<td><%= render_bouton_empruntable loc[:empruntable] %></td>
<td><%= loc[:localisation]%></td>
<td><%= loc[:salle]%></td>
<td><%= loc[:cote]%></td>
</tr>
<% end %>
</table>
</p>

[/sourcecode]

Rechercher dans OpenEdition Search

Vous allez être redirigé vers OpenEdition Search