commit 9eda728c7316a5640b087f5fe15c64cdafbe9c83 Author: Luca Rullo Date: Wed Nov 9 19:19:30 2022 +0000 Dockerized Loreak Asmatezen diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e737dcb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +FROM debian:bullseye-slim + +ARG PASSWORD + +ENV PASSWORD $PASSWORD + +RUN echo $PASSWORD + +RUN apt update && apt -y upgrade + +RUN apt -y install apt-transport-https lsb-release ca-certificates curl gnupg && \ + curl https://packages.sury.org/php/apt.gpg | apt-key add - && \ + echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list && \ + apt update + + +RUN apt install -y \ + apache2 libapache2-mod-php5.6 \ + php5.6-gd php5.6-curl php5.6-mcrypt php5.6-imagick php5.6-json php5.6-xsl php5.6-mysql php5.6-apcu php5.6-common + +RUN a2enmod proxy* +RUN a2enmod rewrite + +RUN rm -rf /var/www/html/* + +COPY data/ /var/www/html/ + +RUN sed -i "s/1234567890/$PASSWORD/" /var/www/html/inc/conexion.php + +RUN chown -R www-data:www-data /var/www/ + +#COPY config/default.conf /etc/apache2/sites-available/000-default.conf + +#ENTRYPOINT ["/usr/sbin/apache2", "-k", "start"] + +#ENV APACHE_RUN_USER www-data +#ENV APACHE_RUN_GROUP www-data +#ENV APACHE_LOG_DIR /var/log/apache2 + +EXPOSE 80 + +CMD apachectl -D FOREGROUND + diff --git a/README.md b/README.md new file mode 100644 index 0000000..0e71983 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +# Loreak Azmatzen + +Zumalakarregi Museoak, CristinaEnea Fundazioarekin eta Bolognako Museo Civico del Risorgimentorekin elkarlanean, ondorengo erakusketa aurkezten du. + +Loreak asmatzen: Naturzale europarrak Euskal Herrian. Petit de Meurville – Pietro Bubani + +Euskal Herrian XIX. mende erdian bi landare zale egokitu ziren. Pietro Bubani, italiar botanikoa, bizitza Piriniotako landareak jaso eta aztertzen eman zuena, gurean 1841 eta 1879 artean zenbait ibilbide egin zituena, beti ere bere herbarioarentzat landareak jasotzeko helburuz. Eta Didier Petit de Meurville, 1857.etik aurrera Frantziako kontsula Donostian, bere zaletasunen artean pintura eta landareekiko maitasuna elkartu zituena, zeinen emaitza Gipuzkoako florari eskainitako hiru album izan ziren. + +Bi pertsonaiak denbora eta espazioan batera egokitzeak eta bien landareekiko maitasuna uztartzeak erakusketa hau antolatzeko bidea eman digu. Bertan gure XIX. mendeko flora zientzia eta artearen aldetik aztertzeko beta izan dugu, bidebatez garai hartako gure herriaren egoera aipatu eta Pirinioen inguruan sortutako , bai ikertzeko zein gozatzeko interesaren aipua ere egin dugu. + +https://www.loreakazmaten.eus/ diff --git a/config/schema.sql b/config/schema.sql new file mode 100644 index 0000000..d34ab87 --- /dev/null +++ b/config/schema.sql @@ -0,0 +1,877 @@ +-- MariaDB dump 10.19 Distrib 10.9.3-MariaDB, for debian-linux-gnu (x86_64) +-- +-- Host: localhost Database: loreak_asmatzen2 +-- ------------------------------------------------------ +-- Server version 10.9.3-MariaDB-1:10.9.3+maria~ubu2204 + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; +/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; +/*!40103 SET TIME_ZONE='+00:00' */; +/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; +/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + +-- +-- Table structure for table `habitats` +-- + +DROP TABLE IF EXISTS `habitats`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `habitats` ( + `id` int(11) DEFAULT NULL, + `nombre_es` varchar(255) DEFAULT NULL, + `nombre_eu` varchar(255) DEFAULT NULL, + `nombre_it` varchar(255) DEFAULT NULL, + `descripcion_es` mediumtext DEFAULT NULL, + `descripcion_eu` mediumtext DEFAULT NULL, + `descripcion_it` mediumtext DEFAULT NULL, + `enlace_es` varchar(255) DEFAULT NULL, + `enlace_eu` varchar(255) DEFAULT NULL, + `enlace_it` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `habitats` +-- + +LOCK TABLES `habitats` WRITE; +/*!40000 ALTER TABLE `habitats` DISABLE KEYS */; +INSERT INTO `habitats` VALUES +(1,'Comunidades herbáceas','Belar komunitateak','Comunità erbacee','Vegetación compuesta de plantas sin tallo duro. Sus plantas serán utilizadas en la alimentación de animales.','Zurtoin gogorrik gabeko landare belarkarez osatutako landaredia. Etxeko abereak elikatzeko larre eta ondugai dira bertako landareak.','Vegetazione composta da piante senza gambo duro. Le sue piante saranno utilizzate per l’alimentazione degli animali.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(2,'Acantilados y arenales costeros','Itsaslabar eta hondartzak','Scogliere e arenili costieri','Ecosistemas situados en el litoral. Superficie de los montes o rocas básicas que llegan hasta el mar o playas cercanas a ríos creados como consecuencia de las subidas y bajadas de las mareas.','Itsasbazterreko ekosistemak. Mendien azala bera edo oinarrizko harkaitza itsasoraino iristen denekoa edo errekak zein ibaiak eta itsasoaren mareen arteko gora-beherak tarteko sortutako errioen inguruko hondartzak.','Ecosistemi situati nel litorale. Superficie dei monti o rocce basiche che arrivano fino al mare o spiagge limitrofe a fiumi creati dal movimento delle maree.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(3,'Repisas rocosas','Erlaitzak','Sporgenze rocciose','Rocas situadas en lo alto de los montes o faldas escabrosas a los que normalmente no llegan ni la agricultura, ni la ganadería y tampoco la silvicultura. Morada de plantas acostumbradas a condiciones de vida muy duras.','Ez nekazaritza, ez abeltzantza eta gehienetan ezta basogintza ere iristen ez diren mendi magal malkartsuetako edo mendi muturretako harkaitzak. Baldintza oso gogorretara ohitutako landareen bizitoki.','Rocce situate in cima ai monti o falde scabrose dove normalmente non arrivano né l’agricoltura, né l’allevamento e nemmeno la silvicoltura. Dimore di piante abituate a condizioni di vita molto dure.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(4,'Cunetas, taludes, cultivos','Areka, ezponda eta laboreak','Cunette, scarpate, coltivazioni','Campos de cultivo y sitios cercanos creados mediante el trabajo realizado en la tierra con intención de adaptarse a la explotación agrícola.','Nekazaritza ustiapenera moldatzeko, lurrean egiten diren lanen ondorioz sortutako soro, sagasti eta inguruko tokiak.','Campi coltivati o luoghi adiacenti creati mediante il lavoro realizzato sulla terra con l’intenzione di adattarla allo sfruttamento agricolo.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(5,'Lugares húmedos o encharcados','Toki heze edo putzuz beteak','Luoghi umidi o acquitrinosi','Debido a las características especiales de la tierra, bien porque se crea allí mismo o por falta de drenaje, espacios en los que en la misma superficie o cerca de ella acumulan agua. En consecuencia nacen peculiares sociedades de plantas.','Lurraren ezaugarri bereziak direla eta, drainatu ezinik edo bertan sortzen delako, azalean edo azaletik bertara ura pilatzen den uneak. Landare-elkarte bereziak garatzen dira bertan.','Spazi nella cui superficie, o vicino ad essa, c’è un accumulo d’acqua, vuoi per le caratteristiche specifiche della terra che perché si crea in loco o per mancanza di drenaggio. Come conseguenza nascono peculiari società di piante.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(6,'Parasitas de raíces','Sustrai parasitoak','Parassiti delle radici','Plantas parásitas o molestas. Viven y crecen gracias a la savia que sustraen a otras plantas desde sus raíces. Son plantas que no pueden sobrevivir por sí solas debido a este hábito.','Landare bizkarroiak edo parasitoak. Beste landare batzuei sustraietatik izerdia lapurtuz bizi eta garatzen dira. Ohitura hau dela eta, bere kasa bizitzeko gai ez diren landareak dira.','Piante parassite o moleste. Vivono e crescono grazie alla linfa che sottraggono ad altre piante dalle loro radici. Per questa caratteristica, sono piante che non possono sopravvivere da sole.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(7,'Matorrales','Sasiak','Cespugli','Maleza que crece entre arbustos y árboles jóvenes. En la mayoría de las ocasiones prevalecen las plantas que nacen sobre brezos, argomas, cornejos, etc.','Zuhaiska eta zuhaitz gazteak tartean hartzen dituen sasitza edo sastrakadia. Gehienetan txilar, ote, zuhandor eta antzekoen gainean garatzen diren lahar eta aihena duten landareak dira nagusi.','Pianta spontanea che cresce tra arbusti e alberi giovani. Nella maggioranza dei casi prevalgono le piante che nascono su brughi, ginestre spinose, Cornaceae, etc.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(9,'Bosque','Basoa','Bosco','Biotopo que además de por árboles, arbustos, hierbas y demás plantas está compuesto por microorganismos animales, hongos y otros. Dependiendo de la tierra y del microclima, las plantas básicas y sobre todo los árboles cambiarán, al mismo tiempo que el conjunto biológico de todos los seres vivos.','Zuhaitza, zuhaiska, belar eta beste landareez gain mikroorganismo animalia, onddo eta abar biltzen duen biotopoa. Lur motaren eta mikroklimaren arabera oinarrizko landareak eta batipat zuhaitzak aldatuko dira, baita bizidun guztien multzo biologikoa ere.','Biotopo composto, oltre che da alberi, arbusti, erbe e altre piante, da microrganismi animali, funghi e altri. A seconda della terra e del microclima, le piante basiche e soprattutto gli alberi cambieranno nello stesso momento dell’insieme biologico di tutti gli esseri viventi.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'); +/*!40000 ALTER TABLE `habitats` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `habitats___` +-- + +DROP TABLE IF EXISTS `habitats___`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `habitats___` ( + `id` int(11) DEFAULT NULL, + `nombre_es` varchar(255) DEFAULT NULL, + `nombre_eu` varchar(255) DEFAULT NULL, + `nombre_it` varchar(255) DEFAULT NULL, + `descripcion_es` mediumtext DEFAULT NULL, + `descripcion_eu` mediumtext DEFAULT NULL, + `descripcion_it` mediumtext DEFAULT NULL, + `enlace_es` varchar(255) DEFAULT NULL, + `enlace_eu` varchar(255) DEFAULT NULL, + `enlace_it` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `habitats___` +-- + +LOCK TABLES `habitats___` WRITE; +/*!40000 ALTER TABLE `habitats___` DISABLE KEYS */; +INSERT INTO `habitats___` VALUES +(1,'Comunidades herbáceas','Belar komunitateak','Comunità erbacee','Vegetación compuesta de plantas sin tallo duro. Sus plantas serán utilizadas en la alimentación de animales.','Zurtoin gogorrik gabeko landare belarkarez osatutako landaredia. Etxeko abereak elikatzeko larre eta ondugai dira bertako landareak.','Vegetazione composta da piante senza gambo duro. Le sue piante saranno utilizzate per l’alimentazione degli animali.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(2,'Acantilados y arenales costeros','Itsaslabar eta hondartzak','Scogliere e arenili costieri','Ecosistemas situados en el litoral. Superficie de los montes o rocas básicas que llegan hasta el mar o playas cercanas a ríos creados como consecuencia de las subidas y bajadas de las mareas.','Itsasbazterreko ekosistemak. Mendien azala bera edo oinarrizko harkaitza itsasoraino iristen denekoa edo errekak zein ibaiak eta itsasoaren mareen arteko gora-beherak tarteko sortutako errioen inguruko hondartzak.','Ecosistemi situati nel litorale. Superficie dei monti o rocce basiche che arrivano fino al mare o spiagge limitrofe a fiumi creati dal movimento delle maree.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(3,'Repisas rocosas','Erlaitzak','Sporgenze rocciose','Rocas situadas en lo alto de los montes o faldas escabrosas a los que normalmente no llegan ni la agricultura, ni la ganadería y tampoco la silvicultura. Morada de plantas acostumbradas a condiciones de vida muy duras.','Ez nekazaritza, ez abeltzantza eta gehienetan ezta basogintza ere iristen ez diren mendi magal malkartsuetako edo mendi muturretako harkaitzak. Baldintza oso gogorretara ohitutako landareen bizitoki.','Rocce situate in cima ai monti o falde scabrose dove normalmente non arrivano né l’agricoltura, né l’allevamento e nemmeno la silvicoltura. Dimore di piante abituate a condizioni di vita molto dure.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(4,'Cunetas, taludes, cultivos','Areka, ezponda eta laboreak','Cunette, scarpate, coltivazioni','Campos de cultivo y sitios cercanos creados mediante el trabajo realizado en la tierra con intención de adaptarse a la explotación agrícola.','Nekazaritza ustiapenera moldatzeko, lurrean egiten diren lanen ondorioz sortutako soro, sagasti eta inguruko tokiak.','Campi coltivati o luoghi adiacenti creati mediante il lavoro realizzato sulla terra con l’intenzione di adattarla allo sfruttamento agricolo.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(5,'Lugares húmedos o encharcados','Toki heze edo putzuz beteak','Luoghi umidi o acquitrinosi','Debido a las características especiales de la tierra, bien porque se crea allí mismo o por falta de drenaje, espacios en los que en la misma superficie o cerca de ella acumulan agua. En consecuencia nacen peculiares sociedades de plantas.','Lurraren ezaugarri bereziak direla eta, drainatu ezinik edo bertan sortzen delako, azalean edo azaletik bertara ura pilatzen den uneak. Landare-elkarte bereziak garatzen dira bertan.','Spazi nella cui superficie, o vicino ad essa, c’è un accumulo d’acqua, vuoi per le caratteristiche specifiche della terra che perché si crea in loco o per mancanza di drenaggio. Come conseguenza nascono peculiari società di piante.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(6,'Parasitas de raíces','Sustrai parasitoak','Parassiti delle radici','Plantas parásitas o molestas. Viven y crecen gracias a la savia que sustraen a otras plantas desde sus raíces. Son plantas que no pueden sobrevivir por sí solas debido a este hábito.','Landare bizkarroiak edo parasitoak. Beste landare batzuei sustraietatik izerdia lapurtuz bizi eta garatzen dira. Ohitura hau dela eta, bere kasa bizitzeko gai ez diren landareak dira.','Piante parassite o moleste. Vivono e crescono grazie alla linfa che sottraggono ad altre piante dalle loro radici. Per questa caratteristica, sono piante che non possono sopravvivere da sole.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(7,'Matorrales','Sasiak','Cespugli','Maleza que crece entre arbustos y árboles jóvenes. En la mayoría de las ocasiones prevalecen las plantas que nacen sobre brezos, argomas, cornejos, etc.','Zuhaiska eta zuhaitz gazteak tartean hartzen dituen sasitza edo sastrakadia. Gehienetan txilar, ote, zuhandor eta antzekoen gainean garatzen diren lahar eta aihena duten landareak dira nagusi.','Pianta spontanea che cresce tra arbusti e alberi giovani. Nella maggioranza dei casi prevalgono le piante che nascono su brughi, ginestre spinose, Cornaceae, etc.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'), +(9,'Bosque','Basoa','Bosco','Biotopo que además de por árboles, arbustos, hierbas y demás plantas está compuesto por microorganismos animales, hongos y otros. Dependiendo de la tierra y del microclima, las plantas básicas y sobre todo los árboles cambiarán, al mismo tiempo que el conjunto biológico de todos los seres vivos.','Zuhaitza, zuhaiska, belar eta beste landareez gain mikroorganismo animalia, onddo eta abar biltzen duen biotopoa. Lur motaren eta mikroklimaren arabera oinarrizko landareak eta batipat zuhaitzak aldatuko dira, baita bizidun guztien multzo biologikoa ere.','Biotopo composto, oltre che da alberi, arbusti, erbe e altre piante, da microrganismi animali, funghi e altri. A seconda della terra e del microclima, le piante basiche e soprattutto gli alberi cambieranno nello stesso momento dell’insieme biologico di tutti gli esseri viventi.','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php','http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php','http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php'); +/*!40000 ALTER TABLE `habitats___` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `habitats_plantas` +-- + +DROP TABLE IF EXISTS `habitats_plantas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `habitats_plantas` ( + `id_habitat` int(11) DEFAULT NULL, + `id_planta` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `habitats_plantas` +-- + +LOCK TABLES `habitats_plantas` WRITE; +/*!40000 ALTER TABLE `habitats_plantas` DISABLE KEYS */; +INSERT INTO `habitats_plantas` VALUES +(1,8), +(1,16), +(1,21), +(1,22), +(1,26), +(1,29), +(1,30), +(1,31), +(1,34), +(1,36), +(1,37), +(1,39), +(1,40), +(1,44), +(1,45), +(1,47), +(1,48), +(1,49), +(1,51), +(1,52), +(1,54), +(1,55), +(1,56), +(1,59), +(1,63), +(1,65), +(1,76), +(1,77), +(1,82), +(1,85), +(1,86), +(1,88), +(1,91), +(1,96), +(1,97), +(1,100), +(1,101), +(1,102), +(1,103), +(1,109), +(1,110), +(1,115), +(1,116), +(1,117), +(1,119), +(1,121), +(1,122), +(1,123), +(1,125), +(1,126), +(1,127), +(1,128), +(1,131), +(1,134), +(1,137), +(1,140), +(1,142), +(1,143), +(1,144), +(2,3), +(2,14), +(2,33), +(2,50), +(2,76), +(2,77), +(2,78), +(2,81), +(2,106), +(2,113), +(2,114), +(2,141), +(3,22), +(3,65), +(3,119), +(3,134), +(3,140), +(4,1), +(4,6), +(4,10), +(4,16), +(4,27), +(4,29), +(4,42), +(4,43), +(4,48), +(4,49), +(4,57), +(4,58), +(4,59), +(4,62), +(4,66), +(4,82), +(4,91), +(4,101), +(4,102), +(4,103), +(4,109), +(4,110), +(4,117), +(4,120), +(4,122), +(4,123), +(4,141), +(4,144), +(5,15), +(5,25), +(5,28), +(5,29), +(5,35), +(5,93), +(5,111), +(6,98), +(6,118), +(7,5), +(7,6), +(7,9), +(7,11), +(7,12), +(7,13), +(7,14), +(7,15), +(7,24), +(7,26), +(7,44), +(7,47), +(7,56), +(7,60), +(7,61), +(7,64), +(7,69), +(7,70), +(7,71), +(7,72), +(7,73), +(7,74), +(7,75), +(7,83), +(7,99), +(7,100), +(7,107), +(7,115), +(7,120), +(7,121), +(7,122), +(7,135), +(7,136), +(9,2), +(9,4), +(9,9), +(9,17), +(9,18), +(9,20), +(9,32), +(9,38), +(9,40), +(9,46), +(9,53), +(9,65), +(9,67), +(9,80), +(9,87), +(9,88), +(9,89), +(9,91), +(9,94), +(9,95), +(9,98), +(9,112), +(9,124), +(9,126), +(9,128), +(9,129), +(9,130), +(9,132), +(9,133), +(9,138), +(9,139), +(9,142); +/*!40000 ALTER TABLE `habitats_plantas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `habitats_plantas___` +-- + +DROP TABLE IF EXISTS `habitats_plantas___`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `habitats_plantas___` ( + `id_habitat` int(11) DEFAULT NULL, + `id_planta` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `habitats_plantas___` +-- + +LOCK TABLES `habitats_plantas___` WRITE; +/*!40000 ALTER TABLE `habitats_plantas___` DISABLE KEYS */; +INSERT INTO `habitats_plantas___` VALUES +(1,8), +(1,16), +(1,21), +(1,22), +(1,26), +(1,29), +(1,30), +(1,31), +(1,34), +(1,36), +(1,37), +(1,39), +(1,40), +(1,44), +(1,45), +(1,47), +(1,48), +(1,49), +(1,51), +(1,52), +(1,54), +(1,55), +(1,56), +(1,59), +(1,63), +(1,65), +(1,76), +(1,77), +(1,82), +(1,85), +(1,86), +(1,88), +(1,91), +(1,96), +(1,97), +(1,100), +(1,101), +(1,102), +(1,103), +(1,109), +(1,110), +(1,115), +(1,116), +(1,117), +(1,119), +(1,121), +(1,122), +(1,123), +(1,125), +(1,126), +(1,127), +(1,128), +(1,131), +(1,134), +(1,137), +(1,140), +(1,142), +(1,143), +(1,144), +(2,3), +(2,14), +(2,33), +(2,50), +(2,76), +(2,77), +(2,78), +(2,81), +(2,106), +(2,113), +(2,114), +(2,141), +(3,22), +(3,65), +(3,119), +(3,134), +(3,140), +(4,1), +(4,6), +(4,10), +(4,16), +(4,27), +(4,29), +(4,42), +(4,43), +(4,48), +(4,49), +(4,57), +(4,58), +(4,59), +(4,62), +(4,66), +(4,82), +(4,91), +(4,101), +(4,102), +(4,103), +(4,109), +(4,110), +(4,117), +(4,120), +(4,122), +(4,123), +(4,141), +(4,144), +(5,15), +(5,25), +(5,28), +(5,29), +(5,35), +(5,93), +(5,111), +(6,98), +(6,118), +(7,5), +(7,6), +(7,9), +(7,11), +(7,12), +(7,13), +(7,14), +(7,15), +(7,24), +(7,26), +(7,44), +(7,47), +(7,56), +(7,60), +(7,61), +(7,64), +(7,69), +(7,70), +(7,71), +(7,72), +(7,73), +(7,74), +(7,75), +(7,83), +(7,99), +(7,100), +(7,107), +(7,115), +(7,120), +(7,121), +(7,122), +(7,135), +(7,136), +(9,2), +(9,4), +(9,9), +(9,17), +(9,18), +(9,20), +(9,32), +(9,38), +(9,40), +(9,46), +(9,53), +(9,65), +(9,67), +(9,80), +(9,87), +(9,88), +(9,89), +(9,91), +(9,94), +(9,95), +(9,98), +(9,112), +(9,124), +(9,126), +(9,128), +(9,129), +(9,130), +(9,132), +(9,133), +(9,138), +(9,139), +(9,142); +/*!40000 ALTER TABLE `habitats_plantas___` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `plantas` +-- + +DROP TABLE IF EXISTS `plantas`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `plantas` ( + `id` int(11) DEFAULT NULL, + `nombre_imagen` varchar(255) DEFAULT NULL, + `imagen_portada` varchar(255) DEFAULT NULL, + `nombre_latin` varchar(255) DEFAULT NULL, + `nombre_bubani` varchar(255) DEFAULT NULL, + `nombre_es` varchar(255) DEFAULT NULL, + `nombre_eu` varchar(255) DEFAULT NULL, + `nombre_it` varchar(255) DEFAULT NULL, + `otro_nombre_es` varchar(255) DEFAULT NULL, + `otro_nombre_eu` mediumtext DEFAULT NULL, + `otro_nombre_it` varchar(255) DEFAULT NULL, + `descripcion_es` mediumtext DEFAULT NULL, + `descripcion_eu` mediumtext DEFAULT NULL, + `descripcion_it` mediumtext DEFAULT NULL, + `enlace_album_es` varchar(255) DEFAULT NULL, + `enlace_album_eu` varchar(255) DEFAULT NULL, + `enlace_bib_digital` varchar(255) DEFAULT NULL, + `imagen1` varchar(255) DEFAULT NULL, + `imagen2` varchar(255) DEFAULT NULL, + `mostrar_planta` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `plantas` +-- + +LOCK TABLES `plantas` WRITE; +/*!40000 ALTER TABLE `plantas` DISABLE KEYS */; +INSERT INTO `plantas` VALUES +(1,'ZM_01_anagallis003197.jpg','ZM_01_anagallis003197.jpg','Anagallis arvensis','Anagallis arvensis','Murajes','Pasmo-belar loregorria','Mordigallina','anagallo, arbejanilla, hierba gitana, hierba jabonera, hierba pajera, mata del Señor, muraje.','amorru-belar, izukeslea, igaberatxa, txori-belarra, izugestes','Centonchio dei campi.','Antiguo nombre griego derivado del término anagelein, que significa reír. Se creía que esta planta tenía virtudes revitalizadoras y confortantes. Según el botánico Lakoizketa, el nombre vasco de izukeslea le viene de que sirve para quitar el miedo. Tal vez provenga de su uso para combatir la rabia.\nSi se tiene cuidado con su toxicidad, la hoja se puede utilizar como la espinaca, cruda o cocida, también en ensaladas. Los brotes tiernos también se pueden consumir como verdura cocida.\nEn Nepal, con el jugo de la planta hacen jabón para el baño y el lavado.\nEn el País Vasco ha sido muy utilizada, y lo sigue siendo, como planta medicinal. Se usa como ungüento para heridas y enfermedades de la piel. También cocida (se hierve 7 minutos y se deja reposar) y tomada en infusión para curar enfermedades respiratorias como la sinusitis. A menudo se le da de comer a los animales para purgarlos.\nLa forma más fácil de reconocer esta planta es fijarse en sus tallos cuadrangulares. \nNormalmente las flores son de color naranja, aunque algunas plantas sufren un cambio repentino y no duradero y dan flores de color azul, por lo que se suele confundir con otra especie del género Anagallis.','Grekoko izen zaharra da, barre egitea adierazten duen anagelein hitzetik eratorria. Landare honek eragin bizigarria, zirraragarria zuela uste zen. Lakoizketaren ustetan, izukeslea izena beldurra kentzeko balio duelako da. Baliteke halaber, amorruaren kontra erabili delako izatea.\nToxikotasunarekin kontu izan da, gordinik edo prestatuta, hostoak espinaka bezala erabil daitezke, baita entsaladan ere. Kimu berriak ere egositako barazki bezala jan daitezke\nLandarea zukututa, bainurako eta garbiketarako xaboia egiten dute Nepalen.\nOso erabilia izan da, eta da, Euskal Herrian sendabelar gisa.\nAzaleko gaitz eta zauriak sendatzeko ukenduak egiteko erabiltzen da.\nBaita egosi (7 minutu irakin eta ondoren pixka batean utzi) eta infusioarekin sinusitisa bezalako arnasbideetako gaitzak sendatzeko ere. Askotan abereei jaten ematen zaie, barrenak garbitzen laguntzeko.\nLandare hau ezagutzeko modurik argiena bere zurtoin karratu formakoei erreparatzea da. Normalean loreak laranja kolorekoak dira.\nZenbait landarek bapateko (eta iraunkorra ez den) eraldaketa baten bidez, lore urdinak ematen dituzte eta Anagallis generoko beste espezie batekin nahas daitezke.','Antico nome greco derivato dal termine anagelein, che significa ridere. Si credeva che questa pianta avesse virtù rivitalizzanti e confortanti. Secondo il botanico Lakoizketa, il nome basco di izukeslea le deriva dalle sue proprietà di eliminare la paura. O potrebbe provenire dal suo uso per combattere la rabbia.\r\nSe si fa attenzione alla sua tossicità, la foglia può essere utilizzata come gli spinaci, cruda o cotta, anche nelle insalate. Anche i teneri germogli si possono consumare come verdura cotta.\r\nIn Nepal, dal succo della pianta si ricava sapone per l’igiene personale e il bucato.\r\nNel Paese Basco è stata molto utilizzata, e lo è tuttora, come pianta medicinale. Si usa come unguento per le ferite e le malattie della pelle. Anche cotta (si fa bollire 7 minuti e si lascia riposare) e presa come infuso per curare i problemi alle vie respiratorie, come ad esempio la sinusite. Si utilizza spesso come purga per gli animali. \r\nLa forma più semplice per riconoscere questa pianta è fare caso ai suoi steli quadrangolari. \r\nNormalmente i fiori sono di colore arancione, anche se alcune piante possono avere un cambiamento repentino ma non duraturo dando fiori di colore blu, per il quale si è solito confonderle con un’altra specie del genere Anagallis.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003197&codigo=3197&pag=1&texto=Anagallis%20arvensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003197&codigo=3197&pag=1&texto=Anagallis%20arvensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=247',NULL,NULL,NULL), +(2,'ZM_02_angelica003205.jpg','ZM_02_angelica003205.jpg','Angelica syvestris','Angelica slvestris','Angélica silvestre','Mendiko aingeru-belarra','Angelica dei boschi',NULL,NULL,'Angelica selvatica, Erba angelica','Dicen que el arcángel San Gabriel enseñó a un sabio cómo combatir la peste negra con una planta de este género, de ahí su nombre de angélica.\nEn tiempos de hambre fue un alimento importante, al menos hasta el siglo XX. \nLas hojas, brotes y tallos son un complemento aromático de ensaladas, y también se cocinan como verdura. Los tallos, hojas y semillas son ingredientes en repostería.\nSus raíces y semillas se utilizan en la fabricación de licores como Benedictine, Vermouth, ginebra, absenta y Chartreuse. Los primeros caramelos verdes se hacían de angélica.\nLos frutos molidos sirven para eliminar los parásitos de la cabeza.\n','Aingeru batek, San Gabrielek, genero honetako landare batekin izurri beltzari aurre egiten erakutsi omen zion jakintsu bati; hortik angelica izena.\nGose garaian elikagai garrantzitsua izan zen, XX. menderarte behintzat.\nHosto, kimu gazte eta zurtoinak entsaladetarako gehigarri aromatiko dira, eta sukaldatuta barazki bezala. Zurtoin, hosto eta haziak gozogintzan erabiltzen dira.\nSustrai eta haziak Benedictine, Vermouth, ginebra, absenta eta Chartreuse bezalako likoreei zapore emateko erabiltzen dira. Angelicarekin egiten ziren lehenengo goxoki berdeak.\nEhotako fruituak buruko parasitoak hiltzeko balio du.\n','Dicono che l’arcangelo Gabriele mostrò a un saggio come combattere la peste nera con una pianta di questo genere; da qui proviene il nome di angelica.\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003205&codigo=3205&pag=1&texto=angelica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003205&codigo=3205&pag=1&texto=angelica',NULL,NULL,NULL,NULL), +(3,'ZM_03_armeria003129.jpg','ZM_03_armeria003129.jpg','Armeria euskadiensis','Armeria pubescens?','Clavel marino','Itsas krabelina','Garofano marino',NULL,NULL,NULL,'Nombre latinizado de armoire, como se designa en francés a una variedad del clavel. \nLa principal característica de esta planta es que es endémica de la costa vasca: no se halla en ningún otro sitio, de ahí la denominación de euscadiensis que le dieron los botánicos franceses J. Donabille y P. Vivant cuando la describieron por primera vez en el monte Urgull en 1976.\nSólo vive en los prados naturales que se forman en los acantilados silíceos de la costa. Parece que ése es el motivo de no extenderse más allá de las costas francesas y cantábricas. La necesidad de esos condicionantes ecológicos tan particulares (influencia directa del mar y acantilados silíceos) ha hecho que se halle en el catálogo de plantas en gran peligro de extinción. Ese riesgo aumentará si se construye el puerto gigante proyectado en los acantilados de Jaizkibel, su principal hábitat. \nTiene una fuerte cepa bajo tierra, y sobre ella se abre una serie de hojas. Florece por primera vez en primavera y principios de verano, con un cabeza compacta formada de múltiples flores rojizas. A menudo florece también en otoño.\n','Frantsesez krabelin bati ematen zaion armoire izen latinizatua. \nLandare honen berezitasun nagusia Euskal Herriko kostaldean bakarrik aurki daitekela da. Hortik euscadiensis izena. J. Donabille eta P. Vivant botanikari frantziarrek deskribatu zuten lehen aldiz Donostiako Urgull mendian, 1976. urtean.\nItsasaldeko silize-labarretan eratzen diren larre naturaletan bakarrik bizi da. Badirudi hori dela Frantziako zein Kantabriako kareharrizko kostaldeetan ez hedatzearen arrazoia. Hain ezaugarri ekologiko bereziak behar dituenez (itsasoaren eragin zuzena eta labar silizeoak), desagertzeko arrisku bizian dauden landareen katalogoetan jasoa dago. Arrisku hau areagotu daiteke bere bizitoki nagusia den Jaizkibelgo itsasaldeko labarretan egin asmo den portu erraldoia burutzen bada. \nLurpeko ipurdi sendoa du, eta horren gainean hosto sorta irteten da. Udaberri-uda hasieran loratzen da lehen aldiz, kolore gorrixka duen lore anitzeko buru trinkoa sortuz. Askotan, udazken hasieran berriz loratzen da.\n','Nome latinizzato da armoire, come viene definita in francese una varietà di garofano. \r\nLa caratteristica principale di questa pianta è che risulta endemica sulla costa basca: non si trova da nessun altra parte, da qui la denominazione di euscadiensis che gli hanno dato i botanici francesi J. Donabille e P. Vivant nel descriverla per la prima volta sul monte Urgull nel 1976.\r\nVive solamente nei prati naturali che si formano sulle scogliere silicee della costa. Sembra che questo sia il motivo della sua mancata estensione oltre la costa francese e cantabrica. La necessità di condizioni ecologiche così particolari (influenza diretta del mare e scogliere silicee) ne fa una delle piante a grande rischio di estinzione. Questo rischio è destinato ad aumentare nel caso si realizzi il progettato porto gigante a Jaizkibel, il suo habitat principale. \r\nHa un forte ceppo sotterraneo sopra il quale si aprono una serie di foglie. Fiorisce per la prima volta in primavera e all’inizio dell’estate, con una testa compatta formata da multipli fiori rossicci. Spesso fiorisce anche in autunno.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003129&codigo=3129&pag=1&texto=Armeria%20euskadiensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003129&codigo=3129&pag=1&texto=Armeria%20euskadiensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=247','Bu_03Armeria _euscadiensis.jpg','BU_03_Armeria_euscadiensis2_c.jpg',NULL), +(4,'ZM_04_arum003114.jpg','ZM_04_arum003114.jpg','Arum maculatum','Arum vulgare','Aro','Sugebelarra','Gigaro','comida de culebra','ilarrondokoa, erre-belarra, suge gerezia, suge artoa, sugerama, sugrama, iaroa,','Gigaro Scuro, Gigaro Macchiato, Pane di Serpe, Lingua di Serpe, Erba da Piaghe, Erba Saetta','Las llamativas bayas rojas que da tras la floración son muy venenosas, pueden provocar incluso alergias. Tal vez por eso algunos de sus nombres vascos y castellanos hacen referencia a las serpientes. Sin embargo, la planta resulta comestible en ciertas condiciones, no así el fruto. Gracias a la cantidad de almidón que poseen sus raíces, se puede hacer harina con ellas, siempre que se recojan antes de que nazcan las hojas. Las raíces y tubérculos se han utilizado, pues, como alimento, pero después de haberlos secado y preparado, para que no resulten tóxicos. También las hojas de fines de invierno resultan comestibles si están bien cocidas.\nEn inglés esta planta recibe nombres curiosos, alguno tan llamativo como \"Lords and Ladies\".\nLos insectos quedan presos durante un momento en los pelos de las flores macho, y tras escapar resultan portadores de polen a las flores hembra de otras plantas.\nCon las raíces pulverizadas se hace una crema antiarrugas para la cara. Asimismo, el almidón de las raíces sirve para endurecer la ropa.','Loraldiaren ondoren ematen dituen baia gorri deigarriak oso pozointsuak dira, batzuei alergia ere eragiten die. Horregatik lotuko da euskaraz hainbeste sugearekin. Hala ere, jangarria da modu jakin batzuetan, fruitua inoiz ez ordea. Sustraietako almidoi kantitateari esker, irina egin daiteke beraiekin. Horretarako hostoak sortu aurretik bildu behar dira sustraiak. Sustrai eta tuberkuloak elikagai bezala erabili izan dira, baina beti ere ondo lehortu edo prestatuta, bestela toxikoa izan bai daiteke. Negu bukaeratik aurrera dauzkan hostoak ere jangarriak dira, ondo eginda.\nIngelesez izen bitxi asko dauka sugebelarrak, haien artean \"Lords and Ladies\" bezalako izen bitxiak.\nIntsektuak lore arren ileetan preso geratzen dira une batez, eta ihes egitea lortzen dutenean polena garraiatzen dute beste landareetako lore emeetara.\nHauts bihurtutako sustraietatik aurpegiko zimurrak kentzeko krema bat egiten da. Sustraietatik ateratzen den almidoiak arropak gogortzeko ere balio du.','Le sorprendenti bacche rosse che dà dopo la fioritura sono molto velenose e possono provocare perfino delle allergie. Forse per questo alcune delle sue denominazioni in basco e spagnolo richiamano il serpente. La pianta è a certe condizioni comunque commestibile, ma così non è per il frutto. Grazie alla quantità di amido presente nelle radici se ne può fare della farina, sempre a patto che vengano raccolte prima che spuntino le foglie. Le radici e i tubercoli sono stati utilizzati come alimento, ma sempre dopo essere stati seccati e preparati per eliminarne la tossicità. Anche le foglie della fine dell’inverno risultano commestibili se ben cotte.\r\nIn inglese questa pianta ha avuto nomi curiosi, alcuni particolarmente appariscenti, come \"Lords and Ladies\".\r\nGli insetti restano incastrati per un breve periodo nella peluria dei fiori maschi e dopo essersi liberati diventano portatori di polline ai fiori femmina di altre piante.\r\nDalle radici polverizzate si ottiene una crema antirughe per il viso. L’amido delle radici serve invece per inamidare i vestiti.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20maculatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20maculatum','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=31',NULL,NULL,NULL), +(5,'ZM_05_asphodelus003180.jpg','ZM_05_asphodelus003180.jpg','Asphodelus albus ','Asphodelus albus ','Gamón','Anbulu zuria','Asfodelo montano','gamón, atiza candiles, gamueto, garahillas, jagota, perigallo, puerro silvestre, ujeta, vara de San José.','anbulu zuria, porrostia, anpulu zuria, kunbulloa, anbuloa, ambolin, zelaikoporrua, txerri-patata, sorgin-porrua, ambala','Asfodelo bianco.','El nombre proviene del griego. Según la mitología antigua, esta planta predominaba en los campos Elíseos, cementerios y prados cercanos al infierno. Según parece, proviene de los términos a, no, spodos, ceniza, y edos, valle. Albus, porque da flores blancas. \nSe suele hallar en robledales y hayedos. Florece a principios de primavera, antes de que nazcan las hojas de los árboles que les quitan la luz.\nTiene la hoja parecida a la del puerro, pero su tallo es amarillo, no blanco, y tiene un olor particular. Las flores se abren en un escapo que puede superar el metro de altura.\nEl fuego no le quema las raíces, por lo que se reproduce con facilidad en terrenos calcinados.\nCrudo resulta tóxico, pero pierde las toxinas cuando se cuece. El mejor modo de comerlo es preparado como purrusalda. Para ello, se recolectan las pujas de primavera y se cocinan como si fueran puerros, aunque el sabor y la textura son más suaves. También se puede comer de otros modos. En caso de querer comer las raíces, las mejores son los bulbos de un año, no más viejos. En otra época fue importante alimento entre los vascos. \nSi se fermenta la raíz gruesa, se puede obtener alcohol.\nLas hojas se utilizan también como pasto para el ganado porcino.','Alkohola ere egiten da, zain lodikotea hartzituz.\nHostoak zerrientzako janari bezala ere erabiltzen dira.','Il nome viene dal greco. Secondo l’antica mitologia questa pianta era predominante nei Campi Elisi, nei cimiteri e nei prati vicini all’inferno. A quanto sembra viene dai termini a, no, spodos, cenere, e edos, valle. Albus, perché i suoi fiori sono bianchi. \r\nSi trova solitamente nei querceti e nei faggeti. Fiorisce al principio della primavera, prima che nascano le foglie degli alberi che le tolgono la luce.\r\nLa sua foglia è molto simile a quella del porro, ma il suo tronco è giallo e non bianco e ha un odore particolare. I fiori si schiudono su un gambo erbaceo che può superare il metro di altezza.\r\nIl fuoco non ne brucia le radici, per questo si riproduce con facilità in terreni bruciati.\r\nCrudo è tossico ma perde la tossicità con la cottura. Il modo migliore di mangiarlo è preparato come una zuppa. A questo fine si raccolgono le cime di primavera e si cuociono come i porri, anche se sapore e consistenza sono più morbidi. Si può mangiare anche in altri modi. Se si volessero mangiare le radici è meglio scegliere i bulbi di un anno e non quelli più vecchi. In passato tra i baschi è stato un importante alimento. \r\nDalla radice grossa fermentata si può ottenere dell’alcool.\r\nLe foglie si usano anche come cibo per i suini.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003180&codigo=3180&pag=1&texto=Asphodelus%20albus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003180&codigo=3180&pag=1&texto=Asphodelus%20albus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=108','Bu_05_Asphodelus_albus.jpg','Bu_05_Asphodelus_albus_c.jpg',NULL), +(6,'ZM_06_calyategia003146.jpg','ZM_06_calyategia003146.jpg','Calystegia sepium',NULL,'Correhuela mayor','Ezkerte zuria','Vilucchio bianco','campanilla, carricillo, albohol, carrigüela ancha, convólvulo, enredadera con orejas, enredadera de agua, hiedra campana, hierba lechera, hilandera, punta de dardo, soga de árboles.','birigane zuri, birigain zuri edo lurruntz zuri,ezker-aihen zuri ,aixen aundi, txori mahatsa, lurruntzi, pipila, ezkiluntza','Campanelle bianche, Vilucchione','Tanto en sus nombres vascos como castellanos, a menudo se confunden la correhuela mayor (Calystegia sepium) y la correhuela menor (Convolvulus arvensis).\nEl nombre proviene del griego kalyx, cáliz, y stêgôn, cubierta, a causa de las brácteas que cubren o esconden el cáliz. Sepium significa valla.\nLas flores se cierran de noche y se abren de día.\nSe enrosca alrededor de otras plantas y las ahoga hasta matarlas. Una vez que se asienta en un sitio es muy difícil desenraizarla, ya que sus raíces son muy profundas y basta cualquier pedazo que haya quedado enterrado para que vuelva a renacer. Por eso se la considera una muy mala hierba en jardines, huertas y prados.\nSi se limpian y preparan bien sus tallos y raíces, es muy sabrosa, ya que tiene mucho azúcar y almidón. La raíz favorece el flujo biliar.\nLos tallos son muy flexibles, y en caso de necesidad pueden servir de atadura, ya que son muy duros, aunque no muy duraderos.','Ezkerte zuriaren (Calystegia sepium) eta ezkerte beltzaren (Convolvulus arvensis) euskarazko izenak nahastuta azaltzen dira maiz.\nIzena grekoko kalyx, kaliza, eta stêgôn, estalki, hitzetatik dator. Lore honen kaliza ezkutatzen edo estaltzen duen brakteak direla eta. Eta sepiumek hesi esan nahi du.\nLoreak gauez itxi eta egunez irekitzen dira.\nBeste landareen inguruan kiribiltzen da eta hil arte itotzen ditu. Lekuren batera iritsitakoan oso zaila da kanporatzen, sustrai oso sakonak bai ditu eta lurrazpian geratzen den edozein sustrai zatitatik birsortu daiteke. Horregatik, oso belar txar gogaikarria da lorategi, baratza eta soroetan.\nZurtoin eta sustraiak ondo garbitu eta prestatuta, zapore goxoko jakia da, azukre eta almidoi askokoa. Behazunaren jarioa areagotzen du sustraiak.\nZurtoinak malguak dira eta larrialdiko loturak egiteko balio du, gogorra baina ez oso iraunkorra izanik','Sia nelle sue denominazioni basche che castigliane si fa spesso confusione tra il vilucchio bianco (Calystegia sepium) e il vilucchio comune (Convolvulus arvensis).\r\nIl nome viene dal greco kalyx, calice, e stêgôn, tetto o copertura, per le grandi brattee che coprono o nascondono il calice. Sepium significa ostacolo.\r\nI fiori si chiudono la notte e si aprono di giorno.\r\nSi attorciglia intorno ad altre piante e le soffoca fino ad ucciderle. Una volta insediata in un posto e molto difficile sradicarla, perché le sue radici sono molto profonde e basta che anche solo una minima parte resti nel terreno per farla ricrescere. Per questo è considerata un erbaccia in giardini, orti e prati.\r\nSe tronchi e radici vengono pulite e preparate a dovere è molto gustosa, perché ricca di zucchero e amido. La radice favorisce il flusso biliare.\r\nIl tronco è molto flessibile e all’occorrenza può servire come legaccio perché estremamente duro anche se non altrettanto resistente.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003146&codigo=3146&pag=1&texto=Calystegia%20sepium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003146&codigo=3146&pag=1&texto=Calystegia%20sepium',NULL,NULL,NULL,NULL), +(7,'ZM_08_carlina003088.jpg','ZM_08_carlina003088.jpg','Carlina vulgaris ','Calluna vulgaris ','Cardo','Kardua','Carlina comune',NULL,NULL,' Cardo dorato','La carlina abunda en nuestros montes. Prefiere la caliza, por lo que se puede encontrar en herbazales secos, bosques templados, pedregales o cualquier otro rincón que sea calizo. Es planta bianual: durante el primer año da hojas y acumula nutrientes, y durante el siguiente florece entre julio y septiembre si el tiempo es seco. Es muy apropiada para hacer miel, por lo que la frecuentan las abejas. \r\nHay muchas opiniones sobre el origen del nombre carlina. Según la más extendida, un ángel se le apareció a Carlomagno y le mostró la raíz de esta planta; gracias a ella pudo curar la enfermedad que aquejaba a gran parte del ejército con el que pretendía conquistar Roma. Fue el conocido botánico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) quien propuso este nombre en el siglo XVI. \r\nTiene virtudes medicinales como sudorífico y laxante. \r\nEn Asia se ha utilizado para fabricar tintes','Kardu ugari da gure mendietan. Karezalea da eta berau duen edozein belardi lehor, baso epel, harri tarte edo landu gabeko edozein bazterretan bizi da. Bi urteko landarea da; lehenengoan hostoak eman eta jakiak pilatzen ditu, hurrengo urtean uztailetik iraila artean, giroa lehorra denean, loratzen da. Eztitarako oso egokia izaki, erleek gustuko dute. \nCarlina izenaren jatorriari buruzko iritzi ugari dago. Zabalduenaren arabera, Carlomagnori azaldu zitzaion aingeru batek karduaren sustraia erakutsi zion eta honekin Erroma harrapatzeko ahaleginetan ari zen bere armadan hedatzen ari zen gaixotasun bati aurre egin eta sendatu zuen. Izen hau XVI mendean Andrea Cesalpino (Arezzo 1.519-06-06, Erroma 1.613-02-23) botanikari toskanar ezagunak proposatu zuen. \nSendagai gisa izerditzea errazten du eta libragarria da. \nAsian tindagaiak egiteko erabili izan da\n','La carlina abbonda sulle nostre montagne. Preferisce il calcare e per questo si può trovare in pascoli secchi, boschi temperati, terreni rocciosi o qualsiasi altro angolo che sia calcareo. E’ una pianta biennale: durante il primo anno dà foglie e accumula sostanze nutrienti, mentre nel successivo fiorisce tra luglio e settembre se il tempo è secco. E’ molto indicata per produrre miele, dato che è molto frequentata dalle api. \r\nSull’origine del nome Carlina ci sono opinioni diverse. Secondo quella più diffusa un angelo apparve a Carlomagno mostrandogli la radice di questa pianta; con questa riuscì a curare la malattia che tormentava la maggior parte dell’esercito con cui avrebbe dovuto conquistare Roma. A proporre questo nome è stato il famoso botanico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) nel XVI secolo. \r\nHa virtù medicinali come sudorifero e lassativo. \r\nIn Asia è stato utilizzato per fabbricare tinture.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003088&codigo=3088&pag=1&texto=Astakardua','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003088&codigo=3088&pag=1&texto=Astakardua',NULL,'BU_07_Cardamine pratensis.jpg','BU_07_Cardamine_pratensis_c.jpg',NULL), +(8,'ZM_07_cardanime003104.jpg','ZM_07_cardanime003104.jpg','Cardamine pratensis',NULL,'Berro de prado','Xanpora','Crescione dei prati','mastuerzo de prado','bumika, buminka, burminka','Crescione dei prati, Billeri','Flor sagrada de las hadas, llevarla a casa supone acarrear la desgracia.\nSus hojas y brotes, crudos o cocinados, son muy ricos en minerales y vitaminas, en especial en vitamina C. Las hojas, recogidas pronto en primavera y en pequeñas cantidades, son excelente condimento para la ensalada. El sabor de las flores y capullos recuerda al de los berros. Sus flores blancas son, pues, un agradable complemento en las ensaladas.\nLas hojas recogidas a principios de primavera se pueden usar en infusión para el asma, así como para combatir la indigestión o para abrir el apetito.','Maitagarrientzat sakratua den lorea izaki, etxe barrura ekartzeak zori txarra dakar.\nHosto eta kimu berriak (gordinik zein prestatuta) oso aberatsak dira mineral eta bitaminatan (batez ere C bitamina). Hostoak udaberrian goiz bildu behar dira, eta kopuru txikitan, entsaladetarako gehigarri bikainak dira. Lore eta lore begiek berroaren antzeko zaporea dute. Lore zuri hauek entsaladetarako gehigarri atsegin dira.\nUdaberriaren hasieran bildutako hostoekin egindako infusioa asmarentzat erabil daiteke eta baita indigestioari aurre egin eta gosea sortzeko ere.','Fiore sacro delle fate, portarla dentro casa può portare disgrazia.\r\nLe sue foglie e i suoi germogli, sia crudi che cotti, sono molto ricchi di minerali e vitamine, specialemente di vitamina C. Le foglie, raccolte presto in primavera e in piccole quantità, sono eccellenti nell’insalata. Il sapore di fiori e boccioli ricorda quello dei crescioni. I suoi fiori bianchi sono, quindi, un gradevole complemento nelle insalate.\r\nLe foglie raccolte all’inizio della primavera si possono usare in infusione per curare l’asma, così come per combattere l’indigestione o per aprire lo stomaco.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003104&codigo=3104&pag=1&texto=Cardamine%20pratensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003104&codigo=3104&pag=1&texto=Cardamine%20pratensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=150',NULL,NULL,NULL), +(9,'ZM_09_clematis003151.jpg','ZM_09_clematis003151.jpg','Clematis vitalba','Clematis vitalba','Clemátide','Aihen zuria','Vitalba','cabello de ángel, hierba ardiente, hierba de pordioseros, muermera, parrilla, salomón, sogaza, vidalba, vidraria, viña blanca o virgaza.','aihena, aihen-belarra, aihenturi, ezkerraihen, aihenezker, aixenezker, burukage, autina, metu, amarauna','Vitalba, Clematide comune, Ticchi, Viorna, Vidaelba..','El nombre latino de \"vitalba\" significa \"vitis\" (sarmiento, pámpano) y \"alba\" (blanco), como su nombre vasco, aihen zuri. Lo de blanco se debe al color de sus flores, con aspecto de plumas.\nEn castellano y francés también se la denomina \"hierba de pordioseros\" y \"herbe aux gueux\", ya que en un tiempo los mendigos la utilizaban para provocarse llagas y provocar a la compasión de los donantes.\nEs planta trepadora, que se enrosca en otras plantas para subir. Como pueden ahogarlas hasta la muerte, se la ha relacionado con el demonio y con las brujas. \nSin embargo, en otros lugares se la ha vinculado a Dios y la Virgen, por la blancura de sus flores. \nEn Nueva Zelanda se ha convertido en una planta invasora, muy dañina para las especies locales.\nEl pedúnculo se ha fumado como si fuera tabaco. \nEl tallo se ha utilizado como cordel.','Latinez duen \"vitalba\" izenak \"vitis\" (aihen edo mahatsondo) eta \"alba\" (zuria) esan nahi du, euskaraz bezalaxe. Zuritasuna luma-itxurako loreek ematen diote.\nGazteleraz eta frantzesez \"hierba de pordioseros\" eta \"herbe aux gueux\" ere esaten zaio, garai batean eskaleek beren buruei zauri eeta orbanak eragiteko erabiltzen bai zuten, horrela ingurukoen errukia jasotzeko.\nLandare igokaria da, eta beste landareen gainean kiribiltzen da gora egiteko. Hauek hil arte ito ditzakeenez, Deabruarekin eta sorginekin lotu izan da. \nBeste leku batzuetan Ama Birgin eta Jaungoikoarekin lotu da, bere loreen zuritasuna dela medio. \nZelanda Berrian espezie inbasorea bihurtu da, bertako landaredian kalte handiak eraginez.\nZortena, zigarroa bailitza, erre izan da. \nAihena bera lokarri gisa erabili da.','Il nome latino di \"vitalba\" significa \"vitis\" (tralcio, sarmento) e \"alba\" (bianco), come nel suo nome basco, aihen zuri. Il bianco è dovuto al colore dei suoi fiori, che hanno la parvenza di piume.\r\nAnche in castigliano e francese la si chiama \"hierba de pordioseros\" e \"herbe aux gueux\", dato che in passato i mendicanti la utilizzavano per procurarsi piaghe e suscitare la compassione dei passanti.\r\nE’ una pianta rampicante, che si inerpica su altra piante per salire. E siccome può soffocarle fino a farle morire è stata messa in relazione con il demonio e le streghe. \r\nDa altre parti invece, è stata accostata a Dio e alla Vergine Maria per il biancore dei suoi fiori. \r\nIn Nuova Zelanda è diventata una pianta infestante, molto dannosa per le specie locali.\r\nIl pedunculo è stato fumato come se fosse tabacco. \r\nIl gambo è stato utilizzato come spago.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003151&codigo=3151&pag=1&texto=Clematis%20vitalba','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003151&codigo=3151&pag=1&texto=Clematis%20vitalba','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=425',NULL,NULL,NULL), +(10,'ZM_10_convolvulus003148.jpg','ZM_10_convolvulus003148.jpg','Convolvulus arvensis','Convolvulus minor','Correhuela menor','Ezkerte beltza','Vilucchio comune','altabaquillo, campanica, enredadera, garrotilla, guniolas, hiedra de lagarto, hilandera, maroma, panes, raizdecilla, torregüela, trababedarri de las piezas, zaramalla.','ezkerte beltza, ziurda, txildurka, biurda, belarlatz, sapabelarra, kanpantxila-belar, kanpantxilar, pipila, lurruntza, lurruntze txiki,txurrutx, txurrusta-belar, lehuntz, pipalore, amabirgin atorra, birunga, hedetxo, kentidonia, odolbelar, s',NULL,'Convolvulus es procedente del latín convolvo y significa enroscado o trepador. Arvensis hace referencia a que crece en heredades cultivadas.\nTanto en sus nombres vascos como castellanos, a menudo se confunden la correhuela mayor (Calystegia sepium) y la correhuela menor (Convolvulus arvensis). A veces también se confunden con la clemátide o cabello de ángel (Clematis vitalba).\nEn parajes sombríos, deja de crecer en la superficie para trepar. Como la correhuela mayor, es una mala hierba, a pesar de sus hermosas flores. Se enreda en las plantas de los alrededores, les quita la luz y las ahoga.\nEs una planta portadora del virus mosaico del tabaco, por lo que hay que tener especial cuidado con ella donde se cultiva patata, tomate u otras solanáceas.\nEn Gran Bretaña dicen que morirá el amado de la mujer que la recoja su flor, así como que caerá la tormenta sobre quien la coja. \nEn Turquía se usa como verdura y aliño. Un medicamento realizado con la hoja favorece el flujo biliar.\nTambién se utiliza para dar sabor a un licor llamado Noyeau. \nSus tallos secos pueden ser utilizados como rodrigones de otras plantas, ya que son flexibles y duros a la vez, pero no duran mucho.\nLos días soleados sus flores expelen un fuerte aroma.','Britainia Handiko irletan diote lorea biltzen duen emakumearen maitea hil egingo dela; baita, lorea hartzen duenari ekaitza eroriko zaiola. \nBarazki eta bizigarri bezala erabiltzen da Turkian. Hostoekin egindako sendagai batek behazunaren jarioa areagotzen du.\nNoyeau izeneko likore bati zaporea emateko ere erabiltzen da. \nLehortutako zurtoinak beste landareentzako zurkaitz gisa erabil daitezke, malguak eta gogorrak dira baina ez dute asko irauten.\nEgun eguzkitsutan loreek usaina zabaltzen dute.','Convolvulus viene dal latino convolvo e significa attorcigliato o rampicante. Arvensis si riferisce al suo crescere nei terreni coltivati.\r\nSia nelle sue denominazioni basche che castigliane, si confonde spesso il vilucchio bianco (Calystegia sepium) con il vilucchio comune (Convolvulus arvensis). A volte capita di confonderle anche con la clematide o vitalba (Clematis vitalba).\r\nNelle zone ombrose smette di crescere sulla superficie per arrampicarsi. Come il vilucchio bianco è considerata un’erbaccia nonostante la bellezza dei suoi fiori. Si intreccia alle altre piante vicine, gli toglie la luce e le soffoca.\r\nQuesta pianta è portatrice del virus mosaico del tabacco, per questo bisogna fare attenzione che non cresca dove si coltivano patate, pomodori o altre solanacee.\r\nIn Gran Bretagna si dice che l’amato della donna che la raccoglie morirà o anche che la tormenta si abbatterà su chi la coglie. \r\nIn Turchia si usa come verdura e condimento. Una medicina ricavata dalle sue foglie favorisce il flusso biliare.\r\nSi utilizza anche per insaporire un liquore chiamato Noyeau. \r\nI suoi gambi secchi possono essere utilizzati come sostegni per altre piante, perché sono insieme duri e flessibili, ma non resistono a lungo.\r\nNelle giornate soleggiate i suoi fiori emanano un forte aroma.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003148&codigo=3148&pag=1&texto=Convolvulus%20arvensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003148&codigo=3148&pag=1&texto=Convolvulus%20arvensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=521',NULL,NULL,NULL), +(11,'ZM_11_cornus003140.jpg','ZM_11_cornus003140.jpg','Cornus sanguinea','Cornus sylvestris','Cornejo rojo','Zuhandor gorria','Sanguinella','Sanguino, Sangueño, Sanguiñuelo','zuarbidurra, Judas egurra, belzurda','Corniolo sanguigno, Sanguine','El nombre latino del cornejo proviene del término Cornu, cuerno, ya que su madera es tan dura como el asta. Sanguinea, sanguis, es sangre, por el color de su corteza.\nSegún una leyenda cristiana, la cruz en la que crucificaron a Jesús era de cornejo (tal vez de ahí provenga uno de sus nombres vascos, Judasen egurra, o leño de Judas). Cuenta el relato que entonces los cornejos eran mucho más grandes y duros, y los mayores estaban en los alrededores de Jerusalén. Luego Dios decidió otorgarle el aspecto actual, cortando sus ramas, para impedir que se hicieran más cruces con esta planta. También convirtió las flores en crucifijos, con cuatro brácteas en forma de cruz. Se interpreta que los estambres rojos representan la corona de espinas de Jesús, y los frutos rojos, sus sangre. \nAunque su olor resulta desagradable a los humanos, sus flores atraen a numerosos insectos.\nLa corteza es buena contra la fiebre, así como para hacer tintes.\nDe sus semillas se hace un aceite para jabones y productos de encerado.\nSus ramas tiernas se utilizan para cestería, no así las ramas grandes, muy duras, que resultan apropiadas para hacer pequeños utensilios, hormas de zapato y mangos de paraguas. La leña es un excelente combustible y sirve para hacer carbón.','Zuhandorraren latinezko izena Cornu hitzetik, adarra, dator; adarra bezain gogorra den egurra bai du. Sanguinea, sanguis, odol, hitzetik, honen koloreko azala duelako.\nKondaira kristau batek dioenez, Jesus gurutziltzatu zuten gurutzea zuhandorraz egina zegoen (beharbada horregatik euskarazko beste izena, Judasen egurra). Historioak dio garai haietan zuhandorrak askoz handiago eta gogorragoak zirela, Jerusalem inguruan handienak. Gero Jainkoak, egungo jitea eman zion, adarrak moztuz, gurutzeak egiteko gehiago erabil ez zedin. Loreak ere gurutziltzearen irudi bihurtu zituen, gurutze formako lau brakteekin. Estamina gorriek Jesusen arantzazko koroa adierazten dute eta fruitu gorriek bere odola. Agi danean. \nGizakiontzat usain desatsegina badute ere, loreak oso erakargarriak dira intsektu ugarirentzat.\nAzalak sukarrari aurre egiteko balio du eta baita tindagaiak egiteko ere.\nHazietatik, xaboia egiteko eta argiztaketarako erabil daitekeen olio bat egiten da.\nAdaska gazteak otargintzarako erabiltzen dira; eta adarretako egurra gogorra denez, tresna txiki, orkoi eta aterkietako heldulekuak egiteko erabiltzen da. Egurra bera erregai bikaina da, eta baita ikatza egiteko ere.','Il nome latino della sanguinella proviene dal termine Cornu, corno, perché il suo legno è duro come quello di un palo. Sanguinea, sanguis, è sangue, per il colore della sua corteccia.\r\nSecondo una leggenda cristiana, la croce della crocifissione del Cristo era di sanguinella (e forse da qui gli proviene uno dei suoi nomi baschi, Judasen egurra che vuol dire legno di Giuda). La storia racconta che a quei tempi le sanguinelle erano molto più grandi e dure di oggi e le più grandi tra loro si trovavano nei dintorni di Gerusalemme. Solo in seguito Dio decise di dargli il loro aspetto attuale, tagliandone i rami per impedire che da questa pianta si ricavassero altre croci. Trasformò anche i fiori in crocifissi, con quattro brattee a forma di croce. Nell’interpretazione gli stami rossi rappresentano la corona di spine di Gesù e i frutti rossi il suo sangue. \r\nNonostante il suo odore risulti sgradevole all’olfatto umano, i fiori attraggono numerosi insetti.\r\nLa corteccia è ottima contro la febbre e si usa anche per tingere.\r\nDai suoi semi si ricava un olio per saponi e prodotti a base di cera.\r\nI suoi rami teneri si utilizzano per fare dei cesti, mentre quelli più grandi e più duri sono più indicati per fare piccoli utensili, suole di scarpe e manici per gli ombrelli. Il suo legno è un eccellente combustibile e serve per fare il carbone.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003140&codigo=3140&pag=1&texto=Cornus%20sanguinea','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003140&codigo=3140&pag=1&texto=Cornus%20sanguinea','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=345','BU_11_Cornus sanguinea.jpg','BU_11_Cornus_sanguinea_c.jpg',NULL), +(12,'ZM_12_crataegus003136.jpg','ZM_12_crataegus003136.jpg','Crataegus sp. (laevigata?)','Oxyacantha dioscoridis o matthioli','Espino albar- Majuelo','Elorri zuria','Biancospino','majuelo, manzanica de pastor','abilluri, arantzuri, ilurri, illurritze, ainurriatze, arantza, arantzalar, gabilluri, arantzuri, ilurri, illurritze, ainurriatze, arantza, arantzalar, gurrillona, aranzibia','Bossolin, calarighe, spinapulce, spino bianco, spì della lendena','Proviene su nombre del griego kratos, fuerte, recio, debido a su aspecto espinoso y su dura madera. El término Laevigata hace referencia a su corteza suave, elegante y resbaladiza.\nAunque esta planta resiste bien el fuerte viento y la contaminación, el salitre le puede resultar muy perjudicial. Algunos ejemplares llegan a vivir hasta 500 años. Es muy utilizada para hacer setos. Se usa como púa de injerto de nísperos y perales. \nCon los frutos se puede hacer mermelada y un sucedáneo del café. Sus frutos secos, mezclados en harina, son panificables. Las hojas tiernas se pueden utilizar como condimento de ensalada o para hacer tisanas.\nEs planta medicinal eficaz contra numerosos males, pero es especialmente reputada en dolencias vinculadas al corazón. Aunque en la cultura popular su uso es muy antiguo, fue a partir del siglo XIX cuando se descubrieron sus grandes cualidades para el corazón. Hoy día se utilizan las flores de espino en más de 200 remedios y son muchos los estudios que han demostrado su eficacia. Regula el ritmo cardiaco, mejora la circulación y refuerza el propio corazón. Es hipotensor y cardiotónico, antiestresante y favorece el sueño.\nJunto al ginkgo biloba, se utiliza contra la mala memoria, ya que refuerza el flujo sanguíneo en el cerebro. Con la corteza se hacen medicamentos contra la malaria y otras enfermedades.\nSu madera es muy dura, muy apropiada para pequeños utensilios y mangos. Es un excelente combustible. Se dice que el carbón vegetal de esta leña es capaz de fundir el hierro sin más aditivo. Sus espinas son tan duras que se han utilizado a modo de clavos.','Grekoko kratos, indartsu, sendo, hitzetik, datorkio izena. Bere eite arantzatsua eta zur gogorra direla eta. Laevigata hitzak azal leun dotore eta irristakorra duela dio.\nLandare honek ondo eusten die haize indartsu eta kutsadurari, baina kresalak kalte handia egin diezaioke. 500 urte arte bizi daiteke eta oso erabilgarria da hesiak egiteko. Mizpira eta udare mentuoin edo txertagai bezala erabiltzen da. \nFruituekin mermelada eta kafearen ordezko bat egin daiteke. Fruituak lehortzen direnean eta irinarekin nahastuta ogia egin daiteke. Hosto berriak entsaladarako gehigarri bezala eta tea egiteko erabil daitezke.\nGaitz askotarako balio duen garrantzi handiko sendabelarra da, baina batez ere bihotzaren inguruko kontuengatik da goraipatua. Herri kulturan aspalditik erabiltzen bazen ere, XIX. mendetik aurrera ikusi zen benetan erabilgarria zela bihotzeko gaitzentzat. Gaur egun, elorriaren loreak 200 sendagai baino gehiagotan aurki daitezke eta azterketa askok erakutsi dute bere erabilgarritasuna. Bihotz erritmoa erregulatzen du, zirkulazioa hobetu eta bihotza bera indartu. Hipotensorea da, kardiotonikoa, estresaren aurkakoa eta lo eragilea.\nGinkgo bilobarekin batera, memoria kaxkarraren aurka erabiltzen da, burmuinerako odol jario indartuz. Azalarekin malaria eta beste sukarren kontrako sendabideak egiten dira.\nEgur oso gogorra du. Tresna txikiak eta beren heldulekuak egiteko interes handikoa. Erregai bikaina da. Egur honekin egindako ikatza nahikoa omen da burnia urtzeko, beste ezeren laguntzarik gabe. Beren gogortasuna dela eta arantzak iltze bezala erabili izan dira.','Il suo nome proviene dal greco kratos, forte, robusto, per il suo aspetto spinoso e la sua dura materia. Il nome Laevigata fa riferimento alla sua corteccia morbida, elegante e scivolosa.\r\nNonostante questa pianta resista bene al forte vento e alla contaminazione, il salnitro può crearle dei seri problemi. Alcuni esemplari arrivano a vivere anche 500 anni. E’ molto utilizzata per fare le siepi. Si utilizza come rebbio da innesto per nespoli e peri. \r\nCon i suoi frutti è possibile fare una marmellata e un succedaneo del caffè. I suoi frutti secchi, mischiati nella farina, si possono panificare. Le foglie tenere si possono usare come condimento per le insalate o per fare delle tisane.\r\nE’ una pianta medicinale utile contro numerose malattie, ma è molto apprezzata per curare i problemi cardiaci. Anche se nella cultura popolare il suo uso è molto antico, è stato solo a partire dal XIX secolo che si scoprirono le sue grandi qualità per il cuore. Oggi i fiori del biancospino sono utilizzati in più di 200 rimedi e sono molti gli studi che ne hanno dimostrato l’efficacia. Regola il ritmo cardiaco, migliora la circolazione e rafforza il cuore. E’ un ipotensore e un cardiotonico, un antistress che favorisce il sonno.\r\nInsieme al ginkgo biloba, viene utilizzato contro i problemi di memoria, perché rafforza il flusso sanguigno nel cervello. Con la corteccia si fanno medicine contro la malaria e altre infermità.\r\nIl suo legno è estremamente duro, appropriato per la costruzione di piccoli utensili e manici. E’ un eccellente combustibile. Si dice che il carbone vegetale prodotto dal suo legno sia capace di fondere il ferro senza alcun complemento. Le sue spine sono così dure da essere utilizzate come dei chiodi.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003136&codigo=3136&pag=1&texto=Crataegus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003136&codigo=3136&pag=1&texto=Crataegus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=583','BU_12_Crataegus_sp.jpg','BU_12_Crataegus_sp_c.jpg',NULL), +(13,'ZM_13_crocus003093.jpg','ZM_13_crocus003093.jpg','Crocus nudiflorus','Crocus pyreneus','Azafrán','Azafraia','Croco',NULL,'azaparan, hupa, safrana',NULL,'Azafrán en griego es krôkôs, proveniente del semítico karkom, del que han derivado también karkôm en hebreo, kurkuma en arameo y kurkum en árabe. Es uno de los más antiguos nombres de planta conocidos.\nEl género crocus agrupa a más de 100 especies, muchas de ellas estimadas en jardinería por la gran variedad de colores de sus flores. La más conocida de todas es la variedad que sirve para conseguir la especia del azafrán, Crocus sativa.\nEl azafrán es la especia más cara del mundo. Para ello hay que recoger sus estigmas; la flor dura apenas tres días y se necesitan 160.000 flores tostadas para conseguir un kilo de azafrán. \nEs muy antigua la costumbre de utilizarlo como reconstituyente. En Mesopotamia aparece escrita entre otras especias en cerámicas de hace más de 5.000 años. Las flores aparecen dibujadas en antiguos dibujos de la isla de Creta.\nEn Egipto se utilizaba como esencia aromática, y en Grecia para ayudar a conciliar el sueño. Recientes investigaciones han demostrado que ayuda a paliar las alteraciones de ánimo, tanto la depresión como la ansiedad.\nAdemás de un sabor amargo y un olor dulce y penetrante, añade a los alimentos un color amarillo muy vivo.\nAparece en varios mitos griegos. Según uno de ellos, tras la muerte del joven Krokos, amado del dios Hermes, éste lo convirtió en flor para que viviera eternamente.\n','Grekoz azafraia adierazten duen krôkôs hitzetik; hau karkom semitikotik eratorria. Hebraierako karkôm, aramearreko kurkuma eta pertsiera eta arabierako kurkum hitzen tankeran. Landare izen zaharrenetakoa omen da.\nCrocus generoak 100 espezie baino gehiago biltzen ditu, asko lorategietan estimatuak loreen kolore aniztasunagatik. Denetan ezagunena azafraia espezia egiteko erabiltzen den Crocus sativa.\nAzafraia munduko espezia garestiena da. Berau egiteko lorexakiak (estigma) bildu behar dira, loreak hiru egun eskas irauten du eta 160.000 lore txigortu behar dira kilo bat azafrai lortzeko. \nOso zaharra da bizigarri bezala erabiltzeko ohitura. Mesopotamian, 5000 urte baino gehiago dituzten zeramiketan agertu da idatzita beste zenbait espeziaren artean. Loreak ere margo zaharretan agertu dira Kretako irlan.\nEgipton esentzia aromatiko bezala zen erabilia, eta Grezian lo hartzen laguntzeko. Ikerketa berrienek gogo-aldartearen alterazioak, depresio zein antsietatea, jasaten laguntzen duela frogatu dute.\nZapore mingotsa eta usain gozo sarkor eta berezia izateaz gain, kolore hori bizia ematen die jakiei.\nHainbat mito greziarretan azaltzen da. Horietako batek dio Krokos, Hermes jainkoaren maitea zen mutil gaztea hil eta Hermes-ek lore bihurtu zuela betiko bizi zedin.','Croco in greco è krôkôs, proveniente dal semitico karkom, dal quale sono derivati anche karkôm in ebraico, kurkuma in aramaico e kurkum in arabo. Questo è uno dei nomi conosciuti più antichi di questa pianta.\r\nIl genere crocus raggruppa più di 100 specie, molte delle quali molto considerate nel giardinaggio per la grande varietà cromatica dei suoi fiori. La più conosciuta tra tutte è la varietà che serve per ottenere la spezia dello zafferano, Crocus sativa.\r\nLo zafferano è la spezia più cara del mondo. Per produrla bisogna raccogliere le sue stigme; il fiore dura appena tre giorni e si ha bisogno di 160.000 fiori tostati per ottenere un chilo di zafferano. \r\nE’ molto antico il suo utilizzo come ricostituente. In Mesopotamia appare citata, tra altre specie, sulle ceramiche di più di 5.000 anni. I fiori si trovano disegnati in antichi dipinti dell’isola di Creta.\r\nIn Egitto si utilizzava come essenza aromatica e in Grecia per conciliare il sonno. Ricerche recenti hanno dimostrato che aiuta a mitigare le alterazioni degli stati d’animo, sia la depressione che l’ansia.\r\nOltre che un sapore amaro e un odore dolce e penetrante, dà agli alimenti un colore giallo vivo.\r\nLo ritroviamo in molti miti greci. Secondo uno di questi, dopo la morte del giovane Krokos, amato del dio Hermes, quest’ultimo lo trasformò in un fiore perché potesse vivere in eterno.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003093&codigo=3093&pag=1&texto=Crocus%20nudiflorus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003093&codigo=3093&pag=1&texto=Crocus%20nudiflorus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=153','BU_13_Crocus nudiflorus.jpg','BU_13_Crocus nudiflorus_c1.jpg',NULL), +(14,'ZM_14_dianthus003087.jpg','ZM_14_dianthus003087.jpg','Dianthus hyssopifolius','Diosanthos','Clavel','Krabelina','Garofano di bosco','clavelina','baratx, jiroflei, klabelina, larra-klabelina, mao, mau, rabelina, txanelina, txulufrai, txulufrina, julufrei, txiliprai',NULL,'El nombre científico proviene del griego antiguo diosanthos, dios o Zeus, y anthos, flor: las flores del género Dianthus son, pues, las que corresponden a Zeus.\nHyssopifolius, porque tiene hojas similares a las del hisopo, Hyssopus officinalis.\nHay más de 300 especies en el género de las Dianthus, a las que habría que añadir numerosas subespecies y variedades híbridas, muchas de ellas creadas para jardinería. Es una flor muy conocida, tanto porque en estado natural se halla en cualquier parte como por su uso muy extendido en los jardines. Florece en primavera y verano y se halla en cualquier ambiente, ya sea boscoso, herboso o cualquier otro.\nEl principal uso que se da a esta planta, además de ornamental, es el de obtener esencias. Su olor refinado y muy especial se usa para esencias desde hace miles de años. También es muy conocido su uso para realizar colirios: tal vez su nombre en francés, oeillet, -\"ojito\"- provenga de esa cualidad.\nAl vinagre en el que se maceraba esta especie des claveles se le atribuían propiedades contra la peste negra.\n','Grekoko diosanthos zaharretik eratorria, dios, Zeus edo Jove jainkoa eta anthos, lorea. Hau da Dianthus, krabelinaren generoaren izenaren jatorria.\nHyssopifolius, Hyssopus officinalis, isipu-belarraren antzeko hostoak dituelako.\n300 espezie baino gehiago da Dianthus generoan. Gainera, badira beste hainbat azpi-espezie eta hibrido ere, asko lorategietarako sortuak. Oso lore ezaguna da, naturan ia edonon aurki daitekelako eta lorazaintzan duen erabilera zabalagatik. Udaberria eta udan loratzen da, nonahi ikusten da, edozein motatako lurra duten baso sare, belaze eta abarretan.\nLandare honen erabilera nagusia, lorategietatik at, bere esentziarena da. Usain fin nabarmena du eta milaka urtetan ustiatu izan da esentziatarako. Begietarako ur edo kolirio\nsonatua egiten da berarekin, hortik ote dator frantsesezko oeillet , begitxo, izena?\nKrabelin hauek beratzen izan dituen ozpinak izurri beltzari aurrea hartzen omen zion.','Il nome scientifico proviene dal greco antico diosanthos, dios o Zeus, e anthos, fiore: i fiori del genere Dianthus sono, quindi, quelli che appartengono a Zeus.\r\nHyssopifolius, perché le sue foglie assomigliano a quelle dell’issopo, Hyssopus officinalis.\r\nIl genere della Dianthus comprende più di 300 specie, alle quali andrebbero aggiunte le numerose sottospecie e varietà ibride, molte delle quali create per la decorazione dei giardini. E’ un fiore molto conosciuto, sia perché allo stato naturale si trova ovunque che per il suo diffuso utilizzo nei giardini. Fiorisce in primavera ed estate e si trova in ogni tipo di ambiente, boscoso, erboso e quant’altro.\r\nL‘utilizzo principale di questa pianta, oltre a quello puramente ornamentale, è di ricavarne delle essenze. Il suo odore raffinato e molto particolare è utilizzato nella profumeria da migliaia di anni. E’ conosciuto anche per il suo uso per preparare colliri: il suo nome francese, oeillet, -\"occhietto\"- potrebbe derivargli da questa qualità.\r\nSi pensava che l’olio nel quale maceravano questi particolari garofani avesse proprietà particolari contro la peste nera.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003087&codigo=3087&pag=1&texto=Dianthus%20hyssopifolius','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003087&codigo=3087&pag=1&texto=Dianthus%20hyssopifolius','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=93','BU_14_Dianthus_cfr_ hyssopifolius.jpg','BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg',NULL), +(15,'ZM_15_erica003067.jpg','ZM_15_erica003067.jpg','Erica cinerea','Erica tenuifolia','Brezo nazareno','Ainarra purpura','Erica cinerea',NULL,NULL,NULL,'En el género de los brezos se incluyen más de 700 especies, desde las que miden unos 20 cm de alto hasta las Erica arborea de 6-7 metros. El 90% se halla en el sur de África.\nEl brezo prefiere las tierras ácidas, ya sean secas o húmedas, pero siempre ácidas. \nAbona los suelos y es alimento de numerosos animales.\nResiste a las tierras calcinadas por el fuego y se repuebla fácilmente.\nTiene una gruesa cepa bajo tierra, dura y sin vetas. Esta cepa de la especie Erica arborea es especialmente estimada para la fabricación de pipas. En Bouloternère, en el Pirineo oriental, la fabricación de pipas de brezo daba ocupación a muchas personas durante la primera mitad del siglo XX. Hoy día se siguen fabricando en Córcega y el Magreb. \nSe ha utilizado para las cubiertas de bordas y cabañas.\nTambién se han usado sus ramas para colocar entre ellas los gusanos de seda. \nLas bardas de sus ramas sirven para hacer escobas, así como las camas del ganado. \nCon las ramas también se hacen horquillas.\nEs muy apropiada para conseguir con rapidez un fuego de grandes llamas y muy caliente en hornos de cal, de pan y otros.\nSirve para hacer carbón vivo, muy estimado en forja.\nLas abejas gustan mucho de su flor, por lo que se suele hacer miel de brezo.\nEn mitología es una planta mágica, y el nombre de Erika se utiliza como nombre de mujer. \nEl nombre de Erica, del griego \"ereiken\", parece que significa frágil, ya que así son sus ramas. \nUno de los indicadores que se utilizan en la cornisa cantábrica para analizar el cambio climático es la floración del brezo, que estos últimos años se está adelantando.\n','Txilarren generoan 700 espezie baino gehiago da; 20 cm. garai direnetatik hasi eta Erica arborearen 6-7 metroetarainokoak. %90a Hego Afrikakoa da.\nTxilarrak lur azidoak maite ditu. Lehorrak izan edo ur-asetutakoa, beti azidoa. \nLurrak ontzen ditu eta animalia ugariren jakia da.\nSuak pasatako lurrei eusten die eta erraz berritzen da.\nAndui edo ipurdi lodikote bat lurpean, gogorra oso eta betarik gabea. Erica arborea espeziearen ipurdi hau erretzeko pipak egiteko bereziki estimatua da. Bouloternèren, ekialdeko Piriniotan, XX mendearen lehen erdian jende ugari bizi zen bertan zegoen txilar-pipa lantegiari esker. Korsikan eta Magreben egundo ere egiten dira. \nBorden eta txabolen estalkiak eta hormak egiteko erabili izan da.\nZeta sortzeko, harrak txilar adarretan jarri izan dira. \nAdarretako zarbekin erratzak egiten dira, txilar-erratzak. Baita abereen azpietarako gaia ere. \nAdarrekin txardengoak egiten dira.\nKarobi, ogi-labe eta bestelako labeetan bapateko su gar handi eta beroa egiteko aproposa da.\nIkatz bizia egiten du, burdina lantzeko estimatua.\nErleek oso gogoko dute bere lorea eta txilar-ezti berezia egin ohi da.\nMitologian landare magikoa da, eta Erika emakume izena bezala erabiltzen da. \nErica izena, grekoko \"ereiken\", hau da, hauskor hitzetik omen dator, adarrak halakoak bait ditu. \nKantauri Itsasoaren inguruan Klima Aldaketak nola eragiten duen jakiteko erabili den neurrietako bat txilarren loraldia da. Azken urte hauetan aurreratzen ari da.\n','Nel genere delle eriche si includono più di 700 specie, da quelle che misurano sui 20 cm di altezza alle Erica arborea di 6-7 metri. Il 90% si trova nel sud dell’Africa.\r\nL’erica preferisce le terre acide, secche o umide non importa, basta che siano acide. \r\nConcima il suolo ed è un alimento per numerosi animali.\r\nResiste ai terreni bruciati dal fuoco e si ripopola con facilità.\r\nHa un grosso ceppo sotto terra, duro e senza venature. In particolare questo ceppo della specie Erica arborea è molto apprezzato per la fabbricazione di pipe. A Bouloternère, nei Pirenei orientali, la fabbricazione di pipe di erica è stata fonte di occupazione per molti durante la prima metà del XX secolo. Ancora oggi se ne fabbricano in Corsica e nel Maghreb. \r\nE’ stata utilizzata per la copertura di chalet e capanne.\r\nI suoi rami sono anche stati utilizzati per l’allevamento dei bachi da seta. \r\nLa copertura dei suoi rami serve per fabbricare scope e anche giacigli per il bestiame. \r\nCon i rami si possono fare delle forcine.\r\nE’ indicata per accendere un fuoco dalle fiamme grandi e molto calde in tempi rapidi, nei forni di calce, di pane o altri.\r\nServe per fare il carbone vivo, molto apprezzato nelle fucine.\r\nAlle api piacciono molto i suoi fiori, per questo il miele di erica è abbastanza diffuso.\r\nNella mitologia è una pianta magica e il nome di Erika viene usato come nome di donna. \r\nIl nome Erica, dal greco \"ereiken\", sembra significare fragile, perché così si presentano i suoi rami. \r\nUno degli indicatori utilizzati nella cornice cantabrica per analizzare il cambiamento climatico è la fioritura dell’erica, che negli ultimi anni si è anticipata.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003067&codigo=3067&pag=1&texto=3066','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003067&codigo=3067&pag=1&texto=3066','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=20','BU_15_Erica_cinerea.jpg','BU_15_Erica cinerea_c1.jpg',NULL), +(16,'ZM_16_euphorbia003101.jpg','ZM_16_euphorbia003101.jpg','Euphorbia helioscopia',NULL,'Euphorbia helioscopia','Euphorbia helioscopia','Calenzuola','lechetrezna',NULL,' calenzuola, euforbia, erba calenzola','Cuando se la corta desprende un líquido semejante a la leche, de ahí su nombre tanto vasco (esne-belarra) como castellano. \nLinneo le puso el nombre de euforbiáceas a esta familia de plantas en homenaje al griego Euphorbos, médico del rey Juba de Numidia. Helioscopia se debe a los términos griegos helios (sol) y skopein (cuidado, atención), ya que esta planta sigue el movimiento del sol a lo largo del día.\nLa savia lechosa es tóxica y sirve para eliminar las verrugas.\nEn India utilizan el aceite de su semilla y la decocción de sus hojas y tallos para expulsar las lombrices intestinales.\nSe encuentra en heredades cultivadas o ya abandonadas.\n','Esneantzeko izerdia ixuriko du ebaki ezkero. Hortik esnebelarra inondik ere. \nEuphorbiazeoen familiari Linneok jarri zion izena, Numidiako Juba erregearen mediku zen Euphorbus greziarraren omenez. Helioscopia, helios (eguzkia) eta skopein (zaindu) latinezko hitzengatik, landare honek egunean zehar eguzkiaren mugimenduari jarraitzen bait dio.\nEsne itxurako izerdia toxikoa da eta garatxoak desagertarazteko balio du.\nIndian, hazien olioa eta hosto eta zurtoinen dekokzio bat erabiltzen dute heste zizareak kanporatzeko.\nLandutako edo utzitako nekazal lurretan aurkitzen da.\n','Quando si taglia sprigiona un liquido simile al latte, da cui deriva sia il nome basco (esne-belarra) che quello spagnolo. \r\nLinneo ha messo a questa famiglia di piante il nome di euphorbiaceae in omaggio al greco Euphorbos, medico del re Juba di Numidia. Helioscopia proviene dai termini greci helios (sole) e skopein (guardare), dato che la pianta segue il movimento del sole durante tutto il giorno.\r\nLa linfa lattiginosa è tossica e serve per togliere le verruche.\r\nIn India, l’olio ricavato dai suoi semi e il decotto delle foglie e del gambo vengono utilizzati per espellere i vermi intestinali.\r\nSi trova sia in tenute coltivate che abbandonate.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003101&codigo=3101&pag=1&texto=Euphorbia%20helioscopia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003101&codigo=3101&pag=1&texto=Euphorbia%20helioscopia',NULL,NULL,NULL,NULL), +(17,'ZM_17_helleborus003097.jpg','ZM_17_helleborus003097.jpg','Helleborus viridis','Helleborus viridis','Heléboro verde','Otsababa emea','Elleboro verde','ballestera verde o hierba llavera','pika baba, lipu-belarra, lupi-belarra, lupu-belarra, baladrea, mingaizto-belarra','elleboro falso','Florece con flores grandes y verdes a finales del invierno y principios de la primavera.\nSe ha utilizado en medicina y brujería.\nEs una planta muy tóxica; por ello, no es recomendable su uso como hierba medicinal si no se conocen muy bien sus propiedades, que las tiene.\nPese a su riesgo, sus raíces se cuecen para combatir pulgas y piojos.\nSe ha llegado a decir que Alejandro Magno murió de sobredosis de esta planta. \nEn huertas y jardines se usa contra piojos y parásitos similares.','Neguaren amaian eta Udaberriaren atarian loratzen da lore handi eta berdez.\nMedizinan eta sorginkerietan erabilia izan da.\nOso landare toxikoa da. Horregatik, sendabelar bezala nolanahi erabiltzea ez da gomendagarria nahiz eta badituen zenbait onura.\nArriskutsua den arren, zainen egosketa arkakuso eta zorrien aurka erabiltzen da.\nAlexander Handia sendatzeko hartutako landare honen sobredosi batek hil ote zuen diote. \nBaratza eta lorategietan, zorri eta antzeko parasitoen aurka erabiltzen da.','Fiorisce con fiori grandi e verdi alla fine dell’inverno e all’inizio della primavera.\r\nE’ stato utilizzato in medicina e nella stregoneria.\r\nE’ una pianta estremamente tossica; per questo il suo utilizzo come erba medicinale non è raccomandabile per chi non ne conosce a fondo le proprietà, che sono molte.\r\nNonostante il suo utilizzo sia rischioso, le sue radici si utilizzano, cotte, per combattere pulci e pidocchi.\r\nSi è arrivati a dire che Alessandro Magno morì a causa di una overdose di questa pianta. \r\nNegli orti e nei giardini si utilizza contro pidocchi e parassiti simili','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003097&codigo=3097&pag=1&texto=Helleborus%20viridis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003097&codigo=3097&pag=1&texto=Helleborus%20viridis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=383','BU_17_Helleborus_viridis.jpg','BU_17_Helleborus_viridis_c.jpg',NULL), +(18,'ZM_18_humulus003220.jpg','ZM_18_humulus003220.jpg','Humulus volubilis','Humulus lupulus','Lúpulo','Lupula','Luppolo','betiguera, cañamiza, cerveza, espárragos de zarza, flor de hombre, zaramangón.','ezker aihena','ligaboschi','Se cree que el nombre proviene deI humus de la tierra. Lupulus podría provenir también de lobo, ya que esta planta acaba con todas las plantas que atrapa debajo como el lobo hace con las ovejas.\nEs planta trepadora, y utiliza los recios pelos que le salen del tallo para agarrarse y trepar.\nLas flores macho y hembra se dan en diferentes plantas.\nLas flores hembra se recolectan y utilizan para hacer cerveza. Por un lado, le dan un sabor especial; por otro, combaten las bacterias Gramm y favorecen la acción de la levadura. Contrarrestan el sabor dulce de la malta con un punto amargo.\nLas hojas y brotes tiernos tienen un sabor particular y agradable. Las hojas recogidas antes del mes de mayo se pueden comer crudas en ensalada.\nCon el lúpulo se hace tinte marrón para el pelo y crema para suavizar el cutis facial.\nDe sus tallos se pueden obtener fibras similares a las del cálamo para la fabricación de ropa.','Clematis vitalba-ri ere horrela esaten zaio batzuetan)\n\nIzena lurreko humus hitzetik eratorria dela uste da. Lupulus otsotik etor liteke, otsoak ardiak bezala landare honek azpian harrapatzen dituen beste landareak akaba bai ditzake.\nLandare igokaria da, eta zurtoinean ateratzen zaizkion bilo sendoak erabiltzen ditu heldu eta gora egiteko.\nLore ar eta emeak landare ezberdinetan izaten dira.\nLore emeak jaso eta garagardoa egiteko erabiltzen dira. Batetik,zapore berezia ematen dio, eta bestetik, Gramm bakterien aurka eginez, legamiaren eragina sustatzen du. Maltaren zapore gozoa berdintzen du mingots puntu bat emanez, (nahiz eta prozesuaren eta lupulua ze barietatetakoa den arabera ezberdina den eragin hau.KENDU EGINGO NUKE)\nEgositako hostoEK eta kimu berriek zapore berezi eta atsegina dute. Maiatza aurretik jasotako hostoak gordinik jan daitezke entsaladan.\nIlerako tindagai marroia eta aurpegiko azala leuntzeko krema egiten da.\nZurtoinetik kalamuarenaren antzeko zuntzak atera daitezke erropagintzarako.','Si pensa che il nome provenga dal humus della terra. Lupulus potrebbe derivare anche da lupo, dato che questa pianta uccide tutte le piante che cattura da sotto come il lupo fa con le pecore.\r\nE’ una pianta rampicante e utilizza i robusti peli che salgono dal tronco per attaccarsi e arrampicarsi.\r\nI fiori maschio e femmina si trovano in piante diverse.\r\nI fiori femmina si raccolgono e si utilizzano per fare la birra. Da una parte le conferiscono un sapore speciale e dall’altro combattono i batteri Gramm e favoriscono l’azione dei lieviti. Bilanciano il sapore dolce del malto con una punta di amaro.\r\nLe foglie e i germogli teneri hanno un sapore particolare e piacevole. Le foglie raccolte prima del mese di maggio si possono mangiare crude nell’insalata.\r\nCon il luppolo si fanno tinte marroni per i capelli e una crema per alleviare l’acne.\r\nDai suoi gambi si possono ottenere fibre simili a quelle della canna per la fabbricazione di vestiti.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003220&codigo=3220&pag=1&texto=Humulus%20lupulus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003220&codigo=3220&pag=1&texto=Humulus%20lupulus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=83',NULL,NULL,NULL), +(19,'ZM_19_hypericum003076.jpg','ZM_19_hypericum003076.jpg','Hypericum androsaemum','Hypericum bacciforme','Androseme','Orkatxa','Erba sana','sanalotodo',NULL,'Ruta selvatica, Sanguinaria','Su nombre vasco de orkatxa proviene, según el botánico Lakoizketa, del hedor de la planta, similar al del corzo (orkatza). \nEs una conocida planta medicinal, ingrediente de muchos ungüentos, de ahí que en castellano también se le llame \"sanalotodo\" y en inglés \"tutsan\" (del francés toute saine). \nComo florece en los días más largos del año, una planta del mismo género, Hypericum perforatum, se conoce como \"hierba de San Juan\".\nEl tercer libro de los cinco \"De Materia Medica\" que escribió el médico Dioscórides en el siglo I recoge que, si se aplastan en las manos sus flores y frutos, da un jugo parecido a la sangre. De hecho, \"Androsemo\" en griego significa sangre humana\n','Orkatxa, euskarazko izena, landarearen kiratsa orkatzarenaren tankera duelako dela dio Lakoizketa botanikariak. \nSendabelar ezaguna da, eta makina bat ukenduren osagai da. Gazteleraz \"sanalotodo\" eta ingelesez \"tutsan\" (frantsesezko toute saine-tik) ere deitu izan zaio. \nUrteko egunik luzeenetan loratzen denez, \"San Juan belarra\" bezala ere ezaguna da genero honetako beste landare bat, Hypericum perforatum.\nI mendeko Dioskorides sendagileak idatzitako \"De Materia Medica\" bost liburuetako hirugarrenean dioenez, loreak eta fruituak eskuetan marruskatuz gero odolaren tankerako zukua ematen du. Hortik grekoko \"Androsemo\", gizakiaren odola, alegia.\n','Il nome basco \"orkatxa\" proviene, secondo il botanico Lakoizketa, dall’olezzo della pianta, simile a quello del capriolo (orkatza). \r\nE’ una conosciuta pianta medicinale e il suo essere ingrediente di molti unguenti le è valso uno dei suoi nomi in castigliano, \"sanalotodo\" (guariscitutto), e in inglese \"tutsan\" (dal francese toute saine). \r\nUna pianta dello stesso genere, l’Hypericum perforatum, è conosciuta come \"l’erba di San Giovanni\" per la sua fioritura durante i giorni più lunghi dell’anno.\r\nIl terzo libro dei cinque che formano \"De Materia Medica\" scritto dal medico Dioscórides nel secolo I documenta che, se schiacciati nella mano, i suoi fiori e frutti danno un succo simile al sangue. Effettivamente, \"Androsemo\" in greco significa sangue umano.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003076&codigo=3076&pag=1&texto=Hypericum%20androsaemum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003076&codigo=3076&pag=1&texto=Hypericum%20androsaemum','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=347',NULL,NULL,NULL), +(20,'ZM_20_ilex003185.jpg','ZM_20_ilex003185.jpg','Ilex aquifolium','Aquifolium spinosum','Acebo]','Gorostia','Agrifoglio','agrifolio, cardón, cardonera, aquifolio, cebro, carrasco.','korosti, garratz, garratx, garatzaina','Aquifoglio, Alloro spinoso, Pungitopo maggiore.','La denominación Ilex le proviene del nombre latino de la encina, Quercus ilex, por el parecido de sus hojas. Aquifolium deriva de acus, espina, y folius, hoja.\nEste hermoso arbusto está hoy día protegido, y está prohibido cortar ramas a los acebos que se encuentran en el monte. Los arbustos son machos o hembras. En invierno son los frutos rojos de las hembras los que lo hacen tan atractivo, por lo que su uso ornamental en Navidades durante años le ha provocado graves consecuencias. \nDel mismo modo que el ébano para las fichas negras, el acebo se utilizaba para hacer las fichas blancas de ajedrez. Era el árbol más sagrado de los druidas celtas, y en la Roma precristiana era el árbol del dios Saturno. Para los cristianos, está relacionado con el nacimiento de Jesús, ya que se dice que María y José se ocultaron tras un acebo cuando huían de los soldados hacia Egipto: María lo bendijo y es por ello que sus hojas perennes simbolizan la inmortalidad.\nEl topónimo \"Hollywood\" significa bosque de acebos.\nCon su corteza cocida y fermentada se hace la \"liga\", una cola para atrapar pájaros.\nAyuda a bajar el colesterol. Sus hojas sirven de aperitivo, ya que abren el apetito. Asimismo, desecadas sirven como sucedáneo del té, y los frutos tostados, como sucedáneo del café. En Alsacia se obtiene alcohol de sus frutos fermentados y destilados.\nEn grandes cantidades (más de 25 granos) puede ser letal, ya que afecta al corazón, estómago y sistema nervioso. \nPese a que sus hojas son duras y espinosas, algunos animales se alimentan de ellas en invierno, cuando la nieve cubre la hierba. Por eso las hojas más bajas, al alcance de sus dientes, son más espinosas, y libres de espinas las más altas.','Ilex artearen izen latinetik omen dator, Quercus ilex. Hostoetan antza handia dute. Aquifolium berriz, acus, arantza, eta folius, hostoa, hitzetatik dator.\nZuhaixka eder hau gaur egun babestua dago, eta debekatuta dago mendian dauden gorostiei adarrak moztea. Zuhaixkak arrak edo emeak dira. Neguan landare emeek ematen dituzten fruitu gorriek egiten dute hain erakargarri, eta hainbat urtez gabonetako apaingarri gisa erabili izanak kalte handia egin dio. \nEbanoa pieza beltzetarako erabiltzen den bezala, historikoki xake fitxa zuriak gorostiarekin egiten ziren. Druida zelten zuhaitzik sakratuena zen eta kristautu aurreko Erroman, Saturno jainkoaren irudia. Kristauentzat Jesusen jaiotzarekin zerikusia du, gorosti baten atzean ezkutatu baitziren Maria eta Jose Egiptora bidean soldaduetatik ihesi. Mariak bedeinkatu egin zuen eta ilezkortasunaren seinaletzat, urte osoan hostoak izatea ahalbidetu zuela diote.\n\"Hollywood\" toponimoak, gure gorostidi edo gorostutzak... bezala, gorosti basoa esan nahi du.\nEgosi eta hartzitutako azalarekin txoriak harrapatzeko erabiltzen den kola moduko \"liga\" egiten da.\nKolesterola jaisten laguntzen du. Hostoak gosea eragiten du, aperitiboa da.\nHostoak lehortuta tearen ordezko bezala erabil daitezke eta txigortutako fruituak kafearen ordezko bezala.\nAlsazian, fruitu hartzitu eta destilatuetatik alkohola ateratzen da.\nKantitate handian (25 aletik gora) hilgarria izan daiteke, bihotz, urdail eta nerbio sistemari kalteak eraginda. \nHosto gogor eta arantzadunak dituen arren, zenbait animaliak neguan, elurragatik belarrik ez denean, jan egiten du. Hauen hortzen eran dituen beheko aldeko hostoak ditu arantzatsu, goiko adarretan, haiengandik libre arantzarik gabeak.','La denominazione Ilex le proviene dal nome latino della quercia, Quercus ilex, per l’aspetto delle sue foglie. Aquifolium deriva da acus, spina, e folius, foglia.\r\nQuesto arbusto è oggi una specie protetta e non è permesso tagliare i rami agli agrifogli che si trovano sui monti. Gli arbusti possono essere maschio o femmina. Durante l’inverno sono i frutti rossi delle femmine che lo rendono così affascinante, ma il suo utilizzo durante un lungo periodo come ornamento natalizio gli ha provocato delle gravi conseguenze. \r\nCosì come l’ebano per le pedine nere, l’agrifoglio si utilizzava per fare le pedine bianche degli scacchi. Era l’albero sacro dei druidi celti e nella Roma pre-cristiana era l’albero del Dio Saturno. Per i cristiani è collegato alla nascita di Gesù, perché si narra che Maria e Giuseppe si nascosero proprio dietro un agrifoglio per sfuggire ai soldati durante il viaggio verso l’Egitto: Maria lo benedì ed è per questo che le sue foglie perenni simbolizzano l’immortalità.\r\nIl toponimo \"Hollywood\" significa bosco di agrifogli.\r\nCon la corteccia cotta e fermentata si prepara la \"liga\", una colla per catturare gli uccelli.\r\nAiuta a far diminuire il colesterolo. Le sue foglie servono da aperitivo, perché aprono lo stomaco. Disseccate invece, sono un succedaneo del tè e i suoi frutti tostati un succedaneo del caffè. In Alsazia dai frutti fermentati e distillati si ottiene dell’alcool.\r\nIn grandi quantità (più di 25 acini) può essere letale, perché compromette il funzionamento di cuore, stomaco e sistema nervoso. \r\nNonostante le sue foglie siano dure e spinose alcuni animali se ne cibano durante l’inverno, quando la neve copre l’erba. Per questo le foglie più basse, quelle all’altezza della bocca degli animali, hanno più spine mentre quelle più alte ne sono prive.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003185&codigo=3185&pag=1&texto=Ilex%20aquifolium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003185&codigo=3185&pag=1&texto=Ilex%20aquifolium','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=385',NULL,NULL,NULL), +(21,'ZM_21_knautia003090.jpg','ZM_21_knautia003090.jpg','Knautia arvensis','Knautia arvensis','Escabiosa oficinal','Hatz belarra','Scabiosa','lengua de vaca, viuda silvestre','atze-belar','Ambretta comune, vedovella campestre','Se ha utilizado para limpiar las heridas provocadas por la sarna y la peste negra. El nombre vasco precisamente hace referencia a su uso contra la sarna y el picor: hazteri-belar o hatz-belar.\nGracias a sus taninos, se suele tomar en infusión como depurativo de la sangre.\nSus hojas se pueden comer en platos de verduras, sopas o tortillas, siempre antes de la floración.\nEl nombre científico es una combinación de homenaje al botánico alemán Christoph Knaut (1.638-1694) y de arvensis, por su tendencia a crecer en heredades cultivadas.','Hazteria (sarna) eta izurrite beltzak eragindako azaleko zauriak garbitzeko erabilia izan da. Hazteriaren kontrako erabileragatik datorkio euskal izena, hazteri-belar edo hatz-belar.\nDauzkan taninoei esker infusio eran hartuta odola garbitzeko balio du,.\nHostoak barazki plateretan, zopetan eta tortiletarako erabil daitezke, betiere loraldia baino lehen bildutakoak.\nIzen zientifikoa Christoph Knaut (1.638-1694) botanikari alemanaren omenez batetik, eta arvensis lurra landutako sailetan hazten denari dagokio.','E’ stata utilizzata per pulire le ferite provocate dalla scabbia e dalla peste nera. Il nome basco, in particolare, fa riferimento al suo uso contro la scabbia e il prurito: hazteri-belar o hatz-belar.\r\nGrazie ai suoi tannini, si è soliti berne l’infuso per depurare il sangue.\r\nLe sue foglie si possono mangiare nell’insalata, nella zuppa o nella frittata, ma sempre prima della fioritura.\r\nIl nome scientifico è una combinazione tra l’omaggio al botanico tedesco Christoph Knaut (1.638-1694) e arvensis, per la sua tendenza a crescere su tenute coltivate.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003090&codigo=3090&pag=1&texto=Knautia%20arvensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003090&codigo=3090&pag=1&texto=Knautia%20arvensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003090&codigo=3090&pag=1&texto=Knautia%20arvensis','BU_21_Knautia_arvensis.jpg','BU_21_Knautia_arvensis_c.jpg',NULL), +(22,'ZM_22_lilium003143.jpg','ZM_22_lilium003143.jpg','Lilium pyrenaicum',NULL,'Flor de lis','Zitoria horia','Fiordaliso','lirio','zitori horia, zitori gorria, melira','giglio','Del griego leirion, lirio, que en latín derivó a lilium. Pyrenaicum, es decir, de los Pirineos.\nParece que su nombre vasco, zitori, hace referencia al color amarillo (\"hori\"). Su habitual color es, pues, el amarillo, aunque algunos tienden al rojo. \nEn verano abunda esta hermosa flor en los herbazales y pedregales de los Pirineos.\nEl nombre castellano de \"lirio fétido\" se debe al hedor que despide su flor. La flor de lis es emblema habitual de la dinastía borbónica.','Grekoko leirion , lirio, hitzaren latinez dagokion hitza da lilium. Pyrenaicum, Pirinioetakoa, alegia.\nBadirudi euskarazko izenak bere baitan duela \"horia\" kolorea. Kolore nagusia horia izaten du gehienetan, nahiz badiren gorrirako joera dutenak ere. \nPirinioetako belardi eta harri tarteetan ugari izaten da udan lore eder hau.\nKiratsa dario loreari, horregatik gazteleraz \"lirio fétido\" bezala ere ezagutzen da. Lis lorearen eredu, Borbondarren kastaren ikurretako bat da.','Dal greco leirion, giglio, che in latino è diventato lilium. Pyrenaicum, cioè dei Pirenei.\r\nSembra che il suo nome basco, zitori, si riferisca al colore giallo (\"hori\"). Il suo colore abituale è appunto il giallo, anche se alcuni tendono più al rosso. \r\nIn estate questo fiore meraviglioso si trova in abbondanza sui pascoli e terreni rocciosi dei Pirenei.\r\nIl nome spagnolo di \"lirio fétido\" è dovuto all’odore emanato dal suo fiore. Il giglio è l’emblema più conosciuto della dinastia borbonica.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003143&codigo=3143&pag=1&texto=Lilium%20pyrenaicum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003143&codigo=3143&pag=1&texto=Lilium%20pyrenaicum',NULL,NULL,NULL,NULL), +(23,'ZM_23_lotus003128.jpg','ZM_23_lotus003128.jpg','Lotus corniculatus','Mullaghera communis','Cuernecillo','Mendiko usobelarra ','Ginestrino',NULL,NULL,'Ginestrina comune, \r\nTrifoglina','Planta rastrera con aspecto de trébol. Buen pasto para el ganado, tanto por su capacidad a amoldarse a distintos sustratos como porque puede ser pastada directamente o una vez guardada. En Gran Bretaña es más utilizada que aquí.\nTambién tiene importancia en apicultura, y cuando florece en abril son muchas las abejas que llegan a los prados a aprovisionarse de su néctar.\nLas flores son capaces de crear cianuro (sustancia muy tóxica) como mecanismo de defensa, sobre todo contra los hongos. \nEn Estados Unidos de América y en Australia se la considera especie invasora.\n','Hirusta itxurako landare herrestaria da. Abereentzako bazka ona da, sustratu ezberdinbetara moldatzen iaio eta ganaduak zuzenean bazkatzeko edo ontzeko egokia delako. Britainia Handian hemen baino erabiliagoa da.\nApikulturan ere badu garrantzia, apirilean loratzen denean erle asko hurbiltzen bai da larreetara bere nektarraren bila.\nLoreak zianuroa (gai guztiz toxikoa) sortzeko gai dira defentsa mekanismo bezala, bereziki onddoen aurka. \nAmeriketako Estatu Batuetako zenbaitetan eta Australian espezie inbaditzailetzat dute.\n','Pianta strisciante con aspetto simile al trifoglio. Buon alimento per il bestiame sia per la sua capacità di adattarsi a diversi sostrati, sia perché può essere mangiata direttamente o dopo esser stata conservata. In Gran Bretagna è molto più utilizzata che da noi.\r\nHa una grande importanza anche nell’apicoltura e quando fiorisce, in aprile, sono molte le api che arrivano sui prati per fare provvista del suo nettare.\r\nI fiori sono capaci di produrre cianuro (sostanza molto tossica) come meccanismo di difesa, soprattutto contro i funghi. \r\nNegli Stati Uniti e in Australia è considerata una specie infestante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003128&codigo=3128&pag=1&texto=Lotus%20corniculatus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003128&codigo=3128&pag=1&texto=Lotus%20corniculatus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=517','BU_23_Lotus_ corniculatus.jpg','BU_23_Lotus_corniculatus_c.jpg',NULL), +(24,'ZM_24_lythrum003065.jpg','ZM_24_lythrum003065.jpg','Lythrum salicaria','Chabrea vulgaris','Salicaria','Egur-belarra','Salcerella',NULL,NULL,NULL,'Las hojas, ricas en calcio, han sido utilizadas como alimento. \nEs un buen antibiótico, especialmente contra el tifus. Es apropiada para la limpieza de la piel, y sobre todo muy buena para combatir la diarrea de los lactantes. Esta hierba también se utiliza introduciéndola en las fosas nasales para cortar hemorragias. \nSuele crecer en tierras pobres y sobre todo húmedas: si se halla esta planta, señal de que hay agua. \nParece que el nombre lythrum proviene del griego \"lythron\", que significa sangre, tal vez por el color de sus flores...\nSus flores son polinizadas por insectos de lengua larga, como mariposas y abejas. \nUna sola planta puede llegar a dar en un año tres millones de semillas, que extienden el viento y el agua. Es invasora, y muy difícil de erradicar una vez que se asienta. \nSe cree que se ha extendido por todo el mundo debido a la tierra y el agua que se utilizaba para lastrar los barcos.\n','Hostoak egosita jan izan dira, karetan aberatsak dira. \nAntibiotiko ona da, batipat tifusaren aurkakoa. Azala garbitzeko sendabelar aproposa da. Bularreko haurren beherakoa sendatzeko bereziki egokia. Sudurreko odol jarioak eteteko, sudur-zuloa belar honekin betetzen da. \nLur eskasetan eta batez ere hezeetan bizi da. Landarea ikusiz gero, ura dagoen seinale. \nLythrum izena, itxuraz, grekoko \"lythron\" hitzetik datorkio, honek odola esan nahi du, loreen kolorea dela eta, nonbait...\nBere loreak mihi luzea duten intsektuek –tximeletek, erleek...- polinizatzen dituzte. \nLandare bakar batek hiru milioi hazi eman ditzake urte bakar batean. Haizeak eta urak zabaltzen dituzte. Inbaditzailea da eta behin asentatuz gero kendu edo galtzen ikaragarri zaila. \nDirudienez, batetik bestera dabiltzan itsasontziak orekatzeko lasta gisa jartzen zen lur eta uretan zabaldu da mundu osoan.\n','Le foglie, ricche di calcio, sono state utilizzate come alimento. \r\nE’ un buon antibiotico, specialmente contro il tifo. E’ possibile utilizzarla per la pulizia della pelle e risulta particolarmente indicata contro la diarrea dei lattanti. Questa erba si utilizza anche come coagulante per bloccare le emorragie, introducendola nelle narici. \r\nCresce di solito in terreni poveri e soprattutto umidi: la presenza di questa pianta indica che c’è dell’acqua. \r\nSembra che il nome lythrum provenga dal greco \"lythron\", che significa sangue, probabilmente per il colore dei suoi fiori...\r\nI suoi fiori sono impollinati da insetti dalla lingua larga, come farfalle e api. \r\nUna sola pianta può arrivare a dare in un anno tre milioni di semi, che si spargono attraverso il vento e l’acqua. E’ infestante e molto difficile da sradicare una volta insediatasi. \r\nSi pensa che la sua diffusione su scala mondiale sia dovuta alla terra e all’acqua utilizzate per zavorrare le navi.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003065&codigo=3065&pag=1&texto=Lythrum%20salicaria','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003065&codigo=3065&pag=1&texto=Lythrum%20salicaria','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=648',NULL,NULL,NULL), +(25,'ZM_25_mentha003193.jpg','ZM_25_mentha003193.jpg','Mentha suaveolens',NULL,'Menta','Menda','Menta','mastranzo, hierbabuena bastarda, matapulgas, mentrasto','batana, astamenda, astobatana, kukusobelar, mendeza, txortaloa, ardi-belar, erraldo-belar','Menta a foglie rotonde','Del griego minthê proviene la palabra latina mentha. Es, según parece, una de las hierbas de uso más antiguo que sigue utilizándose en la actualidad, ya que se conoce por lo menos desde hace 4.000 años. Según la mitología griega, Perséfone convirtió una ninfa en esta planta.\nLos egipcios la utilizaban en rituales funerarios. Los romanos la usaban para reforzar la inteligencia y las casas donde se apreciaba su olor se tenían por hospitalarias. En la Edad Media se valían de ella contra las heridas bucales, mordiscos de perro y contra los insectos, así como para blanquear los dientes y evitar que se cuajara la leche.\nLas ratas y ratones no gustan de su olor, por lo que se solía poner junto a los almacenes de semillas, para alejar los roedores.\nComo otras muchas plantas del mismo genero, se utiliza como hierba medicinal para curar muchos males.\nCon las hojas se hace una gelatina, y sirve para dar sabor en muchas recetas, por ejemplo en el cuscús. También se utiliza para hacer tisanas y endulzar ensaladas. Combina bien con el tomate y la berza.\nEl extracto de hojas de menta se puede usar como loción antimosquitos.\nEl aceite de menta se utiliza como insecticida sostenible y ecológico contra abejas, avispas, hormigas y escarabajos.\nEn algunos lugares se \"barrían\" los rincones de las habitaciones con un ramo de menta que después se clocaba bajo la cama para alejar las pulgas, de ahí que también se la denomine matapulgas y reciba, entre otros nombres vascos, el de kukusobelar.','Grekoko minthê hitzetik dator latineko mentha. Egundo erabiltzen den landare izen zaharrenetakoa omen, 4.000 urte behintzat baditu, nonbait. Mitologia grekoan Persefonek landare honetan bihurtu zuen ninfa bat zen.\nEgiptoarrek hileta errituetarako erabiltzen zuten. Erromatarrentzat, inteligentzia areagotzeko erabilgarriak ziren eta etxeetako menda usainak abegikortasuna adierazten zuen. Erdi Aroan, ahoko zauri, zakur hozkada eta intsektuen aurka erabiltzen zen eta baita hortzak zuritzeko eta baita esnearen gatzatzea ekiditeko ere.\nArratoi eta saguek ez dute mendaren usaina gogoko, eta horregatik karraskariak hazi biltegietatik urrun mantentzeko erabili izan da.\nGenero honetako beste landare guztiak bezala, etxeko sendagai bezala erabiltzen da gaitz askoren aurka.\nHostoekin gelatina bat egiten da eta baita plater askori zapore eman ere, adibidez kus-kusari. Tea egiteko ere erabiltzen da eta baita entsaladak gozatzeko ere. Tomate eta azarekin ondo uztartzen da.\nMenda hostoen estraktua eltxoen aurkako lozio bezala erabil daiteke\nMenda olioa intsektizida jasangarri edo ekologiko bezala erabiltzen da, erle, liztor, txingurri eta kakalardoen aurka.\nEuskal Herriko zenbait lekutan, sorta bat hartu eta logelatako zoko guztiak berarekin pasatzen ziren eta gero ohepean utzi, arkakusoak uxatzeko. Horregatik kukuso-belarra.','Dal greco minthê proviene la parola latina mentha. A quanto sembra è una delle erbe di uso più antico che si utilizza ancora oggi, dato che è conosciuta da almeno 4.000 anni. Secondo la mitologia greca Persefone convertì una ninfa in questa pianta. Gli egizi la utilizzavano nei rituali funebri. I romani per rafforzare l’intelligenza e le case dove il suo odore era apprezzato erano considerate ospitali. Durante il Medio Evo se ne servivano contro le ferite della bocca, morsi di cane e contro gli insetti, così come per sbiancare i denti ed evitare che il latte cagliasse.\r\nA topi e ratti il suo odore non piace, per questo si era soliti metterla nei magazzini delle semenze, per allontanare roditori.\r\nCome altre dello stesso genere si utilizza come erba medicinale per curare molte malattie.\r\nDalle foglie si può fare una gelatina che serve per insaporire numerose ricette, ad esempio il cous-cous. Si utilizza anche per fare delle tisane e addolcire le insalate. Si sposa bene con il pomodoro e la verza.\r\nL’estratto delle foglie di menta può essere usato come lozione antizanzara.\r\nL’olio di menta si utilizza come insetticida sostenibile ed ecologico contro api, vespe, formiche e scarafaggi.\r\nIn alcune zone un ramo di menta veniva passato come una scopa negli angoli della casa e in seguito si metteva sotto il letto per allontanare le pulci, da cui le deriva il nome di uccidi pulci e, tra gli altri nomi baschi, quello di kukusobelar.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003193&codigo=3193&pag=1&texto=Mentha%20suaveolens','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003193&codigo=3193&pag=1&texto=Mentha%20suaveolens',NULL,NULL,NULL,NULL), +(26,'ZM_26_narcissus003113.jpg','ZM_26_narcissus003113.jpg','Narcissus bulbocodium','Narcissus turgidus','Narciso','Lilipa','Narciso','trompeta de Medusa, calzas de cuco','txutxupraka , anbulo gaiztoa, narkiso',NULL,'El nombre de \"narcissus\" proviene de una antigua lengua persa y está relacionado con nargesse, ojo. En la mitología griega, la ninfa Eco, desesperada por el rechazo del altivo y petulante Narciso, hace un ruego a Némesis, diosa de la venganza. Narciso se arrodilla a la orilla de un río para ver mejor su imagen reflejada en el agua: enamorado de su propia imagen, quedó preso en aquella posición, mirándose a sí mismo hasta morir. En aquel mismo sitio, de su sangre nació el la flor narciso, inclinada hacia tierra. \nBulbocoium proviene de los términos griegos bôlbôs, bulbo, y kodion, lana. \nEn Europa existen unas 40 especies de narciso. La flor, muy estimada por su forma y su color, es muy utilizada en jardinería y floristería. Es de las primeras flores tras el invierno en montes y bosques, donde de vez en cuando crea paisajes sorprendentes.',' \"Narcissus\" Pertsiako hizkuntza zahar batetik dator. Nargesse, begia, zenaren historiari lotua. Greziar mitologian Écho ninfak, Narcissus harroputz handiustearen arbuioarekin etsita, mendekuaren jainkosa Nemesisi erregu bat bidaltzen dio. Narcissus, erreka batean ikusten duen bere islaren aurrean belaunikatzen da. Bere buru-estimu ikaragarriak kateatuta, hantxe geldituko da bere imajinari begira hil arte. Hil zen hartantxe bere odoletik sortu zen nartziso lorea, behera makurtua. \nBulbocoium, grekoko bôlbôs, erraboila, eta kodion, artile, hitzetatik dator. \nEuropan 40 lilipa espezie inguru dira. Oso lore erabilia da lorategietan, eta moztuta saltzeko, dituen kolore eta formagatik estimatua. Mendi eta basoetan, neguaren amaieran, sasoi berriaren atarian lehenengoetako lorea da, zenbaitetan paisaia harrigarriak sortuz.','Il nome di \"narcissus\" proviene da un’antica lingua persiana ed è relazionato con \"nargesse\", occhio. Nella mitologia greca, la ninfa Eco, disperata per il rifiuto dell’altezzoso e petulante Narciso, fa una preghiera a Némesis, dea della vendetta. Narciso si inginocchia sulla sponda di un fiume per guardare meglio la sua immagine riflessa nell’acqua: innamorato di se stesso, resta rapito in quella posizione, guardando se stesso fino a morirne. In quello stesso punto dal suo sangue nacque il fiore narciso, inclinato verso il basso. \r\nBulbocoium proviene dai termini greci bôlbôs, bulbo, y kodion, lana. \r\nIn Europa esistono circa 40 diverse specie di narciso. Il fiore, molto apprezzato per la forma e il colore, è molto utilizzato nel giardinaggio e nella floricultura. E’ uno dei primi fiori a sbocciare dopo l’inverno nei monti e nei boschi, dove a volte crea dei paesaggi sorprendenti.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003113&codigo=3113&pag=1&texto=Narcissus%20bulbocodium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003113&codigo=3113&pag=1&texto=Narcissus%20bulbocodium','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=168','BU_26_Narcissus_bulbocodium.jpg','BU_26_Narcissus bulbocodium_c.jpg',NULL), +(27,'ZM_27_oxalis003191.jpg','ZM_27_oxalis003191.jpg','Oxalis acetosella','Oxys pliniana','Aleluya','Barrabas belarra','Acetosella','aleluya, pan de cuclillo, vinagrillo, platanillo.','basoetako mingotsa, ahago, ahagorri, andera-belar, andera-garratz, arbi-azal, azanun, basoetako murigatsa, belar garratza, gazi, hiruorri, mongots, irorri mingatz, irorri minkaitz, matxin-belar, matxin garratz, mineta, mineta, mingarratz, mingots, ozpin-belar, pago andereke,pin-belar, txomin-belar','Acetosella dei boschi, Pane degli angeli, Pancuculo, Trifoglio acetoso.','Es del género que significa oxys (duro) y hals (sal). Acetosella proviene de acitum, vinagre, por la acidez de sus hojas.\nLa forma de sus hojas hace que a menudo se la confunda con el trébol, por lo que es habitual regalarla el día de San Patricio. De noche, así como cuando llueve, las hojas y las flores tienden a recogerse. También se le recogen las hojas los días de fuerte calor veraniego, para protegerse de los rayos de sol más fuertes. Quien repare en ello podrá adivinar que se anuncia tormenta.\nEl zumo que se obtiene de sus hojas se ha utilizado industrialmente para hacer quitamanchas contra la tinta y el óxido, también como desincrustante en los radiadores de los automóviles y para limpiar otros metales.\nHasta la Edad Media se utilizaba para dar sabor a sopas y ensaladas, a modo de vinagre. Se puede hacer un refresco parecido a la limonada con sus hojas. Sus bulbos, puestos a secar, también resultan sabrosos.','Generoa oxys (gogor) eta hals-etik (gatza) eratorria da. Acetosella, acitum, ozpinetik dator, hostoek duten garraztasunagatik.\nHostoek duten formagatik, askotan hirustarekin nahasten da eta horregatik St Patrick eguneko opari da. Gauez eta euria ari duenean, hosto eta loreak uzkurtu egiten dira. Udako egun beroenetan ere, hostoak biltzen ditu, eguzki izpi indartsuenak ekiditearren. Hostoak biltzen hasten denean, ekaitza datorrela iragarriko dio begirale aztiari.\nHostoetatik ateratako zukua, tinta eta herdoil orbanak kentzeko produktuak egiteko erabili izan da industrian. Baita autoen erradiadoreetan desinkrustante bezala, eta beste metal batzuk garbitzeko.\nErdi Aroa arte zopa eta entsaladei zaporea emateko erabiltzen zen, ozpina bailitzan. Hostoetatik edari freskagarri bat atera daiteke, limoizkoaren antzekoa. Lehortzen utzitako erreboilak ere gozoak dira.','E’ del genere che significa oxys (duro) e hals (sale). Acetosella proviene da acitum, aceto, per l’acidità delle sue foglie.\r\nLa forma delle foglie la fa spesso confondere con il trifoglio, per cui è usuale regalarla il giorno di San Patrizio. Di notte e quando piove le foglie e i fiori si ritirano. Questo accade, per le foglie, anche durante le giornate più calde dell’estate, per proteggersi dai raggi solari più forti. Chi si accorge del movimento potrà indovinare che si annuncia mal tempo.\r\nIl succo che si ottiene dalle sue foglie è stato utilizzato a livello industriale per produrre smacchiatori contro inchiostro e ossido, e come disincrostante nei radiatori delle macchine e per la pulizia di altri metalli. \r\nFino al Medio Evo è stato utilizzato per insaporire le zuppe e le insalate, alla maniera dell’aceto. Con le sue foglie si può fare una bibita fresca simile alla limonata. Anche i suoi bulbi, fatti seccare, risultano saporiti.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003191&codigo=3191&pag=1&texto=Oxalis%20acetosella','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003191&codigo=3191&pag=1&texto=Oxalis%20acetosella','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=335','BU_27_Oxalis_ acetosella.jpg','BU_27_Oxalis_ acetosella_c.jpg',NULL), +(28,'ZM_28_pinguicula003115.jpg','ZM_28_pinguicula003115.jpg','Pinguicula grandiflora','Pinguicula grandiflora','Grasilla','Muki-belarra','Erba-unta',NULL,'ametz-belarra, mokobelarra',NULL,'La particularidad de esta planta radica, además de en sus llamativas flores, en la mucosidad que tiene sobre las hojas, tal y como indica su nombre vasco (mukibelarra). Es planta carnívora, mejor dicho, insectívora. De hecho, la mucosa cumple esa función: atrapar los insectos que se posan sobre las hojas extendidas por el suelo, ya que estas hojas se pliegan sobre sí mismas desde los lados hacia el interior y digieren el insecto que ha quedado preso. También expele un fuerte bactericida que impide que el insecto se pudra mientras lo digiere. Este efecto bactericida es conocido de antiguo, puesto que se utilizaban las hojas de grasilla para ayudar a curar heridas del ganado. En el norte de Europa -Noruega, Suecia...- estas hojas se usaban para cuajar la leche.\nSe suele hallar en los rincones húmedos y en las orillas de las regatas.\n','Lore deigarriak emateaz gain, hostoen gainean izaten duen mukiak ematen dio berezitasuna landare honi, baita euskarazko izena ere. Landare haragi-jalea, edo hobe esan intsektu-jalea da. Horretarako du mukosa, lur gainean zabalduta dituen hostoen gainetik igarotzen diren intsektuak mukian itsatsita harrapatu, ondoren hostoak bi ertzetatik erdialdera bildu eta liseritzeko. Bakterizida indartsu bat ere jariatzen du, mukian harrapatutako intsektuak liseri artean usteldu ez daitezen. Bakterizida hau ezaguna izan da, aziendari zauriak sendatzen laguntzeko muki-belarraren hostoak jartzen bai zitzaizkien. Europako iparraldean -Norvegia, Suedia...- hosto hauek esnea gatzatu edo mamitzeko erabiltzen da\nZoko hezeetan eta erreka bazterretan izaten da.','La particolarità di questa pianta risiede, oltre che nei suoi notevoli fiori, nella mucosità delle foglie, così come indica il suo nome basco (mukibelarra). E’ una pianta carnivora, o per meglio dire, insettivora. Nella pratica è la mucosa a compiere questa funzione: intrappolare gli insetti che si posano sopra le foglie stese sul suolo con le foglie che si ripiegano su se stesse dai lati verso l’interno digerendo l’insetto rimasto intrappolato. Espelle anche un forte battericida che impedisce che l’insetto imputridisca durante la digestione. Questo effetto battericida è conosciuto fin dai tempi antichi, quando si utilizzavano le foglie di erba-unta per aiutare a curare le ferite del bestiame. Nel nord dell’Europa -Norvegia, Svezia...- queste foglie erano utilizzate per cagliare il latte.\r\nDi solito si trova in angoli umidi e sulla sponda dei rigagnoli.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003115&codigo=3115&pag=1&texto=Pinguicula%20grandiflora','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003115&codigo=3115&pag=1&texto=Pinguicula%20grandiflora','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=257','BU_28_Pinguicula_lusitanica2.jpg','BU_28_Pinguicula_lusitanica2_c.jpg',NULL), +(29,'ZM_29_potentilla003069.jpg','ZM_29_potentilla003069.jpg','Potentilla erecta','Potentilla erecta','Tormentilla','Zazporria','Tormentilla','sieteenrama',NULL,NULL,'El nombre de sieteenrama se debe a su hoja, que se divide en siete. \nSu gruesa raíz sirve para hacer una loción contra la diarrea. Los marinos del siglo XVIII la apreciaban mucho.\nEl nombre de potentilla le viene del latín \"potentia\" por su gran fuerza. Antiguamente también se le denominaba Tormentilla porque era frecuente utilizarla contra el dolor de muelas. \nSe emplea en cosmética para la elaboración de cremas, jabones, desodorantes, etc. \nEn casos de gran necesidad se ha llegado a comer su raíz. \nAsimismo, la raíz de ha usado también para teñir el cuero de rojo.\nHabita en suelos ácidos, y por ello resulta buena indicadora de la presencia de este tipo de suelos.\n','Zazpitan banatutako hostoa du, hortik zazporria izena. \nZain lodikotearekin beherakoa gelditzeko lozio bat egiten da. XVIII mendeko itsasgizonek fede handia zioten.\nPotentilla izena, sendagai bezala duen indarragatik datorkio, latineko \"potentia\"-tik. Lehen Tormentilla deitzen zitzaion, haginetako mina kentzeko ere usu erabiltzen bai zen. \nKosmetikan, kremak, xaboiak, desodoranteak etab. egiteko enplegatzen da. \nPremia izanez gero jan ere egin da sustraia.\nSustrai hau bera, larrua gorriz tindatzeko ere erabili izan da.\nLur azidoetan bizi da, eta lur mota hau non denaren adierazle ona da.\n','Il nome castigliano di sieteenrama è dovuto alla forma della sua foglia, che si divide in sette. \r\nDalla sua grossa radice si ricava uno sciroppo contro la diarrea. I marinai del XVIII secolo la apprezzavano molto.\r\nIl nome di potentilla le viene dal latino \"potentia\", per la sua grande forza. Anticamente era chiamata anche Tormentilla per il suo frequente utilizzo contro il mal di denti. \r\nSi utilizza come cosmetico per la produzione di creme, saponi, deodoranti, ecc. \r\nIn casi di necessità estrema si è arrivati a mangiarne la radice. \r\nE da sempre la radice è stata utilizzata per tingere il cuoio di rosso.\r\nE’ un buon indicatore dei suoli acidi data la sua predisposizione per crescere su questo tipo di terreni.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003069&codigo=3069&pag=1&texto=Potentilla%20erecta','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003069&codigo=3069&pag=1&texto=Potentilla%20erecta','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=631',NULL,NULL,NULL), +(30,'ZM_30_potentilla003145.jpg','ZM_30_potentilla003145.jpg','Potentilla reptans','Potentilla reptans','Tormentilla','Zaingorri bostorria ','Erba pecorina','cincoenrama','antzarra-belarra, bostorria, zangorri, zingorri, bostosto','Cinquefoglie comune, \r\nSpillabuco','Tanto el nombre castellano como el vasco coinciden en describir esta planta y su emparentada la sietenrama (Potentilla erecta): una tiene ramas divididas en siete hojas, y ésta las tiene en cinco.\nPotentilla proviene de potentia (por su poder como hierba medicinal) e illa (diminutivo). Es decir, es una pequeña flor de gran poder curativo. Reptans se refiere a su cualidad de extenderse sobre el suelo, no en altura.\nLas flores quedas semicerradas en días nublados, y totalmente cerradas de noche. Y así se produce la autofecundación, ya que las anteras tocan los estigmas.\nLas hojas tiernas son apropiadas como condimento de ensalada.\nLa cincoenrama es ingrediente de muchas cremas antiarrugas.\n','Euskal izenek gehienetan badute izana ere, eta kasu honetan argia da. Zazpiorriak (Potentilla erecta) zazpitan banatutako hostoak dituen eran, zaingorri bostorriak bostetan ditu banatuak.\nPotentilla hitzaren jatorria, potentia (senda belar bezala duen indarragatik) eta illa (diminutiboa) hitzak dira. Hau da, ezaugarri sendagarri handia lore txikian. Reptans bere lur gainean zabaltzeko joeragatik.\nLoreak erdi itxita geratzen dira eguraldi lainotsuarekin eta guztiz itxita gauean. Honela autoernalketa gertatzen da, anterek estigmak ukitzen dituztelako.\nHosto berriak entsaladetarako osagai bezala egokiak dira.\nZimurren aurkako krema askoren osagaietako bat da bostorria.','Sia il nome castigliano che quello basco coincidono nel descrivere questa pianta e la sua parente la tormentilla (Potentilla erecta): quest’ultima ha i rami divisi in sette foglie mentre la prima solo in cinque. \r\nPotentilla viene da potentia (per i suoi poteri curativi come erba medicinale) e illa (diminutivo). In poche parole, un piccolo fiore dall’enorme potere curativo. Reptans si riferisce alla sua propensione ad estendersi sul terreno e non in altezza. \r\nNelle giornate nuvolose i fiori restano semichiusi per poi chiudersi completamente la notte. E’ così che si produce l’autofecondazione, perché le antere toccano gli stigmi. \r\nLe foglie tenere sono indicate per arricchire le insalate. \r\nLa cinquefoglie è un ingrediente di molte creme antirughe.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003145&codigo=3145&pag=1&texto=Potentilla%20reptans','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003145&codigo=3145&pag=1&texto=Potentilla%20reptans','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=630','BU_30_Potentilla_reptans.jpg','BU_30_Potentilla_reptans_c.jpg',NULL), +(31,'ZM_31_primula003105.jpg','ZM_31_primula003105.jpg','Primula vulgaris+Primula veris','Primula suaveolens+ Primula veris','Primavera','San Jose lorea','Primula','flor de primavera, verbásculo, gordolobillo, vellorita de oro, flor de San José','San Jose lore goiztiarra, udaberri lore goiztiarra, bedats lilia, bitxileta, ostaiska, ostorika, pitxilindra, udaberri lorea,\n\nLatinezko primus izenak udaberriko lehenengoa adierazten du, udaberrian lehen loratzen dena alegia. \nMitologian, Bertha jainkosak umeak bere jauregi magikora erakartzen zituen San Jose lore ederrak erakutsiz.\nErabilera zabala du sukaldaritzan. Hosto berriak, gordinik edo prestatuta jan daitezke, baita zopen gehigarri bezala ere. Uki latza izanagatik zapore arina du. Loreak entsaladetarako gehigarri bezala erabiltzeko egokiak dira eta baita barazki bezala ere. Ireki berritan jasotako loreak, ura eta azukretan hartzituta ardo goxo bat egiten da. Hosto zein loreekin sirope eta teak egin litezke. \nHaziekin olioa egiten da. Olio hau oso erabilia da sukaldaritzan. Gainera, ezaugarri terapeutiko asko ditu, zenbait azido graso eta omega 6 famatua dituelako. Primula olioa lagungarria da biho','Primavera, Occhio di civetta, Primula odorosa','El nombre latino de primus se refiere a que es la primera flor de primavera, es decir, a la primera que florece. \nEn mitología, la diosa Bertha atraía a los niños a su palacio mágico enseñándoles estas flores.\nEn gastronomía tienen bastantes usos. Las hojas tiernas se pueden consumir crudas o cocinadas, así como condimento de sopas. Pese a su tacto algo áspero, el sabor es ligero. Las flores son adecuadas como ingrediente de ensaladas, o como verdura. Las flores que se recogen recién abiertas se pueden mezclar con agua y azúcar y realizar un vino dulce con ellas. Las hojas y flores también sirven para hacer siropes y tisanas. \nCon las semillas se realiza un aceite muy utilizado en la cocina. También tiene muchas propiedades terapéuticas, ya que posee ácidos grasos y el famoso omega 6. El aceite de prímula ayuda a evitar las enfermedades cardíacas, entre otras, también a aumentar las defensas y a regular las menstruaciones o paliar la menopausia.','San Jose lore goiztiarra, udaberri lore goiztiarra, bedats lilia, bitxileta, ostaiska, ostorika, pitxilindra, udaberri lorea,\n\nLatinezko primus izenak udaberriko lehenengoa adierazten du, udaberrian lehen loratzen dena alegia. \nMitologian, Bertha jainkosak umeak bere jauregi magikora erakartzen zituen San Jose lore ederrak erakutsiz.\nErabilera zabala du sukaldaritzan. Hosto berriak, gordinik edo prestatuta jan daitezke, baita zopen gehigarri bezala ere. Uki latza izanagatik zapore arina du. Loreak entsaladetarako gehigarri bezala erabiltzeko egokiak dira eta baita barazki bezala ere. Ireki berritan jasotako loreak, ura eta azukretan hartzituta ardo goxo bat egiten da. Hosto zein loreekin sirope eta teak egin litezke. \nHaziekin olioa egiten da. Olio hau oso erabilia da sukaldaritzan. Gainera, ezaugarri terapeutiko asko ditu, zenbait azido graso eta omega 6 famatua dituelako. Primula olioa lagungarria da bihotzeko gaixotasunak ekiditeko, defentsak indartzeko eta emakumeetan hilekoa erregulatzeko edo menopausian laguntzeko, besteren artean.','Il nome latino di primus si riferisce al suo essere il primo fiore di primavera, cioè la prima a fiorire. \r\nNella mitologia la Dea Bertha attirava i bambini nel suo palazzo magico mostrandogli questi fiori.\r\nNella gastronomia ha diversi utilizzi. Le foglie tenere si possono consumare crude o cotte, anche come condimento per le zuppe. Nonostante la sensazione tattile vagamente ruvida, il sapore è leggero. I fiori che si raccolgono appena dischiusi si possono mescolare con acqua e zucchero per farne un vino dolce. Le foglie e i fiori servono anche per sciroppi e tisane. \r\nDai semi si ottiene un olio molto utilizzato in cucina. Ha anche molte proprietà terapeutiche, dato che possiede acidi grassi e il famoso omega 6. L’olio di primula aiuta tra gli altri a prevenire problemi cardiaci, ad aumentare le difese immunitarie e a regolarizzare le mestruazioni o alleviare gli effetti della menopausa.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003105&codigo=3105&pag=1&texto=Primula%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003105&codigo=3105&pag=1&texto=Primula%20vulgaris','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=231','BU_31_Primula_vulgaris.jpg','BU_31_Primula_vulgaris_c.jpg',NULL), +(32,'ZM_32_smilax003077.jpg','ZM_32_smilax003077.jpg','Smilax aspera','Smilax aspera','Zarzaparrilla','Endalaharra','Salsapariglia',NULL,NULL,'Stracciabraghe Rovo cervone, Rovo cerrone','Planta trepadora de los sotobosques. Sus fuertes espinas le permiten aferrarse a las plantas que crecen a su lado. Presenta diformismo sexual. En otoño destaca la planta hembra por su poco follaje y sus racimos colgantes de frutos rojos y brillantes.\nLos nuevos brotes de primavera se comen como los espárragos.\nCon sus raíces se fabrica la bebida del mismo nombre, la zarzaparrilla. Tiene su origen en España y según parece está en el origen de la coca-cola, que aún la tiene como ingrediente. Durante el siglo XIX fue uno de los refrescos más conocidos. \nSe ha utilizado contra la sífilis y otros muchos males. \nContiene saponinas, que actúan como jabón y son tóxicas. Parece que son estos componentes los que defienden la planta de los hongos. \nEl nombre de zarzaparrilla se compone de zarza -del árabe \"saras\"- y de \"parrilla\", que hace referencia a su calidad de trepadora.\n','Basoetako sastraketan landare igokaria da. Arantza ederrez heltzen die aldameneko landareei. Landare arrak eta emeak bereiziak dira. Udazkenean emea nabarmena da, hostajea soildu eta fruitu gorri distiratsuz osatutako mordo zintzilikarioak erakusten bai ditu.\nUdaberriko puntta berriak zainzurien gisara jaten dira.\nBere sustraiekin egiten da zarzaparrilla deituriko edaria. Espainian du jatorria eta, dirudienez Coca-cola edariaren sorburu izan eta oraindik ere osagai du. XIX mendean freskagarri ezagunenetakoa izan zen. \nSifilia eta gaitz ugariren aurka erabili izan da. \nSaponinak ditu, xaboiaren lana egiten dute eta era berean toxikoak dira. Dirudienez, osagai honek onddoen erasoetatik babesten du landarea. \nZarzaparrilla izena, sasia adierazten duen \"saras\" arabeak eta igokaria esan nahi duen \"parrilla\"-k osatzen dute.\n','Pianta rampicante dei sottoboschi. Le sue forti spine le permettono di afferrarsi alle piante che le crescono accanto. Presenta disformità sessuale. In autunno la pianta femmina si distingue per il suo raro fogliame e i suoi grappoli pensili di frutti rossi e brillanti.\r\nI nuovi germogli primaverili si mangiano come gli asparagi.\r\nCon le sue radici viene fabbricata l’omonima bevanda, la salsapariglia. La sua origine è spagnola e a quanto sembra è stata uno degli ingredienti originari della coca-cola che ancora la annovera tra i suoi ingredienti. Durante il XIX secolo è stato uno dei rinfreschi più conosciuti. \r\nE’ stata utilizzata contro la sifilide e molte altre malattie. \r\nContiene saponine, che funzionano come il sapone e sono tossiche. Sembra che proprio questi componenti difendano la pianta dai funghi. \r\nIl nome di salsapariglia si compone di salsa –dall’arabo \"saras\"- e di \"pariglia\", che si riferisce al suo carattere di rampicante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=121','BU_32_Smilax_aspera.jpg','BU_32_Smilax _aspera_c.jpg',NULL), +(33,'ZM_33_tamarix003071.jpg','ZM_33_tamarix003071.jpg','Tamarix sp',NULL,'Taray','Milazka frantsesa ','Tamerice',NULL,NULL,NULL,'Es una planta que prefiere el agua y a la que no le molesta la sal, por lo que es habitual hallarla en la costa y en las rías. Si no encuentra agua en superficie, es capaz de hundir profundas raíces en su busca. \nAcumula en sus hojas la sal diluida en el agua de los suelos profundos. Por ello, el nivel de sal de las hojas que caen al suelo perjudica a las plantas vecinas y elimina su competencia. Aprovechando esta cualidad, se utiliza para limpiar las tierras salinas y plantarla en sitios donde hay pocas plantas. \nExpande sus semillas, aunque también es capaz de reproducirse produciendo brotes y enraizando las ramas que tocan el suelo. \nSe acostumbra bien al fuego, por lo que reaparece con facilidad en los lugares quemados. \nAsimismo, es buena para hacer leña de quemar y madera de carpintería. \nA causa de su follaje peculiar y llamativas floraciones, es muy habitual su uso en jardinería.\n','Ura maite du eta gatzak kalterik eragiten ez dionez itsasertzean eta errioetan bizi da. Bertan ez badu ere, ura bilatzen iaioak diren sustraiak luzeak hondoratzen ditu. \nLur sakonetako gatza uretan nahasita hartu eta hostoetan pilatzen du. Hostoak lurrera erortzean gatzak aldameneko landareak kaltetu eta konpetentzia kentzen du. Gaitasun hau baliatuz, lur gaziak garbitzeko eta beste landare gutxi bizi daitezkeen sailak landatzeko erabiltzen da. \nHaziak zabaltzen ditu, baina sustraietatik ematen dituen altsumak sortuz eta lurra ikuitzen duten adarrak itsatsiz ere ugaltzen da. \nSuteetara ongi egokituta daude eta erretako sailetan erraz berritzen da. \nEra berean, bere egurra sutarako eta zurgintzarako ona da. \nHostaje berezia eta loraldi deigarria dituenez, lorategi eta parkeetan erruz erabiltzen da.\n','E’ una pianta che preferisce l’acqua e alla quale il sale non crea problemi, per questo è abituale trovarla sulla costa o nei fiumi. Se non trova l’acqua in superficie è capace di sviluppare delle profonde radici per cercarla. \r\nNelle sue foglie accumula il sale diluito nell’acqua dei suoli profondi. Per questo, il livello di sale delle foglie che cadono al suolo pregiudica le piante limitrofe e ne elimina la concorrenza. Approfittando di questa qualità, si utilizza per pulire le terre saline e piantarla in luoghi dove ci sono poche piante. \r\nEspande i suoi semi ma è anche capace di riprodursi generando germogli e radicando i rami che toccano il suolo. \r\nSi abitua bene al fuoco e per questo riappare con facilità in terreni incendiati. \r\nInoltre, è buona per fare legna da ardere e come materiale da falegnameria. \r\nA causa del suo fogliame peculiare e della appariscente fioritura, è molto usata nel giardinaggio.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003071&codigo=3071&pag=1&texto=Tamarix','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003071&codigo=3071&pag=1&texto=Tamarix',NULL,NULL,NULL,NULL), +(34,'ZM_34_taraxacum003207.jpg','ZM_34_taraxacum003207.jpg','Taraxacum officinale',NULL,'Achicoria amarga','Txikori-belarra','Tarassaco comune','diente de león, panadero, áster','aitañi-lili, galkidea, gardanbera, lumabelar, txuntxumela','Dente di leone, Soffione, Piscialetto','Su nombre proviene de las palabras persas, recogidas a través del árabe, talkh chakok, con el significado de hierba amarga. También se le atribuye la etimología griega taraxos, mal, enfermedad, y akon, remedio.\nEsta planta es símbolo de Santa Brígida. Su savia lechosa sirve para curar verrugas, y se dice que incluso también para alimentar terneros y corderos.\nTiene un uso muy extendido en gastronomía, y es buena fuente de vitaminas A, B1, B2, B3, C y E. Tiene más hierro y calcio que las espinacas.\nLas hojas se pueden comer crudas o cocinadas. Normalmente se han comido en ensalada, pese a ser un poco amargas (menos en invierno). Si se les hace crecer sin luz lo son menos, pero entonces también tienen menos minerales y vitaminas.\nLas flores sin abrir se pueden utilizar en ensaladas, para hacer buñuelos o, conservadas en vinagre, como alcaparras.\nEn algunos sitios se hacen vinos y cervezas con ella. \nEl café que se hace de sus raíces (¡sin cafeína!) o el té que se hace de sus hojas es bueno para curar enfermedades del hígado.\nEl agua destilada hecha con sus lígulas sirve para aclarar la piel y, especialmente, para eliminar arrugas.\nEs un muy buen diurético, ya que su alta cantidad de sales de potasio sustituye las sales de este tipo que se pierden con otros diuréticos.\nLas flores de esta planta son uno de los ingredientes de los polvos que se utilizan para acelerar el compostaje.\nHace poco una compañía de combustibles ha comenzado a modificar sus refinerías para producir un tipo de bioetanol hecho con esta achicoria.\nEl gas etileno que desprende esta planta impide el desarrollo de las plantas de los alrededores, así como la maduración demasiado temprana de sus frutos.\nPuede extender sus raíces hasta un metro de profundidad y por tanto valerse de los nutrientes más profundos. Es una magnífica colonizadora tras los incendios por el gran número de semillas que se encuentran en el suelo. \nEstas semillas pueden permanecer en una situación como de letargo hasta 9 años.','Pertsieratik arabierara pasa eta jasoa, belar garratza adierazten duten talkh chakok hitzetatik. Aipatzen da, baita ere grekoen taraxos, gaitza, eta akon, sendagai, hitzetatik ote datorren.\nLandarea Santa Brigidaren zeinua da. Esne itxurako izerdiak, garatxak kentzeko balio du eta esaten dutenez txekor eta arkumeak elikatzeko egokia da.\nOso erabilpen zabala du sukaldaritzan eta A, B1, B2, B3, C eta E bitaminen iturri ona da. Espinakek baino burdin eta kaltzio gehiago du.\nHostoak gordinik edo prestatuta jan daitezke. Normalki entsaladan jan izan dira, nahiz eta pixka bat mingotsak izan (neguan gutxiago). Argirik gabe hazten utzi ezkero ez dira hain mingotsak baina ez dute mineral eta bitamina kopuru bera.\nIreki gabeko loreak entsaladan, txigorrak (buñuelos) egiteko eta ozpinetan gordez gero kapar (alcaparra) bezala erabil daitezke.\nZenbait lekutan ardo eta garagardoa egiten da berarekin.\nSustraiekin egindako kafeak (kafeina gabea!) edo hostoekin egindako teak gibeleko gaitzak sendatzeko balio du.\nLigulekin egindako ur destilatuak azala argitzeko eta bereziki zimurrak kentzeko balio du.\nDiuretiko bezala oso garrantzitsua da; duen potasio gatz kopuruagatik beste diuretikoekin galtzen diren gatz hauek ordezkatzen bai ditu.\nLandare honen loreak konpostaketa azkartzeko erabiltzen den hauts baten osagai dira.\nOrain gutxi, erregai konpainia bat bere lantegiak prestatzen ari da txikori-belarrarekin bioetanol moduko bat egiteko.\nLandare honek etileno gasa askatuz inguruko landareen garapena eragozten du, baita haien fruituen umotze goiztiarregia.\nMetro beteko sakonera arte zabal ditzake sustraiak, eta ondorioz lur sakoneko elikagaiak bereganatu.\nSuteen osteko kolonizatzaile bikaina da, lurrean egoten den hazi kopuru handiagatik. Hazi hauek 9 urte arte egon daitezke lo zorroan garatu arte.','Il suo nome viene dalle parole persiane, pervenute attraverso l’arabo, talkh chakok, il cui significato è erba amara. Le si attribuisce anche l’etimologia greca taraxos, male, infermità, e akon, rimedio. \r\nQuesta pianta è il simbolo di Santa Brigida. La sua linfa lattiginosa serve per curare le verruche e si dice che si usi anche come alimento per vitelli e agnelli. \r\nViene usata diffusamente in gastronomia ed è un’ottima fonte di vitamine A, B1, B2, B3, C ed E. Contiene più ferro e calcio degli spinaci. \r\nLe sue foglie possono essere mangiate sia crude che cotte. Si sono sempre mangiate nelle insalate, nonostante risultino un po’ amare (meno in inverno). Se si fanno crescere senza luce lo sono di meno ma così risultano più povere di minerali e vitamine. \r\nI fiori non ancora dischiusi si possono utilizzare per le insalate, per fare frittelle o, sottaceto, come capperi. \r\nIn alcune zone dalla pianta si producono vini e birre. \r\nIl caffè che si fa dalle sue radici (senza caffeina!) o il tè che si fa dalle sue foglie sono buoni per curare le malattie del fegato. \r\nL’acqua distillata fatta con le sue lìgule serve per schiarire la pelle e in particolare per eliminare le rughe. \r\nE’ un ottimo diuretico anche grazie alla alta quantità di sali di potassio che sostituiscono i sali di questo tipo che si perdono usando altri diuretici. \r\nI fiori di questa pianta sono tra gli ingredienti della polvere che si utilizza per accelerare il processo di compostaggio. \r\nRecentemente una compagnia di combustibili ha apportato delle modifiche alle sue raffinerie per produrre bioetanolo da questa cicoria. \r\nIl gas di etilene che questa pianta sprigiona impedisce sia lo sviluppo delle piante vicine che la maturazione dei loro frutti. \r\nPuò estendere le sue radici fino a un metro di profondità ed avere accesso così ai nutrimenti più sotterranei. E’ una magnifica colonizzatrice dopo gli incendi grazie al grande numero di semi che si trovano nel suolo. \r\nQuesti semi possono resistere in uno stato letargico fino a 9 anni.','http://www.albumsiglo19mendea.net/cas/palabramasdeuna.php?nombre=Taraxacum+officinale&submit=Buscar','http://www.albumsiglo19mendea.net/palabramasdeuna.php?nombre=Adianthum+capillus+&submit=Buscar',NULL,NULL,NULL,NULL), +(35,'ZM_Adianthum_capillus_veneris_003080.jpg','ZM_Adianthum_capillus_veneris_003080.jpg','Adianthum capillus veneris',NULL,'Culantrillo de pozo','Iturri-belar arrunta','Capelvenere',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabramasdeuna.php?nombre=Adianthum+capillus+&submit=Buscar','http://www.albumsiglo19mendea.net/palabramasdeuna.php?nombre=Taraxacum+officinale&submit=Buscar',NULL,NULL,NULL,NULL), +(36,'ZM_Agrimonia_eupatoria_003183.jpg','ZM_Agrimonia_eupatoria_003183.jpg','Agrimonia eupatoria',NULL,'Hierba de San Guillermo','Usu-belarra','Agrimonia',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003183&codigo=3183&pag=1&texto=Agrimonia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003183&codigo=3183&pag=1&texto=Agrimonia',NULL,NULL,NULL,NULL), +(37,'ZM_Anacamptis_pyramidalis_003095.jpg','ZM_Anacamptis_pyramidalis_003095.jpg','Anacamptis pyramidalis',NULL,'[Allium roseum]',' [Allium roseum]','Orchide piramidale',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003095&codigo=3095&pag=1&texto=Anacamptis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003095&codigo=3095&pag=1&texto=Anacamptis',NULL,NULL,NULL,NULL), +(38,'ZM_Anemone_nemorosa_003127.jpg','ZM_Anemone_nemorosa_003127.jpg','Anemone nemorosa',NULL,'Anémona de bosque','Baso anemona','Anemone dei boschi',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003127&codigo=3127&pag=1&texto=Anemone','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003127&codigo=3127&pag=1&texto=Anemone',NULL,NULL,NULL,NULL), +(39,'ZM_Angelica_sylvestris_003204.jpg','ZM_Angelica_sylvestris_003204.jpg','Angelica sylvestris',NULL,'Angélica silvestre','Mendiko aingeru-belarra','Angelica dei boschi',NULL,NULL,'Angelica selvatica, Erba angelica',NULL,NULL,'Dicono che l’arcangelo Gabriele mostrò a un saggio come combattere la peste nera con una pianta di questo genere; da qui proviene il nome di angelica.\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.\r\n\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003204&codigo=3204&pag=1&texto=Angelica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003204&codigo=3204&pag=1&texto=Angelica',NULL,NULL,NULL,NULL), +(40,'ZM_Angelica_sylvestris_003176.jpg','ZM_Angelica_sylvestris_003176.jpg','Angelica sylvestris',NULL,'Angélica silvestre','Mendiko aingeru-belarra','Angelica dei boschi',NULL,NULL,'Angelica selvatica, Erba angelica',NULL,NULL,'Dicono che l’arcangelo Gabriele mostrò a un saggio come combattere la peste nera con una pianta di questo genere; da qui proviene il nome di angelica.\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003176&codigo=3176&pag=1&texto=Angelica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003176&codigo=3176&pag=1&texto=Angelica',NULL,NULL,NULL,NULL), +(41,'ZM_Antirrhinum_003149.jpg','ZM_Antirrhinum_003149.jpg','Antirrhinum',NULL,'Antirrhinum, de jardín',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003149&codigo=3149&pag=1&texto=Antirrhinum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003149&codigo=3149&pag=1&texto=Antirrhinum',NULL,NULL,NULL,NULL), +(42,'ZM_Antirrhinum_majus_003119.jpg','ZM_Antirrhinum_majus_003119.jpg','Antirrhinum majus',NULL,'Boca de dragón','Dragoi-mutturra','Bocca di leone',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003119&codigo=3119&pag=1&texto=Antirrhinum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003119&codigo=3119&pag=1&texto=Antirrhinum',NULL,NULL,NULL,NULL), +(43,'ZM_Antirrhinum_majus_003164.jpg','ZM_Antirrhinum_majus_003164.jpg','Antirrhinum majus',NULL,'Boca de dragón','Dragoi-mutturra','Bocca di leone',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003164&codigo=3164&pag=1&texto=Antirrhinum%20majus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003164&codigo=3164&pag=1&texto=Antirrhinum%20majus',NULL,NULL,NULL,NULL), +(44,'ZM_Aquilegia_vulgaris_003160.jpg','ZM_Aquilegia_vulgaris_003160.jpg','Aquilegia vulgaris',NULL,'Aguileña','Kuku-belarra','Aquilegia comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003160&codigo=3160&pag=1&texto=Aquilegia%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003160&codigo=3160&pag=1&texto=Aquilegia%20vulgaris',NULL,NULL,NULL,NULL), +(45,'ZM_Arum_italicum_003152.jpg','ZM_Arum_italicum_003152.jpg','Arum italicum',NULL,'Comida de culebra','Suge-belar nerbiozuria','Pan di serpe',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20italicum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20italicum',NULL,NULL,NULL,NULL), +(46,'ZM_Asplenium_adiantum_nigrum_003085.jpg','ZM_Asplenium_adiantum_nigrum_003085.jpg','Asplenium adiantum nigrum',NULL,'Culantrillo negro','Iturri-belar beltza','Asplenio adianto-nero',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003085&codigo=3085&pag=1&texto=Asplenium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003085&codigo=3085&pag=1&texto=Asplenium',NULL,NULL,NULL,NULL), +(47,'ZM_Bellis_perennis_003081.jpg','ZM_Bellis_perennis_003081.jpg','Bellis perennis',NULL,'Maya','Basabitxilorea','Pratolina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003081&codigo=3081&pag=1&texto=Bellis%20perennis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003081&codigo=3081&pag=1&texto=Bellis%20perennis',NULL,NULL,NULL,NULL), +(48,'ZM_Blackstonia_perfoliata_003099.jpg','ZM_Blackstonia_perfoliata_003099.jpg','Blackstonia perfoliata',NULL,'Centaurea amarilla','Tentsio-belarra','Centauro giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003099&codigo=3099&pag=1&texto=Blackstonia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003099&codigo=3099&pag=1&texto=Blackstonia',NULL,NULL,NULL,NULL), +(49,'ZM_Blackstonia_perfoliata_003175.jpg','ZM_Blackstonia_perfoliata_003175.jpg','Blackstonia perfoliata',NULL,'Centaurea amarilla','Tentsio belarra','Centauro giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003175&codigo=3175&pag=1&texto=Blackstonia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003175&codigo=3175&pag=1&texto=Blackstonia',NULL,NULL,NULL,NULL), +(50,'ZM_Cakile_maritima_003154.jpg','ZM_Cakile_maritima_003154.jpg','Cakile maritima',NULL,'Cakile maritima','Cakile maritima','Ravastrello',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003154&codigo=3154&pag=1&texto=cakile','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003154&codigo=3154&pag=1&texto=cakile',NULL,NULL,NULL,NULL), +(51,'ZM_Campanula_glomerata_003096.jpg','ZM_Campanula_glomerata_003096.jpg','Campanula glomerata',NULL,'Campanilla','Ezkilalorea','Campanula agglomerata',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003096&codigo=3096&pag=1&texto=Campanula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003096&codigo=3096&pag=1&texto=Campanula',NULL,NULL,NULL,NULL), +(52,'ZM_Campanula_patula_003169.jpg','ZM_Campanula_patula_003169.jpg','Campanula patula',NULL,'Campanilla','Ezkilalorea','Campanula bienne',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003169&codigo=3169&pag=1&texto=Campanula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003169&codigo=3169&pag=1&texto=Campanula',NULL,NULL,NULL,NULL), +(53,'ZM_Carex_pendula_003213.jpg','ZM_Carex_pendula_003213.jpg','Carex pendula',NULL,'Espedaña','Ezpeta-belarra dilindaria\r\n Ezpeta-belarra dilindaria\r\n Ezpeta-belarra dilindaria','Carice maggiore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003213&codigo=3213&pag=1&texto=Carex%20pendula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003213&codigo=3213&pag=1&texto=Carex%20pendula',NULL,NULL,NULL,NULL), +(54,'ZM_Carlina_vulgaris_003078.jpg','ZM_Carlina_vulgaris_003078.jpg','Carlina vulgaris',NULL,'[Carlina vulgaris]','[Carlina vulgaris]','Carlina comune',NULL,NULL,' Cardo dorato',NULL,NULL,'La carlina abbonda sulle nostre montagne. Preferisce il calcare e per questo si può trovare in pascoli secchi, boschi temperati, terreni rocciosi o qualsiasi altro angolo che sia calcareo. E’ una pianta biennale: durante il primo anno dà foglie e accumula sostanze nutrienti, mentre nel successivo fiorisce tra luglio e settembre se il tempo è secco. E’ molto indicata per produrre miele, dato che è molto frequentata dalle api. \r\nSull’origine del nome Carlina ci sono opinioni diverse. Secondo quella più diffusa un angelo apparve a Carlomagno mostrandogli la radice di questa pianta; con questa riuscì a curare la malattia che tormentava la maggior parte dell’esercito con cui avrebbe dovuto conquistare Roma. A proporre questo nome è stato il famoso botanico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) nel XVI secolo. \r\nHa virtù medicinali come sudorifero e lassativo. \r\nIn Asia è stato utilizzato per fabbricare tinture.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003078&codigo=3078&pag=1&texto=Carlina%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003078&codigo=3078&pag=1&texto=Carlina%20vulgaris',NULL,NULL,NULL,NULL), +(55,'ZM_Carlina_vulgaris_003086.jpg','ZM_Carlina_vulgaris_003086.jpg','Carlina vulgaris',NULL,'[Carlina vulgaris]','(arlina vulgaris]','Carlina comune',NULL,NULL,' Cardo dorato',NULL,NULL,'La carlina abbonda sulle nostre montagne. Preferisce il calcare e per questo si può trovare in pascoli secchi, boschi temperati, terreni rocciosi o qualsiasi altro angolo che sia calcareo. E’ una pianta biennale: durante il primo anno dà foglie e accumula sostanze nutrienti, mentre nel successivo fiorisce tra luglio e settembre se il tempo è secco. E’ molto indicata per produrre miele, dato che è molto frequentata dalle api. \r\nSull’origine del nome Carlina ci sono opinioni diverse. Secondo quella più diffusa un angelo apparve a Carlomagno mostrandogli la radice di questa pianta; con questa riuscì a curare la malattia che tormentava la maggior parte dell’esercito con cui avrebbe dovuto conquistare Roma. A proporre questo nome è stato il famoso botanico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) nel XVI secolo. \r\nHa virtù medicinali come sudorifero e lassativo. \r\nIn Asia è stato utilizzato per fabbricare tinture.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003086&codigo=3086&pag=1&texto=Carlina%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003086&codigo=3086&pag=1&texto=Carlina%20vulgaris',NULL,NULL,NULL,NULL), +(56,'ZM_Centaurea_debeauxil_003222.jpg','ZM_Centaurea_debeauxil_003222.jpg','Centaurea debeauxil',NULL,'Centaurea nigra','Centaurea nigra','Spino giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003222&codigo=3222&pag=1&texto=Centaurea%20debeauxil','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003222&codigo=3222&pag=1&texto=Centaurea%20debeauxil',NULL,NULL,NULL,NULL), +(57,'ZM_Cichorium_intybus_003210.jpg','ZM_Cichorium_intybus_003210.jpg','Cichorium intybus',NULL,' Achicoria silvestre','Basatxikoria','Cicoria comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003210&codigo=3210&pag=1&texto=Cichorium%20intybus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003210&codigo=3210&pag=1&texto=Cichorium%20intybus',NULL,NULL,NULL,NULL), +(58,'ZM_Cirsium_arvense_003211.jpg','ZM_Cirsium_arvense_003211.jpg','Cirsium arvense',NULL,' Cardo','Gardua','Cardo campestre',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003211&codigo=3211&pag=1&texto=Cirsium%20arvense','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003211&codigo=3211&pag=1&texto=Cirsium%20arvense',NULL,NULL,NULL,NULL), +(59,'ZM_Cirsium_vulgare_003089.jpg','ZM_Cirsium_vulgare_003089.jpg','Cirsium vulgare',NULL,'Cirsium vulgare','Astakardua]','Cardo asinino',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003089&codigo=3089&pag=1&texto=Cirsium%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003089&codigo=3089&pag=1&texto=Cirsium%20vulgare',NULL,NULL,NULL,NULL), +(60,'ZM_Cistus_salviifolius_003206.jpg','ZM_Cistus_salviifolius_003206.jpg','Cistus salviifolius',NULL,'[Jara]',' Estrepa','Cisto femmina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003206&codigo=3206&pag=1&texto=Cistus%20salviifolius','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003206&codigo=3206&pag=1&texto=Cistus%20salviifolius',NULL,NULL,NULL,NULL), +(61,'ZM_Cistus_salviifolius_003118.jpg','ZM_Cistus_salviifolius_003118.jpg','Cistus salviifolius',NULL,' Jara','\r\n Estrepa','Cisto femmina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003118&codigo=3118&pag=1&texto=Cistus%20salviifolius','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003118&codigo=3118&pag=1&texto=Cistus%20salviifolius',NULL,NULL,NULL,NULL), +(62,'ZM_Coniza_canadensis_003189.jpg','ZM_Coniza_canadensis_003189.jpg','Coniza canadensis',NULL,'Coniza canadensis','Coniza canadensis','Saeppola canadese',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003189&codigo=3189&pag=1&texto=Coniza%20canadensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003189&codigo=3189&pag=1&texto=Coniza%20canadensis',NULL,NULL,NULL,NULL), +(63,'ZM_Crepis_sp_003187.jpg','ZM_Crepis_sp_003187.jpg','Crepis sp',NULL,'Crepis sp','Crepis sp','Crepis sp',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003187&codigo=3187&pag=1&texto=Crepis%20sp','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003187&codigo=3187&pag=1&texto=Crepis%20sp',NULL,NULL,NULL,NULL), +(64,'ZM_Daboecia_cantabrica_003171.jpg','ZM_Daboecia_cantabrica_003171.jpg','Daboecia cantabrica',NULL,' Daboecia','Ainarra kantauriarra','Daboecia cantabrica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003171&codigo=3171&pag=1&texto=Daboecia%20cantabrica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003171&codigo=3171&pag=1&texto=Daboecia%20cantabrica',NULL,NULL,NULL,NULL), +(65,'ZM_Daphne_laureola_003209.jpg','ZM_Daphne_laureola_003209.jpg','Daphne laureola',NULL,'Laureola','Garatxo-belarra','Dafne laurella',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003209&codigo=3209&pag=1&texto=Daphne%20laureola','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003209&codigo=3209&pag=1&texto=Daphne%20laureola',NULL,NULL,NULL,NULL), +(66,'ZM_Dipsacus_fullonum_003201.jpg','ZM_Dipsacus_fullonum_003201.jpg','Dipsacus fullonum',NULL,' Cardencha',' Astalarra','Scardaccione',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003201&codigo=3201&pag=1&texto=Dipsacus%20fullonum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003201&codigo=3201&pag=1&texto=Dipsacus%20fullonum',NULL,NULL,NULL,NULL), +(67,'ZM_Dryopteris_affinis_003190.jpg','ZM_Dryopteris_affinis_003190.jpg','Dryopteris_affinis',NULL,' Helecho]',' Iratzea','Felce pelosa',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003190&codigo=3190&pag=1&texto=Dryopteris%20affinis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003190&codigo=3190&pag=1&texto=Dryopteris%20affinis',NULL,NULL,NULL,NULL), +(68,'ZM_Epilubium_sp_003212.jpg','ZM_Epilubium_sp_003212.jpg','Epilubium sp',NULL,'Epilobe',' Epilobe','Garofanino d\'acqua',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003212&codigo=3212&pag=1&texto=Epilubium%20sp','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003212&codigo=3212&pag=1&texto=Epilubium%20sp',NULL,NULL,NULL,NULL), +(69,'ZM_Erica_ciliaris_003066.jpg','ZM_Erica_ciliaris_003066.jpg','Erica ciliaris',NULL,' Carrontsa','Ainarra iletsua','Erica ciliaris',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003066&codigo=3066&pag=1&texto=Erica%20ciliaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003066&codigo=3066&pag=1&texto=Erica%20ciliaris',NULL,NULL,NULL,NULL), +(70,'ZM_Erica_cinerea_003068.jpg','ZM_Erica_cinerea_003068.jpg','Erica cinerea',NULL,NULL,NULL,'Erica cinerea',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(71,'ZM_Erica_cinerea_003173.jpg','ZM_Erica_cinerea_003173.jpg','Erica cinerea',NULL,'Brezo nazareno',' Ainarra purpura','Erica cinerea',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003173&codigo=3173&pag=1&texto=ERICA%20CINEREA','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003173&codigo=3173&pag=1&texto=ERICA%20CINEREA',NULL,NULL,NULL,NULL), +(72,'ZM_Erica_lusitanica_003074.jpg','ZM_Erica_lusitanica_003074.jpg','Erica lusitanica',NULL,'Brezo portugués','Portugal txilarra','Erica lusitanica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003074&codigo=3074&pag=1&texto=Erica%20lusitanica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003074&codigo=3074&pag=1&texto=Erica%20lusitanica',NULL,NULL,NULL,NULL), +(73,'ZM_Erica_multiflora_003073.jpg','ZM_Erica_multiflora_003073.jpg','Erica multiflora',NULL,'Bruguera',' Ainarra loretsua','Erica multiflora',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003073&codigo=3073&pag=1&texto=Erica%20multiflora','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003073&codigo=3073&pag=1&texto=Erica%20multiflora',NULL,NULL,NULL,NULL), +(74,'ZM_Erica_multiflora_003073.jpg','ZM_Erica_multiflora_003073.jpg','Erica multiflora',NULL,NULL,NULL,'Erica multiflora',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(75,'ZM_Erica_vagans_003170.jpg','ZM_Erica_vagans_003170.jpg','Erica vagans',NULL,'Bruco','Ainarra burusoila','Erica vagans',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003170&codigo=3170&pag=1&texto=Erica%20vagans','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003170&codigo=3170&pag=1&texto=Erica%20vagans',NULL,NULL,NULL,NULL), +(76,'ZM_Erodium_moschatum_003091.jpg','ZM_Erodium_moschatum_003091.jpg','Erodium moschatum',NULL,'[Erodium moschatum]\r\n [Erodium moschatum]',NULL,'Becco di grù aromatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003091&codigo=3091&pag=1&texto=Erodium%20moschatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003091&codigo=3091&pag=1&texto=Erodium%20moschatum',NULL,NULL,NULL,NULL), +(77,'ZM_Erodium_moschatum_003161.jpg','ZM_Erodium_moschatum_003161.jpg','Erodium moschatum',NULL,'Muscari','Muscari','Becco di grù aromatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003161&codigo=3161&pag=1&texto=Erodium%20moschatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003161&codigo=3161&pag=1&texto=Erodium%20moschatum',NULL,NULL,NULL,NULL), +(78,'ZM_Eryngium_maritimum_003079.jpg','ZM_Eryngium_maritimum_003079.jpg','Eryngium maritimum',NULL,' Cardo marino','Itsas kardoa','Calcetreppola marina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003079&codigo=3079&pag=1&texto=Eryngium%20maritimum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003079&codigo=3079&pag=1&texto=Eryngium%20maritimum',NULL,NULL,NULL,NULL), +(79,'ZM_Erythoea_ Centaurium_003195.jpg','ZM_Eupatotium_cannabium_003217.jpg','Eupatotium cannabium',NULL,'Eupatorio','Atiketa','Canapa acquatica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003217&codigo=3217&pag=1&texto=Eupatotium%20cannabium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003217&codigo=3217&pag=1&texto=Eupatotium%20cannabium',NULL,NULL,NULL,NULL), +(80,'ZM_Euphorbia_amygdaloides_003181.jpg','ZM_Euphorbia_amygdaloides_003181.jpg','Euphorbia amygdaloides',NULL,' [Euphorbia amygdaloides]','Euphorbia amygdaloides]','Euforbia delle faggete',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003181&codigo=3181&pag=1&texto=Euphorbia%20amygdaloides','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003181&codigo=3181&pag=1&texto=Euphorbia%20amygdaloides',NULL,NULL,NULL,NULL), +(81,'ZM_Euphorbia_portlandica_003103.jpg','ZM_Euphorbia_portlandica_003103.jpg','Euphorbia portlandica',NULL,'[Euphorbia portlandica]','[Euphorbia portlandica]','Euphorbia portlandica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003103&codigo=3103&pag=1&texto=Euphorbia%20amygdaloides','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003103&codigo=3103&pag=1&texto=Euphorbia%20amygdaloides',NULL,NULL,NULL,NULL), +(82,'ZM_Fumaria_ifficinalis_003122.jpg','ZM_Fumaria_ifficinalis_003122.jpg','Fumaria ifficinalis',NULL,' Palomilla','Negakina','Fumaria officinale',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003122&codigo=3122&pag=1&texto=Fumaria%20ifficinalis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003122&codigo=3122&pag=1&texto=Fumaria%20ifficinalis',NULL,NULL,NULL,NULL), +(83,'ZM_Gentiana_pneumonanthe_003094.jpg','ZM_Gentiana_pneumonanthe_003094.jpg','Gentiana pneumonanthe',NULL,'Genciana','Gentziana','Genziana mettimborsa',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003094&codigo=3094&pag=1&texto=Gentiana%20pneumonanthe','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003094&codigo=3094&pag=1&texto=Gentiana%20pneumonanthe',NULL,NULL,NULL,NULL), +(84,'ZM_Geranium_robertianum_003083.jpg','ZM_Geranium_robertianum_003083.jpg','Geranium robertianum',NULL,' Hierba de San Roberto','San Robertoren zaingorria','Geranio di S.Roberto',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003083&codigo=3083&pag=1&texto=Geranium%20robertianum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003083&codigo=3083&pag=1&texto=Geranium%20robertianum',NULL,NULL,NULL,NULL), +(85,'ZM_Geranium_rotundifolium_003162.jpg','ZM_Geranium_rotundifolium_003162.jpg','Geranium rotundifolium',NULL,' [Geranium rotundifolium]',' [Geranium rotundifolium]','Geranio malvaccino',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003162&codigo=3162&pag=1&texto=Geranium%20rotundifolium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003162&codigo=3162&pag=1&texto=Geranium%20rotundifolium',NULL,NULL,NULL,NULL), +(86,'ZM_Glechoma_hederacea_003100.jpg','ZM_Glechoma_hederacea_003100.jpg','Glechoma hederacea',NULL,'[Glechoma hederacea]',' [Glechoma hederacea]','Ellera terrestre comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003100&codigo=3100&pag=1&texto=Glechoma%20hederacea','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003100&codigo=3100&pag=1&texto=Glechoma%20hederacea',NULL,NULL,NULL,NULL), +(87,'ZM_Hedera_helix_003064.jpg','ZM_Hedera_helix_003064.jpg','Hedera helix',NULL,' Hiedra',' Huntza','Edera comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003064&codigo=3064&pag=1&texto=Hedera%20helix','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003064&codigo=3064&pag=1&texto=Hedera%20helix',NULL,NULL,NULL,NULL), +(88,'ZM_Hedera_helix_003208.jpg','ZM_Hedera_helix_003208.jpg','Hedera helix',NULL,'Hiedra','Huntza','Edera comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003208&codigo=3208&pag=1&texto=Hedera%20helix','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003208&codigo=3208&pag=1&texto=Hedera%20helix',NULL,NULL,NULL,NULL), +(89,'ZM_Hepatica_nobilis_003125.jpg','ZM_Hepatica_nobilis_003125.jpg','Hepatica nobilis',NULL,' Hepática','Gibel-belarra','Erba trinità',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003125&codigo=3125&pag=1&texto=Hepatica%20nobilis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003125&codigo=3125&pag=1&texto=Hepatica%20nobilis',NULL,NULL,NULL,NULL), +(90,'ZM_Hieracium_murorum_003199.jpg','ZM_Hieracium_murorum_003199.jpg','Hieracium murorum',NULL,'cardo de las murallas','murruetako kardua','Sparviere dei boschi',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003199&codigo=3199&pag=1&texto=Hieracium%20murorum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003199&codigo=3199&pag=1&texto=Hieracium%20murorum',NULL,NULL,NULL,NULL), +(91,'ZM_Hypericum_perforatum_003192.jpg','ZM_Hypericum_perforatum_003192.jpg','Hypericum perforatum',NULL,'Hierba de San Juan','Santio belarra','Erba di San Giovanni',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003192&codigo=3192&pag=1&texto=Hypericum%20perforatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003192&codigo=3192&pag=1&texto=Hypericum%20perforatum',NULL,NULL,NULL,NULL), +(92,'ZM_Iris_003150.jpg','ZM_Iris_003150.jpg','Iris',NULL,'Astigarraga',' Astigarraga irisa','Iris',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003150&codigo=3150&pag=1&texto=Iris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003150&codigo=3150&pag=1&texto=Iris',NULL,NULL,NULL,NULL), +(93,'ZM_Iris_pseudacorus_003202.jpg','ZM_Iris_pseudacorus_003202.jpg','Iris pseudacorus',NULL,'Lirio amarillo','Lirio horia','Giaggiolo acquatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003202&codigo=3202&pag=1&texto=Iris%20pseudacorus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003202&codigo=3202&pag=1&texto=Iris%20pseudacorus',NULL,NULL,NULL,NULL), +(94,'ZM_Iris_foetidissima_003075.jpg','ZM_Iris_foetidissima_003075.jpg','Iris foetidissima',NULL,' Iris fétido',' Melira','Giaggiolo puzzolente',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003075&codigo=3075&pag=1&texto=Iris%20foetidissima','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003075&codigo=3075&pag=1&texto=Iris%20foetidissima',NULL,NULL,NULL,NULL), +(95,'ZM_Lamiastrum_galeobdolon_003126.jpg','ZM_Lamiastrum_galeobdolon_003126.jpg','Lamiastrum galeobdolon',NULL,'Ortiga amarilla','Zaparta belar horia','Ortica gialla',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003126&codigo=3126&pag=1&texto=Lamiastrum%20galeobdolon','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003126&codigo=3126&pag=1&texto=Lamiastrum%20galeobdolon',NULL,NULL,NULL,NULL), +(96,'ZM_Lamium_maculatum_003178.jpg','ZM_Lamium_maculatum_003178.jpg','Lamium maculatum',NULL,'Ortiga fétida','Asun borta','Falsa-Ortica macchiata',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003178&codigo=3178&pag=1&texto=Lamium%20maculatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003178&codigo=3178&pag=1&texto=Lamium%20maculatum',NULL,NULL,NULL,NULL), +(97,'ZM_Lamium_maculatum_003137.jpg','ZM_Lamium_maculatum_003137.jpg','Lamium maculatum',NULL,'Ortiga fétida',' Asun borta','Falsa-Ortica macchiata',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003137&codigo=3137&pag=1&texto=Lamium%20maculatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003137&codigo=3137&pag=1&texto=Lamium%20maculatum',NULL,NULL,NULL,NULL), +(98,'ZM_Lathrea_clandestina_003203.jpg','ZM_Lathrea_clandestina_003203.jpg','Lathrea clandestina',NULL,'Lathrea clandestina','[Lathrea clandestina','Lathrea clandestina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003203&codigo=3203&pag=1&texto=Lathrea%20clandestina','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003203&codigo=3203&pag=1&texto=Lathrea%20clandestina',NULL,NULL,NULL,NULL), +(99,'ZM_Lathyrus_sylvestris_003198.jpg','ZM_Lathyrus_sylvestris_003198.jpg','Lathyrus sylvestris',NULL,' [Lathyrus sylvestris]',' [Lathyrus sylvestris]','Pisello selvatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003198&codigo=3198&pag=1&texto=Lathyrus%20sylvestris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003198&codigo=3198&pag=1&texto=Lathyrus%20sylvestris',NULL,NULL,NULL,NULL), +(100,'ZM_Lathyrus_aphaca_003156.jpg','ZM_Lathyrus_aphaca_003156.jpg','Lathyrus aphaca',NULL,' Afaca','Astailarra','Cicerchia bastarda',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003156&codigo=3156&pag=1&texto=Lathyrus%20aphaca','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003156&codigo=3156&pag=1&texto=Lathyrus%20aphaca',NULL,NULL,NULL,NULL), +(101,'ZM_Lathyrus_nissolia_003163.jpg','ZM_Lathyrus_nissolia_003163.jpg','Lathyrus nissolia',NULL,'[Lathyrus nissolia]','[Lathyrus nissolia]','Cicerchia semplice',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003163&codigo=3163&pag=1&texto=Lathyrus%20nissolia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003163&codigo=3163&pag=1&texto=Lathyrus%20nissolia',NULL,NULL,NULL,NULL), +(102,'ZM_Lathyrus_pratensis_003165.jpg','ZM_Lathyrus_pratensis_003165.jpg','Lathyrus pratensis',NULL,' Lathyrus pratensis','Lathyrus pratensis','Cicerchia dei prati',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003165&codigo=3165&pag=1&texto=Lathyrus%20pratensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003165&codigo=3165&pag=1&texto=Lathyrus%20pratensis',NULL,NULL,NULL,NULL), +(103,'ZM_Lathyrus_sylvestris_003166.jpg','ZM_Lathyrus_sylvestris_003166.jpg','Lathyrus sylvestris',NULL,' [Lathyrus sylvestris]','[Lathyrus sylvestris]','Pisello selvatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003166&codigo=3166&pag=1&texto=Lathyrus%20sylvestris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003166&codigo=3166&pag=1&texto=Lathyrus%20sylvestris',NULL,NULL,NULL,NULL), +(104,'ZM_Lichnis_flos_cuculi_003131.jpg','ZM_Lichnis_flos_cuculi_003131.jpg','Lichnis flos cuculi',NULL,'Aligustre',' Arbustu arrunta','Fior di cuculo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare',NULL,NULL,NULL,NULL), +(105,'ZM_Ligustrum_vulgare_003142.jpg','ZM_Ligustrum_vulgare_003142.jpg','Ligustrum vulgare',NULL,' Aligustre','Arbustu arrunta','Ligustro comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare',NULL,NULL,NULL,NULL), +(106,'ZM_Linaria_supina_003123.jpg','ZM_Linaria_supina_003123.jpg','Linaria supina',NULL,'Linaria','Igitai-belarra','Linajola dei serpentini',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003123&codigo=3123&pag=1&texto=Linaria%20supina','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003123&codigo=3123&pag=1&texto=Linaria%20supina',NULL,NULL,NULL,NULL), +(107,'ZM_Lithodora_diffusa_003116.jpg','ZM_Lithodora_diffusa_003116.jpg','Lithodora diffusa',NULL,'Carrasquilla azul','Lithodora diffusa','Migiasole maggiore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003116&codigo=3116&pag=1&texto=Lithodora%20diffusa','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003116&codigo=3116&pag=1&texto=Lithodora%20diffusa',NULL,NULL,NULL,NULL), +(108,'ZM_Lotus_corniculata_Anthyllis _003188.jpg','ZM_Lotus_corniculata_Anthyllis_003188.jpg','Lotus corniculata Anthyllis',NULL,'Anthyllis vulneraria','Zauri-belarra',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003188&codigo=3188&pag=1&texto=Lotus%20corniculata','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003188&codigo=3188&pag=1&texto=Lotus%20corniculata',NULL,NULL,NULL,NULL), +(109,'ZM_Lotus_corniculatus_003112.jpg','ZM_Lotus_corniculatus_003112.jpg','Lotus corniculatus',NULL,'Cuernecillo','Mendiko usobelarra','Ginestrino',NULL,NULL,'Ginestrina comune, \r\nTrifoglina',NULL,NULL,'Pianta strisciante con aspetto simile al trifoglio. Buon alimento per il bestiame sia per la sua capacità di adattarsi a diversi sostrati, sia perché può essere mangiata direttamente o dopo esser stata conservata. In Gran Bretagna è molto più utilizzata che da noi.\r\nHa una grande importanza anche nell’apicoltura e quando fiorisce, in aprile, sono molte le api che arrivano sui prati per fare provvista del suo nettare.\r\nI fiori sono capaci di produrre cianuro (sostanza molto tossica) come meccanismo di difesa, soprattutto contro i funghi. \r\nNegli Stati Uniti e in Australia è considerata una specie infestante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003112&codigo=3112&pag=1&texto=Lotus%20corniculatus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003112&codigo=3112&pag=1&texto=Lotus%20corniculatus',NULL,NULL,NULL,NULL), +(110,'ZM_Lotus_corniculatus_003159.jpg','ZM_Lotus_corniculatus_003159.jpg','Lotus corniculatus',NULL,'Cuernecillo','Mendiko usobelarra','Ginestrino',NULL,NULL,'Ginestrina comune, \r\nTrifoglina',NULL,NULL,'Pianta strisciante con aspetto simile al trifoglio. Buon alimento per il bestiame sia per la sua capacità di adattarsi a diversi sostrati, sia perché può essere mangiata direttamente o dopo esser stata conservata. In Gran Bretagna è molto più utilizzata che da noi.\r\nHa una grande importanza anche nell’apicoltura e quando fiorisce, in aprile, sono molte le api che arrivano sui prati per fare provvista del suo nettare.\r\nI fiori sono capaci di produrre cianuro (sostanza molto tossica) come meccanismo di difesa, soprattutto contro i funghi. \r\nNegli Stati Uniti e in Australia è considerata una specie infestante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003159&codigo=3159&pag=1&texto=Lotus%20corniculatus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003159&codigo=3159&pag=1&texto=Lotus%20corniculatus',NULL,NULL,NULL,NULL), +(111,'ZM_Lythrum_salicaria_003147.jpg','ZM_Lythrum_salicaria_003147.jpg','Lythrum salicaria',NULL,'Salicaria','Egur-belarra','Salcerella',NULL,NULL,NULL,NULL,NULL,'Le foglie, ricche di calcio, sono state utilizzate come alimento. \r\nE’ un buon antibiotico, specialmente contro il tifo. E’ possibile utilizzarla per la pulizia della pelle e risulta particolarmente indicata contro la diarrea dei lattanti. Questa erba si utilizza anche come coagulante per bloccare le emorragie, introducendola nelle narici. \r\nCresce di solito in terreni poveri e soprattutto umidi: la presenza di questa pianta indica che c’è dell’acqua. \r\nSembra che il nome lythrum provenga dal greco \"lythron\", che significa sangue, probabilmente per il colore dei suoi fiori...\r\nI suoi fiori sono impollinati da insetti dalla lingua larga, come farfalle e api. \r\nUna sola pianta può arrivare a dare in un anno tre milioni di semi, che si spargono attraverso il vento e l’acqua. E’ infestante e molto difficile da sradicare una volta insediatasi. \r\nSi pensa che la sua diffusione su scala mondiale sia dovuta alla terra e all’acqua utilizzate per zavorrare le navi.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003147&codigo=3147&pag=1&texto=Lythrum%20salicaria','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003147&codigo=3147&pag=1&texto=Lythrum%20salicaria',NULL,NULL,NULL,NULL), +(112,'ZM_Myosotis_lamottiana_003108.jpg','ZM_Myosotis_lamottiana_003108.jpg','Myosotis lamottiana',NULL,'Nomeolvides','Oroilorea','Nontiscordardimé',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003108&codigo=3108&pag=1&texto=Myosotis%20lamottiana','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003108&codigo=3108&pag=1&texto=Myosotis%20lamottiana',NULL,NULL,NULL,NULL), +(113,'ZM_Ononis_spinosa_ssp_maritima_003153.jpg','ZM_Ononis_spinosa_ssp_maritima_003153.jpg','Ononis spinosa ssp maritima',NULL,'Uña de gatos marina','Itsas itxiokorria',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003153&codigo=3153&pag=1&texto=Ononis%20spinosa%20ssp%20maritima','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003153&codigo=3153&pag=1&texto=Ononis%20spinosa%20ssp%20maritima',NULL,NULL,NULL,NULL), +(114,'ZM_Ononis_spinosa_ssp_maritima_003172.jpg','ZM_Ononis_spinosa_ssp_maritima_003172.jpg','Ononis spinosa ssp maritima',NULL,' Uña de gato',' Itxiokorria','Ononide strisciante',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003172&codigo=3172&pag=1&texto=Ononis%20spinosa%20ssp%20maritima','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003172&codigo=3172&pag=1&texto=Ononis%20spinosa%20ssp%20maritima',NULL,NULL,NULL,NULL), +(115,'ZM_Ophrys_scolopax_003168.jpg','ZM_Ophrys_scolopax_003168.jpg','Ophrys scolopax',NULL,'[Ophrys scolopax]',' [Ophrys scolopax]','Ofride cornuta',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003168&codigo=3168&pag=1&texto=Ophrys%20scolopax','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003168&codigo=3168&pag=1&texto=Ophrys%20scolopax',NULL,NULL,NULL,NULL), +(116,'ZM_Orchis_mascula_003186.jpg','ZM_Orchis_mascula_003186.jpg','Orchis mascula',NULL,'Satirión manchado',' Orkideoa','Orchide maschia',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003186&codigo=3186&pag=1&texto=Orchis%20mascula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003186&codigo=3186&pag=1&texto=Orchis%20mascula',NULL,NULL,NULL,NULL), +(117,'ZM_Origanum_vulgare_003072.jpg','ZM_Origanum_vulgare_003072.jpg','Origanum vulgare',NULL,' Orégano','Oreganoa','Origano',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003072&codigo=3072&pag=1&texto=Origanum%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003072&codigo=3072&pag=1&texto=Origanum%20vulgare',NULL,NULL,NULL,NULL), +(118,'ZM_Orobanche_003177.jpg','ZM_Orobanche_003177.jpg','Orobanche',NULL,'[Orobanche sp.]','[Orobanche sp.]','Orobanche sp.',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003177&codigo=3177&pag=1&texto=Orobanche','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003177&codigo=3177&pag=1&texto=Orobanche',NULL,NULL,NULL,NULL), +(119,'ZM_Phyteuma_spicatum_003138.jpg','ZM_Phyteuma_spicatum_003138.jpg','Phyteuma spicatum',NULL,'[Phyteuma spicatum]','[Phyteuma spicatum]','Raponzolo giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003138&codigo=3138&pag=1&texto=Phyteuma%20spicatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003138&codigo=3138&pag=1&texto=Phyteuma%20spicatum',NULL,NULL,NULL,NULL), +(120,'ZM_Picris_echioides_003216.jpg','ZM_Picris_echioides_003216.jpg','Picris echioides',NULL,'[Picris echioides]','[Picris echioides]','Aspraggine volgare',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003216&codigo=3216&pag=1&texto=Picris%20echioides','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003216&codigo=3216&pag=1&texto=Picris%20echioides',NULL,NULL,NULL,NULL), +(121,'ZM_Platanthera_bifolia_003200.jpg','ZM_Platanthera_bifolia_003200.jpg','Platanthera bifolia',NULL,'Orchis odorant de Guipuscoa','Orchis odorant de Guipuscoa','Platantera comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003200&codigo=3200&pag=1&texto=Platanthera%20bifolia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003200&codigo=3200&pag=1&texto=Platanthera%20bifolia',NULL,NULL,NULL,NULL), +(122,'ZM_Polygala_vulgaris_003158.jpg','ZM_Polygala_ vulgaris_003158.jpg','Polygala vulgaris',NULL,' [Polygala vulgaris]','[Polygala vulgaris]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003158&codigo=3158&pag=1&texto=Polygala%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003158&codigo=3158&pag=1&texto=Polygala%20vulgaris',NULL,NULL,NULL,NULL), +(123,'ZM_Polygala_vulgaris_003223.jpg','ZM_Polygala_vulgaris_003223.jpg','Polygala vulgari',NULL,' Poligalum vulgaris','Poligalum vulgaris','Poligala comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003223&codigo=3223&pag=1&texto=Polygala%20vulgari','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003223&codigo=3223&pag=1&texto=Polygala%20vulgari',NULL,NULL,NULL,NULL), +(124,'ZM_Polypodium_cambricum_003084.jpg','ZM_Polypodium_cambricum_003084.jpg','Polypodium cambricum',NULL,' Polipodio','Haritz-iratzea','Polipodio meridionale',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003084&codigo=3084&pag=1&texto=Polypodium%20cambricum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003084&codigo=3084&pag=1&texto=Polypodium%20cambricum',NULL,NULL,NULL,NULL), +(125,'ZM_Primula_elatior_003179.jpg','ZM_Primula_elatior_003179.jpg','Primula elatior',NULL,' Prímula',' Udaberri-lorea','Primula maggiore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003179&codigo=3179&pag=1&texto=Primula%20elatior','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003179&codigo=3179&pag=1&texto=Primula%20elatior',NULL,NULL,NULL,NULL), +(126,'ZM_Pulmonaria_longifolia_003120.jpg','ZM_Pulmonaria_longifolia_003120.jpg','Pulmonaria longifolia',NULL,'Pulmonaria','biri-belarra','Polmonaria',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003120&codigo=3120&pag=1&texto=Pulmonaria%20longifolia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003120&codigo=3120&pag=1&texto=Pulmonaria%20longifolia',NULL,NULL,NULL,NULL), +(127,'ZM_Ranunculus_acris_003157.jpg','ZM_Ranunculus_acris_003157.jpg','Ranunculus acris',NULL,'Ranúnculo','Urrebotoia','Ranuncolo comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003157&codigo=3157&pag=1&texto=Ranunculus%20acris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003157&codigo=3157&pag=1&texto=Ranunculus%20acris',NULL,NULL,NULL,NULL), +(128,'ZM_Ranunculus_ficaria_003107.jpg','ZM_Ranunculus_ficaria_003107.jpg','Ranunculus ficaria',NULL,'Celidonia menor','Korradu-belarra','Favagello',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003107&codigo=3107&pag=1&texto=Ranunculus%20ficaria','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003107&codigo=3107&pag=1&texto=Ranunculus%20ficaria',NULL,NULL,NULL,NULL), +(129,'ZM_Rosa_sempervirens_003141.jpg','ZM_Rosa_sempervirens_003141.jpg','Rosa sempervirens',NULL,'Rosal silvestre]','Arkakaratsa','Rosa di S.Giovanni',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003141&codigo=3141&pag=1&texto=Rosa%20sempervirens','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003141&codigo=3141&pag=1&texto=Rosa%20sempervirens',NULL,NULL,NULL,NULL), +(130,'ZM_Scilla_lilio-hyacinthos_003184.jpg','ZM_Scilla_lilio-hyacinthos_003184.jpg','Scilla lilio-hyacinthos',NULL,'Scille umbelate','Scille umbelate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003184&codigo=3184&pag=1&texto=Scilla%20lilio-hyacinthos','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003184&codigo=3184&pag=1&texto=Scilla%20lilio-hyacinthos',NULL,NULL,NULL,NULL), +(131,'ZM_Serapias_cordigera_003106.jpg','ZM_Serapias_cordigera_003106.jpg','Serapias cordigera',NULL,'[Serapias cordigera]','[Serapias cordigera]','Serapide cuoriforme',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003106&codigo=3106&pag=1&texto=Serapias%20cordigera','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003106&codigo=3106&pag=1&texto=Serapias%20cordigera',NULL,NULL,NULL,NULL), +(132,'ZM_Silene_dioica_003092.jpg','ZM_Silene_dioica_003092.jpg','Silene dioica',NULL,'Lichnis','Lichnis',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003092&codigo=3092&pag=1&texto=Silene%20dioica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003092&codigo=3092&pag=1&texto=Silene%20dioica',NULL,NULL,NULL,NULL), +(133,'ZM_Silene_dioica_003130.jpg','ZM_Silene_dioica_003130.jpg','Silene dioica',NULL,'Silene vulgaris eta Silene dioica','Silene vulgaris y Silene dioica','Silene dioica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003130&codigo=3130&pag=1&texto=Silene%20dioica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003130&codigo=3130&pag=1&texto=Silene%20dioica',NULL,NULL,NULL,NULL), +(134,'ZM_Silene_nutans_003139.jpg','ZM_Silene_nutans_003139.jpg','Silene nutans',NULL,'Silene nutans','[Silene nutans]','Silene ciondola',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003139&codigo=3139&pag=1&texto=Silene%20nutans','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003139&codigo=3139&pag=1&texto=Silene%20nutans',NULL,NULL,NULL,NULL), +(135,'ZM_Smilax_aspera_003082.jpg','ZM_Smilax_aspera_003082.jpg','Smilax aspera',NULL,'Zarzaparrilla','Endalaharra','Salsapariglia',NULL,NULL,', Stracciabraghe Rovo cervone, Rovo cerrone',NULL,NULL,'Pianta rampicante dei sottoboschi. Le sue forti spine le permettono di afferrarsi alle piante che le crescono accanto. Presenta disformità sessuale. In autunno la pianta femmina si distingue per il suo raro fogliame e i suoi grappoli pensili di frutti rossi e brillanti.\r\nI nuovi germogli primaverili si mangiano come gli asparagi.\r\nCon le sue radici viene fabbricata l’omonima bevanda, la salsapariglia. La sua origine è spagnola e a quanto sembra è stata uno degli ingredienti originari della coca-cola che ancora la annovera tra i suoi ingredienti. Durante il XIX secolo è stato uno dei rinfreschi più conosciuti. \r\nE’ stata utilizzata contro la sifilide e molte altre malattie. \r\nContiene saponine, che funzionano come il sapone e sono tossiche. Sembra che proprio questi componenti difendano la pianta dai funghi. \r\nIl nome di salsapariglia si compone di salsa –dall’arabo \"saras\"- e di \"pariglia\", che si riferisce al suo carattere di rampicante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera',NULL,NULL,NULL,NULL), +(136,'ZM_Solanum_dulcamara_003167.jpg','ZM_Solanum_dulcamara_003167.jpg','Solanum dulcamara',NULL,' Dulcamara',' Azeri-mahatsa','Morella rampicante',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003167&codigo=3167&pag=1&texto=Solanum%20dulcamara','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003167&codigo=3167&pag=1&texto=Solanum%20dulcamara',NULL,NULL,NULL,NULL), +(137,'ZM_Stellaria_holostea_003124.jpg','ZM_Stellaria_holostea_003124.jpg','Stellaria holostea',NULL,' Estrellada','Izar-belar arrunta','Centocchio garofanina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003124&codigo=3124&pag=1&texto=Stellaria%20holostea','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003124&codigo=3124&pag=1&texto=Stellaria%20holostea',NULL,NULL,NULL,NULL), +(138,'ZM_Symphytum_tuberosum_003182.jpg','ZM_Symphytum_tuberosum_003182.jpg','Symphytum tuberosum',NULL,' [Consuelda menor]','Zolda-belar txikia','Consolida femmina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003182&codigo=3182&pag=1&texto=Symphytum%20tuberosum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003182&codigo=3182&pag=1&texto=Symphytum%20tuberosum',NULL,NULL,NULL,NULL), +(139,'ZM_Tamus_communis_003111.jpg','ZM_Tamus_communis_003111.jpg','Tamus communis',NULL,'Nueza negra',' Apomahatsa','Tamaro',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003111&codigo=3111&pag=1&texto=Tamus%20communis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003111&codigo=3111&pag=1&texto=Tamus%20communis',NULL,NULL,NULL,NULL), +(140,'ZM_Teucrium_pyrenaicum_003144.jpg','ZM_Teucrium_pyrenaicum_003144.jpg','Teucrium pyrenaicum',NULL,' [Teucrium pyrenaicum]','[Teucrium pyrenaicum]','Teucrium pyrenaicum',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003144&codigo=3144&pag=1&texto=Teucrium%20pyrenaicum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003144&codigo=3144&pag=1&texto=Teucrium%20pyrenaicum',NULL,NULL,NULL,NULL), +(141,'ZM_Verbascum_thapsus_003219.jpg','ZM_Verbascum_thapsus_003219.jpg','Verbascum thapsus',NULL,'Gordolobo','Apo-belarra','Tasso barbasso',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003219&codigo=3219&pag=1&texto=Verbascum%20thapsus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003219&codigo=3219&pag=1&texto=Verbascum%20thapsus',NULL,NULL,NULL,NULL), +(142,'ZM_Veronica_chamaedrys_003109.jpg','ZM_Veronica_chamaedrys_003109.jpg','Veronica chamaedrys',NULL,'Verónica',' Beronika','Veronica comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003109&codigo=3109&pag=1&texto=Veronica%20chamaedrys','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003109&codigo=3109&pag=1&texto=Veronica%20chamaedrys',NULL,NULL,NULL,NULL), +(143,'ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg','ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg','Vicia sepium y Lathyrus montanus',NULL,'Vicia sepium y Lathyrus montanus','Vicia sepium eta Lathyrus montanus','Veccia silvana e Cicerchia montana',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003121&codigo=3121&pag=1&texto=Vicia%20sepium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003121&codigo=3121&pag=1&texto=Vicia%20sepium',NULL,NULL,NULL,NULL), +(144,'ZM_Vinca_minor_003102.jpg','ZM_Vinca_minor_003102.jpg','Vinca minor',NULL,'Vincapervinca','Inkontze-belar txikia','Pervinca minore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003102&codigo=3102&pag=1&texto=Vinca%20minor','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003102&codigo=3102&pag=1&texto=Vinca%20minor',NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `plantas` ENABLE KEYS */; +UNLOCK TABLES; + +-- +-- Table structure for table `plantas___` +-- + +DROP TABLE IF EXISTS `plantas___`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `plantas___` ( + `id` int(11) DEFAULT NULL, + `nombre_imagen` varchar(255) DEFAULT NULL, + `imagen_portada` varchar(255) DEFAULT NULL, + `nombre_latin` varchar(255) DEFAULT NULL, + `nombre_bubani` varchar(255) DEFAULT NULL, + `nombre_es` varchar(255) DEFAULT NULL, + `nombre_eu` varchar(255) DEFAULT NULL, + `nombre_it` varchar(255) DEFAULT NULL, + `otro_nombre_es` varchar(255) DEFAULT NULL, + `otro_nombre_eu` mediumtext DEFAULT NULL, + `otro_nombre_it` varchar(255) DEFAULT NULL, + `descripcion_es` mediumtext DEFAULT NULL, + `descripcion_eu` mediumtext DEFAULT NULL, + `descripcion_it` mediumtext DEFAULT NULL, + `enlace_album_es` varchar(255) DEFAULT NULL, + `enlace_album_eu` varchar(255) DEFAULT NULL, + `enlace_bib_digital` varchar(255) DEFAULT NULL, + `imagen1` varchar(255) DEFAULT NULL, + `imagen2` varchar(255) DEFAULT NULL, + `mostrar_planta` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb3; +/*!40101 SET character_set_client = @saved_cs_client */; + +-- +-- Dumping data for table `plantas___` +-- + +LOCK TABLES `plantas___` WRITE; +/*!40000 ALTER TABLE `plantas___` DISABLE KEYS */; +INSERT INTO `plantas___` VALUES +(1,'ZM_01_anagallis003197.jpg','ZM_01_anagallis003197.jpg','Anagallis arvensis','Anagallis arvensis','Murajes','Pasmo-belar loregorria','Mordigallina','anagallo, arbejanilla, hierba gitana, hierba jabonera, hierba pajera, mata del Señor, muraje.','amorru-belar, izukeslea, igaberatxa, txori-belarra, izugestes','Centonchio dei campi.','Antiguo nombre griego derivado del termino anagelein, que significa reír. Se creía que esta planta tenía virtudes revitalizadoras y confortantes. Según el botánico Lakoizketa, el nombre vasco de izukeslea le viene de que sirve para quitar el miedo. Tal vez provenga de su uso para combatir la rabia.\nSi se tiene cuidado con su toxicidad, la hoja se puede utilizar como la espinaca, cruda o cocida, también en ensaladas. Los brotes tiernos también se pueden consumir como verdura cocida.\nEn Nepal, con el jugo de la planta hacen jabón para el baño y el lavado.\nEn el País Vasco ha sido muy utilizada, y lo sigue siendo, como planta medicinal. Se usa como ungüento para heridas y enfermedades de la piel. También cocida (se hierve 7 minutos y se deja reposar) y tomada en infusión para curar enfermedades respiratorias como la sinusitis. A menudo se le da de comer a los animales para purgarlos.\nLa forma más fácil de reconocer esta planta es fijarse en sus tallos cuadrangulares. \nNormalmente las flores son de color naranja, aunque algunas plantas sufren un cambio repentino y no duradero y dan flores de color azul, por lo que se suele confundir con otra especie del género Anagallis.','Grekoko izen zaharra da, barre egitea adierazten duen anagelein hitzetik eratorria. Landare honek eragin bizigarria, zirraragarria zuela uste zen. Lakoizketaren ustetan, izukeslea izena beldurra kentzeko balio duelako da. Baliteke halaber, amorruaren kontra erabili delako izatea.\nToxikotasunarekin kontu izan da, gordinik edo prestatuta, hostoak espinaka bezala erabil daitezke, baita entsaladan ere. Kimu berriak ere egositako barazki bezala jan daitezke\nLandarea zukututa, bainurako eta garbiketarako xaboia egiten dute Nepalen.\nOso erabilia izan da, eta da, Euskal Herrian sendabelar gisa.\nAzaleko gaitz eta zauriak sendatzeko ukenduak egiteko erabiltzen da.\nBaita egosi (7 minutu irakin eta ondoren pixka batean utzi) eta infusioarekin sinusitisa bezalako arnasbideetako gaitzak sendatzeko ere. Askotan abereei jaten ematen zaie, barrenak garbitzen laguntzeko.\nLandare hau ezagutzeko modurik argiena bere zurtoin karratu formakoei erreparatzea da. Normalean loreak laranja kolorekoak dira.\nZenbait landarek bapateko (eta iraunkorra ez den) eraldaketa baten bidez, lore urdinak ematen dituzte eta Anagallis generoko beste espezie batekin nahas daitezke.','Antico nome greco derivato dal termine anagelein, che significa ridere. Si credeva che questa pianta avesse virtù rivitalizzanti e confortanti. Secondo il botanico Lakoizketa, il nome basco di izukeslea le deriva dalle sue proprietà di eliminare la paura. O potrebbe provenire dal suo uso per combattere la rabbia.\r\nSe si fa attenzione alla sua tossicità, la foglia può essere utilizzata come gli spinaci, cruda o cotta, anche nelle insalate. Anche i teneri germogli si possono consumare come verdura cotta.\r\nIn Nepal, dal succo della pianta si ricava sapone per l’igiene personale e il bucato.\r\nNel Paese Basco è stata molto utilizzata, e lo è tuttora, come pianta medicinale. Si usa come unguento per le ferite e le malattie della pelle. Anche cotta (si fa bollire 7 minuti e si lascia riposare) e presa come infuso per curare i problemi alle vie respiratorie, come ad esempio la sinusite. Si utilizza spesso come purga per gli animali. \r\nLa forma più semplice per riconoscere questa pianta è fare caso ai suoi steli quadrangolari. \r\nNormalmente i fiori sono di colore arancione, anche se alcune piante possono avere un cambiamento repentino ma non duraturo dando fiori di colore blu, per il quale si è solito confonderle con un’altra specie del genere Anagallis.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003197&codigo=3197&pag=1&texto=Anagallis%20arvensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003197&codigo=3197&pag=1&texto=Anagallis%20arvensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=247',NULL,NULL,NULL), +(2,'ZM_02_angelica003205.jpg','ZM_02_angelica003205.jpg','Angelica syvestris','Angelica slvestris','Angélica silvestre','Mendiko aingeru-belarra','Angelica dei boschi',NULL,NULL,'Angelica selvatica, Erba angelica','Dicen que el arcángel San Gabriel enseñó a un sabio cómo combatir la peste negra con una planta de este género, de ahí su nombre de angélica.\nEn tiempos de hambre fue un alimento importante, al menos hasta el siglo XX. \nLas hojas, brotes y tallos son un complemento aromático de ensaladas, y también se cocinan como verdura. Los tallos, hojas y semillas son ingredientes en repostería.\nSus raíces y semillas se utilizan en la fabricación de licores como Benedictine, Vermouth, ginebra, absenta y Chartreuse. Los primeros caramelos verdes se hacían de angélica.\nLos frutos molidos sirven para eliminar los parásitos de la cabeza.\n','Aingeru batek, San Gabrielek, genero honetako landare batekin izurri beltzari aurre egiten erakutsi omen zion jakintsu bati; hortik angelica izena.\nGose garaian elikagai garrantzitsua izan zen, XX. menderarte behintzat.\nHosto, kimu gazte eta zurtoinak entsaladetarako gehigarri aromatiko dira, eta sukaldatuta barazki bezala. Zurtoin, hosto eta haziak gozogintzan erabiltzen dira.\nSustrai eta haziak Benedictine, Vermouth, ginebra, absenta eta Chartreuse bezalako likoreei zapore emateko erabiltzen dira. Angelicarekin egiten ziren lehenengo goxoki berdeak.\nEhotako fruituak buruko parasitoak hiltzeko balio du.\n','Dicono che l’arcangelo Gabriele mostrò a un saggio come combattere la peste nera con una pianta di questo genere; da qui proviene il nome di angelica.\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003205&codigo=3205&pag=1&texto=angelica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003205&codigo=3205&pag=1&texto=angelica',NULL,NULL,NULL,NULL), +(3,'ZM_03_armeria003129.jpg','ZM_03_armeria003129.jpg','Armeria euskadiensis','Armeria pubescens?','Clavel marino','Itsas krabelina','Garofano marino',NULL,NULL,NULL,'Nombre latinizado de armoire, como se designa en francés a una variedad del clavel. \nLa principal característica de esta planta es que es endémica de la costa vasca: no se halla en ningún otro sitio, de ahí la denominación de euscadiensis que le dieron los botánicos franceses J. Donabille y P. Vivant cuando la describieron por primera vez en el monte Urgull en 1976.\nSólo vive en los prados naturales que se forman en los acantilados silíceos de la costa. Parece que ése es el motivo de no extenderse más allá de las costas francesas y cantábricas. La necesidad de esos condicionantes ecológicos tan particulares (influencia directa del mar y acantilados silíceos) ha hecho que se halle en el catálogo de plantas en gran peligro de extinción. Ese riesgo aumentará si se construye el puerto gigante proyectado en los acantilados de Jaizkibel, su principal hábitat. \nTiene una fuerte cepa bajo tierra, y sobre ella se abre una serie de hojas. Florece por primera vez en primavera y principios de verano, con un cabeza compacta formada de múltiples flores rojizas. A menudo florece también en otoño.\n','Frantsesez krabelin bati ematen zaion armoire izen latinizatua. \nLandare honen berezitasun nagusia Euskal Herriko kostaldean bakarrik aurki daitekela da. Hortik euscadiensis izena. J. Donabille eta P. Vivant botanikari frantziarrek deskribatu zuten lehen aldiz Donostiako Urgull mendian, 1976. urtean.\nItsasaldeko silize-labarretan eratzen diren larre naturaletan bakarrik bizi da. Badirudi hori dela Frantziako zein Kantabriako kareharrizko kostaldeetan ez hedatzearen arrazoia. Hain ezaugarri ekologiko bereziak behar dituenez (itsasoaren eragin zuzena eta labar silizeoak), desagertzeko arrisku bizian dauden landareen katalogoetan jasoa dago. Arrisku hau areagotu daiteke bere bizitoki nagusia den Jaizkibelgo itsasaldeko labarretan egin asmo den portu erraldoia burutzen bada. \nLurpeko ipurdi sendoa du, eta horren gainean hosto sorta irteten da. Udaberri-uda hasieran loratzen da lehen aldiz, kolore gorrixka duen lore anitzeko buru trinkoa sortuz. Askotan, udazken hasieran berriz loratzen da.\n','Nome latinizzato da armoire, come viene definita in francese una varietà di garofano. \r\nLa caratteristica principale di questa pianta è che risulta endemica sulla costa basca: non si trova da nessun altra parte, da qui la denominazione di euscadiensis che gli hanno dato i botanici francesi J. Donabille e P. Vivant nel descriverla per la prima volta sul monte Urgull nel 1976.\r\nVive solamente nei prati naturali che si formano sulle scogliere silicee della costa. Sembra che questo sia il motivo della sua mancata estensione oltre la costa francese e cantabrica. La necessità di condizioni ecologiche così particolari (influenza diretta del mare e scogliere silicee) ne fa una delle piante a grande rischio di estinzione. Questo rischio è destinato ad aumentare nel caso si realizzi il progettato porto gigante a Jaizkibel, il suo habitat principale. \r\nHa un forte ceppo sotterraneo sopra il quale si aprono una serie di foglie. Fiorisce per la prima volta in primavera e all’inizio dell’estate, con una testa compatta formata da multipli fiori rossicci. Spesso fiorisce anche in autunno.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003129&codigo=3129&pag=1&texto=Armeria%20euskadiensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003129&codigo=3129&pag=1&texto=Armeria%20euskadiensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=247','Bu_03Armeria _euscadiensis.jpg','BU_03_Armeria_euscadiensis2_c.jpg',NULL), +(4,'ZM_04_arum003114.jpg','ZM_04_arum003114.jpg','Arum maculatum','Arum vulgare','Aro','Sugebelarra','Gigaro','comida de culebra','ilarrondokoa, erre-belarra, suge gerezia, suge artoa, sugerama, sugrama, iaroa,','Gigaro Scuro, Gigaro Macchiato, Pane di Serpe, Lingua di Serpe, Erba da Piaghe, Erba Saetta','Las llamativas bayas rojas que da tras la floración son muy venenosas, pueden provocar incluso alergias. Tal vez por eso algunos de sus nombres vascos y castellanos hacen referencia a las serpientes. Sin embargo, la planta resulta comestible en ciertas condiciones, no así el fruto. Gracias a la cantidad de almidón que poseen sus raíces, se puede hacer harina con ellas, siempre que se recojan antes de que nazcan las hojas. Las raíces y tubérculos se han utilizado, pues, como alimento, pero después de haberlos secado y preparado, para que no resulten tóxicos. También las hojas de fines de invierno resultan comestibles si están bien cocidas.\nEn inglés esta planta recibe nombres curiosos, alguno tan llamativo como \"Lords and Ladies\".\nLos insectos quedan presos durante un momento en los pelos de las flores macho, y tras escapar resultan portadores de polen a las flores hembra de otras plantas.\nCon las raíces pulverizadas se hace una crema antiarrugas para la cara. Asimismo, el almidón de las raíces sirve para endurecer la ropa.','Loraldiaren ondoren ematen dituen baia gorri deigarriak oso pozointsuak dira, batzuei alergia ere eragiten die. Horregatik lotuko da euskaraz hainbeste sugearekin. Hala ere, jangarria da modu jakin batzuetan, fruitua inoiz ez ordea. Sustraietako almidoi kantitateari esker, irina egin daiteke beraiekin. Horretarako hostoak sortu aurretik bildu behar dira sustraiak. Sustrai eta tuberkuloak elikagai bezala erabili izan dira, baina beti ere ondo lehortu edo prestatuta, bestela toxikoa izan bai daiteke. Negu bukaeratik aurrera dauzkan hostoak ere jangarriak dira, ondo eginda.\nIngelesez izen bitxi asko dauka sugebelarrak, haien artean \"Lords and Ladies\" bezalako izen bitxiak.\nIntsektuak lore arren ileetan preso geratzen dira une batez, eta ihes egitea lortzen dutenean polena garraiatzen dute beste landareetako lore emeetara.\nHauts bihurtutako sustraietatik aurpegiko zimurrak kentzeko krema bat egiten da. Sustraietatik ateratzen den almidoiak arropak gogortzeko ere balio du.','Le sorprendenti bacche rosse che dà dopo la fioritura sono molto velenose e possono provocare perfino delle allergie. Forse per questo alcune delle sue denominazioni in basco e spagnolo richiamano il serpente. La pianta è a certe condizioni comunque commestibile, ma così non è per il frutto. Grazie alla quantità di amido presente nelle radici se ne può fare della farina, sempre a patto che vengano raccolte prima che spuntino le foglie. Le radici e i tubercoli sono stati utilizzati come alimento, ma sempre dopo essere stati seccati e preparati per eliminarne la tossicità. Anche le foglie della fine dell’inverno risultano commestibili se ben cotte.\r\nIn inglese questa pianta ha avuto nomi curiosi, alcuni particolarmente appariscenti, come \"Lords and Ladies\".\r\nGli insetti restano incastrati per un breve periodo nella peluria dei fiori maschi e dopo essersi liberati diventano portatori di polline ai fiori femmina di altre piante.\r\nDalle radici polverizzate si ottiene una crema antirughe per il viso. L’amido delle radici serve invece per inamidare i vestiti.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20maculatum','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20maculatum','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=31',NULL,NULL,NULL), +(5,'ZM_05_asphodelus003180.jpg','ZM_05_asphodelus003180.jpg','Asphodelus albus ','Asphodelus albus ','Gamón','Anbulu zuria','Asfodelo montano','gamón, atiza candiles, gamueto, garahillas, jagota, perigallo, puerro silvestre, ujeta, vara de San José.','anbulu zuria, porrostia, anpulu zuria, kunbulloa, anbuloa, ambolin, zelaikoporrua, txerri-patata, sorgin-porrua, ambala','Asfodelo bianco.','El nombre proviene del griego. Según la mitología antigua, esta planta predominaba en los campos Elíseos, cementerios y prados cercanos al infierno. Según parece, proviene de los términos a, no, spodos, ceniza, y edos, valle. Albus, porque da flores blancas. \nSe suele hallar en robledales y hayedos. Florece a principios de primavera, antes de que nazcan las hojas de los árboles que les quitan la luz.\nTiene la hoja parecida a la del puerro, pero su tallo es amarillo, no blanco, y tiene un olor particular. Las flores se abren en un escapo que puede superar el metro de altura.\nEl fuego no le quema las raíces, por lo que se reproduce con facilidad en terrenos calcinados.\nCrudo resulta tóxico, pero pierde las toxinas cuando se cuece. El mejor modo de comerlo es preparado como purrusalda. Para ello, se recolectan las pujas de primavera y se cocinan como si fueran puerros, aunque el sabor y la textura son más suaves. También se puede comer de otros modos. En caso de querer comer las raíces, las mejores son los bulbos de un año, no más viejos. En otra época fue importante alimento entre los vascos. \nSi se fermenta la raíz gruesa, se puede obtener alcohol.\nLas hojas se utilizan también como pasto para el ganado porcino.','Alkohola ere egiten da, zain lodikotea hartzituz.\nHostoak zerrientzako janari bezala ere erabiltzen dira.','Il nome viene dal greco. Secondo l’antica mitologia questa pianta era predominante nei Campi Elisi, nei cimiteri e nei prati vicini all’inferno. A quanto sembra viene dai termini a, no, spodos, cenere, e edos, valle. Albus, perché i suoi fiori sono bianchi. \r\nSi trova solitamente nei querceti e nei faggeti. Fiorisce al principio della primavera, prima che nascano le foglie degli alberi che le tolgono la luce.\r\nLa sua foglia è molto simile a quella del porro, ma il suo tronco è giallo e non bianco e ha un odore particolare. I fiori si schiudono su un gambo erbaceo che può superare il metro di altezza.\r\nIl fuoco non ne brucia le radici, per questo si riproduce con facilità in terreni bruciati.\r\nCrudo è tossico ma perde la tossicità con la cottura. Il modo migliore di mangiarlo è preparato come una zuppa. A questo fine si raccolgono le cime di primavera e si cuociono come i porri, anche se sapore e consistenza sono più morbidi. Si può mangiare anche in altri modi. Se si volessero mangiare le radici è meglio scegliere i bulbi di un anno e non quelli più vecchi. In passato tra i baschi è stato un importante alimento. \r\nDalla radice grossa fermentata si può ottenere dell’alcool.\r\nLe foglie si usano anche come cibo per i suini.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003180&codigo=3180&pag=1&texto=Asphodelus%20albus','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003180&codigo=3180&pag=1&texto=Asphodelus%20albus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=108','Bu_05_Asphodelus_albus.jpg','Bu_05_Asphodelus_albus_c.jpg',NULL), +(6,'ZM_06_calyategia003146.jpg','ZM_06_calyategia003146.jpg','Calystegia sepium',NULL,'Correhuela mayor','Ezkerte zuria','Vilucchio bianco','campanilla, carricillo, albohol, carrigüela ancha, convólvulo, enredadera con orejas, enredadera de agua, hiedra campana, hierba lechera, hilandera, punta de dardo, soga de árboles.','birigane zuri, birigain zuri edo lurruntz zuri,ezker-aihen zuri ,aixen aundi, txori mahatsa, lurruntzi, pipila, ezkiluntza','Campanelle bianche, Vilucchione','Tanto en sus nombres vascos como castellanos, a menudo se confunden la correhuela mayor (Calystegia sepium) y la correhuela menor (Convolvulus arvensis).\nEl nombre proviene del griego kalyx, cáliz, y stêgôn, cubierta, a causa de las brácteas que cubren o esconden el cáliz. Sepium significa valla.\nLas flores se cierran de noche y se abren de día.\nSe enrosca alrededor de otras plantas y las ahoga hasta matarlas. Una vez que se asienta en un sitio es muy difícil desenraizarla, ya que sus raíces son muy profundas y basta cualquier pedazo que haya quedado enterrado para que vuelva a renacer. Por eso se la considera una muy mala hierba en jardines, huertas y prados.\nSi se limpian y preparan bien sus tallos y raíces, es muy sabrosa, ya que tiene mucho azúcar y almidón. La raíz favorece el flujo biliar.\nLos tallos son muy flexibles, y en caso de necesidad pueden servir de atadura, ya que son muy duros, aunque no muy duraderos.','Ezkerte zuriaren (Calystegia sepium) eta ezkerte beltzaren (Convolvulus arvensis) euskarazko izenak nahastuta azaltzen dira maiz.\nIzena grekoko kalyx, kaliza, eta stêgôn, estalki, hitzetatik dator. Lore honen kaliza ezkutatzen edo estaltzen duen brakteak direla eta. Eta sepiumek hesi esan nahi du.\nLoreak gauez itxi eta egunez irekitzen dira.\nBeste landareen inguruan kiribiltzen da eta hil arte itotzen ditu. Lekuren batera iritsitakoan oso zaila da kanporatzen, sustrai oso sakonak bai ditu eta lurrazpian geratzen den edozein sustrai zatitatik birsortu daiteke. Horregatik, oso belar txar gogaikarria da lorategi, baratza eta soroetan.\nZurtoin eta sustraiak ondo garbitu eta prestatuta, zapore goxoko jakia da, azukre eta almidoi askokoa. Behazunaren jarioa areagotzen du sustraiak.\nZurtoinak malguak dira eta larrialdiko loturak egiteko balio du, gogorra baina ez oso iraunkorra izanik','Sia nelle sue denominazioni basche che castigliane si fa spesso confusione tra il vilucchio bianco (Calystegia sepium) e il vilucchio comune (Convolvulus arvensis).\r\nIl nome viene dal greco kalyx, calice, e stêgôn, tetto o copertura, per le grandi brattee che coprono o nascondono il calice. Sepium significa ostacolo.\r\nI fiori si chiudono la notte e si aprono di giorno.\r\nSi attorciglia intorno ad altre piante e le soffoca fino ad ucciderle. Una volta insediata in un posto e molto difficile sradicarla, perché le sue radici sono molto profonde e basta che anche solo una minima parte resti nel terreno per farla ricrescere. Per questo è considerata un erbaccia in giardini, orti e prati.\r\nSe tronchi e radici vengono pulite e preparate a dovere è molto gustosa, perché ricca di zucchero e amido. La radice favorisce il flusso biliare.\r\nIl tronco è molto flessibile e all’occorrenza può servire come legaccio perché estremamente duro anche se non altrettanto resistente.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003146&codigo=3146&pag=1&texto=Calystegia%20sepium','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003146&codigo=3146&pag=1&texto=Calystegia%20sepium',NULL,NULL,NULL,NULL), +(7,'ZM_08_carlina003088.jpg','ZM_08_carlina003088.jpg','Carlina vulgaris ','Calluna vulgaris ','Cardo','Kardua','Carlina comune',NULL,NULL,' Cardo dorato','La carlina abunda en nuestros montes. Prefiere la caliza, por lo que se puede encontrar en herbazales secos, bosques templados, pedregales o cualquier otro rincón que sea calizo. Es planta bianual: durante el primer año da hojas y acumula nutrientes, y durante el siguiente florece entre julio y septiembre si el tiempo es seco. Es muy apropiada para hacer miel, por lo que la frecuentan las abejas. \r\nHay muchas opiniones sobre el origen del nombre carlina. Según la más extendida, un ángel se le apareció a Carlomagno y le mostró la raíz de esta planta; gracias a ella pudo curar la enfermedad que aquejaba a gran parte del ejército con el que pretendía conquistar Roma. Fue el conocido botánico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) quien propuso este nombre en el siglo XVI. \r\nTiene virtudes medicinales como sudorífico y laxante. \r\nEn Asia se ha utilizado para fabricar tintes','Kardu ugari da gure mendietan. Karezalea da eta berau duen edozein belardi lehor, baso epel, harri tarte edo landu gabeko edozein bazterretan bizi da. Bi urteko landarea da; lehenengoan hostoak eman eta jakiak pilatzen ditu, hurrengo urtean uztailetik iraila artean, giroa lehorra denean, loratzen da. Eztitarako oso egokia izaki, erleek gustuko dute. \nCarlina izenaren jatorriari buruzko iritzi ugari dago. Zabalduenaren arabera, Carlomagnori azaldu zitzaion aingeru batek karduaren sustraia erakutsi zion eta honekin Erroma harrapatzeko ahaleginetan ari zen bere armadan hedatzen ari zen gaixotasun bati aurre egin eta sendatu zuen. Izen hau XVI mendean Andrea Cesalpino (Arezzo 1.519-06-06, Erroma 1.613-02-23) botanikari toskanar ezagunak proposatu zuen. \nSendagai gisa izerditzea errazten du eta libragarria da. \nAsian tindagaiak egiteko erabili izan da\n','La carlina abbonda sulle nostre montagne. Preferisce il calcare e per questo si può trovare in pascoli secchi, boschi temperati, terreni rocciosi o qualsiasi altro angolo che sia calcareo. E’ una pianta biennale: durante il primo anno dà foglie e accumula sostanze nutrienti, mentre nel successivo fiorisce tra luglio e settembre se il tempo è secco. E’ molto indicata per produrre miele, dato che è molto frequentata dalle api. \r\nSull’origine del nome Carlina ci sono opinioni diverse. Secondo quella più diffusa un angelo apparve a Carlomagno mostrandogli la radice di questa pianta; con questa riuscì a curare la malattia che tormentava la maggior parte dell’esercito con cui avrebbe dovuto conquistare Roma. A proporre questo nome è stato il famoso botanico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) nel XVI secolo. \r\nHa virtù medicinali come sudorifero e lassativo. \r\nIn Asia è stato utilizzato per fabbricare tinture.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003088&codigo=3088&pag=1&texto=Astakardua','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003088&codigo=3088&pag=1&texto=Astakardua',NULL,'BU_07_Cardamine pratensis.jpg','BU_07_Cardamine_pratensis_c.jpg',NULL), +(8,'ZM_07_cardanime003104.jpg','ZM_07_cardanime003104.jpg','Cardamine pratensis',NULL,'Berro de prado','Xanpora','Crescione dei prati','mastuerzo de prado','bumika, buminka, burminka','Crescione dei prati, Billeri','Flor sagrada de las hadas, llevarla a casa supone acarrear la desgracia.\nSus hojas y brotes, crudos o cocinados, son muy ricos en minerales y vitaminas, en especial en vitamina C. Las hojas, recogidas pronto en primavera y en pequeñas cantidades, son excelente condimento para la ensalada. El sabor de las flores y capullos recuerda al de los berros. Sus flores blancas son, pues, un agradable complemento en las ensaladas.\nLas hojas recogidas a principios de primavera se pueden usar en infusión para el asma, así como para combatir la indigestión o para abrir el apetito.','Maitagarrientzat sakratua den lorea izaki, etxe barrura ekartzeak zori txarra dakar.\nHosto eta kimu berriak (gordinik zein prestatuta) oso aberatsak dira mineral eta bitaminatan (batez ere C bitamina). Hostoak udaberrian goiz bildu behar dira, eta kopuru txikitan, entsaladetarako gehigarri bikainak dira. Lore eta lore begiek berroaren antzeko zaporea dute. Lore zuri hauek entsaladetarako gehigarri atsegin dira.\nUdaberriaren hasieran bildutako hostoekin egindako infusioa asmarentzat erabil daiteke eta baita indigestioari aurre egin eta gosea sortzeko ere.','Fiore sacro delle fate, portarla dentro casa può portare disgrazia.\r\nLe sue foglie e i suoi germogli, sia crudi che cotti, sono molto ricchi di minerali e vitamine, specialemente di vitamina C. Le foglie, raccolte presto in primavera e in piccole quantità, sono eccellenti nell’insalata. Il sapore di fiori e boccioli ricorda quello dei crescioni. I suoi fiori bianchi sono, quindi, un gradevole complemento nelle insalate.\r\nLe foglie raccolte all’inizio della primavera si possono usare in infusione per curare l’asma, così come per combattere l’indigestione o per aprire lo stomaco.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003104&codigo=3104&pag=1&texto=Cardamine%20pratensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003104&codigo=3104&pag=1&texto=Cardamine%20pratensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=150',NULL,NULL,NULL), +(9,'ZM_09_clematis003151.jpg','ZM_09_clematis003151.jpg','Clematis vitalba','Clematis vitalba','Clemátide','Aihen zuria','Vitalba','cabello de ángel, hierba ardiente, hierba de pordioseros, muermera, parrilla, salomón, sogaza, vidalba, vidraria, viña blanca o virgaza.','aihena, aihen-belarra, aihenturi, ezkerraihen, aihenezker, aixenezker, burukage, autina, metu, amarauna','Vitalba, Clematide comune, Ticchi, Viorna, Vidaelba..','El nombre latino de \"vitalba\" significa \"vitis\" (sarmiento, pámpano) y \"alba\" (blanco), como su nombre vasco, aihen zuri. Lo de blanco se debe al color de sus flores, con aspecto de plumas.\nEn castellano y francés también se la denomina \"hierba de pordioseros\" y \"herbe aux gueux\", ya que en un tiempo los mendigos la utilizaban para provocarse llagas y provocar a la compasión de los donantes.\nEs planta trepadora, que se enrosca en otras plantas para subir. Como pueden ahogarlas hasta la muerte, se la ha relacionado con el demonio y con las brujas. \nSin embargo, en otros lugares se la ha vinculado a Dios y la Virgen, por la blancura de sus flores. \nEn Nueva Zelanda se ha convertido en una planta invasora, muy dañina para las especies locales.\nEl pedúnculo se ha fumado como si fuera tabaco. \nEl tallo se ha utilizado como cordel.','Latinez duen \"vitalba\" izenak \"vitis\" (aihen edo mahatsondo) eta \"alba\" (zuria) esan nahi du, euskaraz bezalaxe. Zuritasuna luma-itxurako loreek ematen diote.\nGazteleraz eta frantzesez \"hierba de pordioseros\" eta \"herbe aux gueux\" ere esaten zaio, garai batean eskaleek beren buruei zauri eeta orbanak eragiteko erabiltzen bai zuten, horrela ingurukoen errukia jasotzeko.\nLandare igokaria da, eta beste landareen gainean kiribiltzen da gora egiteko. Hauek hil arte ito ditzakeenez, Deabruarekin eta sorginekin lotu izan da. \nBeste leku batzuetan Ama Birgin eta Jaungoikoarekin lotu da, bere loreen zuritasuna dela medio. \nZelanda Berrian espezie inbasorea bihurtu da, bertako landaredian kalte handiak eraginez.\nZortena, zigarroa bailitza, erre izan da. \nAihena bera lokarri gisa erabili da.','Il nome latino di \"vitalba\" significa \"vitis\" (tralcio, sarmento) e \"alba\" (bianco), come nel suo nome basco, aihen zuri. Il bianco è dovuto al colore dei suoi fiori, che hanno la parvenza di piume.\r\nAnche in castigliano e francese la si chiama \"hierba de pordioseros\" e \"herbe aux gueux\", dato che in passato i mendicanti la utilizzavano per procurarsi piaghe e suscitare la compassione dei passanti.\r\nE’ una pianta rampicante, che si inerpica su altra piante per salire. E siccome può soffocarle fino a farle morire è stata messa in relazione con il demonio e le streghe. \r\nDa altre parti invece, è stata accostata a Dio e alla Vergine Maria per il biancore dei suoi fiori. \r\nIn Nuova Zelanda è diventata una pianta infestante, molto dannosa per le specie locali.\r\nIl pedunculo è stato fumato come se fosse tabacco. \r\nIl gambo è stato utilizzato come spago.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003151&codigo=3151&pag=1&texto=Clematis%20vitalba','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003151&codigo=3151&pag=1&texto=Clematis%20vitalba','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=425',NULL,NULL,NULL), +(10,'ZM_10_convolvulus003148.jpg','ZM_10_convolvulus003148.jpg','Convolvulus arvensis','Convolvulus minor','Correhuela menor','Ezkerte beltza','Vilucchio comune','altabaquillo, campanica, enredadera, garrotilla, guniolas, hiedra de lagarto, hilandera, maroma, panes, raizdecilla, torregüela, trababedarri de las piezas, zaramalla.','ezkerte beltza, ziurda, txildurka, biurda, belarlatz, sapabelarra, kanpantxila-belar, kanpantxilar, pipila, lurruntza, lurruntze txiki,txurrutx, txurrusta-belar, lehuntz, pipalore, amabirgin atorra, birunga, hedetxo, kentidonia, odolbelar, s',NULL,'Convolvulus es procedente del latín convolvo y significa enroscado o trepador. Arvensis hace referencia a que crece en heredades cultivadas.\nTanto en sus nombres vascos como castellanos, a menudo se confunden la correhuela mayor (Calystegia sepium) y la correhuela menor (Convolvulus arvensis). A veces también se confunden con la clemátide o cabello de ángel (Clematis vitalba).\nEn parajes sombríos, deja de crecer en la superficie para trepar. Como la correhuela mayor, es una mala hierba, a pesar de sus hermosas flores. Se enreda en las plantas de los alrededores, les quita la luz y las ahoga.\nEs una planta portadora del virus mosaico del tabaco, por lo que hay que tener especial cuidado con ella donde se cultiva patata, tomate u otras solanáceas.\nEn Gran Bretaña dicen que morirá el amado de la mujer que la recoja su flor, así como que caerá la tormenta sobre quien la coja. \nEn Turquía se usa como verdura y aliño. Un medicamento realizado con la hoja favorece el flujo biliar.\nTambién se utiliza para dar sabor a un licor llamado Noyeau. \nSus tallos secos pueden ser utilizados como rodrigones de otras plantas, ya que son flexibles y duros a la vez, pero no duran mucho.\nLos días soleados sus flores expelen un fuerte aroma.','Britainia Handiko irletan diote lorea biltzen duen emakumearen maitea hil egingo dela; baita, lorea hartzen duenari ekaitza eroriko zaiola. \nBarazki eta bizigarri bezala erabiltzen da Turkian. Hostoekin egindako sendagai batek behazunaren jarioa areagotzen du.\nNoyeau izeneko likore bati zaporea emateko ere erabiltzen da. \nLehortutako zurtoinak beste landareentzako zurkaitz gisa erabil daitezke, malguak eta gogorrak dira baina ez dute asko irauten.\nEgun eguzkitsutan loreek usaina zabaltzen dute.','Convolvulus viene dal latino convolvo e significa attorcigliato o rampicante. Arvensis si riferisce al suo crescere nei terreni coltivati.\r\nSia nelle sue denominazioni basche che castigliane, si confonde spesso il vilucchio bianco (Calystegia sepium) con il vilucchio comune (Convolvulus arvensis). A volte capita di confonderle anche con la clematide o vitalba (Clematis vitalba).\r\nNelle zone ombrose smette di crescere sulla superficie per arrampicarsi. Come il vilucchio bianco è considerata un’erbaccia nonostante la bellezza dei suoi fiori. Si intreccia alle altre piante vicine, gli toglie la luce e le soffoca.\r\nQuesta pianta è portatrice del virus mosaico del tabacco, per questo bisogna fare attenzione che non cresca dove si coltivano patate, pomodori o altre solanacee.\r\nIn Gran Bretagna si dice che l’amato della donna che la raccoglie morirà o anche che la tormenta si abbatterà su chi la coglie. \r\nIn Turchia si usa come verdura e condimento. Una medicina ricavata dalle sue foglie favorisce il flusso biliare.\r\nSi utilizza anche per insaporire un liquore chiamato Noyeau. \r\nI suoi gambi secchi possono essere utilizzati come sostegni per altre piante, perché sono insieme duri e flessibili, ma non resistono a lungo.\r\nNelle giornate soleggiate i suoi fiori emanano un forte aroma.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003148&codigo=3148&pag=1&texto=Convolvulus%20arvensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003148&codigo=3148&pag=1&texto=Convolvulus%20arvensis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=521',NULL,NULL,NULL), +(11,'ZM_11_cornus003140.jpg','ZM_11_cornus003140.jpg','Cornus sanguinea','Cornus sylvestris','Cornejo rojo','Zuhandor gorria','Sanguinella','Sanguino, Sangueño, Sanguiñuelo','zuarbidurra, Judas egurra, belzurda','Corniolo sanguigno, Sanguine','El nombre latino del cornejo proviene del término Cornu, cuerno, ya que su madera es tan dura como el asta. Sanguinea, sanguis, es sangre, por el color de su corteza.\nSegún una leyenda cristiana, la cruz en la que crucificaron a Jesús era de cornejo (tal vez de ahí provenga uno de sus nombres vascos, Judasen egurra, o leño de Judas). Cuenta el relato que entonces los cornejos eran mucho más grandes y duros, y los mayores estaban en los alrededores de Jerusalén. Luego Dios decidió otorgarle el aspecto actual, cortando sus ramas, para impedir que se hicieran más cruces con esta planta. También convirtió las flores en crucifijos, con cuatro brácteas en forma de cruz. Se interpreta que los estambres rojos representan la corona de espinas de Jesús, y los frutos rojos, sus sangre. \nAunque su olor resulta desagradable a los humanos, sus flores atraen a numerosos insectos.\nLa corteza es buena contra la fiebre, así como para hacer tintes.\nDe sus semillas se hace un aceite para jabones y productos de encerado.\nSus ramas tiernas se utilizan para cestería, no así las ramas grandes, muy duras, que resultan apropiadas para hacer pequeños utensilios, hormas de zapato y mangos de paraguas. La leña es un excelente combustible y sirve para hacer carbón.','Zuhandorraren latinezko izena Cornu hitzetik, adarra, dator; adarra bezain gogorra den egurra bai du. Sanguinea, sanguis, odol, hitzetik, honen koloreko azala duelako.\nKondaira kristau batek dioenez, Jesus gurutziltzatu zuten gurutzea zuhandorraz egina zegoen (beharbada horregatik euskarazko beste izena, Judasen egurra). Historioak dio garai haietan zuhandorrak askoz handiago eta gogorragoak zirela, Jerusalem inguruan handienak. Gero Jainkoak, egungo jitea eman zion, adarrak moztuz, gurutzeak egiteko gehiago erabil ez zedin. Loreak ere gurutziltzearen irudi bihurtu zituen, gurutze formako lau brakteekin. Estamina gorriek Jesusen arantzazko koroa adierazten dute eta fruitu gorriek bere odola. Agi danean. \nGizakiontzat usain desatsegina badute ere, loreak oso erakargarriak dira intsektu ugarirentzat.\nAzalak sukarrari aurre egiteko balio du eta baita tindagaiak egiteko ere.\nHazietatik, xaboia egiteko eta argiztaketarako erabil daitekeen olio bat egiten da.\nAdaska gazteak otargintzarako erabiltzen dira; eta adarretako egurra gogorra denez, tresna txiki, orkoi eta aterkietako heldulekuak egiteko erabiltzen da. Egurra bera erregai bikaina da, eta baita ikatza egiteko ere.','Il nome latino della sanguinella proviene dal termine Cornu, corno, perché il suo legno è duro come quello di un palo. Sanguinea, sanguis, è sangue, per il colore della sua corteccia.\r\nSecondo una leggenda cristiana, la croce della crocifissione del Cristo era di sanguinella (e forse da qui gli proviene uno dei suoi nomi baschi, Judasen egurra che vuol dire legno di Giuda). La storia racconta che a quei tempi le sanguinelle erano molto più grandi e dure di oggi e le più grandi tra loro si trovavano nei dintorni di Gerusalemme. Solo in seguito Dio decise di dargli il loro aspetto attuale, tagliandone i rami per impedire che da questa pianta si ricavassero altre croci. Trasformò anche i fiori in crocifissi, con quattro brattee a forma di croce. Nell’interpretazione gli stami rossi rappresentano la corona di spine di Gesù e i frutti rossi il suo sangue. \r\nNonostante il suo odore risulti sgradevole all’olfatto umano, i fiori attraggono numerosi insetti.\r\nLa corteccia è ottima contro la febbre e si usa anche per tingere.\r\nDai suoi semi si ricava un olio per saponi e prodotti a base di cera.\r\nI suoi rami teneri si utilizzano per fare dei cesti, mentre quelli più grandi e più duri sono più indicati per fare piccoli utensili, suole di scarpe e manici per gli ombrelli. Il suo legno è un eccellente combustibile e serve per fare il carbone.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003140&codigo=3140&pag=1&texto=Cornus%20sanguinea','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003140&codigo=3140&pag=1&texto=Cornus%20sanguinea','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=345','BU_11_Cornus sanguinea.jpg','BU_11_Cornus_sanguinea_c.jpg',NULL), +(12,'ZM_12_crataegus003136.jpg','ZM_12_crataegus003136.jpg','Crataegus sp. (laevigata?)','Oxyacantha dioscoridis o matthioli','Espino albar- Majuelo','Elorri zuria','Biancospino','majuelo, manzanica de pastor','abilluri, arantzuri, ilurri, illurritze, ainurriatze, arantza, arantzalar, gabilluri, arantzuri, ilurri, illurritze, ainurriatze, arantza, arantzalar, gurrillona, aranzibia','Bossolin, calarighe, spinapulce, spino bianco, spì della lendena','Proviene su nombre del griego kratos, fuerte, recio, debido a su aspecto espinoso y su dura madera. El término Laevigata hace referencia a su corteza suave, elegante y resbaladiza.\nAunque esta planta resiste bien el fuerte viento y la contaminación, el salitre le puede resultar muy perjudicial. Algunos ejemplares llegan a vivir hasta 500 años. Es muy utilizada para hacer setos. Se usa como púa de injerto de nísperos y perales. \nCon los frutos se puede hacer mermelada y un sucedáneo del café. Sus frutos secos, mezclados en harina, son panificables. Las hojas tiernas se pueden utilizar como condimento de ensalada o para hacer tisanas.\nEs planta medicinal eficaz contra numerosos males, pero es especialmente reputada en dolencias vinculadas al corazón. Aunque en la cultura popular su uso es muy antiguo, fue a partir del siglo XIX cuando se descubrieron sus grandes cualidades para el corazón. Hoy día se utilizan las flores de espino en más de 200 remedios y son muchos los estudios que han demostrado su eficacia. Regula el ritmo cardiaco, mejora la circulación y refuerza el propio corazón. Es hipotensor y cardiotónico, antiestresante y favorece el sueño.\nJunto al ginkgo biloba, se utiliza contra la mala memoria, ya que refuerza el flujo sanguíneo en el cerebro. Con la corteza se hacen medicamentos contra la malaria y otras enfermedades.\nSu madera es muy dura, muy apropiada para pequeños utensilios y mangos. Es un excelente combustible. Se dice que el carbón vegetal de esta leña es capaz de fundir el hierro sin más aditivo. Sus espinas son tan duras que se han utilizado a modo de clavos.','Grekoko kratos, indartsu, sendo, hitzetik, datorkio izena. Bere eite arantzatsua eta zur gogorra direla eta. Laevigata hitzak azal leun dotore eta irristakorra duela dio.\nLandare honek ondo eusten die haize indartsu eta kutsadurari, baina kresalak kalte handia egin diezaioke. 500 urte arte bizi daiteke eta oso erabilgarria da hesiak egiteko. Mizpira eta udare mentuoin edo txertagai bezala erabiltzen da. \nFruituekin mermelada eta kafearen ordezko bat egin daiteke. Fruituak lehortzen direnean eta irinarekin nahastuta ogia egin daiteke. Hosto berriak entsaladarako gehigarri bezala eta tea egiteko erabil daitezke.\nGaitz askotarako balio duen garrantzi handiko sendabelarra da, baina batez ere bihotzaren inguruko kontuengatik da goraipatua. Herri kulturan aspalditik erabiltzen bazen ere, XIX. mendetik aurrera ikusi zen benetan erabilgarria zela bihotzeko gaitzentzat. Gaur egun, elorriaren loreak 200 sendagai baino gehiagotan aurki daitezke eta azterketa askok erakutsi dute bere erabilgarritasuna. Bihotz erritmoa erregulatzen du, zirkulazioa hobetu eta bihotza bera indartu. Hipotensorea da, kardiotonikoa, estresaren aurkakoa eta lo eragilea.\nGinkgo bilobarekin batera, memoria kaxkarraren aurka erabiltzen da, burmuinerako odol jario indartuz. Azalarekin malaria eta beste sukarren kontrako sendabideak egiten dira.\nEgur oso gogorra du. Tresna txikiak eta beren heldulekuak egiteko interes handikoa. Erregai bikaina da. Egur honekin egindako ikatza nahikoa omen da burnia urtzeko, beste ezeren laguntzarik gabe. Beren gogortasuna dela eta arantzak iltze bezala erabili izan dira.','Il suo nome proviene dal greco kratos, forte, robusto, per il suo aspetto spinoso e la sua dura materia. Il nome Laevigata fa riferimento alla sua corteccia morbida, elegante e scivolosa.\r\nNonostante questa pianta resista bene al forte vento e alla contaminazione, il salnitro può crearle dei seri problemi. Alcuni esemplari arrivano a vivere anche 500 anni. E’ molto utilizzata per fare le siepi. Si utilizza come rebbio da innesto per nespoli e peri. \r\nCon i suoi frutti è possibile fare una marmellata e un succedaneo del caffè. I suoi frutti secchi, mischiati nella farina, si possono panificare. Le foglie tenere si possono usare come condimento per le insalate o per fare delle tisane.\r\nE’ una pianta medicinale utile contro numerose malattie, ma è molto apprezzata per curare i problemi cardiaci. Anche se nella cultura popolare il suo uso è molto antico, è stato solo a partire dal XIX secolo che si scoprirono le sue grandi qualità per il cuore. Oggi i fiori del biancospino sono utilizzati in più di 200 rimedi e sono molti gli studi che ne hanno dimostrato l’efficacia. Regola il ritmo cardiaco, migliora la circolazione e rafforza il cuore. E’ un ipotensore e un cardiotonico, un antistress che favorisce il sonno.\r\nInsieme al ginkgo biloba, viene utilizzato contro i problemi di memoria, perché rafforza il flusso sanguigno nel cervello. Con la corteccia si fanno medicine contro la malaria e altre infermità.\r\nIl suo legno è estremamente duro, appropriato per la costruzione di piccoli utensili e manici. E’ un eccellente combustibile. Si dice che il carbone vegetale prodotto dal suo legno sia capace di fondere il ferro senza alcun complemento. Le sue spine sono così dure da essere utilizzate come dei chiodi.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003136&codigo=3136&pag=1&texto=Crataegus','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003136&codigo=3136&pag=1&texto=Crataegus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=583','BU_12_Crataegus_sp.jpg','BU_12_Crataegus_sp_c.jpg',NULL), +(13,'ZM_13_crocus003093.jpg','ZM_13_crocus003093.jpg','Crocus nudiflorus','Crocus pyreneus','Azafrán','Azafraia','Croco',NULL,'azaparan, hupa, safrana',NULL,'Azafrán en griego es krôkôs, proveniente del semítico karkom, del que han derivado también karkôm en hebreo, kurkuma en arameo y kurkum en árabe. Es uno de los más antiguos nombres de planta conocidos.\nEl género crocus agrupa a más de 100 especies, muchas de ellas estimadas en jardinería por la gran variedad de colores de sus flores. La más conocida de todas es la variedad que sirve para conseguir la especia del azafrán, Crocus sativa.\nEl azafrán es la especia más cara del mundo. Para ello hay que recoger sus estigmas; la flor dura apenas tres días y se necesitan 160.000 flores tostadas para conseguir un kilo de azafrán. \nEs muy antigua la costumbre de utilizarlo como reconstituyente. En Mesopotamia aparece escrita entre otras especias en cerámicas de hace más de 5.000 años. Las flores aparecen dibujadas en antiguos dibujos de la isla de Creta.\nEn Egipto se utilizaba como esencia aromática, y en Grecia para ayudar a conciliar el sueño. Recientes investigaciones han demostrado que ayuda a paliar las alteraciones de ánimo, tanto la depresión como la ansiedad.\nAdemás de un sabor amargo y un olor dulce y penetrante, añade a los alimentos un color amarillo muy vivo.\nAparece en varios mitos griegos. Según uno de ellos, tras la muerte del joven Krokos, amado del dios Hermes, éste lo convirtió en flor para que viviera eternamente.\n','Grekoz azafraia adierazten duen krôkôs hitzetik; hau karkom semitikotik eratorria. Hebraierako karkôm, aramearreko kurkuma eta pertsiera eta arabierako kurkum hitzen tankeran. Landare izen zaharrenetakoa omen da.\nCrocus generoak 100 espezie baino gehiago biltzen ditu, asko lorategietan estimatuak loreen kolore aniztasunagatik. Denetan ezagunena azafraia espezia egiteko erabiltzen den Crocus sativa.\nAzafraia munduko espezia garestiena da. Berau egiteko lorexakiak (estigma) bildu behar dira, loreak hiru egun eskas irauten du eta 160.000 lore txigortu behar dira kilo bat azafrai lortzeko. \nOso zaharra da bizigarri bezala erabiltzeko ohitura. Mesopotamian, 5000 urte baino gehiago dituzten zeramiketan agertu da idatzita beste zenbait espeziaren artean. Loreak ere margo zaharretan agertu dira Kretako irlan.\nEgipton esentzia aromatiko bezala zen erabilia, eta Grezian lo hartzen laguntzeko. Ikerketa berrienek gogo-aldartearen alterazioak, depresio zein antsietatea, jasaten laguntzen duela frogatu dute.\nZapore mingotsa eta usain gozo sarkor eta berezia izateaz gain, kolore hori bizia ematen die jakiei.\nHainbat mito greziarretan azaltzen da. Horietako batek dio Krokos, Hermes jainkoaren maitea zen mutil gaztea hil eta Hermes-ek lore bihurtu zuela betiko bizi zedin.','Croco in greco è krôkôs, proveniente dal semitico karkom, dal quale sono derivati anche karkôm in ebraico, kurkuma in aramaico e kurkum in arabo. Questo è uno dei nomi conosciuti più antichi di questa pianta.\r\nIl genere crocus raggruppa più di 100 specie, molte delle quali molto considerate nel giardinaggio per la grande varietà cromatica dei suoi fiori. La più conosciuta tra tutte è la varietà che serve per ottenere la spezia dello zafferano, Crocus sativa.\r\nLo zafferano è la spezia più cara del mondo. Per produrla bisogna raccogliere le sue stigme; il fiore dura appena tre giorni e si ha bisogno di 160.000 fiori tostati per ottenere un chilo di zafferano. \r\nE’ molto antico il suo utilizzo come ricostituente. In Mesopotamia appare citata, tra altre specie, sulle ceramiche di più di 5.000 anni. I fiori si trovano disegnati in antichi dipinti dell’isola di Creta.\r\nIn Egitto si utilizzava come essenza aromatica e in Grecia per conciliare il sonno. Ricerche recenti hanno dimostrato che aiuta a mitigare le alterazioni degli stati d’animo, sia la depressione che l’ansia.\r\nOltre che un sapore amaro e un odore dolce e penetrante, dà agli alimenti un colore giallo vivo.\r\nLo ritroviamo in molti miti greci. Secondo uno di questi, dopo la morte del giovane Krokos, amato del dio Hermes, quest’ultimo lo trasformò in un fiore perché potesse vivere in eterno.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003093&codigo=3093&pag=1&texto=Crocus%20nudiflorus','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003093&codigo=3093&pag=1&texto=Crocus%20nudiflorus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=153','BU_13_Crocus nudiflorus.jpg','BU_13_Crocus nudiflorus_c1.jpg',NULL), +(14,'ZM_14_dianthus003087.jpg','ZM_14_dianthus003087.jpg','Dianthus hyssopifolius','Diosanthos','Clavel','Krabelina','Garofano di bosco','clavelina','baratx, jiroflei, klabelina, larra-klabelina, mao, mau, rabelina, txanelina, txulufrai, txulufrina, julufrei, txiliprai',NULL,'El nombre científico proviene del griego antiguo diosanthos, dios o Zeus, y anthos, flor: las flores del género Dianthus son, pues, las que corresponden a Zeus.\nHyssopifolius, porque tiene hojas similares a las del hisopo, Hyssopus officinalis.\nHay más de 300 especies en el género de las Dianthus, a las que habría que añadir numerosas subespecies y variedades híbridas, muchas de ellas creadas para jardinería. Es una flor muy conocida, tanto porque en estado natural se halla en cualquier parte como por su uso muy extendido en los jardines. Florece en primavera y verano y se halla en cualquier ambiente, ya sea boscoso, herboso o cualquier otro.\nEl principal uso que se da a esta planta, además de ornamental, es el de obtener esencias. Su olor refinado y muy especial se usa para esencias desde hace miles de años. También es muy conocido su uso para realizar colirios: tal vez su nombre en francés, oeillet, -\"ojito\"- provenga de esa cualidad.\nAl vinagre en el que se maceraba esta especie des claveles se le atribuían propiedades contra la peste negra.\n','Grekoko diosanthos zaharretik eratorria, dios, Zeus edo Jove jainkoa eta anthos, lorea. Hau da Dianthus, krabelinaren generoaren izenaren jatorria.\nHyssopifolius, Hyssopus officinalis, isipu-belarraren antzeko hostoak dituelako.\n300 espezie baino gehiago da Dianthus generoan. Gainera, badira beste hainbat azpi-espezie eta hibrido ere, asko lorategietarako sortuak. Oso lore ezaguna da, naturan ia edonon aurki daitekelako eta lorazaintzan duen erabilera zabalagatik. Udaberria eta udan loratzen da, nonahi ikusten da, edozein motatako lurra duten baso sare, belaze eta abarretan.\nLandare honen erabilera nagusia, lorategietatik at, bere esentziarena da. Usain fin nabarmena du eta milaka urtetan ustiatu izan da esentziatarako. Begietarako ur edo kolirio\nsonatua egiten da berarekin, hortik ote dator frantsesezko oeillet , begitxo, izena?\nKrabelin hauek beratzen izan dituen ozpinak izurri beltzari aurrea hartzen omen zion.','Il nome scientifico proviene dal greco antico diosanthos, dios o Zeus, e anthos, fiore: i fiori del genere Dianthus sono, quindi, quelli che appartengono a Zeus.\r\nHyssopifolius, perché le sue foglie assomigliano a quelle dell’issopo, Hyssopus officinalis.\r\nIl genere della Dianthus comprende più di 300 specie, alle quali andrebbero aggiunte le numerose sottospecie e varietà ibride, molte delle quali create per la decorazione dei giardini. E’ un fiore molto conosciuto, sia perché allo stato naturale si trova ovunque che per il suo diffuso utilizzo nei giardini. Fiorisce in primavera ed estate e si trova in ogni tipo di ambiente, boscoso, erboso e quant’altro.\r\nL‘utilizzo principale di questa pianta, oltre a quello puramente ornamentale, è di ricavarne delle essenze. Il suo odore raffinato e molto particolare è utilizzato nella profumeria da migliaia di anni. E’ conosciuto anche per il suo uso per preparare colliri: il suo nome francese, oeillet, -\"occhietto\"- potrebbe derivargli da questa qualità.\r\nSi pensava che l’olio nel quale maceravano questi particolari garofani avesse proprietà particolari contro la peste nera.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003087&codigo=3087&pag=1&texto=Dianthus%20hyssopifolius','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003087&codigo=3087&pag=1&texto=Dianthus%20hyssopifolius','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=93','BU_14_Dianthus_cfr_ hyssopifolius.jpg','BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg',NULL), +(15,'ZM_15_erica003067.jpg','ZM_15_erica003067.jpg','Erica cinerea','Erica tenuifolia','Brezo nazareno','Ainarra purpura','Erica cinerea',NULL,NULL,NULL,'En el género de los brezos se incluyen más de 700 especies, desde las que miden unos 20 cm de alto hasta las Erica arborea de 6-7 metros. El 90% se halla en el sur de África.\nEl brezo prefiere las tierras ácidas, ya sean secas o húmedas, pero siempre ácidas. \nAbona los suelos y es alimento de numerosos animales.\nResiste a las tierras calcinadas por el fuego y se repuebla fácilmente.\nTiene una gruesa cepa bajo tierra, dura y sin vetas. Esta cepa de la especie Erica arborea es especialmente estimada para la fabricación de pipas. En Bouloternère, en el Pirineo oriental, la fabricación de pipas de brezo daba ocupación a muchas personas durante la primera mitad del siglo XX. Hoy día se siguen fabricando en Córcega y el Magreb. \nSe ha utilizado para las cubiertas de bordas y cabañas.\nTambién se han usado sus ramas para colocar entre ellas los gusanos de seda. \nLas bardas de sus ramas sirven para hacer escobas, así como las camas del ganado. \nCon las ramas también se hacen horquillas.\nEs muy apropiada para conseguir con rapidez un fuego de grandes llamas y muy caliente en hornos de cal, de pan y otros.\nSirve para hacer carbón vivo, muy estimado en forja.\nLas abejas gustan mucho de su flor, por lo que se suele hacer miel de brezo.\nEn mitología es una planta mágica, y el nombre de Erika se utiliza como nombre de mujer. \nEl nombre de Erica, del griego \"ereiken\", parece que significa frágil, ya que así son sus ramas. \nUno de los indicadores que se utilizan en la cornisa cantábrica para analizar el cambio climático es la floración del brezo, que estos últimos años se está adelantando.\n','Txilarren generoan 700 espezie baino gehiago da; 20 cm. garai direnetatik hasi eta Erica arborearen 6-7 metroetarainokoak. %90a Hego Afrikakoa da.\nTxilarrak lur azidoak maite ditu. Lehorrak izan edo ur-asetutakoa, beti azidoa. \nLurrak ontzen ditu eta animalia ugariren jakia da.\nSuak pasatako lurrei eusten die eta erraz berritzen da.\nAndui edo ipurdi lodikote bat lurpean, gogorra oso eta betarik gabea. Erica arborea espeziearen ipurdi hau erretzeko pipak egiteko bereziki estimatua da. Bouloternèren, ekialdeko Piriniotan, XX mendearen lehen erdian jende ugari bizi zen bertan zegoen txilar-pipa lantegiari esker. Korsikan eta Magreben egundo ere egiten dira. \nBorden eta txabolen estalkiak eta hormak egiteko erabili izan da.\nZeta sortzeko, harrak txilar adarretan jarri izan dira. \nAdarretako zarbekin erratzak egiten dira, txilar-erratzak. Baita abereen azpietarako gaia ere. \nAdarrekin txardengoak egiten dira.\nKarobi, ogi-labe eta bestelako labeetan bapateko su gar handi eta beroa egiteko aproposa da.\nIkatz bizia egiten du, burdina lantzeko estimatua.\nErleek oso gogoko dute bere lorea eta txilar-ezti berezia egin ohi da.\nMitologian landare magikoa da, eta Erika emakume izena bezala erabiltzen da. \nErica izena, grekoko \"ereiken\", hau da, hauskor hitzetik omen dator, adarrak halakoak bait ditu. \nKantauri Itsasoaren inguruan Klima Aldaketak nola eragiten duen jakiteko erabili den neurrietako bat txilarren loraldia da. Azken urte hauetan aurreratzen ari da.\n','Nel genere delle eriche si includono più di 700 specie, da quelle che misurano sui 20 cm di altezza alle Erica arborea di 6-7 metri. Il 90% si trova nel sud dell’Africa.\r\nL’erica preferisce le terre acide, secche o umide non importa, basta che siano acide. \r\nConcima il suolo ed è un alimento per numerosi animali.\r\nResiste ai terreni bruciati dal fuoco e si ripopola con facilità.\r\nHa un grosso ceppo sotto terra, duro e senza venature. In particolare questo ceppo della specie Erica arborea è molto apprezzato per la fabbricazione di pipe. A Bouloternère, nei Pirenei orientali, la fabbricazione di pipe di erica è stata fonte di occupazione per molti durante la prima metà del XX secolo. Ancora oggi se ne fabbricano in Corsica e nel Maghreb. \r\nE’ stata utilizzata per la copertura di chalet e capanne.\r\nI suoi rami sono anche stati utilizzati per l’allevamento dei bachi da seta. \r\nLa copertura dei suoi rami serve per fabbricare scope e anche giacigli per il bestiame. \r\nCon i rami si possono fare delle forcine.\r\nE’ indicata per accendere un fuoco dalle fiamme grandi e molto calde in tempi rapidi, nei forni di calce, di pane o altri.\r\nServe per fare il carbone vivo, molto apprezzato nelle fucine.\r\nAlle api piacciono molto i suoi fiori, per questo il miele di erica è abbastanza diffuso.\r\nNella mitologia è una pianta magica e il nome di Erika viene usato come nome di donna. \r\nIl nome Erica, dal greco \"ereiken\", sembra significare fragile, perché così si presentano i suoi rami. \r\nUno degli indicatori utilizzati nella cornice cantabrica per analizzare il cambiamento climatico è la fioritura dell’erica, che negli ultimi anni si è anticipata.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003067&codigo=3067&pag=1&texto=3066','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003067&codigo=3067&pag=1&texto=3066','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=20','BU_15_Erica_cinerea.jpg','BU_15_Erica cinerea_c1.jpg',NULL), +(16,'ZM_16_euphorbia003101.jpg','ZM_16_euphorbia003101.jpg','Euphorbia helioscopia',NULL,'Euphorbia helioscopia','Euphorbia helioscopia','Calenzuola','lechetrezna',NULL,' calenzuola, euforbia, erba calenzola','Cuando se la corta desprende un líquido semejante a la leche, de ahí su nombre tanto vasco (esne-belarra) como castellano. \nLinneo le puso el nombre de euforbiáceas a esta familia de plantas en homenaje al griego Euphorbos, médico del rey Juba de Numidia. Helioscopia se debe a los términos griegos helios (sol) y skopein (cuidado, atención), ya que esta planta sigue el movimiento del sol a lo largo del día.\nLa savia lechosa es tóxica y sirve para eliminar las verrugas.\nEn India utilizan el aceite de su semilla y la decocción de sus hojas y tallos para expulsar las lombrices intestinales.\nSe encuentra en heredades cultivadas o ya abandonadas.\n','Esneantzeko izerdia ixuriko du ebaki ezkero. Hortik esnebelarra inondik ere. \nEuphorbiazeoen familiari Linneok jarri zion izena, Numidiako Juba erregearen mediku zen Euphorbus greziarraren omenez. Helioscopia, helios (eguzkia) eta skopein (zaindu) latinezko hitzengatik, landare honek egunean zehar eguzkiaren mugimenduari jarraitzen bait dio.\nEsne itxurako izerdia toxikoa da eta garatxoak desagertarazteko balio du.\nIndian, hazien olioa eta hosto eta zurtoinen dekokzio bat erabiltzen dute heste zizareak kanporatzeko.\nLandutako edo utzitako nekazal lurretan aurkitzen da.\n','Quando si taglia sprigiona un liquido simile al latte, da cui deriva sia il nome basco (esne-belarra) che quello spagnolo. \r\nLinneo ha messo a questa famiglia di piante il nome di euphorbiaceae in omaggio al greco Euphorbos, medico del re Juba di Numidia. Helioscopia proviene dai termini greci helios (sole) e skopein (guardare), dato che la pianta segue il movimento del sole durante tutto il giorno.\r\nLa linfa lattiginosa è tossica e serve per togliere le verruche.\r\nIn India, l’olio ricavato dai suoi semi e il decotto delle foglie e del gambo vengono utilizzati per espellere i vermi intestinali.\r\nSi trova sia in tenute coltivate che abbandonate.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003101&codigo=3101&pag=1&texto=Euphorbia%20helioscopia','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003101&codigo=3101&pag=1&texto=Euphorbia%20helioscopia',NULL,NULL,NULL,NULL), +(17,'ZM_17_helleborus003097.jpg','ZM_17_helleborus003097.jpg','Helleborus viridis','Helleborus viridis','Heléboro verde','Otsababa emea','Elleboro verde','ballestera verde o hierba llavera','pika baba, lipu-belarra, lupi-belarra, lupu-belarra, baladrea, mingaizto-belarra','elleboro falso','Florece con flores grandes y verdes a finales del invierno y principios de la primavera.\nSe ha utilizado en medicina y brujería.\nEs una planta muy tóxica; por ello, no es recomendable su uso como hierba medicinal si no se conocen muy bien sus propiedades, que las tiene.\nPese a su riesgo, sus raíces se cuecen para combatir pulgas y piojos.\nSe ha llegado a decir que Alejandro Magno murió de sobredosis de esta planta. \nEn huertas y jardines se usa contra piojos y parásitos similares.','Neguaren amaian eta Udaberriaren atarian loratzen da lore handi eta berdez.\nMedizinan eta sorginkerietan erabilia izan da.\nOso landare toxikoa da. Horregatik, sendabelar bezala nolanahi erabiltzea ez da gomendagarria nahiz eta badituen zenbait onura.\nArriskutsua den arren, zainen egosketa arkakuso eta zorrien aurka erabiltzen da.\nAlexander Handia sendatzeko hartutako landare honen sobredosi batek hil ote zuen diote. \nBaratza eta lorategietan, zorri eta antzeko parasitoen aurka erabiltzen da.','Fiorisce con fiori grandi e verdi alla fine dell’inverno e all’inizio della primavera.\r\nE’ stato utilizzato in medicina e nella stregoneria.\r\nE’ una pianta estremamente tossica; per questo il suo utilizzo come erba medicinale non è raccomandabile per chi non ne conosce a fondo le proprietà, che sono molte.\r\nNonostante il suo utilizzo sia rischioso, le sue radici si utilizzano, cotte, per combattere pulci e pidocchi.\r\nSi è arrivati a dire che Alessandro Magno morì a causa di una overdose di questa pianta. \r\nNegli orti e nei giardini si utilizza contro pidocchi e parassiti simili','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003097&codigo=3097&pag=1&texto=Helleborus%20viridis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003097&codigo=3097&pag=1&texto=Helleborus%20viridis','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=383','BU_17_Helleborus_viridis.jpg','BU_17_Helleborus_viridis_c.jpg',NULL), +(18,'ZM_18_humulus003220.jpg','ZM_18_humulus003220.jpg','Humulus volubilis','Humulus lupulus','Lúpulo','Lupula','Luppolo','betiguera, cañamiza, cerveza, espárragos de zarza, flor de hombre, zaramangón.','ezker aihena','ligaboschi','Se cree que el nombre proviene deI humus de la tierra. Lupulus podría provenir también de lobo, ya que esta planta acaba con todas las plantas que atrapa debajo como el lobo hace con las ovejas.\nEs planta trepadora, y utiliza los recios pelos que le salen del tallo para agarrarse y trepar.\nLas flores macho y hembra se dan en diferentes plantas.\nLas flores hembra se recolectan y utilizan para hacer cerveza. Por un lado, le dan un sabor especial; por otro, combaten las bacterias Gramm y favorecen la acción de la levadura. Contrarrestan el sabor dulce de la malta con un punto amargo.\nLas hojas y brotes tiernos tienen un sabor particular y agradable. Las hojas recogidas antes del mes de mayo se pueden comer crudas en ensalada.\nCon el lúpulo se hace tinte marrón para el pelo y crema para suavizar el cutis facial.\nDe sus tallos se pueden obtener fibras similares a las del cálamo para la fabricación de ropa.','Clematis vitalba-ri ere horrela esaten zaio batzuetan)\n\nIzena lurreko humus hitzetik eratorria dela uste da. Lupulus otsotik etor liteke, otsoak ardiak bezala landare honek azpian harrapatzen dituen beste landareak akaba bai ditzake.\nLandare igokaria da, eta zurtoinean ateratzen zaizkion bilo sendoak erabiltzen ditu heldu eta gora egiteko.\nLore ar eta emeak landare ezberdinetan izaten dira.\nLore emeak jaso eta garagardoa egiteko erabiltzen dira. Batetik,zapore berezia ematen dio, eta bestetik, Gramm bakterien aurka eginez, legamiaren eragina sustatzen du. Maltaren zapore gozoa berdintzen du mingots puntu bat emanez, (nahiz eta prozesuaren eta lupulua ze barietatetakoa den arabera ezberdina den eragin hau.KENDU EGINGO NUKE)\nEgositako hostoEK eta kimu berriek zapore berezi eta atsegina dute. Maiatza aurretik jasotako hostoak gordinik jan daitezke entsaladan.\nIlerako tindagai marroia eta aurpegiko azala leuntzeko krema egiten da.\nZurtoinetik kalamuarenaren antzeko zuntzak atera daitezke erropagintzarako.','Si pensa che il nome provenga dal humus della terra. Lupulus potrebbe derivare anche da lupo, dato che questa pianta uccide tutte le piante che cattura da sotto come il lupo fa con le pecore.\r\nE’ una pianta rampicante e utilizza i robusti peli che salgono dal tronco per attaccarsi e arrampicarsi.\r\nI fiori maschio e femmina si trovano in piante diverse.\r\nI fiori femmina si raccolgono e si utilizzano per fare la birra. Da una parte le conferiscono un sapore speciale e dall’altro combattono i batteri Gramm e favoriscono l’azione dei lieviti. Bilanciano il sapore dolce del malto con una punta di amaro.\r\nLe foglie e i germogli teneri hanno un sapore particolare e piacevole. Le foglie raccolte prima del mese di maggio si possono mangiare crude nell’insalata.\r\nCon il luppolo si fanno tinte marroni per i capelli e una crema per alleviare l’acne.\r\nDai suoi gambi si possono ottenere fibre simili a quelle della canna per la fabbricazione di vestiti.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003220&codigo=3220&pag=1&texto=Humulus%20lupulus','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003220&codigo=3220&pag=1&texto=Humulus%20lupulus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=83',NULL,NULL,NULL), +(19,'ZM_19_hypericum003076.jpg','ZM_19_hypericum003076.jpg','Hypericum androsaemum','Hypericum bacciforme','Androseme','Orkatxa','Erba sana','sanalotodo',NULL,'Ruta selvatica, Sanguinaria','Su nombre vasco de orkatxa proviene, según el botánico Lakoizketa, del hedor de la planta, similar al del corzo (orkatza). \nEs una conocida planta medicinal, ingrediente de muchos ungüentos, de ahí que en castellano también se le llame \"sanalotodo\" y en inglés \"tutsan\" (del francés toute saine). \nComo florece en los días más largos del año, una planta del mismo género, Hypericum perforatum, se conoce como \"hierba de San Juan\".\nEl tercer libro de los cinco \"De Materia Medica\" que escribió el médico Dioscórides en el siglo I recoge que, si se aplastan en las manos sus flores y frutos, da un jugo parecido a la sangre. De hecho, \"Androsemo\" en griego significa sangre humana\n','Orkatxa, euskarazko izena, landarearen kiratsa orkatzarenaren tankera duelako dela dio Lakoizketa botanikariak. \nSendabelar ezaguna da, eta makina bat ukenduren osagai da. Gazteleraz \"sanalotodo\" eta ingelesez \"tutsan\" (frantsesezko toute saine-tik) ere deitu izan zaio. \nUrteko egunik luzeenetan loratzen denez, \"San Juan belarra\" bezala ere ezaguna da genero honetako beste landare bat, Hypericum perforatum.\nI mendeko Dioskorides sendagileak idatzitako \"De Materia Medica\" bost liburuetako hirugarrenean dioenez, loreak eta fruituak eskuetan marruskatuz gero odolaren tankerako zukua ematen du. Hortik grekoko \"Androsemo\", gizakiaren odola, alegia.\n','Il nome basco \"orkatxa\" proviene, secondo il botanico Lakoizketa, dall’olezzo della pianta, simile a quello del capriolo (orkatza). \r\nE’ una conosciuta pianta medicinale e il suo essere ingrediente di molti unguenti le è valso uno dei suoi nomi in castigliano, \"sanalotodo\" (guariscitutto), e in inglese \"tutsan\" (dal francese toute saine). \r\nUna pianta dello stesso genere, l’Hypericum perforatum, è conosciuta come \"l’erba di San Giovanni\" per la sua fioritura durante i giorni più lunghi dell’anno.\r\nIl terzo libro dei cinque che formano \"De Materia Medica\" scritto dal medico Dioscórides nel secolo I documenta che, se schiacciati nella mano, i suoi fiori e frutti danno un succo simile al sangue. Effettivamente, \"Androsemo\" in greco significa sangue umano.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003076&codigo=3076&pag=1&texto=Hypericum%20androsaemum','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003076&codigo=3076&pag=1&texto=Hypericum%20androsaemum','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=347',NULL,NULL,NULL), +(20,'ZM_20_ilex003185.jpg','ZM_20_ilex003185.jpg','Ilex aquifolium','Aquifolium spinosum','Acebo]','Gorostia','Agrifoglio','agrifolio, cardón, cardonera, aquifolio, cebro, carrasco.','korosti, garratz, garratx, garatzaina','Aquifoglio, Alloro spinoso, Pungitopo maggiore.','La denominación Ilex le proviene del nombre latino de la encina, Quercus ilex, por el parecido de sus hojas. Aquifolium deriva de acus, espina, y folius, hoja.\nEste hermoso arbusto está hoy día protegido, y está prohibido cortar ramas a los acebos que se encuentran en el monte. Los arbustos son machos o hembras. En invierno son los frutos rojos de las hembras los que lo hacen tan atractivo, por lo que su uso ornamental en Navidades durante años le ha provocado graves consecuencias. \nDel mismo modo que el ébano para las fichas negras, el acebo se utilizaba para hacer las fichas blancas de ajedrez. Era el árbol más sagrado de los druidas celtas, y en la Roma precristiana era el árbol del dios Saturno. Para los cristianos, está relacionado con el nacimiento de Jesús, ya que se dice que María y José se ocultaron tras un acebo cuando huían de los soldados hacia Egipto: María lo bendijo y es por ello que sus hojas perennes simbolizan la inmortalidad.\nEl topónimo \"Hollywood\" significa bosque de acebos.\nCon su corteza cocida y fermentada se hace la \"liga\", una cola para atrapar pájaros.\nAyuda a bajar el colesterol. Sus hojas sirven de aperitivo, ya que abren el apetito. Asimismo, desecadas sirven como sucedáneo del té, y los frutos tostados, como sucedáneo del café. En Alsacia se obtiene alcohol de sus frutos fermentados y destilados.\nEn grandes cantidades (más de 25 granos) puede ser letal, ya que afecta al corazón, estómago y sistema nervioso. \nPese a que sus hojas son duras y espinosas, algunos animales se alimentan de ellas en invierno, cuando la nieve cubre la hierba. Por eso las hojas más bajas, al alcance de sus dientes, son más espinosas, y libres de espinas las más altas.','Ilex artearen izen latinetik omen dator, Quercus ilex. Hostoetan antza handia dute. Aquifolium berriz, acus, arantza, eta folius, hostoa, hitzetatik dator.\nZuhaixka eder hau gaur egun babestua dago, eta debekatuta dago mendian dauden gorostiei adarrak moztea. Zuhaixkak arrak edo emeak dira. Neguan landare emeek ematen dituzten fruitu gorriek egiten dute hain erakargarri, eta hainbat urtez gabonetako apaingarri gisa erabili izanak kalte handia egin dio. \nEbanoa pieza beltzetarako erabiltzen den bezala, historikoki xake fitxa zuriak gorostiarekin egiten ziren. Druida zelten zuhaitzik sakratuena zen eta kristautu aurreko Erroman, Saturno jainkoaren irudia. Kristauentzat Jesusen jaiotzarekin zerikusia du, gorosti baten atzean ezkutatu baitziren Maria eta Jose Egiptora bidean soldaduetatik ihesi. Mariak bedeinkatu egin zuen eta ilezkortasunaren seinaletzat, urte osoan hostoak izatea ahalbidetu zuela diote.\n\"Hollywood\" toponimoak, gure gorostidi edo gorostutzak... bezala, gorosti basoa esan nahi du.\nEgosi eta hartzitutako azalarekin txoriak harrapatzeko erabiltzen den kola moduko \"liga\" egiten da.\nKolesterola jaisten laguntzen du. Hostoak gosea eragiten du, aperitiboa da.\nHostoak lehortuta tearen ordezko bezala erabil daitezke eta txigortutako fruituak kafearen ordezko bezala.\nAlsazian, fruitu hartzitu eta destilatuetatik alkohola ateratzen da.\nKantitate handian (25 aletik gora) hilgarria izan daiteke, bihotz, urdail eta nerbio sistemari kalteak eraginda. \nHosto gogor eta arantzadunak dituen arren, zenbait animaliak neguan, elurragatik belarrik ez denean, jan egiten du. Hauen hortzen eran dituen beheko aldeko hostoak ditu arantzatsu, goiko adarretan, haiengandik libre arantzarik gabeak.','La denominazione Ilex le proviene dal nome latino della quercia, Quercus ilex, per l’aspetto delle sue foglie. Aquifolium deriva da acus, spina, e folius, foglia.\r\nQuesto arbusto è oggi una specie protetta e non è permesso tagliare i rami agli agrifogli che si trovano sui monti. Gli arbusti possono essere maschio o femmina. Durante l’inverno sono i frutti rossi delle femmine che lo rendono così affascinante, ma il suo utilizzo durante un lungo periodo come ornamento natalizio gli ha provocato delle gravi conseguenze. \r\nCosì come l’ebano per le pedine nere, l’agrifoglio si utilizzava per fare le pedine bianche degli scacchi. Era l’albero sacro dei druidi celti e nella Roma pre-cristiana era l’albero del Dio Saturno. Per i cristiani è collegato alla nascita di Gesù, perché si narra che Maria e Giuseppe si nascosero proprio dietro un agrifoglio per sfuggire ai soldati durante il viaggio verso l’Egitto: Maria lo benedì ed è per questo che le sue foglie perenni simbolizzano l’immortalità.\r\nIl toponimo \"Hollywood\" significa bosco di agrifogli.\r\nCon la corteccia cotta e fermentata si prepara la \"liga\", una colla per catturare gli uccelli.\r\nAiuta a far diminuire il colesterolo. Le sue foglie servono da aperitivo, perché aprono lo stomaco. Disseccate invece, sono un succedaneo del tè e i suoi frutti tostati un succedaneo del caffè. In Alsazia dai frutti fermentati e distillati si ottiene dell’alcool.\r\nIn grandi quantità (più di 25 acini) può essere letale, perché compromette il funzionamento di cuore, stomaco e sistema nervoso. \r\nNonostante le sue foglie siano dure e spinose alcuni animali se ne cibano durante l’inverno, quando la neve copre l’erba. Per questo le foglie più basse, quelle all’altezza della bocca degli animali, hanno più spine mentre quelle più alte ne sono prive.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003185&codigo=3185&pag=1&texto=Ilex%20aquifolium','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003185&codigo=3185&pag=1&texto=Ilex%20aquifolium','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=385',NULL,NULL,NULL), +(21,'ZM_21_knautia003090.jpg','ZM_21_knautia003090.jpg','Knautia arvensis','Knautia arvensis','Escabiosa oficinal','Hatz belarra','Scabiosa','lengua de vaca, viuda silvestre','atze-belar','Ambretta comune, vedovella campestre','Se ha utilizado para limpiar las heridas provocadas por la sarna y la peste negra. El nombre vasco precisamente hace referencia a su uso contra la sarna y el picor: hazteri-belar o hatz-belar.\nGracias a sus taninos, se suele tomar en infusión como depurativo de la sangre.\nSus hojas se pueden comer en platos de verduras, sopas o tortillas, siempre antes de la floración.\nEl nombre científico es una combinación de homenaje al botánico alemán Christoph Knaut (1.638-1694) y de arvensis, por su tendencia a crecer en heredades cultivadas.','Hazteria (sarna) eta izurrite beltzak eragindako azaleko zauriak garbitzeko erabilia izan da. Hazteriaren kontrako erabileragatik datorkio euskal izena, hazteri-belar edo hatz-belar.\nDauzkan taninoei esker infusio eran hartuta odola garbitzeko balio du,.\nHostoak barazki plateretan, zopetan eta tortiletarako erabil daitezke, betiere loraldia baino lehen bildutakoak.\nIzen zientifikoa Christoph Knaut (1.638-1694) botanikari alemanaren omenez batetik, eta arvensis lurra landutako sailetan hazten denari dagokio.','E’ stata utilizzata per pulire le ferite provocate dalla scabbia e dalla peste nera. Il nome basco, in particolare, fa riferimento al suo uso contro la scabbia e il prurito: hazteri-belar o hatz-belar.\r\nGrazie ai suoi tannini, si è soliti berne l’infuso per depurare il sangue.\r\nLe sue foglie si possono mangiare nell’insalata, nella zuppa o nella frittata, ma sempre prima della fioritura.\r\nIl nome scientifico è una combinazione tra l’omaggio al botanico tedesco Christoph Knaut (1.638-1694) e arvensis, per la sua tendenza a crescere su tenute coltivate.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003090&codigo=3090&pag=1&texto=Knautia%20arvensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003090&codigo=3090&pag=1&texto=Knautia%20arvensis','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003090&codigo=3090&pag=1&texto=Knautia%20arvensis','BU_21_Knautia_arvensis.jpg','BU_21_Knautia_arvensis_c.jpg',NULL), +(22,'ZM_22_lilium003143.jpg','ZM_22_lilium003143.jpg','Lilium pyrenaicum',NULL,'Flor de lis','Zitoria horia','Fiordaliso','lirio','zitori horia, zitori gorria, melira','giglio','Del griego leirion, lirio, que en latín derivó a lilium. Pyrenaicum, es decir, de los Pirineos.\nParece que su nombre vasco, zitori, hace referencia al color amarillo (\"hori\"). Su habitual color es, pues, el amarillo, aunque algunos tienden al rojo. \nEn verano abunda esta hermosa flor en los herbazales y pedregales de los Pirineos.\nEl nombre castellano de \"lirio fétido\" se debe al hedor que despide su flor. La flor de lis es emblema habitual de la dinastía borbónica.','Grekoko leirion , lirio, hitzaren latinez dagokion hitza da lilium. Pyrenaicum, Pirinioetakoa, alegia.\nBadirudi euskarazko izenak bere baitan duela \"horia\" kolorea. Kolore nagusia horia izaten du gehienetan, nahiz badiren gorrirako joera dutenak ere. \nPirinioetako belardi eta harri tarteetan ugari izaten da udan lore eder hau.\nKiratsa dario loreari, horregatik gazteleraz \"lirio fétido\" bezala ere ezagutzen da. Lis lorearen eredu, Borbondarren kastaren ikurretako bat da.','Dal greco leirion, giglio, che in latino è diventato lilium. Pyrenaicum, cioè dei Pirenei.\r\nSembra che il suo nome basco, zitori, si riferisca al colore giallo (\"hori\"). Il suo colore abituale è appunto il giallo, anche se alcuni tendono più al rosso. \r\nIn estate questo fiore meraviglioso si trova in abbondanza sui pascoli e terreni rocciosi dei Pirenei.\r\nIl nome spagnolo di \"lirio fétido\" è dovuto all’odore emanato dal suo fiore. Il giglio è l’emblema più conosciuto della dinastia borbonica.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003143&codigo=3143&pag=1&texto=Lilium%20pyrenaicum','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003143&codigo=3143&pag=1&texto=Lilium%20pyrenaicum',NULL,NULL,NULL,NULL), +(23,'ZM_23_lotus003128.jpg','ZM_23_lotus003128.jpg','Lotus corniculatus','Mullaghera communis','Cuernecillo','Mendiko usobelarra ','Ginestrino',NULL,NULL,'Ginestrina comune, \r\nTrifoglina','Planta rastrera con aspecto de trébol. Buen pasto para el ganado, tanto por su capacidad a amoldarse a distintos sustratos como porque puede ser pastada directamente o una vez guardada. En Gran Bretaña es más utilizada que aquí.\nTambién tiene importancia en apicultura, y cuando florece en abril son muchas las abejas que llegan a los prados a aprovisionarse de su néctar.\nLas flores son capaces de crear cianuro (sustancia muy tóxica) como mecanismo de defensa, sobre todo contra los hongos. \nEn Estados Unidos de América y en Australia se la considera especie invasora.\n','Hirusta itxurako landare herrestaria da. Abereentzako bazka ona da, sustratu ezberdinbetara moldatzen iaio eta ganaduak zuzenean bazkatzeko edo ontzeko egokia delako. Britainia Handian hemen baino erabiliagoa da.\nApikulturan ere badu garrantzia, apirilean loratzen denean erle asko hurbiltzen bai da larreetara bere nektarraren bila.\nLoreak zianuroa (gai guztiz toxikoa) sortzeko gai dira defentsa mekanismo bezala, bereziki onddoen aurka. \nAmeriketako Estatu Batuetako zenbaitetan eta Australian espezie inbaditzailetzat dute.\n','Pianta strisciante con aspetto simile al trifoglio. Buon alimento per il bestiame sia per la sua capacità di adattarsi a diversi sostrati, sia perché può essere mangiata direttamente o dopo esser stata conservata. In Gran Bretagna è molto più utilizzata che da noi.\r\nHa una grande importanza anche nell’apicoltura e quando fiorisce, in aprile, sono molte le api che arrivano sui prati per fare provvista del suo nettare.\r\nI fiori sono capaci di produrre cianuro (sostanza molto tossica) come meccanismo di difesa, soprattutto contro i funghi. \r\nNegli Stati Uniti e in Australia è considerata una specie infestante.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003128&codigo=3128&pag=1&texto=Lotus%20corniculatus','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003128&codigo=3128&pag=1&texto=Lotus%20corniculatus','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=517','BU_23_Lotus_ corniculatus.jpg','BU_23_Lotus_corniculatus_c.jpg',NULL), +(24,'ZM_24_lythrum003065.jpg','ZM_24_lythrum003065.jpg','Lythrum salicaria','Chabrea vulgaris','Salicaria','Egur-belarra','Salcerella',NULL,NULL,NULL,'Las hojas, ricas en calcio, han sido utilizadas como alimento. \nEs un buen antibiótico, especialmente contra el tifus. Es apropiada para la limpieza de la piel, y sobre todo muy buena para combatir la diarrea de los lactantes. Esta hierba también se utiliza introduciéndola en las fosas nasales para cortar hemorragias. \nSuele crecer en tierras pobres y sobre todo húmedas: si se halla esta planta, señal de que hay agua. \nParece que el nombre lythrum proviene del griego \"lythron\", que significa sangre, tal vez por el color de sus flores...\nSus flores son polinizadas por insectos de lengua larga, como mariposas y abejas. \nUna sola planta puede llegar a dar en un año tres millones de semillas, que extienden el viento y el agua. Es invasora, y muy difícil de erradicar una vez que se asienta. \nSe cree que se ha extendido por todo el mundo debido a la tierra y el agua que se utilizaba para lastrar los barcos.\n','Hostoak egosita jan izan dira, karetan aberatsak dira. \nAntibiotiko ona da, batipat tifusaren aurkakoa. Azala garbitzeko sendabelar aproposa da. Bularreko haurren beherakoa sendatzeko bereziki egokia. Sudurreko odol jarioak eteteko, sudur-zuloa belar honekin betetzen da. \nLur eskasetan eta batez ere hezeetan bizi da. Landarea ikusiz gero, ura dagoen seinale. \nLythrum izena, itxuraz, grekoko \"lythron\" hitzetik datorkio, honek odola esan nahi du, loreen kolorea dela eta, nonbait...\nBere loreak mihi luzea duten intsektuek –tximeletek, erleek...- polinizatzen dituzte. \nLandare bakar batek hiru milioi hazi eman ditzake urte bakar batean. Haizeak eta urak zabaltzen dituzte. Inbaditzailea da eta behin asentatuz gero kendu edo galtzen ikaragarri zaila. \nDirudienez, batetik bestera dabiltzan itsasontziak orekatzeko lasta gisa jartzen zen lur eta uretan zabaldu da mundu osoan.\n','Le foglie, ricche di calcio, sono state utilizzate come alimento. \r\nE’ un buon antibiotico, specialmente contro il tifo. E’ possibile utilizzarla per la pulizia della pelle e risulta particolarmente indicata contro la diarrea dei lattanti. Questa erba si utilizza anche come coagulante per bloccare le emorragie, introducendola nelle narici. \r\nCresce di solito in terreni poveri e soprattutto umidi: la presenza di questa pianta indica che c’è dell’acqua. \r\nSembra che il nome lythrum provenga dal greco \"lythron\", che significa sangue, probabilmente per il colore dei suoi fiori...\r\nI suoi fiori sono impollinati da insetti dalla lingua larga, come farfalle e api. \r\nUna sola pianta può arrivare a dare in un anno tre milioni di semi, che si spargono attraverso il vento e l’acqua. E’ infestante e molto difficile da sradicare una volta insediatasi. \r\nSi pensa che la sua diffusione su scala mondiale sia dovuta alla terra e all’acqua utilizzate per zavorrare le navi.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003065&codigo=3065&pag=1&texto=Lythrum%20salicaria','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003065&codigo=3065&pag=1&texto=Lythrum%20salicaria','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=648',NULL,NULL,NULL), +(25,'ZM_25_mentha003193.jpg','ZM_25_mentha003193.jpg','Mentha suaveolens',NULL,'Menta','Menda','Menta','mastranzo, hierbabuena bastarda, matapulgas, mentrasto','batana, astamenda, astobatana, kukusobelar, mendeza, txortaloa, ardi-belar, erraldo-belar','Menta a foglie rotonde','Del griego minthê proviene la palabra latina mentha. Es, según parece, una de las hierbas de uso más antiguo que sigue utilizándose en la actualidad, ya que se conoce por lo menos desde hace 4.000 años. Según la mitología griega, Perséfone convirtió una ninfa en esta planta.\nLos egipcios la utilizaban en rituales funerarios. Los romanos la usaban para reforzar la inteligencia y las casas donde se apreciaba su olor se tenían por hospitalarias. En la Edad Media se valían de ella contra las heridas bucales, mordiscos de perro y contra los insectos, así como para blanquear los dientes y evitar que se cuajara la leche.\nLas ratas y ratones no gustan de su olor, por lo que se solía poner junto a los almacenes de semillas, para alejar los roedores.\nComo otras muchas plantas del mismo genero, se utiliza como hierba medicinal para curar muchos males.\nCon las hojas se hace una gelatina, y sirve para dar sabor en muchas recetas, por ejemplo en el cuscús. También se utiliza para hacer tisanas y endulzar ensaladas. Combina bien con el tomate y la berza.\nEl extracto de hojas de menta se puede usar como loción antimosquitos.\nEl aceite de menta se utiliza como insecticida sostenible y ecológico contra abejas, avispas, hormigas y escarabajos.\nEn algunos lugares se \"barrían\" los rincones de las habitaciones con un ramo de menta que después se clocaba bajo la cama para alejar las pulgas, de ahí que también se la denomine matapulgas y reciba, entre otros nombres vascos, el de kukusobelar.','Grekoko minthê hitzetik dator latineko mentha. Egundo erabiltzen den landare izen zaharrenetakoa omen, 4.000 urte behintzat baditu, nonbait. Mitologia grekoan Persefonek landare honetan bihurtu zuen ninfa bat zen.\nEgiptoarrek hileta errituetarako erabiltzen zuten. Erromatarrentzat, inteligentzia areagotzeko erabilgarriak ziren eta etxeetako menda usainak abegikortasuna adierazten zuen. Erdi Aroan, ahoko zauri, zakur hozkada eta intsektuen aurka erabiltzen zen eta baita hortzak zuritzeko eta baita esnearen gatzatzea ekiditeko ere.\nArratoi eta saguek ez dute mendaren usaina gogoko, eta horregatik karraskariak hazi biltegietatik urrun mantentzeko erabili izan da.\nGenero honetako beste landare guztiak bezala, etxeko sendagai bezala erabiltzen da gaitz askoren aurka.\nHostoekin gelatina bat egiten da eta baita plater askori zapore eman ere, adibidez kus-kusari. Tea egiteko ere erabiltzen da eta baita entsaladak gozatzeko ere. Tomate eta azarekin ondo uztartzen da.\nMenda hostoen estraktua eltxoen aurkako lozio bezala erabil daiteke\nMenda olioa intsektizida jasangarri edo ekologiko bezala erabiltzen da, erle, liztor, txingurri eta kakalardoen aurka.\nEuskal Herriko zenbait lekutan, sorta bat hartu eta logelatako zoko guztiak berarekin pasatzen ziren eta gero ohepean utzi, arkakusoak uxatzeko. Horregatik kukuso-belarra.','Dal greco minthê proviene la parola latina mentha. A quanto sembra è una delle erbe di uso più antico che si utilizza ancora oggi, dato che è conosciuta da almeno 4.000 anni. Secondo la mitologia greca Persefone convertì una ninfa in questa pianta. Gli egizi la utilizzavano nei rituali funebri. I romani per rafforzare l’intelligenza e le case dove il suo odore era apprezzato erano considerate ospitali. Durante il Medio Evo se ne servivano contro le ferite della bocca, morsi di cane e contro gli insetti, così come per sbiancare i denti ed evitare che il latte cagliasse.\r\nA topi e ratti il suo odore non piace, per questo si era soliti metterla nei magazzini delle semenze, per allontanare roditori.\r\nCome altre dello stesso genere si utilizza come erba medicinale per curare molte malattie.\r\nDalle foglie si può fare una gelatina che serve per insaporire numerose ricette, ad esempio il cous-cous. Si utilizza anche per fare delle tisane e addolcire le insalate. Si sposa bene con il pomodoro e la verza.\r\nL’estratto delle foglie di menta può essere usato come lozione antizanzara.\r\nL’olio di menta si utilizza come insetticida sostenibile ed ecologico contro api, vespe, formiche e scarafaggi.\r\nIn alcune zone un ramo di menta veniva passato come una scopa negli angoli della casa e in seguito si metteva sotto il letto per allontanare le pulci, da cui le deriva il nome di uccidi pulci e, tra gli altri nomi baschi, quello di kukusobelar.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003193&codigo=3193&pag=1&texto=Mentha%20suaveolens','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003193&codigo=3193&pag=1&texto=Mentha%20suaveolens',NULL,NULL,NULL,NULL), +(26,'ZM_26_narcissus003113.jpg','ZM_26_narcissus003113.jpg','Narcissus bulbocodium','Narcissus turgidus','Narciso','Lilipa','Narciso','trompeta de Medusa, calzas de cuco','txutxupraka , anbulo gaiztoa, narkiso',NULL,'El nombre de \"narcissus\" proviene de una antigua lengua persa y está relacionado con nargesse, ojo. En la mitología griega, la ninfa Eco, desesperada por el rechazo del altivo y petulante Narciso, hace un ruego a Némesis, diosa de la venganza. Narciso se arrodilla a la orilla de un río para ver mejor su imagen reflejada en el agua: enamorado de su propia imagen, quedó preso en aquella posición, mirándose a sí mismo hasta morir. En aquel mismo sitio, de su sangre nació el la flor narciso, inclinada hacia tierra. \nBulbocoium proviene de los términos griegos bôlbôs, bulbo, y kodion, lana. \nEn Europa existen unas 40 especies de narciso. La flor, muy estimada por su forma y su color, es muy utilizada en jardinería y floristería. Es de las primeras flores tras el invierno en montes y bosques, donde de vez en cuando crea paisajes sorprendentes.',' \"Narcissus\" Pertsiako hizkuntza zahar batetik dator. Nargesse, begia, zenaren historiari lotua. Greziar mitologian Écho ninfak, Narcissus harroputz handiustearen arbuioarekin etsita, mendekuaren jainkosa Nemesisi erregu bat bidaltzen dio. Narcissus, erreka batean ikusten duen bere islaren aurrean belaunikatzen da. Bere buru-estimu ikaragarriak kateatuta, hantxe geldituko da bere imajinari begira hil arte. Hil zen hartantxe bere odoletik sortu zen nartziso lorea, behera makurtua. \nBulbocoium, grekoko bôlbôs, erraboila, eta kodion, artile, hitzetatik dator. \nEuropan 40 lilipa espezie inguru dira. Oso lore erabilia da lorategietan, eta moztuta saltzeko, dituen kolore eta formagatik estimatua. Mendi eta basoetan, neguaren amaieran, sasoi berriaren atarian lehenengoetako lorea da, zenbaitetan paisaia harrigarriak sortuz.','Il nome di \"narcissus\" proviene da un’antica lingua persiana ed è relazionato con \"nargesse\", occhio. Nella mitologia greca, la ninfa Eco, disperata per il rifiuto dell’altezzoso e petulante Narciso, fa una preghiera a Némesis, dea della vendetta. Narciso si inginocchia sulla sponda di un fiume per guardare meglio la sua immagine riflessa nell’acqua: innamorato di se stesso, resta rapito in quella posizione, guardando se stesso fino a morirne. In quello stesso punto dal suo sangue nacque il fiore narciso, inclinato verso il basso. \r\nBulbocoium proviene dai termini greci bôlbôs, bulbo, y kodion, lana. \r\nIn Europa esistono circa 40 diverse specie di narciso. Il fiore, molto apprezzato per la forma e il colore, è molto utilizzato nel giardinaggio e nella floricultura. E’ uno dei primi fiori a sbocciare dopo l’inverno nei monti e nei boschi, dove a volte crea dei paesaggi sorprendenti.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003113&codigo=3113&pag=1&texto=Narcissus%20bulbocodium','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003113&codigo=3113&pag=1&texto=Narcissus%20bulbocodium','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=168','BU_26_Narcissus_bulbocodium.jpg','BU_26_Narcissus bulbocodium_c.jpg',NULL), +(27,'ZM_27_oxalis003191.jpg','ZM_27_oxalis003191.jpg','Oxalis acetosella','Oxys pliniana','Aleluya','Barrabas belarra','Acetosella','aleluya, pan de cuclillo, vinagrillo, platanillo.','basoetako mingotsa, ahago, ahagorri, andera-belar, andera-garratz, arbi-azal, azanun, basoetako murigatsa, belar garratza, gazi, hiruorri, mongots, irorri mingatz, irorri minkaitz, matxin-belar, matxin garratz, mineta, mineta, mingarratz, mingots, ozpin-belar, pago andereke,pin-belar, txomin-belar','Acetosella dei boschi, Pane degli angeli, Pancuculo, Trifoglio acetoso.','Es del género que significa oxys (duro) y hals (sal). Acetosella proviene de acitum, vinagre, por la acidez de sus hojas.\nLa forma de sus hojas hace que a menudo se la confunda con el trébol, por lo que es habitual regalarla el día de San Patricio. De noche, así como cuando llueve, las hojas y las flores tienden a recogerse. También se le recogen las hojas los días de fuerte calor veraniego, para protegerse de los rayos de sol más fuertes. Quien repare en ello podrá adivinar que se anuncia tormenta.\nEl zumo que se obtiene de sus hojas se ha utilizado industrialmente para hacer quitamanchas contra la tinta y el óxido, también como desincrustante en los radiadores de los automóviles y para limpiar otros metales.\nHasta la Edad Media se utilizaba para dar sabor a sopas y ensaladas, a modo de vinagre. Se puede hacer un refresco parecido a la limonada con sus hojas. Sus bulbos, puestos a secar, también resultan sabrosos.','Generoa oxys (gogor) eta hals-etik (gatza) eratorria da. Acetosella, acitum, ozpinetik dator, hostoek duten garraztasunagatik.\nHostoek duten formagatik, askotan hirustarekin nahasten da eta horregatik St Patrick eguneko opari da. Gauez eta euria ari duenean, hosto eta loreak uzkurtu egiten dira. Udako egun beroenetan ere, hostoak biltzen ditu, eguzki izpi indartsuenak ekiditearren. Hostoak biltzen hasten denean, ekaitza datorrela iragarriko dio begirale aztiari.\nHostoetatik ateratako zukua, tinta eta herdoil orbanak kentzeko produktuak egiteko erabili izan da industrian. Baita autoen erradiadoreetan desinkrustante bezala, eta beste metal batzuk garbitzeko.\nErdi Aroa arte zopa eta entsaladei zaporea emateko erabiltzen zen, ozpina bailitzan. Hostoetatik edari freskagarri bat atera daiteke, limoizkoaren antzekoa. Lehortzen utzitako erreboilak ere gozoak dira.','E’ del genere che significa oxys (duro) e hals (sale). Acetosella proviene da acitum, aceto, per l’acidità delle sue foglie.\r\nLa forma delle foglie la fa spesso confondere con il trifoglio, per cui è usuale regalarla il giorno di San Patrizio. Di notte e quando piove le foglie e i fiori si ritirano. Questo accade, per le foglie, anche durante le giornate più calde dell’estate, per proteggersi dai raggi solari più forti. Chi si accorge del movimento potrà indovinare che si annuncia mal tempo.\r\nIl succo che si ottiene dalle sue foglie è stato utilizzato a livello industriale per produrre smacchiatori contro inchiostro e ossido, e come disincrostante nei radiatori delle macchine e per la pulizia di altri metalli. \r\nFino al Medio Evo è stato utilizzato per insaporire le zuppe e le insalate, alla maniera dell’aceto. Con le sue foglie si può fare una bibita fresca simile alla limonata. Anche i suoi bulbi, fatti seccare, risultano saporiti.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003191&codigo=3191&pag=1&texto=Oxalis%20acetosella','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003191&codigo=3191&pag=1&texto=Oxalis%20acetosella','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=230&Pagina=335','BU_27_Oxalis_ acetosella.jpg','BU_27_Oxalis_ acetosella_c.jpg',NULL), +(28,'ZM_28_pinguicula003115.jpg','ZM_28_pinguicula003115.jpg','Pinguicula grandiflora','Pinguicula grandiflora','Grasilla','Muki-belarra','Erba-unta',NULL,'ametz-belarra, mokobelarra',NULL,'La particularidad de esta planta radica, además de en sus llamativas flores, en la mucosidad que tiene sobre las hojas, tal y como indica su nombre vasco (mukibelarra). Es planta carnívora, mejor dicho, insectívora. De hecho, la mucosa cumple esa función: atrapar los insectos que se posan sobre las hojas extendidas por el suelo, ya que estas hojas se pliegan sobre sí mismas desde los lados hacia el interior y digieren el insecto que ha quedado preso. También expele un fuerte bactericida que impide que el insecto se pudra mientras lo digiere. Este efecto bactericida es conocido de antiguo, puesto que se utilizaban las hojas de grasilla para ayudar a curar heridas del ganado. En el norte de Europa -Noruega, Suecia...- estas hojas se usaban para cuajar la leche.\nSe suele hallar en los rincones húmedos y en las orillas de las regatas.\n','Lore deigarriak emateaz gain, hostoen gainean izaten duen mukiak ematen dio berezitasuna landare honi, baita euskarazko izena ere. Landare haragi-jalea, edo hobe esan intsektu-jalea da. Horretarako du mukosa, lur gainean zabalduta dituen hostoen gainetik igarotzen diren intsektuak mukian itsatsita harrapatu, ondoren hostoak bi ertzetatik erdialdera bildu eta liseritzeko. Bakterizida indartsu bat ere jariatzen du, mukian harrapatutako intsektuak liseri artean usteldu ez daitezen. Bakterizida hau ezaguna izan da, aziendari zauriak sendatzen laguntzeko muki-belarraren hostoak jartzen bai zitzaizkien. Europako iparraldean -Norvegia, Suedia...- hosto hauek esnea gatzatu edo mamitzeko erabiltzen da\nZoko hezeetan eta erreka bazterretan izaten da.','La particolarità di questa pianta risiede, oltre che nei suoi notevoli fiori, nella mucosità delle foglie, così come indica il suo nome basco (mukibelarra). E’ una pianta carnivora, o per meglio dire, insettivora. Nella pratica è la mucosa a compiere questa funzione: intrappolare gli insetti che si posano sopra le foglie stese sul suolo con le foglie che si ripiegano su se stesse dai lati verso l’interno digerendo l’insetto rimasto intrappolato. Espelle anche un forte battericida che impedisce che l’insetto imputridisca durante la digestione. Questo effetto battericida è conosciuto fin dai tempi antichi, quando si utilizzavano le foglie di erba-unta per aiutare a curare le ferite del bestiame. Nel nord dell’Europa -Norvegia, Svezia...- queste foglie erano utilizzate per cagliare il latte.\r\nDi solito si trova in angoli umidi e sulla sponda dei rigagnoli.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003115&codigo=3115&pag=1&texto=Pinguicula%20grandiflora','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003115&codigo=3115&pag=1&texto=Pinguicula%20grandiflora','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=257','BU_28_Pinguicula_lusitanica2.jpg','BU_28_Pinguicula_lusitanica2_c.jpg',NULL), +(29,'ZM_29_potentilla003069.jpg','ZM_29_potentilla003069.jpg','Potentilla erecta','Potentilla erecta','Tormentilla','Zazporria','Tormentilla','sieteenrama',NULL,NULL,'El nombre de sieteenrama se debe a su hoja, que se divide en siete. \nSu gruesa raíz sirve para hacer una loción contra la diarrea. Los marinos del siglo XVIII la apreciaban mucho.\nEl nombre de potentilla le viene del latín \"potentia\" por su gran fuerza. Antiguamente también se le denominaba Tormentilla porque era frecuente utilizarla contra el dolor de muelas. \nSe emplea en cosmética para la elaboración de cremas, jabones, desodorantes, etc. \nEn casos de gran necesidad se ha llegado a comer su raíz. \nAsimismo, la raíz de ha usado también para teñir el cuero de rojo.\nHabita en suelos ácidos, y por ello resulta buena indicadora de la presencia de este tipo de suelos.\n','Zazpitan banatutako hostoa du, hortik zazporria izena. \nZain lodikotearekin beherakoa gelditzeko lozio bat egiten da. XVIII mendeko itsasgizonek fede handia zioten.\nPotentilla izena, sendagai bezala duen indarragatik datorkio, latineko \"potentia\"-tik. Lehen Tormentilla deitzen zitzaion, haginetako mina kentzeko ere usu erabiltzen bai zen. \nKosmetikan, kremak, xaboiak, desodoranteak etab. egiteko enplegatzen da. \nPremia izanez gero jan ere egin da sustraia.\nSustrai hau bera, larrua gorriz tindatzeko ere erabili izan da.\nLur azidoetan bizi da, eta lur mota hau non denaren adierazle ona da.\n','Il nome castigliano di sieteenrama è dovuto alla forma della sua foglia, che si divide in sette. \r\nDalla sua grossa radice si ricava uno sciroppo contro la diarrea. I marinai del XVIII secolo la apprezzavano molto.\r\nIl nome di potentilla le viene dal latino \"potentia\", per la sua grande forza. Anticamente era chiamata anche Tormentilla per il suo frequente utilizzo contro il mal di denti. \r\nSi utilizza come cosmetico per la produzione di creme, saponi, deodoranti, ecc. \r\nIn casi di necessità estrema si è arrivati a mangiarne la radice. \r\nE da sempre la radice è stata utilizzata per tingere il cuoio di rosso.\r\nE’ un buon indicatore dei suoli acidi data la sua predisposizione per crescere su questo tipo di terreni.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003069&codigo=3069&pag=1&texto=Potentilla%20erecta','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003069&codigo=3069&pag=1&texto=Potentilla%20erecta','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=631',NULL,NULL,NULL), +(30,'ZM_30_potentilla003145.jpg','ZM_30_potentilla003145.jpg','Potentilla reptans','Potentilla reptans','Tormentilla','Zaingorri bostorria ','Erba pecorina','cincoenrama','antzarra-belarra, bostorria, zangorri, zingorri, bostosto','Cinquefoglie comune, \r\nSpillabuco','Tanto el nombre castellano como el vasco coinciden en describir esta planta y su emparentada la sietenrama (Potentilla erecta): una tiene ramas divididas en siete hojas, y ésta las tiene en cinco.\nPotentilla proviene de potentia (por su poder como hierba medicinal) e illa (diminutivo). Es decir, es una pequeña flor de gran poder curativo. Reptans se refiere a su cualidad de extenderse sobre el suelo, no en altura.\nLas flores quedas semicerradas en días nublados, y totalmente cerradas de noche. Y así se produce la autofecundación, ya que las anteras tocan los estigmas.\nLas hojas tiernas son apropiadas como condimento de ensalada.\nLa cincoenrama es ingrediente de muchas cremas antiarrugas.\n','Euskal izenek gehienetan badute izana ere, eta kasu honetan argia da. Zazpiorriak (Potentilla erecta) zazpitan banatutako hostoak dituen eran, zaingorri bostorriak bostetan ditu banatuak.\nPotentilla hitzaren jatorria, potentia (senda belar bezala duen indarragatik) eta illa (diminutiboa) hitzak dira. Hau da, ezaugarri sendagarri handia lore txikian. Reptans bere lur gainean zabaltzeko joeragatik.\nLoreak erdi itxita geratzen dira eguraldi lainotsuarekin eta guztiz itxita gauean. Honela autoernalketa gertatzen da, anterek estigmak ukitzen dituztelako.\nHosto berriak entsaladetarako osagai bezala egokiak dira.\nZimurren aurkako krema askoren osagaietako bat da bostorria.','Sia il nome castigliano che quello basco coincidono nel descrivere questa pianta e la sua parente la tormentilla (Potentilla erecta): quest’ultima ha i rami divisi in sette foglie mentre la prima solo in cinque.\r\nPotentilla viene da potentia (per i suoi poteri curativi come erba medicinale) e illa (diminutivo). In poche parole, un piccolo fiore dall’enorme potere curativo. Reptans si riferisce alla sua propensione ad estendersi sul terreno e non in altezza.\r\nNelle giornate nuvolose i fiori restano semichiusi per poi chiudersi completamente la notte. E’ così che si produce l’autofecondazione, perché le antere toccano gli stigmi.\r\nLe foglie tenere sono indicate per arricchire le insalate.\r\nLa cinquefoglie è un ingrediente di molte creme antirug','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003145&codigo=3145&pag=1&texto=Potentilla%20reptans','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003145&codigo=3145&pag=1&texto=Potentilla%20reptans','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=229&Pagina=630','BU_30_Potentilla_reptans.jpg','BU_30_Potentilla_reptans_c.jpg',NULL), +(31,'ZM_31_primula003105.jpg','ZM_31_primula003105.jpg','Primula vulgaris+Primula veris','Primula suaveolens+ Primula veris','Primavera','San Jose lorea','Primula','flor de primavera, verbásculo, gordolobillo, vellorita de oro, flor de San José','San Jose lore goiztiarra, udaberri lore goiztiarra, bedats lilia, bitxileta, ostaiska, ostorika, pitxilindra, udaberri lorea,\n\nLatinezko primus izenak udaberriko lehenengoa adierazten du, udaberrian lehen loratzen dena alegia. \nMitologian, Bertha jainkosak umeak bere jauregi magikora erakartzen zituen San Jose lore ederrak erakutsiz.\nErabilera zabala du sukaldaritzan. Hosto berriak, gordinik edo prestatuta jan daitezke, baita zopen gehigarri bezala ere. Uki latza izanagatik zapore arina du. Loreak entsaladetarako gehigarri bezala erabiltzeko egokiak dira eta baita barazki bezala ere. Ireki berritan jasotako loreak, ura eta azukretan hartzituta ardo goxo bat egiten da. Hosto zein loreekin sirope eta teak egin litezke. \nHaziekin olioa egiten da. Olio hau oso erabilia da sukaldaritzan. Gainera, ezaugarri terapeutiko asko ditu, zenbait azido graso eta omega 6 famatua dituelako. Primula olioa lagungarria da biho','Primavera, Occhio di civetta, Primula odorosa','El nombre latino de primus se refiere a que es la primera flor de primavera, es decir, a la primera que florece. \nEn mitología, la diosa Bertha atraía a los niños a su palacio mágico enseñándoles estas flores.\nEn gastronomía tienen bastantes usos. Las hojas tiernas se pueden consumir crudas o cocinadas, así como condimento de sopas. Pese a su tacto algo áspero, el sabor es ligero. Las flores son adecuadas como ingrediente de ensaladas, o como verdura. Las flores que se recogen recién abiertas se pueden mezclar con agua y azúcar y realizar un vino dulce con ellas. Las hojas y flores también sirven para hacer siropes y tisanas. \nCon las semillas se realiza un aceite muy utilizado en la cocina. También tiene muchas propiedades terapéuticas, ya que posee ácidos grasos y el famoso omega 6. El aceite de prímula ayuda a evitar las enfermedades cardíacas, entre otras, también a aumentar las defensas y a regular las menstruaciones o paliar la menopausia.','San Jose lore goiztiarra, udaberri lore goiztiarra, bedats lilia, bitxileta, ostaiska, ostorika, pitxilindra, udaberri lorea,\n\nLatinezko primus izenak udaberriko lehenengoa adierazten du, udaberrian lehen loratzen dena alegia. \nMitologian, Bertha jainkosak umeak bere jauregi magikora erakartzen zituen San Jose lore ederrak erakutsiz.\nErabilera zabala du sukaldaritzan. Hosto berriak, gordinik edo prestatuta jan daitezke, baita zopen gehigarri bezala ere. Uki latza izanagatik zapore arina du. Loreak entsaladetarako gehigarri bezala erabiltzeko egokiak dira eta baita barazki bezala ere. Ireki berritan jasotako loreak, ura eta azukretan hartzituta ardo goxo bat egiten da. Hosto zein loreekin sirope eta teak egin litezke. \nHaziekin olioa egiten da. Olio hau oso erabilia da sukaldaritzan. Gainera, ezaugarri terapeutiko asko ditu, zenbait azido graso eta omega 6 famatua dituelako. Primula olioa lagungarria da bihotzeko gaixotasunak ekiditeko, defentsak indartzeko eta emakumeetan hilekoa erregulatzeko edo menopausian laguntzeko, besteren artean.','Il nome latino di primus si riferisce al suo essere il primo fiore di primavera, cioè la prima a fiorire. \r\nNella mitologia la Dea Bertha attirava i bambini nel suo palazzo magico mostrandogli questi fiori.\r\nNella gastronomia ha diversi utilizzi. Le foglie tenere si possono consumare crude o cotte, anche come condimento per le zuppe. Nonostante la sensazione tattile vagamente ruvida, il sapore è leggero. I fiori che si raccolgono appena dischiusi si possono mescolare con acqua e zucchero per farne un vino dolce. Le foglie e i fiori servono anche per sciroppi e tisane. \r\nDai semi si ottiene un olio molto utilizzato in cucina. Ha anche molte proprietà terapeutiche, dato che possiede acidi grassi e il famoso omega 6. L’olio di primula aiuta tra gli altri a prevenire problemi cardiaci, ad aumentare le difese immunitarie e a regolarizzare le mestruazioni o alleviare gli effetti della menopausa.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003105&codigo=3105&pag=1&texto=Primula%20vulgaris','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003105&codigo=3105&pag=1&texto=Primula%20vulgaris','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=228&Pagina=231','BU_31_Primula_vulgaris.jpg','BU_31_Primula_vulgaris_c.jpg',NULL), +(32,'ZM_32_smilax003077.jpg','ZM_32_smilax003077.jpg','Smilax aspera','Smilax aspera','Zarzaparrilla','Endalaharra','Salsapariglia',NULL,NULL,'Stracciabraghe Rovo cervone, Rovo cerrone','Planta trepadora de los sotobosques. Sus fuertes espinas le permiten aferrarse a las plantas que crecen a su lado. Presenta diformismo sexual. En otoño destaca la planta hembra por su poco follaje y sus racimos colgantes de frutos rojos y brillantes.\nLos nuevos brotes de primavera se comen como los espárragos.\nCon sus raíces se fabrica la bebida del mismo nombre, la zarzaparrilla. Tiene su origen en España y según parece está en el origen de la coca-cola, que aún la tiene como ingrediente. Durante el siglo XIX fue uno de los refrescos más conocidos. \nSe ha utilizado contra la sífilis y otros muchos males. \nContiene saponinas, que actúan como jabón y son tóxicas. Parece que son estos componentes los que defienden la planta de los hongos. \nEl nombre de zarzaparrilla se compone de zarza -del árabe \"saras\"- y de \"parrilla\", que hace referencia a su calidad de trepadora.\n','Basoetako sastraketan landare igokaria da. Arantza ederrez heltzen die aldameneko landareei. Landare arrak eta emeak bereiziak dira. Udazkenean emea nabarmena da, hostajea soildu eta fruitu gorri distiratsuz osatutako mordo zintzilikarioak erakusten bai ditu.\nUdaberriko puntta berriak zainzurien gisara jaten dira.\nBere sustraiekin egiten da zarzaparrilla deituriko edaria. Espainian du jatorria eta, dirudienez Coca-cola edariaren sorburu izan eta oraindik ere osagai du. XIX mendean freskagarri ezagunenetakoa izan zen. \nSifilia eta gaitz ugariren aurka erabili izan da. \nSaponinak ditu, xaboiaren lana egiten dute eta era berean toxikoak dira. Dirudienez, osagai honek onddoen erasoetatik babesten du landarea. \nZarzaparrilla izena, sasia adierazten duen \"saras\" arabeak eta igokaria esan nahi duen \"parrilla\"-k osatzen dute.\n','Pianta rampicante dei sottoboschi. Le sue forti spine le permettono di afferrarsi alle piante che le crescono accanto. Presenta disformità sessuale. In autunno la pianta femmina si distingue per il suo raro fogliame e i suoi grappoli pensili di frutti rossi e brillanti.\r\nI nuovi germogli primaverili si mangiano come gli asparagi.\r\nCon le sue radici viene fabbricata l’omonima bevanda, la salsapariglia. La sua origine è spagnola e a quanto sembra è stata uno degli ingredienti originari della coca-cola che ancora la annovera tra i suoi ingredienti. Durante il XIX secolo è stato uno dei rinfreschi più conosciuti. \r\nE’ stata utilizzata contro la sifilide e molte altre malattie. \r\nContiene saponine, che funzionano come il sapone e sono tossiche. Sembra che proprio questi componenti difendano la pianta dai funghi. \r\nIl nome di salsapariglia si compone di salsa –dall’arabo \"saras\"- e di \"pariglia\", che si riferisce al suo carattere di rampicante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera','http://bibdigital.rjb.csic.es/spa/Libro.php?Libro=231&Pagina=121','BU_32_Smilax_aspera.jpg','BU_32_Smilax _aspera_c.jpg',NULL), +(33,'ZM_33_tamarix003071.jpg','ZM_33_tamarix003071.jpg','Tamarix sp',NULL,'Taray','Milazka frantsesa ','Tamerice',NULL,NULL,NULL,'Es una planta que prefiere el agua y a la que no le molesta la sal, por lo que es habitual hallarla en la costa y en las rías. Si no encuentra agua en superficie, es capaz de hundir profundas raíces en su busca. \nAcumula en sus hojas la sal diluida en el agua de los suelos profundos. Por ello, el nivel de sal de las hojas que caen al suelo perjudica a las plantas vecinas y elimina su competencia. Aprovechando esta cualidad, se utiliza para limpiar las tierras salinas y plantarla en sitios donde hay pocas plantas. \nExpande sus semillas, aunque también es capaz de reproducirse produciendo brotes y enraizando las ramas que tocan el suelo. \nSe acostumbra bien al fuego, por lo que reaparece con facilidad en los lugares quemados. \nAsimismo, es buena para hacer leña de quemar y madera de carpintería. \nA causa de su follaje peculiar y llamativas floraciones, es muy habitual su uso en jardinería.\n','Ura maite du eta gatzak kalterik eragiten ez dionez itsasertzean eta errioetan bizi da. Bertan ez badu ere, ura bilatzen iaioak diren sustraiak luzeak hondoratzen ditu. \nLur sakonetako gatza uretan nahasita hartu eta hostoetan pilatzen du. Hostoak lurrera erortzean gatzak aldameneko landareak kaltetu eta konpetentzia kentzen du. Gaitasun hau baliatuz, lur gaziak garbitzeko eta beste landare gutxi bizi daitezkeen sailak landatzeko erabiltzen da. \nHaziak zabaltzen ditu, baina sustraietatik ematen dituen altsumak sortuz eta lurra ikuitzen duten adarrak itsatsiz ere ugaltzen da. \nSuteetara ongi egokituta daude eta erretako sailetan erraz berritzen da. \nEra berean, bere egurra sutarako eta zurgintzarako ona da. \nHostaje berezia eta loraldi deigarria dituenez, lorategi eta parkeetan erruz erabiltzen da.\n','E’ una pianta che preferisce l’acqua e alla quale il sale non crea problemi, per questo è abituale trovarla sulla costa o nei fiumi. Se non trova l’acqua in superficie è capace di sviluppare delle profonde radici per cercarla. \r\nNelle sue foglie accumula il sale diluito nell’acqua dei suoli profondi. Per questo, il livello di sale delle foglie che cadono al suolo pregiudica le piante limitrofe e ne elimina la concorrenza. Approfittando di questa qualità, si utilizza per pulire le terre saline e piantarla in luoghi dove ci sono poche piante. \r\nEspande i suoi semi ma è anche capace di riprodursi generando germogli e radicando i rami che toccano il suolo. \r\nSi abitua bene al fuoco e per questo riappare con facilità in terreni incendiati. \r\nInoltre, è buona per fare legna da ardere e come materiale da falegnameria. \r\nA causa del suo fogliame peculiare e della appariscente fioritura, è molto usata nel giardinaggio.','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003071&codigo=3071&pag=1&texto=Tamarix','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003071&codigo=3071&pag=1&texto=Tamarix',NULL,NULL,NULL,NULL), +(34,'ZM_34_taraxacum003207.jpg','ZM_34_taraxacum003207.jpg','Taraxacum officinale',NULL,'Achicoria amarga','Txikori-belarra','Taràssaco comune','diente de león, panadero, áster','aitañi-lili, galkidea, gardanbera, lumabelar, txuntxumela','Dente di leone, Soffione, Piscialetto','Su nombre proviene de las palabras persas, recogidas a través del árabe, talkh chakok, con el significado de hierba amarga. También se le atribuye la etimología griega taraxos, mal, enfermedad, y akon, remedio.\nEsta planta es símbolo de Santa Brígida. Su savia lechosa sirve para curar verrugas, y se dice que incluso también para alimentar terneros y corderos.\nTiene un uso muy extendido en gastronomía, y es buena fuente de vitaminas A, B1, B2, B3, C y E. Tiene más hierro y calcio que las espinacas.\nLas hojas se pueden comer crudas o cocinadas. Normalmente se han comido en ensalada, pese a ser un poco amargas (menos en invierno). Si se les hace crecer sin luz lo son menos, pero entonces también tienen menos minerales y vitaminas.\nLas flores sin abrir se pueden utilizar en ensaladas, para hacer buñuelos o, conservadas en vinagre, como alcaparras.\nEn algunos sitios se hacen vinos y cervezas con ella. \nEl café que se hace de sus raíces (¡sin cafeína!) o el té que se hace de sus hojas es bueno para curar enfermedades del hígado.\nEl agua destilada hecha con sus lígulas sirve para aclarar la piel y, especialmente, para eliminar arrugas.\nEs un muy buen diurético, ya que su alta cantidad de sales de potasio sustituye las sales de este tipo que se pierden con otros diuréticos.\nLas flores de esta planta son uno de los ingredientes de los polvos que se utilizan para acelerar el compostaje.\nHace poco una compañía de combustibles ha comenzado a modificar sus refinerías para producir un tipo de bioetanol hecho con esta achicoria.\nEl gas etileno que desprende esta planta impide el desarrollo de las plantas de los alrededores, así como la maduración demasiado temprana de sus frutos.\nPuede extender sus raíces hasta un metro de profundidad y por tanto valerse de los nutrientes más profundos. Es una magnífica colonizadora tras los incendios por el gran número de semillas que se encuentran en el suelo. \nEstas semillas pueden permanecer en una situación como de letargo hasta 9 años.','Pertsieratik arabierara pasa eta jasoa, belar garratza adierazten duten talkh chakok hitzetatik. Aipatzen da, baita ere grekoen taraxos, gaitza, eta akon, sendagai, hitzetatik ote datorren.\nLandarea Santa Brigidaren zeinua da. Esne itxurako izerdiak, garatxak kentzeko balio du eta esaten dutenez txekor eta arkumeak elikatzeko egokia da.\nOso erabilpen zabala du sukaldaritzan eta A, B1, B2, B3, C eta E bitaminen iturri ona da. Espinakek baino burdin eta kaltzio gehiago du.\nHostoak gordinik edo prestatuta jan daitezke. Normalki entsaladan jan izan dira, nahiz eta pixka bat mingotsak izan (neguan gutxiago). Argirik gabe hazten utzi ezkero ez dira hain mingotsak baina ez dute mineral eta bitamina kopuru bera.\nIreki gabeko loreak entsaladan, txigorrak (buñuelos) egiteko eta ozpinetan gordez gero kapar (alcaparra) bezala erabil daitezke.\nZenbait lekutan ardo eta garagardoa egiten da berarekin.\nSustraiekin egindako kafeak (kafeina gabea!) edo hostoekin egindako teak gibeleko gaitzak sendatzeko balio du.\nLigulekin egindako ur destilatuak azala argitzeko eta bereziki zimurrak kentzeko balio du.\nDiuretiko bezala oso garrantzitsua da; duen potasio gatz kopuruagatik beste diuretikoekin galtzen diren gatz hauek ordezkatzen bai ditu.\nLandare honen loreak konpostaketa azkartzeko erabiltzen den hauts baten osagai dira.\nOrain gutxi, erregai konpainia bat bere lantegiak prestatzen ari da txikori-belarrarekin bioetanol moduko bat egiteko.\nLandare honek etileno gasa askatuz inguruko landareen garapena eragozten du, baita haien fruituen umotze goiztiarregia.\nMetro beteko sakonera arte zabal ditzake sustraiak, eta ondorioz lur sakoneko elikagaiak bereganatu.\nSuteen osteko kolonizatzaile bikaina da, lurrean egoten den hazi kopuru handiagatik. Hazi hauek 9 urte arte egon daitezke lo zorroan garatu arte.','Il suo nome viene dalle parole persiane, pervenute attraverso l’arabo, talkh chakok, il cui significato è erba amara. Le si attribuisce anche l’etimologia greca taraxos, male, infermità, e akon, rimedio.\r\nQuesta pianta è il simbolo di Santa Brigida. La sua linfa lattiginosa serve per curare le verruche e si dice che si usi anche come alimento per vitelli e agnelli.\r\nViene usata diffusamente in gastronomia ed è un’ottima fonte di vitamine A, B1, B2, B3, C y E. Contiene più ferro e calcio degli spinaci.\r\nLe sue foglie possono essere mangiate sia crude che cotte. Si sono sempre mangiate nelle insalate, nonostante risultino un po’ amare (meno in inverno). Se si fanno crescere senza luce lo sono di meno ma così contengono meno minerali e vitamine.\r\nI fiori non ancora dischiusi si possono utilizzare per le insalate, per fare frittelle o, sottaceto, come capperi.\r\nIn alcune zone dalla pianta si producono vini e birre. \r\nIl caffè che si fa dalle sue radici (senza caffeina!) o il tè che si fa dalle sue foglie sono buoni per curare le malattie del fegato.\r\nL’acqua distillata fatta con le sue lìgule serve per schiarire la pelle e in particolare per eliminare le rughe.\r\nE’ un ottimo diuretico anche grazie alla alta quantità di sali di potassio che sostituiscono i sali di questo tipo che si perdono usando altri diuretici.\r\nI fiori di questa pianta sono tra gli ingredienti della polvere che si utilizza per accelerare il processo di compostaggio.\r\nRecentemente una compagnia di combustibili ha apportato delle modifiche alle sue raffinerie per produrre bioetanolo da questa cicoria.\r\nIl gas di etilene che questa pianta sprigiona impedisce sia lo sviluppo delle piante vicine che la maturazione dei loro frutti.\r\nPuò estendere le sue radici fino a un metro di profondità ed avere accesso così ai nutrimenti più sotterranei. E’ una magnifica colonizzatrice dopo gli incendi grazie al grande numero di semi che si trovano nel suolo. \r\nQuesti semi possono resistere in uno stato letargico fino a 9 anni.','http://www.albumsiglo19mendea.net/cas/palabramasdeuna.php?nombre=Taraxacum+officinale&submit=Buscar','http://www.albumsiglo19mendea.net/palabramasdeuna.php?nombre=Adianthum+capillus+&submit=Buscar',NULL,NULL,NULL,NULL), +(35,'ZM_Adianthum_capillus_veneris_003080.jpg','ZM_Adianthum_capillus_veneris_003080.jpg','Adianthum capillus veneris',NULL,'Culantrillo de pozo','Iturri-belar arrunta','Capelvenere',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabramasdeuna.php?nombre=Adianthum+capillus+&submit=Buscar','http://www.albumsiglo19mendea.net/palabramasdeuna.php?nombre=Taraxacum+officinale&submit=Buscar',NULL,NULL,NULL,NULL), +(36,'ZM_Agrimonia_eupatoria_003183.jpg','ZM_Agrimonia_eupatoria_003183.jpg','Agrimonia eupatoria',NULL,'Hierba de San Guillermo','Usu-belarra','Agrimonia',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003183&codigo=3183&pag=1&texto=Agrimonia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003183&codigo=3183&pag=1&texto=Agrimonia',NULL,NULL,NULL,NULL), +(37,'ZM_Anacamptis_pyramidalis_003095.jpg','ZM_Anacamptis_pyramidalis_003095.jpg','Anacamptis pyramidalis',NULL,'[Allium roseum]',' [Allium roseum]','Orchide piramidale',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003095&codigo=3095&pag=1&texto=Anacamptis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003095&codigo=3095&pag=1&texto=Anacamptis',NULL,NULL,NULL,NULL), +(38,'ZM_Anemone_nemorosa_003127.jpg','ZM_Anemone_nemorosa_003127.jpg','Anemone nemorosa',NULL,'Anémona de bosque','Baso anemona','Anemone dei boschi',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003127&codigo=3127&pag=1&texto=Anemone','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003127&codigo=3127&pag=1&texto=Anemone',NULL,NULL,NULL,NULL), +(39,'ZM_Angelica_sylvestris_003204.jpg','ZM_Angelica_sylvestris_003204.jpg','Angelica sylvestris',NULL,'Angélica silvestre','Mendiko aingeru-belarra','Angelica dei boschi',NULL,NULL,'Angelica selvatica, Erba angelica',NULL,NULL,'Dicono che l’arcangelo Gabriele mostrò a un saggio come combattere la peste nera con una pianta di questo genere; da qui proviene il nome di angelica.\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.\r\n\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003204&codigo=3204&pag=1&texto=Angelica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003204&codigo=3204&pag=1&texto=Angelica',NULL,NULL,NULL,NULL), +(40,'ZM_Angelica_sylvestris_003176.jpg','ZM_Angelica_sylvestris_003176.jpg','Angelica sylvestris',NULL,'Angélica silvestre','Mendiko aingeru-belarra','Angelica dei boschi',NULL,NULL,'Angelica selvatica, Erba angelica',NULL,NULL,'Dicono che l’arcangelo Gabriele mostrò a un saggio come combattere la peste nera con una pianta di questo genere; da qui proviene il nome di angelica.\r\nIn tempi di fame e carestia è stato un alimento importante, almeno fino al XX secolo. \r\nFoglie, germogli e gambi sono un complemento aromatico per le insalate e possono essere cucinati come verdura. Gambo, foglie e semi sono ingredienti in pasticceria.\r\nLe sue radici e i suoi semi si utilizzano nella fabbricazione di liquori come il Benedictine, Vermouth, Gin, Assenzio e Chartreuse. Le prime caramelle verdi erano fatte con l’angelica.\r\nI frutti spremuti servono per eliminare i parassiti dal cuoio capelluto.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003176&codigo=3176&pag=1&texto=Angelica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003176&codigo=3176&pag=1&texto=Angelica',NULL,NULL,NULL,NULL), +(41,'ZM_Antirrhinum_003149.jpg','ZM_Antirrhinum_003149.jpg','Antirrhinum',NULL,'Antirrhinum, de jardín',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003149&codigo=3149&pag=1&texto=Antirrhinum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003149&codigo=3149&pag=1&texto=Antirrhinum',NULL,NULL,NULL,NULL), +(42,'ZM_Antirrhinum_majus_003119.jpg','ZM_Antirrhinum_majus_003119.jpg','Antirrhinum majus',NULL,'Boca de dragón','Dragoi-mutturra','Bocca di leone',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003119&codigo=3119&pag=1&texto=Antirrhinum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003119&codigo=3119&pag=1&texto=Antirrhinum',NULL,NULL,NULL,NULL), +(43,'ZM_Antirrhinum_majus_003164.jpg','ZM_Antirrhinum_majus_003164.jpg','Antirrhinum majus',NULL,'Boca de dragón','Dragoi-mutturra','Bocca di leone',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003164&codigo=3164&pag=1&texto=Antirrhinum%20majus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003164&codigo=3164&pag=1&texto=Antirrhinum%20majus',NULL,NULL,NULL,NULL), +(44,'ZM_Aquilegia_vulgaris_003160.jpg','ZM_Aquilegia_vulgaris_003160.jpg','Aquilegia vulgaris',NULL,'Aguileña','Kuku-belarra','Aquilegia comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003160&codigo=3160&pag=1&texto=Aquilegia%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003160&codigo=3160&pag=1&texto=Aquilegia%20vulgaris',NULL,NULL,NULL,NULL), +(45,'ZM_Arum_italicum_003152.jpg','ZM_Arum_italicum_003152.jpg','Arum italicum',NULL,'Comida de culebra','Suge-belar nerbiozuria','Pan di serpe',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20italicum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003114&codigo=3114&pag=1&texto=Arum%20italicum',NULL,NULL,NULL,NULL), +(46,'ZM_Asplenium_adiantum_nigrum_003085.jpg','ZM_Asplenium_adiantum_nigrum_003085.jpg','Asplenium adiantum nigrum',NULL,'Culantrillo negro','Iturri-belar beltza','Asplenio adianto-nero',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003085&codigo=3085&pag=1&texto=Asplenium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003085&codigo=3085&pag=1&texto=Asplenium',NULL,NULL,NULL,NULL), +(47,'ZM_Bellis_perennis_003081.jpg','ZM_Bellis_perennis_003081.jpg','Bellis perennis',NULL,'Maya','Basabitxilorea','Pratolina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003081&codigo=3081&pag=1&texto=Bellis%20perennis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003081&codigo=3081&pag=1&texto=Bellis%20perennis',NULL,NULL,NULL,NULL), +(48,'ZM_Blackstonia_perfoliata_003099.jpg','ZM_Blackstonia_perfoliata_003099.jpg','Blackstonia perfoliata',NULL,'Centaurea amarilla','Tentsio-belarra','Centauro giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003099&codigo=3099&pag=1&texto=Blackstonia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003099&codigo=3099&pag=1&texto=Blackstonia',NULL,NULL,NULL,NULL), +(49,'ZM_Blackstonia_perfoliata_003175.jpg','ZM_Blackstonia_perfoliata_003175.jpg','Blackstonia perfoliata',NULL,'Centaurea amarilla','Tentsio belarra','Centauro giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003175&codigo=3175&pag=1&texto=Blackstonia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003175&codigo=3175&pag=1&texto=Blackstonia',NULL,NULL,NULL,NULL), +(50,'ZM_Cakile_maritima_003154.jpg','ZM_Cakile_maritima_003154.jpg','Cakile maritima',NULL,'Cakile maritima','Cakile maritima','Ravastrello',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003154&codigo=3154&pag=1&texto=cakile','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003154&codigo=3154&pag=1&texto=cakile',NULL,NULL,NULL,NULL), +(51,'ZM_Campanula_glomerata_003096.jpg','ZM_Campanula_glomerata_003096.jpg','Campanula glomerata',NULL,'Campanilla','Ezkilalorea','Campanula agglomerata',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/esp/palabrafichadescriptiva.php?foto=003096&codigo=3096&pag=1&texto=Campanula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003096&codigo=3096&pag=1&texto=Campanula',NULL,NULL,NULL,NULL), +(52,'ZM_Campanula_patula_003169.jpg','ZM_Campanula_patula_003169.jpg','Campanula patula',NULL,'Campanilla','Ezkilalorea','Campanula bienne',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/esp/palabrafichadescriptiva.php?foto=003169&codigo=3169&pag=1&texto=Campanula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003169&codigo=3169&pag=1&texto=Campanula',NULL,NULL,NULL,NULL), +(53,'ZM_Carex_pendula_003213.jpg','ZM_Carex_pendula_003213.jpg','Carex pendula',NULL,'Espedaña','Ezpeta-belarra dilindaria\r\n Ezpeta-belarra dilindaria\r\n Ezpeta-belarra dilindaria','Carice maggiore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003213&codigo=3213&pag=1&texto=Carex%20pendula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003213&codigo=3213&pag=1&texto=Carex%20pendula',NULL,NULL,NULL,NULL), +(54,'ZM_Carlina_vulgaris_003078.jpg','ZM_Carlina_vulgaris_003078.jpg','Carlina vulgaris',NULL,'[Carlina vulgaris]','[Carlina vulgaris]','Carlina comune',NULL,NULL,' Cardo dorato',NULL,NULL,'La carlina abbonda sulle nostre montagne. Preferisce il calcare e per questo si può trovare in pascoli secchi, boschi temperati, terreni rocciosi o qualsiasi altro angolo che sia calcareo. E’ una pianta biennale: durante il primo anno dà foglie e accumula sostanze nutrienti, mentre nel successivo fiorisce tra luglio e settembre se il tempo è secco. E’ molto indicata per produrre miele, dato che è molto frequentata dalle api. \r\nSull’origine del nome Carlina ci sono opinioni diverse. Secondo quella più diffusa un angelo apparve a Carlomagno mostrandogli la radice di questa pianta; con questa riuscì a curare la malattia che tormentava la maggior parte dell’esercito con cui avrebbe dovuto conquistare Roma. A proporre questo nome è stato il famoso botanico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) nel XVI secolo. \r\nHa virtù medicinali come sudorifero e lassativo. \r\nIn Asia è stato utilizzato per fabbricare tinture.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003078&codigo=3078&pag=1&texto=Carlina%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003078&codigo=3078&pag=1&texto=Carlina%20vulgaris',NULL,NULL,NULL,NULL), +(55,'ZM_Carlina_vulgaris_003086.jpg','ZM_Carlina_vulgaris_003086.jpg','Carlina vulgaris',NULL,'[Carlina vulgaris]','(arlina vulgaris]','Carlina comune',NULL,NULL,' Cardo dorato',NULL,NULL,'La carlina abbonda sulle nostre montagne. Preferisce il calcare e per questo si può trovare in pascoli secchi, boschi temperati, terreni rocciosi o qualsiasi altro angolo che sia calcareo. E’ una pianta biennale: durante il primo anno dà foglie e accumula sostanze nutrienti, mentre nel successivo fiorisce tra luglio e settembre se il tempo è secco. E’ molto indicata per produrre miele, dato che è molto frequentata dalle api. \r\nSull’origine del nome Carlina ci sono opinioni diverse. Secondo quella più diffusa un angelo apparve a Carlomagno mostrandogli la radice di questa pianta; con questa riuscì a curare la malattia che tormentava la maggior parte dell’esercito con cui avrebbe dovuto conquistare Roma. A proporre questo nome è stato il famoso botanico toscano Andrea Cesalpino (Arezzo 06-06-1519, Roma 23-02-1613) nel XVI secolo. \r\nHa virtù medicinali come sudorifero e lassativo. \r\nIn Asia è stato utilizzato per fabbricare tinture.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003086&codigo=3086&pag=1&texto=Carlina%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003086&codigo=3086&pag=1&texto=Carlina%20vulgaris',NULL,NULL,NULL,NULL), +(56,'ZM_Centaurea_debeauxil_003222.jpg','ZM_Centaurea_debeauxil_003222.jpg','Centaurea debeauxil',NULL,'Centaurea nigra','Centaurea nigra','Spino giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003222&codigo=3222&pag=1&texto=Centaurea%20debeauxil','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003222&codigo=3222&pag=1&texto=Centaurea%20debeauxil',NULL,NULL,NULL,NULL), +(57,'ZM_Cichorium_intybus_003210.jpg','ZM_Cichorium_intybus_003210.jpg','Cichorium intybus',NULL,' Achicoria silvestre','Basatxikoria','Cicoria comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003210&codigo=3210&pag=1&texto=Cichorium%20intybus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003210&codigo=3210&pag=1&texto=Cichorium%20intybus',NULL,NULL,NULL,NULL), +(58,'ZM_Cirsium_arvense_003211.jpg','ZM_Cirsium_arvense_003211.jpg','Cirsium arvense',NULL,' Cardo','Gardua','Cardo campestre',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003211&codigo=3211&pag=1&texto=Cirsium%20arvense','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003211&codigo=3211&pag=1&texto=Cirsium%20arvense',NULL,NULL,NULL,NULL), +(59,'ZM_Cirsium_vulgare_003089.jpg','ZM_Cirsium_vulgare_003089.jpg','Cirsium vulgare',NULL,'Cirsium vulgare','Astakardua]','Cardo asinino',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003089&codigo=3089&pag=1&texto=Cirsium%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003089&codigo=3089&pag=1&texto=Cirsium%20vulgare',NULL,NULL,NULL,NULL), +(60,'ZM_Cistus_salviifolius_003206.jpg','ZM_Cistus_salviifolius_003206.jpg','Cistus salviifolius',NULL,'[Jara]',' Estrepa','Cisto femmina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003206&codigo=3206&pag=1&texto=Cistus%20salviifolius','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003206&codigo=3206&pag=1&texto=Cistus%20salviifolius',NULL,NULL,NULL,NULL), +(61,'ZM_Cistus_salviifolius_003118.jpg','ZM_Cistus_salviifolius_003118.jpg','Cistus salviifolius',NULL,' Jara','\r\n Estrepa','Cisto femmina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003118&codigo=3118&pag=1&texto=Cistus%20salviifolius','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003118&codigo=3118&pag=1&texto=Cistus%20salviifolius',NULL,NULL,NULL,NULL), +(62,'ZM_Coniza_canadensis_003189.jpg','ZM_Coniza_canadensis_003189.jpg','Coniza canadensis',NULL,'Coniza canadensis','Coniza canadensis','Saeppola canadese',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003189&codigo=3189&pag=1&texto=Coniza%20canadensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003189&codigo=3189&pag=1&texto=Coniza%20canadensis',NULL,NULL,NULL,NULL), +(63,'ZM_Crepis_sp_003187.jpg','ZM_Crepis_sp_003187.jpg','Crepis sp',NULL,'Crepis sp','Crepis sp','Crepis sp',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003187&codigo=3187&pag=1&texto=Crepis%20sp','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003187&codigo=3187&pag=1&texto=Crepis%20sp',NULL,NULL,NULL,NULL), +(64,'ZM_Daboecia_cantabrica_003171.jpg','ZM_Daboecia_cantabrica_003171.jpg','Daboecia cantabrica',NULL,' Daboecia','Ainarra kantauriarra','Daboecia cantabrica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003171&codigo=3171&pag=1&texto=Daboecia%20cantabrica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003171&codigo=3171&pag=1&texto=Daboecia%20cantabrica',NULL,NULL,NULL,NULL), +(65,'ZM_Daphne_laureola_003209.jpg','ZM_Daphne_laureola_003209.jpg','Daphne laureola',NULL,'Laureola','Garatxo-belarra','Dafne laurella',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003209&codigo=3209&pag=1&texto=Daphne%20laureola','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003209&codigo=3209&pag=1&texto=Daphne%20laureola',NULL,NULL,NULL,NULL), +(66,'ZM_Dipsacus_fullonum_003201.jpg','ZM_Dipsacus_fullonum_003201.jpg','Dipsacus fullonum',NULL,' Cardencha',' Astalarra','Scardaccione',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003201&codigo=3201&pag=1&texto=Dipsacus%20fullonum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003201&codigo=3201&pag=1&texto=Dipsacus%20fullonum',NULL,NULL,NULL,NULL), +(67,'ZM_Dryopteris_affinis_003190.jpg','ZM_Dryopteris_affinis_003190.jpg','Dryopteris_affinis',NULL,' Helecho]',' Iratzea','Felce pelosa',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003190&codigo=3190&pag=1&texto=Dryopteris%20affinis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003190&codigo=3190&pag=1&texto=Dryopteris%20affinis',NULL,NULL,NULL,NULL), +(68,'ZM_Epilubium_sp_003212.jpg','ZM_Epilubium_sp_003212.jpg','Epilubium sp',NULL,'Epilobe',' Epilobe','Garofanino d\'acqua',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003212&codigo=3212&pag=1&texto=Epilubium%20sp','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003212&codigo=3212&pag=1&texto=Epilubium%20sp',NULL,NULL,NULL,NULL), +(69,'ZM_Erica_ciliaris_003066.jpg','ZM_Erica_ciliaris_003066.jpg','Erica ciliaris',NULL,' Carrontsa','Ainarra iletsua','Erica ciliaris',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003066&codigo=3066&pag=1&texto=Erica%20ciliaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003066&codigo=3066&pag=1&texto=Erica%20ciliaris',NULL,NULL,NULL,NULL), +(70,'ZM_Erica_cinerea_003068.jpg','ZM_Erica_cinerea_003068.jpg','Erica cinerea',NULL,NULL,NULL,'Erica cinerea',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(71,'ZM_Erica_cinerea_003173.jpg','ZM_Erica_cinerea_003173.jpg','Erica cinerea',NULL,'Brezo nazareno',' Ainarra purpura','Erica cinerea',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003173&codigo=3173&pag=1&texto=ERICA%20CINEREA','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003173&codigo=3173&pag=1&texto=ERICA%20CINEREA',NULL,NULL,NULL,NULL), +(72,'ZM_Erica_lusitanica_003074.jpg','ZM_Erica_lusitanica_003074.jpg','Erica lusitanica',NULL,'Brezo portugués','Portugal txilarra','Erica lusitanica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003074&codigo=3074&pag=1&texto=Erica%20lusitanica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003074&codigo=3074&pag=1&texto=Erica%20lusitanica',NULL,NULL,NULL,NULL), +(73,'ZM_Erica_multiflora_003073.jpg','ZM_Erica_multiflora_003073.jpg','Erica multiflora',NULL,'Bruguera',' Ainarra loretsua','Erica multiflora',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003073&codigo=3073&pag=1&texto=Erica%20multiflora','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003073&codigo=3073&pag=1&texto=Erica%20multiflora',NULL,NULL,NULL,NULL), +(74,'ZM_Erica_multiflora_003073.jpg','ZM_Erica_multiflora_003073.jpg','Erica multiflora',NULL,NULL,NULL,'Erica multiflora',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL), +(75,'ZM_Erica_vagans_003170.jpg','ZM_Erica_vagans_003170.jpg','Erica vagans',NULL,'Bruco','Ainarra burusoila','Erica vagans',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003170&codigo=3170&pag=1&texto=Erica%20vagans','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003170&codigo=3170&pag=1&texto=Erica%20vagans',NULL,NULL,NULL,NULL), +(76,'ZM_Erodium_moschatum_003091.jpg','ZM_Erodium_moschatum_003091.jpg','Erodium moschatum',NULL,'[Erodium moschatum]\r\n [Erodium moschatum]',NULL,'Becco di grù aromatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003091&codigo=3091&pag=1&texto=Erodium%20moschatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003091&codigo=3091&pag=1&texto=Erodium%20moschatum',NULL,NULL,NULL,NULL), +(77,'ZM_Erodium_moschatum_003161.jpg','ZM_Erodium_moschatum_003161.jpg','Erodium moschatum',NULL,'Muscari','Muscari','Becco di grù aromatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003161&codigo=3161&pag=1&texto=Erodium%20moschatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003161&codigo=3161&pag=1&texto=Erodium%20moschatum',NULL,NULL,NULL,NULL), +(78,'ZM_Eryngium_maritimum_003079.jpg','ZM_Eryngium_maritimum_003079.jpg','Eryngium maritimum',NULL,' Cardo marino','Itsas kardoa','Calcetreppola marina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003079&codigo=3079&pag=1&texto=Eryngium%20maritimum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003079&codigo=3079&pag=1&texto=Eryngium%20maritimum',NULL,NULL,NULL,NULL), +(79,'ZM_Erythoea_ Centaurium_003195.jpg','ZM_Eupatotium_cannabium_003217.jpg','Eupatotium cannabium',NULL,'Eupatorio','Atiketa','Canapa acquatica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003217&codigo=3217&pag=1&texto=Eupatotium%20cannabium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003217&codigo=3217&pag=1&texto=Eupatotium%20cannabium',NULL,NULL,NULL,NULL), +(80,'ZM_Euphorbia_amygdaloides_003181.jpg','ZM_Euphorbia_amygdaloides_003181.jpg','Euphorbia amygdaloides',NULL,' [Euphorbia amygdaloides]','Euphorbia amygdaloides]','Euforbia delle faggete',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003181&codigo=3181&pag=1&texto=Euphorbia%20amygdaloides','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003181&codigo=3181&pag=1&texto=Euphorbia%20amygdaloides',NULL,NULL,NULL,NULL), +(81,'ZM_Euphorbia_portlandica_003103.jpg','ZM_Euphorbia_portlandica_003103.jpg','Euphorbia portlandica',NULL,'[Euphorbia portlandica]','[Euphorbia portlandica]','Euphorbia portlandica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003103&codigo=3103&pag=1&texto=Euphorbia%20amygdaloides','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003103&codigo=3103&pag=1&texto=Euphorbia%20amygdaloides',NULL,NULL,NULL,NULL), +(82,'ZM_Fumaria_ifficinalis_003122.jpg','ZM_Fumaria_ifficinalis_003122.jpg','Fumaria ifficinalis',NULL,' Palomilla','Negakina','Fumaria officinale',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003122&codigo=3122&pag=1&texto=Fumaria%20ifficinalis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003122&codigo=3122&pag=1&texto=Fumaria%20ifficinalis',NULL,NULL,NULL,NULL), +(83,'ZM_Gentiana_pneumonanthe_003094.jpg','ZM_Gentiana_pneumonanthe_003094.jpg','Gentiana pneumonanthe',NULL,'Genciana','Gentziana','Genziana mettimborsa',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003094&codigo=3094&pag=1&texto=Gentiana%20pneumonanthe','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003094&codigo=3094&pag=1&texto=Gentiana%20pneumonanthe',NULL,NULL,NULL,NULL), +(84,'ZM_Geranium_robertianum_003083.jpg','ZM_Geranium_robertianum_003083.jpg','Geranium robertianum',NULL,' Hierba de San Roberto','San Robertoren zaingorria','Geranio di S.Roberto',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003083&codigo=3083&pag=1&texto=Geranium%20robertianum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003083&codigo=3083&pag=1&texto=Geranium%20robertianum',NULL,NULL,NULL,NULL), +(85,'ZM_Geranium_rotundifolium_003162.jpg','ZM_Geranium_rotundifolium_003162.jpg','Geranium rotundifolium',NULL,' [Geranium rotundifolium]',' [Geranium rotundifolium]','Geranio malvaccino',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003162&codigo=3162&pag=1&texto=Geranium%20rotundifolium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003162&codigo=3162&pag=1&texto=Geranium%20rotundifolium',NULL,NULL,NULL,NULL), +(86,'ZM_Glechoma_hederacea_003100.jpg','ZM_Glechoma_hederacea_003100.jpg','Glechoma hederacea',NULL,'[Glechoma hederacea]',' [Glechoma hederacea]','Ellera terrestre comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003100&codigo=3100&pag=1&texto=Glechoma%20hederacea','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003100&codigo=3100&pag=1&texto=Glechoma%20hederacea',NULL,NULL,NULL,NULL), +(87,'ZM_Hedera_helix_003064.jpg','ZM_Hedera_helix_003064.jpg','Hedera helix',NULL,' Hiedra',' Huntza','Edera comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003064&codigo=3064&pag=1&texto=Hedera%20helix','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003064&codigo=3064&pag=1&texto=Hedera%20helix',NULL,NULL,NULL,NULL), +(88,'ZM_Hedera_helix_003208.jpg','ZM_Hedera_helix_003208.jpg','Hedera helix',NULL,'Hiedra','Huntza','Edera comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003208&codigo=3208&pag=1&texto=Hedera%20helix','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003208&codigo=3208&pag=1&texto=Hedera%20helix',NULL,NULL,NULL,NULL), +(89,'ZM_Hepatica_nobilis_003125.jpg','ZM_Hepatica_nobilis_003125.jpg','Hepatica nobilis',NULL,' Hepática','Gibel-belarra','Erba trinità',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003125&codigo=3125&pag=1&texto=Hepatica%20nobilis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003125&codigo=3125&pag=1&texto=Hepatica%20nobilis',NULL,NULL,NULL,NULL), +(90,'ZM_Hieracium_murorum_003199.jpg','ZM_Hieracium_murorum_003199.jpg','Hieracium murorum',NULL,'cardo de las murallas','murruetako kardua','Sparviere dei boschi',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003199&codigo=3199&pag=1&texto=Hieracium%20murorum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003199&codigo=3199&pag=1&texto=Hieracium%20murorum',NULL,NULL,NULL,NULL), +(91,'ZM_Hypericum_perforatum_003192.jpg','ZM_Hypericum_perforatum_003192.jpg','Hypericum perforatum',NULL,'Hierba de San Juan','Santio belarra','Erba di San Giovanni',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003192&codigo=3192&pag=1&texto=Hypericum%20perforatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003192&codigo=3192&pag=1&texto=Hypericum%20perforatum',NULL,NULL,NULL,NULL), +(92,'ZM_Iris_003150.jpg','ZM_Iris_003150.jpg','Iris',NULL,'Astigarraga',' Astigarraga irisa','Iris',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003150&codigo=3150&pag=1&texto=Iris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003150&codigo=3150&pag=1&texto=Iris',NULL,NULL,NULL,NULL), +(93,'ZM_Iris_pseudacorus_003202.jpg','ZM_Iris_pseudacorus_003202.jpg','Iris pseudacorus',NULL,'Lirio amarillo','Lirio horia','Giaggiolo acquatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003202&codigo=3202&pag=1&texto=Iris%20pseudacorus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003202&codigo=3202&pag=1&texto=Iris%20pseudacorus',NULL,NULL,NULL,NULL), +(94,'ZM_Iris_foetidissima_003075.jpg','ZM_Iris_foetidissima_003075.jpg','Iris foetidissima',NULL,' Iris fétido',' Melira','Giaggiolo puzzolente',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003075&codigo=3075&pag=1&texto=Iris%20foetidissima','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003075&codigo=3075&pag=1&texto=Iris%20foetidissima',NULL,NULL,NULL,NULL), +(95,'ZM_Lamiastrum_galeobdolon_003126.jpg','ZM_Lamiastrum_galeobdolon_003126.jpg','Lamiastrum galeobdolon',NULL,'Ortiga amarilla','Zaparta belar horia','Ortica gialla',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003126&codigo=3126&pag=1&texto=Lamiastrum%20galeobdolon','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003126&codigo=3126&pag=1&texto=Lamiastrum%20galeobdolon',NULL,NULL,NULL,NULL), +(96,'ZM_Lamium_maculatum_003178.jpg','ZM_Lamium_maculatum_003178.jpg','Lamium maculatum',NULL,'Ortiga fétida','Asun borta','Falsa-Ortica macchiata',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003178&codigo=3178&pag=1&texto=Lamium%20maculatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003178&codigo=3178&pag=1&texto=Lamium%20maculatum',NULL,NULL,NULL,NULL), +(97,'ZM_Lamium_maculatum_003137.jpg','ZM_Lamium_maculatum_003137.jpg','Lamium maculatum',NULL,'Ortiga fétida',' Asun borta','Falsa-Ortica macchiata',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003137&codigo=3137&pag=1&texto=Lamium%20maculatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003137&codigo=3137&pag=1&texto=Lamium%20maculatum',NULL,NULL,NULL,NULL), +(98,'ZM_Lathrea_clandestina_003203.jpg','ZM_Lathrea_clandestina_003203.jpg','Lathrea clandestina',NULL,'Lathrea clandestina','[Lathrea clandestina','Lathrea clandestina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003203&codigo=3203&pag=1&texto=Lathrea%20clandestina','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003203&codigo=3203&pag=1&texto=Lathrea%20clandestina',NULL,NULL,NULL,NULL), +(99,'ZM_Lathyrus_sylvestris_003198.jpg','ZM_Lathyrus_sylvestris_003198.jpg','Lathyrus sylvestris',NULL,' [Lathyrus sylvestris]',' [Lathyrus sylvestris]','Pisello selvatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003198&codigo=3198&pag=1&texto=Lathyrus%20sylvestris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003198&codigo=3198&pag=1&texto=Lathyrus%20sylvestris',NULL,NULL,NULL,NULL), +(100,'ZM_Lathyrus_aphaca_003156.jpg','ZM_Lathyrus_aphaca_003156.jpg','Lathyrus aphaca',NULL,' Afaca','Astailarra','Cicerchia bastarda',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003156&codigo=3156&pag=1&texto=Lathyrus%20aphaca','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003156&codigo=3156&pag=1&texto=Lathyrus%20aphaca',NULL,NULL,NULL,NULL), +(101,'ZM_Lathyrus_nissolia_003163.jpg','ZM_Lathyrus_nissolia_003163.jpg','Lathyrus nissolia',NULL,'[Lathyrus nissolia]','[Lathyrus nissolia]','Cicerchia semplice',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003163&codigo=3163&pag=1&texto=Lathyrus%20nissolia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003163&codigo=3163&pag=1&texto=Lathyrus%20nissolia',NULL,NULL,NULL,NULL), +(102,'ZM_Lathyrus_pratensis_003165.jpg','ZM_Lathyrus_pratensis_003165.jpg','Lathyrus pratensis',NULL,' Lathyrus pratensis','Lathyrus pratensis','Cicerchia dei prati',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003165&codigo=3165&pag=1&texto=Lathyrus%20pratensis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003165&codigo=3165&pag=1&texto=Lathyrus%20pratensis',NULL,NULL,NULL,NULL), +(103,'ZM_Lathyrus_sylvestris_003166.jpg','ZM_Lathyrus_sylvestris_003166.jpg','Lathyrus sylvestris',NULL,' [Lathyrus sylvestris]','[Lathyrus sylvestris]','Pisello selvatico',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003166&codigo=3166&pag=1&texto=Lathyrus%20sylvestris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003166&codigo=3166&pag=1&texto=Lathyrus%20sylvestris',NULL,NULL,NULL,NULL), +(104,'ZM_Lichnis_flos_cuculi_003131.jpg','ZM_Lichnis_flos_cuculi_003131.jpg','Lichnis flos cuculi',NULL,'Aligustre',' Arbustu arrunta','Fior di cuculo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare',NULL,NULL,NULL,NULL), +(105,'ZM_Ligustrum_vulgare_003142.jpg','ZM_Ligustrum_vulgare_003142.jpg','Ligustrum vulgare',NULL,' Aligustre','Arbustu arrunta','Ligustro comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003142&codigo=3142&pag=1&texto=Ligustrum%20vulgare',NULL,NULL,NULL,NULL), +(106,'ZM_Linaria_supina_003123.jpg','ZM_Linaria_supina_003123.jpg','Linaria supina',NULL,'Linaria','Igitai-belarra','Linajola dei serpentini',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003123&codigo=3123&pag=1&texto=Linaria%20supina','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003123&codigo=3123&pag=1&texto=Linaria%20supina',NULL,NULL,NULL,NULL), +(107,'ZM_Lithodora_diffusa_003116.jpg','ZM_Lithodora_diffusa_003116.jpg','Lithodora diffusa',NULL,'Carrasquilla azul','Lithodora diffusa','Migiasole maggiore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003116&codigo=3116&pag=1&texto=Lithodora%20diffusa','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003116&codigo=3116&pag=1&texto=Lithodora%20diffusa',NULL,NULL,NULL,NULL), +(108,'ZM_Lotus_corniculata_Anthyllis _003188.jpg','ZM_Lotus_corniculata_Anthyllis_003188.jpg','Lotus corniculata Anthyllis',NULL,'Anthyllis vulneraria','Zauri-belarra',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003188&codigo=3188&pag=1&texto=Lotus%20corniculata','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003188&codigo=3188&pag=1&texto=Lotus%20corniculata',NULL,NULL,NULL,NULL), +(109,'ZM_Lotus_corniculatus_003112.jpg','ZM_Lotus_corniculatus_003112.jpg','Lotus corniculatus',NULL,'Cuernecillo','Mendiko usobelarra','Ginestrino',NULL,NULL,'Ginestrina comune, \r\nTrifoglina',NULL,NULL,'Pianta strisciante con aspetto simile al trifoglio. Buon alimento per il bestiame sia per la sua capacità di adattarsi a diversi sostrati, sia perché può essere mangiata direttamente o dopo esser stata conservata. In Gran Bretagna è molto più utilizzata che da noi.\r\nHa una grande importanza anche nell’apicoltura e quando fiorisce, in aprile, sono molte le api che arrivano sui prati per fare provvista del suo nettare.\r\nI fiori sono capaci di produrre cianuro (sostanza molto tossica) come meccanismo di difesa, soprattutto contro i funghi. \r\nNegli Stati Uniti e in Australia è considerata una specie infestante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003112&codigo=3112&pag=1&texto=Lotus%20corniculatus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003112&codigo=3112&pag=1&texto=Lotus%20corniculatus',NULL,NULL,NULL,NULL), +(110,'ZM_Lotus_corniculatus_003159.jpg','ZM_Lotus_corniculatus_003159.jpg','Lotus corniculatus',NULL,'Cuernecillo','Mendiko usobelarra','Ginestrino',NULL,NULL,'Ginestrina comune, \r\nTrifoglina',NULL,NULL,'Pianta strisciante con aspetto simile al trifoglio. Buon alimento per il bestiame sia per la sua capacità di adattarsi a diversi sostrati, sia perché può essere mangiata direttamente o dopo esser stata conservata. In Gran Bretagna è molto più utilizzata che da noi.\r\nHa una grande importanza anche nell’apicoltura e quando fiorisce, in aprile, sono molte le api che arrivano sui prati per fare provvista del suo nettare.\r\nI fiori sono capaci di produrre cianuro (sostanza molto tossica) come meccanismo di difesa, soprattutto contro i funghi. \r\nNegli Stati Uniti e in Australia è considerata una specie infestante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003159&codigo=3159&pag=1&texto=Lotus%20corniculatus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003159&codigo=3159&pag=1&texto=Lotus%20corniculatus',NULL,NULL,NULL,NULL), +(111,'ZM_Lythrum_salicaria_003147.jpg','ZM_Lythrum_salicaria_003147.jpg','Lythrum salicaria',NULL,'Salicaria','Egur-belarra','Salcerella',NULL,NULL,NULL,NULL,NULL,'Le foglie, ricche di calcio, sono state utilizzate come alimento. \r\nE’ un buon antibiotico, specialmente contro il tifo. E’ possibile utilizzarla per la pulizia della pelle e risulta particolarmente indicata contro la diarrea dei lattanti. Questa erba si utilizza anche come coagulante per bloccare le emorragie, introducendola nelle narici. \r\nCresce di solito in terreni poveri e soprattutto umidi: la presenza di questa pianta indica che c’è dell’acqua. \r\nSembra che il nome lythrum provenga dal greco \"lythron\", che significa sangue, probabilmente per il colore dei suoi fiori...\r\nI suoi fiori sono impollinati da insetti dalla lingua larga, come farfalle e api. \r\nUna sola pianta può arrivare a dare in un anno tre milioni di semi, che si spargono attraverso il vento e l’acqua. E’ infestante e molto difficile da sradicare una volta insediatasi. \r\nSi pensa che la sua diffusione su scala mondiale sia dovuta alla terra e all’acqua utilizzate per zavorrare le navi.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003147&codigo=3147&pag=1&texto=Lythrum%20salicaria','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003147&codigo=3147&pag=1&texto=Lythrum%20salicaria',NULL,NULL,NULL,NULL), +(112,'ZM_Myosotis_lamottiana_003108.jpg','ZM_Myosotis_lamottiana_003108.jpg','Myosotis lamottiana',NULL,'Nomeolvides','Oroilorea','Nontiscordardimé',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003108&codigo=3108&pag=1&texto=Myosotis%20lamottiana','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003108&codigo=3108&pag=1&texto=Myosotis%20lamottiana',NULL,NULL,NULL,NULL), +(113,'ZM_Ononis_spinosa_ssp_maritima_003153.jpg','ZM_Ononis_spinosa_ssp_maritima_003153.jpg','Ononis spinosa ssp maritima',NULL,'Uña de gatos marina','Itsas itxiokorria',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003153&codigo=3153&pag=1&texto=Ononis%20spinosa%20ssp%20maritima','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003153&codigo=3153&pag=1&texto=Ononis%20spinosa%20ssp%20maritima',NULL,NULL,NULL,NULL), +(114,'ZM_Ononis_spinosa_ssp_maritima_003172.jpg','ZM_Ononis_spinosa_ssp_maritima_003172.jpg','Ononis spinosa ssp maritima',NULL,' Uña de gato',' Itxiokorria','Ononide strisciante',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003172&codigo=3172&pag=1&texto=Ononis%20spinosa%20ssp%20maritima','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003172&codigo=3172&pag=1&texto=Ononis%20spinosa%20ssp%20maritima',NULL,NULL,NULL,NULL), +(115,'ZM_Ophrys_scolopax_003168.jpg','ZM_Ophrys_scolopax_003168.jpg','Ophrys scolopax',NULL,'[Ophrys scolopax]',' [Ophrys scolopax]','Ofride cornuta',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003168&codigo=3168&pag=1&texto=Ophrys%20scolopax','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003168&codigo=3168&pag=1&texto=Ophrys%20scolopax',NULL,NULL,NULL,NULL), +(116,'ZM_Orchis_mascula_003186.jpg','ZM_Orchis_mascula_003186.jpg','Orchis mascula',NULL,'Satirión manchado',' Orkideoa','Orchide maschia',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003186&codigo=3186&pag=1&texto=Orchis%20mascula','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003186&codigo=3186&pag=1&texto=Orchis%20mascula',NULL,NULL,NULL,NULL), +(117,'ZM_Origanum_vulgare_003072.jpg','ZM_Origanum_vulgare_003072.jpg','Origanum vulgare',NULL,' Orégano','Oreganoa','Origano',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003072&codigo=3072&pag=1&texto=Origanum%20vulgare','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003072&codigo=3072&pag=1&texto=Origanum%20vulgare',NULL,NULL,NULL,NULL), +(118,'ZM_Orobanche_003177.jpg','ZM_Orobanche_003177.jpg','Orobanche',NULL,'[Orobanche sp.]','[Orobanche sp.]','Orobanche sp.',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003177&codigo=3177&pag=1&texto=Orobanche','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003177&codigo=3177&pag=1&texto=Orobanche',NULL,NULL,NULL,NULL), +(119,'ZM_Phyteuma_spicatum_003138.jpg','ZM_Phyteuma_spicatum_003138.jpg','Phyteuma spicatum',NULL,'[Phyteuma spicatum]','[Phyteuma spicatum]','Raponzolo giallo',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003138&codigo=3138&pag=1&texto=Phyteuma%20spicatum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003138&codigo=3138&pag=1&texto=Phyteuma%20spicatum',NULL,NULL,NULL,NULL), +(120,'ZM_Picris_echioides_003216.jpg','ZM_Picris_echioides_003216.jpg','Picris echioides',NULL,'[Picris echioides]','[Picris echioides]','Aspraggine volgare',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003216&codigo=3216&pag=1&texto=Picris%20echioides','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003216&codigo=3216&pag=1&texto=Picris%20echioides',NULL,NULL,NULL,NULL), +(121,'ZM_Platanthera_bifolia_003200.jpg','ZM_Platanthera_bifolia_003200.jpg','Platanthera bifolia',NULL,'Orchis odorant de Guipuscoa','Orchis odorant de Guipuscoa','Platantera comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003200&codigo=3200&pag=1&texto=Platanthera%20bifolia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003200&codigo=3200&pag=1&texto=Platanthera%20bifolia',NULL,NULL,NULL,NULL), +(122,'ZM_Polygala_vulgaris_003158.jpg','ZM_Polygala_ vulgaris_003158.jpg','Polygala vulgaris',NULL,' [Polygala vulgaris]','[Polygala vulgaris]',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003158&codigo=3158&pag=1&texto=Polygala%20vulgaris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003158&codigo=3158&pag=1&texto=Polygala%20vulgaris',NULL,NULL,NULL,NULL), +(123,'ZM_Polygala_vulgaris_003223.jpg','ZM_Polygala_vulgaris_003223.jpg','Polygala vulgari',NULL,' Poligalum vulgaris','Poligalum vulgaris','Poligala comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003223&codigo=3223&pag=1&texto=Polygala%20vulgari','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003223&codigo=3223&pag=1&texto=Polygala%20vulgari',NULL,NULL,NULL,NULL), +(124,'ZM_Polypodium_cambricum_003084.jpg','ZM_Polypodium_cambricum_003084.jpg','Polypodium cambricum',NULL,' Polipodio','Haritz-iratzea','Polipodio meridionale',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003084&codigo=3084&pag=1&texto=Polypodium%20cambricum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003084&codigo=3084&pag=1&texto=Polypodium%20cambricum',NULL,NULL,NULL,NULL), +(125,'ZM_Primula_elatior_003179.jpg','ZM_Primula_elatior_003179.jpg','Primula elatior',NULL,' Prímula',' Udaberri-lorea','Primula maggiore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003179&codigo=3179&pag=1&texto=Primula%20elatior','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003179&codigo=3179&pag=1&texto=Primula%20elatior',NULL,NULL,NULL,NULL), +(126,'ZM_Pulmonaria_longifolia_003120.jpg','ZM_Pulmonaria_longifolia_003120.jpg','Pulmonaria longifolia',NULL,'Pulmonaria','biri-belarra','Polmonaria',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003120&codigo=3120&pag=1&texto=Pulmonaria%20longifolia','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003120&codigo=3120&pag=1&texto=Pulmonaria%20longifolia',NULL,NULL,NULL,NULL), +(127,'ZM_Ranunculus_acris_003157.jpg','ZM_Ranunculus_acris_003157.jpg','Ranunculus acris',NULL,'Ranúnculo','Urrebotoia','Ranuncolo comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003157&codigo=3157&pag=1&texto=Ranunculus%20acris','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003157&codigo=3157&pag=1&texto=Ranunculus%20acris',NULL,NULL,NULL,NULL), +(128,'ZM_Ranunculus_ficaria_003107.jpg','ZM_Ranunculus_ficaria_003107.jpg','Ranunculus ficaria',NULL,'Celidonia menor','Korradu-belarra','Favagello',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003107&codigo=3107&pag=1&texto=Ranunculus%20ficaria','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003107&codigo=3107&pag=1&texto=Ranunculus%20ficaria',NULL,NULL,NULL,NULL), +(129,'ZM_Rosa_sempervirens_003141.jpg','ZM_Rosa_sempervirens_003141.jpg','Rosa sempervirens',NULL,'Rosal silvestre]','Arkakaratsa','Rosa di S.Giovanni',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003141&codigo=3141&pag=1&texto=Rosa%20sempervirens','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003141&codigo=3141&pag=1&texto=Rosa%20sempervirens',NULL,NULL,NULL,NULL), +(130,'ZM_Scilla_lilio-hyacinthos_003184.jpg','ZM_Scilla_lilio-hyacinthos_003184.jpg','Scilla lilio-hyacinthos',NULL,'Scille umbelate','Scille umbelate',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003184&codigo=3184&pag=1&texto=Scilla%20lilio-hyacinthos','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003184&codigo=3184&pag=1&texto=Scilla%20lilio-hyacinthos',NULL,NULL,NULL,NULL), +(131,'ZM_Serapias_cordigera_003106.jpg','ZM_Serapias_cordigera_003106.jpg','Serapias cordigera',NULL,'[Serapias cordigera]','[Serapias cordigera]','Serapide cuoriforme',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003106&codigo=3106&pag=1&texto=Serapias%20cordigera','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003106&codigo=3106&pag=1&texto=Serapias%20cordigera',NULL,NULL,NULL,NULL), +(132,'ZM_Silene_dioica_003092.jpg','ZM_Silene_dioica_003092.jpg','Silene dioica',NULL,'Lichnis','Lichnis',NULL,NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003092&codigo=3092&pag=1&texto=Silene%20dioica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003092&codigo=3092&pag=1&texto=Silene%20dioica',NULL,NULL,NULL,NULL), +(133,'ZM_Silene_dioica_003130.jpg','ZM_Silene_dioica_003130.jpg','Silene dioica',NULL,'Silene vulgaris eta Silene dioica','Silene vulgaris y Silene dioica','Silene dioica',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003130&codigo=3130&pag=1&texto=Silene%20dioica','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003130&codigo=3130&pag=1&texto=Silene%20dioica',NULL,NULL,NULL,NULL), +(134,'ZM_Silene_nutans_003139.jpg','ZM_Silene_nutans_003139.jpg','Silene nutans',NULL,'Silene nutans','[Silene nutans]','Silene ciondola',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003139&codigo=3139&pag=1&texto=Silene%20nutans','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003139&codigo=3139&pag=1&texto=Silene%20nutans',NULL,NULL,NULL,NULL), +(135,'ZM_Smilax_aspera_003082.jpg','ZM_Smilax_aspera_003082.jpg','Smilax aspera',NULL,'Zarzaparrilla','Endalaharra','Salsapariglia',NULL,NULL,', Stracciabraghe Rovo cervone, Rovo cerrone',NULL,NULL,'Pianta rampicante dei sottoboschi. Le sue forti spine le permettono di afferrarsi alle piante che le crescono accanto. Presenta disformità sessuale. In autunno la pianta femmina si distingue per il suo raro fogliame e i suoi grappoli pensili di frutti rossi e brillanti.\r\nI nuovi germogli primaverili si mangiano come gli asparagi.\r\nCon le sue radici viene fabbricata l’omonima bevanda, la salsapariglia. La sua origine è spagnola e a quanto sembra è stata uno degli ingredienti originari della coca-cola che ancora la annovera tra i suoi ingredienti. Durante il XIX secolo è stato uno dei rinfreschi più conosciuti. \r\nE’ stata utilizzata contro la sifilide e molte altre malattie. \r\nContiene saponine, che funzionano come il sapone e sono tossiche. Sembra che proprio questi componenti difendano la pianta dai funghi. \r\nIl nome di salsapariglia si compone di salsa –dall’arabo \"saras\"- e di \"pariglia\", che si riferisce al suo carattere di rampicante.','http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003077&codigo=3077&pag=1&texto=Smilax%20aspera',NULL,NULL,NULL,NULL), +(136,'ZM_Solanum_dulcamara_003167.jpg','ZM_Solanum_dulcamara_003167.jpg','Solanum dulcamara',NULL,' Dulcamara',' Azeri-mahatsa','Morella rampicante',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003167&codigo=3167&pag=1&texto=Solanum%20dulcamara','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003167&codigo=3167&pag=1&texto=Solanum%20dulcamara',NULL,NULL,NULL,NULL), +(137,'ZM_Stellaria_holostea_003124.jpg','ZM_Stellaria_holostea_003124.jpg','Stellaria holostea',NULL,' Estrellada','Izar-belar arrunta','Centocchio garofanina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003124&codigo=3124&pag=1&texto=Stellaria%20holostea','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003124&codigo=3124&pag=1&texto=Stellaria%20holostea',NULL,NULL,NULL,NULL), +(138,'ZM_Symphytum_tuberosum_003182.jpg','ZM_Symphytum_tuberosum_003182.jpg','Symphytum tuberosum',NULL,' [Consuelda menor]','Zolda-belar txikia','Consolida femmina',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003182&codigo=3182&pag=1&texto=Symphytum%20tuberosum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003182&codigo=3182&pag=1&texto=Symphytum%20tuberosum',NULL,NULL,NULL,NULL), +(139,'ZM_Tamus_communis_003111.jpg','ZM_Tamus_communis_003111.jpg','Tamus communis',NULL,'Nueza negra',' Apomahatsa','Tamaro',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003111&codigo=3111&pag=1&texto=Tamus%20communis','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003111&codigo=3111&pag=1&texto=Tamus%20communis',NULL,NULL,NULL,NULL), +(140,'ZM_Teucrium_pyrenaicum_003144.jpg','ZM_Teucrium_pyrenaicum_003144.jpg','Teucrium pyrenaicum',NULL,' [Teucrium pyrenaicum]','[Teucrium pyrenaicum]','Teucrium pyrenaicum',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003144&codigo=3144&pag=1&texto=Teucrium%20pyrenaicum','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003144&codigo=3144&pag=1&texto=Teucrium%20pyrenaicum',NULL,NULL,NULL,NULL), +(141,'ZM_Verbascum_thapsus_003219.jpg','ZM_Verbascum_thapsus_003219.jpg','Verbascum thapsus',NULL,'Gordolobo','Apo-belarra','Tasso barbasso',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003219&codigo=3219&pag=1&texto=Verbascum%20thapsus','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003219&codigo=3219&pag=1&texto=Verbascum%20thapsus',NULL,NULL,NULL,NULL), +(142,'ZM_Veronica_chamaedrys_003109.jpg','ZM_Veronica_chamaedrys_003109.jpg','Veronica chamaedrys',NULL,'Verónica',' Beronika','Veronica comune',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003109&codigo=3109&pag=1&texto=Veronica%20chamaedrys','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003109&codigo=3109&pag=1&texto=Veronica%20chamaedrys',NULL,NULL,NULL,NULL), +(143,'ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg','ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg','Vicia sepium y Lathyrus montanus',NULL,'Vicia sepium y Lathyrus montanus','Vicia sepium eta Lathyrus montanus','Veccia silvana e Cicerchia montana',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003121&codigo=3121&pag=1&texto=Vicia%20sepium','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003121&codigo=3121&pag=1&texto=Vicia%20sepium',NULL,NULL,NULL,NULL), +(144,'ZM_Vinca_minor_003102.jpg','ZM_Vinca_minor_003102.jpg','Vinca minor',NULL,'Vincapervinca','Inkontze-belar txikia','Pervinca minore',NULL,NULL,NULL,NULL,NULL,NULL,'http://www.albumsiglo19mendea.net/cas/palabrafichadescriptiva.php?foto=003102&codigo=3102&pag=1&texto=Vinca%20minor','http://www.albumsiglo19mendea.net/palabrafichadescriptiva.php?foto=003102&codigo=3102&pag=1&texto=Vinca%20minor',NULL,NULL,NULL,NULL); +/*!40000 ALTER TABLE `plantas___` ENABLE KEYS */; +UNLOCK TABLES; +/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + +/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; +/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; +/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; +/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; + +-- Dump completed on 2022-11-09 18:14:21 diff --git a/data/README b/data/README new file mode 100644 index 0000000..2c6a507 --- /dev/null +++ b/data/README @@ -0,0 +1,13 @@ +LOREAK AZMATZEN + +Esta página web recoge la coincidencia a mediados del siglo XIX en el País Vasco de dos amantes de las plantas. Pietro Bubani botánico italiano que dedicó su vida a recoger y analizar la flora de los Pirineos, realizando diversos itinerarios por nuestro país entre 1841 y 1879, siempre con el objetivo de recoger plantas para su extraordinario herbario. Y Didier Petit de Meurville, cónsul francés en San Sebastián a partir de 1857, que unía entre sus aficiones la pintura y el amor a las plantas, lo que dio como resultado la elaboración de tres álbumes dedicados a la flora de Gipuzkoa. +La coincidencia de ambos en el tiempo y el espacio unida a su interés por las plantas nos a dado pie a realizar esta exposición y esta web en las que analizamos nuestra flora decimonónica desde los puntos de vista científico y artístico, al tiempo que damos a conocer el contexto histórico y el interés por el estudio y el disfrute de los Pirineos que se desarrollará de manera destacada en esta misma época. Además de la presentación de estos temas centrales en esta web encontrarás diversos materiales complementarios como una base de datos sobre la flora de Gipuzkoa o los trabajos de contextualización histórica sobre Italia en el siglo XIX de Otello Sangiorgi y Fiorenza Tarozzi, del Museo Civico del Risorgimento y la Università degli Studi di Bologna, respectivamente. + +MANTAINER +lrullo@audio-lab.org + +LICENCE +Creative Common By-SA-NC + +COPYRIGHT +Museo Zumalakarregi / Fundación Cristina Enea / Museo Civico del Risorgimento diff --git a/data/css/estilos.css b/data/css/estilos.css new file mode 100644 index 0000000..195d210 --- /dev/null +++ b/data/css/estilos.css @@ -0,0 +1,467 @@ +@charset "utf-8"; +/*----------------------------------------------------------------------------- +Loreak asmatzen: Naturalistas europeos en el País Vasco Style Sheet http://direccion.com + +version: 1.0 +date: 2009 7 7 +author: Overalia +email: masinfo@overalia.com +website: http://www.overalia.com +-----------------------------------------------------------------------------*/ + +/* ---------------------------------------------------- */ +/* Reset +/* ---------------------------------------------------- */ +html, body, div, span, applet, object, iframe, +h1, h2, h3, h4, h5, h6, p, blockquote, pre, +a, abbr, acronym, address, big, cite, code, +del, dfn, em, font, img, ins, kbd, q, s, samp, +small, strike, strong, sub, sup, tt, var, +b, u, i, center, +dl, dt, dd, ol, ul, li, +fieldset, form, label, legend, +table, caption, tbody, tfoot, thead, tr, th, td { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + vertical-align: baseline; + background: transparent; +} +::selection {background:#26710d;color:#FFFFFF;} +::-moz-selection {background:#26710d;color:#FFFFFF;} +body { + line-height: 1; + font: 12px "Trebuchet MS", sans-serif; + background:#45981c url("../images/bg.png") no-repeat center top; +} +ol, ul { + list-style: none; +} +blockquote, q { + quotes: none; +} +blockquote:before, blockquote:after, +q:before, q:after { + content: ''; + content: none; +} +/* remember to define focus styles! */ +:focus { + outline: 0; +} +/* remember to highlight inserts somehow! */ +ins { + text-decoration: none; +} +del { + text-decoration: line-through; +} +/* tables still need 'cellspacing="0"' in the markup */ +table { + border-collapse: collapse; + border-spacing: 0; +} +/* ---------------------------------------------------- */ +/* Elementos +/* ---------------------------------------------------- */ +h1 { + font-size:2em; + text-align:left; + color:#005A00; + padding:0 0 0 0; + margin:10px 0 0 165px; + width:562px; + height:119px; + text-indent:-9999px; +} +h1#eu {background:transparent url("../images/h1_eu.png") no-repeat left top;} +h1#es {background:transparent url("../images/h1_es.png") no-repeat left top;} +h1#it {background:transparent url("../images/h1_it.png") no-repeat left top;} +h2 { + color:#004a00; + font-size:1.7em; +} +h3 { + color:#26710d; + font-size:1.4em; + padding:0.7em 0 0.7em 0; + clear:both; +} +h3.planta {clear:none;} +p { + padding-bottom:0.7em; +} +/* ---------------------------------------------------- */ +/* Divs +/* ---------------------------------------------------- */ +#mother { + width:994px; + min-height: 1px; + height: auto !important; + height:1px; + margin:0 auto; +} +#container_head { + width:994px; + margin:0 auto; + background:transparent url("../images/shadow.png") repeat-y left top;clear:both;float:left; +} +#container { + width:994px; + min-height: 1px; + height: auto !important; + height:1px; + float:left; + clear:both; + margin:0 auto; + background:transparent url("../images/shadow.png") repeat-y left top; +} +#container_footer { + width:994px; + height:23px; + margin:0 auto; + background:transparent url("../images/shadow-footer.png") no-repeat left top;clear:both;float:left; +} +#wrapper { + + width:960px; + min-height:530px; + height:auto; + float:left; + margin:0 0 0 17px; + padding:10px 0 20px 0px; + background:#015a00 url("../images/couple.png") no-repeat left bottom; +} +#cl_left { + width:236px; + min-height: 1px; + height: auto !important; + height:1px; + float:left; + background:transparent url("../images/enredaderas.png") no-repeat 4px top; + position:relative; + left:-20px; +} +#main { + width:715px; + min-height: 1px; + height: auto !important; + height:1px; + float:right; + margin-right:8px; +} +#main_in_top { + background:transparent url("../images/main-in-top.jpg") no-repeat left top; + width:685px; + height:44px; + padding:17px 15px 0 15px; + float:left; +} +#main_in { + background:transparent url("../images/main-in.jpg") repeat-y left top; + width:685px; + min-height: 1px; + height: auto !important; + height:1px; + color:#516844; + padding:0 20px 15px 15px; + float:left; +} +#main_in_bottom { + background:transparent url("../images/main-in-bottom.jpg") no-repeat left top;width:715px; + height:14px; + float:left; +} +/* ---------------------------------------------------- */ +/* /inc/header +/* ---------------------------------------------------- */ +#header_lv1 { + width:960px; + height:22px; + margin:0 auto; + clear:both; + background-color:#2f7a00; + border-bottom:1px solid #FFF; + font-family:Verdana, Arial, Helvetica, sans-serif; + font-size:0.9em; +} +ul#menusup { + padding:4px 0 0 0; + float:left; +} +ul#idioma { + padding:4px 9px 0 0; + float:right; +} +ul#menusup li, ul#idioma li{ + display:inline; + float:left; + border-right:1px solid #FFF; + margin:0; + padding:0 6px; + color:white; +} +ul#menusup li a, ul#menusup li a:link, ul#menusup li a:active, ul#idioma li a, ul#idioma li a:link, ul#idioma li a:active {color:#FFF;text-decoration:none;} +ul#menusup li a:hover, ul#idioma li a:hover {border-bottom:1px solid #FFF;} +ul#menusup li.no, ul#idioma li.no {border-right:none;} +#header_img1 { + clear:both; + width:960px; + height:155px; + margin:0 auto; + padding-top:10px; + background:transparent url("../images/header_1.jpg") no-repeat left top; + position:relative; +} +/* ---------------------------------------------------- */ +/* /inc/footer +/* ---------------------------------------------------- */ +#footer { + width:960px; + height:23px; + margin:0 auto; + background-color:#2f7a00; + clear:both; + font-family:Verdana, Arial, Helvetica, sans-serif; + font-size:0.9em; +} +#footer_txt { + float:left; + padding:4px 0 0 15px; + color:#FFF; +} + +Link Visited Hover active +#footer_txt a, #footer_txt a:link, #footer_txt a:visited {color:#FFF;text-decoration:none;} +#footer_txt a:hover, #footer_txt a:active {border-bottom:1px solid #FFF;} +/* ---------------------------------------------------- */ +/* Clases +/* ---------------------------------------------------- */ +.fleft {float:left;} +.fright {float:right;} +.clear {clear:both;} +.frame { + width:295px; + height:372px; + margin:0 0.5em 0.5em 0; + padding:7px 0 0 8px; + float:left; + background:transparent url("../images/vertical-frame.jpg") no-repeat left top; +} +.frame span {display:block;float:left;margin:1em 0 0 0;} +.frame_bio { + width:267px; + height:253px; + margin:0 0 0.5em 0.5em; + padding:5px 0 0 6px; + float:right; + background:transparent url("../images/frame-bio.jpg") no-repeat left top; +} +/* El dl quedo sin uso */ +dl {width:370px;float:right;padding-top:2em;} +dl dt {float:left;width:150px;margin-bottom:0.5em;} +dl dd {float:left;width:220px;margin-bottom:0.5em;} +dl dd.horizon {float:left;clear:left;width:370px;} + +dl.std {width:685px;float:none;padding-top:0em;} +dl.std dt {float:left;width:685px;clear:both;margin-bottom:0.3em;} +dl.std dd {float:left;width:685px;margin-bottom:1em;} +dl.std dd p {padding-left:2em;} +.imgl {border:2px solid #26710d;float:left;margin:0 5px 5px 0;} +.imgr {border:2px solid #26710d;float:right;margin:0 0 5px 5px;} + + +.flash {width:544px;height:420px;margin:1em auto 2em auto;} +.youtube { + width:425px; + height;344px; + margin:1em auto 1em auto; +} +/* ---------------------------------------------------- */ +/* Listas +/* ---------------------------------------------------- */ +ul.photos { + display:block; + padding-bottom:0.7em; +} +ul.photos li { + width:107px; + height:180px; + float:left; + padding:0 7px 7px 0; + background:transparent url("../images/li_bg.jpg") no-repeat left top; +} +ul.photos li img { + padding:5px 0 0 6px; +} +ul.photos li span { + display:block; + float:left; + margin:10px 0 0 0; + font-size:0.9em; +} +ul.photos2 { + display:block; + padding-bottom:0.7em; +} +ul.photos2 li { + width:208px; + height:81px; + float:left; + padding:0 7px 7px 0; + background:transparent url("../images/frame-h.jpg") no-repeat left top; +} +ul.photos2 li.vertical { + width:96px; + height:132px; + float:left; + padding:0 7px 7px 0; + background:transparent url("../images/frame-v.jpg") no-repeat left top; +} +ul.photos2 li img { + padding:5px 0 0 6px; +} +ul.photos2 li span { + display:block; + float:left; + margin:10px 0 0 0; + font-size:0.9em; +} +.separador { + clear:both; + width:500px; + height:1px; + float:left; + margin:1.5em 0 1.5em 0; +} +/* ---------------------------------------------------- */ +/* Menu +/* ---------------------------------------------------- */ +ul#menu {margin:0 0 20px 25px;float:left;} +ul#menu li {width:230px;} +ul#menu li a, ul#menu li a:link, ul#menu li a:visited {color:#FFF;text-decoration:none;} +ul#menu li a:hover, ul#menu li a:active {color:#8E1A47;} +ul#menu li a { + font-weight:bold; + width:210px; + height:21px; + display:block; + padding:4px 0 0 20px; + background:transparent url("../images/menu_middle.jpg") no-repeat left top; +} +ul#menu li a:hover {background-position:0 -25px;} +ul#menu li a.top { + height:23px; + padding-top:8px; + background:transparent url("../images/menu_top.jpg") no-repeat left top; +} +ul#menu li a.top:hover {background-position:0 -31px;} +ul#menu li a.bottom{ + height:33px; + background:transparent url("../images/menu_bottom.jpg") no-repeat left top; +} +ul#menu li a.bottom:hover {background-position:0 -37px;} +ul#menu li a.big{ + height:42px; + background:transparent url("../images/menu_middleg.jpg") no-repeat left top; +} +ul#menu li a.big:hover {background-position:0 -46px;} + +ul#menu li a.arriba, ul#menu li a.normal, ul#menu li a.grande, ul#menu li a.abajo {color:#8E1A47;} +ul#menu li .arriba {height:23px;padding-top:8px;background:transparent url("../images/menu_top.jpg") no-repeat left top; background-position:0 -31px;} +ul#menu li a.arriba:hover {height:23px;padding-top:8px;background-position:0 -31px;} +ul#menu li .normal {background-position:0 -25px;} +ul#menu li .grande {height:42px;background:transparent url("../images/menu_middleg.jpg") no-repeat left top;background-position:0 -46px;} +ul#menu li a.grande:hover {background-position:0 -46px;} +ul#menu li .abajo {height:33px;background:transparent url("../images/menu_bottom.jpg") no-repeat left top;background-position:0 -37px;} +ul#menu li a.abajo:hover {background-position:0 -37px;} + +ul#menu li ul li a, ul#menu li ul li a.big { + padding-left:40px; + width:190px; +} +ul#menu li ul li ul li a {text-indent:30px;} +ul#menu li ul li a.big {width:180px;padding-right:10px;} + +ul.enlaces {margin:2em 0 0 1.5em;} +ul.enlaces {margin:2em 0 0 1.5em;} +ul.enlaces li ul {margin:0 0 0 2em;padding:0.5em 0 0 0;} +ul.detail {margin:1.5em 0 0 1.5em;float:left;} +ul.enlaces li, ul.detail li {list-style-type:square;padding-bottom:0.5em;} + +ul.logo{margin:2em 0 0 0em;} +ul.logo li { + float:left; + margin:0 8px 8px 8px; +} +ul#logomenu { + margin:0 0 30px 80px; +} +ul#logomenu li { + width:147px; +} +/* ---------------------------------------------------- */ +/* Photos +/* ---------------------------------------------------- */ +.description { + width:685px; + float:left; + margin:0 0 2em 0; + clear:both; + background:transparent url("../images/line-h.jpg") no-repeat center bottom; +} +.description p {padding-top:10px;} +.no {background:none;} +.photo_frame { + width:216px; + min-height: 200px; + height: auto !important; + height:200px; + float:left; + background:transparent url("../images/line.jpg") no-repeat right top; + margin:1em 17px 1em 0; +} +.photo_frame3 { + width:216px; + min-height: 200px; + height: auto !important; + height:200px; + float:left; + background:none; + margin:1em 0 1em 0; +} +.photo_framecon { + width:216px; + min-height: 200px; + height: auto !important; + height:200px; + float:left; + clear:both; + background:none; + margin:1em 0 1em 0; +} +.photo_image { + width:198px; + height:117px; + float:left; + background:transparent url("../images/frame_m.jpg") no-repeat left top; + padding:6px 0 0 6px; +} + +.photo_frame span, .photo_frame3 span, .photo_framecon span { + display:block; + float:left; + padding-right:10px; + font-size:0.9em; +} +/* ---------------------------------------------------- */ +/* Links +/* ---------------------------------------------------- */ +#main_in a, #main_in a:link, #main_in a:visited, #main_in a.pdf, #main_in a.pdf:link, #main_in a.pdf:visited {font-weight:bold;color:#26710d;} +#main_in a:hover, #main_in a:active, #main_in a.pdf:hover, #main_in a.pdf:active {text-decoration:none;} + +#main_in a.pdf, #main_in a.pdf:link, #main_in a.pdf:visited { +background:transparent url("../images/pdf.jpg") no-repeat left center; +padding:7px 0 5px 36px;} \ No newline at end of file diff --git a/data/css/style.css b/data/css/style.css new file mode 100644 index 0000000..f99b984 --- /dev/null +++ b/data/css/style.css @@ -0,0 +1,431 @@ +html, body, div, span, +h1, h2, h3, h4, h5, h6, p, +a, em, img, strong, +ol, ul, li, +table, tr, th, td, +form { + margin: 0; + padding: 0; + border: 0; + outline: 0; + font-size: 100%; + background: transparent; +} +table { + border-collapse: collapse; + border-spacing: 0; +} +input, button{ + overflow: visible; +} +html { + overflow: auto; +} +html, body { + height: 100%; + min-height: 100%; +} +body { + font: normal 12px 'Segoe UI', Tahoma, Verdana, Arial, Helvetica, sans-serif; + line-height: 1.2; + color: #1e2022; + text-align: center; + background: #fcfcfc; +} +p { + padding: 0 0 10px; +} +ul { + padding: 0 0 0 16px; +} +li { + padding: 0 0 8px; +} +a { + text-decoration: none; + color: #005ace; +} +a:hover { + text-decoration: underline; + color: #39f; +} +.clear { display: inline-block; } +.clear:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +* html .clear { height: 1%; } +.clear { display: block; } +.none, +.hidden { + display: none; +} +.page { + position: relative; + width: 100%; + min-width: 750px; + min-height: 100%; +} +* html .page { + height: 100%; +} +.page .header { + border-bottom: 1px solid #0f0f14; + width: 100%; + height: 49px; + text-align: left; + background: #363b47 url('../img/common/top_bg.gif') 0 0 repeat-x; +} +.page .header .company-logo { + float: right; + display: block; + margin: 5px 10px 0 0; + width: 115px; + height: 38px; + overflow: hidden; + text-indent: -9999px; + background: transparent url('../img/common/def_parallels_logo.gif') 0 0 no-repeat; +} +.page .header .header-area { + height: 49px; +} +.page .header h1 { + float: left; + width: 156px; + height: 49px; + text-align: left; +} +.page .header h1 a { + display: block; + width: 210px; + height: 49px; + overflow: hidden; + text-indent: -9999px; + background: url('../img/common/def_plesk_logo.gif') no-repeat; +} +.page .header .header-text { + float: right; + font-size: 11px; +} +.page .header .header-text a { + float: left; + margin: 11px 13px 0 0; + color: #f1f1f1; + text-decoration: none; + font-size: 11px; +} +.page .header .header-text a.txt-banner { + margin-right: 10px; +} +.page .header .header-text a strong { + font-weight: normal; +} +.page .header .header-text a.top-copyright { + text-align: right; +} +.wrapper { + margin: 0 auto; + padding: 40px 0 80px; + width: 734px; + text-align: left; +} +.wrapper .container { + border: 1px solid #b8c1d0; + margin-bottom: 12px; + padding: 6px; + background: #fff; +} +.wrapper .content { + background: #fff url('../img/common/content_bg.gif') 0 0 repeat-y; +} +.wrapper .content .description { + padding: 0 15px 0 190px; + min-height: 229px; + font-size: 12px; + background: transparent url('../img/common/banner.jpg') 0 0 no-repeat; +} +* html .wrapper .content .description { + height: 229px; +} +.wrapper .content h2 { + margin: 0 0 10px; + padding: 10px 0 3px; + font-size: 18px; + font-weight: normal; + color: #039; +} +.wrapper .content .hr { + border-top: 1px solid #8b919f; + margin-top: 5px; + padding-top: 5px; +} +.wrapper .promo, +.wrapper .test-pages { + margin-bottom: 12px; +} +.promo .block-area, +.test-pages .block-area { + border: 1px solid #b8c1d0; + background: #fff; +} +.wrapper .promo h3, +.wrapper .test-pages h3 { + padding: 0 0 6px; + font-size: 12px; + font-weight: normal; + color: #039; +} +.wrapper .test-pages p { + padding: 10px; +} +.wrapper .two-col .test-pages, +.wrapper .two-col .promo { + float: left; + width: 362px; +} +.wrapper .two-col .promo { + margin-left: 10px; +} +.promo .promo-block { + margin: 10px 10px 0; +} +.promo .promo-block a.box { + float: left; + margin: 0 0 0 -105px; +} +.promo .promo-block div { + border-bottom: 1px solid #ebebeb; + margin-bottom: 10px; + padding: 0 0 10px 105px; +} +.promo .promo-block h4 { + font-size: 20px; + padding: 4px 0 8px; +} +.promo .promo-block h4 span { + display: block; + margin-bottom: -5px; + font-size: 14px; + font-weight: normal; +} +.promo .promo-block h4 a { + text-decoration: none; + color: #1e2022; +} +.promo .promo-block a.more { + padding: 2px 0 3px 24px; + line-height: 19px; + font-size: 12px; + font-weight: bold; + color: #616161; + background: transparent url('../img/common/arrow.gif') 0 0 no-repeat; +} +.promo .promo-block h4 a:hover, +.promo .promo-block a.more:hover { + text-decoration: none; + color: #39f; +} +.promo ul { + margin: 0 10px 5px; + padding: 0 0 0 16px; +} +.promo ul li { + padding-bottom: 5px; +} +.page .footer { + position: absolute; + left: 0; + bottom: 0; + border-top: 1px solid #9db6c5; + width: 100%; + min-width: 300px; + height: 69px; + background: #f1fbfe url('../img/common/footer_bg.gif') 0 0 repeat-x; +} +.page .footer-area { + height: 69px; + font-size: 11px; + text-align: left; + color: #000; + background: url('../img/common/footer_right_bg.png') 100% 0 no-repeat; +} +.page .footer a { + color: #06c; + text-decoration: none; +} +.page .footer a:hover { + color: #39f; + text-decoration: underline; +} +.page .footer .description { + margin: 0; + padding: 8px 10px 0; +} +.icons-area { + padding: 0 0 0 15px; +} +.icon { + display: -moz-inline-box; + display: inline-block; + overflow: visible; + border: 0; + margin: 0 5px 12px 0; + height: 32px; + font: normal 11px 'Segoe UI', Tahoma, Verdana, Arial, Helvetica, sans-serif; + text-decoration: none; + vertical-align: top; + color: #000; + background-color: transparent; + background-position: 0 0; + background-repeat: no-repeat; +} +.icon:hover { + text-decoration: none; + color: #000; +} +.icon span { + display: block; + padding: 0 0 0 38px; + height: 32px; + width: 70px; + line-height: 32px; + cursor: pointer; +} +#asp { background-image: url('../img/glyph/btn_asp_bg.gif'); } +#aspnet { background-image: url('../img/glyph/btn_aspdotnet_bg.gif'); } +#coldfusion { background-image: url('../img/glyph/btn_coldfusion_bg.gif'); } +#perl { background-image: url('../img/glyph/btn_perl_bg.gif'); } +#php { background-image: url('../img/glyph/btn_php_bg.gif'); } +#python { background-image: url('../img/glyph/btn_python_bg.gif'); } +#ssi { background-image: url('../img/glyph/btn_ssi_bg.gif'); } +#fcgi { background-image: url('../img/glyph/btn_fast_cgi_bg.gif'); } +#miva { background-image: url('../img/glyph/btn_miva_bg.gif'); } +.test { + width: 680px; +} +.test .pathbar { + color: #7b7b7b; +} +.test .pathbar a { + text-decoration: underline; + color: #7b7b7b; +} +.test .pathbar a:hover { + color: #39f; +} +.test h2 { + margin: 10px 0; + font-size: 17px; + font-weight: normal; +} +.test .tab-content { + border: 1px solid #8b919f; + padding: 10px; +} +fieldset { + border: 1px solid #b8c1d0; + margin: 0; + padding: 0 10px 10px; +} +legend { + margin: 0; + padding: 0 2px 5px; + vertical-align: middle; + font-weight: bold; + color: #002c61; +} +.form-fields { + padding-top: 6px; +} +.formFields { + margin: 5px 0; +} +.formFields, +.formFields input, +.formFields select, +.formFields textarea { + font: normal 11px 'Segoe UI', Tahoma, Verdana, Arial, Helvetica, sans-serif; +} +.formFields td.name { + padding: 0 10px 10px 0; + width: 200px; + vertical-align: top; + font-weight: bold; +} +.buttonsContainer { + margin-top: 10px; + text-align: right; +} +.buttonsContainer .commonButton { + display: inline; + margin-left: 14px; +} +.buttonsContainer .commonButton span { + display: none; +} +.buttonsContainer .commonButton button { + border: 0; + width: 91px; + height: 21px; + text-align: center; + white-space: nowrap; + cursor: pointer; + font: normal 11px 'Segoe UI', Tahoma, Verdana, Arial, Helvetica, sans-serif; + background: transparent url('../img/glyph/btn_bg.gif') 0 0 no-repeat; +} +.commonButton button[disabled] { + color: #999; + background-image: url('../img/glyph/btn_bg-disabled.gif'); +} +#bid-ok button { + padding-left: 8px; + background-image: url('../img/glyph/btn_ok_bg.gif'); +} +.commonButton button:hover { + background-position: 0 -21px; +} +.commonButton button[disabled]:hover { + background-position: 0 0; +} +.testRelults#testFailed { + border: 1px solid #ccc; + margin: 0 0 10px; + padding: 10px 10px 10px 32px; + background: #fde9e5 url('../img/icons/fail.gif') 10px 11px no-repeat; +} +.testRelults#testSuccessful { + border: 1px solid #ccc; + margin: 0 0 10px; + padding: 10px 32px; + background: #bff7b4 url('../img/icons/success.gif') 10px 11px no-repeat; +} +.testResult { + font-weight: bold; +} +.test-data { + text-align: left; +} +.test-data table { + border-collapse: collapse; + margin-bottom: 10px; + width: 100%; + color: #000; + background-color: white; +} +.test-data table th, +.test-data table td { + padding: 4px 6px; +} +.test-data tr.subhead { + background-color: #ccc; +} +.test-data th.alt { + color: white; + background-color: black; +} +.test-data tr.alt { + background-color: #eee; +} \ No newline at end of file diff --git a/data/css/tabs.css b/data/css/tabs.css new file mode 100644 index 0000000..ca83b6e --- /dev/null +++ b/data/css/tabs.css @@ -0,0 +1,49 @@ +#tabs { + float: none; + margin-bottom: -1px; + padding: 0 14px; + position: relative; + width: auto; + line-height: normal; + white-space: nowrap; + background: none; +} +#tabs ul { + margin: 0; + padding: 0; + list-style: none; +} +#tabs li { + display: -moz-inline-box; + display: inline-block; + border: 1px solid #7f828b; + margin-left: -3px; + padding: 0; + vertical-align: bottom; +} +#tabs li a, +#tabs li a:hover { + display: block; + padding: 0 0 0 1px; + text-decoration: none; + color: #000; + background: #e9e9e9 url('../img/icons/tabs/tabs_bg.png') 0 0 no-repeat; +} +#tabs li a span { + display: block; + padding: 0 5px 0 4px; + height: 17px; + line-height: 17px; + cursor: pointer; + background: url('../img/icons/tabs/tabs_bg.png') 100% 0 no-repeat; +} +#tabs #current { + border-bottom: 1px solid #fcfcfc; + margin: 0 -1px 0 -4px; +} +*:first-child+html #tabs #current { margin: 0 -1px; } +* html #tabs #current { margin: 0 -1px; } +#tabs #current span { + padding: 1px 5px; + background: #fcfcfc; +} \ No newline at end of file diff --git a/data/es/accesibilidad.php b/data/es/accesibilidad.php new file mode 100644 index 0000000..479c208 --- /dev/null +++ b/data/es/accesibilidad.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/actividades.php b/data/es/actividades.php new file mode 100644 index 0000000..51744fc --- /dev/null +++ b/data/es/actividades.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/agradecimientos.php b/data/es/agradecimientos.php new file mode 100644 index 0000000..aa00512 --- /dev/null +++ b/data/es/agradecimientos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/biografia-didier-petit-de-meurville.php b/data/es/biografia-didier-petit-de-meurville.php new file mode 100644 index 0000000..0232f5b --- /dev/null +++ b/data/es/biografia-didier-petit-de-meurville.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/biografia-pietro-bubani.php b/data/es/biografia-pietro-bubani.php new file mode 100644 index 0000000..7a080d2 --- /dev/null +++ b/data/es/biografia-pietro-bubani.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/biografias.php b/data/es/biografias.php new file mode 100644 index 0000000..631600e --- /dev/null +++ b/data/es/biografias.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/contextualziacion.php b/data/es/contextualziacion.php new file mode 100644 index 0000000..5faebe9 --- /dev/null +++ b/data/es/contextualziacion.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/creditos.php b/data/es/creditos.php new file mode 100644 index 0000000..4c2aac7 --- /dev/null +++ b/data/es/creditos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/descripcion-plantas.php b/data/es/descripcion-plantas.php new file mode 100644 index 0000000..1492a75 --- /dev/null +++ b/data/es/descripcion-plantas.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/detalle-planta.php b/data/es/detalle-planta.php new file mode 100644 index 0000000..7090334 --- /dev/null +++ b/data/es/detalle-planta.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/excursiones-bubani-pais-vasco.php b/data/es/excursiones-bubani-pais-vasco.php new file mode 100644 index 0000000..1470d96 --- /dev/null +++ b/data/es/excursiones-bubani-pais-vasco.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/flora.php b/data/es/flora.php new file mode 100644 index 0000000..fc9d462 --- /dev/null +++ b/data/es/flora.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/fotografias.php b/data/es/fotografias.php new file mode 100644 index 0000000..b230271 --- /dev/null +++ b/data/es/fotografias.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/habitat-listado.php b/data/es/habitat-listado.php new file mode 100644 index 0000000..dcf6603 --- /dev/null +++ b/data/es/habitat-listado.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/habitat.php b/data/es/habitat.php new file mode 100644 index 0000000..5b4c843 --- /dev/null +++ b/data/es/habitat.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/includes/idioma.php b/data/es/includes/idioma.php new file mode 100644 index 0000000..b2c927a --- /dev/null +++ b/data/es/includes/idioma.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/index.php b/data/es/index.php new file mode 100644 index 0000000..f5dd267 --- /dev/null +++ b/data/es/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/lugar-fechas.php b/data/es/lugar-fechas.php new file mode 100644 index 0000000..7290ac2 --- /dev/null +++ b/data/es/lugar-fechas.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/mapa-web.php b/data/es/mapa-web.php new file mode 100644 index 0000000..d4942a8 --- /dev/null +++ b/data/es/mapa-web.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/opiniones-bubani-sobre-pais-vasco.php b/data/es/opiniones-bubani-sobre-pais-vasco.php new file mode 100644 index 0000000..2512a1c --- /dev/null +++ b/data/es/opiniones-bubani-sobre-pais-vasco.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/es/pirineos.php b/data/es/pirineos.php new file mode 100644 index 0000000..795740e --- /dev/null +++ b/data/es/pirineos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/accesibilidad.php b/data/eu/accesibilidad.php new file mode 100644 index 0000000..479c208 --- /dev/null +++ b/data/eu/accesibilidad.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/actividades.php b/data/eu/actividades.php new file mode 100644 index 0000000..51744fc --- /dev/null +++ b/data/eu/actividades.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/agradecimientos.php b/data/eu/agradecimientos.php new file mode 100644 index 0000000..aa00512 --- /dev/null +++ b/data/eu/agradecimientos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/biografia-didier-petit-de-meurville.php b/data/eu/biografia-didier-petit-de-meurville.php new file mode 100644 index 0000000..0232f5b --- /dev/null +++ b/data/eu/biografia-didier-petit-de-meurville.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/biografia-pietro-bubani.php b/data/eu/biografia-pietro-bubani.php new file mode 100644 index 0000000..7a080d2 --- /dev/null +++ b/data/eu/biografia-pietro-bubani.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/biografias.php b/data/eu/biografias.php new file mode 100644 index 0000000..631600e --- /dev/null +++ b/data/eu/biografias.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/contextualziacion.php b/data/eu/contextualziacion.php new file mode 100644 index 0000000..5faebe9 --- /dev/null +++ b/data/eu/contextualziacion.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/creditos.php b/data/eu/creditos.php new file mode 100644 index 0000000..4c2aac7 --- /dev/null +++ b/data/eu/creditos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/descripcion-plantas.php b/data/eu/descripcion-plantas.php new file mode 100644 index 0000000..1492a75 --- /dev/null +++ b/data/eu/descripcion-plantas.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/detalle-planta.php b/data/eu/detalle-planta.php new file mode 100644 index 0000000..7090334 --- /dev/null +++ b/data/eu/detalle-planta.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/excursiones-bubani-pais-vasco.php b/data/eu/excursiones-bubani-pais-vasco.php new file mode 100644 index 0000000..1470d96 --- /dev/null +++ b/data/eu/excursiones-bubani-pais-vasco.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/flora.php b/data/eu/flora.php new file mode 100644 index 0000000..fc9d462 --- /dev/null +++ b/data/eu/flora.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/fotografias.php b/data/eu/fotografias.php new file mode 100644 index 0000000..b230271 --- /dev/null +++ b/data/eu/fotografias.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/habitat-listado.php b/data/eu/habitat-listado.php new file mode 100644 index 0000000..dcf6603 --- /dev/null +++ b/data/eu/habitat-listado.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/habitat.php b/data/eu/habitat.php new file mode 100644 index 0000000..5b4c843 --- /dev/null +++ b/data/eu/habitat.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/includes/idioma.php b/data/eu/includes/idioma.php new file mode 100644 index 0000000..d914371 --- /dev/null +++ b/data/eu/includes/idioma.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/index.php b/data/eu/index.php new file mode 100644 index 0000000..f5dd267 --- /dev/null +++ b/data/eu/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/lugar-fechas.php b/data/eu/lugar-fechas.php new file mode 100644 index 0000000..7290ac2 --- /dev/null +++ b/data/eu/lugar-fechas.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/mapa-web.php b/data/eu/mapa-web.php new file mode 100644 index 0000000..d4942a8 --- /dev/null +++ b/data/eu/mapa-web.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/opiniones-bubani-sobre-pais-vasco.php b/data/eu/opiniones-bubani-sobre-pais-vasco.php new file mode 100644 index 0000000..2512a1c --- /dev/null +++ b/data/eu/opiniones-bubani-sobre-pais-vasco.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/eu/pirineos.php b/data/eu/pirineos.php new file mode 100644 index 0000000..795740e --- /dev/null +++ b/data/eu/pirineos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/favicon.ico b/data/favicon.ico new file mode 100644 index 0000000..03f6c32 Binary files /dev/null and b/data/favicon.ico differ diff --git a/data/flash/flash.php b/data/flash/flash.php new file mode 100644 index 0000000..1dee5c0 --- /dev/null +++ b/data/flash/flash.php @@ -0,0 +1,121 @@ +\n"; + echo " 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0',\n"; + echo " 'width', '$width',\n"; + echo " 'height', '$height',\n"; + echo " 'src', 'x',\n"; + echo " 'quality', 'high',\n"; + echo " 'pluginspage', 'http://www.macromedia.com/go/getflashplayer',\n"; + echo " 'align', 'middle',\n"; + echo " 'play', 'true',\n"; + echo " 'loop', 'true',\n"; + echo " 'scale', 'showall',\n"; + echo " 'FlashVars', '$flashvars',\n"; + echo " 'allowFullScreen', 'true',\n"; + echo " 'movie', '$swf'\n"; + echo " }\n"; + echo "\n"; + echo "\n"; + } + + function getflvsize($flv){ + $getID3 = new getID3; + $fileinfo = $getID3->analyze($flv); + if(!($fileinfo['meta']['onMetaData']['width'] && $fileinfo['meta']['onMetaData']['height'])) + return false; + $width = $fileinfo['meta']['onMetaData']['width']; + $height = $fileinfo['meta']['onMetaData']['height']; + return array($width, $height); + } + + function flvheader(){ + static $once=true; + + if($once){ + if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) + echo ""; + else + echo ""; + } + + $once = false; + } + + function flvstring($movie, $width=-1, $height=-1, $fgcolor='', $bgcolor='', $autoplay=false, $autoload=true, $autorewind=true, $volume=70, $loop=false, $mute=false, $muteonly=false, $clickurl='', $clicktarget=''){ + if(!file_exists($movie)) + return "Movie not found."; + if($width == -1 || $height == -1) + list($width, $height) = getflvsize($movie); + + $height += 40; + $retval = ''; + $options = array(); + + if($fgcolor && $fgcolor !== '' && $fgcolor !== 'default') + $options[] = "fgcolor=$fgcolor"; + if($bgcolor && $bgcolor !== '' && $bgcolor !== 'default') + $options[] = "bgcolor=$bgcolor"; + + if($autoplay && $autoplay !== '' && $autoplay !== 'default') + $options[] = 'autoplay=on'; + + if(!$autoload) + $options[] = 'autoload=off'; + if(!$autorewind) + $options[] = 'autorewind=off'; + + if($volume && $volume !== '' && $volume !== 'default') + $options[] = "volume=$volume"; + if($loop && $loop !== '' && $loop !== 'default') + $options[] = 'loop=on'; + if($mute && $mute !== '' && $mute !== 'default') + $options[] = 'mute=on'; + if($muteonly && $muteonly !== '' && $mute !== 'default') + $options[] = 'muteonly=on'; + if($clicktarget) + $options[] = "clicktarget=$clicktarget"; + if($clickurl) + $options[] = "clickurl=$clickurl"; + + $options = implode('&', $options); + + if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')) + $retval = "\n"; + + $retval .= "\n"; + $retval .= "\n"; + + return $retval; + } + + function flv($movie, $width=-1, $height=-1, $fgcolor='', $bgcolor='', $autoplay=false, $autoload=true, $autorewind=true, $volume=70, $loop=false, $mute=false, $muteonly=false, $clickurl='', $clicktarget=''){ + echo flvstring($movie, $width, $height, $fgcolor, $bgcolor, $autoplay, $autoload, $autorewind, $volume, $loop, $mute, $muteonly, $clickurl, $clicktarget); + } + +?> \ No newline at end of file diff --git a/data/flash/getid3.lib.php b/data/flash/getid3.lib.php new file mode 100644 index 0000000..b5146b7 --- /dev/null +++ b/data/flash/getid3.lib.php @@ -0,0 +1,1323 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// // +// getid3.lib.php - part of getID3() // +// See readme.txt for more details // +// /// +///////////////////////////////////////////////////////////////// + + +class getid3_lib +{ + + function PrintHexBytes($string, $hex=true, $spaces=true, $htmlsafe=true) { + $returnstring = ''; + for ($i = 0; $i < strlen($string); $i++) { + if ($hex) { + $returnstring .= str_pad(dechex(ord($string{$i})), 2, '0', STR_PAD_LEFT); + } else { + $returnstring .= ' '.(ereg("[\x20-\x7E]", $string{$i}) ? $string{$i} : ''); + } + if ($spaces) { + $returnstring .= ' '; + } + } + if ($htmlsafe) { + $returnstring = htmlentities($returnstring); + } + return $returnstring; + } + + function SafeStripSlashes($text) { + if (get_magic_quotes_gpc()) { + return stripslashes($text); + } + return $text; + } + + + function trunc($floatnumber) { + // truncates a floating-point number at the decimal point + // returns int (if possible, otherwise float) + if ($floatnumber >= 1) { + $truncatednumber = floor($floatnumber); + } elseif ($floatnumber <= -1) { + $truncatednumber = ceil($floatnumber); + } else { + $truncatednumber = 0; + } + if ($truncatednumber <= 1073741824) { // 2^30 + $truncatednumber = (int) $truncatednumber; + } + return $truncatednumber; + } + + + function CastAsInt($floatnum) { + // convert to float if not already + $floatnum = (float) $floatnum; + + // convert a float to type int, only if possible + if (getid3_lib::trunc($floatnum) == $floatnum) { + // it's not floating point + if ($floatnum <= 1073741824) { // 2^30 + // it's within int range + $floatnum = (int) $floatnum; + } + } + return $floatnum; + } + + + function DecimalBinary2Float($binarynumerator) { + $numerator = getid3_lib::Bin2Dec($binarynumerator); + $denominator = getid3_lib::Bin2Dec('1'.str_repeat('0', strlen($binarynumerator))); + return ($numerator / $denominator); + } + + + function NormalizeBinaryPoint($binarypointnumber, $maxbits=52) { + // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html + if (strpos($binarypointnumber, '.') === false) { + $binarypointnumber = '0.'.$binarypointnumber; + } elseif ($binarypointnumber{0} == '.') { + $binarypointnumber = '0'.$binarypointnumber; + } + $exponent = 0; + while (($binarypointnumber{0} != '1') || (substr($binarypointnumber, 1, 1) != '.')) { + if (substr($binarypointnumber, 1, 1) == '.') { + $exponent--; + $binarypointnumber = substr($binarypointnumber, 2, 1).'.'.substr($binarypointnumber, 3); + } else { + $pointpos = strpos($binarypointnumber, '.'); + $exponent += ($pointpos - 1); + $binarypointnumber = str_replace('.', '', $binarypointnumber); + $binarypointnumber = $binarypointnumber{0}.'.'.substr($binarypointnumber, 1); + } + } + $binarypointnumber = str_pad(substr($binarypointnumber, 0, $maxbits + 2), $maxbits + 2, '0', STR_PAD_RIGHT); + return array('normalized'=>$binarypointnumber, 'exponent'=>(int) $exponent); + } + + + function Float2BinaryDecimal($floatvalue) { + // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/binary.html + $maxbits = 128; // to how many bits of precision should the calculations be taken? + $intpart = getid3_lib::trunc($floatvalue); + $floatpart = abs($floatvalue - $intpart); + $pointbitstring = ''; + while (($floatpart != 0) && (strlen($pointbitstring) < $maxbits)) { + $floatpart *= 2; + $pointbitstring .= (string) getid3_lib::trunc($floatpart); + $floatpart -= getid3_lib::trunc($floatpart); + } + $binarypointnumber = decbin($intpart).'.'.$pointbitstring; + return $binarypointnumber; + } + + + function Float2String($floatvalue, $bits) { + // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee-expl.html + switch ($bits) { + case 32: + $exponentbits = 8; + $fractionbits = 23; + break; + + case 64: + $exponentbits = 11; + $fractionbits = 52; + break; + + default: + return false; + break; + } + if ($floatvalue >= 0) { + $signbit = '0'; + } else { + $signbit = '1'; + } + $normalizedbinary = getid3_lib::NormalizeBinaryPoint(getid3_lib::Float2BinaryDecimal($floatvalue), $fractionbits); + $biasedexponent = pow(2, $exponentbits - 1) - 1 + $normalizedbinary['exponent']; // (127 or 1023) +/- exponent + $exponentbitstring = str_pad(decbin($biasedexponent), $exponentbits, '0', STR_PAD_LEFT); + $fractionbitstring = str_pad(substr($normalizedbinary['normalized'], 2), $fractionbits, '0', STR_PAD_RIGHT); + + return getid3_lib::BigEndian2String(getid3_lib::Bin2Dec($signbit.$exponentbitstring.$fractionbitstring), $bits % 8, false); + } + + + function LittleEndian2Float($byteword) { + return getid3_lib::BigEndian2Float(strrev($byteword)); + } + + + function BigEndian2Float($byteword) { + // ANSI/IEEE Standard 754-1985, Standard for Binary Floating Point Arithmetic + // http://www.psc.edu/general/software/packages/ieee/ieee.html + // http://www.scri.fsu.edu/~jac/MAD3401/Backgrnd/ieee.html + + $bitword = getid3_lib::BigEndian2Bin($byteword); + $signbit = $bitword{0}; + + switch (strlen($byteword) * 8) { + case 32: + $exponentbits = 8; + $fractionbits = 23; + break; + + case 64: + $exponentbits = 11; + $fractionbits = 52; + break; + + case 80: + // 80-bit Apple SANE format + // http://www.mactech.com/articles/mactech/Vol.06/06.01/SANENormalized/ + $exponentstring = substr($bitword, 1, 15); + $isnormalized = intval($bitword{16}); + $fractionstring = substr($bitword, 17, 63); + $exponent = pow(2, getid3_lib::Bin2Dec($exponentstring) - 16383); + $fraction = $isnormalized + getid3_lib::DecimalBinary2Float($fractionstring); + $floatvalue = $exponent * $fraction; + if ($signbit == '1') { + $floatvalue *= -1; + } + return $floatvalue; + break; + + default: + return false; + break; + } + $exponentstring = substr($bitword, 1, $exponentbits); + $fractionstring = substr($bitword, $exponentbits + 1, $fractionbits); + $exponent = getid3_lib::Bin2Dec($exponentstring); + $fraction = getid3_lib::Bin2Dec($fractionstring); + + if (($exponent == (pow(2, $exponentbits) - 1)) && ($fraction != 0)) { + // Not a Number + $floatvalue = false; + } elseif (($exponent == (pow(2, $exponentbits) - 1)) && ($fraction == 0)) { + if ($signbit == '1') { + $floatvalue = '-infinity'; + } else { + $floatvalue = '+infinity'; + } + } elseif (($exponent == 0) && ($fraction == 0)) { + if ($signbit == '1') { + $floatvalue = -0; + } else { + $floatvalue = 0; + } + $floatvalue = ($signbit ? 0 : -0); + } elseif (($exponent == 0) && ($fraction != 0)) { + // These are 'unnormalized' values + $floatvalue = pow(2, (-1 * (pow(2, $exponentbits - 1) - 2))) * getid3_lib::DecimalBinary2Float($fractionstring); + if ($signbit == '1') { + $floatvalue *= -1; + } + } elseif ($exponent != 0) { + $floatvalue = pow(2, ($exponent - (pow(2, $exponentbits - 1) - 1))) * (1 + getid3_lib::DecimalBinary2Float($fractionstring)); + if ($signbit == '1') { + $floatvalue *= -1; + } + } + return (float) $floatvalue; + } + + + function BigEndian2Int($byteword, $synchsafe=false, $signed=false) { + $intvalue = 0; + $bytewordlen = strlen($byteword); + for ($i = 0; $i < $bytewordlen; $i++) { + if ($synchsafe) { // disregard MSB, effectively 7-bit bytes + $intvalue = $intvalue | (ord($byteword{$i}) & 0x7F) << (($bytewordlen - 1 - $i) * 7); + } else { + $intvalue += ord($byteword{$i}) * pow(256, ($bytewordlen - 1 - $i)); + } + } + if ($signed && !$synchsafe) { + // synchsafe ints are not allowed to be signed + switch ($bytewordlen) { + case 1: + case 2: + case 3: + case 4: + $signmaskbit = 0x80 << (8 * ($bytewordlen - 1)); + if ($intvalue & $signmaskbit) { + $intvalue = 0 - ($intvalue & ($signmaskbit - 1)); + } + break; + + default: + die('ERROR: Cannot have signed integers larger than 32-bits in getid3_lib::BigEndian2Int()'); + break; + } + } + return getid3_lib::CastAsInt($intvalue); + } + + + function LittleEndian2Int($byteword, $signed=false) { + return getid3_lib::BigEndian2Int(strrev($byteword), false, $signed); + } + + + function BigEndian2Bin($byteword) { + $binvalue = ''; + $bytewordlen = strlen($byteword); + for ($i = 0; $i < $bytewordlen; $i++) { + $binvalue .= str_pad(decbin(ord($byteword{$i})), 8, '0', STR_PAD_LEFT); + } + return $binvalue; + } + + + function BigEndian2String($number, $minbytes=1, $synchsafe=false, $signed=false) { + if ($number < 0) { + return false; + } + $maskbyte = (($synchsafe || $signed) ? 0x7F : 0xFF); + $intstring = ''; + if ($signed) { + if ($minbytes > 4) { + die('ERROR: Cannot have signed integers larger than 32-bits in getid3_lib::BigEndian2String()'); + } + $number = $number & (0x80 << (8 * ($minbytes - 1))); + } + while ($number != 0) { + $quotient = ($number / ($maskbyte + 1)); + $intstring = chr(ceil(($quotient - floor($quotient)) * $maskbyte)).$intstring; + $number = floor($quotient); + } + return str_pad($intstring, $minbytes, "\x00", STR_PAD_LEFT); + } + + + function Dec2Bin($number) { + while ($number >= 256) { + $bytes[] = (($number / 256) - (floor($number / 256))) * 256; + $number = floor($number / 256); + } + $bytes[] = $number; + $binstring = ''; + for ($i = 0; $i < count($bytes); $i++) { + $binstring = (($i == count($bytes) - 1) ? decbin($bytes[$i]) : str_pad(decbin($bytes[$i]), 8, '0', STR_PAD_LEFT)).$binstring; + } + return $binstring; + } + + + function Bin2Dec($binstring, $signed=false) { + $signmult = 1; + if ($signed) { + if ($binstring{0} == '1') { + $signmult = -1; + } + $binstring = substr($binstring, 1); + } + $decvalue = 0; + for ($i = 0; $i < strlen($binstring); $i++) { + $decvalue += ((int) substr($binstring, strlen($binstring) - $i - 1, 1)) * pow(2, $i); + } + return getid3_lib::CastAsInt($decvalue * $signmult); + } + + + function Bin2String($binstring) { + // return 'hi' for input of '0110100001101001' + $string = ''; + $binstringreversed = strrev($binstring); + for ($i = 0; $i < strlen($binstringreversed); $i += 8) { + $string = chr(getid3_lib::Bin2Dec(strrev(substr($binstringreversed, $i, 8)))).$string; + } + return $string; + } + + + function LittleEndian2String($number, $minbytes=1, $synchsafe=false) { + $intstring = ''; + while ($number > 0) { + if ($synchsafe) { + $intstring = $intstring.chr($number & 127); + $number >>= 7; + } else { + $intstring = $intstring.chr($number & 255); + $number >>= 8; + } + } + return str_pad($intstring, $minbytes, "\x00", STR_PAD_RIGHT); + } + + + function array_merge_clobber($array1, $array2) { + // written by kchireability*com + // taken from http://www.php.net/manual/en/function.array-merge-recursive.php + if (!is_array($array1) || !is_array($array2)) { + return false; + } + $newarray = $array1; + foreach ($array2 as $key => $val) { + if (is_array($val) && isset($newarray[$key]) && is_array($newarray[$key])) { + $newarray[$key] = getid3_lib::array_merge_clobber($newarray[$key], $val); + } else { + $newarray[$key] = $val; + } + } + return $newarray; + } + + + function array_merge_noclobber($array1, $array2) { + if (!is_array($array1) || !is_array($array2)) { + return false; + } + $newarray = $array1; + foreach ($array2 as $key => $val) { + if (is_array($val) && isset($newarray[$key]) && is_array($newarray[$key])) { + $newarray[$key] = getid3_lib::array_merge_noclobber($newarray[$key], $val); + } elseif (!isset($newarray[$key])) { + $newarray[$key] = $val; + } + } + return $newarray; + } + + + function fileextension($filename, $numextensions=1) { + if (strstr($filename, '.')) { + $reversedfilename = strrev($filename); + $offset = 0; + for ($i = 0; $i < $numextensions; $i++) { + $offset = strpos($reversedfilename, '.', $offset + 1); + if ($offset === false) { + return ''; + } + } + return strrev(substr($reversedfilename, 0, $offset)); + } + return ''; + } + + + function PlaytimeString($playtimeseconds) { + $contentseconds = round((($playtimeseconds / 60) - floor($playtimeseconds / 60)) * 60); + $contentminutes = floor($playtimeseconds / 60); + if ($contentseconds >= 60) { + $contentseconds -= 60; + $contentminutes++; + } + return intval($contentminutes).':'.str_pad($contentseconds, 2, 0, STR_PAD_LEFT); + } + + + function image_type_to_mime_type($imagetypeid) { + // only available in PHP v4.3.0+ + static $image_type_to_mime_type = array(); + if (empty($image_type_to_mime_type)) { + $image_type_to_mime_type[1] = 'image/gif'; // GIF + $image_type_to_mime_type[2] = 'image/jpeg'; // JPEG + $image_type_to_mime_type[3] = 'image/png'; // PNG + $image_type_to_mime_type[4] = 'application/x-shockwave-flash'; // Flash + $image_type_to_mime_type[5] = 'image/psd'; // PSD + $image_type_to_mime_type[6] = 'image/bmp'; // BMP + $image_type_to_mime_type[7] = 'image/tiff'; // TIFF: little-endian (Intel) + $image_type_to_mime_type[8] = 'image/tiff'; // TIFF: big-endian (Motorola) + //$image_type_to_mime_type[9] = 'image/jpc'; // JPC + //$image_type_to_mime_type[10] = 'image/jp2'; // JPC + //$image_type_to_mime_type[11] = 'image/jpx'; // JPC + //$image_type_to_mime_type[12] = 'image/jb2'; // JPC + $image_type_to_mime_type[13] = 'application/x-shockwave-flash'; // Shockwave + $image_type_to_mime_type[14] = 'image/iff'; // IFF + } + return (isset($image_type_to_mime_type[$imagetypeid]) ? $image_type_to_mime_type[$imagetypeid] : 'application/octet-stream'); + } + + + function DateMac2Unix($macdate) { + // Macintosh timestamp: seconds since 00:00h January 1, 1904 + // UNIX timestamp: seconds since 00:00h January 1, 1970 + return getid3_lib::CastAsInt($macdate - 2082844800); + } + + + function FixedPoint8_8($rawdata) { + return getid3_lib::BigEndian2Int(substr($rawdata, 0, 1)) + (float) (getid3_lib::BigEndian2Int(substr($rawdata, 1, 1)) / pow(2, 8)); + } + + + function FixedPoint16_16($rawdata) { + return getid3_lib::BigEndian2Int(substr($rawdata, 0, 2)) + (float) (getid3_lib::BigEndian2Int(substr($rawdata, 2, 2)) / pow(2, 16)); + } + + + function FixedPoint2_30($rawdata) { + $binarystring = getid3_lib::BigEndian2Bin($rawdata); + return getid3_lib::Bin2Dec(substr($binarystring, 0, 2)) + (float) (getid3_lib::Bin2Dec(substr($binarystring, 2, 30)) / 1073741824); + } + + + function CreateDeepArray($ArrayPath, $Separator, $Value) { + // assigns $Value to a nested array path: + // $foo = getid3_lib::CreateDeepArray('/path/to/my', '/', 'file.txt') + // is the same as: + // $foo = array('path'=>array('to'=>'array('my'=>array('file.txt')))); + // or + // $foo['path']['to']['my'] = 'file.txt'; + while ($ArrayPath && ($ArrayPath{0} == $Separator)) { + $ArrayPath = substr($ArrayPath, 1); + } + if (($pos = strpos($ArrayPath, $Separator)) !== false) { + $ReturnedArray[substr($ArrayPath, 0, $pos)] = getid3_lib::CreateDeepArray(substr($ArrayPath, $pos + 1), $Separator, $Value); + } else { + $ReturnedArray[$ArrayPath] = $Value; + } + return $ReturnedArray; + } + + function array_max($arraydata, $returnkey=false) { + $maxvalue = false; + $maxkey = false; + foreach ($arraydata as $key => $value) { + if (!is_array($value)) { + if ($value > $maxvalue) { + $maxvalue = $value; + $maxkey = $key; + } + } + } + return ($returnkey ? $maxkey : $maxvalue); + } + + function array_min($arraydata, $returnkey=false) { + $minvalue = false; + $minkey = false; + foreach ($arraydata as $key => $value) { + if (!is_array($value)) { + if ($value > $minvalue) { + $minvalue = $value; + $minkey = $key; + } + } + } + return ($returnkey ? $minkey : $minvalue); + } + + + function md5_file($file) { + + // md5_file() exists in PHP 4.2.0+. + if (function_exists('md5_file')) { + return md5_file($file); + } + + if (GETID3_OS_ISWINDOWS) { + + $RequiredFiles = array('cygwin1.dll', 'md5sum.exe'); + foreach ($RequiredFiles as $required_file) { + if (!is_readable(GETID3_HELPERAPPSDIR.$required_file)) { + die(implode(' and ', $RequiredFiles).' are required in '.GETID3_HELPERAPPSDIR.' for getid3_lib::md5_file() to function under Windows in PHP < v4.2.0'); + } + } + $commandline = GETID3_HELPERAPPSDIR.'md5sum.exe "'.str_replace('/', DIRECTORY_SEPARATOR, $file).'"'; + if (ereg("^[\\]?([0-9a-f]{32})", strtolower(`$commandline`), $r)) { + return $r[1]; + } + + } else { + + // The following works under UNIX only + $file = str_replace('`', '\\`', $file); + if (ereg("^([0-9a-f]{32})[ \t\n\r]", `md5sum "$file"`, $r)) { + return $r[1]; + } + + } + return false; + } + + + function sha1_file($file) { + + // sha1_file() exists in PHP 4.3.0+. + if (function_exists('sha1_file')) { + return sha1_file($file); + } + + $file = str_replace('`', '\\`', $file); + + if (GETID3_OS_ISWINDOWS) { + + $RequiredFiles = array('cygwin1.dll', 'sha1sum.exe'); + foreach ($RequiredFiles as $required_file) { + if (!is_readable(GETID3_HELPERAPPSDIR.$required_file)) { + die(implode(' and ', $RequiredFiles).' are required in '.GETID3_HELPERAPPSDIR.' for getid3_lib::sha1_file() to function under Windows in PHP < v4.3.0'); + } + } + $commandline = GETID3_HELPERAPPSDIR.'sha1sum.exe "'.str_replace('/', DIRECTORY_SEPARATOR, $file).'"'; + if (ereg("^sha1=([0-9a-f]{40})", strtolower(`$commandline`), $r)) { + return $r[1]; + } + + } else { + + $commandline = 'sha1sum '.escapeshellarg($file).''; + if (ereg("^([0-9a-f]{40})[ \t\n\r]", strtolower(`$commandline`), $r)) { + return $r[1]; + } + + } + + return false; + } + + + // Allan Hansen + // getid3_lib::md5_data() - returns md5sum for a file from startuing position to absolute end position + function hash_data($file, $offset, $end, $algorithm) { + + switch ($algorithm) { + case 'md5': + $hash_function = 'md5_file'; + $unix_call = 'md5sum'; + $windows_call = 'md5sum.exe'; + $hash_length = 32; + break; + + case 'sha1': + $hash_function = 'sha1_file'; + $unix_call = 'sha1sum'; + $windows_call = 'sha1sum.exe'; + $hash_length = 40; + break; + + default: + die('Invalid algorithm ('.$algorithm.') in getid3_lib::hash_data()'); + break; + } + $size = $end - $offset; + while (true) { + if (GETID3_OS_ISWINDOWS) { + + // It seems that sha1sum.exe for Windows only works on physical files, does not accept piped data + // Fall back to create-temp-file method: + if ($algorithm == 'sha1') { + break; + } + + $RequiredFiles = array('cygwin1.dll', 'head.exe', 'tail.exe', $windows_call); + foreach ($RequiredFiles as $required_file) { + if (!is_readable(GETID3_HELPERAPPSDIR.$required_file)) { + // helper apps not available - fall back to old method + break; + } + } + $commandline = GETID3_HELPERAPPSDIR.'head.exe -c '.$end.' "'.escapeshellarg(str_replace('/', DIRECTORY_SEPARATOR, $file)).'" | '; + $commandline .= GETID3_HELPERAPPSDIR.'tail.exe -c '.$size.' | '; + $commandline .= GETID3_HELPERAPPSDIR.$windows_call; + + } else { + + $commandline = 'head -c'.$end.' '.escapeshellarg($file).' | '; + $commandline .= 'tail -c'.$size.' | '; + $commandline .= $unix_call; + + } + if ((bool) ini_get('safe_mode')) { + $ThisFileInfo['warning'][] = 'PHP running in Safe Mode - backtick operator not available, using slower non-system-call '.$algorithm.' algorithm'; + break; + } + return substr(`$commandline`, 0, $hash_length); + } + + // try to create a temporary file in the system temp directory - invalid dirname should force to system temp dir + if (($data_filename = tempnam('*', 'getID3')) === false) { + // can't find anywhere to create a temp file, just die + return false; + } + + // Init + $result = false; + + // copy parts of file + if ($fp = @fopen($file, 'rb')) { + + if ($fp_data = @fopen($data_filename, 'wb')) { + + fseek($fp, $offset, SEEK_SET); + $byteslefttowrite = $end - $offset; + while (($byteslefttowrite > 0) && ($buffer = fread($fp, GETID3_FREAD_BUFFER_SIZE))) { + $byteswritten = fwrite($fp_data, $buffer, $byteslefttowrite); + $byteslefttowrite -= $byteswritten; + } + fclose($fp_data); + $result = getid3_lib::$hash_function($data_filename); + + } + fclose($fp); + } + unlink($data_filename); + return $result; + } + + + function iconv_fallback_int_utf8($charval) { + if ($charval < 128) { + // 0bbbbbbb + $newcharstring = chr($charval); + } elseif ($charval < 2048) { + // 110bbbbb 10bbbbbb + $newcharstring = chr(($charval >> 6) | 0xC0); + $newcharstring .= chr(($charval & 0x3F) | 0x80); + } elseif ($charval < 65536) { + // 1110bbbb 10bbbbbb 10bbbbbb + $newcharstring = chr(($charval >> 12) | 0xE0); + $newcharstring .= chr(($charval >> 6) | 0xC0); + $newcharstring .= chr(($charval & 0x3F) | 0x80); + } else { + // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb + $newcharstring = chr(($charval >> 18) | 0xF0); + $newcharstring .= chr(($charval >> 12) | 0xC0); + $newcharstring .= chr(($charval >> 6) | 0xC0); + $newcharstring .= chr(($charval & 0x3F) | 0x80); + } + return $newcharstring; + } + + // ISO-8859-1 => UTF-8 + function iconv_fallback_iso88591_utf8($string, $bom=false) { + if (function_exists('utf8_encode')) { + return utf8_encode($string); + } + // utf8_encode() unavailable, use getID3()'s iconv_fallback() conversions (possibly PHP is compiled without XML support) + $newcharstring = ''; + if ($bom) { + $newcharstring .= "\xEF\xBB\xBF"; + } + for ($i = 0; $i < strlen($string); $i++) { + $charval = ord($string{$i}); + $newcharstring .= getid3_lib::iconv_fallback_int_utf8($charval); + } + return $newcharstring; + } + + // ISO-8859-1 => UTF-16BE + function iconv_fallback_iso88591_utf16be($string, $bom=false) { + $newcharstring = ''; + if ($bom) { + $newcharstring .= "\xFE\xFF"; + } + for ($i = 0; $i < strlen($string); $i++) { + $newcharstring .= "\x00".$string{$i}; + } + return $newcharstring; + } + + // ISO-8859-1 => UTF-16LE + function iconv_fallback_iso88591_utf16le($string, $bom=false) { + $newcharstring = ''; + if ($bom) { + $newcharstring .= "\xFF\xFE"; + } + for ($i = 0; $i < strlen($string); $i++) { + $newcharstring .= $string{$i}."\x00"; + } + return $newcharstring; + } + + // ISO-8859-1 => UTF-16LE (BOM) + function iconv_fallback_iso88591_utf16($string) { + return getid3_lib::iconv_fallback_iso88591_utf16le($string, true); + } + + // UTF-8 => ISO-8859-1 + function iconv_fallback_utf8_iso88591($string) { + if (function_exists('utf8_decode')) { + return utf8_decode($string); + } + // utf8_decode() unavailable, use getID3()'s iconv_fallback() conversions (possibly PHP is compiled without XML support) + $newcharstring = ''; + $offset = 0; + $stringlength = strlen($string); + while ($offset < $stringlength) { + if ((ord($string{$offset}) | 0x07) == 0xF7) { + // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) & + ((ord($string{($offset + 1)}) & 0x3F) << 12) & + ((ord($string{($offset + 2)}) & 0x3F) << 6) & + (ord($string{($offset + 3)}) & 0x3F); + $offset += 4; + } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) { + // 1110bbbb 10bbbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) & + ((ord($string{($offset + 1)}) & 0x3F) << 6) & + (ord($string{($offset + 2)}) & 0x3F); + $offset += 3; + } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) { + // 110bbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) & + (ord($string{($offset + 1)}) & 0x3F); + $offset += 2; + } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) { + // 0bbbbbbb + $charval = ord($string{$offset}); + $offset += 1; + } else { + // error? throw some kind of warning here? + $charval = false; + $offset += 1; + } + if ($charval !== false) { + $newcharstring .= (($charval < 256) ? chr($charval) : '?'); + } + } + return $newcharstring; + } + + // UTF-8 => UTF-16BE + function iconv_fallback_utf8_utf16be($string, $bom=false) { + $newcharstring = ''; + if ($bom) { + $newcharstring .= "\xFE\xFF"; + } + $offset = 0; + $stringlength = strlen($string); + while ($offset < $stringlength) { + if ((ord($string{$offset}) | 0x07) == 0xF7) { + // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) & + ((ord($string{($offset + 1)}) & 0x3F) << 12) & + ((ord($string{($offset + 2)}) & 0x3F) << 6) & + (ord($string{($offset + 3)}) & 0x3F); + $offset += 4; + } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) { + // 1110bbbb 10bbbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) & + ((ord($string{($offset + 1)}) & 0x3F) << 6) & + (ord($string{($offset + 2)}) & 0x3F); + $offset += 3; + } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) { + // 110bbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) & + (ord($string{($offset + 1)}) & 0x3F); + $offset += 2; + } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) { + // 0bbbbbbb + $charval = ord($string{$offset}); + $offset += 1; + } else { + // error? throw some kind of warning here? + $charval = false; + $offset += 1; + } + if ($charval !== false) { + $newcharstring .= (($charval < 65536) ? getid3_lib::BigEndian2String($charval, 2) : "\x00".'?'); + } + } + return $newcharstring; + } + + // UTF-8 => UTF-16LE + function iconv_fallback_utf8_utf16le($string, $bom=false) { + $newcharstring = ''; + if ($bom) { + $newcharstring .= "\xFF\xFE"; + } + $offset = 0; + $stringlength = strlen($string); + while ($offset < $stringlength) { + if ((ord($string{$offset}) | 0x07) == 0xF7) { + // 11110bbb 10bbbbbb 10bbbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x07) << 18) & + ((ord($string{($offset + 1)}) & 0x3F) << 12) & + ((ord($string{($offset + 2)}) & 0x3F) << 6) & + (ord($string{($offset + 3)}) & 0x3F); + $offset += 4; + } elseif ((ord($string{$offset}) | 0x0F) == 0xEF) { + // 1110bbbb 10bbbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x0F) << 12) & + ((ord($string{($offset + 1)}) & 0x3F) << 6) & + (ord($string{($offset + 2)}) & 0x3F); + $offset += 3; + } elseif ((ord($string{$offset}) | 0x1F) == 0xDF) { + // 110bbbbb 10bbbbbb + $charval = ((ord($string{($offset + 0)}) & 0x1F) << 6) & + (ord($string{($offset + 1)}) & 0x3F); + $offset += 2; + } elseif ((ord($string{$offset}) | 0x7F) == 0x7F) { + // 0bbbbbbb + $charval = ord($string{$offset}); + $offset += 1; + } else { + // error? maybe throw some warning here? + $charval = false; + $offset += 1; + } + if ($charval !== false) { + $newcharstring .= (($charval < 65536) ? getid3_lib::LittleEndian2String($charval, 2) : '?'."\x00"); + } + } + return $newcharstring; + } + + // UTF-8 => UTF-16LE (BOM) + function iconv_fallback_utf8_utf16($string) { + return getid3_lib::iconv_fallback_utf8_utf16le($string, true); + } + + // UTF-16BE => UTF-8 + function iconv_fallback_utf16be_utf8($string) { + if (substr($string, 0, 2) == "\xFE\xFF") { + // strip BOM + $string = substr($string, 2); + } + $newcharstring = ''; + for ($i = 0; $i < strlen($string); $i += 2) { + $charval = getid3_lib::BigEndian2Int(substr($string, $i, 2)); + $newcharstring .= getid3_lib::iconv_fallback_int_utf8($charval); + } + return $newcharstring; + } + + // UTF-16LE => UTF-8 + function iconv_fallback_utf16le_utf8($string) { + if (substr($string, 0, 2) == "\xFF\xFE") { + // strip BOM + $string = substr($string, 2); + } + $newcharstring = ''; + for ($i = 0; $i < strlen($string); $i += 2) { + $charval = getid3_lib::LittleEndian2Int(substr($string, $i, 2)); + $newcharstring .= getid3_lib::iconv_fallback_int_utf8($charval); + } + return $newcharstring; + } + + // UTF-16BE => ISO-8859-1 + function iconv_fallback_utf16be_iso88591($string) { + if (substr($string, 0, 2) == "\xFE\xFF") { + // strip BOM + $string = substr($string, 2); + } + $newcharstring = ''; + for ($i = 0; $i < strlen($string); $i += 2) { + $charval = getid3_lib::BigEndian2Int(substr($string, $i, 2)); + $newcharstring .= (($charval < 256) ? chr($charval) : '?'); + } + return $newcharstring; + } + + // UTF-16LE => ISO-8859-1 + function iconv_fallback_utf16le_iso88591($string) { + if (substr($string, 0, 2) == "\xFF\xFE") { + // strip BOM + $string = substr($string, 2); + } + $newcharstring = ''; + for ($i = 0; $i < strlen($string); $i += 2) { + $charval = getid3_lib::LittleEndian2Int(substr($string, $i, 2)); + $newcharstring .= (($charval < 256) ? chr($charval) : '?'); + } + return $newcharstring; + } + + // UTF-16 (BOM) => ISO-8859-1 + function iconv_fallback_utf16_iso88591($string) { + $bom = substr($string, 0, 2); + if ($bom == "\xFE\xFF") { + return getid3_lib::iconv_fallback_utf16be_iso88591(substr($string, 2)); + } elseif ($bom == "\xFF\xFE") { + return getid3_lib::iconv_fallback_utf16le_iso88591(substr($string, 2)); + } + return $string; + } + + // UTF-16 (BOM) => UTF-8 + function iconv_fallback_utf16_utf8($string) { + $bom = substr($string, 0, 2); + if ($bom == "\xFE\xFF") { + return getid3_lib::iconv_fallback_utf16be_utf8(substr($string, 2)); + } elseif ($bom == "\xFF\xFE") { + return getid3_lib::iconv_fallback_utf16le_utf8(substr($string, 2)); + } + return $string; + } + + function iconv_fallback($in_charset, $out_charset, $string) { + + if ($in_charset == $out_charset) { + return $string; + } + + static $iconv_broken_or_unavailable = array(); + if (is_null(@$iconv_broken_or_unavailable[$in_charset.'_'.$out_charset])) { + $GETID3_ICONV_TEST_STRING = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ '; + + // Check iconv() + if (function_exists('iconv')) { + if (@iconv($in_charset, 'ISO-8859-1', @iconv('ISO-8859-1', $in_charset, $GETID3_ICONV_TEST_STRING)) == $GETID3_ICONV_TEST_STRING) { + if (@iconv($out_charset, 'ISO-8859-1', @iconv('ISO-8859-1', $out_charset, $GETID3_ICONV_TEST_STRING)) == $GETID3_ICONV_TEST_STRING) { + // everything works, use iconv() + $iconv_broken_or_unavailable[$in_charset.'_'.$out_charset] = false; + } else { + // iconv() available, but broken. Use getID3()'s iconv_fallback() conversions instead + // known issue in PHP v4.1.x + $iconv_broken_or_unavailable[$in_charset.'_'.$out_charset] = true; + } + } else { + // iconv() available, but broken. Use getID3()'s iconv_fallback() conversions instead + // known issue in PHP v4.1.x + $iconv_broken_or_unavailable[$in_charset.'_'.$out_charset] = true; + } + } else { + // iconv() unavailable, use getID3()'s iconv_fallback() conversions + $iconv_broken_or_unavailable[$in_charset.'_'.$out_charset] = true; + } + } + + if ($iconv_broken_or_unavailable[$in_charset.'_'.$out_charset]) { + static $ConversionFunctionList = array(); + if (empty($ConversionFunctionList)) { + $ConversionFunctionList['ISO-8859-1']['UTF-8'] = 'iconv_fallback_iso88591_utf8'; + $ConversionFunctionList['ISO-8859-1']['UTF-16'] = 'iconv_fallback_iso88591_utf16'; + $ConversionFunctionList['ISO-8859-1']['UTF-16BE'] = 'iconv_fallback_iso88591_utf16be'; + $ConversionFunctionList['ISO-8859-1']['UTF-16LE'] = 'iconv_fallback_iso88591_utf16le'; + $ConversionFunctionList['UTF-8']['ISO-8859-1'] = 'iconv_fallback_utf8_iso88591'; + $ConversionFunctionList['UTF-8']['UTF-16'] = 'iconv_fallback_utf8_utf16'; + $ConversionFunctionList['UTF-8']['UTF-16BE'] = 'iconv_fallback_utf8_utf16be'; + $ConversionFunctionList['UTF-8']['UTF-16LE'] = 'iconv_fallback_utf8_utf16le'; + $ConversionFunctionList['UTF-16']['ISO-8859-1'] = 'iconv_fallback_utf16_iso88591'; + $ConversionFunctionList['UTF-16']['UTF-8'] = 'iconv_fallback_utf16_utf8'; + $ConversionFunctionList['UTF-16LE']['ISO-8859-1'] = 'iconv_fallback_utf16le_iso88591'; + $ConversionFunctionList['UTF-16LE']['UTF-8'] = 'iconv_fallback_utf16le_utf8'; + $ConversionFunctionList['UTF-16BE']['ISO-8859-1'] = 'iconv_fallback_utf16be_iso88591'; + $ConversionFunctionList['UTF-16BE']['UTF-8'] = 'iconv_fallback_utf16be_utf8'; + } + if (isset($ConversionFunctionList[strtoupper($in_charset)][strtoupper($out_charset)])) { + $ConversionFunction = $ConversionFunctionList[strtoupper($in_charset)][strtoupper($out_charset)]; + return getid3_lib::$ConversionFunction($string); + } + die('PHP does not have iconv() support - cannot convert from '.$in_charset.' to '.$out_charset); + } + + if ($converted_string = @iconv($in_charset, $out_charset.'//TRANSLIT', $string)) { + switch ($out_charset) { + case 'ISO-8859-1': + $converted_string = rtrim($converted_string, "\x00"); + break; + } + return $converted_string; + } + + // iconv() may sometimes fail with "illegal character in input string" error message + // and return an empty string, but returning the unconverted string is more useful + return $string; + } + + + function MultiByteCharString2HTML($string, $charset='ISO-8859-1') { + $HTMLstring = ''; + + switch ($charset) { + case 'ISO-8859-1': + case 'ISO8859-1': + case 'ISO-8859-15': + case 'ISO8859-15': + case 'cp866': + case 'ibm866': + case '866': + case 'cp1251': + case 'Windows-1251': + case 'win-1251': + case '1251': + case 'cp1252': + case 'Windows-1252': + case '1252': + case 'KOI8-R': + case 'koi8-ru': + case 'koi8r': + case 'BIG5': + case '950': + case 'GB2312': + case '936': + case 'BIG5-HKSCS': + case 'Shift_JIS': + case 'SJIS': + case '932': + case 'EUC-JP': + case 'EUCJP': + $HTMLstring = htmlentities($string, ENT_COMPAT, $charset); + break; + + case 'UTF-8': + $strlen = strlen($string); + for ($i = 0; $i < $strlen; $i++) { + $char_ord_val = ord($string{$i}); + $charval = 0; + if ($char_ord_val < 0x80) { + $charval = $char_ord_val; + } elseif ((($char_ord_val & 0xF0) >> 4) == 0x0F) { + $charval = (($char_ord_val & 0x07) << 18); + $charval += ((ord($string{++$i}) & 0x3F) << 12); + $charval += ((ord($string{++$i}) & 0x3F) << 6); + $charval += (ord($string{++$i}) & 0x3F); + } elseif ((($char_ord_val & 0xE0) >> 5) == 0x07) { + $charval = (($char_ord_val & 0x0F) << 12); + $charval += ((ord($string{++$i}) & 0x3F) << 6); + $charval += (ord($string{++$i}) & 0x3F); + } elseif ((($char_ord_val & 0xC0) >> 6) == 0x03) { + $charval = (($char_ord_val & 0x1F) << 6); + $charval += (ord($string{++$i}) & 0x3F); + } + if (($charval >= 32) && ($charval <= 127)) { + $HTMLstring .= chr($charval); + } else { + $HTMLstring .= '&#'.$charval.';'; + } + } + break; + + case 'UTF-16LE': + for ($i = 0; $i < strlen($string); $i += 2) { + $charval = getid3_lib::LittleEndian2Int(substr($string, $i, 2)); + if (($charval >= 32) && ($charval <= 127)) { + $HTMLstring .= chr($charval); + } else { + $HTMLstring .= '&#'.$charval.';'; + } + } + break; + + case 'UTF-16BE': + for ($i = 0; $i < strlen($string); $i += 2) { + $charval = getid3_lib::BigEndian2Int(substr($string, $i, 2)); + if (($charval >= 32) && ($charval <= 127)) { + $HTMLstring .= chr($charval); + } else { + $HTMLstring .= '&#'.$charval.';'; + } + } + break; + + default: + $HTMLstring = 'ERROR: Character set "'.$charset.'" not supported in MultiByteCharString2HTML()'; + break; + } + return $HTMLstring; + } + + + + function RGADnameLookup($namecode) { + static $RGADname = array(); + if (empty($RGADname)) { + $RGADname[0] = 'not set'; + $RGADname[1] = 'Track Gain Adjustment'; + $RGADname[2] = 'Album Gain Adjustment'; + } + + return (isset($RGADname[$namecode]) ? $RGADname[$namecode] : ''); + } + + + function RGADoriginatorLookup($originatorcode) { + static $RGADoriginator = array(); + if (empty($RGADoriginator)) { + $RGADoriginator[0] = 'unspecified'; + $RGADoriginator[1] = 'pre-set by artist/producer/mastering engineer'; + $RGADoriginator[2] = 'set by user'; + $RGADoriginator[3] = 'determined automatically'; + } + + return (isset($RGADoriginator[$originatorcode]) ? $RGADoriginator[$originatorcode] : ''); + } + + + function RGADadjustmentLookup($rawadjustment, $signbit) { + $adjustment = $rawadjustment / 10; + if ($signbit == 1) { + $adjustment *= -1; + } + return (float) $adjustment; + } + + + function RGADgainString($namecode, $originatorcode, $replaygain) { + if ($replaygain < 0) { + $signbit = '1'; + } else { + $signbit = '0'; + } + $storedreplaygain = intval(round($replaygain * 10)); + $gainstring = str_pad(decbin($namecode), 3, '0', STR_PAD_LEFT); + $gainstring .= str_pad(decbin($originatorcode), 3, '0', STR_PAD_LEFT); + $gainstring .= $signbit; + $gainstring .= str_pad(decbin($storedreplaygain), 9, '0', STR_PAD_LEFT); + + return $gainstring; + } + + function RGADamplitude2dB($amplitude) { + return 20 * log10($amplitude); + } + + + function GetDataImageSize($imgData) { + $GetDataImageSize = false; + if ($tempfilename = tempnam('*', 'getID3')) { + if ($tmp = @fopen($tempfilename, 'wb')) { + fwrite($tmp, $imgData); + fclose($tmp); + $GetDataImageSize = @GetImageSize($tempfilename); + } + unlink($tempfilename); + } + return $GetDataImageSize; + } + + function ImageTypesLookup($imagetypeid) { + static $ImageTypesLookup = array(); + if (empty($ImageTypesLookup)) { + $ImageTypesLookup[1] = 'gif'; + $ImageTypesLookup[2] = 'jpeg'; + $ImageTypesLookup[3] = 'png'; + $ImageTypesLookup[4] = 'swf'; + $ImageTypesLookup[5] = 'psd'; + $ImageTypesLookup[6] = 'bmp'; + $ImageTypesLookup[7] = 'tiff (little-endian)'; + $ImageTypesLookup[8] = 'tiff (big-endian)'; + $ImageTypesLookup[9] = 'jpc'; + $ImageTypesLookup[10] = 'jp2'; + $ImageTypesLookup[11] = 'jpx'; + $ImageTypesLookup[12] = 'jb2'; + $ImageTypesLookup[13] = 'swc'; + $ImageTypesLookup[14] = 'iff'; + } + return (isset($ImageTypesLookup[$imagetypeid]) ? $ImageTypesLookup[$imagetypeid] : ''); + } + + function CopyTagsToComments(&$ThisFileInfo) { + + // Copy all entries from ['tags'] into common ['comments'] + if (!empty($ThisFileInfo['tags'])) { + foreach ($ThisFileInfo['tags'] as $tagtype => $tagarray) { + foreach ($tagarray as $tagname => $tagdata) { + foreach ($tagdata as $key => $value) { + if (!empty($value)) { + if (empty($ThisFileInfo['comments'][$tagname])) { + + // fall through and append value + + } elseif ($tagtype == 'id3v1') { + + $newvaluelength = strlen(trim($value)); + foreach ($ThisFileInfo['comments'][$tagname] as $existingkey => $existingvalue) { + $oldvaluelength = strlen(trim($existingvalue)); + if (($newvaluelength <= $oldvaluelength) && (substr($existingvalue, 0, $newvaluelength) == trim($value))) { + // new value is identical but shorter-than (or equal-length to) one already in comments - skip + break 2; + } + } + + } else { + + $newvaluelength = strlen(trim($value)); + foreach ($ThisFileInfo['comments'][$tagname] as $existingkey => $existingvalue) { + $oldvaluelength = strlen(trim($existingvalue)); + if (($newvaluelength > $oldvaluelength) && (substr(trim($value), 0, strlen($existingvalue)) == $existingvalue)) { + $ThisFileInfo['comments'][$tagname][$existingkey] = trim($value); + break 2; + } + } + + } + if (empty($ThisFileInfo['comments'][$tagname]) || !in_array(trim($value), $ThisFileInfo['comments'][$tagname])) { + $ThisFileInfo['comments'][$tagname][] = trim($value); + } + } + } + } + } + + // Copy to ['comments_html'] + foreach ($ThisFileInfo['comments'] as $field => $values) { + foreach ($values as $index => $value) { + $ThisFileInfo['comments_html'][$field][$index] = str_replace('�', '', getid3_lib::MultiByteCharString2HTML($value, $ThisFileInfo['encoding'])); + } + } + } + } + + + function EmbeddedLookup($key, $begin, $end, $file, $name) { + + // Cached + static $cache; + if (isset($cache[$file][$name])) { + return @$cache[$file][$name][$key]; + } + + // Init + $keylength = strlen($key); + $line_count = $end - $begin - 7; + + // Open php file + $fp = fopen($file, 'r'); + + // Discard $begin lines + for ($i = 0; $i < ($begin + 3); $i++) { + fgets($fp, 1024); + } + + // Loop thru line + while (0 < $line_count--) { + + // Read line + $line = ltrim(fgets($fp, 1024), "\t "); + + // METHOD A: only cache the matching key - less memory but slower on next lookup of not-previously-looked-up key + //$keycheck = substr($line, 0, $keylength); + //if ($key == $keycheck) { + // $cache[$file][$name][$keycheck] = substr($line, $keylength + 1); + // break; + //} + + // METHOD B: cache all keys in this lookup - more memory but faster on next lookup of not-previously-looked-up key + //$cache[$file][$name][substr($line, 0, $keylength)] = trim(substr($line, $keylength + 1)); + @list($ThisKey, $ThisValue) = explode("\t", $line, 2); + $cache[$file][$name][$ThisKey] = trim($ThisValue); + } + + // Close and return + fclose($fp); + return @$cache[$file][$name][$key]; + } + + function IncludeDependency($filename, $sourcefile, $DieOnFailure=false) { + global $GETID3_ERRORARRAY; + + if (file_exists($filename)) { + if (@include_once($filename)) { + return true; + } else { + $diemessage = basename($sourcefile).' depends on '.$filename.', which has errors'; + } + } else { + $diemessage = basename($sourcefile).' depends on '.$filename.', which is missing'; + } + if ($DieOnFailure) { + die($diemessage); + } else { + $GETID3_ERRORARRAY[] = $diemessage; + } + return false; + } + +} + +?> \ No newline at end of file diff --git a/data/flash/getid3.php b/data/flash/getid3.php new file mode 100644 index 0000000..341d593 --- /dev/null +++ b/data/flash/getid3.php @@ -0,0 +1,1261 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// // +// Please see readme.txt for more information // +// /// +///////////////////////////////////////////////////////////////// + +// Defines +define('GETID3_VERSION', '1.7.7'); +define('GETID3_FREAD_BUFFER_SIZE', 16384); // read buffer size in bytes + + + +class getID3 +{ + // public: Settings + var $encoding = 'ISO-8859-1'; // CASE SENSITIVE! - i.e. (must be supported by iconv()) + // Examples: ISO-8859-1 UTF-8 UTF-16 UTF-16BE + + var $encoding_id3v1 = 'ISO-8859-1'; // Should always be 'ISO-8859-1', but some tags may be written in other encodings such as 'EUC-CN' + + var $tempdir = '*'; // default '*' should use system temp dir + + // public: Optional tag checks - disable for speed. + var $option_tag_id3v1 = true; // Read and process ID3v1 tags + var $option_tag_id3v2 = true; // Read and process ID3v2 tags + var $option_tag_lyrics3 = true; // Read and process Lyrics3 tags + var $option_tag_apetag = true; // Read and process APE tags + var $option_tags_process = true; // Copy tags to root key 'tags' and encode to $this->encoding + var $option_tags_html = true; // Copy tags to root key 'tags_html' properly translated from various encodings to HTML entities + + // public: Optional tag/comment calucations + var $option_extra_info = true; // Calculate additional info such as bitrate, channelmode etc + + // public: Optional calculations + var $option_md5_data = false; // Get MD5 sum of data part - slow + var $option_md5_data_source = false; // Use MD5 of source file if availble - only FLAC and OptimFROG + var $option_sha1_data = false; // Get SHA1 sum of data part - slow + var $option_max_2gb_check = true; // Check whether file is larger than 2 Gb and thus not supported by PHP + + // private + var $filename; + + + // public: constructor + function getID3() + { + + $this->startup_error = ''; + $this->startup_warning = ''; + + // Check for PHP version >= 4.1.0 + if (phpversion() < '4.1.0') { + $this->startup_error .= 'getID3() requires PHP v4.1.0 or higher - you are running v'.phpversion(); + } + + // Check memory + $memory_limit = ini_get('memory_limit'); + if (eregi('([0-9]+)M', $memory_limit, $matches)) { + // could be stored as "16M" rather than 16777216 for example + $memory_limit = $matches[1] * 1048576; + } + if ($memory_limit <= 0) { + // memory limits probably disabled + } elseif ($memory_limit <= 3145728) { + $this->startup_error .= 'PHP has less than 3MB available memory and will very likely run out. Increase memory_limit in php.ini'; + } elseif ($memory_limit <= 12582912) { + $this->startup_warning .= 'PHP has less than 12MB available memory and might run out if all modules are loaded. Increase memory_limit in php.ini'; + } + + // Check safe_mode off + if ((bool) ini_get('safe_mode')) { + $this->warning('WARNING: Safe mode is on, shorten support disabled, md5data/sha1data for ogg vorbis disabled, ogg vorbos/flac tag writing disabled.'); + } + + + // define a constant rather than looking up every time it is needed + if (!defined('GETID3_OS_ISWINDOWS')) { + if (strtoupper(substr(PHP_OS, 0, 3)) == 'WIN') { + define('GETID3_OS_ISWINDOWS', true); + } else { + define('GETID3_OS_ISWINDOWS', false); + } + } + + // Get base path of getID3() - ONCE + if (!defined('GETID3_INCLUDEPATH')) { + foreach (get_included_files() as $key => $val) { + if (basename($val) == 'getid3.php') { + define('GETID3_INCLUDEPATH', dirname($val).DIRECTORY_SEPARATOR); + break; + } + } + } + + // Load support library + if (!include_once(GETID3_INCLUDEPATH.'getid3.lib.php')) { + $this->startup_error .= 'getid3.lib.php is missing or corrupt'; + } + + } + + + // public: setOption + function setOption($optArray) { + if (!is_array($optArray) || empty($optArray)) { + return false; + } + foreach ($optArray as $opt => $val) { + if (isset($this, $opt) === false) { + continue; + } + $this->$opt = $val; + } + return true; + } + + + // public: analyze file - replaces GetAllFileInfo() and GetTagOnly() + function analyze($filename) { + + if (!empty($this->startup_error)) { + return $this->error($this->startup_error); + } + if (!empty($this->startup_warning)) { + $this->warning($this->startup_warning); + } + + // init result array and set parameters + $this->info = array(); + $this->info['GETID3_VERSION'] = GETID3_VERSION; + + // Check encoding/iconv support + if (!function_exists('iconv') && !in_array($this->encoding, array('ISO-8859-1', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'UTF-16'))) { + $errormessage = 'iconv() support is needed for encodings other than ISO-8859-1, UTF-8, UTF-16LE, UTF16-BE, UTF-16. '; + if (GETID3_OS_ISWINDOWS) { + $errormessage .= 'PHP does not have iconv() support. Please enable php_iconv.dll in php.ini, and copy iconv.dll from c:/php/dlls to c:/windows/system32'; + } else { + $errormessage .= 'PHP is not compiled with iconv() support. Please recompile with the --with-iconv switch'; + } + return $this->error($errormessage); + } + + // Disable magic_quotes_runtime, if neccesary + $old_magic_quotes_runtime = get_magic_quotes_runtime(); // store current setting of magic_quotes_runtime + if ($old_magic_quotes_runtime) { + set_magic_quotes_runtime(0); // turn off magic_quotes_runtime + if (get_magic_quotes_runtime()) { + return $this->error('Could not disable magic_quotes_runtime - getID3() cannot work properly with this setting enabled'); + } + } + + // remote files not supported + if (preg_match('/^(ht|f)tp:\/\//', $filename)) { + return $this->error('Remote files are not supported in this version of getID3() - please copy the file locally first'); + } + + // open local file + if (!$fp = @fopen($filename, 'rb')) { + return $this->error('Could not open file "'.$filename.'"'); + } + + // set parameters + $this->info['filesize'] = filesize($filename); + + // option_max_2gb_check + if ($this->option_max_2gb_check) { + // PHP doesn't support integers larger than 31-bit (~2GB) + // filesize() simply returns (filesize % (pow(2, 32)), no matter the actual filesize + // ftell() returns 0 if seeking to the end is beyond the range of unsigned integer + fseek($fp, 0, SEEK_END); + if ((($this->info['filesize'] != 0) && (ftell($fp) == 0)) || + ($this->info['filesize'] < 0) || + (ftell($fp) < 0)) { + unset($this->info['filesize']); + fclose($fp); + return $this->error('File is most likely larger than 2GB and is not supported by PHP'); + } + } + + // set more parameters + $this->info['avdataoffset'] = 0; + $this->info['avdataend'] = $this->info['filesize']; + $this->info['fileformat'] = ''; // filled in later + $this->info['audio']['dataformat'] = ''; // filled in later, unset if not used + $this->info['video']['dataformat'] = ''; // filled in later, unset if not used + $this->info['tags'] = array(); // filled in later, unset if not used + $this->info['error'] = array(); // filled in later, unset if not used + $this->info['warning'] = array(); // filled in later, unset if not used + $this->info['comments'] = array(); // filled in later, unset if not used + $this->info['encoding'] = $this->encoding; // required by id3v2 and iso modules - can be unset at the end if desired + + // set redundant parameters - might be needed in some include file + $this->info['filename'] = basename($filename); + $this->info['filepath'] = str_replace('\\', '/', realpath(dirname($filename))); + $this->info['filenamepath'] = $this->info['filepath'].'/'.$this->info['filename']; + + + // handle ID3v2 tag - done first - already at beginning of file + // ID3v2 detection (even if not parsing) is always done otherwise fileformat is much harder to detect + if ($this->option_tag_id3v2) { + + $GETID3_ERRORARRAY = &$this->info['warning']; + if (getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v2.php', __FILE__, false)) { + $tag = new getid3_id3v2($fp, $this->info); + } + + } else { + + fseek($fp, 0, SEEK_SET); + $header = fread($fp, 10); + if (substr($header, 0, 3) == 'ID3') { + $this->info['id3v2']['header'] = true; + $this->info['id3v2']['majorversion'] = ord($header{3}); + $this->info['id3v2']['minorversion'] = ord($header{4}); + $this->info['id3v2']['headerlength'] = getid3_lib::BigEndian2Int(substr($header, 6, 4), 1) + 10; // length of ID3v2 tag in 10-byte header doesn't include 10-byte header length + + $this->info['id3v2']['tag_offset_start'] = 0; + $this->info['id3v2']['tag_offset_end'] = $this->info['id3v2']['tag_offset_start'] + $this->info['id3v2']['headerlength']; + $this->info['avdataoffset'] = $this->info['id3v2']['tag_offset_end']; + } + + } + + + // handle ID3v1 tag + if ($this->option_tag_id3v1) { + if (!@include_once(GETID3_INCLUDEPATH.'module.tag.id3v1.php')) { + return $this->error('module.tag.id3v1.php is missing - you may disable option_tag_id3v1.'); + } + $tag = new getid3_id3v1($fp, $this->info); + } + + // handle APE tag + if ($this->option_tag_apetag) { + if (!@include_once(GETID3_INCLUDEPATH.'module.tag.apetag.php')) { + return $this->error('module.tag.apetag.php is missing - you may disable option_tag_apetag.'); + } + $tag = new getid3_apetag($fp, $this->info); + } + + // handle lyrics3 tag + if ($this->option_tag_lyrics3) { + if (!@include_once(GETID3_INCLUDEPATH.'module.tag.lyrics3.php')) { + return $this->error('module.tag.lyrics3.php is missing - you may disable option_tag_lyrics3.'); + } + $tag = new getid3_lyrics3($fp, $this->info); + } + + // read 32 kb file data + fseek($fp, $this->info['avdataoffset'], SEEK_SET); + $formattest = fread($fp, 32774); + + // determine format + $determined_format = $this->GetFileFormat($formattest, $filename); + + // unable to determine file format + if (!$determined_format) { + fclose($fp); + return $this->error('unable to determine file format'); + } + + // check for illegal ID3 tags + if (isset($determined_format['fail_id3']) && (in_array('id3v1', $this->info['tags']) || in_array('id3v2', $this->info['tags']))) { + if ($determined_format['fail_id3'] === 'ERROR') { + fclose($fp); + return $this->error('ID3 tags not allowed on this file type.'); + } elseif ($determined_format['fail_id3'] === 'WARNING') { + $this->info['warning'][] = 'ID3 tags not allowed on this file type.'; + } + } + + // check for illegal APE tags + if (isset($determined_format['fail_ape']) && in_array('ape', $this->info['tags'])) { + if ($determined_format['fail_ape'] === 'ERROR') { + fclose($fp); + return $this->error('APE tags not allowed on this file type.'); + } elseif ($determined_format['fail_ape'] === 'WARNING') { + $this->info['warning'][] = 'APE tags not allowed on this file type.'; + } + } + + // set mime type + $this->info['mime_type'] = $determined_format['mime_type']; + + // supported format signature pattern detected, but module deleted + if (!file_exists(GETID3_INCLUDEPATH.$determined_format['include'])) { + fclose($fp); + return $this->error('Format not supported, module, '.$determined_format['include'].', was removed.'); + } + + // module requires iconv support + if (!function_exists('iconv') && @$determined_format['iconv_req']) { + return $this->error('iconv support is required for this module ('.$determined_format['include'].').'); + } + + // include module + include_once(GETID3_INCLUDEPATH.$determined_format['include']); + + // instantiate module class + $class_name = 'getid3_'.$determined_format['module']; + if (!class_exists($class_name)) { + return $this->error('Format not supported, module, '.$determined_format['include'].', is corrupt.'); + } + if (isset($determined_format['option'])) { + $class = new $class_name($fp, $this->info, $determined_format['option']); + } else { + $class = new $class_name($fp, $this->info); + } + + // close file + fclose($fp); + + // process all tags - copy to 'tags' and convert charsets + if ($this->option_tags_process) { + $this->HandleAllTags(); + } + + // perform more calculations + if ($this->option_extra_info) { + $this->ChannelsBitratePlaytimeCalculations(); + $this->CalculateCompressionRatioVideo(); + $this->CalculateCompressionRatioAudio(); + $this->CalculateReplayGain(); + $this->ProcessAudioStreams(); + } + + // get the MD5 sum of the audio/video portion of the file - without ID3/APE/Lyrics3/etc header/footer tags + if ($this->option_md5_data) { + // do not cald md5_data if md5_data_source is present - set by flac only - future MPC/SV8 too + if (!$this->option_md5_data_source || empty($this->info['md5_data_source'])) { + $this->getHashdata('md5'); + } + } + + // get the SHA1 sum of the audio/video portion of the file - without ID3/APE/Lyrics3/etc header/footer tags + if ($this->option_sha1_data) { + $this->getHashdata('sha1'); + } + + // remove undesired keys + $this->CleanUp(); + + // restore magic_quotes_runtime setting + set_magic_quotes_runtime($old_magic_quotes_runtime); + + // return info array + return $this->info; + } + + + // private: error handling + function error($message) { + + $this->CleanUp(); + + $this->info['error'][] = $message; + return $this->info; + } + + + // private: warning handling + function warning($message) { + $this->info['warning'][] = $message; + return true; + } + + + // private: CleanUp + function CleanUp() { + + // remove possible empty keys + $AVpossibleEmptyKeys = array('dataformat', 'bits_per_sample', 'encoder_options', 'streams'); + foreach ($AVpossibleEmptyKeys as $dummy => $key) { + if (empty($this->info['audio'][$key]) && isset($this->info['audio'][$key])) { + unset($this->info['audio'][$key]); + } + if (empty($this->info['video'][$key]) && isset($this->info['video'][$key])) { + unset($this->info['video'][$key]); + } + } + + // remove empty root keys + if (!empty($this->info)) { + foreach ($this->info as $key => $value) { + if (empty($this->info[$key]) && ($this->info[$key] !== 0) && ($this->info[$key] !== '0')) { + unset($this->info[$key]); + } + } + } + + // remove meaningless entries from unknown-format files + if (empty($this->info['fileformat'])) { + if (isset($this->info['avdataoffset'])) { + unset($this->info['avdataoffset']); + } + if (isset($this->info['avdataend'])) { + unset($this->info['avdataend']); + } + } + } + + + // return array containing information about all supported formats + function GetFileFormatArray() { + static $format_info = array(); + if (empty($format_info)) { + $format_info = array( + + // Audio formats + + // AC-3 - audio - Dolby AC-3 / Dolby Digital + 'ac3' => array( + 'pattern' => '^\x0B\x77', + 'group' => 'audio', + 'module' => 'ac3', + 'mime_type' => 'audio/ac3', + ), + + // AAC - audio - Advanced Audio Coding (AAC) - ADIF format + 'adif' => array( + 'pattern' => '^ADIF', + 'group' => 'audio', + 'module' => 'aac', + 'option' => 'adif', + 'mime_type' => 'application/octet-stream', + 'fail_ape' => 'WARNING', + ), + + + // AAC - audio - Advanced Audio Coding (AAC) - ADTS format (very similar to MP3) + 'adts' => array( + 'pattern' => '^\xFF[\xF0-\xF1\xF8-\xF9]', + 'group' => 'audio', + 'module' => 'aac', + 'option' => 'adts', + 'mime_type' => 'application/octet-stream', + 'fail_ape' => 'WARNING', + ), + + + // AU - audio - NeXT/Sun AUdio (AU) + 'au' => array( + 'pattern' => '^\.snd', + 'group' => 'audio', + 'module' => 'au', + 'mime_type' => 'audio/basic', + ), + + // AVR - audio - Audio Visual Research + 'avr' => array( + 'pattern' => '^2BIT', + 'group' => 'audio', + 'module' => 'avr', + 'mime_type' => 'application/octet-stream', + ), + + // BONK - audio - Bonk v0.9+ + 'bonk' => array( + 'pattern' => '^\x00(BONK|INFO|META| ID3)', + 'group' => 'audio', + 'module' => 'bonk', + 'mime_type' => 'audio/xmms-bonk', + ), + + // FLAC - audio - Free Lossless Audio Codec + 'flac' => array( + 'pattern' => '^fLaC', + 'group' => 'audio', + 'module' => 'flac', + 'mime_type' => 'audio/x-flac', + ), + + // LA - audio - Lossless Audio (LA) + 'la' => array( + 'pattern' => '^LA0[2-4]', + 'group' => 'audio', + 'module' => 'la', + 'mime_type' => 'application/octet-stream', + ), + + // LPAC - audio - Lossless Predictive Audio Compression (LPAC) + 'lpac' => array( + 'pattern' => '^LPAC', + 'group' => 'audio', + 'module' => 'lpac', + 'mime_type' => 'application/octet-stream', + ), + + // MIDI - audio - MIDI (Musical Instrument Digital Interface) + 'midi' => array( + 'pattern' => '^MThd', + 'group' => 'audio', + 'module' => 'midi', + 'mime_type' => 'audio/midi', + ), + + // MAC - audio - Monkey's Audio Compressor + 'mac' => array( + 'pattern' => '^MAC ', + 'group' => 'audio', + 'module' => 'monkey', + 'mime_type' => 'application/octet-stream', + ), + + // MOD - audio - MODule (assorted sub-formats) + 'mod' => array( + 'pattern' => '^.{1080}(M.K.|[5-9]CHN|[1-3][0-9]CH)', + 'group' => 'audio', + 'module' => 'mod', + 'option' => 'mod', + 'mime_type' => 'audio/mod', + ), + + // MOD - audio - MODule (Impulse Tracker) + 'it' => array( + 'pattern' => '^IMPM', + 'group' => 'audio', + 'module' => 'mod', + 'option' => 'it', + 'mime_type' => 'audio/it', + ), + + // MOD - audio - MODule (eXtended Module, various sub-formats) + 'xm' => array( + 'pattern' => '^Extended Module', + 'group' => 'audio', + 'module' => 'mod', + 'option' => 'xm', + 'mime_type' => 'audio/xm', + ), + + // MOD - audio - MODule (ScreamTracker) + 's3m' => array( + 'pattern' => '^.{44}SCRM', + 'group' => 'audio', + 'module' => 'mod', + 'option' => 's3m', + 'mime_type' => 'audio/s3m', + ), + + // MPC - audio - Musepack / MPEGplus + 'mpc' => array( + 'pattern' => '^(MP\+|[\x00\x01\x10\x11\x40\x41\x50\x51\x80\x81\x90\x91\xC0\xC1\xD0\xD1][\x20-37][\x00\x20\x40\x60\x80\xA0\xC0\xE0])', + 'group' => 'audio', + 'module' => 'mpc', + 'mime_type' => 'application/octet-stream', + ), + + // MP3 - audio - MPEG-audio Layer 3 (very similar to AAC-ADTS) + 'mp3' => array( + 'pattern' => '^\xFF[\xE2-\xE7\xF2-\xF7\xFA-\xFF][\x00-\xEB]', + 'group' => 'audio', + 'module' => 'mp3', + 'mime_type' => 'audio/mpeg', + ), + + // OFR - audio - OptimFROG + 'ofr' => array( + 'pattern' => '^(\*RIFF|OFR)', + 'group' => 'audio', + 'module' => 'optimfrog', + 'mime_type' => 'application/octet-stream', + ), + + // RKAU - audio - RKive AUdio compressor + 'rkau' => array( + 'pattern' => '^RKA', + 'group' => 'audio', + 'module' => 'rkau', + 'mime_type' => 'application/octet-stream', + ), + + // SHN - audio - Shorten + 'shn' => array( + 'pattern' => '^ajkg', + 'group' => 'audio', + 'module' => 'shorten', + 'mime_type' => 'audio/xmms-shn', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // TTA - audio - TTA Lossless Audio Compressor (http://tta.corecodec.org) + 'tta' => array( + 'pattern' => '^TTA', // could also be '^TTA(\x01|\x02|\x03|2|1)' + 'group' => 'audio', + 'module' => 'tta', + 'mime_type' => 'application/octet-stream', + ), + + // VOC - audio - Creative Voice (VOC) + 'voc' => array( + 'pattern' => '^Creative Voice File', + 'group' => 'audio', + 'module' => 'voc', + 'mime_type' => 'audio/voc', + ), + + // VQF - audio - transform-domain weighted interleave Vector Quantization Format (VQF) + 'vqf' => array( + 'pattern' => '^TWIN', + 'group' => 'audio', + 'module' => 'vqf', + 'mime_type' => 'application/octet-stream', + ), + + // WV - audio - WavPack (v4.0+) + 'wv' => array( + 'pattern' => '^wvpk', + 'group' => 'audio', + 'module' => 'wavpack', + 'mime_type' => 'application/octet-stream', + ), + + + // Audio-Video formats + + // ASF - audio/video - Advanced Streaming Format, Windows Media Video, Windows Media Audio + 'asf' => array( + 'pattern' => '^\x30\x26\xB2\x75\x8E\x66\xCF\x11\xA6\xD9\x00\xAA\x00\x62\xCE\x6C', + 'group' => 'audio-video', + 'module' => 'asf', + 'mime_type' => 'video/x-ms-asf', + 'iconv_req' => false, + ), + + // BINK - audio/video - Bink / Smacker + 'bink' => array( + 'pattern' => '^(BIK|SMK)', + 'group' => 'audio-video', + 'module' => 'bink', + 'mime_type' => 'application/octet-stream', + ), + + // FLV - audio/video - FLash Video + 'flv' => array( + 'pattern' => '^FLV\x01', + 'group' => 'audio-video', + 'module' => 'flv', + 'mime_type' => 'video/x-flv', + ), + + // MKAV - audio/video - Mastroka + 'matroska' => array( + 'pattern' => '^\x1A\x45\xDF\xA3', + 'group' => 'audio-video', + 'module' => 'matroska', + 'mime_type' => 'application/octet-stream', + ), + + // MPEG - audio/video - MPEG (Moving Pictures Experts Group) + 'mpeg' => array( + 'pattern' => '^\x00\x00\x01(\xBA|\xB3)', + 'group' => 'audio-video', + 'module' => 'mpeg', + 'mime_type' => 'video/mpeg', + ), + + // NSV - audio/video - Nullsoft Streaming Video (NSV) + 'nsv' => array( + 'pattern' => '^NSV[sf]', + 'group' => 'audio-video', + 'module' => 'nsv', + 'mime_type' => 'application/octet-stream', + ), + + // Ogg - audio/video - Ogg (Ogg-Vorbis, Ogg-FLAC, Speex, Ogg-Theora(*), Ogg-Tarkin(*)) + 'ogg' => array( + 'pattern' => '^OggS', + 'group' => 'audio', + 'module' => 'ogg', + 'mime_type' => 'application/ogg', + 'fail_id3' => 'WARNING', + 'fail_ape' => 'WARNING', + ), + + // QT - audio/video - Quicktime + 'quicktime' => array( + 'pattern' => '^.{4}(cmov|free|ftyp|mdat|moov|pnot|skip|wide)', + 'group' => 'audio-video', + 'module' => 'quicktime', + 'mime_type' => 'video/quicktime', + ), + + // RIFF - audio/video - Resource Interchange File Format (RIFF) / WAV / AVI / CD-audio / SDSS = renamed variant used by SmartSound QuickTracks (www.smartsound.com) / FORM = Audio Interchange File Format (AIFF) + 'riff' => array( + 'pattern' => '^(RIFF|SDSS|FORM)', + 'group' => 'audio-video', + 'module' => 'riff', + 'mime_type' => 'audio/x-wave', + 'fail_ape' => 'WARNING', + ), + + // Real - audio/video - RealAudio, RealVideo + 'real' => array( + 'pattern' => '^(\.RMF|.ra)', + 'group' => 'audio-video', + 'module' => 'real', + 'mime_type' => 'audio/x-realaudio', + ), + + // SWF - audio/video - ShockWave Flash + 'swf' => array( + 'pattern' => '^(F|C)WS', + 'group' => 'audio-video', + 'module' => 'swf', + 'mime_type' => 'application/x-shockwave-flash', + ), + + + // Still-Image formats + + // BMP - still image - Bitmap (Windows, OS/2; uncompressed, RLE8, RLE4) + 'bmp' => array( + 'pattern' => '^BM', + 'group' => 'graphic', + 'module' => 'bmp', + 'mime_type' => 'image/bmp', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // GIF - still image - Graphics Interchange Format + 'gif' => array( + 'pattern' => '^GIF', + 'group' => 'graphic', + 'module' => 'gif', + 'mime_type' => 'image/gif', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // JPEG - still image - Joint Photographic Experts Group (JPEG) + 'jpg' => array( + 'pattern' => '^\xFF\xD8\xFF', + 'group' => 'graphic', + 'module' => 'jpg', + 'mime_type' => 'image/jpeg', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // PCD - still image - Kodak Photo CD + 'pcd' => array( + 'pattern' => '^.{2048}PCD_IPI\x00', + 'group' => 'graphic', + 'module' => 'pcd', + 'mime_type' => 'image/x-photo-cd', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + + // PNG - still image - Portable Network Graphics (PNG) + 'png' => array( + 'pattern' => '^\x89\x50\x4E\x47\x0D\x0A\x1A\x0A', + 'group' => 'graphic', + 'module' => 'png', + 'mime_type' => 'image/png', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + + // TIFF - still image - Tagged Information File Format (TIFF) + 'tiff' => array( + 'pattern' => '^(II\x2A\x00|MM\x00\x2A)', + 'group' => 'graphic', + 'module' => 'tiff', + 'mime_type' => 'image/tiff', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + + // Data formats + + // ISO - data - International Standards Organization (ISO) CD-ROM Image + 'iso' => array( + 'pattern' => '^.{32769}CD001', + 'group' => 'misc', + 'module' => 'iso', + 'mime_type' => 'application/octet-stream', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + 'iconv_req' => false, + ), + + // RAR - data - RAR compressed data + 'rar' => array( + 'pattern' => '^Rar\!', + 'group' => 'archive', + 'module' => 'rar', + 'mime_type' => 'application/octet-stream', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // SZIP - audio/data - SZIP compressed data + 'szip' => array( + 'pattern' => '^SZ\x0A\x04', + 'group' => 'archive', + 'module' => 'szip', + 'mime_type' => 'application/octet-stream', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // TAR - data - TAR compressed data + 'tar' => array( + 'pattern' => '^.{100}[0-9\x20]{7}\x00[0-9\x20]{7}\x00[0-9\x20]{7}\x00[0-9\x20\x00]{12}[0-9\x20\x00]{12}', + 'group' => 'archive', + 'module' => 'tar', + 'mime_type' => 'application/x-tar', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // GZIP - data - GZIP compressed data + 'gz' => array( + 'pattern' => '^\x1F\x8B\x08', + 'group' => 'archive', + 'module' => 'gzip', + 'mime_type' => 'application/x-gzip', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // ZIP - data - ZIP compressed data + 'zip' => array( + 'pattern' => '^PK\x03\x04', + 'group' => 'archive', + 'module' => 'zip', + 'mime_type' => 'application/zip', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + + // Misc other formats + + // PDF - data - ZIP compressed data + 'pdf' => array( + 'pattern' => '^\x25PDF', + 'group' => 'misc', + 'module' => 'pdf', + 'mime_type' => 'application/pdf', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + + // MSOFFICE - data - ZIP compressed data + 'msoffice' => array( + 'pattern' => '^\xD0\xCF\x11\xE0', // D0CF11E == DOCFILE == Microsoft Office Document + 'group' => 'misc', + 'module' => 'msoffice', + 'mime_type' => 'application/octet-stream', + 'fail_id3' => 'ERROR', + 'fail_ape' => 'ERROR', + ), + ); + } + + return $format_info; + } + + + + function GetFileFormat(&$filedata, $filename='') { + // this function will determine the format of a file based on usually + // the first 2-4 bytes of the file (8 bytes for PNG, 16 bytes for JPG, + // and in the case of ISO CD image, 6 bytes offset 32kb from the start + // of the file). + + // Identify file format - loop through $format_info and detect with reg expr + foreach ($this->GetFileFormatArray() as $format_name => $info) { + // Using preg_match() instead of ereg() - much faster + // The /s switch on preg_match() forces preg_match() NOT to treat + // newline (0x0A) characters as special chars but do a binary match + if (preg_match('/'.$info['pattern'].'/s', $filedata)) { + $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php'; + return $info; + } + } + + + if (preg_match('/\.mp[123a]$/i', $filename)) { + // Too many mp3 encoders on the market put gabage in front of mpeg files + // use assume format on these if format detection failed + $GetFileFormatArray = $this->GetFileFormatArray(); + $info = $GetFileFormatArray['mp3']; + $info['include'] = 'module.'.$info['group'].'.'.$info['module'].'.php'; + return $info; + } + + return false; + } + + + // converts array to $encoding charset from $this->encoding + function CharConvert(&$array, $encoding) { + + // identical encoding - end here + if ($encoding == $this->encoding) { + return; + } + + // loop thru array + foreach ($array as $key => $value) { + + // go recursive + if (is_array($value)) { + $this->CharConvert($array[$key], $encoding); + } + + // convert string + elseif (is_string($value)) { + $array[$key] = trim(getid3_lib::iconv_fallback($encoding, $this->encoding, $value)); + } + } + } + + + function HandleAllTags() { + + // key name => array (tag name, character encoding) + static $tags; + if (empty($tags)) { + $tags = array( + 'asf' => array('asf' , 'UTF-16LE'), + 'midi' => array('midi' , 'ISO-8859-1'), + 'nsv' => array('nsv' , 'ISO-8859-1'), + 'ogg' => array('vorbiscomment' , 'UTF-8'), + 'png' => array('png' , 'UTF-8'), + 'tiff' => array('tiff' , 'ISO-8859-1'), + 'quicktime' => array('quicktime' , 'ISO-8859-1'), + 'real' => array('real' , 'ISO-8859-1'), + 'vqf' => array('vqf' , 'ISO-8859-1'), + 'zip' => array('zip' , 'ISO-8859-1'), + 'riff' => array('riff' , 'ISO-8859-1'), + 'lyrics3' => array('lyrics3' , 'ISO-8859-1'), + 'id3v1' => array('id3v1' , $this->encoding_id3v1), + 'id3v2' => array('id3v2' , 'UTF-8'), // not according to the specs (every frame can have a different encoding), but getID3() force-converts all encodings to UTF-8 + 'ape' => array('ape' , 'UTF-8') + ); + } + + // loop thru comments array + foreach ($tags as $comment_name => $tagname_encoding_array) { + list($tag_name, $encoding) = $tagname_encoding_array; + + // fill in default encoding type if not already present + if (isset($this->info[$comment_name]) && !isset($this->info[$comment_name]['encoding'])) { + $this->info[$comment_name]['encoding'] = $encoding; + } + + // copy comments if key name set + if (!empty($this->info[$comment_name]['comments'])) { + + foreach ($this->info[$comment_name]['comments'] as $tag_key => $valuearray) { + foreach ($valuearray as $key => $value) { + if (strlen(trim($value)) > 0) { + $this->info['tags'][trim($tag_name)][trim($tag_key)][] = $value; // do not trim!! Unicode characters will get mangled if trailing nulls are removed! + } + } + } + + if (!isset($this->info['tags'][$tag_name])) { + // comments are set but contain nothing but empty strings, so skip + continue; + } + + if ($this->option_tags_html) { + foreach ($this->info['tags'][$tag_name] as $tag_key => $valuearray) { + foreach ($valuearray as $key => $value) { + if (is_string($value)) { + //$this->info['tags_html'][$tag_name][$tag_key][$key] = getid3_lib::MultiByteCharString2HTML($value, $encoding); + $this->info['tags_html'][$tag_name][$tag_key][$key] = str_replace('�', '', getid3_lib::MultiByteCharString2HTML($value, $encoding)); + } else { + $this->info['tags_html'][$tag_name][$tag_key][$key] = $value; + } + } + } + } + + $this->CharConvert($this->info['tags'][$tag_name], $encoding); // only copy gets converted! + } + + } + return true; + } + + + function getHashdata($algorithm) { + switch ($algorithm) { + case 'md5': + case 'sha1': + break; + + default: + return $this->error('bad algorithm "'.$algorithm.'" in getHashdata()'); + break; + } + + if ((@$this->info['fileformat'] == 'ogg') && (@$this->info['audio']['dataformat'] == 'vorbis')) { + + // We cannot get an identical md5_data value for Ogg files where the comments + // span more than 1 Ogg page (compared to the same audio data with smaller + // comments) using the normal getID3() method of MD5'ing the data between the + // end of the comments and the end of the file (minus any trailing tags), + // because the page sequence numbers of the pages that the audio data is on + // do not match. Under normal circumstances, where comments are smaller than + // the nominal 4-8kB page size, then this is not a problem, but if there are + // very large comments, the only way around it is to strip off the comment + // tags with vorbiscomment and MD5 that file. + // This procedure must be applied to ALL Ogg files, not just the ones with + // comments larger than 1 page, because the below method simply MD5's the + // whole file with the comments stripped, not just the portion after the + // comments block (which is the standard getID3() method. + + // The above-mentioned problem of comments spanning multiple pages and changing + // page sequence numbers likely happens for OggSpeex and OggFLAC as well, but + // currently vorbiscomment only works on OggVorbis files. + + if ((bool) ini_get('safe_mode')) { + + $this->info['warning'][] = 'Failed making system call to vorbiscomment.exe - '.$algorithm.'_data is incorrect - error returned: PHP running in Safe Mode (backtick operator not available)'; + $this->info[$algorithm.'_data'] = false; + + } else { + + // Prevent user from aborting script + $old_abort = ignore_user_abort(true); + + // Create empty file + $empty = tempnam('*', 'getID3'); + touch($empty); + + + // Use vorbiscomment to make temp file without comments + $temp = tempnam('*', 'getID3'); + $file = $this->info['filenamepath']; + + if (GETID3_OS_ISWINDOWS) { + + if (file_exists(GETID3_HELPERAPPSDIR.'vorbiscomment.exe')) { + + $commandline = '"'.GETID3_HELPERAPPSDIR.'vorbiscomment.exe" -w -c "'.$empty.'" "'.$file.'" "'.$temp.'"'; + $VorbisCommentError = `$commandline`; + + } else { + + $VorbisCommentError = 'vorbiscomment.exe not found in '.GETID3_HELPERAPPSDIR; + + } + + } else { + + $commandline = 'vorbiscomment -w -c "'.$empty.'" "'.$file.'" "'.$temp.'" 2>&1'; + $commandline = 'vorbiscomment -w -c '.escapeshellarg($empty).' '.escapeshellarg($file).' '.escapeshellarg($temp).' 2>&1'; + $VorbisCommentError = `$commandline`; + + } + + if (!empty($VorbisCommentError)) { + + $this->info['warning'][] = 'Failed making system call to vorbiscomment(.exe) - '.$algorithm.'_data will be incorrect. If vorbiscomment is unavailable, please download from http://www.vorbis.com/download.psp and put in the getID3() directory. Error returned: '.$VorbisCommentError; + $this->info[$algorithm.'_data'] = false; + + } else { + + // Get hash of newly created file + switch ($algorithm) { + case 'md5': + $this->info[$algorithm.'_data'] = getid3_lib::md5_file($temp); + break; + + case 'sha1': + $this->info[$algorithm.'_data'] = getid3_lib::sha1_file($temp); + break; + } + } + + // Clean up + unlink($empty); + unlink($temp); + + // Reset abort setting + ignore_user_abort($old_abort); + + } + + } else { + + if (!empty($this->info['avdataoffset']) || (isset($this->info['avdataend']) && ($this->info['avdataend'] < $this->info['filesize']))) { + + // get hash from part of file + $this->info[$algorithm.'_data'] = getid3_lib::hash_data($this->info['filenamepath'], $this->info['avdataoffset'], $this->info['avdataend'], $algorithm); + + } else { + + // get hash from whole file + switch ($algorithm) { + case 'md5': + $this->info[$algorithm.'_data'] = getid3_lib::md5_file($this->info['filenamepath']); + break; + + case 'sha1': + $this->info[$algorithm.'_data'] = getid3_lib::sha1_file($this->info['filenamepath']); + break; + } + } + + } + return true; + } + + + function ChannelsBitratePlaytimeCalculations() { + + // set channelmode on audio + if (@$this->info['audio']['channels'] == '1') { + $this->info['audio']['channelmode'] = 'mono'; + } elseif (@$this->info['audio']['channels'] == '2') { + $this->info['audio']['channelmode'] = 'stereo'; + } + + // Calculate combined bitrate - audio + video + $CombinedBitrate = 0; + $CombinedBitrate += (isset($this->info['audio']['bitrate']) ? $this->info['audio']['bitrate'] : 0); + $CombinedBitrate += (isset($this->info['video']['bitrate']) ? $this->info['video']['bitrate'] : 0); + if (($CombinedBitrate > 0) && empty($this->info['bitrate'])) { + $this->info['bitrate'] = $CombinedBitrate; + } + //if ((isset($this->info['video']) && !isset($this->info['video']['bitrate'])) || (isset($this->info['audio']) && !isset($this->info['audio']['bitrate']))) { + // // for example, VBR MPEG video files cannot determine video bitrate: + // // should not set overall bitrate and playtime from audio bitrate only + // unset($this->info['bitrate']); + //} + + if (!isset($this->info['playtime_seconds']) && !empty($this->info['bitrate'])) { + $this->info['playtime_seconds'] = (($this->info['avdataend'] - $this->info['avdataoffset']) * 8) / $this->info['bitrate']; + } + + // Set playtime string + if (!empty($this->info['playtime_seconds']) && empty($this->info['playtime_string'])) { + $this->info['playtime_string'] = getid3_lib::PlaytimeString($this->info['playtime_seconds']); + } + } + + + function CalculateCompressionRatioVideo() { + if (empty($this->info['video'])) { + return false; + } + if (empty($this->info['video']['resolution_x']) || empty($this->info['video']['resolution_y'])) { + return false; + } + if (empty($this->info['video']['bits_per_sample'])) { + return false; + } + + switch ($this->info['video']['dataformat']) { + case 'bmp': + case 'gif': + case 'jpeg': + case 'jpg': + case 'png': + case 'tiff': + $FrameRate = 1; + $PlaytimeSeconds = 1; + $BitrateCompressed = $this->info['filesize'] * 8; + break; + + default: + if (!empty($this->info['video']['frame_rate'])) { + $FrameRate = $this->info['video']['frame_rate']; + } else { + return false; + } + if (!empty($this->info['playtime_seconds'])) { + $PlaytimeSeconds = $this->info['playtime_seconds']; + } else { + return false; + } + if (!empty($this->info['video']['bitrate'])) { + $BitrateCompressed = $this->info['video']['bitrate']; + } else { + return false; + } + break; + } + $BitrateUncompressed = $this->info['video']['resolution_x'] * $this->info['video']['resolution_y'] * $this->info['video']['bits_per_sample'] * $FrameRate; + + $this->info['video']['compression_ratio'] = $BitrateCompressed / $BitrateUncompressed; + return true; + } + + + function CalculateCompressionRatioAudio() { + if (empty($this->info['audio']['bitrate']) || empty($this->info['audio']['channels']) || empty($this->info['audio']['sample_rate'])) { + return false; + } + $this->info['audio']['compression_ratio'] = $this->info['audio']['bitrate'] / ($this->info['audio']['channels'] * $this->info['audio']['sample_rate'] * (!empty($this->info['audio']['bits_per_sample']) ? $this->info['audio']['bits_per_sample'] : 16)); + + if (!empty($this->info['audio']['streams'])) { + foreach ($this->info['audio']['streams'] as $streamnumber => $streamdata) { + if (!empty($streamdata['bitrate']) && !empty($streamdata['channels']) && !empty($streamdata['sample_rate'])) { + $this->info['audio']['streams'][$streamnumber]['compression_ratio'] = $streamdata['bitrate'] / ($streamdata['channels'] * $streamdata['sample_rate'] * (!empty($streamdata['bits_per_sample']) ? $streamdata['bits_per_sample'] : 16)); + } + } + } + return true; + } + + + function CalculateReplayGain() { + if (isset($this->info['replay_gain'])) { + $this->info['replay_gain']['reference_volume'] = 89; + if (isset($this->info['replay_gain']['track']['adjustment'])) { + $this->info['replay_gain']['track']['volume'] = $this->info['replay_gain']['reference_volume'] - $this->info['replay_gain']['track']['adjustment']; + } + if (isset($this->info['replay_gain']['album']['adjustment'])) { + $this->info['replay_gain']['album']['volume'] = $this->info['replay_gain']['reference_volume'] - $this->info['replay_gain']['album']['adjustment']; + } + + if (isset($this->info['replay_gain']['track']['peak'])) { + $this->info['replay_gain']['track']['max_noclip_gain'] = 0 - getid3_lib::RGADamplitude2dB($this->info['replay_gain']['track']['peak']); + } + if (isset($this->info['replay_gain']['album']['peak'])) { + $this->info['replay_gain']['album']['max_noclip_gain'] = 0 - getid3_lib::RGADamplitude2dB($this->info['replay_gain']['album']['peak']); + } + } + return true; + } + + function ProcessAudioStreams() { + if (!empty($this->info['audio']['bitrate']) || !empty($this->info['audio']['channels']) || !empty($this->info['audio']['sample_rate'])) { + if (!isset($this->info['audio']['streams'])) { + foreach ($this->info['audio'] as $key => $value) { + if ($key != 'streams') { + $this->info['audio']['streams'][0][$key] = $value; + } + } + } + } + return true; + } + + function getid3_tempnam() { + return tempnam($this->tempdir, 'gI3'); + } + +} + +?> \ No newline at end of file diff --git a/data/flash/module.audio-video.flv.php b/data/flash/module.audio-video.flv.php new file mode 100644 index 0000000..d7ca5cf --- /dev/null +++ b/data/flash/module.audio-video.flv.php @@ -0,0 +1,497 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +// // +// FLV module by Seth Kaufman // +// // +// * version 0.1 (26 June 2005) // +// // +// minor modifications by James Heinrich // +// * version 0.1.1 (15 July 2005) // +// // +// Support for On2 VP6 codec and meta information by // +// Steve Webster // +// * version 0.2 (22 February 2006) // +// // +// Modified to not read entire file into memory // +// by James Heinrich // +// * version 0.3 (15 June 2006) // +// // +///////////////////////////////////////////////////////////////// +// // +// module.audio-video.flv.php // +// module for analyzing Shockwave Flash Video files // +// dependencies: NONE // +// /// +///////////////////////////////////////////////////////////////// + +define('GETID3_FLV_TAG_AUDIO', 8); +define('GETID3_FLV_TAG_VIDEO', 9); +define('GETID3_FLV_TAG_META', 18); + +define('GETID3_FLV_VIDEO_H263', 2); +define('GETID3_FLV_VIDEO_SCREEN', 3); +define('GETID3_FLV_VIDEO_VP6', 4); + +class getid3_flv +{ + + function getid3_flv(&$fd, &$ThisFileInfo, $ReturnAllTagData=false) { + fseek($fd, $ThisFileInfo['avdataoffset'], SEEK_SET); + + $FLVdataLength = $ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']; + $FLVheader = fread($fd, 5); + + $ThisFileInfo['fileformat'] = 'flv'; + $ThisFileInfo['flv']['header']['signature'] = substr($FLVheader, 0, 3); + $ThisFileInfo['flv']['header']['version'] = getid3_lib::BigEndian2Int(substr($FLVheader, 3, 1)); + $TypeFlags = getid3_lib::BigEndian2Int(substr($FLVheader, 4, 1)); + + if ($ThisFileInfo['flv']['header']['signature'] != 'FLV') { + $ThisFileInfo['error'][] = 'Expecting "FLV" at offset '.$ThisFileInfo['avdataoffset'].', found "'.$ThisFileInfo['flv']['header']['signature'].'"'; + unset($ThisFileInfo['flv']); + unset($ThisFileInfo['fileformat']); + return false; + } + + $ThisFileInfo['flv']['header']['hasAudio'] = (bool) ($TypeFlags & 0x04); + $ThisFileInfo['flv']['header']['hasVideo'] = (bool) ($TypeFlags & 0x01); + + $FrameSizeDataLength = getid3_lib::BigEndian2Int(fread($fd, 4)); + $FLVheaderFrameLength = 9; + if ($FrameSizeDataLength > $FLVheaderFrameLength) { + fseek($fd, $FrameSizeDataLength - $FLVheaderFrameLength, SEEK_CUR); + } + + $Duration = 0; + while ((ftell($fd) + 1) < $ThisFileInfo['avdataend']) { + //if (!$ThisFileInfo['flv']['header']['hasAudio'] || isset($ThisFileInfo['flv']['audio']['audioFormat'])) { + // if (!$ThisFileInfo['flv']['header']['hasVideo'] || isset($ThisFileInfo['flv']['video']['videoCodec'])) { + // break; + // } + //} + + $ThisTagHeader = fread($fd, 16); + + $PreviousTagLength = getid3_lib::BigEndian2Int(substr($ThisTagHeader, 0, 4)); + $TagType = getid3_lib::BigEndian2Int(substr($ThisTagHeader, 4, 1)); + $DataLength = getid3_lib::BigEndian2Int(substr($ThisTagHeader, 5, 3)); + $Timestamp = getid3_lib::BigEndian2Int(substr($ThisTagHeader, 8, 3)); + $LastHeaderByte = getid3_lib::BigEndian2Int(substr($ThisTagHeader, 15, 1)); + $NextOffset = ftell($fd) - 1 + $DataLength; + + switch ($TagType) { + case GETID3_FLV_TAG_AUDIO: + if (!isset($ThisFileInfo['flv']['audio']['audioFormat'])) { + $ThisFileInfo['flv']['audio']['audioFormat'] = $LastHeaderByte & 0x07; + $ThisFileInfo['flv']['audio']['audioRate'] = ($LastHeaderByte & 0x30) / 0x10; + $ThisFileInfo['flv']['audio']['audioSampleSize'] = ($LastHeaderByte & 0x40) / 0x40; + $ThisFileInfo['flv']['audio']['audioType'] = ($LastHeaderByte & 0x80) / 0x80; + } + break; + + case GETID3_FLV_TAG_VIDEO: + if (!isset($ThisFileInfo['flv']['video']['videoCodec'])) { + $ThisFileInfo['flv']['video']['videoCodec'] = $LastHeaderByte & 0x07; + + $FLVvideoHeader = fread($fd, 11); + + if ($ThisFileInfo['flv']['video']['videoCodec'] != GETID3_FLV_VIDEO_VP6) { + + $PictureSizeType = (getid3_lib::BigEndian2Int(substr($FLVvideoHeader, 3, 2))) >> 7; + $PictureSizeType = $PictureSizeType & 0x0007; + $ThisFileInfo['flv']['header']['videoSizeType'] = $PictureSizeType; + switch ($PictureSizeType) { + case 0: + $PictureSizeEnc = getid3_lib::BigEndian2Int(substr($FLVvideoHeader, 5, 2)); + $PictureSizeEnc <<= 1; + $ThisFileInfo['video']['resolution_x'] = ($PictureSizeEnc & 0xFF00) >> 8; + $PictureSizeEnc = getid3_lib::BigEndian2Int(substr($FLVvideoHeader, 6, 2)); + $PictureSizeEnc <<= 1; + $ThisFileInfo['video']['resolution_y'] = ($PictureSizeEnc & 0xFF00) >> 8; + break; + + case 1: + $PictureSizeEnc = getid3_lib::BigEndian2Int(substr($FLVvideoHeader, 5, 4)); + $PictureSizeEnc <<= 1; + $ThisFileInfo['video']['resolution_x'] = ($PictureSizeEnc & 0xFFFF0000) >> 16; + + $PictureSizeEnc = getid3_lib::BigEndian2Int(substr($FLVvideoHeader, 7, 4)); + $PictureSizeEnc <<= 1; + $ThisFileInfo['video']['resolution_y'] = ($PictureSizeEnc & 0xFFFF0000) >> 16; + break; + + case 2: + $ThisFileInfo['video']['resolution_x'] = 352; + $ThisFileInfo['video']['resolution_y'] = 288; + break; + + case 3: + $ThisFileInfo['video']['resolution_x'] = 176; + $ThisFileInfo['video']['resolution_y'] = 144; + break; + + case 4: + $ThisFileInfo['video']['resolution_x'] = 128; + $ThisFileInfo['video']['resolution_y'] = 96; + break; + + case 5: + $ThisFileInfo['video']['resolution_x'] = 320; + $ThisFileInfo['video']['resolution_y'] = 240; + break; + + case 6: + $ThisFileInfo['video']['resolution_x'] = 160; + $ThisFileInfo['video']['resolution_y'] = 120; + break; + + default: + $ThisFileInfo['video']['resolution_x'] = 0; + $ThisFileInfo['video']['resolution_y'] = 0; + break; + + } + } + } + break; + + // Meta tag + case GETID3_FLV_TAG_META: + + fseek($fd, -1, SEEK_CUR); + $reader = new AMFReader(new AMFStream(fread($fd, $DataLength))); + $eventName = $reader->readData(); + $ThisFileInfo['meta'][$eventName] = $reader->readData(); + unset($reader); + + $ThisFileInfo['video']['frame_rate'] = $ThisFileInfo['meta']['onMetaData']['framerate']; + $ThisFileInfo['video']['resolution_x'] = $ThisFileInfo['meta']['onMetaData']['width']; + $ThisFileInfo['video']['resolution_y'] = $ThisFileInfo['meta']['onMetaData']['height']; + break; + + default: + // noop + break; + } + + if ($Timestamp > $Duration) { + $Duration = $Timestamp; + } + + fseek($fd, $NextOffset, SEEK_SET); + } + + $ThisFileInfo['playtime_seconds'] = $Duration / 1000; + $ThisFileInfo['bitrate'] = ($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']) / $ThisFileInfo['playtime_seconds']; + + if ($ThisFileInfo['flv']['header']['hasAudio']) { + $ThisFileInfo['audio']['codec'] = $this->FLVaudioFormat($ThisFileInfo['flv']['audio']['audioFormat']); + $ThisFileInfo['audio']['sample_rate'] = $this->FLVaudioRate($ThisFileInfo['flv']['audio']['audioRate']); + $ThisFileInfo['audio']['bits_per_sample'] = $this->FLVaudioBitDepth($ThisFileInfo['flv']['audio']['audioSampleSize']); + + $ThisFileInfo['audio']['channels'] = $ThisFileInfo['flv']['audio']['audioType'] + 1; // 0=mono,1=stereo + $ThisFileInfo['audio']['lossless'] = ($ThisFileInfo['flv']['audio']['audioFormat'] ? false : true); // 0=uncompressed + $ThisFileInfo['audio']['dataformat'] = 'flv'; + } + if (@$ThisFileInfo['flv']['header']['hasVideo']) { + $ThisFileInfo['video']['codec'] = $this->FLVvideoCodec($ThisFileInfo['flv']['video']['videoCodec']); + $ThisFileInfo['video']['dataformat'] = 'flv'; + $ThisFileInfo['video']['lossless'] = false; + } + + return true; + } + + + function FLVaudioFormat($id) { + $FLVaudioFormat = array( + 0 => 'uncompressed', + 1 => 'ADPCM', + 2 => 'mp3', + 5 => 'Nellymoser 8kHz mono', + 6 => 'Nellymoser', + ); + return (@$FLVaudioFormat[$id] ? @$FLVaudioFormat[$id] : false); + } + + function FLVaudioRate($id) { + $FLVaudioRate = array( + 0 => 5500, + 1 => 11025, + 2 => 22050, + 3 => 44100, + ); + return (@$FLVaudioRate[$id] ? @$FLVaudioRate[$id] : false); + } + + function FLVaudioBitDepth($id) { + $FLVaudioBitDepth = array( + 0 => 8, + 1 => 16, + ); + return (@$FLVaudioBitDepth[$id] ? @$FLVaudioBitDepth[$id] : false); + } + + function FLVvideoCodec($id) { + $FLVvideoCodec = array( + GETID3_FLV_VIDEO_H263 => 'Sorenson H.263', + GETID3_FLV_VIDEO_SCREEN => 'Screen video', + GETID3_FLV_VIDEO_VP6 => 'On2 VP6', + ); + return (@$FLVvideoCodec[$id] ? @$FLVvideoCodec[$id] : false); + } +} + +class AMFStream { + var $bytes; + var $pos; + + function AMFStream(&$bytes) { + $this->bytes =& $bytes; + $this->pos = 0; + } + + function readByte() { + return getid3_lib::BigEndian2Int(substr($this->bytes, $this->pos++, 1)); + } + + function readInt() { + return ($this->readByte() << 8) + $this->readByte(); + } + + function readLong() { + return ($this->readByte() << 24) + ($this->readByte() << 16) + ($this->readByte() << 8) + $this->readByte(); + } + + function readDouble() { + return getid3_lib::BigEndian2Float($this->read(8)); + } + + function readUTF() { + $length = $this->readInt(); + return $this->read($length); + } + + function readLongUTF() { + $length = $this->readLong(); + return $this->read($length); + } + + function read($length) { + $val = substr($this->bytes, $this->pos, $length); + $this->pos += $length; + return $val; + } + + function peekByte() { + $pos = $this->pos; + $val = $this->readByte(); + $this->pos = $pos; + return $val; + } + + function peekInt() { + $pos = $this->pos; + $val = $this->readInt(); + $this->pos = $pos; + return $val; + } + + function peekLong() { + $pos = $this->pos; + $val = $this->readLong(); + $this->pos = $pos; + return $val; + } + + function peekDouble() { + $pos = $this->pos; + $val = $this->readDouble(); + $this->pos = $pos; + return $val; + } + + function peekUTF() { + $pos = $this->pos; + $val = $this->readUTF(); + $this->pos = $pos; + return $val; + } + + function peekLongUTF() { + $pos = $this->pos; + $val = $this->readLongUTF(); + $this->pos = $pos; + return $val; + } +} + +class AMFReader { + var $stream; + + function AMFReader(&$stream) { + $this->stream =& $stream; + } + + function readData() { + $value = null; + + $type = $this->stream->readByte(); + + switch($type) { + // Double + case 0: + $value = $this->readDouble(); + break; + + // Boolean + case 1: + $value = $this->readBoolean(); + break; + + // String + case 2: + $value = $this->readString(); + break; + + // Object + case 3: + $value = $this->readObject(); + break; + + // null + case 6: + return null; + break; + + // Mixed array + case 8: + $value = $this->readMixedArray(); + break; + + // Array + case 10: + $value = $this->readArray(); + break; + + // Date + case 11: + $value = $this->readDate(); + break; + + // Long string + case 13: + $value = $this->readLongString(); + break; + + // XML (handled as string) + case 15: + $value = $this->readXML(); + break; + + // Typed object (handled as object) + case 16: + $value = $this->readTypedObject(); + break; + + // Long string + default: + $value = '(unknown or unsupported data type)'; + break; + } + + return $value; + } + + function readDouble() { + return $this->stream->readDouble(); + } + + function readBoolean() { + return $this->stream->readByte() == 1; + } + + function readString() { + return $this->stream->readUTF(); + } + + function readObject() { + // Get highest numerical index - ignored + $highestIndex = $this->stream->readLong(); + + $data = array(); + + while ($key = $this->stream->readUTF()) { + // Mixed array record ends with empty string (0x00 0x00) and 0x09 + if (($key == '') && ($this->stream->peekByte() == 0x09)) { + // Consume byte + $this->stream->readByte(); + break; + } + + $data[$key] = $this->readData(); + } + + return $data; + } + + function readMixedArray() { + // Get highest numerical index - ignored + $highestIndex = $this->stream->readLong(); + + $data = array(); + + while ($key = $this->stream->readUTF()) { + // Mixed array record ends with empty string (0x00 0x00) and 0x09 + if (($key == '') && ($this->stream->peekByte() == 0x09)) { + // Consume byte + $this->stream->readByte(); + break; + } + + if (is_numeric($key)) { + $key = (float) $key; + } + + $data[$key] = $this->readData(); + } + + return $data; + } + + function readArray() { + $length = $this->stream->readLong(); + + $data = array(); + + for ($i = 0; $i < count($length); $i++) { + $data[] = $this->readData(); + } + + return $data; + } + + function readDate() { + $timestamp = $this->stream->readDouble(); + $timezone = $this->stream->readInt(); + return $timestamp; + } + + function readLongString() { + return $this->stream->readLongUTF(); + } + + function readXML() { + return $this->stream->readLongUTF(); + } + + function readTypedObject() { + $className = $this->stream->readUTF(); + return $this->readObject(); + } +} + +?> \ No newline at end of file diff --git a/data/flash/module.audio-video.swf.php b/data/flash/module.audio-video.swf.php new file mode 100644 index 0000000..a03806e --- /dev/null +++ b/data/flash/module.audio-video.swf.php @@ -0,0 +1,153 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +// // +// module.audio-video.swf.php // +// module for analyzing Shockwave Flash files // +// dependencies: NONE // +// /// +///////////////////////////////////////////////////////////////// + + +class getid3_swf +{ + + function getid3_swf(&$fd, &$ThisFileInfo, $ReturnAllTagData=false) { + $ThisFileInfo['fileformat'] = 'swf'; + $ThisFileInfo['video']['dataformat'] = 'swf'; + + // http://www.openswf.org/spec/SWFfileformat.html + + fseek($fd, $ThisFileInfo['avdataoffset'], SEEK_SET); + +//echo 'reading '.($ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']).' bytes
'; + $SWFfileData = fread($fd, $ThisFileInfo['avdataend'] - $ThisFileInfo['avdataoffset']); // 8 + 2 + 2 + max(9) bytes NOT including Frame_Size RECT data + + $ThisFileInfo['swf']['header']['signature'] = substr($SWFfileData, 0, 3); + switch ($ThisFileInfo['swf']['header']['signature']) { + case 'FWS': + $ThisFileInfo['swf']['header']['compressed'] = false; + break; + + case 'CWS': + $ThisFileInfo['swf']['header']['compressed'] = true; + break; + + default: + $ThisFileInfo['error'][] = 'Expecting "FWS" or "CWS" at offset '.$ThisFileInfo['avdataoffset'].', found "'.$ThisFileInfo['swf']['header']['signature'].'"'; + unset($ThisFileInfo['swf']); + unset($ThisFileInfo['fileformat']); + return false; + break; + } + $ThisFileInfo['swf']['header']['version'] = getid3_lib::LittleEndian2Int(substr($SWFfileData, 3, 1)); + $ThisFileInfo['swf']['header']['length'] = getid3_lib::LittleEndian2Int(substr($SWFfileData, 4, 4)); + +//echo '1
'; + if ($ThisFileInfo['swf']['header']['compressed']) { + +//echo '2
'; +// $foo = substr($SWFfileData, 8, 4096); +// echo '['.strlen($foo).']
'; +// $fee = gzuncompress($foo); +// echo '('.strlen($fee).')
'; +//return false; +//echo '
time: '.time().'
'; +//return false; + if ($UncompressedFileData = gzuncompress(substr($SWFfileData, 8))) { + +//echo '3
'; + $SWFfileData = substr($SWFfileData, 0, 8).$UncompressedFileData; + + } else { + +//echo '4
'; + $ThisFileInfo['error'][] = 'Error decompressing compressed SWF data'; + return false; + + } + + } + + $FrameSizeBitsPerValue = (ord(substr($SWFfileData, 8, 1)) & 0xF8) >> 3; + $FrameSizeDataLength = ceil((5 + (4 * $FrameSizeBitsPerValue)) / 8); + $FrameSizeDataString = str_pad(decbin(ord(substr($SWFfileData, 8, 1)) & 0x07), 3, '0', STR_PAD_LEFT); + for ($i = 1; $i < $FrameSizeDataLength; $i++) { + $FrameSizeDataString .= str_pad(decbin(ord(substr($SWFfileData, 8 + $i, 1))), 8, '0', STR_PAD_LEFT); + } + list($X1, $X2, $Y1, $Y2) = explode("\n", wordwrap($FrameSizeDataString, $FrameSizeBitsPerValue, "\n", 1)); + $ThisFileInfo['swf']['header']['frame_width'] = getid3_lib::Bin2Dec($X2); + $ThisFileInfo['swf']['header']['frame_height'] = getid3_lib::Bin2Dec($Y2); + + // http://www-lehre.informatik.uni-osnabrueck.de/~fbstark/diplom/docs/swf/Flash_Uncovered.htm + // Next in the header is the frame rate, which is kind of weird. + // It is supposed to be stored as a 16bit integer, but the first byte + // (or last depending on how you look at it) is completely ignored. + // Example: 0x000C -> 0x0C -> 12 So the frame rate is 12 fps. + + // Byte at (8 + $FrameSizeDataLength) is always zero and ignored + $ThisFileInfo['swf']['header']['frame_rate'] = getid3_lib::LittleEndian2Int(substr($SWFfileData, 9 + $FrameSizeDataLength, 1)); + $ThisFileInfo['swf']['header']['frame_count'] = getid3_lib::LittleEndian2Int(substr($SWFfileData, 10 + $FrameSizeDataLength, 2)); + + $ThisFileInfo['video']['frame_rate'] = $ThisFileInfo['swf']['header']['frame_rate']; + $ThisFileInfo['video']['resolution_x'] = intval(round($ThisFileInfo['swf']['header']['frame_width'] / 20)); + $ThisFileInfo['video']['resolution_y'] = intval(round($ThisFileInfo['swf']['header']['frame_height'] / 20)); + $ThisFileInfo['video']['pixel_aspect_ratio'] = (float) 1; + + if (($ThisFileInfo['swf']['header']['frame_count'] > 0) && ($ThisFileInfo['swf']['header']['frame_rate'] > 0)) { + $ThisFileInfo['playtime_seconds'] = $ThisFileInfo['swf']['header']['frame_count'] / $ThisFileInfo['swf']['header']['frame_rate']; + } + + + // SWF tags + + $CurrentOffset = 12 + $FrameSizeDataLength; + $SWFdataLength = strlen($SWFfileData); + + while ($CurrentOffset < $SWFdataLength) { + + $TagIDTagLength = getid3_lib::LittleEndian2Int(substr($SWFfileData, $CurrentOffset, 2)); + $TagID = ($TagIDTagLength & 0xFFFC) >> 6; + $TagLength = ($TagIDTagLength & 0x003F); + $CurrentOffset += 2; + if ($TagLength == 0x3F) { + $TagLength = getid3_lib::LittleEndian2Int(substr($SWFfileData, $CurrentOffset, 4)); + $CurrentOffset += 4; + } + + unset($TagData); + $TagData['offset'] = $CurrentOffset; + $TagData['size'] = $TagLength; + $TagData['id'] = $TagID; + $TagData['data'] = substr($SWFfileData, $CurrentOffset, $TagLength); + switch ($TagID) { + case 0: // end of movie + break 2; + + case 9: // Set background color + //$ThisFileInfo['swf']['tags'][] = $TagData; + $ThisFileInfo['swf']['bgcolor'] = strtoupper(str_pad(dechex(getid3_lib::BigEndian2Int($TagData['data'])), 6, '0', STR_PAD_LEFT)); + break; + + default: + if ($ReturnAllTagData) { + $ThisFileInfo['swf']['tags'][] = $TagData; + } + break; + } + + $CurrentOffset += $TagLength; + } + + return true; + } + +} + + +?> \ No newline at end of file diff --git a/data/flash/module.tag.apetag.php b/data/flash/module.tag.apetag.php new file mode 100644 index 0000000..6ea8010 --- /dev/null +++ b/data/flash/module.tag.apetag.php @@ -0,0 +1,284 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +// // +// module.tag.apetag.php // +// module for analyzing APE tags // +// dependencies: NONE // +// /// +///////////////////////////////////////////////////////////////// + +class getid3_apetag +{ + + function getid3_apetag(&$fd, &$ThisFileInfo, $overrideendoffset=0) { + $id3v1tagsize = 128; + $apetagheadersize = 32; + $lyrics3tagsize = 10; + + if ($overrideendoffset == 0) { + + fseek($fd, 0 - $id3v1tagsize - $apetagheadersize - $lyrics3tagsize, SEEK_END); + $APEfooterID3v1 = fread($fd, $id3v1tagsize + $apetagheadersize + $lyrics3tagsize); + + //if (preg_match('/APETAGEX.{24}TAG.{125}$/i', $APEfooterID3v1)) { + if (substr($APEfooterID3v1, strlen($APEfooterID3v1) - $id3v1tagsize - $apetagheadersize, 8) == 'APETAGEX') { + + // APE tag found before ID3v1 + $ThisFileInfo['ape']['tag_offset_end'] = $ThisFileInfo['filesize'] - $id3v1tagsize; + + //} elseif (preg_match('/APETAGEX.{24}$/i', $APEfooterID3v1)) { + } elseif (substr($APEfooterID3v1, strlen($APEfooterID3v1) - $apetagheadersize, 8) == 'APETAGEX') { + + // APE tag found, no ID3v1 + $ThisFileInfo['ape']['tag_offset_end'] = $ThisFileInfo['filesize']; + + } + + } else { + + fseek($fd, $overrideendoffset - $apetagheadersize, SEEK_SET); + if (fread($fd, 8) == 'APETAGEX') { + $ThisFileInfo['ape']['tag_offset_end'] = $overrideendoffset; + } + + } + if (!isset($ThisFileInfo['ape']['tag_offset_end'])) { + + // APE tag not found + unset($ThisFileInfo['ape']); + return false; + + } + + // shortcut + $thisfile_ape = &$ThisFileInfo['ape']; + + fseek($fd, $thisfile_ape['tag_offset_end'] - $apetagheadersize, SEEK_SET); + $APEfooterData = fread($fd, 32); + if (!($thisfile_ape['footer'] = $this->parseAPEheaderFooter($APEfooterData))) { + $ThisFileInfo['error'][] = 'Error parsing APE footer at offset '.$thisfile_ape['tag_offset_end']; + return false; + } + + if (isset($thisfile_ape['footer']['flags']['header']) && $thisfile_ape['footer']['flags']['header']) { + fseek($fd, $thisfile_ape['tag_offset_end'] - $thisfile_ape['footer']['raw']['tagsize'] - $apetagheadersize, SEEK_SET); + $thisfile_ape['tag_offset_start'] = ftell($fd); + $APEtagData = fread($fd, $thisfile_ape['footer']['raw']['tagsize'] + $apetagheadersize); + } else { + $thisfile_ape['tag_offset_start'] = $thisfile_ape['tag_offset_end'] - $thisfile_ape['footer']['raw']['tagsize']; + fseek($fd, $thisfile_ape['tag_offset_start'], SEEK_SET); + $APEtagData = fread($fd, $thisfile_ape['footer']['raw']['tagsize']); + } + $ThisFileInfo['avdataend'] = $thisfile_ape['tag_offset_start']; + + if (isset($ThisFileInfo['id3v1']['tag_offset_start']) && ($ThisFileInfo['id3v1']['tag_offset_start'] < $thisfile_ape['tag_offset_end'])) { + $ThisFileInfo['warning'][] = 'ID3v1 tag information ignored since it appears to be a false synch in APEtag data'; + unset($ThisFileInfo['id3v1']); + foreach ($ThisFileInfo['warning'] as $key => $value) { + if ($value == 'Some ID3v1 fields do not use NULL characters for padding') { + unset($ThisFileInfo['warning'][$key]); + sort($ThisFileInfo['warning']); + break; + } + } + } + + $offset = 0; + if (isset($thisfile_ape['footer']['flags']['header']) && $thisfile_ape['footer']['flags']['header']) { + if ($thisfile_ape['header'] = $this->parseAPEheaderFooter(substr($APEtagData, 0, $apetagheadersize))) { + $offset += $apetagheadersize; + } else { + $ThisFileInfo['error'][] = 'Error parsing APE header at offset '.$thisfile_ape['tag_offset_start']; + return false; + } + } + + // shortcut + $ThisFileInfo['replay_gain'] = array(); + $thisfile_replaygain = &$ThisFileInfo['replay_gain']; + + for ($i = 0; $i < $thisfile_ape['footer']['raw']['tag_items']; $i++) { + $value_size = getid3_lib::LittleEndian2Int(substr($APEtagData, $offset, 4)); + $offset += 4; + $item_flags = getid3_lib::LittleEndian2Int(substr($APEtagData, $offset, 4)); + $offset += 4; + if (strstr(substr($APEtagData, $offset), "\x00") === false) { + $ThisFileInfo['error'][] = 'Cannot find null-byte (0x00) seperator between ItemKey #'.$i.' and value. ItemKey starts '.$offset.' bytes into the APE tag, at file offset '.($thisfile_ape['tag_offset_start'] + $offset); + return false; + } + $ItemKeyLength = strpos($APEtagData, "\x00", $offset) - $offset; + $item_key = strtolower(substr($APEtagData, $offset, $ItemKeyLength)); + + // shortcut + $thisfile_ape['items'][$item_key] = array(); + $thisfile_ape_items_current = &$thisfile_ape['items'][$item_key]; + + $offset += ($ItemKeyLength + 1); // skip 0x00 terminator + $thisfile_ape_items_current['data'] = substr($APEtagData, $offset, $value_size); + $offset += $value_size; + + $thisfile_ape_items_current['flags'] = $this->parseAPEtagFlags($item_flags); + switch ($thisfile_ape_items_current['flags']['item_contents_raw']) { + case 0: // UTF-8 + case 3: // Locator (URL, filename, etc), UTF-8 encoded + $thisfile_ape_items_current['data'] = explode("\x00", trim($thisfile_ape_items_current['data'])); + break; + + default: // binary data + break; + } + + switch (strtolower($item_key)) { + case 'replaygain_track_gain': + $thisfile_replaygain['track']['adjustment'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero! + $thisfile_replaygain['track']['originator'] = 'unspecified'; + break; + + case 'replaygain_track_peak': + $thisfile_replaygain['track']['peak'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero! + $thisfile_replaygain['track']['originator'] = 'unspecified'; + if ($thisfile_replaygain['track']['peak'] <= 0) { + $ThisFileInfo['warning'][] = 'ReplayGain Track peak from APEtag appears invalid: '.$thisfile_replaygain['track']['peak'].' (original value = "'.$thisfile_ape_items_current['data'][0].'")'; + } + break; + + case 'replaygain_album_gain': + $thisfile_replaygain['album']['adjustment'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero! + $thisfile_replaygain['album']['originator'] = 'unspecified'; + break; + + case 'replaygain_album_peak': + $thisfile_replaygain['album']['peak'] = (float) str_replace(',', '.', $thisfile_ape_items_current['data'][0]); // float casting will see "0,95" as zero! + $thisfile_replaygain['album']['originator'] = 'unspecified'; + if ($thisfile_replaygain['album']['peak'] <= 0) { + $ThisFileInfo['warning'][] = 'ReplayGain Album peak from APEtag appears invalid: '.$thisfile_replaygain['album']['peak'].' (original value = "'.$thisfile_ape_items_current['data'][0].'")'; + } + break; + + case 'mp3gain_undo': + list($mp3gain_undo_left, $mp3gain_undo_right, $mp3gain_undo_wrap) = explode(',', $thisfile_ape_items_current['data'][0]); + $thisfile_replaygain['mp3gain']['undo_left'] = intval($mp3gain_undo_left); + $thisfile_replaygain['mp3gain']['undo_right'] = intval($mp3gain_undo_right); + $thisfile_replaygain['mp3gain']['undo_wrap'] = (($mp3gain_undo_wrap == 'Y') ? true : false); + break; + + case 'mp3gain_minmax': + list($mp3gain_globalgain_min, $mp3gain_globalgain_max) = explode(',', $thisfile_ape_items_current['data'][0]); + $thisfile_replaygain['mp3gain']['globalgain_track_min'] = intval($mp3gain_globalgain_min); + $thisfile_replaygain['mp3gain']['globalgain_track_max'] = intval($mp3gain_globalgain_max); + break; + + case 'mp3gain_album_minmax': + list($mp3gain_globalgain_album_min, $mp3gain_globalgain_album_max) = explode(',', $thisfile_ape_items_current['data'][0]); + $thisfile_replaygain['mp3gain']['globalgain_album_min'] = intval($mp3gain_globalgain_album_min); + $thisfile_replaygain['mp3gain']['globalgain_album_max'] = intval($mp3gain_globalgain_album_max); + break; + + case 'tracknumber': + foreach ($thisfile_ape_items_current['data'] as $comment) { + $thisfile_ape['comments']['track'][] = $comment; + } + break; + + default: + foreach ($thisfile_ape_items_current['data'] as $comment) { + $thisfile_ape['comments'][strtolower($item_key)][] = $comment; + } + break; + } + + } + if (empty($thisfile_replaygain)) { + unset($ThisFileInfo['replay_gain']); + } + + return true; + } + + function parseAPEheaderFooter($APEheaderFooterData) { + // http://www.uni-jena.de/~pfk/mpp/sv8/apeheader.html + + // shortcut + $headerfooterinfo['raw'] = array(); + $headerfooterinfo_raw = &$headerfooterinfo['raw']; + + $headerfooterinfo_raw['footer_tag'] = substr($APEheaderFooterData, 0, 8); + if ($headerfooterinfo_raw['footer_tag'] != 'APETAGEX') { + return false; + } + $headerfooterinfo_raw['version'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 8, 4)); + $headerfooterinfo_raw['tagsize'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 12, 4)); + $headerfooterinfo_raw['tag_items'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 16, 4)); + $headerfooterinfo_raw['global_flags'] = getid3_lib::LittleEndian2Int(substr($APEheaderFooterData, 20, 4)); + $headerfooterinfo_raw['reserved'] = substr($APEheaderFooterData, 24, 8); + + $headerfooterinfo['tag_version'] = $headerfooterinfo_raw['version'] / 1000; + if ($headerfooterinfo['tag_version'] >= 2) { + $headerfooterinfo['flags'] = $this->parseAPEtagFlags($headerfooterinfo_raw['global_flags']); + } + return $headerfooterinfo; + } + + function parseAPEtagFlags($rawflagint) { + // "Note: APE Tags 1.0 do not use any of the APE Tag flags. + // All are set to zero on creation and ignored on reading." + // http://www.uni-jena.de/~pfk/mpp/sv8/apetagflags.html + $flags['header'] = (bool) ($rawflagint & 0x80000000); + $flags['footer'] = (bool) ($rawflagint & 0x40000000); + $flags['this_is_header'] = (bool) ($rawflagint & 0x20000000); + $flags['item_contents_raw'] = ($rawflagint & 0x00000006) >> 1; + $flags['read_only'] = (bool) ($rawflagint & 0x00000001); + + $flags['item_contents'] = $this->APEcontentTypeFlagLookup($flags['item_contents_raw']); + + return $flags; + } + + function APEcontentTypeFlagLookup($contenttypeid) { + static $APEcontentTypeFlagLookup = array( + 0 => 'utf-8', + 1 => 'binary', + 2 => 'external', + 3 => 'reserved' + ); + return (isset($APEcontentTypeFlagLookup[$contenttypeid]) ? $APEcontentTypeFlagLookup[$contenttypeid] : 'invalid'); + } + + function APEtagItemIsUTF8Lookup($itemkey) { + static $APEtagItemIsUTF8Lookup = array( + 'title', + 'subtitle', + 'artist', + 'album', + 'debut album', + 'publisher', + 'conductor', + 'track', + 'composer', + 'comment', + 'copyright', + 'publicationright', + 'file', + 'year', + 'record date', + 'record location', + 'genre', + 'media', + 'related', + 'isrc', + 'abstract', + 'language', + 'bibliography' + ); + return in_array(strtolower($itemkey), $APEtagItemIsUTF8Lookup); + } + +} + +?> \ No newline at end of file diff --git a/data/flash/module.tag.id3v1.php b/data/flash/module.tag.id3v1.php new file mode 100644 index 0000000..dd9b47b --- /dev/null +++ b/data/flash/module.tag.id3v1.php @@ -0,0 +1,356 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +// // +// module.tag.id3v1.php // +// module for analyzing ID3v1 tags // +// dependencies: NONE // +// /// +///////////////////////////////////////////////////////////////// + + +class getid3_id3v1 +{ + + function getid3_id3v1(&$fd, &$ThisFileInfo) { + + fseek($fd, -256, SEEK_END); + $preid3v1 = fread($fd, 128); + $id3v1tag = fread($fd, 128); + + if (substr($id3v1tag, 0, 3) == 'TAG') { + + $ThisFileInfo['avdataend'] = $ThisFileInfo['filesize'] - 128; + + $ParsedID3v1['title'] = $this->cutfield(substr($id3v1tag, 3, 30)); + $ParsedID3v1['artist'] = $this->cutfield(substr($id3v1tag, 33, 30)); + $ParsedID3v1['album'] = $this->cutfield(substr($id3v1tag, 63, 30)); + $ParsedID3v1['year'] = $this->cutfield(substr($id3v1tag, 93, 4)); + $ParsedID3v1['comment'] = substr($id3v1tag, 97, 30); // can't remove nulls yet, track detection depends on them + $ParsedID3v1['genreid'] = ord(substr($id3v1tag, 127, 1)); + + // If second-last byte of comment field is null and last byte of comment field is non-null + // then this is ID3v1.1 and the comment field is 28 bytes long and the 30th byte is the track number + if (($id3v1tag{125} === "\x00") && ($id3v1tag{126} !== "\x00")) { + $ParsedID3v1['track'] = ord(substr($ParsedID3v1['comment'], 29, 1)); + $ParsedID3v1['comment'] = substr($ParsedID3v1['comment'], 0, 28); + } + $ParsedID3v1['comment'] = $this->cutfield($ParsedID3v1['comment']); + + $ParsedID3v1['genre'] = $this->LookupGenreName($ParsedID3v1['genreid']); + if (!empty($ParsedID3v1['genre'])) { + unset($ParsedID3v1['genreid']); + } + if (empty($ParsedID3v1['genre']) || (@$ParsedID3v1['genre'] == 'Unknown')) { + unset($ParsedID3v1['genre']); + } + + foreach ($ParsedID3v1 as $key => $value) { + $ParsedID3v1['comments'][$key][0] = $value; + } + + // ID3v1 data is supposed to be padded with NULL characters, but some taggers pad with spaces + $GoodFormatID3v1tag = $this->GenerateID3v1Tag( + $ParsedID3v1['title'], + $ParsedID3v1['artist'], + $ParsedID3v1['album'], + $ParsedID3v1['year'], + $this->LookupGenreID(@$ParsedID3v1['genre']), + $ParsedID3v1['comment'], + @$ParsedID3v1['track']); + $ParsedID3v1['padding_valid'] = true; + if ($id3v1tag !== $GoodFormatID3v1tag) { + $ParsedID3v1['padding_valid'] = false; + $ThisFileInfo['warning'][] = 'Some ID3v1 fields do not use NULL characters for padding'; + } + + $ParsedID3v1['tag_offset_end'] = $ThisFileInfo['filesize']; + $ParsedID3v1['tag_offset_start'] = $ParsedID3v1['tag_offset_end'] - 128; + + $ThisFileInfo['id3v1'] = $ParsedID3v1; + } + + if (substr($preid3v1, 0, 3) == 'TAG') { + // The way iTunes handles tags is, well, brain-damaged. + // It completely ignores v1 if ID3v2 is present. + // This goes as far as adding a new v1 tag *even if there already is one* + + // A suspected double-ID3v1 tag has been detected, but it could be that + // the "TAG" identifier is a legitimate part of an APE or Lyrics3 tag + if (substr($preid3v1, 96, 8) == 'APETAGEX') { + // an APE tag footer was found before the last ID3v1, assume false "TAG" synch + } elseif (substr($preid3v1, 119, 6) == 'LYRICS') { + // a Lyrics3 tag footer was found before the last ID3v1, assume false "TAG" synch + } else { + // APE and Lyrics3 footers not found - assume double ID3v1 + $ThisFileInfo['warning'][] = 'Duplicate ID3v1 tag detected - this has been known to happen with iTunes'; + $ThisFileInfo['avdataend'] -= 128; + } + } + + return true; + } + + function cutfield($str) { + return trim(substr($str, 0, strcspn($str, "\x00"))); + } + + function ArrayOfGenres($allowSCMPXextended=false) { + static $GenreLookup = array( + 0 => 'Blues', + 1 => 'Classic Rock', + 2 => 'Country', + 3 => 'Dance', + 4 => 'Disco', + 5 => 'Funk', + 6 => 'Grunge', + 7 => 'Hip-Hop', + 8 => 'Jazz', + 9 => 'Metal', + 10 => 'New Age', + 11 => 'Oldies', + 12 => 'Other', + 13 => 'Pop', + 14 => 'R&B', + 15 => 'Rap', + 16 => 'Reggae', + 17 => 'Rock', + 18 => 'Techno', + 19 => 'Industrial', + 20 => 'Alternative', + 21 => 'Ska', + 22 => 'Death Metal', + 23 => 'Pranks', + 24 => 'Soundtrack', + 25 => 'Euro-Techno', + 26 => 'Ambient', + 27 => 'Trip-Hop', + 28 => 'Vocal', + 29 => 'Jazz+Funk', + 30 => 'Fusion', + 31 => 'Trance', + 32 => 'Classical', + 33 => 'Instrumental', + 34 => 'Acid', + 35 => 'House', + 36 => 'Game', + 37 => 'Sound Clip', + 38 => 'Gospel', + 39 => 'Noise', + 40 => 'Alt. Rock', + 41 => 'Bass', + 42 => 'Soul', + 43 => 'Punk', + 44 => 'Space', + 45 => 'Meditative', + 46 => 'Instrumental Pop', + 47 => 'Instrumental Rock', + 48 => 'Ethnic', + 49 => 'Gothic', + 50 => 'Darkwave', + 51 => 'Techno-Industrial', + 52 => 'Electronic', + 53 => 'Pop-Folk', + 54 => 'Eurodance', + 55 => 'Dream', + 56 => 'Southern Rock', + 57 => 'Comedy', + 58 => 'Cult', + 59 => 'Gangsta Rap', + 60 => 'Top 40', + 61 => 'Christian Rap', + 62 => 'Pop/Funk', + 63 => 'Jungle', + 64 => 'Native American', + 65 => 'Cabaret', + 66 => 'New Wave', + 67 => 'Psychedelic', + 68 => 'Rave', + 69 => 'Showtunes', + 70 => 'Trailer', + 71 => 'Lo-Fi', + 72 => 'Tribal', + 73 => 'Acid Punk', + 74 => 'Acid Jazz', + 75 => 'Polka', + 76 => 'Retro', + 77 => 'Musical', + 78 => 'Rock & Roll', + 79 => 'Hard Rock', + 80 => 'Folk', + 81 => 'Folk/Rock', + 82 => 'National Folk', + 83 => 'Swing', + 84 => 'Fast-Fusion', + 85 => 'Bebob', + 86 => 'Latin', + 87 => 'Revival', + 88 => 'Celtic', + 89 => 'Bluegrass', + 90 => 'Avantgarde', + 91 => 'Gothic Rock', + 92 => 'Progressive Rock', + 93 => 'Psychedelic Rock', + 94 => 'Symphonic Rock', + 95 => 'Slow Rock', + 96 => 'Big Band', + 97 => 'Chorus', + 98 => 'Easy Listening', + 99 => 'Acoustic', + 100 => 'Humour', + 101 => 'Speech', + 102 => 'Chanson', + 103 => 'Opera', + 104 => 'Chamber Music', + 105 => 'Sonata', + 106 => 'Symphony', + 107 => 'Booty Bass', + 108 => 'Primus', + 109 => 'Porn Groove', + 110 => 'Satire', + 111 => 'Slow Jam', + 112 => 'Club', + 113 => 'Tango', + 114 => 'Samba', + 115 => 'Folklore', + 116 => 'Ballad', + 117 => 'Power Ballad', + 118 => 'Rhythmic Soul', + 119 => 'Freestyle', + 120 => 'Duet', + 121 => 'Punk Rock', + 122 => 'Drum Solo', + 123 => 'A Cappella', + 124 => 'Euro-House', + 125 => 'Dance Hall', + 126 => 'Goa', + 127 => 'Drum & Bass', + 128 => 'Club-House', + 129 => 'Hardcore', + 130 => 'Terror', + 131 => 'Indie', + 132 => 'BritPop', + 133 => 'Negerpunk', + 134 => 'Polsk Punk', + 135 => 'Beat', + 136 => 'Christian Gangsta Rap', + 137 => 'Heavy Metal', + 138 => 'Black Metal', + 139 => 'Crossover', + 140 => 'Contemporary Christian', + 141 => 'Christian Rock', + 142 => 'Merengue', + 143 => 'Salsa', + 144 => 'Trash Metal', + 145 => 'Anime', + 146 => 'JPop', + 147 => 'Synthpop', + + 255 => 'Unknown', + + 'CR' => 'Cover', + 'RX' => 'Remix' + ); + + static $GenreLookupSCMPX = array(); + if ($allowSCMPXextended && empty($GenreLookupSCMPX)) { + $GenreLookupSCMPX = $GenreLookup; + // http://www.geocities.co.jp/SiliconValley-Oakland/3664/alittle.html#GenreExtended + // Extended ID3v1 genres invented by SCMPX + // Note that 255 "Japanese Anime" conflicts with standard "Unknown" + $GenreLookupSCMPX[240] = 'Sacred'; + $GenreLookupSCMPX[241] = 'Northern Europe'; + $GenreLookupSCMPX[242] = 'Irish & Scottish'; + $GenreLookupSCMPX[243] = 'Scotland'; + $GenreLookupSCMPX[244] = 'Ethnic Europe'; + $GenreLookupSCMPX[245] = 'Enka'; + $GenreLookupSCMPX[246] = 'Children\'s Song'; + $GenreLookupSCMPX[247] = 'Japanese Sky'; + $GenreLookupSCMPX[248] = 'Japanese Heavy Rock'; + $GenreLookupSCMPX[249] = 'Japanese Doom Rock'; + $GenreLookupSCMPX[250] = 'Japanese J-POP'; + $GenreLookupSCMPX[251] = 'Japanese Seiyu'; + $GenreLookupSCMPX[252] = 'Japanese Ambient Techno'; + $GenreLookupSCMPX[253] = 'Japanese Moemoe'; + $GenreLookupSCMPX[254] = 'Japanese Tokusatsu'; + //$GenreLookupSCMPX[255] = 'Japanese Anime'; + } + + return ($allowSCMPXextended ? $GenreLookupSCMPX : $GenreLookup); + } + + function LookupGenreName($genreid, $allowSCMPXextended=true) { + switch ($genreid) { + case 'RX': + case 'CR': + break; + default: + $genreid = intval($genreid); // to handle 3 or '3' or '03' + break; + } + $GenreLookup = getid3_id3v1::ArrayOfGenres($allowSCMPXextended); + return (isset($GenreLookup[$genreid]) ? $GenreLookup[$genreid] : false); + } + + function LookupGenreID($genre, $allowSCMPXextended=false) { + $GenreLookup = getid3_id3v1::ArrayOfGenres($allowSCMPXextended); + $LowerCaseNoSpaceSearchTerm = strtolower(str_replace(' ', '', $genre)); + foreach ($GenreLookup as $key => $value) { + foreach ($GenreLookup as $key => $value) { + if (strtolower(str_replace(' ', '', $value)) == $LowerCaseNoSpaceSearchTerm) { + return $key; + } + } + return false; + } + return (isset($GenreLookup[$genreid]) ? $GenreLookup[$genreid] : false); + } + + function StandardiseID3v1GenreName($OriginalGenre) { + if (($GenreID = getid3_id3v1::LookupGenreID($OriginalGenre)) !== false) { + return getid3_id3v1::LookupGenreName($GenreID); + } + return $OriginalGenre; + } + + function GenerateID3v1Tag($title, $artist, $album, $year, $genreid, $comment, $track='') { + $ID3v1Tag = 'TAG'; + $ID3v1Tag .= str_pad(trim(substr($title, 0, 30)), 30, "\x00", STR_PAD_RIGHT); + $ID3v1Tag .= str_pad(trim(substr($artist, 0, 30)), 30, "\x00", STR_PAD_RIGHT); + $ID3v1Tag .= str_pad(trim(substr($album, 0, 30)), 30, "\x00", STR_PAD_RIGHT); + $ID3v1Tag .= str_pad(trim(substr($year, 0, 4)), 4, "\x00", STR_PAD_LEFT); + if (!empty($track) && ($track > 0) && ($track <= 255)) { + $ID3v1Tag .= str_pad(trim(substr($comment, 0, 28)), 28, "\x00", STR_PAD_RIGHT); + $ID3v1Tag .= "\x00"; + if (gettype($track) == 'string') { + $track = (int) $track; + } + $ID3v1Tag .= chr($track); + } else { + $ID3v1Tag .= str_pad(trim(substr($comment, 0, 30)), 30, "\x00", STR_PAD_RIGHT); + } + if (($genreid < 0) || ($genreid > 147)) { + $genreid = 255; // 'unknown' genre + } + switch (gettype($genreid)) { + case 'string': + case 'integer': + $ID3v1Tag .= chr(intval($genreid)); + break; + default: + $ID3v1Tag .= chr(255); // 'unknown' genre + break; + } + + return $ID3v1Tag; + } + +} + + +?> \ No newline at end of file diff --git a/data/flash/module.tag.id3v2.php b/data/flash/module.tag.id3v2.php new file mode 100644 index 0000000..62c4e3c --- /dev/null +++ b/data/flash/module.tag.id3v2.php @@ -0,0 +1,3130 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +/// // +// module.tag.id3v2.php // +// module for analyzing ID3v2 tags // +// dependencies: module.tag.id3v1.php // +// /// +///////////////////////////////////////////////////////////////// + +getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v1.php', __FILE__, true); + +class getid3_id3v2 +{ + + function getid3_id3v2(&$fd, &$ThisFileInfo, $StartingOffset=0) { + // Overall tag structure: + // +-----------------------------+ + // | Header (10 bytes) | + // +-----------------------------+ + // | Extended Header | + // | (variable length, OPTIONAL) | + // +-----------------------------+ + // | Frames (variable length) | + // +-----------------------------+ + // | Padding | + // | (variable length, OPTIONAL) | + // +-----------------------------+ + // | Footer (10 bytes, OPTIONAL) | + // +-----------------------------+ + + // Header + // ID3v2/file identifier "ID3" + // ID3v2 version $04 00 + // ID3v2 flags (%ab000000 in v2.2, %abc00000 in v2.3, %abcd0000 in v2.4.x) + // ID3v2 size 4 * %0xxxxxxx + + + // shortcuts + $ThisFileInfo['id3v2']['header'] = true; + $thisfile_id3v2 = &$ThisFileInfo['id3v2']; + $thisfile_id3v2['flags'] = array(); + $thisfile_id3v2_flags = &$thisfile_id3v2['flags']; + + + fseek($fd, $StartingOffset, SEEK_SET); + $header = fread($fd, 10); + if (substr($header, 0, 3) == 'ID3') { + + $thisfile_id3v2['majorversion'] = ord($header{3}); + $thisfile_id3v2['minorversion'] = ord($header{4}); + + // shortcut + $id3v2_majorversion = &$thisfile_id3v2['majorversion']; + + } else { + + unset($ThisFileInfo['id3v2']); + return false; + + } + + if ($id3v2_majorversion > 4) { // this script probably won't correctly parse ID3v2.5.x and above (if it ever exists) + + $ThisFileInfo['error'][] = 'this script only parses up to ID3v2.4.x - this tag is ID3v2.'.$id3v2_majorversion.'.'.$thisfile_id3v2['minorversion']; + return false; + + } + + $id3_flags = ord($header{5}); + switch ($id3v2_majorversion) { + case 2: + // %ab000000 in v2.2 + $thisfile_id3v2_flags['unsynch'] = (bool) ($id3_flags & 0x80); // a - Unsynchronisation + $thisfile_id3v2_flags['compression'] = (bool) ($id3_flags & 0x40); // b - Compression + break; + + case 3: + // %abc00000 in v2.3 + $thisfile_id3v2_flags['unsynch'] = (bool) ($id3_flags & 0x80); // a - Unsynchronisation + $thisfile_id3v2_flags['exthead'] = (bool) ($id3_flags & 0x40); // b - Extended header + $thisfile_id3v2_flags['experim'] = (bool) ($id3_flags & 0x20); // c - Experimental indicator + break; + + case 4: + // %abcd0000 in v2.4 + $thisfile_id3v2_flags['unsynch'] = (bool) ($id3_flags & 0x80); // a - Unsynchronisation + $thisfile_id3v2_flags['exthead'] = (bool) ($id3_flags & 0x40); // b - Extended header + $thisfile_id3v2_flags['experim'] = (bool) ($id3_flags & 0x20); // c - Experimental indicator + $thisfile_id3v2_flags['isfooter'] = (bool) ($id3_flags & 0x10); // d - Footer present + break; + } + + $thisfile_id3v2['headerlength'] = getid3_lib::BigEndian2Int(substr($header, 6, 4), 1) + 10; // length of ID3v2 tag in 10-byte header doesn't include 10-byte header length + + $thisfile_id3v2['tag_offset_start'] = $StartingOffset; + $thisfile_id3v2['tag_offset_end'] = $thisfile_id3v2['tag_offset_start'] + $thisfile_id3v2['headerlength']; + + // Extended Header + if (isset($thisfile_id3v2_flags['exthead']) && $thisfile_id3v2_flags['exthead']) { + // Extended header size 4 * %0xxxxxxx + // Number of flag bytes $01 + // Extended Flags $xx + // Where the 'Extended header size' is the size of the whole extended header, stored as a 32 bit synchsafe integer. + $thisfile_id3v2['exthead_length'] = getid3_lib::BigEndian2Int(fread($fd, 4), 1); + + $thisfile_id3v2['exthead_flag_bytes'] = ord(fread($fd, 1)); + if ($thisfile_id3v2['exthead_flag_bytes'] == 1) { + // The extended flags field, with its size described by 'number of flag bytes', is defined as: + // %0bcd0000 + // b - Tag is an update + // Flag data length $00 + // c - CRC data present + // Flag data length $05 + // Total frame CRC 5 * %0xxxxxxx + // d - Tag restrictions + // Flag data length $01 + $extheaderflags = fread($fd, $thisfile_id3v2['exthead_flag_bytes']); + $id3_exthead_flags = getid3_lib::BigEndian2Bin(substr($header, 5, 1)); + $thisfile_id3v2['exthead_flags']['update'] = substr($id3_exthead_flags, 1, 1); + $thisfile_id3v2['exthead_flags']['CRC'] = substr($id3_exthead_flags, 2, 1); + if ($thisfile_id3v2['exthead_flags']['CRC']) { + $extheaderrawCRC = fread($fd, 5); + $thisfile_id3v2['exthead_flags']['CRC'] = getid3_lib::BigEndian2Int($extheaderrawCRC, 1); + } + $thisfile_id3v2['exthead_flags']['restrictions'] = substr($id3_exthead_flags, 3, 1); + if ($thisfile_id3v2['exthead_flags']['restrictions']) { + // Restrictions %ppqrrstt + $extheaderrawrestrictions = fread($fd, 1); + $thisfile_id3v2['exthead_flags']['restrictions_tagsize'] = (bindec('11000000') & ord($extheaderrawrestrictions)) >> 6; // p - Tag size restrictions + $thisfile_id3v2['exthead_flags']['restrictions_textenc'] = (bindec('00100000') & ord($extheaderrawrestrictions)) >> 5; // q - Text encoding restrictions + $thisfile_id3v2['exthead_flags']['restrictions_textsize'] = (bindec('00011000') & ord($extheaderrawrestrictions)) >> 3; // r - Text fields size restrictions + $thisfile_id3v2['exthead_flags']['restrictions_imgenc'] = (bindec('00000100') & ord($extheaderrawrestrictions)) >> 2; // s - Image encoding restrictions + $thisfile_id3v2['exthead_flags']['restrictions_imgsize'] = (bindec('00000011') & ord($extheaderrawrestrictions)) >> 0; // t - Image size restrictions + } + } else { + $ThisFileInfo['warning'][] = '$thisfile_id3v2[exthead_flag_bytes] = "'.$thisfile_id3v2['exthead_flag_bytes'].'" (expecting "1")'; + fseek($fd, $thisfile_id3v2['exthead_length'] - 1, SEEK_CUR); + //return false; + } + } // end extended header + + + // create 'encoding' key - used by getid3::HandleAllTags() + // in ID3v2 every field can have it's own encoding type + // so force everything to UTF-8 so it can be handled consistantly + $thisfile_id3v2['encoding'] = 'UTF-8'; + + + // Frames + + // All ID3v2 frames consists of one frame header followed by one or more + // fields containing the actual information. The header is always 10 + // bytes and laid out as follows: + // + // Frame ID $xx xx xx xx (four characters) + // Size 4 * %0xxxxxxx + // Flags $xx xx + + $sizeofframes = $thisfile_id3v2['headerlength'] - 10; // not including 10-byte initial header + if (@$thisfile_id3v2['exthead_length']) { + $sizeofframes -= ($thisfile_id3v2['exthead_length'] + 4); + } + if (@$thisfile_id3v2_flags['isfooter']) { + $sizeofframes -= 10; // footer takes last 10 bytes of ID3v2 header, after frame data, before audio + } + if ($sizeofframes > 0) { + + $framedata = fread($fd, $sizeofframes); // read all frames from file into $framedata variable + + // if entire frame data is unsynched, de-unsynch it now (ID3v2.3.x) + if (@$thisfile_id3v2_flags['unsynch'] && ($id3v2_majorversion <= 3)) { + $framedata = $this->DeUnsynchronise($framedata); + } + // [in ID3v2.4.0] Unsynchronisation [S:6.1] is done on frame level, instead + // of on tag level, making it easier to skip frames, increasing the streamability + // of the tag. The unsynchronisation flag in the header [S:3.1] indicates that + // there exists an unsynchronised frame, while the new unsynchronisation flag in + // the frame header [S:4.1.2] indicates unsynchronisation. + + $framedataoffset = 10 + (@$thisfile_id3v2['exthead_length'] ? $thisfile_id3v2['exthead_length'] + 4 : 0); // how many bytes into the stream - start from after the 10-byte header (and extended header length+4, if present) + while (isset($framedata) && (strlen($framedata) > 0)) { // cycle through until no more frame data is left to parse + if (strlen($framedata) <= $this->ID3v2HeaderLength($id3v2_majorversion)) { + // insufficient room left in ID3v2 header for actual data - must be padding + $thisfile_id3v2['padding']['start'] = $framedataoffset; + $thisfile_id3v2['padding']['length'] = strlen($framedata); + $thisfile_id3v2['padding']['valid'] = true; + for ($i = 0; $i < $thisfile_id3v2['padding']['length']; $i++) { + if ($framedata{$i} != "\x00") { + $thisfile_id3v2['padding']['valid'] = false; + $thisfile_id3v2['padding']['errorpos'] = $thisfile_id3v2['padding']['start'] + $i; + $ThisFileInfo['warning'][] = 'Invalid ID3v2 padding found at offset '.$thisfile_id3v2['padding']['errorpos'].' (the remaining '.($thisfile_id3v2['padding']['length'] - $i).' bytes are considered invalid)'; + break; + } + } + break; // skip rest of ID3v2 header + } + if ($id3v2_majorversion == 2) { + // Frame ID $xx xx xx (three characters) + // Size $xx xx xx (24-bit integer) + // Flags $xx xx + + $frame_header = substr($framedata, 0, 6); // take next 6 bytes for header + $framedata = substr($framedata, 6); // and leave the rest in $framedata + $frame_name = substr($frame_header, 0, 3); + $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 3, 3), 0); + $frame_flags = 0; // not used for anything in ID3v2.2, just set to avoid E_NOTICEs + + } elseif ($id3v2_majorversion > 2) { + + // Frame ID $xx xx xx xx (four characters) + // Size $xx xx xx xx (32-bit integer in v2.3, 28-bit synchsafe in v2.4+) + // Flags $xx xx + + $frame_header = substr($framedata, 0, 10); // take next 10 bytes for header + $framedata = substr($framedata, 10); // and leave the rest in $framedata + + $frame_name = substr($frame_header, 0, 4); + if ($id3v2_majorversion == 3) { + $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 0); // 32-bit integer + } else { // ID3v2.4+ + $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 1); // 32-bit synchsafe integer (28-bit value) + } + + if ($frame_size < (strlen($framedata) + 4)) { + $nextFrameID = substr($framedata, $frame_size, 4); + if ($this->IsValidID3v2FrameName($nextFrameID, $id3v2_majorversion)) { + // next frame is OK + } elseif (($frame_name == "\x00".'MP3') || ($frame_name == "\x00\x00".'MP') || ($frame_name == ' MP3') || ($frame_name == 'MP3e')) { + // MP3ext known broken frames - "ok" for the purposes of this test + } elseif (($id3v2_majorversion == 4) && ($this->IsValidID3v2FrameName(substr($framedata, getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 0), 4), 3))) { + $ThisFileInfo['warning'][] = 'ID3v2 tag written as ID3v2.4, but with non-synchsafe integers (ID3v2.3 style). Older versions of (Helium2; iTunes) are known culprits of this. Tag has been parsed as ID3v2.3'; + $id3v2_majorversion = 3; + $frame_size = getid3_lib::BigEndian2Int(substr($frame_header, 4, 4), 0); // 32-bit integer + } + } + + + $frame_flags = getid3_lib::BigEndian2Int(substr($frame_header, 8, 2)); + } + + if ((($id3v2_majorversion == 2) && ($frame_name == "\x00\x00\x00")) || ($frame_name == "\x00\x00\x00\x00")) { + // padding encountered + + $thisfile_id3v2['padding']['start'] = $framedataoffset; + $thisfile_id3v2['padding']['length'] = strlen($framedata); + $thisfile_id3v2['padding']['valid'] = true; + for ($i = 0; $i < $thisfile_id3v2['padding']['length']; $i++) { + if ($framedata{$i} != "\x00") { + $thisfile_id3v2['padding']['valid'] = false; + $thisfile_id3v2['padding']['errorpos'] = $thisfile_id3v2['padding']['start'] + $i; + $ThisFileInfo['warning'][] = 'Invalid ID3v2 padding found at offset '.$thisfile_id3v2['padding']['errorpos'].' (the remaining '.($thisfile_id3v2['padding']['length'] - $i).' bytes are considered invalid)'; + break; + } + } + break; // skip rest of ID3v2 header + } + + if ($frame_name == 'COM ') { + $ThisFileInfo['warning'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: IsValidID3v2FrameName("'.str_replace("\x00", ' ', $frame_name).'", '.$id3v2_majorversion.'))). [Note: this particular error has been known to happen with tags edited by iTunes (versions "X v2.0.3", "v3.0.1" are known-guilty, probably others too)]'; + $frame_name = 'COMM'; + } + if (($frame_size <= strlen($framedata)) && ($this->IsValidID3v2FrameName($frame_name, $id3v2_majorversion))) { + + unset($parsedFrame); + $parsedFrame['frame_name'] = $frame_name; + $parsedFrame['frame_flags_raw'] = $frame_flags; + $parsedFrame['data'] = substr($framedata, 0, $frame_size); + $parsedFrame['datalength'] = getid3_lib::CastAsInt($frame_size); + $parsedFrame['dataoffset'] = $framedataoffset; + + $this->ParseID3v2Frame($parsedFrame, $ThisFileInfo); + $thisfile_id3v2[$frame_name][] = $parsedFrame; + + $framedata = substr($framedata, $frame_size); + + } else { // invalid frame length or FrameID + + if ($frame_size <= strlen($framedata)) { + + if ($this->IsValidID3v2FrameName(substr($framedata, $frame_size, 4), $id3v2_majorversion)) { + + // next frame is valid, just skip the current frame + $framedata = substr($framedata, $frame_size); + $ThisFileInfo['warning'][] = 'Next ID3v2 frame is valid, skipping current frame.'; + + } else { + + // next frame is invalid too, abort processing + //unset($framedata); + $framedata = null; + $ThisFileInfo['error'][] = 'Next ID3v2 frame is also invalid, aborting processing.'; + + } + + } elseif ($frame_size == strlen($framedata)) { + + // this is the last frame, just skip + $ThisFileInfo['warning'][] = 'This was the last ID3v2 frame.'; + + } else { + + // next frame is invalid too, abort processing + //unset($framedata); + $framedata = null; + $ThisFileInfo['warning'][] = 'Invalid ID3v2 frame size, aborting.'; + + } + if (!$this->IsValidID3v2FrameName($frame_name, $id3v2_majorversion)) { + + switch ($frame_name) { + case "\x00\x00".'MP': + case "\x00".'MP3': + case ' MP3': + case 'MP3e': + case "\x00".'MP': + case ' MP': + case 'MP3': + $ThisFileInfo['warning'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: !IsValidID3v2FrameName("'.str_replace("\x00", ' ', $frame_name).'", '.$id3v2_majorversion.'))). [Note: this particular error has been known to happen with tags edited by "MP3ext (www.mutschler.de/mp3ext/)"]'; + break; + + default: + $ThisFileInfo['warning'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: !IsValidID3v2FrameName("'.str_replace("\x00", ' ', $frame_name).'", '.$id3v2_majorversion.'))).'; + break; + } + + } elseif ($frame_size > strlen($framedata)){ + + $ThisFileInfo['error'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag). (ERROR: $frame_size ('.$frame_size.') > strlen($framedata) ('.strlen($framedata).')).'; + + } else { + + $ThisFileInfo['error'][] = 'error parsing "'.$frame_name.'" ('.$framedataoffset.' bytes into the ID3v2.'.$id3v2_majorversion.' tag).'; + + } + + } + $framedataoffset += ($frame_size + $this->ID3v2HeaderLength($id3v2_majorversion)); + + } + + } + + + // Footer + + // The footer is a copy of the header, but with a different identifier. + // ID3v2 identifier "3DI" + // ID3v2 version $04 00 + // ID3v2 flags %abcd0000 + // ID3v2 size 4 * %0xxxxxxx + + if (isset($thisfile_id3v2_flags['isfooter']) && $thisfile_id3v2_flags['isfooter']) { + $footer = fread($fd, 10); + if (substr($footer, 0, 3) == '3DI') { + $thisfile_id3v2['footer'] = true; + $thisfile_id3v2['majorversion_footer'] = ord($footer{3}); + $thisfile_id3v2['minorversion_footer'] = ord($footer{4}); + } + if ($thisfile_id3v2['majorversion_footer'] <= 4) { + $id3_flags = ord(substr($footer{5})); + $thisfile_id3v2_flags['unsynch_footer'] = (bool) ($id3_flags & 0x80); + $thisfile_id3v2_flags['extfoot_footer'] = (bool) ($id3_flags & 0x40); + $thisfile_id3v2_flags['experim_footer'] = (bool) ($id3_flags & 0x20); + $thisfile_id3v2_flags['isfooter_footer'] = (bool) ($id3_flags & 0x10); + + $thisfile_id3v2['footerlength'] = getid3_lib::BigEndian2Int(substr($footer, 6, 4), 1); + } + } // end footer + + if (isset($thisfile_id3v2['comments']['genre'])) { + foreach ($thisfile_id3v2['comments']['genre'] as $key => $value) { + unset($thisfile_id3v2['comments']['genre'][$key]); + $thisfile_id3v2['comments'] = getid3_lib::array_merge_noclobber($thisfile_id3v2['comments'], $this->ParseID3v2GenreString($value)); + } + } + + if (isset($thisfile_id3v2['comments']['track'])) { + foreach ($thisfile_id3v2['comments']['track'] as $key => $value) { + if (strstr($value, '/')) { + list($thisfile_id3v2['comments']['tracknum'][$key], $thisfile_id3v2['comments']['totaltracks'][$key]) = explode('/', $thisfile_id3v2['comments']['track'][$key]); + } + } + } + + if (!isset($thisfile_id3v2['comments']['year']) && ereg('^([0-9]{4})', trim(@$thisfile_id3v2['comments']['recording_time'][0]), $matches)) { + $thisfile_id3v2['comments']['year'] = array($matches[1]); + } + + + // Set avdataoffset + $ThisFileInfo['avdataoffset'] = $thisfile_id3v2['headerlength']; + if (isset($thisfile_id3v2['footer'])) { + $ThisFileInfo['avdataoffset'] += 10; + } + + return true; + } + + + function ParseID3v2GenreString($genrestring) { + // Parse genres into arrays of genreName and genreID + // ID3v2.2.x, ID3v2.3.x: '(21)' or '(4)Eurodisco' or '(51)(39)' or '(55)((I think...)' + // ID3v2.4.x: '21' $00 'Eurodisco' $00 + + $genrestring = trim($genrestring); + $returnarray = array(); + if (strpos($genrestring, "\x00") !== false) { + $unprocessed = trim($genrestring); // trailing nulls will cause an infinite loop. + $genrestring = ''; + while (strpos($unprocessed, "\x00") !== false) { + // convert null-seperated v2.4-format into v2.3 ()-seperated format + $endpos = strpos($unprocessed, "\x00"); + $genrestring .= '('.substr($unprocessed, 0, $endpos).')'; + $unprocessed = substr($unprocessed, $endpos + 1); + } + unset($unprocessed); + } + if (getid3_id3v1::LookupGenreID($genrestring)) { + + $returnarray['genre'][] = $genrestring; + + } else { + + while (strpos($genrestring, '(') !== false) { + + $startpos = strpos($genrestring, '('); + $endpos = strpos($genrestring, ')'); + if (substr($genrestring, $startpos + 1, 1) == '(') { + $genrestring = substr($genrestring, 0, $startpos).substr($genrestring, $startpos + 1); + $endpos--; + } + $element = substr($genrestring, $startpos + 1, $endpos - ($startpos + 1)); + $genrestring = substr($genrestring, 0, $startpos).substr($genrestring, $endpos + 1); + if (getid3_id3v1::LookupGenreName($element)) { // $element is a valid genre id/abbreviation + + if (empty($returnarray['genre']) || !in_array(getid3_id3v1::LookupGenreName($element), $returnarray['genre'])) { // avoid duplicate entires + $returnarray['genre'][] = getid3_id3v1::LookupGenreName($element); + } + + } else { + + if (empty($returnarray['genre']) || !in_array($element, $returnarray['genre'])) { // avoid duplicate entires + $returnarray['genre'][] = $element; + } + + } + } + } + if ($genrestring) { + if (empty($returnarray['genre']) || !in_array($genrestring, $returnarray['genre'])) { // avoid duplicate entires + $returnarray['genre'][] = $genrestring; + } + } + + return $returnarray; + } + + + function ParseID3v2Frame(&$parsedFrame, &$ThisFileInfo) { + + // shortcuts + $id3v2_majorversion = $ThisFileInfo['id3v2']['majorversion']; + + $parsedFrame['framenamelong'] = $this->FrameNameLongLookup($parsedFrame['frame_name']); + if (empty($parsedFrame['framenamelong'])) { + unset($parsedFrame['framenamelong']); + } + $parsedFrame['framenameshort'] = $this->FrameNameShortLookup($parsedFrame['frame_name']); + if (empty($parsedFrame['framenameshort'])) { + unset($parsedFrame['framenameshort']); + } + + if ($id3v2_majorversion >= 3) { // frame flags are not part of the ID3v2.2 standard + if ($id3v2_majorversion == 3) { + // Frame Header Flags + // %abc00000 %ijk00000 + $parsedFrame['flags']['TagAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x8000); // a - Tag alter preservation + $parsedFrame['flags']['FileAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x4000); // b - File alter preservation + $parsedFrame['flags']['ReadOnly'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x2000); // c - Read only + $parsedFrame['flags']['compression'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0080); // i - Compression + $parsedFrame['flags']['Encryption'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0040); // j - Encryption + $parsedFrame['flags']['GroupingIdentity'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0020); // k - Grouping identity + + } elseif ($id3v2_majorversion == 4) { + // Frame Header Flags + // %0abc0000 %0h00kmnp + $parsedFrame['flags']['TagAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x4000); // a - Tag alter preservation + $parsedFrame['flags']['FileAlterPreservation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x2000); // b - File alter preservation + $parsedFrame['flags']['ReadOnly'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x1000); // c - Read only + $parsedFrame['flags']['GroupingIdentity'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0040); // h - Grouping identity + $parsedFrame['flags']['compression'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0008); // k - Compression + $parsedFrame['flags']['Encryption'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0004); // m - Encryption + $parsedFrame['flags']['Unsynchronisation'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0002); // n - Unsynchronisation + $parsedFrame['flags']['DataLengthIndicator'] = (bool) ($parsedFrame['frame_flags_raw'] & 0x0001); // p - Data length indicator + + // Frame-level de-unsynchronisation - ID3v2.4 + if ($parsedFrame['flags']['Unsynchronisation']) { + $parsedFrame['data'] = $this->DeUnsynchronise($parsedFrame['data']); + } + } + + // Frame-level de-compression + if ($parsedFrame['flags']['compression']) { + $parsedFrame['decompressed_size'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 0, 4)); + if (!function_exists('gzuncompress')) { + $ThisFileInfo['warning'][] = 'gzuncompress() support required to decompress ID3v2 frame "'.$parsedFrame['frame_name'].'"'; + } elseif ($decompresseddata = @gzuncompress(substr($parsedFrame['data'], 4))) { + $parsedFrame['data'] = $decompresseddata; + } else { + $ThisFileInfo['warning'][] = 'gzuncompress() failed on compressed contents of ID3v2 frame "'.$parsedFrame['frame_name'].'"'; + } + } + } + + if (isset($parsedFrame['datalength']) && ($parsedFrame['datalength'] == 0)) { + + $warning = 'Frame "'.$parsedFrame['frame_name'].'" at offset '.$parsedFrame['dataoffset'].' has no data portion'; + switch ($parsedFrame['frame_name']) { + case 'WCOM': + $warning .= ' (this is known to happen with files tagged by RioPort)'; + break; + + default: + break; + } + $ThisFileInfo['warning'][] = $warning; + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'UFID')) || // 4.1 UFID Unique file identifier + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'UFI'))) { // 4.1 UFI Unique file identifier + // There may be more than one 'UFID' frame in a tag, + // but only one with the same 'Owner identifier'. + //
+ // Owner identifier $00 + // Identifier + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00"); + $frame_idstring = substr($parsedFrame['data'], 0, $frame_terminatorpos); + $parsedFrame['ownerid'] = $frame_idstring; + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen("\x00")); + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'TXXX')) || // 4.2.2 TXXX User defined text information frame + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'TXX'))) { // 4.2.2 TXX User defined text information frame + // There may be more than one 'TXXX' frame in each tag, + // but only one with the same description. + //
+ // Text encoding $xx + // Description $00 (00) + // Value + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['description'] = $frame_description; + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding))); + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = trim(getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['data'])); + } + unset($parsedFrame['data']); + + + } elseif ($parsedFrame['frame_name']{0} == 'T') { // 4.2. T??[?] Text information frame + // There may only be one text information frame of its kind in an tag. + //
+ // Text encoding $xx + // Information + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['data']); + } + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'WXXX')) || // 4.3.2 WXXX User defined URL link frame + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'WXX'))) { // 4.3.2 WXX User defined URL link frame + // There may be more than one 'WXXX' frame in each tag, + // but only one with the same description + //
+ // Text encoding $xx + // Description $00 (00) + // URL + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding))); + + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding)); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + if ($frame_terminatorpos) { + // there are null bytes after the data - this is not according to spec + // only use data up to first null byte + $frame_urldata = (string) substr($parsedFrame['data'], 0, $frame_terminatorpos); + } else { + // no null bytes following data, just use all data + $frame_urldata = (string) $parsedFrame['data']; + } + + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['url'] = $frame_urldata; + $parsedFrame['description'] = $frame_description; + if (!empty($parsedFrame['framenameshort']) && $parsedFrame['url']) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['url']); + } + unset($parsedFrame['data']); + + + } elseif ($parsedFrame['frame_name']{0} == 'W') { // 4.3. W??? URL link frames + // There may only be one URL link frame of its kind in a tag, + // except when stated otherwise in the frame description + //
+ // URL + + $parsedFrame['url'] = trim($parsedFrame['data']); + if (!empty($parsedFrame['framenameshort']) && $parsedFrame['url']) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = $parsedFrame['url']; + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion == 3) && ($parsedFrame['frame_name'] == 'IPLS')) || // 4.4 IPLS Involved people list (ID3v2.3 only) + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'IPL'))) { // 4.4 IPL Involved people list (ID3v2.2 only) + // There may only be one 'IPL' frame in each tag + //
+ // Text encoding $xx + // People list strings + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($parsedFrame['encodingid']); + + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['data']); + } + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'MCDI')) || // 4.4 MCDI Music CD identifier + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'MCI'))) { // 4.5 MCI Music CD identifier + // There may only be one 'MCDI' frame in each tag + //
+ // CD TOC + + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = $parsedFrame['data']; + } + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'ETCO')) || // 4.5 ETCO Event timing codes + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'ETC'))) { // 4.6 ETC Event timing codes + // There may only be one 'ETCO' frame in each tag + //
+ // Time stamp format $xx + // Where time stamp format is: + // $01 (32-bit value) MPEG frames from beginning of file + // $02 (32-bit value) milliseconds from beginning of file + // Followed by a list of key events in the following format: + // Type of event $xx + // Time stamp $xx (xx ...) + // The 'Time stamp' is set to zero if directly at the beginning of the sound + // or after the previous event. All events MUST be sorted in chronological order. + + $frame_offset = 0; + $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + + while ($frame_offset < strlen($parsedFrame['data'])) { + $parsedFrame['typeid'] = substr($parsedFrame['data'], $frame_offset++, 1); + $parsedFrame['type'] = $this->ETCOEventLookup($parsedFrame['typeid']); + $parsedFrame['timestamp'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4)); + $frame_offset += 4; + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'MLLT')) || // 4.6 MLLT MPEG location lookup table + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'MLL'))) { // 4.7 MLL MPEG location lookup table + // There may only be one 'MLLT' frame in each tag + //
+ // MPEG frames between reference $xx xx + // Bytes between reference $xx xx xx + // Milliseconds between reference $xx xx xx + // Bits for bytes deviation $xx + // Bits for milliseconds dev. $xx + // Then for every reference the following data is included; + // Deviation in bytes %xxx.... + // Deviation in milliseconds %xxx.... + + $frame_offset = 0; + $parsedFrame['framesbetweenreferences'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 0, 2)); + $parsedFrame['bytesbetweenreferences'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 2, 3)); + $parsedFrame['msbetweenreferences'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 5, 3)); + $parsedFrame['bitsforbytesdeviation'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 8, 1)); + $parsedFrame['bitsformsdeviation'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], 9, 1)); + $parsedFrame['data'] = substr($parsedFrame['data'], 10); + while ($frame_offset < strlen($parsedFrame['data'])) { + $deviationbitstream .= getid3_lib::BigEndian2Bin(substr($parsedFrame['data'], $frame_offset++, 1)); + } + $reference_counter = 0; + while (strlen($deviationbitstream) > 0) { + $parsedFrame[$reference_counter]['bytedeviation'] = bindec(substr($deviationbitstream, 0, $parsedFrame['bitsforbytesdeviation'])); + $parsedFrame[$reference_counter]['msdeviation'] = bindec(substr($deviationbitstream, $parsedFrame['bitsforbytesdeviation'], $parsedFrame['bitsformsdeviation'])); + $deviationbitstream = substr($deviationbitstream, $parsedFrame['bitsforbytesdeviation'] + $parsedFrame['bitsformsdeviation']); + $reference_counter++; + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'SYTC')) || // 4.7 SYTC Synchronised tempo codes + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'STC'))) { // 4.8 STC Synchronised tempo codes + // There may only be one 'SYTC' frame in each tag + //
+ // Time stamp format $xx + // Tempo data + // Where time stamp format is: + // $01 (32-bit value) MPEG frames from beginning of file + // $02 (32-bit value) milliseconds from beginning of file + + $frame_offset = 0; + $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $timestamp_counter = 0; + while ($frame_offset < strlen($parsedFrame['data'])) { + $parsedFrame[$timestamp_counter]['tempo'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ($parsedFrame[$timestamp_counter]['tempo'] == 255) { + $parsedFrame[$timestamp_counter]['tempo'] += ord(substr($parsedFrame['data'], $frame_offset++, 1)); + } + $parsedFrame[$timestamp_counter]['timestamp'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4)); + $frame_offset += 4; + $timestamp_counter++; + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'USLT')) || // 4.8 USLT Unsynchronised lyric/text transcription + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'ULT'))) { // 4.9 ULT Unsynchronised lyric/text transcription + // There may be more than one 'Unsynchronised lyrics/text transcription' frame + // in each tag, but only one with the same language and content descriptor. + //
+ // Text encoding $xx + // Language $xx xx xx + // Content descriptor $00 (00) + // Lyrics/text + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_language = substr($parsedFrame['data'], $frame_offset, 3); + $frame_offset += 3; + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding))); + + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['data'] = $parsedFrame['data']; + $parsedFrame['language'] = $frame_language; + $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false); + $parsedFrame['description'] = $frame_description; + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['data']); + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'SYLT')) || // 4.9 SYLT Synchronised lyric/text + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'SLT'))) { // 4.10 SLT Synchronised lyric/text + // There may be more than one 'SYLT' frame in each tag, + // but only one with the same language and content descriptor. + //
+ // Text encoding $xx + // Language $xx xx xx + // Time stamp format $xx + // $01 (32-bit value) MPEG frames from beginning of file + // $02 (32-bit value) milliseconds from beginning of file + // Content type $xx + // Content descriptor $00 (00) + // Terminated text to be synced (typically a syllable) + // Sync identifier (terminator to above string) $00 (00) + // Time stamp $xx (xx ...) + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_language = substr($parsedFrame['data'], $frame_offset, 3); + $frame_offset += 3; + $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['contenttypeid'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['contenttype'] = $this->SYTLContentTypeLookup($parsedFrame['contenttypeid']); + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['language'] = $frame_language; + $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false); + + $timestampindex = 0; + $frame_remainingdata = substr($parsedFrame['data'], $frame_offset); + while (strlen($frame_remainingdata)) { + $frame_offset = 0; + $frame_terminatorpos = strpos($frame_remainingdata, $this->TextEncodingTerminatorLookup($frame_textencoding)); + if ($frame_terminatorpos === false) { + $frame_remainingdata = ''; + } else { + if (ord(substr($frame_remainingdata, $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $parsedFrame['lyrics'][$timestampindex]['data'] = substr($frame_remainingdata, $frame_offset, $frame_terminatorpos - $frame_offset); + + $frame_remainingdata = substr($frame_remainingdata, $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding))); + if (($timestampindex == 0) && (ord($frame_remainingdata{0}) != 0)) { + // timestamp probably omitted for first data item + } else { + $parsedFrame['lyrics'][$timestampindex]['timestamp'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 0, 4)); + $frame_remainingdata = substr($frame_remainingdata, 4); + } + $timestampindex++; + } + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'COMM')) || // 4.10 COMM Comments + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'COM'))) { // 4.11 COM Comments + // There may be more than one comment frame in each tag, + // but only one with the same language and content descriptor. + //
+ // Text encoding $xx + // Language $xx xx xx + // Short content descrip. $00 (00) + // The actual text + + if (strlen($parsedFrame['data']) < 5) { + + $ThisFileInfo['warning'][] = 'Invalid data (too short) for "'.$parsedFrame['frame_name'].'" frame at offset '.$parsedFrame['dataoffset']; + + } else { + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_language = substr($parsedFrame['data'], $frame_offset, 3); + $frame_offset += 3; + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $frame_text = (string) substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding))); + + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['language'] = $frame_language; + $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false); + $parsedFrame['description'] = $frame_description; + $parsedFrame['data'] = $frame_text; + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['data']); + } + + } + + } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'RVA2')) { // 4.11 RVA2 Relative volume adjustment (2) (ID3v2.4+ only) + // There may be more than one 'RVA2' frame in each tag, + // but only one with the same identification string + //
+ // Identification $00 + // The 'identification' string is used to identify the situation and/or + // device where this adjustment should apply. The following is then + // repeated for every channel: + // Type of channel $xx + // Volume adjustment $xx xx + // Bits representing peak $xx + // Peak volume $xx (xx ...) + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00"); + $frame_idstring = substr($parsedFrame['data'], 0, $frame_terminatorpos); + if (ord($frame_idstring) === 0) { + $frame_idstring = ''; + } + $frame_remainingdata = substr($parsedFrame['data'], $frame_terminatorpos + strlen("\x00")); + $parsedFrame['description'] = $frame_idstring; + while (strlen($frame_remainingdata)) { + $frame_offset = 0; + $frame_channeltypeid = ord(substr($frame_remainingdata, $frame_offset++, 1)); + $parsedFrame[$frame_channeltypeid]['channeltypeid'] = $frame_channeltypeid; + $parsedFrame[$frame_channeltypeid]['channeltype'] = $this->RVA2ChannelTypeLookup($frame_channeltypeid); + $parsedFrame[$frame_channeltypeid]['volumeadjust'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, $frame_offset, 2), false, true); // 16-bit signed + $frame_offset += 2; + $parsedFrame[$frame_channeltypeid]['bitspeakvolume'] = ord(substr($frame_remainingdata, $frame_offset++, 1)); + $frame_bytespeakvolume = ceil($parsedFrame[$frame_channeltypeid]['bitspeakvolume'] / 8); + $parsedFrame[$frame_channeltypeid]['peakvolume'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, $frame_offset, $frame_bytespeakvolume)); + $frame_remainingdata = substr($frame_remainingdata, $frame_offset + $frame_bytespeakvolume); + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion == 3) && ($parsedFrame['frame_name'] == 'RVAD')) || // 4.12 RVAD Relative volume adjustment (ID3v2.3 only) + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'RVA'))) { // 4.12 RVA Relative volume adjustment (ID3v2.2 only) + // There may only be one 'RVA' frame in each tag + //
+ // ID3v2.2 => Increment/decrement %000000ba + // ID3v2.3 => Increment/decrement %00fedcba + // Bits used for volume descr. $xx + // Relative volume change, right $xx xx (xx ...) // a + // Relative volume change, left $xx xx (xx ...) // b + // Peak volume right $xx xx (xx ...) + // Peak volume left $xx xx (xx ...) + // ID3v2.3 only, optional (not present in ID3v2.2): + // Relative volume change, right back $xx xx (xx ...) // c + // Relative volume change, left back $xx xx (xx ...) // d + // Peak volume right back $xx xx (xx ...) + // Peak volume left back $xx xx (xx ...) + // ID3v2.3 only, optional (not present in ID3v2.2): + // Relative volume change, center $xx xx (xx ...) // e + // Peak volume center $xx xx (xx ...) + // ID3v2.3 only, optional (not present in ID3v2.2): + // Relative volume change, bass $xx xx (xx ...) // f + // Peak volume bass $xx xx (xx ...) + + $frame_offset = 0; + $frame_incrdecrflags = getid3_lib::BigEndian2Bin(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['incdec']['right'] = (bool) substr($frame_incrdecrflags, 6, 1); + $parsedFrame['incdec']['left'] = (bool) substr($frame_incrdecrflags, 7, 1); + $parsedFrame['bitsvolume'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $frame_bytesvolume = ceil($parsedFrame['bitsvolume'] / 8); + $parsedFrame['volumechange']['right'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + if ($parsedFrame['incdec']['right'] === false) { + $parsedFrame['volumechange']['right'] *= -1; + } + $frame_offset += $frame_bytesvolume; + $parsedFrame['volumechange']['left'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + if ($parsedFrame['incdec']['left'] === false) { + $parsedFrame['volumechange']['left'] *= -1; + } + $frame_offset += $frame_bytesvolume; + $parsedFrame['peakvolume']['right'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + $frame_offset += $frame_bytesvolume; + $parsedFrame['peakvolume']['left'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + $frame_offset += $frame_bytesvolume; + if ($id3v2_majorversion == 3) { + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_offset); + if (strlen($parsedFrame['data']) > 0) { + $parsedFrame['incdec']['rightrear'] = (bool) substr($frame_incrdecrflags, 4, 1); + $parsedFrame['incdec']['leftrear'] = (bool) substr($frame_incrdecrflags, 5, 1); + $parsedFrame['volumechange']['rightrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + if ($parsedFrame['incdec']['rightrear'] === false) { + $parsedFrame['volumechange']['rightrear'] *= -1; + } + $frame_offset += $frame_bytesvolume; + $parsedFrame['volumechange']['leftrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + if ($parsedFrame['incdec']['leftrear'] === false) { + $parsedFrame['volumechange']['leftrear'] *= -1; + } + $frame_offset += $frame_bytesvolume; + $parsedFrame['peakvolume']['rightrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + $frame_offset += $frame_bytesvolume; + $parsedFrame['peakvolume']['leftrear'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + $frame_offset += $frame_bytesvolume; + } + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_offset); + if (strlen($parsedFrame['data']) > 0) { + $parsedFrame['incdec']['center'] = (bool) substr($frame_incrdecrflags, 3, 1); + $parsedFrame['volumechange']['center'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + if ($parsedFrame['incdec']['center'] === false) { + $parsedFrame['volumechange']['center'] *= -1; + } + $frame_offset += $frame_bytesvolume; + $parsedFrame['peakvolume']['center'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + $frame_offset += $frame_bytesvolume; + } + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_offset); + if (strlen($parsedFrame['data']) > 0) { + $parsedFrame['incdec']['bass'] = (bool) substr($frame_incrdecrflags, 2, 1); + $parsedFrame['volumechange']['bass'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + if ($parsedFrame['incdec']['bass'] === false) { + $parsedFrame['volumechange']['bass'] *= -1; + } + $frame_offset += $frame_bytesvolume; + $parsedFrame['peakvolume']['bass'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesvolume)); + $frame_offset += $frame_bytesvolume; + } + } + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'EQU2')) { // 4.12 EQU2 Equalisation (2) (ID3v2.4+ only) + // There may be more than one 'EQU2' frame in each tag, + // but only one with the same identification string + //
+ // Interpolation method $xx + // $00 Band + // $01 Linear + // Identification $00 + // The following is then repeated for every adjustment point + // Frequency $xx xx + // Volume adjustment $xx xx + + $frame_offset = 0; + $frame_interpolationmethod = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_idstring = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_idstring) === 0) { + $frame_idstring = ''; + } + $parsedFrame['description'] = $frame_idstring; + $frame_remainingdata = substr($parsedFrame['data'], $frame_terminatorpos + strlen("\x00")); + while (strlen($frame_remainingdata)) { + $frame_frequency = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 0, 2)) / 2; + $parsedFrame['data'][$frame_frequency] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 2, 2), false, true); + $frame_remainingdata = substr($frame_remainingdata, 4); + } + $parsedFrame['interpolationmethod'] = $frame_interpolationmethod; + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion == 3) && ($parsedFrame['frame_name'] == 'EQUA')) || // 4.12 EQUA Equalisation (ID3v2.3 only) + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'EQU'))) { // 4.13 EQU Equalisation (ID3v2.2 only) + // There may only be one 'EQUA' frame in each tag + //
+ // Adjustment bits $xx + // This is followed by 2 bytes + ('adjustment bits' rounded up to the + // nearest byte) for every equalisation band in the following format, + // giving a frequency range of 0 - 32767Hz: + // Increment/decrement %x (MSB of the Frequency) + // Frequency (lower 15 bits) + // Adjustment $xx (xx ...) + + $frame_offset = 0; + $parsedFrame['adjustmentbits'] = substr($parsedFrame['data'], $frame_offset++, 1); + $frame_adjustmentbytes = ceil($parsedFrame['adjustmentbits'] / 8); + + $frame_remainingdata = (string) substr($parsedFrame['data'], $frame_offset); + while (strlen($frame_remainingdata) > 0) { + $frame_frequencystr = getid3_lib::BigEndian2Bin(substr($frame_remainingdata, 0, 2)); + $frame_incdec = (bool) substr($frame_frequencystr, 0, 1); + $frame_frequency = bindec(substr($frame_frequencystr, 1, 15)); + $parsedFrame[$frame_frequency]['incdec'] = $frame_incdec; + $parsedFrame[$frame_frequency]['adjustment'] = getid3_lib::BigEndian2Int(substr($frame_remainingdata, 2, $frame_adjustmentbytes)); + if ($parsedFrame[$frame_frequency]['incdec'] === false) { + $parsedFrame[$frame_frequency]['adjustment'] *= -1; + } + $frame_remainingdata = substr($frame_remainingdata, 2 + $frame_adjustmentbytes); + } + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'RVRB')) || // 4.13 RVRB Reverb + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'REV'))) { // 4.14 REV Reverb + // There may only be one 'RVRB' frame in each tag. + //
+ // Reverb left (ms) $xx xx + // Reverb right (ms) $xx xx + // Reverb bounces, left $xx + // Reverb bounces, right $xx + // Reverb feedback, left to left $xx + // Reverb feedback, left to right $xx + // Reverb feedback, right to right $xx + // Reverb feedback, right to left $xx + // Premix left to right $xx + // Premix right to left $xx + + $frame_offset = 0; + $parsedFrame['left'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $parsedFrame['right'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $parsedFrame['bouncesL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['bouncesR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['feedbackLL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['feedbackLR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['feedbackRR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['feedbackRL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['premixLR'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['premixRL'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'APIC')) || // 4.14 APIC Attached picture + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'PIC'))) { // 4.15 PIC Attached picture + // There may be several pictures attached to one file, + // each in their individual 'APIC' frame, but only one + // with the same content descriptor + //
+ // Text encoding $xx + // ID3v2.3+ => MIME type $00 + // ID3v2.2 => Image format $xx xx xx + // Picture type $xx + // Description $00 (00) + // Picture data + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + + if ($id3v2_majorversion == 2) { + $frame_imagetype = substr($parsedFrame['data'], $frame_offset, 3); + if (strtolower($frame_imagetype) == 'ima') { + // complete hack for mp3Rage (www.chaoticsoftware.com) that puts ID3v2.3-formatted + // MIME type instead of 3-char ID3v2.2-format image type (thanks xbhoffpacbell*net) + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_mimetype) === 0) { + $frame_mimetype = ''; + } + $frame_imagetype = strtoupper(str_replace('image/', '', strtolower($frame_mimetype))); + if ($frame_imagetype == 'JPEG') { + $frame_imagetype = 'JPG'; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + } else { + $frame_offset += 3; + } + } + if ($id3v2_majorversion > 2) { + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_mimetype) === 0) { + $frame_mimetype = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + } + + $frame_picturetype = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + if ($id3v2_majorversion == 2) { + $parsedFrame['imagetype'] = $frame_imagetype; + } else { + $parsedFrame['mime'] = $frame_mimetype; + } + $parsedFrame['picturetypeid'] = $frame_picturetype; + $parsedFrame['picturetype'] = $this->APICPictureTypeLookup($frame_picturetype); + $parsedFrame['description'] = $frame_description; + $parsedFrame['data'] = substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding))); + + $imagechunkcheck = getid3_lib::GetDataImageSize($parsedFrame['data']); + if (($imagechunkcheck[2] >= 1) && ($imagechunkcheck[2] <= 3)) { + $parsedFrame['image_mime'] = 'image/'.getid3_lib::ImageTypesLookup($imagechunkcheck[2]); + if ($imagechunkcheck[0]) { + $parsedFrame['image_width'] = $imagechunkcheck[0]; + } + if ($imagechunkcheck[1]) { + $parsedFrame['image_height'] = $imagechunkcheck[1]; + } + $parsedFrame['image_bytes'] = strlen($parsedFrame['data']); + } + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'GEOB')) || // 4.15 GEOB General encapsulated object + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'GEO'))) { // 4.16 GEO General encapsulated object + // There may be more than one 'GEOB' frame in each tag, + // but only one with the same content descriptor + //
+ // Text encoding $xx + // MIME type $00 + // Filename $00 (00) + // Content description $00 (00) + // Encapsulated object + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_mimetype) === 0) { + $frame_mimetype = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_filename = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_filename) === 0) { + $frame_filename = ''; + } + $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)); + + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)); + + $parsedFrame['objectdata'] = (string) substr($parsedFrame['data'], $frame_offset); + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['mime'] = $frame_mimetype; + $parsedFrame['filename'] = $frame_filename; + $parsedFrame['description'] = $frame_description; + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'PCNT')) || // 4.16 PCNT Play counter + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'CNT'))) { // 4.17 CNT Play counter + // There may only be one 'PCNT' frame in each tag. + // When the counter reaches all one's, one byte is inserted in + // front of the counter thus making the counter eight bits bigger + //
+ // Counter $xx xx xx xx (xx ...) + + $parsedFrame['data'] = getid3_lib::BigEndian2Int($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'POPM')) || // 4.17 POPM Popularimeter + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'POP'))) { // 4.18 POP Popularimeter + // There may be more than one 'POPM' frame in each tag, + // but only one with the same email address + //
+ // Email to user $00 + // Rating $xx + // Counter $xx xx xx xx (xx ...) + + $frame_offset = 0; + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_emailaddress = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_emailaddress) === 0) { + $frame_emailaddress = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + $frame_rating = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['data'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset)); + $parsedFrame['email'] = $frame_emailaddress; + $parsedFrame['rating'] = $frame_rating; + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'RBUF')) || // 4.18 RBUF Recommended buffer size + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'BUF'))) { // 4.19 BUF Recommended buffer size + // There may only be one 'RBUF' frame in each tag + //
+ // Buffer size $xx xx xx + // Embedded info flag %0000000x + // Offset to next tag $xx xx xx xx + + $frame_offset = 0; + $parsedFrame['buffersize'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 3)); + $frame_offset += 3; + + $frame_embeddedinfoflags = getid3_lib::BigEndian2Bin(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['flags']['embededinfo'] = (bool) substr($frame_embeddedinfoflags, 7, 1); + $parsedFrame['nexttagoffset'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4)); + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'CRM')) { // 4.20 Encrypted meta frame (ID3v2.2 only) + // There may be more than one 'CRM' frame in a tag, + // but only one with the same 'owner identifier' + //
+ // Owner identifier $00 (00) + // Content/explanation $00 (00) + // Encrypted datablock + + $frame_offset = 0; + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $parsedFrame['ownerid'] = $frame_ownerid; + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + $parsedFrame['description'] = $frame_description; + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'AENC')) || // 4.19 AENC Audio encryption + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'CRA'))) { // 4.21 CRA Audio encryption + // There may be more than one 'AENC' frames in a tag, + // but only one with the same 'Owner identifier' + //
+ // Owner identifier $00 + // Preview start $xx xx + // Preview length $xx xx + // Encryption info + + $frame_offset = 0; + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_ownerid) === 0) { + $frame_ownerid == ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + $parsedFrame['ownerid'] = $frame_ownerid; + $parsedFrame['previewstart'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $parsedFrame['previewlength'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $parsedFrame['encryptioninfo'] = (string) substr($parsedFrame['data'], $frame_offset); + unset($parsedFrame['data']); + + + } elseif ((($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'LINK')) || // 4.20 LINK Linked information + (($id3v2_majorversion == 2) && ($parsedFrame['frame_name'] == 'LNK'))) { // 4.22 LNK Linked information + // There may be more than one 'LINK' frame in a tag, + // but only one with the same contents + //
+ // ID3v2.3+ => Frame identifier $xx xx xx xx + // ID3v2.2 => Frame identifier $xx xx xx + // URL $00 + // ID and additional data + + $frame_offset = 0; + if ($id3v2_majorversion == 2) { + $parsedFrame['frameid'] = substr($parsedFrame['data'], $frame_offset, 3); + $frame_offset += 3; + } else { + $parsedFrame['frameid'] = substr($parsedFrame['data'], $frame_offset, 4); + $frame_offset += 4; + } + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_url = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_url) === 0) { + $frame_url = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + $parsedFrame['url'] = $frame_url; + + $parsedFrame['additionaldata'] = (string) substr($parsedFrame['data'], $frame_offset); + if (!empty($parsedFrame['framenameshort']) && $parsedFrame['url']) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['url']); + } + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'POSS')) { // 4.21 POSS Position synchronisation frame (ID3v2.3+ only) + // There may only be one 'POSS' frame in each tag + // + // Time stamp format $xx + // Position $xx (xx ...) + + $frame_offset = 0; + $parsedFrame['timestampformat'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['position'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset)); + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'USER')) { // 4.22 USER Terms of use (ID3v2.3+ only) + // There may be more than one 'Terms of use' frame in a tag, + // but only one with the same 'Language' + //
+ // Text encoding $xx + // Language $xx xx xx + // The actual text + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $frame_language = substr($parsedFrame['data'], $frame_offset, 3); + $frame_offset += 3; + $parsedFrame['language'] = $frame_language; + $parsedFrame['languagename'] = $this->LanguageLookup($frame_language, false); + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + if (!empty($parsedFrame['framenameshort']) && !empty($parsedFrame['data'])) { + $ThisFileInfo['id3v2']['comments'][$parsedFrame['framenameshort']][] = getid3_lib::iconv_fallback($parsedFrame['encoding'], $ThisFileInfo['id3v2']['encoding'], $parsedFrame['data']); + } + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'OWNE')) { // 4.23 OWNE Ownership frame (ID3v2.3+ only) + // There may only be one 'OWNE' frame in a tag + //
+ // Text encoding $xx + // Price paid $00 + // Date of purch. + // Seller + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_pricepaid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $parsedFrame['pricepaid']['currencyid'] = substr($frame_pricepaid, 0, 3); + $parsedFrame['pricepaid']['currency'] = $this->LookupCurrencyUnits($parsedFrame['pricepaid']['currencyid']); + $parsedFrame['pricepaid']['value'] = substr($frame_pricepaid, 3); + + $parsedFrame['purchasedate'] = substr($parsedFrame['data'], $frame_offset, 8); + if (!$this->IsValidDateStampString($parsedFrame['purchasedate'])) { + $parsedFrame['purchasedateunix'] = mktime (0, 0, 0, substr($parsedFrame['purchasedate'], 4, 2), substr($parsedFrame['purchasedate'], 6, 2), substr($parsedFrame['purchasedate'], 0, 4)); + } + $frame_offset += 8; + + $parsedFrame['seller'] = (string) substr($parsedFrame['data'], $frame_offset); + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'COMR')) { // 4.24 COMR Commercial frame (ID3v2.3+ only) + // There may be more than one 'commercial frame' in a tag, + // but no two may be identical + //
+ // Text encoding $xx + // Price string $00 + // Valid until + // Contact URL $00 + // Received as $xx + // Name of seller $00 (00) + // Description $00 (00) + // Picture MIME type $00 + // Seller logo + + $frame_offset = 0; + $frame_textencoding = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + if ((($id3v2_majorversion <= 3) && ($frame_textencoding > 1)) || (($id3v2_majorversion == 4) && ($frame_textencoding > 3))) { + $ThisFileInfo['warning'][] = 'Invalid text encoding byte ('.$frame_textencoding.') in frame "'.$parsedFrame['frame_name'].'" - defaulting to ISO-8859-1 encoding'; + } + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_pricestring = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + $frame_offset = $frame_terminatorpos + strlen("\x00"); + $frame_rawpricearray = explode('/', $frame_pricestring); + foreach ($frame_rawpricearray as $key => $val) { + $frame_currencyid = substr($val, 0, 3); + $parsedFrame['price'][$frame_currencyid]['currency'] = $this->LookupCurrencyUnits($frame_currencyid); + $parsedFrame['price'][$frame_currencyid]['value'] = substr($val, 3); + } + + $frame_datestring = substr($parsedFrame['data'], $frame_offset, 8); + $frame_offset += 8; + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_contacturl = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $frame_receivedasid = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_sellername = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_sellername) === 0) { + $frame_sellername = ''; + } + $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)); + + $frame_terminatorpos = strpos($parsedFrame['data'], $this->TextEncodingTerminatorLookup($frame_textencoding), $frame_offset); + if (ord(substr($parsedFrame['data'], $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)), 1)) === 0) { + $frame_terminatorpos++; // strpos() fooled because 2nd byte of Unicode chars are often 0x00 + } + $frame_description = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_description) === 0) { + $frame_description = ''; + } + $frame_offset = $frame_terminatorpos + strlen($this->TextEncodingTerminatorLookup($frame_textencoding)); + + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_mimetype = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $frame_sellerlogo = substr($parsedFrame['data'], $frame_offset); + + $parsedFrame['encodingid'] = $frame_textencoding; + $parsedFrame['encoding'] = $this->TextEncodingNameLookup($frame_textencoding); + + $parsedFrame['pricevaliduntil'] = $frame_datestring; + $parsedFrame['contacturl'] = $frame_contacturl; + $parsedFrame['receivedasid'] = $frame_receivedasid; + $parsedFrame['receivedas'] = $this->COMRReceivedAsLookup($frame_receivedasid); + $parsedFrame['sellername'] = $frame_sellername; + $parsedFrame['description'] = $frame_description; + $parsedFrame['mime'] = $frame_mimetype; + $parsedFrame['logo'] = $frame_sellerlogo; + unset($parsedFrame['data']); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'ENCR')) { // 4.25 ENCR Encryption method registration (ID3v2.3+ only) + // There may be several 'ENCR' frames in a tag, + // but only one containing the same symbol + // and only one containing the same owner identifier + //
+ // Owner identifier $00 + // Method symbol $xx + // Encryption data + + $frame_offset = 0; + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_ownerid) === 0) { + $frame_ownerid = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $parsedFrame['ownerid'] = $frame_ownerid; + $parsedFrame['methodsymbol'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'GRID')) { // 4.26 GRID Group identification registration (ID3v2.3+ only) + + // There may be several 'GRID' frames in a tag, + // but only one containing the same symbol + // and only one containing the same owner identifier + //
+ // Owner identifier $00 + // Group symbol $xx + // Group dependent data + + $frame_offset = 0; + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_ownerid) === 0) { + $frame_ownerid = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $parsedFrame['ownerid'] = $frame_ownerid; + $parsedFrame['groupsymbol'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'PRIV')) { // 4.27 PRIV Private frame (ID3v2.3+ only) + // The tag may contain more than one 'PRIV' frame + // but only with different contents + //
+ // Owner identifier $00 + // The private data + + $frame_offset = 0; + $frame_terminatorpos = strpos($parsedFrame['data'], "\x00", $frame_offset); + $frame_ownerid = substr($parsedFrame['data'], $frame_offset, $frame_terminatorpos - $frame_offset); + if (ord($frame_ownerid) === 0) { + $frame_ownerid = ''; + } + $frame_offset = $frame_terminatorpos + strlen("\x00"); + + $parsedFrame['ownerid'] = $frame_ownerid; + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + + + } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'SIGN')) { // 4.28 SIGN Signature frame (ID3v2.4+ only) + // There may be more than one 'signature frame' in a tag, + // but no two may be identical + //
+ // Group symbol $xx + // Signature + + $frame_offset = 0; + $parsedFrame['groupsymbol'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $parsedFrame['data'] = (string) substr($parsedFrame['data'], $frame_offset); + + + } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'SEEK')) { // 4.29 SEEK Seek frame (ID3v2.4+ only) + // There may only be one 'seek frame' in a tag + //
+ // Minimum offset to next tag $xx xx xx xx + + $frame_offset = 0; + $parsedFrame['data'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4)); + + + } elseif (($id3v2_majorversion >= 4) && ($parsedFrame['frame_name'] == 'ASPI')) { // 4.30 ASPI Audio seek point index (ID3v2.4+ only) + // There may only be one 'audio seek point index' frame in a tag + //
+ // Indexed data start (S) $xx xx xx xx + // Indexed data length (L) $xx xx xx xx + // Number of index points (N) $xx xx + // Bits per index point (b) $xx + // Then for every index point the following data is included: + // Fraction at index (Fi) $xx (xx) + + $frame_offset = 0; + $parsedFrame['datastart'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4)); + $frame_offset += 4; + $parsedFrame['indexeddatalength'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 4)); + $frame_offset += 4; + $parsedFrame['indexpoints'] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $parsedFrame['bitsperpoint'] = ord(substr($parsedFrame['data'], $frame_offset++, 1)); + $frame_bytesperpoint = ceil($parsedFrame['bitsperpoint'] / 8); + for ($i = 0; $i < $frame_indexpoints; $i++) { + $parsedFrame['indexes'][$i] = getid3_lib::BigEndian2Int(substr($parsedFrame['data'], $frame_offset, $frame_bytesperpoint)); + $frame_offset += $frame_bytesperpoint; + } + unset($parsedFrame['data']); + + } elseif (($id3v2_majorversion >= 3) && ($parsedFrame['frame_name'] == 'RGAD')) { // Replay Gain Adjustment + // http://privatewww.essex.ac.uk/~djmrob/replaygain/file_format_id3v2.html + // There may only be one 'RGAD' frame in a tag + //
+ // Peak Amplitude $xx $xx $xx $xx + // Radio Replay Gain Adjustment %aaabbbcd %dddddddd + // Audiophile Replay Gain Adjustment %aaabbbcd %dddddddd + // a - name code + // b - originator code + // c - sign bit + // d - replay gain adjustment + + $frame_offset = 0; + $parsedFrame['peakamplitude'] = getid3_lib::BigEndian2Float(substr($parsedFrame['data'], $frame_offset, 4)); + $frame_offset += 4; + $rg_track_adjustment = getid3_lib::Dec2Bin(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $rg_album_adjustment = getid3_lib::Dec2Bin(substr($parsedFrame['data'], $frame_offset, 2)); + $frame_offset += 2; + $parsedFrame['raw']['track']['name'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 0, 3)); + $parsedFrame['raw']['track']['originator'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 3, 3)); + $parsedFrame['raw']['track']['signbit'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 6, 1)); + $parsedFrame['raw']['track']['adjustment'] = getid3_lib::Bin2Dec(substr($rg_track_adjustment, 7, 9)); + $parsedFrame['raw']['album']['name'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 0, 3)); + $parsedFrame['raw']['album']['originator'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 3, 3)); + $parsedFrame['raw']['album']['signbit'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 6, 1)); + $parsedFrame['raw']['album']['adjustment'] = getid3_lib::Bin2Dec(substr($rg_album_adjustment, 7, 9)); + $parsedFrame['track']['name'] = getid3_lib::RGADnameLookup($parsedFrame['raw']['track']['name']); + $parsedFrame['track']['originator'] = getid3_lib::RGADoriginatorLookup($parsedFrame['raw']['track']['originator']); + $parsedFrame['track']['adjustment'] = getid3_lib::RGADadjustmentLookup($parsedFrame['raw']['track']['adjustment'], $parsedFrame['raw']['track']['signbit']); + $parsedFrame['album']['name'] = getid3_lib::RGADnameLookup($parsedFrame['raw']['album']['name']); + $parsedFrame['album']['originator'] = getid3_lib::RGADoriginatorLookup($parsedFrame['raw']['album']['originator']); + $parsedFrame['album']['adjustment'] = getid3_lib::RGADadjustmentLookup($parsedFrame['raw']['album']['adjustment'], $parsedFrame['raw']['album']['signbit']); + + $ThisFileInfo['replay_gain']['track']['peak'] = $parsedFrame['peakamplitude']; + $ThisFileInfo['replay_gain']['track']['originator'] = $parsedFrame['track']['originator']; + $ThisFileInfo['replay_gain']['track']['adjustment'] = $parsedFrame['track']['adjustment']; + $ThisFileInfo['replay_gain']['album']['originator'] = $parsedFrame['album']['originator']; + $ThisFileInfo['replay_gain']['album']['adjustment'] = $parsedFrame['album']['adjustment']; + + unset($parsedFrame['data']); + + } + + return true; + } + + + function DeUnsynchronise($data) { + return str_replace("\xFF\x00", "\xFF", $data); + } + + function LookupCurrencyUnits($currencyid) { + + $begin = __LINE__; + + /** This is not a comment! + + + AED Dirhams + AFA Afghanis + ALL Leke + AMD Drams + ANG Guilders + AOA Kwanza + ARS Pesos + ATS Schillings + AUD Dollars + AWG Guilders + AZM Manats + BAM Convertible Marka + BBD Dollars + BDT Taka + BEF Francs + BGL Leva + BHD Dinars + BIF Francs + BMD Dollars + BND Dollars + BOB Bolivianos + BRL Brazil Real + BSD Dollars + BTN Ngultrum + BWP Pulas + BYR Rubles + BZD Dollars + CAD Dollars + CDF Congolese Francs + CHF Francs + CLP Pesos + CNY Yuan Renminbi + COP Pesos + CRC Colones + CUP Pesos + CVE Escudos + CYP Pounds + CZK Koruny + DEM Deutsche Marks + DJF Francs + DKK Kroner + DOP Pesos + DZD Algeria Dinars + EEK Krooni + EGP Pounds + ERN Nakfa + ESP Pesetas + ETB Birr + EUR Euro + FIM Markkaa + FJD Dollars + FKP Pounds + FRF Francs + GBP Pounds + GEL Lari + GGP Pounds + GHC Cedis + GIP Pounds + GMD Dalasi + GNF Francs + GRD Drachmae + GTQ Quetzales + GYD Dollars + HKD Dollars + HNL Lempiras + HRK Kuna + HTG Gourdes + HUF Forints + IDR Rupiahs + IEP Pounds + ILS New Shekels + IMP Pounds + INR Rupees + IQD Dinars + IRR Rials + ISK Kronur + ITL Lire + JEP Pounds + JMD Dollars + JOD Dinars + JPY Yen + KES Shillings + KGS Soms + KHR Riels + KMF Francs + KPW Won + KWD Dinars + KYD Dollars + KZT Tenge + LAK Kips + LBP Pounds + LKR Rupees + LRD Dollars + LSL Maloti + LTL Litai + LUF Francs + LVL Lati + LYD Dinars + MAD Dirhams + MDL Lei + MGF Malagasy Francs + MKD Denars + MMK Kyats + MNT Tugriks + MOP Patacas + MRO Ouguiyas + MTL Liri + MUR Rupees + MVR Rufiyaa + MWK Kwachas + MXN Pesos + MYR Ringgits + MZM Meticais + NAD Dollars + NGN Nairas + NIO Gold Cordobas + NLG Guilders + NOK Krone + NPR Nepal Rupees + NZD Dollars + OMR Rials + PAB Balboa + PEN Nuevos Soles + PGK Kina + PHP Pesos + PKR Rupees + PLN Zlotych + PTE Escudos + PYG Guarani + QAR Rials + ROL Lei + RUR Rubles + RWF Rwanda Francs + SAR Riyals + SBD Dollars + SCR Rupees + SDD Dinars + SEK Kronor + SGD Dollars + SHP Pounds + SIT Tolars + SKK Koruny + SLL Leones + SOS Shillings + SPL Luigini + SRG Guilders + STD Dobras + SVC Colones + SYP Pounds + SZL Emalangeni + THB Baht + TJR Rubles + TMM Manats + TND Dinars + TOP Pa'anga + TRL Liras + TTD Dollars + TVD Tuvalu Dollars + TWD New Dollars + TZS Shillings + UAH Hryvnia + UGX Shillings + USD Dollars + UYU Pesos + UZS Sums + VAL Lire + VEB Bolivares + VND Dong + VUV Vatu + WST Tala + XAF Francs + XAG Ounces + XAU Ounces + XCD Dollars + XDR Special Drawing Rights + XPD Ounces + XPF Francs + XPT Ounces + YER Rials + YUM New Dinars + ZAR Rand + ZMK Kwacha + ZWD Zimbabwe Dollars + + */ + + return getid3_lib::EmbeddedLookup($currencyid, $begin, __LINE__, __FILE__, 'id3v2-currency-units'); + } + + + function LookupCurrencyCountry($currencyid) { + + $begin = __LINE__; + + /** This is not a comment! + + AED United Arab Emirates + AFA Afghanistan + ALL Albania + AMD Armenia + ANG Netherlands Antilles + AOA Angola + ARS Argentina + ATS Austria + AUD Australia + AWG Aruba + AZM Azerbaijan + BAM Bosnia and Herzegovina + BBD Barbados + BDT Bangladesh + BEF Belgium + BGL Bulgaria + BHD Bahrain + BIF Burundi + BMD Bermuda + BND Brunei Darussalam + BOB Bolivia + BRL Brazil + BSD Bahamas + BTN Bhutan + BWP Botswana + BYR Belarus + BZD Belize + CAD Canada + CDF Congo/Kinshasa + CHF Switzerland + CLP Chile + CNY China + COP Colombia + CRC Costa Rica + CUP Cuba + CVE Cape Verde + CYP Cyprus + CZK Czech Republic + DEM Germany + DJF Djibouti + DKK Denmark + DOP Dominican Republic + DZD Algeria + EEK Estonia + EGP Egypt + ERN Eritrea + ESP Spain + ETB Ethiopia + EUR Euro Member Countries + FIM Finland + FJD Fiji + FKP Falkland Islands (Malvinas) + FRF France + GBP United Kingdom + GEL Georgia + GGP Guernsey + GHC Ghana + GIP Gibraltar + GMD Gambia + GNF Guinea + GRD Greece + GTQ Guatemala + GYD Guyana + HKD Hong Kong + HNL Honduras + HRK Croatia + HTG Haiti + HUF Hungary + IDR Indonesia + IEP Ireland (Eire) + ILS Israel + IMP Isle of Man + INR India + IQD Iraq + IRR Iran + ISK Iceland + ITL Italy + JEP Jersey + JMD Jamaica + JOD Jordan + JPY Japan + KES Kenya + KGS Kyrgyzstan + KHR Cambodia + KMF Comoros + KPW Korea + KWD Kuwait + KYD Cayman Islands + KZT Kazakstan + LAK Laos + LBP Lebanon + LKR Sri Lanka + LRD Liberia + LSL Lesotho + LTL Lithuania + LUF Luxembourg + LVL Latvia + LYD Libya + MAD Morocco + MDL Moldova + MGF Madagascar + MKD Macedonia + MMK Myanmar (Burma) + MNT Mongolia + MOP Macau + MRO Mauritania + MTL Malta + MUR Mauritius + MVR Maldives (Maldive Islands) + MWK Malawi + MXN Mexico + MYR Malaysia + MZM Mozambique + NAD Namibia + NGN Nigeria + NIO Nicaragua + NLG Netherlands (Holland) + NOK Norway + NPR Nepal + NZD New Zealand + OMR Oman + PAB Panama + PEN Peru + PGK Papua New Guinea + PHP Philippines + PKR Pakistan + PLN Poland + PTE Portugal + PYG Paraguay + QAR Qatar + ROL Romania + RUR Russia + RWF Rwanda + SAR Saudi Arabia + SBD Solomon Islands + SCR Seychelles + SDD Sudan + SEK Sweden + SGD Singapore + SHP Saint Helena + SIT Slovenia + SKK Slovakia + SLL Sierra Leone + SOS Somalia + SPL Seborga + SRG Suriname + STD So Tome and Principe + SVC El Salvador + SYP Syria + SZL Swaziland + THB Thailand + TJR Tajikistan + TMM Turkmenistan + TND Tunisia + TOP Tonga + TRL Turkey + TTD Trinidad and Tobago + TVD Tuvalu + TWD Taiwan + TZS Tanzania + UAH Ukraine + UGX Uganda + USD United States of America + UYU Uruguay + UZS Uzbekistan + VAL Vatican City + VEB Venezuela + VND Viet Nam + VUV Vanuatu + WST Samoa + XAF Communaut Financire Africaine + XAG Silver + XAU Gold + XCD East Caribbean + XDR International Monetary Fund + XPD Palladium + XPF Comptoirs Franais du Pacifique + XPT Platinum + YER Yemen + YUM Yugoslavia + ZAR South Africa + ZMK Zambia + ZWD Zimbabwe + + */ + + return getid3_lib::EmbeddedLookup($currencyid, $begin, __LINE__, __FILE__, 'id3v2-currency-country'); + } + + + + function LanguageLookup($languagecode, $casesensitive=false) { + + if (!$casesensitive) { + $languagecode = strtolower($languagecode); + } + + // http://www.id3.org/id3v2.4.0-structure.txt + // [4. ID3v2 frame overview] + // The three byte language field, present in several frames, is used to + // describe the language of the frame's content, according to ISO-639-2 + // [ISO-639-2]. The language should be represented in lower case. If the + // language is not known the string "XXX" should be used. + + + // ISO 639-2 - http://www.id3.org/iso639-2.html + + $begin = __LINE__; + + /** This is not a comment! + + XXX unknown + xxx unknown + aar Afar + abk Abkhazian + ace Achinese + ach Acoli + ada Adangme + afa Afro-Asiatic (Other) + afh Afrihili + afr Afrikaans + aka Akan + akk Akkadian + alb Albanian + ale Aleut + alg Algonquian Languages + amh Amharic + ang English, Old (ca. 450-1100) + apa Apache Languages + ara Arabic + arc Aramaic + arm Armenian + arn Araucanian + arp Arapaho + art Artificial (Other) + arw Arawak + asm Assamese + ath Athapascan Languages + ava Avaric + ave Avestan + awa Awadhi + aym Aymara + aze Azerbaijani + bad Banda + bai Bamileke Languages + bak Bashkir + bal Baluchi + bam Bambara + ban Balinese + baq Basque + bas Basa + bat Baltic (Other) + bej Beja + bel Byelorussian + bem Bemba + ben Bengali + ber Berber (Other) + bho Bhojpuri + bih Bihari + bik Bikol + bin Bini + bis Bislama + bla Siksika + bnt Bantu (Other) + bod Tibetan + bra Braj + bre Breton + bua Buriat + bug Buginese + bul Bulgarian + bur Burmese + cad Caddo + cai Central American Indian (Other) + car Carib + cat Catalan + cau Caucasian (Other) + ceb Cebuano + cel Celtic (Other) + ces Czech + cha Chamorro + chb Chibcha + che Chechen + chg Chagatai + chi Chinese + chm Mari + chn Chinook jargon + cho Choctaw + chr Cherokee + chu Church Slavic + chv Chuvash + chy Cheyenne + cop Coptic + cor Cornish + cos Corsican + cpe Creoles and Pidgins, English-based (Other) + cpf Creoles and Pidgins, French-based (Other) + cpp Creoles and Pidgins, Portuguese-based (Other) + cre Cree + crp Creoles and Pidgins (Other) + cus Cushitic (Other) + cym Welsh + cze Czech + dak Dakota + dan Danish + del Delaware + deu German + din Dinka + div Divehi + doi Dogri + dra Dravidian (Other) + dua Duala + dum Dutch, Middle (ca. 1050-1350) + dut Dutch + dyu Dyula + dzo Dzongkha + efi Efik + egy Egyptian (Ancient) + eka Ekajuk + ell Greek, Modern (1453-) + elx Elamite + eng English + enm English, Middle (ca. 1100-1500) + epo Esperanto + esk Eskimo (Other) + esl Spanish + est Estonian + eus Basque + ewe Ewe + ewo Ewondo + fan Fang + fao Faroese + fas Persian + fat Fanti + fij Fijian + fin Finnish + fiu Finno-Ugrian (Other) + fon Fon + fra French + fre French + frm French, Middle (ca. 1400-1600) + fro French, Old (842- ca. 1400) + fry Frisian + ful Fulah + gaa Ga + gae Gaelic (Scots) + gai Irish + gay Gayo + gdh Gaelic (Scots) + gem Germanic (Other) + geo Georgian + ger German + gez Geez + gil Gilbertese + glg Gallegan + gmh German, Middle High (ca. 1050-1500) + goh German, Old High (ca. 750-1050) + gon Gondi + got Gothic + grb Grebo + grc Greek, Ancient (to 1453) + gre Greek, Modern (1453-) + grn Guarani + guj Gujarati + hai Haida + hau Hausa + haw Hawaiian + heb Hebrew + her Herero + hil Hiligaynon + him Himachali + hin Hindi + hmo Hiri Motu + hun Hungarian + hup Hupa + hye Armenian + iba Iban + ibo Igbo + ice Icelandic + ijo Ijo + iku Inuktitut + ilo Iloko + ina Interlingua (International Auxiliary language Association) + inc Indic (Other) + ind Indonesian + ine Indo-European (Other) + ine Interlingue + ipk Inupiak + ira Iranian (Other) + iri Irish + iro Iroquoian uages + isl Icelandic + ita Italian + jav Javanese + jaw Javanese + jpn Japanese + jpr Judeo-Persian + jrb Judeo-Arabic + kaa Kara-Kalpak + kab Kabyle + kac Kachin + kal Greenlandic + kam Kamba + kan Kannada + kar Karen + kas Kashmiri + kat Georgian + kau Kanuri + kaw Kawi + kaz Kazakh + kha Khasi + khi Khoisan (Other) + khm Khmer + kho Khotanese + kik Kikuyu + kin Kinyarwanda + kir Kirghiz + kok Konkani + kom Komi + kon Kongo + kor Korean + kpe Kpelle + kro Kru + kru Kurukh + kua Kuanyama + kum Kumyk + kur Kurdish + kus Kusaie + kut Kutenai + lad Ladino + lah Lahnda + lam Lamba + lao Lao + lat Latin + lav Latvian + lez Lezghian + lin Lingala + lit Lithuanian + lol Mongo + loz Lozi + ltz Letzeburgesch + lub Luba-Katanga + lug Ganda + lui Luiseno + lun Lunda + luo Luo (Kenya and Tanzania) + mac Macedonian + mad Madurese + mag Magahi + mah Marshall + mai Maithili + mak Macedonian + mak Makasar + mal Malayalam + man Mandingo + mao Maori + map Austronesian (Other) + mar Marathi + mas Masai + max Manx + may Malay + men Mende + mga Irish, Middle (900 - 1200) + mic Micmac + min Minangkabau + mis Miscellaneous (Other) + mkh Mon-Kmer (Other) + mlg Malagasy + mlt Maltese + mni Manipuri + mno Manobo Languages + moh Mohawk + mol Moldavian + mon Mongolian + mos Mossi + mri Maori + msa Malay + mul Multiple Languages + mun Munda Languages + mus Creek + mwr Marwari + mya Burmese + myn Mayan Languages + nah Aztec + nai North American Indian (Other) + nau Nauru + nav Navajo + nbl Ndebele, South + nde Ndebele, North + ndo Ndongo + nep Nepali + new Newari + nic Niger-Kordofanian (Other) + niu Niuean + nla Dutch + nno Norwegian (Nynorsk) + non Norse, Old + nor Norwegian + nso Sotho, Northern + nub Nubian Languages + nya Nyanja + nym Nyamwezi + nyn Nyankole + nyo Nyoro + nzi Nzima + oci Langue d'Oc (post 1500) + oji Ojibwa + ori Oriya + orm Oromo + osa Osage + oss Ossetic + ota Turkish, Ottoman (1500 - 1928) + oto Otomian Languages + paa Papuan-Australian (Other) + pag Pangasinan + pal Pahlavi + pam Pampanga + pan Panjabi + pap Papiamento + pau Palauan + peo Persian, Old (ca 600 - 400 B.C.) + per Persian + phn Phoenician + pli Pali + pol Polish + pon Ponape + por Portuguese + pra Prakrit uages + pro Provencal, Old (to 1500) + pus Pushto + que Quechua + raj Rajasthani + rar Rarotongan + roa Romance (Other) + roh Rhaeto-Romance + rom Romany + ron Romanian + rum Romanian + run Rundi + rus Russian + sad Sandawe + sag Sango + sah Yakut + sai South American Indian (Other) + sal Salishan Languages + sam Samaritan Aramaic + san Sanskrit + sco Scots + scr Serbo-Croatian + sel Selkup + sem Semitic (Other) + sga Irish, Old (to 900) + shn Shan + sid Sidamo + sin Singhalese + sio Siouan Languages + sit Sino-Tibetan (Other) + sla Slavic (Other) + slk Slovak + slo Slovak + slv Slovenian + smi Sami Languages + smo Samoan + sna Shona + snd Sindhi + sog Sogdian + som Somali + son Songhai + sot Sotho, Southern + spa Spanish + sqi Albanian + srd Sardinian + srr Serer + ssa Nilo-Saharan (Other) + ssw Siswant + ssw Swazi + suk Sukuma + sun Sudanese + sus Susu + sux Sumerian + sve Swedish + swa Swahili + swe Swedish + syr Syriac + tah Tahitian + tam Tamil + tat Tatar + tel Telugu + tem Timne + ter Tereno + tgk Tajik + tgl Tagalog + tha Thai + tib Tibetan + tig Tigre + tir Tigrinya + tiv Tivi + tli Tlingit + tmh Tamashek + tog Tonga (Nyasa) + ton Tonga (Tonga Islands) + tru Truk + tsi Tsimshian + tsn Tswana + tso Tsonga + tuk Turkmen + tum Tumbuka + tur Turkish + tut Altaic (Other) + twi Twi + tyv Tuvinian + uga Ugaritic + uig Uighur + ukr Ukrainian + umb Umbundu + und Undetermined + urd Urdu + uzb Uzbek + vai Vai + ven Venda + vie Vietnamese + vol Volapk + vot Votic + wak Wakashan Languages + wal Walamo + war Waray + was Washo + wel Welsh + wen Sorbian Languages + wol Wolof + xho Xhosa + yao Yao + yap Yap + yid Yiddish + yor Yoruba + zap Zapotec + zen Zenaga + zha Zhuang + zho Chinese + zul Zulu + zun Zuni + + */ + + return getid3_lib::EmbeddedLookup($languagecode, $begin, __LINE__, __FILE__, 'id3v2-languagecode'); + } + + + function ETCOEventLookup($index) { + if (($index >= 0x17) && ($index <= 0xDF)) { + return 'reserved for future use'; + } + if (($index >= 0xE0) && ($index <= 0xEF)) { + return 'not predefined synch 0-F'; + } + if (($index >= 0xF0) && ($index <= 0xFC)) { + return 'reserved for future use'; + } + + static $EventLookup = array( + 0x00 => 'padding (has no meaning)', + 0x01 => 'end of initial silence', + 0x02 => 'intro start', + 0x03 => 'main part start', + 0x04 => 'outro start', + 0x05 => 'outro end', + 0x06 => 'verse start', + 0x07 => 'refrain start', + 0x08 => 'interlude start', + 0x09 => 'theme start', + 0x0A => 'variation start', + 0x0B => 'key change', + 0x0C => 'time change', + 0x0D => 'momentary unwanted noise (Snap, Crackle & Pop)', + 0x0E => 'sustained noise', + 0x0F => 'sustained noise end', + 0x10 => 'intro end', + 0x11 => 'main part end', + 0x12 => 'verse end', + 0x13 => 'refrain end', + 0x14 => 'theme end', + 0x15 => 'profanity', + 0x16 => 'profanity end', + 0xFD => 'audio end (start of silence)', + 0xFE => 'audio file ends', + 0xFF => 'one more byte of events follows' + ); + + return (isset($EventLookup[$index]) ? $EventLookup[$index] : ''); + } + + function SYTLContentTypeLookup($index) { + static $SYTLContentTypeLookup = array( + 0x00 => 'other', + 0x01 => 'lyrics', + 0x02 => 'text transcription', + 0x03 => 'movement/part name', // (e.g. 'Adagio') + 0x04 => 'events', // (e.g. 'Don Quijote enters the stage') + 0x05 => 'chord', // (e.g. 'Bb F Fsus') + 0x06 => 'trivia/\'pop up\' information', + 0x07 => 'URLs to webpages', + 0x08 => 'URLs to images' + ); + + return (isset($SYTLContentTypeLookup[$index]) ? $SYTLContentTypeLookup[$index] : ''); + } + + function APICPictureTypeLookup($index, $returnarray=false) { + static $APICPictureTypeLookup = array( + 0x00 => 'Other', + 0x01 => '32x32 pixels \'file icon\' (PNG only)', + 0x02 => 'Other file icon', + 0x03 => 'Cover (front)', + 0x04 => 'Cover (back)', + 0x05 => 'Leaflet page', + 0x06 => 'Media (e.g. label side of CD)', + 0x07 => 'Lead artist/lead performer/soloist', + 0x08 => 'Artist/performer', + 0x09 => 'Conductor', + 0x0A => 'Band/Orchestra', + 0x0B => 'Composer', + 0x0C => 'Lyricist/text writer', + 0x0D => 'Recording Location', + 0x0E => 'During recording', + 0x0F => 'During performance', + 0x10 => 'Movie/video screen capture', + 0x11 => 'A bright coloured fish', + 0x12 => 'Illustration', + 0x13 => 'Band/artist logotype', + 0x14 => 'Publisher/Studio logotype' + ); + if ($returnarray) { + return $APICPictureTypeLookup; + } + return (isset($APICPictureTypeLookup[$index]) ? $APICPictureTypeLookup[$index] : ''); + } + + function COMRReceivedAsLookup($index) { + static $COMRReceivedAsLookup = array( + 0x00 => 'Other', + 0x01 => 'Standard CD album with other songs', + 0x02 => 'Compressed audio on CD', + 0x03 => 'File over the Internet', + 0x04 => 'Stream over the Internet', + 0x05 => 'As note sheets', + 0x06 => 'As note sheets in a book with other sheets', + 0x07 => 'Music on other media', + 0x08 => 'Non-musical merchandise' + ); + + return (isset($COMRReceivedAsLookup[$index]) ? $COMRReceivedAsLookup[$index] : ''); + } + + function RVA2ChannelTypeLookup($index) { + static $RVA2ChannelTypeLookup = array( + 0x00 => 'Other', + 0x01 => 'Master volume', + 0x02 => 'Front right', + 0x03 => 'Front left', + 0x04 => 'Back right', + 0x05 => 'Back left', + 0x06 => 'Front centre', + 0x07 => 'Back centre', + 0x08 => 'Subwoofer' + ); + + return (isset($RVA2ChannelTypeLookup[$index]) ? $RVA2ChannelTypeLookup[$index] : ''); + } + + function FrameNameLongLookup($framename) { + + $begin = __LINE__; + + /** This is not a comment! + + AENC Audio encryption + APIC Attached picture + ASPI Audio seek point index + BUF Recommended buffer size + CNT Play counter + COM Comments + COMM Comments + COMR Commercial frame + CRA Audio encryption + CRM Encrypted meta frame + ENCR Encryption method registration + EQU Equalisation + EQU2 Equalisation (2) + EQUA Equalisation + ETC Event timing codes + ETCO Event timing codes + GEO General encapsulated object + GEOB General encapsulated object + GRID Group identification registration + IPL Involved people list + IPLS Involved people list + LINK Linked information + LNK Linked information + MCDI Music CD identifier + MCI Music CD Identifier + MLL MPEG location lookup table + MLLT MPEG location lookup table + OWNE Ownership frame + PCNT Play counter + PIC Attached picture + POP Popularimeter + POPM Popularimeter + POSS Position synchronisation frame + PRIV Private frame + RBUF Recommended buffer size + REV Reverb + RVA Relative volume adjustment + RVA2 Relative volume adjustment (2) + RVAD Relative volume adjustment + RVRB Reverb + SEEK Seek frame + SIGN Signature frame + SLT Synchronised lyric/text + STC Synced tempo codes + SYLT Synchronised lyric/text + SYTC Synchronised tempo codes + TAL Album/Movie/Show title + TALB Album/Movie/Show title + TBP BPM (Beats Per Minute) + TBPM BPM (beats per minute) + TCM Composer + TCO Content type + TCOM Composer + TCON Content type + TCOP Copyright message + TCR Copyright message + TDA Date + TDAT Date + TDEN Encoding time + TDLY Playlist delay + TDOR Original release time + TDRC Recording time + TDRL Release time + TDTG Tagging time + TDY Playlist delay + TEN Encoded by + TENC Encoded by + TEXT Lyricist/Text writer + TFLT File type + TFT File type + TIM Time + TIME Time + TIPL Involved people list + TIT1 Content group description + TIT2 Title/songname/content description + TIT3 Subtitle/Description refinement + TKE Initial key + TKEY Initial key + TLA Language(s) + TLAN Language(s) + TLE Length + TLEN Length + TMCL Musician credits list + TMED Media type + TMOO Mood + TMT Media type + TOA Original artist(s)/performer(s) + TOAL Original album/movie/show title + TOF Original filename + TOFN Original filename + TOL Original Lyricist(s)/text writer(s) + TOLY Original lyricist(s)/text writer(s) + TOPE Original artist(s)/performer(s) + TOR Original release year + TORY Original release year + TOT Original album/Movie/Show title + TOWN File owner/licensee + TP1 Lead artist(s)/Lead performer(s)/Soloist(s)/Performing group + TP2 Band/Orchestra/Accompaniment + TP3 Conductor/Performer refinement + TP4 Interpreted, remixed, or otherwise modified by + TPA Part of a set + TPB Publisher + TPE1 Lead performer(s)/Soloist(s) + TPE2 Band/orchestra/accompaniment + TPE3 Conductor/performer refinement + TPE4 Interpreted, remixed, or otherwise modified by + TPOS Part of a set + TPRO Produced notice + TPUB Publisher + TRC ISRC (International Standard Recording Code) + TRCK Track number/Position in set + TRD Recording dates + TRDA Recording dates + TRK Track number/Position in set + TRSN Internet radio station name + TRSO Internet radio station owner + TSI Size + TSIZ Size + TSOA Album sort order + TSOP Performer sort order + TSOT Title sort order + TSRC ISRC (international standard recording code) + TSS Software/hardware and settings used for encoding + TSSE Software/Hardware and settings used for encoding + TSST Set subtitle + TT1 Content group description + TT2 Title/Songname/Content description + TT3 Subtitle/Description refinement + TXT Lyricist/text writer + TXX User defined text information frame + TXXX User defined text information frame + TYE Year + TYER Year + UFI Unique file identifier + UFID Unique file identifier + ULT Unsychronised lyric/text transcription + USER Terms of use + USLT Unsynchronised lyric/text transcription + WAF Official audio file webpage + WAR Official artist/performer webpage + WAS Official audio source webpage + WCM Commercial information + WCOM Commercial information + WCOP Copyright/Legal information + WCP Copyright/Legal information + WOAF Official audio file webpage + WOAR Official artist/performer webpage + WOAS Official audio source webpage + WORS Official Internet radio station homepage + WPAY Payment + WPB Publishers official webpage + WPUB Publishers official webpage + WXX User defined URL link frame + WXXX User defined URL link frame + TFEA Featured Artist + TSTU Recording Studio + rgad Replay Gain Adjustment + + */ + + return getid3_lib::EmbeddedLookup($framename, $begin, __LINE__, __FILE__, 'id3v2-framename_long'); + + // Last three: + // from Helium2 [www.helium2.com] + // from http://privatewww.essex.ac.uk/~djmrob/replaygain/file_format_id3v2.html + } + + + function FrameNameShortLookup($framename) { + + $begin = __LINE__; + + /** This is not a comment! + + AENC audio_encryption + APIC attached_picture + ASPI audio_seek_point_index + BUF recommended_buffer_size + CNT play_counter + COM comments + COMM comments + COMR commercial_frame + CRA audio_encryption + CRM encrypted_meta_frame + ENCR encryption_method_registration + EQU equalisation + EQU2 equalisation + EQUA equalisation + ETC event_timing_codes + ETCO event_timing_codes + GEO general_encapsulated_object + GEOB general_encapsulated_object + GRID group_identification_registration + IPL involved_people_list + IPLS involved_people_list + LINK linked_information + LNK linked_information + MCDI music_cd_identifier + MCI music_cd_identifier + MLL mpeg_location_lookup_table + MLLT mpeg_location_lookup_table + OWNE ownership_frame + PCNT play_counter + PIC attached_picture + POP popularimeter + POPM popularimeter + POSS position_synchronisation_frame + PRIV private_frame + RBUF recommended_buffer_size + REV reverb + RVA relative_volume_adjustment + RVA2 relative_volume_adjustment + RVAD relative_volume_adjustment + RVRB reverb + SEEK seek_frame + SIGN signature_frame + SLT synchronised_lyric + STC synced_tempo_codes + SYLT synchronised_lyric + SYTC synchronised_tempo_codes + TAL album + TALB album + TBP bpm + TBPM bpm + TCM composer + TCO content_type + TCOM composer + TCON content_type + TCOP copyright_message + TCR copyright_message + TDA date + TDAT date + TDEN encoding_time + TDLY playlist_delay + TDOR original_release_time + TDRC recording_time + TDRL release_time + TDTG tagging_time + TDY playlist_delay + TEN encoded_by + TENC encoded_by + TEXT lyricist + TFLT file_type + TFT file_type + TIM time + TIME time + TIPL involved_people_list + TIT1 content_group_description + TIT2 title + TIT3 subtitle + TKE initial_key + TKEY initial_key + TLA language + TLAN language + TLE length + TLEN length + TMCL musician_credits_list + TMED media_type + TMOO mood + TMT media_type + TOA original_artist + TOAL original_album + TOF original_filename + TOFN original_filename + TOL original_lyricist + TOLY original_lyricist + TOPE original_artist + TOR original_year + TORY original_year + TOT original_album + TOWN file_owner + TP1 artist + TP2 band + TP3 conductor + TP4 remixer + TPA part_of_a_set + TPB publisher + TPE1 artist + TPE2 band + TPE3 conductor + TPE4 remixer + TPOS part_of_a_set + TPRO produced_notice + TPUB publisher + TRC isrc + TRCK track_number + TRD recording_dates + TRDA recording_dates + TRK track_number + TRSN internet_radio_station_name + TRSO internet_radio_station_owner + TSI size + TSIZ size + TSOA album_sort_order + TSOP performer_sort_order + TSOT title_sort_order + TSRC isrc + TSS encoder_settings + TSSE encoder_settings + TSST set_subtitle + TT1 description + TT2 title + TT3 subtitle + TXT lyricist + TXX text + TXXX text + TYE year + TYER year + UFI unique_file_identifier + UFID unique_file_identifier + ULT unsychronised_lyric + USER terms_of_use + USLT unsynchronised_lyric + WAF url_file + WAR url_artist + WAS url_source + WCM commercial_information + WCOM commercial_information + WCOP copyright + WCP copyright + WOAF url_file + WOAR url_artist + WOAS url_source + WORS url_station + WPAY url_payment + WPB url_publisher + WPUB url_publisher + WXX url_user + WXXX url_user + TFEA featured_artist + TSTU recording_studio + rgad replay_gain_adjustment + + */ + + return getid3_lib::EmbeddedLookup($framename, $begin, __LINE__, __FILE__, 'id3v2-framename_short'); + } + + function TextEncodingTerminatorLookup($encoding) { + // http://www.id3.org/id3v2.4.0-structure.txt + // Frames that allow different types of text encoding contains a text encoding description byte. Possible encodings: + // $00 ISO-8859-1. Terminated with $00. + // $01 UTF-16 encoded Unicode with BOM. All strings in the same frame SHALL have the same byteorder. Terminated with $00 00. + // $02 UTF-16BE encoded Unicode without BOM. Terminated with $00 00. + // $03 UTF-8 encoded Unicode. Terminated with $00. + + static $TextEncodingTerminatorLookup = array(0=>"\x00", 1=>"\x00\x00", 2=>"\x00\x00", 3=>"\x00", 255=>"\x00\x00"); + + return @$TextEncodingTerminatorLookup[$encoding]; + } + + function TextEncodingNameLookup($encoding) { + // http://www.id3.org/id3v2.4.0-structure.txt + static $TextEncodingNameLookup = array(0=>'ISO-8859-1', 1=>'UTF-16', 2=>'UTF-16BE', 3=>'UTF-8', 255=>'UTF-16BE'); + return (isset($TextEncodingNameLookup[$encoding]) ? $TextEncodingNameLookup[$encoding] : 'ISO-8859-1'); + } + + function IsValidID3v2FrameName($framename, $id3v2majorversion) { + switch ($id3v2majorversion) { + case 2: + return ereg('[A-Z][A-Z0-9]{2}', $framename); + break; + + case 3: + case 4: + return ereg('[A-Z][A-Z0-9]{3}', $framename); + break; + } + return false; + } + + function IsANumber($numberstring, $allowdecimal=false, $allownegative=false) { + for ($i = 0; $i < strlen($numberstring); $i++) { + if ((chr($numberstring{$i}) < chr('0')) || (chr($numberstring{$i}) > chr('9'))) { + if (($numberstring{$i} == '.') && $allowdecimal) { + // allowed + } elseif (($numberstring{$i} == '-') && $allownegative && ($i == 0)) { + // allowed + } else { + return false; + } + } + } + return true; + } + + function IsValidDateStampString($datestamp) { + if (strlen($datestamp) != 8) { + return false; + } + if (!$this->IsANumber($datestamp, false)) { + return false; + } + $year = substr($datestamp, 0, 4); + $month = substr($datestamp, 4, 2); + $day = substr($datestamp, 6, 2); + if (($year == 0) || ($month == 0) || ($day == 0)) { + return false; + } + if ($month > 12) { + return false; + } + if ($day > 31) { + return false; + } + if (($day > 30) && (($month == 4) || ($month == 6) || ($month == 9) || ($month == 11))) { + return false; + } + if (($day > 29) && ($month == 2)) { + return false; + } + return true; + } + + function ID3v2HeaderLength($majorversion) { + return (($majorversion == 2) ? 6 : 10); + } + +} + +?> diff --git a/data/flash/module.tag.lyrics3.php b/data/flash/module.tag.lyrics3.php new file mode 100644 index 0000000..e735d6d --- /dev/null +++ b/data/flash/module.tag.lyrics3.php @@ -0,0 +1,271 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +/// // +// module.tag.lyrics3.php // +// module for analyzing Lyrics3 tags // +// dependencies: module.tag.apetag.php (optional) // +// /// +///////////////////////////////////////////////////////////////// + + +class getid3_lyrics3 +{ + + function getid3_lyrics3(&$fd, &$ThisFileInfo) { + // http://www.volweb.cz/str/tags.htm + + fseek($fd, (0 - 128 - 9 - 6), SEEK_END); // end - ID3v1 - LYRICSEND - [Lyrics3size] + $lyrics3_id3v1 = fread($fd, 128 + 9 + 6); + $lyrics3lsz = substr($lyrics3_id3v1, 0, 6); // Lyrics3size + $lyrics3end = substr($lyrics3_id3v1, 6, 9); // LYRICSEND or LYRICS200 + $id3v1tag = substr($lyrics3_id3v1, 15, 128); // ID3v1 + + if ($lyrics3end == 'LYRICSEND') { + // Lyrics3v1, ID3v1, no APE + + $lyrics3size = 5100; + $lyrics3offset = $ThisFileInfo['filesize'] - 128 - $lyrics3size; + $lyrics3version = 1; + + } elseif ($lyrics3end == 'LYRICS200') { + // Lyrics3v2, ID3v1, no APE + + // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200' + $lyrics3size = $lyrics3lsz + 6 + strlen('LYRICS200'); + $lyrics3offset = $ThisFileInfo['filesize'] - 128 - $lyrics3size; + $lyrics3version = 2; + + } elseif (substr(strrev($lyrics3_id3v1), 0, 9) == strrev('LYRICSEND')) { + // Lyrics3v1, no ID3v1, no APE + + $lyrics3size = 5100; + $lyrics3offset = $ThisFileInfo['filesize'] - $lyrics3size; + $lyrics3version = 1; + $lyrics3offset = $ThisFileInfo['filesize'] - $lyrics3size; + + } elseif (substr(strrev($lyrics3_id3v1), 0, 9) == strrev('LYRICS200')) { + + // Lyrics3v2, no ID3v1, no APE + + $lyrics3size = strrev(substr(strrev($lyrics3_id3v1), 9, 6)) + 6 + strlen('LYRICS200'); // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200' + $lyrics3offset = $ThisFileInfo['filesize'] - $lyrics3size; + $lyrics3version = 2; + + } else { + + if (isset($ThisFileInfo['ape']['tag_offset_start']) && ($ThisFileInfo['ape']['tag_offset_start'] > 15)) { + + fseek($fd, $ThisFileInfo['ape']['tag_offset_start'] - 15, SEEK_SET); + $lyrics3lsz = fread($fd, 6); + $lyrics3end = fread($fd, 9); + + if ($lyrics3end == 'LYRICSEND') { + // Lyrics3v1, APE, maybe ID3v1 + + $lyrics3size = 5100; + $lyrics3offset = $ThisFileInfo['ape']['tag_offset_start'] - $lyrics3size; + $ThisFileInfo['avdataend'] = $lyrics3offset; + $lyrics3version = 1; + $ThisFileInfo['warning'][] = 'APE tag located after Lyrics3, will probably break Lyrics3 compatability'; + + } elseif ($lyrics3end == 'LYRICS200') { + // Lyrics3v2, APE, maybe ID3v1 + + $lyrics3size = $lyrics3lsz + 6 + strlen('LYRICS200'); // LSZ = lyrics + 'LYRICSBEGIN'; add 6-byte size field; add 'LYRICS200' + $lyrics3offset = $ThisFileInfo['ape']['tag_offset_start'] - $lyrics3size; + $lyrics3version = 2; + $ThisFileInfo['warning'][] = 'APE tag located after Lyrics3, will probably break Lyrics3 compatability'; + + } + + } + + } + + if (isset($lyrics3offset)) { + $ThisFileInfo['avdataend'] = $lyrics3offset; + $this->getLyrics3Data($ThisFileInfo, $fd, $lyrics3offset, $lyrics3version, $lyrics3size); + + if (!isset($ThisFileInfo['ape'])) { + $GETID3_ERRORARRAY = &$ThisFileInfo['warning']; + if (getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.apetag.php', __FILE__, false)) { + $tag = new getid3_apetag($fd, $ThisFileInfo, $ThisFileInfo['lyrics3']['tag_offset_start']); + } + } + + } + + return true; + } + + function getLyrics3Data(&$ThisFileInfo, &$fd, $endoffset, $version, $length) { + // http://www.volweb.cz/str/tags.htm + + fseek($fd, $endoffset, SEEK_SET); + if ($length <= 0) { + return false; + } + $rawdata = fread($fd, $length); + + if (substr($rawdata, 0, 11) != 'LYRICSBEGIN') { + if (strpos($rawdata, 'LYRICSBEGIN') !== false) { + + $ThisFileInfo['warning'][] = '"LYRICSBEGIN" expected at '.$endoffset.' but actually found at '.($endoffset + strpos($rawdata, 'LYRICSBEGIN')).' - this is invalid for Lyrics3 v'.$version; + $ThisFileInfo['avdataend'] = $endoffset + strpos($rawdata, 'LYRICSBEGIN'); + $ParsedLyrics3['tag_offset_start'] = $ThisFileInfo['avdataend']; + $rawdata = substr($rawdata, strpos($rawdata, 'LYRICSBEGIN')); + $length = strlen($rawdata); + + } else { + + $ThisFileInfo['error'][] = '"LYRICSBEGIN" expected at '.$endoffset.' but found "'.substr($rawdata, 0, 11).'" instead'; + return false; + + } + + } + + $ParsedLyrics3['raw']['lyrics3version'] = $version; + $ParsedLyrics3['raw']['lyrics3tagsize'] = $length; + $ParsedLyrics3['tag_offset_start'] = $endoffset; + $ParsedLyrics3['tag_offset_end'] = $endoffset + $length; + + switch ($version) { + + case 1: + if (substr($rawdata, strlen($rawdata) - 9, 9) == 'LYRICSEND') { + $ParsedLyrics3['raw']['LYR'] = trim(substr($rawdata, 11, strlen($rawdata) - 11 - 9)); + $this->Lyrics3LyricsTimestampParse($ParsedLyrics3); + } else { + $ThisFileInfo['error'][] = '"LYRICSEND" expected at '.(ftell($fd) - 11 + $length - 9).' but found "'.substr($rawdata, strlen($rawdata) - 9, 9).'" instead'; + return false; + } + break; + + case 2: + if (substr($rawdata, strlen($rawdata) - 9, 9) == 'LYRICS200') { + $ParsedLyrics3['raw']['unparsed'] = substr($rawdata, 11, strlen($rawdata) - 11 - 9 - 6); // LYRICSBEGIN + LYRICS200 + LSZ + $rawdata = $ParsedLyrics3['raw']['unparsed']; + while (strlen($rawdata) > 0) { + $fieldname = substr($rawdata, 0, 3); + $fieldsize = (int) substr($rawdata, 3, 5); + $ParsedLyrics3['raw'][$fieldname] = substr($rawdata, 8, $fieldsize); + $rawdata = substr($rawdata, 3 + 5 + $fieldsize); + } + + if (isset($ParsedLyrics3['raw']['IND'])) { + $i = 0; + $flagnames = array('lyrics', 'timestamps', 'inhibitrandom'); + foreach ($flagnames as $flagname) { + if (strlen($ParsedLyrics3['raw']['IND']) > ++$i) { + $ParsedLyrics3['flags'][$flagname] = $this->IntString2Bool(substr($ParsedLyrics3['raw']['IND'], $i, 1)); + } + } + } + + $fieldnametranslation = array('ETT'=>'title', 'EAR'=>'artist', 'EAL'=>'album', 'INF'=>'comment', 'AUT'=>'author'); + foreach ($fieldnametranslation as $key => $value) { + if (isset($ParsedLyrics3['raw'][$key])) { + $ParsedLyrics3['comments'][$value][] = trim($ParsedLyrics3['raw'][$key]); + } + } + + if (isset($ParsedLyrics3['raw']['IMG'])) { + $imagestrings = explode("\r\n", $ParsedLyrics3['raw']['IMG']); + foreach ($imagestrings as $key => $imagestring) { + if (strpos($imagestring, '||') !== false) { + $imagearray = explode('||', $imagestring); + $ParsedLyrics3['images'][$key]['filename'] = $imagearray[0]; + $ParsedLyrics3['images'][$key]['description'] = $imagearray[1]; + $ParsedLyrics3['images'][$key]['timestamp'] = $this->Lyrics3Timestamp2Seconds($imagearray[2]); + } + } + } + if (isset($ParsedLyrics3['raw']['LYR'])) { + $this->Lyrics3LyricsTimestampParse($ParsedLyrics3); + } + } else { + $ThisFileInfo['error'][] = '"LYRICS200" expected at '.(ftell($fd) - 11 + $length - 9).' but found "'.substr($rawdata, strlen($rawdata) - 9, 9).'" instead'; + return false; + } + break; + + default: + $ThisFileInfo['error'][] = 'Cannot process Lyrics3 version '.$version.' (only v1 and v2)'; + return false; + break; + } + + + if (isset($ThisFileInfo['id3v1']['tag_offset_start']) && ($ThisFileInfo['id3v1']['tag_offset_start'] < $ParsedLyrics3['tag_offset_end'])) { + $ThisFileInfo['warning'][] = 'ID3v1 tag information ignored since it appears to be a false synch in Lyrics3 tag data'; + unset($ThisFileInfo['id3v1']); + foreach ($ThisFileInfo['warning'] as $key => $value) { + if ($value == 'Some ID3v1 fields do not use NULL characters for padding') { + unset($ThisFileInfo['warning'][$key]); + sort($ThisFileInfo['warning']); + break; + } + } + } + + $ThisFileInfo['lyrics3'] = $ParsedLyrics3; + + return true; + } + + function Lyrics3Timestamp2Seconds($rawtimestamp) { + if (ereg('^\\[([0-9]{2}):([0-9]{2})\\]$', $rawtimestamp, $regs)) { + return (int) (($regs[1] * 60) + $regs[2]); + } + return false; + } + + function Lyrics3LyricsTimestampParse(&$Lyrics3data) { + $lyricsarray = explode("\r\n", $Lyrics3data['raw']['LYR']); + foreach ($lyricsarray as $key => $lyricline) { + $regs = array(); + unset($thislinetimestamps); + while (ereg('^(\\[[0-9]{2}:[0-9]{2}\\])', $lyricline, $regs)) { + $thislinetimestamps[] = $this->Lyrics3Timestamp2Seconds($regs[0]); + $lyricline = str_replace($regs[0], '', $lyricline); + } + $notimestamplyricsarray[$key] = $lyricline; + if (isset($thislinetimestamps) && is_array($thislinetimestamps)) { + sort($thislinetimestamps); + foreach ($thislinetimestamps as $timestampkey => $timestamp) { + if (isset($Lyrics3data['synchedlyrics'][$timestamp])) { + // timestamps only have a 1-second resolution, it's possible that multiple lines + // could have the same timestamp, if so, append + $Lyrics3data['synchedlyrics'][$timestamp] .= "\r\n".$lyricline; + } else { + $Lyrics3data['synchedlyrics'][$timestamp] = $lyricline; + } + } + } + } + $Lyrics3data['unsynchedlyrics'] = implode("\r\n", $notimestamplyricsarray); + if (isset($Lyrics3data['synchedlyrics']) && is_array($Lyrics3data['synchedlyrics'])) { + ksort($Lyrics3data['synchedlyrics']); + } + return true; + } + + function IntString2Bool($char) { + if ($char == '1') { + return true; + } elseif ($char == '0') { + return false; + } + return null; + } +} + + +?> \ No newline at end of file diff --git a/data/flash/write.apetag.php b/data/flash/write.apetag.php new file mode 100644 index 0000000..189160a --- /dev/null +++ b/data/flash/write.apetag.php @@ -0,0 +1,228 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +// // +// write.apetag.php // +// module for writing APE tags // +// dependencies: module.tag.apetag.php // +// /// +///////////////////////////////////////////////////////////////// + + +getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.apetag.php', __FILE__, true); + +class getid3_write_apetag +{ + + var $filename; + var $tag_data; + var $always_preserve_replaygain = true; // ReplayGain / MP3gain tags will be copied from old tag even if not passed in data + var $warnings = array(); // any non-critical errors will be stored here + var $errors = array(); // any critical errors will be stored here + + function getid3_write_apetag() { + return true; + } + + function WriteAPEtag() { + // NOTE: All data passed to this function must be UTF-8 format + + $getID3 = new getID3; + $ThisFileInfo = $getID3->analyze($this->filename); + + if (isset($ThisFileInfo['ape']['tag_offset_start']) && isset($ThisFileInfo['lyrics3']['tag_offset_end'])) { + if ($ThisFileInfo['ape']['tag_offset_start'] >= $ThisFileInfo['lyrics3']['tag_offset_end']) { + // Current APE tag between Lyrics3 and ID3v1/EOF + // This break Lyrics3 functionality + if (!$this->DeleteAPEtag()) { + return false; + } + $ThisFileInfo = $getID3->analyze($this->filename); + } + } + + if ($this->always_preserve_replaygain) { + $ReplayGainTagsToPreserve = array('mp3gain_minmax', 'mp3gain_album_minmax', 'mp3gain_undo', 'replaygain_track_peak', 'replaygain_track_gain', 'replaygain_album_peak', 'replaygain_album_gain'); + foreach ($ReplayGainTagsToPreserve as $rg_key) { + if (isset($ThisFileInfo['ape']['items'][strtolower($rg_key)]['data'][0]) && !isset($this->tag_data[strtoupper($rg_key)][0])) { + $this->tag_data[strtoupper($rg_key)][0] = $ThisFileInfo['ape']['items'][strtolower($rg_key)]['data'][0]; + } + } + } + + if ($APEtag = $this->GenerateAPEtag()) { + if ($fp = @fopen($this->filename, 'a+b')) { + $oldignoreuserabort = ignore_user_abort(true); + flock($fp, LOCK_EX); + + $PostAPEdataOffset = $ThisFileInfo['avdataend']; + if (isset($ThisFileInfo['ape']['tag_offset_end'])) { + $PostAPEdataOffset = max($PostAPEdataOffset, $ThisFileInfo['ape']['tag_offset_end']); + } + if (isset($ThisFileInfo['lyrics3']['tag_offset_start'])) { + $PostAPEdataOffset = max($PostAPEdataOffset, $ThisFileInfo['lyrics3']['tag_offset_start']); + } + fseek($fp, $PostAPEdataOffset, SEEK_SET); + $PostAPEdata = ''; + if ($ThisFileInfo['filesize'] > $PostAPEdataOffset) { + $PostAPEdata = fread($fp, $ThisFileInfo['filesize'] - $PostAPEdataOffset); + } + + fseek($fp, $PostAPEdataOffset, SEEK_SET); + if (isset($ThisFileInfo['ape']['tag_offset_start'])) { + fseek($fp, $ThisFileInfo['ape']['tag_offset_start'], SEEK_SET); + } + ftruncate($fp, ftell($fp)); + fwrite($fp, $APEtag, strlen($APEtag)); + if (!empty($PostAPEdata)) { + fwrite($fp, $PostAPEdata, strlen($PostAPEdata)); + } + flock($fp, LOCK_UN); + fclose($fp); + ignore_user_abort($oldignoreuserabort); + return true; + + } + return false; + } + return false; + } + + function DeleteAPEtag() { + $getID3 = new getID3; + $ThisFileInfo = $getID3->analyze($this->filename); + if (isset($ThisFileInfo['ape']['tag_offset_start']) && isset($ThisFileInfo['ape']['tag_offset_end'])) { + if ($fp = @fopen($this->filename, 'a+b')) { + + flock($fp, LOCK_EX); + $oldignoreuserabort = ignore_user_abort(true); + + fseek($fp, $ThisFileInfo['ape']['tag_offset_end'], SEEK_SET); + $DataAfterAPE = ''; + if ($ThisFileInfo['filesize'] > $ThisFileInfo['ape']['tag_offset_end']) { + $DataAfterAPE = fread($fp, $ThisFileInfo['filesize'] - $ThisFileInfo['ape']['tag_offset_end']); + } + + ftruncate($fp, $ThisFileInfo['ape']['tag_offset_start']); + fseek($fp, $ThisFileInfo['ape']['tag_offset_start'], SEEK_SET); + + if (!empty($DataAfterAPE)) { + fwrite($fp, $DataAfterAPE, strlen($DataAfterAPE)); + } + + flock($fp, LOCK_UN); + fclose($fp); + ignore_user_abort($oldignoreuserabort); + + return true; + + } + return false; + } + return true; + } + + + function GenerateAPEtag() { + // NOTE: All data passed to this function must be UTF-8 format + + $items = array(); + if (!is_array($this->tag_data)) { + return false; + } + foreach ($this->tag_data as $key => $arrayofvalues) { + if (!is_array($arrayofvalues)) { + return false; + } + + $valuestring = ''; + foreach ($arrayofvalues as $value) { + $valuestring .= str_replace("\x00", '', $value)."\x00"; + } + $valuestring = rtrim($valuestring, "\x00"); + + // Length of the assigned value in bytes + $tagitem = getid3_lib::LittleEndian2String(strlen($valuestring), 4); + + //$tagitem .= $this->GenerateAPEtagFlags(true, true, false, 0, false); + $tagitem .= "\x00\x00\x00\x00"; + + $tagitem .= $this->CleanAPEtagItemKey($key)."\x00"; + $tagitem .= $valuestring; + + $items[] = $tagitem; + + } + + return $this->GenerateAPEtagHeaderFooter($items, true).implode('', $items).$this->GenerateAPEtagHeaderFooter($items, false); + } + + function GenerateAPEtagHeaderFooter(&$items, $isheader=false) { + $tagdatalength = 0; + foreach ($items as $itemdata) { + $tagdatalength += strlen($itemdata); + } + + $APEheader = 'APETAGEX'; + $APEheader .= getid3_lib::LittleEndian2String(2000, 4); + $APEheader .= getid3_lib::LittleEndian2String(32 + $tagdatalength, 4); + $APEheader .= getid3_lib::LittleEndian2String(count($items), 4); + $APEheader .= $this->GenerateAPEtagFlags(true, true, $isheader, 0, false); + $APEheader .= str_repeat("\x00", 8); + + return $APEheader; + } + + function GenerateAPEtagFlags($header=true, $footer=true, $isheader=false, $encodingid=0, $readonly=false) { + $APEtagFlags = array_fill(0, 4, 0); + if ($header) { + $APEtagFlags[0] |= 0x80; // Tag contains a header + } + if (!$footer) { + $APEtagFlags[0] |= 0x40; // Tag contains no footer + } + if ($isheader) { + $APEtagFlags[0] |= 0x20; // This is the header, not the footer + } + + // 0: Item contains text information coded in UTF-8 + // 1: Item contains binary information ) + // 2: Item is a locator of external stored information ) + // 3: reserved + $APEtagFlags[3] |= ($encodingid << 1); + + if ($readonly) { + $APEtagFlags[3] |= 0x01; // Tag or Item is Read Only + } + + return chr($APEtagFlags[3]).chr($APEtagFlags[2]).chr($APEtagFlags[1]).chr($APEtagFlags[0]); + } + + function CleanAPEtagItemKey($itemkey) { + $itemkey = eregi_replace("[^\x20-\x7E]", '', $itemkey); + + // http://www.personal.uni-jena.de/~pfk/mpp/sv8/apekey.html + switch (strtoupper($itemkey)) { + case 'EAN/UPC': + case 'ISBN': + case 'LC': + case 'ISRC': + $itemkey = strtoupper($itemkey); + break; + + default: + $itemkey = ucwords($itemkey); + break; + } + return $itemkey; + + } + +} + +?> \ No newline at end of file diff --git a/data/flash/write.id3v1.php b/data/flash/write.id3v1.php new file mode 100644 index 0000000..2125214 --- /dev/null +++ b/data/flash/write.id3v1.php @@ -0,0 +1,104 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +// // +// write.id3v1.php // +// module for writing ID3v1 tags // +// dependencies: module.tag.id3v1.php // +// /// +///////////////////////////////////////////////////////////////// + +getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v1.php', __FILE__, true); + +class getid3_write_id3v1 +{ + var $filename; + var $tag_data; + var $warnings = array(); // any non-critical errors will be stored here + var $errors = array(); // any critical errors will be stored here + + function getid3_write_id3v1() { + return true; + } + + function WriteID3v1() { + // File MUST be writeable - CHMOD(646) at least + if (is_writeable($this->filename)) { + if ($fp_source = @fopen($this->filename, 'r+b')) { + + fseek($fp_source, -128, SEEK_END); + if (fread($fp_source, 3) == 'TAG') { + fseek($fp_source, -128, SEEK_END); // overwrite existing ID3v1 tag + } else { + fseek($fp_source, 0, SEEK_END); // append new ID3v1 tag + } + + $new_id3v1_tag_data = getid3_id3v1::GenerateID3v1Tag( + @$this->tag_data['title'], + @$this->tag_data['artist'], + @$this->tag_data['album'], + @$this->tag_data['year'], + @$this->tag_data['genreid'], + @$this->tag_data['comment'], + @$this->tag_data['track']); + fwrite($fp_source, $new_id3v1_tag_data, 128); + fclose($fp_source); + return true; + + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "r+b"'; + return false; + } + } + $this->errors[] = 'File is not writeable: '.$this->filename; + return false; + } + + function FixID3v1Padding() { + // ID3v1 data is supposed to be padded with NULL characters, but some taggers incorrectly use spaces + // This function rewrites the ID3v1 tag with correct padding + + // Initialize getID3 engine + $getID3 = new getID3; + $ThisFileInfo = $getID3->analyze($this->filename); + if (isset($ThisFileInfo['tags']['id3v1'])) { + foreach ($ThisFileInfo['tags']['id3v1'] as $key => $value) { + $id3v1data[$key] = implode(',', $value); + } + $this->tag_data = $id3v1data; + return $this->WriteID3v1(); + } + return false; + } + + function RemoveID3v1() { + // File MUST be writeable - CHMOD(646) at least + if (is_writeable($this->filename)) { + if ($fp_source = @fopen($this->filename, 'r+b')) { + + fseek($fp_source, -128, SEEK_END); + if (fread($fp_source, 3) == 'TAG') { + ftruncate($fp_source, filesize($this->filename) - 128); + } else { + // no ID3v1 tag to begin with - do nothing + } + fclose($fp_source); + return true; + + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "r+b"'; + } + } else { + $this->errors[] = $this->filename.' is not writeable'; + } + return false; + } + +} + +?> \ No newline at end of file diff --git a/data/flash/write.id3v2.php b/data/flash/write.id3v2.php new file mode 100644 index 0000000..52398fb --- /dev/null +++ b/data/flash/write.id3v2.php @@ -0,0 +1,2038 @@ + // +// available at http://getid3.sourceforge.net // +// or http://www.getid3.org // +///////////////////////////////////////////////////////////////// +// See readme.txt for more details // +///////////////////////////////////////////////////////////////// +/// // +// write.id3v2.php // +// module for writing ID3v2 tags // +// dependencies: module.tag.id3v2.php // +// /// +///////////////////////////////////////////////////////////////// + +getid3_lib::IncludeDependency(GETID3_INCLUDEPATH.'module.tag.id3v2.php', __FILE__, true); + +class getid3_write_id3v2 +{ + var $filename; + var $tag_data; + var $paddedlength = 4096; // minimum length of ID3v2 tag in bytes + var $majorversion = 3; // ID3v2 major version (2, 3 (recommended), 4) + var $minorversion = 0; // ID3v2 minor version - always 0 + var $merge_existing_data = false; // if true, merge new data with existing tags; if false, delete old tag data and only write new tags + var $id3v2_default_encodingid = 0; // default text encoding (ISO-8859-1) if not explicitly passed + var $id3v2_use_unsynchronisation = false; // the specs say it should be TRUE, but most other ID3v2-aware programs are broken if unsynchronization is used, so by default don't use it. + var $warnings = array(); // any non-critical errors will be stored here + var $errors = array(); // any critical errors will be stored here + + function getid3_write_id3v2() { + return true; + } + + function WriteID3v2() { + // File MUST be writeable - CHMOD(646) at least. It's best if the + // directory is also writeable, because that method is both faster and less susceptible to errors. + + if (is_writeable($this->filename) || (!file_exists($this->filename) && is_writeable(dirname($this->filename)))) { + // Initialize getID3 engine + $getID3 = new getID3; + $OldThisFileInfo = $getID3->analyze($this->filename); + if ($this->merge_existing_data) { + // merge with existing data + if (!empty($OldThisFileInfo['id3v2'])) { + $this->tag_data = $this->array_join_merge($OldThisFileInfo['id3v2'], $this->tag_data); + } + } + $this->paddedlength = max(@$OldThisFileInfo['id3v2']['headerlength'], $this->paddedlength); + + if ($NewID3v2Tag = $this->GenerateID3v2Tag()) { + + if (file_exists($this->filename) && is_writeable($this->filename) && isset($OldThisFileInfo['id3v2']['headerlength']) && ($OldThisFileInfo['id3v2']['headerlength'] == strlen($NewID3v2Tag))) { + + // best and fastest method - insert-overwrite existing tag (padded to length of old tag if neccesary) + if (file_exists($this->filename)) { + + ob_start(); + if ($fp = fopen($this->filename, 'r+b')) { + rewind($fp); + fwrite($fp, $NewID3v2Tag, strlen($NewID3v2Tag)); + fclose($fp); + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "r+b" - '.strip_tags(ob_get_contents()); + } + ob_end_clean(); + + } else { + + ob_start(); + if ($fp = fopen($this->filename, 'wb')) { + rewind($fp); + fwrite($fp, $NewID3v2Tag, strlen($NewID3v2Tag)); + fclose($fp); + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "wb" - '.strip_tags(ob_get_contents()); + } + ob_end_clean(); + + } + + } else { + + if ($tempfilename = tempnam('*', 'getID3')) { + ob_start(); + if ($fp_source = fopen($this->filename, 'rb')) { + if ($fp_temp = fopen($tempfilename, 'wb')) { + + fwrite($fp_temp, $NewID3v2Tag, strlen($NewID3v2Tag)); + + rewind($fp_source); + if (!empty($OldThisFileInfo['avdataoffset'])) { + fseek($fp_source, $OldThisFileInfo['avdataoffset'], SEEK_SET); + } + + while ($buffer = fread($fp_source, GETID3_FREAD_BUFFER_SIZE)) { + fwrite($fp_temp, $buffer, strlen($buffer)); + } + + fclose($fp_temp); + fclose($fp_source); + copy($tempfilename, $this->filename); + unlink($tempfilename); + ob_end_clean(); + return true; + + } else { + + $this->errors[] = 'Could not open '.$tempfilename.' mode "wb" - '.strip_tags(ob_get_contents()); + + } + fclose($fp_source); + + } else { + + $this->errors[] = 'Could not open '.$this->filename.' mode "rb" - '.strip_tags(ob_get_contents()); + + } + ob_end_clean(); + } + return false; + + } + + } else { + + $this->errors[] = '$this->GenerateID3v2Tag() failed'; + + } + + if (!empty($this->errors)) { + return false; + } + return true; + } else { + $this->errors[] = '!is_writeable('.$this->filename.')'; + } + return false; + } + + function RemoveID3v2() { + + // File MUST be writeable - CHMOD(646) at least. It's best if the + // directory is also writeable, because that method is both faster and less susceptible to errors. + if (is_writeable(dirname($this->filename))) { + + // preferred method - only one copying operation, minimal chance of corrupting + // original file if script is interrupted, but required directory to be writeable + if ($fp_source = @fopen($this->filename, 'rb')) { + // Initialize getID3 engine + $getID3 = new getID3; + $OldThisFileInfo = $getID3->analyze($this->filename); + rewind($fp_source); + if ($OldThisFileInfo['avdataoffset'] !== false) { + fseek($fp_source, $OldThisFileInfo['avdataoffset'], SEEK_SET); + } + if ($fp_temp = @fopen($this->filename.'getid3tmp', 'w+b')) { + while ($buffer = fread($fp_source, GETID3_FREAD_BUFFER_SIZE)) { + fwrite($fp_temp, $buffer, strlen($buffer)); + } + fclose($fp_temp); + } else { + $this->errors[] = 'Could not open '.$this->filename.'getid3tmp mode "w+b"'; + } + fclose($fp_source); + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "rb"'; + } + if (file_exists($this->filename)) { + unlink($this->filename); + } + rename($this->filename.'getid3tmp', $this->filename); + + } elseif (is_writable($this->filename)) { + + // less desirable alternate method - double-copies the file, overwrites original file + // and could corrupt source file if the script is interrupted or an error occurs. + if ($fp_source = @fopen($this->filename, 'rb')) { + // Initialize getID3 engine + $getID3 = new getID3; + $OldThisFileInfo = $getID3->analyze($this->filename); + rewind($fp_source); + if ($OldThisFileInfo['avdataoffset'] !== false) { + fseek($fp_source, $OldThisFileInfo['avdataoffset'], SEEK_SET); + } + if ($fp_temp = tmpfile()) { + while ($buffer = fread($fp_source, GETID3_FREAD_BUFFER_SIZE)) { + fwrite($fp_temp, $buffer, strlen($buffer)); + } + fclose($fp_source); + if ($fp_source = @fopen($this->filename, 'wb')) { + rewind($fp_temp); + while ($buffer = fread($fp_temp, GETID3_FREAD_BUFFER_SIZE)) { + fwrite($fp_source, $buffer, strlen($buffer)); + } + fseek($fp_temp, -128, SEEK_END); + fclose($fp_source); + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "wb"'; + } + fclose($fp_temp); + } else { + $this->errors[] = 'Could not create tmpfile()'; + } + } else { + $this->errors[] = 'Could not open '.$this->filename.' mode "rb"'; + } + + } else { + + $this->errors[] = 'Directory and file both not writeable'; + + } + + if (!empty($this->errors)) { + return false; + } + return true; + } + + + function GenerateID3v2TagFlags($flags) { + switch ($this->majorversion) { + case 4: + // %abcd0000 + $flag = (@$flags['unsynchronisation'] ? '1' : '0'); // a - Unsynchronisation + $flag .= (@$flags['extendedheader'] ? '1' : '0'); // b - Extended header + $flag .= (@$flags['experimental'] ? '1' : '0'); // c - Experimental indicator + $flag .= (@$flags['footer'] ? '1' : '0'); // d - Footer present + $flag .= '0000'; + break; + + case 3: + // %abc00000 + $flag = (@$flags['unsynchronisation'] ? '1' : '0'); // a - Unsynchronisation + $flag .= (@$flags['extendedheader'] ? '1' : '0'); // b - Extended header + $flag .= (@$flags['experimental'] ? '1' : '0'); // c - Experimental indicator + $flag .= '00000'; + break; + + case 2: + // %ab000000 + $flag = (@$flags['unsynchronisation'] ? '1' : '0'); // a - Unsynchronisation + $flag .= (@$flags['compression'] ? '1' : '0'); // b - Compression + $flag .= '000000'; + break; + + default: + return false; + break; + } + return chr(bindec($flag)); + } + + + function GenerateID3v2FrameFlags($TagAlter=false, $FileAlter=false, $ReadOnly=false, $Compression=false, $Encryption=false, $GroupingIdentity=false, $Unsynchronisation=false, $DataLengthIndicator=false) { + switch ($this->majorversion) { + case 4: + // %0abc0000 %0h00kmnp + $flag1 = '0'; + $flag1 .= $TagAlter ? '1' : '0'; // a - Tag alter preservation (true == discard) + $flag1 .= $FileAlter ? '1' : '0'; // b - File alter preservation (true == discard) + $flag1 .= $ReadOnly ? '1' : '0'; // c - Read only (true == read only) + $flag1 .= '0000'; + + $flag2 = '0'; + $flag2 .= $GroupingIdentity ? '1' : '0'; // h - Grouping identity (true == contains group information) + $flag2 .= '00'; + $flag2 .= $Compression ? '1' : '0'; // k - Compression (true == compressed) + $flag2 .= $Encryption ? '1' : '0'; // m - Encryption (true == encrypted) + $flag2 .= $Unsynchronisation ? '1' : '0'; // n - Unsynchronisation (true == unsynchronised) + $flag2 .= $DataLengthIndicator ? '1' : '0'; // p - Data length indicator (true == data length indicator added) + break; + + case 3: + // %abc00000 %ijk00000 + $flag1 = $TagAlter ? '1' : '0'; // a - Tag alter preservation (true == discard) + $flag1 .= $FileAlter ? '1' : '0'; // b - File alter preservation (true == discard) + $flag1 .= $ReadOnly ? '1' : '0'; // c - Read only (true == read only) + $flag1 .= '00000'; + + $flag2 = $Compression ? '1' : '0'; // i - Compression (true == compressed) + $flag2 .= $Encryption ? '1' : '0'; // j - Encryption (true == encrypted) + $flag2 .= $GroupingIdentity ? '1' : '0'; // k - Grouping identity (true == contains group information) + $flag2 .= '00000'; + break; + + default: + return false; + break; + + } + return chr(bindec($flag1)).chr(bindec($flag2)); + } + + function GenerateID3v2FrameData($frame_name, $source_data_array) { + if (!getid3_id3v2::IsValidID3v2FrameName($frame_name, $this->majorversion)) { + return false; + } + $framedata = ''; + + if (($this->majorversion < 3) || ($this->majorversion > 4)) { + + $this->errors[] = 'Only ID3v2.3 and ID3v2.4 are supported in GenerateID3v2FrameData()'; + + } else { // $this->majorversion 3 or 4 + + switch ($frame_name) { + case 'UFID': + // 4.1 UFID Unique file identifier + // Owner identifier $00 + // Identifier + if (strlen($source_data_array['data']) > 64) { + $this->errors[] = 'Identifier not allowed to be longer than 64 bytes in '.$frame_name.' (supplied data was '.strlen($source_data_array['data']).' bytes long)'; + } else { + $framedata .= str_replace("\x00", '', $source_data_array['ownerid'])."\x00"; + $framedata .= substr($source_data_array['data'], 0, 64); // max 64 bytes - truncate anything longer + } + break; + + case 'TXXX': + // 4.2.2 TXXX User defined text information frame + // Text encoding $xx + // Description $00 (00) + // Value + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'], $this->majorversion)) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'WXXX': + // 4.3.2 WXXX User defined URL link frame + // Text encoding $xx + // Description $00 (00) + // URL + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'], $this->majorversion)) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } elseif (!isset($source_data_array['data']) || !$this->IsValidURL($source_data_array['data'], false, false)) { + //$this->errors[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + // probably should be an error, need to rewrite IsValidURL() to handle other encodings + $this->warnings[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'IPLS': + // 4.4 IPLS Involved people list (ID3v2.3 only) + // Text encoding $xx + // People list strings + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'], $this->majorversion)) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'MCDI': + // 4.4 MCDI Music CD identifier + // CD TOC + $framedata .= $source_data_array['data']; + break; + + case 'ETCO': + // 4.5 ETCO Event timing codes + // Time stamp format $xx + // Where time stamp format is: + // $01 (32-bit value) MPEG frames from beginning of file + // $02 (32-bit value) milliseconds from beginning of file + // Followed by a list of key events in the following format: + // Type of event $xx + // Time stamp $xx (xx ...) + // The 'Time stamp' is set to zero if directly at the beginning of the sound + // or after the previous event. All events MUST be sorted in chronological order. + if (($source_data_array['timestampformat'] > 2) || ($source_data_array['timestampformat'] < 1)) { + $this->errors[] = 'Invalid Time Stamp Format byte in '.$frame_name.' ('.$source_data_array['timestampformat'].')'; + } else { + $framedata .= chr($source_data_array['timestampformat']); + foreach ($source_data_array as $key => $val) { + if (!$this->ID3v2IsValidETCOevent($val['typeid'])) { + $this->errors[] = 'Invalid Event Type byte in '.$frame_name.' ('.$val['typeid'].')'; + } elseif (($key != 'timestampformat') && ($key != 'flags')) { + if (($val['timestamp'] > 0) && ($previousETCOtimestamp >= $val['timestamp'])) { + // The 'Time stamp' is set to zero if directly at the beginning of the sound + // or after the previous event. All events MUST be sorted in chronological order. + $this->errors[] = 'Out-of-order timestamp in '.$frame_name.' ('.$val['timestamp'].') for Event Type ('.$val['typeid'].')'; + } else { + $framedata .= chr($val['typeid']); + $framedata .= getid3_lib::BigEndian2String($val['timestamp'], 4, false); + } + } + } + } + break; + + case 'MLLT': + // 4.6 MLLT MPEG location lookup table + // MPEG frames between reference $xx xx + // Bytes between reference $xx xx xx + // Milliseconds between reference $xx xx xx + // Bits for bytes deviation $xx + // Bits for milliseconds dev. $xx + // Then for every reference the following data is included; + // Deviation in bytes %xxx.... + // Deviation in milliseconds %xxx.... + if (($source_data_array['framesbetweenreferences'] > 0) && ($source_data_array['framesbetweenreferences'] <= 65535)) { + $framedata .= getid3_lib::BigEndian2String($source_data_array['framesbetweenreferences'], 2, false); + } else { + $this->errors[] = 'Invalid MPEG Frames Between References in '.$frame_name.' ('.$source_data_array['framesbetweenreferences'].')'; + } + if (($source_data_array['bytesbetweenreferences'] > 0) && ($source_data_array['bytesbetweenreferences'] <= 16777215)) { + $framedata .= getid3_lib::BigEndian2String($source_data_array['bytesbetweenreferences'], 3, false); + } else { + $this->errors[] = 'Invalid bytes Between References in '.$frame_name.' ('.$source_data_array['bytesbetweenreferences'].')'; + } + if (($source_data_array['msbetweenreferences'] > 0) && ($source_data_array['msbetweenreferences'] <= 16777215)) { + $framedata .= getid3_lib::BigEndian2String($source_data_array['msbetweenreferences'], 3, false); + } else { + $this->errors[] = 'Invalid Milliseconds Between References in '.$frame_name.' ('.$source_data_array['msbetweenreferences'].')'; + } + if (!$this->IsWithinBitRange($source_data_array['bitsforbytesdeviation'], 8, false)) { + if (($source_data_array['bitsforbytesdeviation'] % 4) == 0) { + $framedata .= chr($source_data_array['bitsforbytesdeviation']); + } else { + $this->errors[] = 'Bits For Bytes Deviation in '.$frame_name.' ('.$source_data_array['bitsforbytesdeviation'].') must be a multiple of 4.'; + } + } else { + $this->errors[] = 'Invalid Bits For Bytes Deviation in '.$frame_name.' ('.$source_data_array['bitsforbytesdeviation'].')'; + } + if (!$this->IsWithinBitRange($source_data_array['bitsformsdeviation'], 8, false)) { + if (($source_data_array['bitsformsdeviation'] % 4) == 0) { + $framedata .= chr($source_data_array['bitsformsdeviation']); + } else { + $this->errors[] = 'Bits For Milliseconds Deviation in '.$frame_name.' ('.$source_data_array['bitsforbytesdeviation'].') must be a multiple of 4.'; + } + } else { + $this->errors[] = 'Invalid Bits For Milliseconds Deviation in '.$frame_name.' ('.$source_data_array['bitsformsdeviation'].')'; + } + foreach ($source_data_array as $key => $val) { + if (($key != 'framesbetweenreferences') && ($key != 'bytesbetweenreferences') && ($key != 'msbetweenreferences') && ($key != 'bitsforbytesdeviation') && ($key != 'bitsformsdeviation') && ($key != 'flags')) { + $unwrittenbitstream .= str_pad(getid3_lib::Dec2Bin($val['bytedeviation']), $source_data_array['bitsforbytesdeviation'], '0', STR_PAD_LEFT); + $unwrittenbitstream .= str_pad(getid3_lib::Dec2Bin($val['msdeviation']), $source_data_array['bitsformsdeviation'], '0', STR_PAD_LEFT); + } + } + for ($i = 0; $i < strlen($unwrittenbitstream); $i += 8) { + $highnibble = bindec(substr($unwrittenbitstream, $i, 4)) << 4; + $lownibble = bindec(substr($unwrittenbitstream, $i + 4, 4)); + $framedata .= chr($highnibble & $lownibble); + } + break; + + case 'SYTC': + // 4.7 SYTC Synchronised tempo codes + // Time stamp format $xx + // Tempo data + // Where time stamp format is: + // $01 (32-bit value) MPEG frames from beginning of file + // $02 (32-bit value) milliseconds from beginning of file + if (($source_data_array['timestampformat'] > 2) || ($source_data_array['timestampformat'] < 1)) { + $this->errors[] = 'Invalid Time Stamp Format byte in '.$frame_name.' ('.$source_data_array['timestampformat'].')'; + } else { + $framedata .= chr($source_data_array['timestampformat']); + foreach ($source_data_array as $key => $val) { + if (!$this->ID3v2IsValidETCOevent($val['typeid'])) { + $this->errors[] = 'Invalid Event Type byte in '.$frame_name.' ('.$val['typeid'].')'; + } elseif (($key != 'timestampformat') && ($key != 'flags')) { + if (($val['tempo'] < 0) || ($val['tempo'] > 510)) { + $this->errors[] = 'Invalid Tempo (max = 510) in '.$frame_name.' ('.$val['tempo'].') at timestamp ('.$val['timestamp'].')'; + } else { + if ($val['tempo'] > 255) { + $framedata .= chr(255); + $val['tempo'] -= 255; + } + $framedata .= chr($val['tempo']); + $framedata .= getid3_lib::BigEndian2String($val['timestamp'], 4, false); + } + } + } + } + break; + + case 'USLT': + // 4.8 USLT Unsynchronised lyric/text transcription + // Text encoding $xx + // Language $xx xx xx + // Content descriptor $00 (00) + // Lyrics/text + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } elseif (getid3_id3v2::LanguageLookup($source_data_array['language'], true) == '') { + $this->errors[] = 'Invalid Language in '.$frame_name.' ('.$source_data_array['language'].')'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= strtolower($source_data_array['language']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'SYLT': + // 4.9 SYLT Synchronised lyric/text + // Text encoding $xx + // Language $xx xx xx + // Time stamp format $xx + // $01 (32-bit value) MPEG frames from beginning of file + // $02 (32-bit value) milliseconds from beginning of file + // Content type $xx + // Content descriptor $00 (00) + // Terminated text to be synced (typically a syllable) + // Sync identifier (terminator to above string) $00 (00) + // Time stamp $xx (xx ...) + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } elseif (getid3_id3v2::LanguageLookup($source_data_array['language'], true) == '') { + $this->errors[] = 'Invalid Language in '.$frame_name.' ('.$source_data_array['language'].')'; + } elseif (($source_data_array['timestampformat'] > 2) || ($source_data_array['timestampformat'] < 1)) { + $this->errors[] = 'Invalid Time Stamp Format byte in '.$frame_name.' ('.$source_data_array['timestampformat'].')'; + } elseif (!$this->ID3v2IsValidSYLTtype($source_data_array['contenttypeid'])) { + $this->errors[] = 'Invalid Content Type byte in '.$frame_name.' ('.$source_data_array['contenttypeid'].')'; + } elseif (!is_array($source_data_array['data'])) { + $this->errors[] = 'Invalid Lyric/Timestamp data in '.$frame_name.' (must be an array)'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= strtolower($source_data_array['language']); + $framedata .= chr($source_data_array['timestampformat']); + $framedata .= chr($source_data_array['contenttypeid']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + ksort($source_data_array['data']); + foreach ($source_data_array['data'] as $key => $val) { + $framedata .= $val['data'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= getid3_lib::BigEndian2String($val['timestamp'], 4, false); + } + } + break; + + case 'COMM': + // 4.10 COMM Comments + // Text encoding $xx + // Language $xx xx xx + // Short content descrip. $00 (00) + // The actual text + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } elseif (getid3_id3v2::LanguageLookup($source_data_array['language'], true) == '') { + $this->errors[] = 'Invalid Language in '.$frame_name.' ('.$source_data_array['language'].')'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= strtolower($source_data_array['language']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'RVA2': + // 4.11 RVA2 Relative volume adjustment (2) (ID3v2.4+ only) + // Identification $00 + // The 'identification' string is used to identify the situation and/or + // device where this adjustment should apply. The following is then + // repeated for every channel: + // Type of channel $xx + // Volume adjustment $xx xx + // Bits representing peak $xx + // Peak volume $xx (xx ...) + $framedata .= str_replace("\x00", '', $source_data_array['description'])."\x00"; + foreach ($source_data_array as $key => $val) { + if ($key != 'description') { + $framedata .= chr($val['channeltypeid']); + $framedata .= getid3_lib::BigEndian2String($val['volumeadjust'], 2, false, true); // signed 16-bit + if (!$this->IsWithinBitRange($source_data_array['bitspeakvolume'], 8, false)) { + $framedata .= chr($val['bitspeakvolume']); + if ($val['bitspeakvolume'] > 0) { + $framedata .= getid3_lib::BigEndian2String($val['peakvolume'], ceil($val['bitspeakvolume'] / 8), false, false); + } + } else { + $this->errors[] = 'Invalid Bits Representing Peak Volume in '.$frame_name.' ('.$val['bitspeakvolume'].') (range = 0 to 255)'; + } + } + } + break; + + case 'RVAD': + // 4.12 RVAD Relative volume adjustment (ID3v2.3 only) + // Increment/decrement %00fedcba + // Bits used for volume descr. $xx + // Relative volume change, right $xx xx (xx ...) // a + // Relative volume change, left $xx xx (xx ...) // b + // Peak volume right $xx xx (xx ...) + // Peak volume left $xx xx (xx ...) + // Relative volume change, right back $xx xx (xx ...) // c + // Relative volume change, left back $xx xx (xx ...) // d + // Peak volume right back $xx xx (xx ...) + // Peak volume left back $xx xx (xx ...) + // Relative volume change, center $xx xx (xx ...) // e + // Peak volume center $xx xx (xx ...) + // Relative volume change, bass $xx xx (xx ...) // f + // Peak volume bass $xx xx (xx ...) + if (!$this->IsWithinBitRange($source_data_array['bitsvolume'], 8, false)) { + $this->errors[] = 'Invalid Bits For Volume Description byte in '.$frame_name.' ('.$source_data_array['bitsvolume'].') (range = 1 to 255)'; + } else { + $incdecflag .= '00'; + $incdecflag .= $source_data_array['incdec']['right'] ? '1' : '0'; // a - Relative volume change, right + $incdecflag .= $source_data_array['incdec']['left'] ? '1' : '0'; // b - Relative volume change, left + $incdecflag .= $source_data_array['incdec']['rightrear'] ? '1' : '0'; // c - Relative volume change, right back + $incdecflag .= $source_data_array['incdec']['leftrear'] ? '1' : '0'; // d - Relative volume change, left back + $incdecflag .= $source_data_array['incdec']['center'] ? '1' : '0'; // e - Relative volume change, center + $incdecflag .= $source_data_array['incdec']['bass'] ? '1' : '0'; // f - Relative volume change, bass + $framedata .= chr(bindec($incdecflag)); + $framedata .= chr($source_data_array['bitsvolume']); + $framedata .= getid3_lib::BigEndian2String($source_data_array['volumechange']['right'], ceil($source_data_array['bitsvolume'] / 8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['volumechange']['left'], ceil($source_data_array['bitsvolume'] / 8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['peakvolume']['right'], ceil($source_data_array['bitsvolume'] / 8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['peakvolume']['left'], ceil($source_data_array['bitsvolume'] / 8), false); + if ($source_data_array['volumechange']['rightrear'] || $source_data_array['volumechange']['leftrear'] || + $source_data_array['peakvolume']['rightrear'] || $source_data_array['peakvolume']['leftrear'] || + $source_data_array['volumechange']['center'] || $source_data_array['peakvolume']['center'] || + $source_data_array['volumechange']['bass'] || $source_data_array['peakvolume']['bass']) { + $framedata .= getid3_lib::BigEndian2String($source_data_array['volumechange']['rightrear'], ceil($source_data_array['bitsvolume']/8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['volumechange']['leftrear'], ceil($source_data_array['bitsvolume']/8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['peakvolume']['rightrear'], ceil($source_data_array['bitsvolume']/8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['peakvolume']['leftrear'], ceil($source_data_array['bitsvolume']/8), false); + } + if ($source_data_array['volumechange']['center'] || $source_data_array['peakvolume']['center'] || + $source_data_array['volumechange']['bass'] || $source_data_array['peakvolume']['bass']) { + $framedata .= getid3_lib::BigEndian2String($source_data_array['volumechange']['center'], ceil($source_data_array['bitsvolume']/8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['peakvolume']['center'], ceil($source_data_array['bitsvolume']/8), false); + } + if ($source_data_array['volumechange']['bass'] || $source_data_array['peakvolume']['bass']) { + $framedata .= getid3_lib::BigEndian2String($source_data_array['volumechange']['bass'], ceil($source_data_array['bitsvolume']/8), false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['peakvolume']['bass'], ceil($source_data_array['bitsvolume']/8), false); + } + } + break; + + case 'EQU2': + // 4.12 EQU2 Equalisation (2) (ID3v2.4+ only) + // Interpolation method $xx + // $00 Band + // $01 Linear + // Identification $00 + // The following is then repeated for every adjustment point + // Frequency $xx xx + // Volume adjustment $xx xx + if (($source_data_array['interpolationmethod'] < 0) || ($source_data_array['interpolationmethod'] > 1)) { + $this->errors[] = 'Invalid Interpolation Method byte in '.$frame_name.' ('.$source_data_array['interpolationmethod'].') (valid = 0 or 1)'; + } else { + $framedata .= chr($source_data_array['interpolationmethod']); + $framedata .= str_replace("\x00", '', $source_data_array['description'])."\x00"; + foreach ($source_data_array['data'] as $key => $val) { + $framedata .= getid3_lib::BigEndian2String(intval(round($key * 2)), 2, false); + $framedata .= getid3_lib::BigEndian2String($val, 2, false, true); // signed 16-bit + } + } + break; + + case 'EQUA': + // 4.12 EQUA Equalisation (ID3v2.3 only) + // Adjustment bits $xx + // This is followed by 2 bytes + ('adjustment bits' rounded up to the + // nearest byte) for every equalisation band in the following format, + // giving a frequency range of 0 - 32767Hz: + // Increment/decrement %x (MSB of the Frequency) + // Frequency (lower 15 bits) + // Adjustment $xx (xx ...) + if (!$this->IsWithinBitRange($source_data_array['bitsvolume'], 8, false)) { + $this->errors[] = 'Invalid Adjustment Bits byte in '.$frame_name.' ('.$source_data_array['bitsvolume'].') (range = 1 to 255)'; + } else { + $framedata .= chr($source_data_array['adjustmentbits']); + foreach ($source_data_array as $key => $val) { + if ($key != 'bitsvolume') { + if (($key > 32767) || ($key < 0)) { + $this->errors[] = 'Invalid Frequency in '.$frame_name.' ('.$key.') (range = 0 to 32767)'; + } else { + if ($val >= 0) { + // put MSB of frequency to 1 if increment, 0 if decrement + $key |= 0x8000; + } + $framedata .= getid3_lib::BigEndian2String($key, 2, false); + $framedata .= getid3_lib::BigEndian2String($val, ceil($source_data_array['adjustmentbits'] / 8), false); + } + } + } + } + break; + + case 'RVRB': + // 4.13 RVRB Reverb + // Reverb left (ms) $xx xx + // Reverb right (ms) $xx xx + // Reverb bounces, left $xx + // Reverb bounces, right $xx + // Reverb feedback, left to left $xx + // Reverb feedback, left to right $xx + // Reverb feedback, right to right $xx + // Reverb feedback, right to left $xx + // Premix left to right $xx + // Premix right to left $xx + if (!$this->IsWithinBitRange($source_data_array['left'], 16, false)) { + $this->errors[] = 'Invalid Reverb Left in '.$frame_name.' ('.$source_data_array['left'].') (range = 0 to 65535)'; + } elseif (!$this->IsWithinBitRange($source_data_array['right'], 16, false)) { + $this->errors[] = 'Invalid Reverb Left in '.$frame_name.' ('.$source_data_array['right'].') (range = 0 to 65535)'; + } elseif (!$this->IsWithinBitRange($source_data_array['bouncesL'], 8, false)) { + $this->errors[] = 'Invalid Reverb Bounces, Left in '.$frame_name.' ('.$source_data_array['bouncesL'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['bouncesR'], 8, false)) { + $this->errors[] = 'Invalid Reverb Bounces, Right in '.$frame_name.' ('.$source_data_array['bouncesR'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['feedbackLL'], 8, false)) { + $this->errors[] = 'Invalid Reverb Feedback, Left-To-Left in '.$frame_name.' ('.$source_data_array['feedbackLL'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['feedbackLR'], 8, false)) { + $this->errors[] = 'Invalid Reverb Feedback, Left-To-Right in '.$frame_name.' ('.$source_data_array['feedbackLR'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['feedbackRR'], 8, false)) { + $this->errors[] = 'Invalid Reverb Feedback, Right-To-Right in '.$frame_name.' ('.$source_data_array['feedbackRR'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['feedbackRL'], 8, false)) { + $this->errors[] = 'Invalid Reverb Feedback, Right-To-Left in '.$frame_name.' ('.$source_data_array['feedbackRL'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['premixLR'], 8, false)) { + $this->errors[] = 'Invalid Premix, Left-To-Right in '.$frame_name.' ('.$source_data_array['premixLR'].') (range = 0 to 255)'; + } elseif (!$this->IsWithinBitRange($source_data_array['premixRL'], 8, false)) { + $this->errors[] = 'Invalid Premix, Right-To-Left in '.$frame_name.' ('.$source_data_array['premixRL'].') (range = 0 to 255)'; + } else { + $framedata .= getid3_lib::BigEndian2String($source_data_array['left'], 2, false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['right'], 2, false); + $framedata .= chr($source_data_array['bouncesL']); + $framedata .= chr($source_data_array['bouncesR']); + $framedata .= chr($source_data_array['feedbackLL']); + $framedata .= chr($source_data_array['feedbackLR']); + $framedata .= chr($source_data_array['feedbackRR']); + $framedata .= chr($source_data_array['feedbackRL']); + $framedata .= chr($source_data_array['premixLR']); + $framedata .= chr($source_data_array['premixRL']); + } + break; + + case 'APIC': + // 4.14 APIC Attached picture + // Text encoding $xx + // MIME type $00 + // Picture type $xx + // Description $00 (00) + // Picture data + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } elseif (!$this->ID3v2IsValidAPICpicturetype($source_data_array['picturetypeid'])) { + $this->errors[] = 'Invalid Picture Type byte in '.$frame_name.' ('.$source_data_array['picturetypeid'].') for ID3v2.'.$this->majorversion; + } elseif (($this->majorversion >= 3) && (!$this->ID3v2IsValidAPICimageformat($source_data_array['mime']))) { + $this->errors[] = 'Invalid MIME Type in '.$frame_name.' ('.$source_data_array['mime'].') for ID3v2.'.$this->majorversion; + } elseif (($source_data_array['mime'] == '-->') && (!$this->IsValidURL($source_data_array['data'], false, false))) { + //$this->errors[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + // probably should be an error, need to rewrite IsValidURL() to handle other encodings + $this->warnings[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= str_replace("\x00", '', $source_data_array['mime'])."\x00"; + $framedata .= chr($source_data_array['picturetypeid']); + $framedata .= @$source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'GEOB': + // 4.15 GEOB General encapsulated object + // Text encoding $xx + // MIME type $00 + // Filename $00 (00) + // Content description $00 (00) + // Encapsulated object + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } elseif (!$this->IsValidMIMEstring($source_data_array['mime'])) { + $this->errors[] = 'Invalid MIME Type in '.$frame_name.' ('.$source_data_array['mime'].')'; + } elseif (!$source_data_array['description']) { + $this->errors[] = 'Missing Description in '.$frame_name; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= str_replace("\x00", '', $source_data_array['mime'])."\x00"; + $framedata .= $source_data_array['filename'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + break; + + case 'PCNT': + // 4.16 PCNT Play counter + // When the counter reaches all one's, one byte is inserted in + // front of the counter thus making the counter eight bits bigger + // Counter $xx xx xx xx (xx ...) + $framedata .= getid3_lib::BigEndian2String($source_data_array['data'], 4, false); + break; + + case 'POPM': + // 4.17 POPM Popularimeter + // When the counter reaches all one's, one byte is inserted in + // front of the counter thus making the counter eight bits bigger + // Email to user $00 + // Rating $xx + // Counter $xx xx xx xx (xx ...) + if (!$this->IsWithinBitRange($source_data_array['rating'], 8, false)) { + $this->errors[] = 'Invalid Rating byte in '.$frame_name.' ('.$source_data_array['rating'].') (range = 0 to 255)'; + } elseif (!IsValidEmail($source_data_array['email'])) { + $this->errors[] = 'Invalid Email in '.$frame_name.' ('.$source_data_array['email'].')'; + } else { + $framedata .= str_replace("\x00", '', $source_data_array['email'])."\x00"; + $framedata .= chr($source_data_array['rating']); + $framedata .= getid3_lib::BigEndian2String($source_data_array['data'], 4, false); + } + break; + + case 'RBUF': + // 4.18 RBUF Recommended buffer size + // Buffer size $xx xx xx + // Embedded info flag %0000000x + // Offset to next tag $xx xx xx xx + if (!$this->IsWithinBitRange($source_data_array['buffersize'], 24, false)) { + $this->errors[] = 'Invalid Buffer Size in '.$frame_name; + } elseif (!$this->IsWithinBitRange($source_data_array['nexttagoffset'], 32, false)) { + $this->errors[] = 'Invalid Offset To Next Tag in '.$frame_name; + } else { + $framedata .= getid3_lib::BigEndian2String($source_data_array['buffersize'], 3, false); + $flag .= '0000000'; + $flag .= $source_data_array['flags']['embededinfo'] ? '1' : '0'; + $framedata .= chr(bindec($flag)); + $framedata .= getid3_lib::BigEndian2String($source_data_array['nexttagoffset'], 4, false); + } + break; + + case 'AENC': + // 4.19 AENC Audio encryption + // Owner identifier $00 + // Preview start $xx xx + // Preview length $xx xx + // Encryption info + if (!$this->IsWithinBitRange($source_data_array['previewstart'], 16, false)) { + $this->errors[] = 'Invalid Preview Start in '.$frame_name.' ('.$source_data_array['previewstart'].')'; + } elseif (!$this->IsWithinBitRange($source_data_array['previewlength'], 16, false)) { + $this->errors[] = 'Invalid Preview Length in '.$frame_name.' ('.$source_data_array['previewlength'].')'; + } else { + $framedata .= str_replace("\x00", '', $source_data_array['ownerid'])."\x00"; + $framedata .= getid3_lib::BigEndian2String($source_data_array['previewstart'], 2, false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['previewlength'], 2, false); + $framedata .= $source_data_array['encryptioninfo']; + } + break; + + case 'LINK': + // 4.20 LINK Linked information + // Frame identifier $xx xx xx xx + // URL $00 + // ID and additional data + if (!getid3_id3v2::IsValidID3v2FrameName($source_data_array['frameid'], $this->majorversion)) { + $this->errors[] = 'Invalid Frame Identifier in '.$frame_name.' ('.$source_data_array['frameid'].')'; + } elseif (!$this->IsValidURL($source_data_array['data'], true, false)) { + //$this->errors[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + // probably should be an error, need to rewrite IsValidURL() to handle other encodings + $this->warnings[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + } elseif ((($source_data_array['frameid'] == 'AENC') || ($source_data_array['frameid'] == 'APIC') || ($source_data_array['frameid'] == 'GEOB') || ($source_data_array['frameid'] == 'TXXX')) && ($source_data_array['additionaldata'] == '')) { + $this->errors[] = 'Content Descriptor must be specified as additional data for Frame Identifier of '.$source_data_array['frameid'].' in '.$frame_name; + } elseif (($source_data_array['frameid'] == 'USER') && (getid3_id3v2::LanguageLookup($source_data_array['additionaldata'], true) == '')) { + $this->errors[] = 'Language must be specified as additional data for Frame Identifier of '.$source_data_array['frameid'].' in '.$frame_name; + } elseif (($source_data_array['frameid'] == 'PRIV') && ($source_data_array['additionaldata'] == '')) { + $this->errors[] = 'Owner Identifier must be specified as additional data for Frame Identifier of '.$source_data_array['frameid'].' in '.$frame_name; + } elseif ((($source_data_array['frameid'] == 'COMM') || ($source_data_array['frameid'] == 'SYLT') || ($source_data_array['frameid'] == 'USLT')) && ((getid3_id3v2::LanguageLookup(substr($source_data_array['additionaldata'], 0, 3), true) == '') || (substr($source_data_array['additionaldata'], 3) == ''))) { + $this->errors[] = 'Language followed by Content Descriptor must be specified as additional data for Frame Identifier of '.$source_data_array['frameid'].' in '.$frame_name; + } else { + $framedata .= $source_data_array['frameid']; + $framedata .= str_replace("\x00", '', $source_data_array['data'])."\x00"; + switch ($source_data_array['frameid']) { + case 'COMM': + case 'SYLT': + case 'USLT': + case 'PRIV': + case 'USER': + case 'AENC': + case 'APIC': + case 'GEOB': + case 'TXXX': + $framedata .= $source_data_array['additionaldata']; + break; + case 'ASPI': + case 'ETCO': + case 'EQU2': + case 'MCID': + case 'MLLT': + case 'OWNE': + case 'RVA2': + case 'RVRB': + case 'SYTC': + case 'IPLS': + case 'RVAD': + case 'EQUA': + // no additional data required + break; + case 'RBUF': + if ($this->majorversion == 3) { + // no additional data required + } else { + $this->errors[] = $source_data_array['frameid'].' is not a valid Frame Identifier in '.$frame_name.' (in ID3v2.'.$this->majorversion.')'; + } + + default: + if ((substr($source_data_array['frameid'], 0, 1) == 'T') || (substr($source_data_array['frameid'], 0, 1) == 'W')) { + // no additional data required + } else { + $this->errors[] = $source_data_array['frameid'].' is not a valid Frame Identifier in '.$frame_name.' (in ID3v2.'.$this->majorversion.')'; + } + break; + } + } + break; + + case 'POSS': + // 4.21 POSS Position synchronisation frame (ID3v2.3+ only) + // Time stamp format $xx + // Position $xx (xx ...) + if (($source_data_array['timestampformat'] < 1) || ($source_data_array['timestampformat'] > 2)) { + $this->errors[] = 'Invalid Time Stamp Format in '.$frame_name.' ('.$source_data_array['timestampformat'].') (valid = 1 or 2)'; + } elseif (!$this->IsWithinBitRange($source_data_array['position'], 32, false)) { + $this->errors[] = 'Invalid Position in '.$frame_name.' ('.$source_data_array['position'].') (range = 0 to 4294967295)'; + } else { + $framedata .= chr($source_data_array['timestampformat']); + $framedata .= getid3_lib::BigEndian2String($source_data_array['position'], 4, false); + } + break; + + case 'USER': + // 4.22 USER Terms of use (ID3v2.3+ only) + // Text encoding $xx + // Language $xx xx xx + // The actual text + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].')'; + } elseif (getid3_id3v2::LanguageLookup($source_data_array['language'], true) == '') { + $this->errors[] = 'Invalid Language in '.$frame_name.' ('.$source_data_array['language'].')'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= strtolower($source_data_array['language']); + $framedata .= $source_data_array['data']; + } + break; + + case 'OWNE': + // 4.23 OWNE Ownership frame (ID3v2.3+ only) + // Text encoding $xx + // Price paid $00 + // Date of purch. + // Seller + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].')'; + } elseif (!$this->IsANumber($source_data_array['pricepaid']['value'], false)) { + $this->errors[] = 'Invalid Price Paid in '.$frame_name.' ('.$source_data_array['pricepaid']['value'].')'; + } elseif (!$this->IsValidDateStampString($source_data_array['purchasedate'])) { + $this->errors[] = 'Invalid Date Of Purchase in '.$frame_name.' ('.$source_data_array['purchasedate'].') (format = YYYYMMDD)'; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= str_replace("\x00", '', $source_data_array['pricepaid']['value'])."\x00"; + $framedata .= $source_data_array['purchasedate']; + $framedata .= $source_data_array['seller']; + } + break; + + case 'COMR': + // 4.24 COMR Commercial frame (ID3v2.3+ only) + // Text encoding $xx + // Price string $00 + // Valid until + // Contact URL $00 + // Received as $xx + // Name of seller $00 (00) + // Description $00 (00) + // Picture MIME type $00 + // Seller logo + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].')'; + } elseif (!$this->IsValidDateStampString($source_data_array['pricevaliduntil'])) { + $this->errors[] = 'Invalid Valid Until date in '.$frame_name.' ('.$source_data_array['pricevaliduntil'].') (format = YYYYMMDD)'; + } elseif (!$this->IsValidURL($source_data_array['contacturl'], false, true)) { + $this->errors[] = 'Invalid Contact URL in '.$frame_name.' ('.$source_data_array['contacturl'].') (allowed schemes: http, https, ftp, mailto)'; + } elseif (!$this->ID3v2IsValidCOMRreceivedAs($source_data_array['receivedasid'])) { + $this->errors[] = 'Invalid Received As byte in '.$frame_name.' ('.$source_data_array['contacturl'].') (range = 0 to 8)'; + } elseif (!$this->IsValidMIMEstring($source_data_array['mime'])) { + $this->errors[] = 'Invalid MIME Type in '.$frame_name.' ('.$source_data_array['mime'].')'; + } else { + $framedata .= chr($source_data_array['encodingid']); + unset($pricestring); + foreach ($source_data_array['price'] as $key => $val) { + if ($this->ID3v2IsValidPriceString($key.$val['value'])) { + $pricestrings[] = $key.$val['value']; + } else { + $this->errors[] = 'Invalid Price String in '.$frame_name.' ('.$key.$val['value'].')'; + } + } + $framedata .= implode('/', $pricestrings); + $framedata .= $source_data_array['pricevaliduntil']; + $framedata .= str_replace("\x00", '', $source_data_array['contacturl'])."\x00"; + $framedata .= chr($source_data_array['receivedasid']); + $framedata .= $source_data_array['sellername'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['description'].getid3_id3v2::TextEncodingTerminatorLookup($source_data_array['encodingid']); + $framedata .= $source_data_array['mime']."\x00"; + $framedata .= $source_data_array['logo']; + } + break; + + case 'ENCR': + // 4.25 ENCR Encryption method registration (ID3v2.3+ only) + // Owner identifier $00 + // Method symbol $xx + // Encryption data + if (!$this->IsWithinBitRange($source_data_array['methodsymbol'], 8, false)) { + $this->errors[] = 'Invalid Group Symbol in '.$frame_name.' ('.$source_data_array['methodsymbol'].') (range = 0 to 255)'; + } else { + $framedata .= str_replace("\x00", '', $source_data_array['ownerid'])."\x00"; + $framedata .= ord($source_data_array['methodsymbol']); + $framedata .= $source_data_array['data']; + } + break; + + case 'GRID': + // 4.26 GRID Group identification registration (ID3v2.3+ only) + // Owner identifier $00 + // Group symbol $xx + // Group dependent data + if (!$this->IsWithinBitRange($source_data_array['groupsymbol'], 8, false)) { + $this->errors[] = 'Invalid Group Symbol in '.$frame_name.' ('.$source_data_array['groupsymbol'].') (range = 0 to 255)'; + } else { + $framedata .= str_replace("\x00", '', $source_data_array['ownerid'])."\x00"; + $framedata .= ord($source_data_array['groupsymbol']); + $framedata .= $source_data_array['data']; + } + break; + + case 'PRIV': + // 4.27 PRIV Private frame (ID3v2.3+ only) + // Owner identifier $00 + // The private data + $framedata .= str_replace("\x00", '', $source_data_array['ownerid'])."\x00"; + $framedata .= $source_data_array['data']; + break; + + case 'SIGN': + // 4.28 SIGN Signature frame (ID3v2.4+ only) + // Group symbol $xx + // Signature + if (!$this->IsWithinBitRange($source_data_array['groupsymbol'], 8, false)) { + $this->errors[] = 'Invalid Group Symbol in '.$frame_name.' ('.$source_data_array['groupsymbol'].') (range = 0 to 255)'; + } else { + $framedata .= ord($source_data_array['groupsymbol']); + $framedata .= $source_data_array['data']; + } + break; + + case 'SEEK': + // 4.29 SEEK Seek frame (ID3v2.4+ only) + // Minimum offset to next tag $xx xx xx xx + if (!$this->IsWithinBitRange($source_data_array['data'], 32, false)) { + $this->errors[] = 'Invalid Minimum Offset in '.$frame_name.' ('.$source_data_array['data'].') (range = 0 to 4294967295)'; + } else { + $framedata .= getid3_lib::BigEndian2String($source_data_array['data'], 4, false); + } + break; + + case 'ASPI': + // 4.30 ASPI Audio seek point index (ID3v2.4+ only) + // Indexed data start (S) $xx xx xx xx + // Indexed data length (L) $xx xx xx xx + // Number of index points (N) $xx xx + // Bits per index point (b) $xx + // Then for every index point the following data is included: + // Fraction at index (Fi) $xx (xx) + if (!$this->IsWithinBitRange($source_data_array['datastart'], 32, false)) { + $this->errors[] = 'Invalid Indexed Data Start in '.$frame_name.' ('.$source_data_array['datastart'].') (range = 0 to 4294967295)'; + } elseif (!$this->IsWithinBitRange($source_data_array['datalength'], 32, false)) { + $this->errors[] = 'Invalid Indexed Data Length in '.$frame_name.' ('.$source_data_array['datalength'].') (range = 0 to 4294967295)'; + } elseif (!$this->IsWithinBitRange($source_data_array['indexpoints'], 16, false)) { + $this->errors[] = 'Invalid Number Of Index Points in '.$frame_name.' ('.$source_data_array['indexpoints'].') (range = 0 to 65535)'; + } elseif (!$this->IsWithinBitRange($source_data_array['bitsperpoint'], 8, false)) { + $this->errors[] = 'Invalid Bits Per Index Point in '.$frame_name.' ('.$source_data_array['bitsperpoint'].') (range = 0 to 255)'; + } elseif ($source_data_array['indexpoints'] != count($source_data_array['indexes'])) { + $this->errors[] = 'Number Of Index Points does not match actual supplied data in '.$frame_name; + } else { + $framedata .= getid3_lib::BigEndian2String($source_data_array['datastart'], 4, false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['datalength'], 4, false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['indexpoints'], 2, false); + $framedata .= getid3_lib::BigEndian2String($source_data_array['bitsperpoint'], 1, false); + foreach ($source_data_array['indexes'] as $key => $val) { + $framedata .= getid3_lib::BigEndian2String($val, ceil($source_data_array['bitsperpoint'] / 8), false); + } + } + break; + + case 'RGAD': + // RGAD Replay Gain Adjustment + // http://privatewww.essex.ac.uk/~djmrob/replaygain/ + // Peak Amplitude $xx $xx $xx $xx + // Radio Replay Gain Adjustment %aaabbbcd %dddddddd + // Audiophile Replay Gain Adjustment %aaabbbcd %dddddddd + // a - name code + // b - originator code + // c - sign bit + // d - replay gain adjustment + + if (($source_data_array['track_adjustment'] > 51) || ($source_data_array['track_adjustment'] < -51)) { + $this->errors[] = 'Invalid Track Adjustment in '.$frame_name.' ('.$source_data_array['track_adjustment'].') (range = -51.0 to +51.0)'; + } elseif (($source_data_array['album_adjustment'] > 51) || ($source_data_array['album_adjustment'] < -51)) { + $this->errors[] = 'Invalid Album Adjustment in '.$frame_name.' ('.$source_data_array['album_adjustment'].') (range = -51.0 to +51.0)'; + } elseif (!$this->ID3v2IsValidRGADname($source_data_array['raw']['track_name'])) { + $this->errors[] = 'Invalid Track Name Code in '.$frame_name.' ('.$source_data_array['raw']['track_name'].') (range = 0 to 2)'; + } elseif (!$this->ID3v2IsValidRGADname($source_data_array['raw']['album_name'])) { + $this->errors[] = 'Invalid Album Name Code in '.$frame_name.' ('.$source_data_array['raw']['album_name'].') (range = 0 to 2)'; + } elseif (!$this->ID3v2IsValidRGADoriginator($source_data_array['raw']['track_originator'])) { + $this->errors[] = 'Invalid Track Originator Code in '.$frame_name.' ('.$source_data_array['raw']['track_originator'].') (range = 0 to 3)'; + } elseif (!$this->ID3v2IsValidRGADoriginator($source_data_array['raw']['album_originator'])) { + $this->errors[] = 'Invalid Album Originator Code in '.$frame_name.' ('.$source_data_array['raw']['album_originator'].') (range = 0 to 3)'; + } else { + $framedata .= getid3_lib::Float2String($source_data_array['peakamplitude'], 32); + $framedata .= getid3_lib::RGADgainString($source_data_array['raw']['track_name'], $source_data_array['raw']['track_originator'], $source_data_array['track_adjustment']); + $framedata .= getid3_lib::RGADgainString($source_data_array['raw']['album_name'], $source_data_array['raw']['album_originator'], $source_data_array['album_adjustment']); + } + break; + + default: + if ($frame_name{0} == 'T') { + // 4.2. T??? Text information frames + // Text encoding $xx + // Information + $source_data_array['encodingid'] = (isset($source_data_array['encodingid']) ? $source_data_array['encodingid'] : $this->id3v2_default_encodingid); + if (!$this->ID3v2IsValidTextEncoding($source_data_array['encodingid'])) { + $this->errors[] = 'Invalid Text Encoding in '.$frame_name.' ('.$source_data_array['encodingid'].') for ID3v2.'.$this->majorversion; + } else { + $framedata .= chr($source_data_array['encodingid']); + $framedata .= $source_data_array['data']; + } + } elseif ($frame_name{0} == 'W') { + // 4.3. W??? URL link frames + // URL + if (!$this->IsValidURL($source_data_array['data'], false, false)) { + //$this->errors[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + // probably should be an error, need to rewrite IsValidURL() to handle other encodings + $this->warnings[] = 'Invalid URL in '.$frame_name.' ('.$source_data_array['data'].')'; + } else { + $framedata .= $source_data_array['data']; + } + } else { + $this->errors[] = $frame_name.' not yet supported in $this->GenerateID3v2FrameData()'; + } + break; + } + } + if (!empty($this->errors)) { + return false; + } + return $framedata; + } + + function ID3v2FrameIsAllowed($frame_name, $source_data_array) { + static $PreviousFrames = array(); + + if ($frame_name === null) { + // if the writing functions are called multiple times, the static array needs to be + // cleared - this can be done by calling $this->ID3v2FrameIsAllowed(null, '') + $PreviousFrames = array(); + return true; + } + + if ($this->majorversion == 4) { + switch ($frame_name) { + case 'UFID': + case 'AENC': + case 'ENCR': + case 'GRID': + if (!isset($source_data_array['ownerid'])) { + $this->errors[] = '[ownerid] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['ownerid'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same OwnerID ('.$source_data_array['ownerid'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['ownerid']; + } + break; + + case 'TXXX': + case 'WXXX': + case 'RVA2': + case 'EQU2': + case 'APIC': + case 'GEOB': + if (!isset($source_data_array['description'])) { + $this->errors[] = '[description] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['description'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Description ('.$source_data_array['description'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['description']; + } + break; + + case 'USER': + if (!isset($source_data_array['language'])) { + $this->errors[] = '[language] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['language'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Language ('.$source_data_array['language'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['language']; + } + break; + + case 'USLT': + case 'SYLT': + case 'COMM': + if (!isset($source_data_array['language'])) { + $this->errors[] = '[language] not specified for '.$frame_name; + } elseif (!isset($source_data_array['description'])) { + $this->errors[] = '[description] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['language'].$source_data_array['description'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Language + Description ('.$source_data_array['language'].' + '.$source_data_array['description'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['language'].$source_data_array['description']; + } + break; + + case 'POPM': + if (!isset($source_data_array['email'])) { + $this->errors[] = '[email] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['email'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Email ('.$source_data_array['email'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['email']; + } + break; + + case 'IPLS': + case 'MCDI': + case 'ETCO': + case 'MLLT': + case 'SYTC': + case 'RVRB': + case 'PCNT': + case 'RBUF': + case 'POSS': + case 'OWNE': + case 'SEEK': + case 'ASPI': + case 'RGAD': + if (in_array($frame_name, $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed'; + } else { + $PreviousFrames[] = $frame_name; + } + break; + + case 'LINK': + // this isn't implemented quite right (yet) - it should check the target frame data for compliance + // but right now it just allows one linked frame of each type, to be safe. + if (!isset($source_data_array['frameid'])) { + $this->errors[] = '[frameid] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['frameid'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same FrameID ('.$source_data_array['frameid'].')'; + } elseif (in_array($source_data_array['frameid'], $PreviousFrames)) { + // no links to singleton tags + $this->errors[] = 'Cannot specify a '.$frame_name.' tag to a singleton tag that already exists ('.$source_data_array['frameid'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['frameid']; // only one linked tag of this type + $PreviousFrames[] = $source_data_array['frameid']; // no non-linked singleton tags of this type + } + break; + + case 'COMR': + // There may be more than one 'commercial frame' in a tag, but no two may be identical + // Checking isn't implemented at all (yet) - just assumes that it's OK. + break; + + case 'PRIV': + case 'SIGN': + if (!isset($source_data_array['ownerid'])) { + $this->errors[] = '[ownerid] not specified for '.$frame_name; + } elseif (!isset($source_data_array['data'])) { + $this->errors[] = '[data] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['ownerid'].$source_data_array['data'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same OwnerID + Data ('.$source_data_array['ownerid'].' + '.$source_data_array['data'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['ownerid'].$source_data_array['data']; + } + break; + + default: + if (($frame_name{0} != 'T') && ($frame_name{0} != 'W')) { + $this->errors[] = 'Frame not allowed in ID3v2.'.$this->majorversion.': '.$frame_name; + } + break; + } + + } elseif ($this->majorversion == 3) { + + switch ($frame_name) { + case 'UFID': + case 'AENC': + case 'ENCR': + case 'GRID': + if (!isset($source_data_array['ownerid'])) { + $this->errors[] = '[ownerid] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['ownerid'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same OwnerID ('.$source_data_array['ownerid'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['ownerid']; + } + break; + + case 'TXXX': + case 'WXXX': + case 'APIC': + case 'GEOB': + if (!isset($source_data_array['description'])) { + $this->errors[] = '[description] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['description'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Description ('.$source_data_array['description'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['description']; + } + break; + + case 'USER': + if (!isset($source_data_array['language'])) { + $this->errors[] = '[language] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['language'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Language ('.$source_data_array['language'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['language']; + } + break; + + case 'USLT': + case 'SYLT': + case 'COMM': + if (!isset($source_data_array['language'])) { + $this->errors[] = '[language] not specified for '.$frame_name; + } elseif (!isset($source_data_array['description'])) { + $this->errors[] = '[description] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['language'].$source_data_array['description'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Language + Description ('.$source_data_array['language'].' + '.$source_data_array['description'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['language'].$source_data_array['description']; + } + break; + + case 'POPM': + if (!isset($source_data_array['email'])) { + $this->errors[] = '[email] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['email'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Email ('.$source_data_array['email'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['email']; + } + break; + + case 'IPLS': + case 'MCDI': + case 'ETCO': + case 'MLLT': + case 'SYTC': + case 'RVAD': + case 'EQUA': + case 'RVRB': + case 'PCNT': + case 'RBUF': + case 'POSS': + case 'OWNE': + case 'RGAD': + if (in_array($frame_name, $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed'; + } else { + $PreviousFrames[] = $frame_name; + } + break; + + case 'LINK': + // this isn't implemented quite right (yet) - it should check the target frame data for compliance + // but right now it just allows one linked frame of each type, to be safe. + if (!isset($source_data_array['frameid'])) { + $this->errors[] = '[frameid] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['frameid'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same FrameID ('.$source_data_array['frameid'].')'; + } elseif (in_array($source_data_array['frameid'], $PreviousFrames)) { + // no links to singleton tags + $this->errors[] = 'Cannot specify a '.$frame_name.' tag to a singleton tag that already exists ('.$source_data_array['frameid'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['frameid']; // only one linked tag of this type + $PreviousFrames[] = $source_data_array['frameid']; // no non-linked singleton tags of this type + } + break; + + case 'COMR': + // There may be more than one 'commercial frame' in a tag, but no two may be identical + // Checking isn't implemented at all (yet) - just assumes that it's OK. + break; + + case 'PRIV': + if (!isset($source_data_array['ownerid'])) { + $this->errors[] = '[ownerid] not specified for '.$frame_name; + } elseif (!isset($source_data_array['data'])) { + $this->errors[] = '[data] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['ownerid'].$source_data_array['data'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same OwnerID + Data ('.$source_data_array['ownerid'].' + '.$source_data_array['data'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['ownerid'].$source_data_array['data']; + } + break; + + default: + if (($frame_name{0} != 'T') && ($frame_name{0} != 'W')) { + $this->errors[] = 'Frame not allowed in ID3v2.'.$this->majorversion.': '.$frame_name; + } + break; + } + + } elseif ($this->majorversion == 2) { + + switch ($frame_name) { + case 'UFI': + case 'CRM': + case 'CRA': + if (!isset($source_data_array['ownerid'])) { + $this->errors[] = '[ownerid] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['ownerid'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same OwnerID ('.$source_data_array['ownerid'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['ownerid']; + } + break; + + case 'TXX': + case 'WXX': + case 'PIC': + case 'GEO': + if (!isset($source_data_array['description'])) { + $this->errors[] = '[description] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['description'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Description ('.$source_data_array['description'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['description']; + } + break; + + case 'ULT': + case 'SLT': + case 'COM': + if (!isset($source_data_array['language'])) { + $this->errors[] = '[language] not specified for '.$frame_name; + } elseif (!isset($source_data_array['description'])) { + $this->errors[] = '[description] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['language'].$source_data_array['description'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Language + Description ('.$source_data_array['language'].' + '.$source_data_array['description'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['language'].$source_data_array['description']; + } + break; + + case 'POP': + if (!isset($source_data_array['email'])) { + $this->errors[] = '[email] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['email'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same Email ('.$source_data_array['email'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['email']; + } + break; + + case 'IPL': + case 'MCI': + case 'ETC': + case 'MLL': + case 'STC': + case 'RVA': + case 'EQU': + case 'REV': + case 'CNT': + case 'BUF': + if (in_array($frame_name, $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed'; + } else { + $PreviousFrames[] = $frame_name; + } + break; + + case 'LNK': + // this isn't implemented quite right (yet) - it should check the target frame data for compliance + // but right now it just allows one linked frame of each type, to be safe. + if (!isset($source_data_array['frameid'])) { + $this->errors[] = '[frameid] not specified for '.$frame_name; + } elseif (in_array($frame_name.$source_data_array['frameid'], $PreviousFrames)) { + $this->errors[] = 'Only one '.$frame_name.' tag allowed with the same FrameID ('.$source_data_array['frameid'].')'; + } elseif (in_array($source_data_array['frameid'], $PreviousFrames)) { + // no links to singleton tags + $this->errors[] = 'Cannot specify a '.$frame_name.' tag to a singleton tag that already exists ('.$source_data_array['frameid'].')'; + } else { + $PreviousFrames[] = $frame_name.$source_data_array['frameid']; // only one linked tag of this type + $PreviousFrames[] = $source_data_array['frameid']; // no non-linked singleton tags of this type + } + break; + + default: + if (($frame_name{0} != 'T') && ($frame_name{0} != 'W')) { + $this->errors[] = 'Frame not allowed in ID3v2.'.$this->majorversion.': '.$frame_name; + } + break; + } + } + + if (!empty($this->errors)) { + return false; + } + return true; + } + + function GenerateID3v2Tag($noerrorsonly=true) { + $this->ID3v2FrameIsAllowed(null, ''); // clear static array in case this isn't the first call to $this->GenerateID3v2Tag() + + $tagstring = ''; + if (is_array($this->tag_data)) { + foreach ($this->tag_data as $frame_name => $frame_rawinputdata) { + foreach ($frame_rawinputdata as $irrelevantindex => $source_data_array) { + if (getid3_id3v2::IsValidID3v2FrameName($frame_name, $this->majorversion)) { + unset($frame_length); + unset($frame_flags); + $frame_data = false; + if ($this->ID3v2FrameIsAllowed($frame_name, $source_data_array)) { + if ($frame_data = $this->GenerateID3v2FrameData($frame_name, $source_data_array)) { + $FrameUnsynchronisation = false; + if ($this->majorversion >= 4) { + // frame-level unsynchronisation + $unsynchdata = $frame_data; + if ($this->id3v2_use_unsynchronisation) { + $unsynchdata = $this->Unsynchronise($frame_data); + } + if (strlen($unsynchdata) != strlen($frame_data)) { + // unsynchronisation needed + $FrameUnsynchronisation = true; + $frame_data = $unsynchdata; + if (isset($TagUnsynchronisation) && $TagUnsynchronisation === false) { + // only set to true if ALL frames are unsynchronised + } else { + $TagUnsynchronisation = true; + } + } else { + if (isset($TagUnsynchronisation)) { + $TagUnsynchronisation = false; + } + } + unset($unsynchdata); + + $frame_length = getid3_lib::BigEndian2String(strlen($frame_data), 4, true); + } else { + $frame_length = getid3_lib::BigEndian2String(strlen($frame_data), 4, false); + } + $frame_flags = $this->GenerateID3v2FrameFlags($this->ID3v2FrameFlagsLookupTagAlter($frame_name), $this->ID3v2FrameFlagsLookupFileAlter($frame_name), false, false, false, false, $FrameUnsynchronisation, false); + } + } else { + $this->errors[] = 'Frame "'.$frame_name.'" is NOT allowed'; + } + if ($frame_data === false) { + $this->errors[] = '$this->GenerateID3v2FrameData() failed for "'.$frame_name.'"'; + if ($noerrorsonly) { + return false; + } else { + unset($frame_name); + } + } + } else { + // ignore any invalid frame names, including 'title', 'header', etc + $this->warnings[] = 'Ignoring invalid ID3v2 frame type: "'.$frame_name.'"'; + unset($frame_name); + unset($frame_length); + unset($frame_flags); + unset($frame_data); + } + if (isset($frame_name) && isset($frame_length) && isset($frame_flags) && isset($frame_data)) { + $tagstring .= $frame_name.$frame_length.$frame_flags.$frame_data; + } + } + } + + if (!isset($TagUnsynchronisation)) { + $TagUnsynchronisation = false; + } + if (($this->majorversion <= 3) && $this->id3v2_use_unsynchronisation) { + // tag-level unsynchronisation + $unsynchdata = $this->Unsynchronise($tagstring); + if (strlen($unsynchdata) != strlen($tagstring)) { + // unsynchronisation needed + $TagUnsynchronisation = true; + $tagstring = $unsynchdata; + } + } + + while ($this->paddedlength < (strlen($tagstring) + getid3_id3v2::ID3v2HeaderLength($this->majorversion))) { + $this->paddedlength += 1024; + } + + $footer = false; // ID3v2 footers not yet supported in getID3() + if (!$footer && ($this->paddedlength > (strlen($tagstring) + getid3_id3v2::ID3v2HeaderLength($this->majorversion)))) { + // pad up to $paddedlength bytes if unpadded tag is shorter than $paddedlength + // "Furthermore it MUST NOT have any padding when a tag footer is added to the tag." + $tagstring .= @str_repeat("\x00", $this->paddedlength - strlen($tagstring) - getid3_id3v2::ID3v2HeaderLength($this->majorversion)); + } + if ($this->id3v2_use_unsynchronisation && (substr($tagstring, strlen($tagstring) - 1, 1) == "\xFF")) { + // special unsynchronisation case: + // if last byte == $FF then appended a $00 + $TagUnsynchronisation = true; + $tagstring .= "\x00"; + } + + $tagheader = 'ID3'; + $tagheader .= chr($this->majorversion); + $tagheader .= chr($this->minorversion); + $tagheader .= $this->GenerateID3v2TagFlags(array('unsynchronisation'=>$TagUnsynchronisation)); + $tagheader .= getid3_lib::BigEndian2String(strlen($tagstring), 4, true); + + return $tagheader.$tagstring; + } + $this->errors[] = 'tag_data is not an array in GenerateID3v2Tag()'; + return false; + } + + function ID3v2IsValidPriceString($pricestring) { + if (getid3_id3v2::LanguageLookup(substr($pricestring, 0, 3), true) == '') { + return false; + } elseif (!$this->IsANumber(substr($pricestring, 3), true)) { + return false; + } + return true; + } + + function ID3v2FrameFlagsLookupTagAlter($framename) { + // unfinished + switch ($framename) { + case 'RGAD': + $allow = true; + default: + $allow = false; + break; + } + return $allow; + } + + function ID3v2FrameFlagsLookupFileAlter($framename) { + // unfinished + switch ($framename) { + case 'RGAD': + return false; + break; + + default: + return false; + break; + } + } + + function ID3v2IsValidETCOevent($eventid) { + if (($eventid < 0) || ($eventid > 0xFF)) { + // outside range of 1 byte + return false; + } elseif (($eventid >= 0xF0) && ($eventid <= 0xFC)) { + // reserved for future use + return false; + } elseif (($eventid >= 0x17) && ($eventid <= 0xDF)) { + // reserved for future use + return false; + } elseif (($eventid >= 0x0E) && ($eventid <= 0x16) && ($this->majorversion == 2)) { + // not defined in ID3v2.2 + return false; + } elseif (($eventid >= 0x15) && ($eventid <= 0x16) && ($this->majorversion == 3)) { + // not defined in ID3v2.3 + return false; + } + return true; + } + + function ID3v2IsValidSYLTtype($contenttype) { + if (($contenttype >= 0) && ($contenttype <= 8) && ($this->majorversion == 4)) { + return true; + } elseif (($contenttype >= 0) && ($contenttype <= 6) && ($this->majorversion == 3)) { + return true; + } + return false; + } + + function ID3v2IsValidRVA2channeltype($channeltype) { + if (($channeltype >= 0) && ($channeltype <= 8) && ($this->majorversion == 4)) { + return true; + } + return false; + } + + function ID3v2IsValidAPICpicturetype($picturetype) { + if (($picturetype >= 0) && ($picturetype <= 0x14) && ($this->majorversion >= 2) && ($this->majorversion <= 4)) { + return true; + } + return false; + } + + function ID3v2IsValidAPICimageformat($imageformat) { + if ($imageformat == '-->') { + return true; + } elseif ($this->majorversion == 2) { + if ((strlen($imageformat) == 3) && ($imageformat == strtoupper($imageformat))) { + return true; + } + } elseif (($this->majorversion == 3) || ($this->majorversion == 4)) { + if ($this->IsValidMIMEstring($imageformat)) { + return true; + } + } + return false; + } + + function ID3v2IsValidCOMRreceivedAs($receivedas) { + if (($this->majorversion >= 3) && ($receivedas >= 0) && ($receivedas <= 8)) { + return true; + } + return false; + } + + function ID3v2IsValidRGADname($RGADname) { + if (($RGADname >= 0) && ($RGADname <= 2)) { + return true; + } + return false; + } + + function ID3v2IsValidRGADoriginator($RGADoriginator) { + if (($RGADoriginator >= 0) && ($RGADoriginator <= 3)) { + return true; + } + return false; + } + + function ID3v2IsValidTextEncoding($textencodingbyte) { + static $ID3v2IsValidTextEncoding_cache = array( + 2 => array(true, true), + 3 => array(true, true), + 4 => array(true, true, true, true)); + return isset($ID3v2IsValidTextEncoding_cache[$this->majorversion][$textencodingbyte]); + } + + function Unsynchronise($data) { + // Whenever a false synchronisation is found within the tag, one zeroed + // byte is inserted after the first false synchronisation byte. The + // format of a correct sync that should be altered by ID3 encoders is as + // follows: + // %11111111 111xxxxx + // And should be replaced with: + // %11111111 00000000 111xxxxx + // This has the side effect that all $FF 00 combinations have to be + // altered, so they won't be affected by the decoding process. Therefore + // all the $FF 00 combinations have to be replaced with the $FF 00 00 + // combination during the unsynchronisation. + + $data = str_replace("\xFF\x00", "\xFF\x00\x00", $data); + $unsyncheddata = ''; + $datalength = strlen($data); + for ($i = 0; $i < $datalength; $i++) { + $thischar = $data{$i}; + $unsyncheddata .= $thischar; + if ($thischar == "\xFF") { + $nextchar = ord($data{$i + 1}); + if (($nextchar & 0xE0) == 0xE0) { + // previous byte = 11111111, this byte = 111????? + $unsyncheddata .= "\x00"; + } + } + } + return $unsyncheddata; + } + + function is_hash($var) { + // written by dev-nullchristophe*vg + // taken from http://www.php.net/manual/en/function.array-merge-recursive.php + if (is_array($var)) { + $keys = array_keys($var); + $all_num = true; + for ($i = 0; $i < count($keys); $i++) { + if (is_string($keys[$i])) { + return true; + } + } + } + return false; + } + + function array_join_merge($arr1, $arr2) { + // written by dev-nullchristophe*vg + // taken from http://www.php.net/manual/en/function.array-merge-recursive.php + if (is_array($arr1) && is_array($arr2)) { + // the same -> merge + $new_array = array(); + + if ($this->is_hash($arr1) && $this->is_hash($arr2)) { + // hashes -> merge based on keys + $keys = array_merge(array_keys($arr1), array_keys($arr2)); + foreach ($keys as $key) { + $new_array[$key] = $this->array_join_merge(@$arr1[$key], @$arr2[$key]); + } + } else { + // two real arrays -> merge + $new_array = array_reverse(array_unique(array_reverse(array_merge($arr1, $arr2)))); + } + return $new_array; + } else { + // not the same ... take new one if defined, else the old one stays + return $arr2 ? $arr2 : $arr1; + } + } + + function IsValidMIMEstring($mimestring) { + if ((strlen($mimestring) >= 3) && (strpos($mimestring, '/') > 0) && (strpos($mimestring, '/') < (strlen($mimestring) - 1))) { + return true; + } + return false; + } + + function IsWithinBitRange($number, $maxbits, $signed=false) { + if ($signed) { + if (($number > (0 - pow(2, $maxbits - 1))) && ($number <= pow(2, $maxbits - 1))) { + return true; + } + } else { + if (($number >= 0) && ($number <= pow(2, $maxbits))) { + return true; + } + } + return false; + } + + function safe_parse_url($url) { + $parts = @parse_url($url); + $parts['scheme'] = (isset($parts['scheme']) ? $parts['scheme'] : ''); + $parts['host'] = (isset($parts['host']) ? $parts['host'] : ''); + $parts['user'] = (isset($parts['user']) ? $parts['user'] : ''); + $parts['pass'] = (isset($parts['pass']) ? $parts['pass'] : ''); + $parts['path'] = (isset($parts['path']) ? $parts['path'] : ''); + $parts['query'] = (isset($parts['query']) ? $parts['query'] : ''); + return $parts; + } + + function IsValidURL($url, $allowUserPass=false) { + if ($url == '') { + return false; + } + if ($allowUserPass !== true) { + if (strstr($url, '@')) { + // in the format http://user:pass@example.com or http://user@example.com + // but could easily be somebody incorrectly entering an email address in place of a URL + return false; + } + } + if ($parts = $this->safe_parse_url($url)) { + if (($parts['scheme'] != 'http') && ($parts['scheme'] != 'https') && ($parts['scheme'] != 'ftp') && ($parts['scheme'] != 'gopher')) { + return false; + } elseif (!eregi("^[[:alnum:]]([-.]?[0-9a-z])*\.[a-z]{2,3}$", $parts['host'], $regs) && !IsValidDottedIP($parts['host'])) { + return false; + } elseif (!eregi("^([[:alnum:]-]|[\_])*$", $parts['user'], $regs)) { + return false; + } elseif (!eregi("^([[:alnum:]-]|[\_])*$", $parts['pass'], $regs)) { + return false; + } elseif (!eregi("^[[:alnum:]/_\.@~-]*$", $parts['path'], $regs)) { + return false; + } elseif (!eregi("^[[:alnum:]?&=+:;_()%#/,\.-]*$", $parts['query'], $regs)) { + return false; + } else { + return true; + } + } + return false; + } + + function ID3v2ShortFrameNameLookup($majorversion, $long_description) { + $long_description = str_replace(' ', '_', strtolower(trim($long_description))); + static $ID3v2ShortFrameNameLookup = array(); + if (empty($ID3v2ShortFrameNameLookup)) { + + // The following are unique to ID3v2.2 + $ID3v2ShortFrameNameLookup[2]['comment'] = 'COM'; + $ID3v2ShortFrameNameLookup[2]['album'] = 'TAL'; + $ID3v2ShortFrameNameLookup[2]['beats_per_minute'] = 'TBP'; + $ID3v2ShortFrameNameLookup[2]['composer'] = 'TCM'; + $ID3v2ShortFrameNameLookup[2]['genre'] = 'TCO'; + $ID3v2ShortFrameNameLookup[2]['copyright'] = 'TCR'; + $ID3v2ShortFrameNameLookup[2]['encoded_by'] = 'TEN'; + $ID3v2ShortFrameNameLookup[2]['language'] = 'TLA'; + $ID3v2ShortFrameNameLookup[2]['length'] = 'TLE'; + $ID3v2ShortFrameNameLookup[2]['original_artist'] = 'TOA'; + $ID3v2ShortFrameNameLookup[2]['original_filename'] = 'TOF'; + $ID3v2ShortFrameNameLookup[2]['original_lyricist'] = 'TOL'; + $ID3v2ShortFrameNameLookup[2]['original_album_title'] = 'TOT'; + $ID3v2ShortFrameNameLookup[2]['artist'] = 'TP1'; + $ID3v2ShortFrameNameLookup[2]['band'] = 'TP2'; + $ID3v2ShortFrameNameLookup[2]['conductor'] = 'TP3'; + $ID3v2ShortFrameNameLookup[2]['remixer'] = 'TP4'; + $ID3v2ShortFrameNameLookup[2]['publisher'] = 'TPB'; + $ID3v2ShortFrameNameLookup[2]['isrc'] = 'TRC'; + $ID3v2ShortFrameNameLookup[2]['tracknumber'] = 'TRK'; + $ID3v2ShortFrameNameLookup[2]['size'] = 'TSI'; + $ID3v2ShortFrameNameLookup[2]['encoder_settings'] = 'TSS'; + $ID3v2ShortFrameNameLookup[2]['description'] = 'TT1'; + $ID3v2ShortFrameNameLookup[2]['title'] = 'TT2'; + $ID3v2ShortFrameNameLookup[2]['subtitle'] = 'TT3'; + $ID3v2ShortFrameNameLookup[2]['lyricist'] = 'TXT'; + $ID3v2ShortFrameNameLookup[2]['user_text'] = 'TXX'; + $ID3v2ShortFrameNameLookup[2]['year'] = 'TYE'; + $ID3v2ShortFrameNameLookup[2]['unique_file_identifier'] = 'UFI'; + $ID3v2ShortFrameNameLookup[2]['unsynchronised_lyrics'] = 'ULT'; + $ID3v2ShortFrameNameLookup[2]['url_file'] = 'WAF'; + $ID3v2ShortFrameNameLookup[2]['url_artist'] = 'WAR'; + $ID3v2ShortFrameNameLookup[2]['url_source'] = 'WAS'; + $ID3v2ShortFrameNameLookup[2]['copyright_information'] = 'WCP'; + $ID3v2ShortFrameNameLookup[2]['url_publisher'] = 'WPB'; + $ID3v2ShortFrameNameLookup[2]['url_user'] = 'WXX'; + + // The following are common to ID3v2.3 and ID3v2.4 + $ID3v2ShortFrameNameLookup[3]['audio_encryption'] = 'AENC'; + $ID3v2ShortFrameNameLookup[3]['attached_picture'] = 'APIC'; + $ID3v2ShortFrameNameLookup[3]['comment'] = 'COMM'; + $ID3v2ShortFrameNameLookup[3]['commercial'] = 'COMR'; + $ID3v2ShortFrameNameLookup[3]['encryption_method_registration'] = 'ENCR'; + $ID3v2ShortFrameNameLookup[3]['event_timing_codes'] = 'ETCO'; + $ID3v2ShortFrameNameLookup[3]['general_encapsulated_object'] = 'GEOB'; + $ID3v2ShortFrameNameLookup[3]['group_identification_registration'] = 'GRID'; + $ID3v2ShortFrameNameLookup[3]['linked_information'] = 'LINK'; + $ID3v2ShortFrameNameLookup[3]['music_cd_identifier'] = 'MCDI'; + $ID3v2ShortFrameNameLookup[3]['mpeg_location_lookup_table'] = 'MLLT'; + $ID3v2ShortFrameNameLookup[3]['ownership'] = 'OWNE'; + $ID3v2ShortFrameNameLookup[3]['play_counter'] = 'PCNT'; + $ID3v2ShortFrameNameLookup[3]['popularimeter'] = 'POPM'; + $ID3v2ShortFrameNameLookup[3]['position_synchronisation'] = 'POSS'; + $ID3v2ShortFrameNameLookup[3]['private'] = 'PRIV'; + $ID3v2ShortFrameNameLookup[3]['recommended_buffer_size'] = 'RBUF'; + $ID3v2ShortFrameNameLookup[3]['reverb'] = 'RVRB'; + $ID3v2ShortFrameNameLookup[3]['synchronised_lyrics'] = 'SYLT'; + $ID3v2ShortFrameNameLookup[3]['synchronised_tempo_codes'] = 'SYTC'; + $ID3v2ShortFrameNameLookup[3]['album'] = 'TALB'; + $ID3v2ShortFrameNameLookup[3]['beats_per_minute'] = 'TBPM'; + $ID3v2ShortFrameNameLookup[3]['composer'] = 'TCOM'; + $ID3v2ShortFrameNameLookup[3]['genre'] = 'TCON'; + $ID3v2ShortFrameNameLookup[3]['copyright'] = 'TCOP'; + $ID3v2ShortFrameNameLookup[3]['playlist_delay'] = 'TDLY'; + $ID3v2ShortFrameNameLookup[3]['encoded_by'] = 'TENC'; + $ID3v2ShortFrameNameLookup[3]['lyricist'] = 'TEXT'; + $ID3v2ShortFrameNameLookup[3]['file_type'] = 'TFLT'; + $ID3v2ShortFrameNameLookup[3]['content_group_description'] = 'TIT1'; + $ID3v2ShortFrameNameLookup[3]['title'] = 'TIT2'; + $ID3v2ShortFrameNameLookup[3]['subtitle'] = 'TIT3'; + $ID3v2ShortFrameNameLookup[3]['initial_key'] = 'TKEY'; + $ID3v2ShortFrameNameLookup[3]['language'] = 'TLAN'; + $ID3v2ShortFrameNameLookup[3]['length'] = 'TLEN'; + $ID3v2ShortFrameNameLookup[3]['media_type'] = 'TMED'; + $ID3v2ShortFrameNameLookup[3]['original_album_title'] = 'TOAL'; + $ID3v2ShortFrameNameLookup[3]['original_filename'] = 'TOFN'; + $ID3v2ShortFrameNameLookup[3]['original_lyricist'] = 'TOLY'; + $ID3v2ShortFrameNameLookup[3]['original_artist'] = 'TOPE'; + $ID3v2ShortFrameNameLookup[3]['file_owner'] = 'TOWN'; + $ID3v2ShortFrameNameLookup[3]['artist'] = 'TPE1'; + $ID3v2ShortFrameNameLookup[3]['band'] = 'TPE2'; + $ID3v2ShortFrameNameLookup[3]['conductor'] = 'TPE3'; + $ID3v2ShortFrameNameLookup[3]['remixer'] = 'TPE4'; + $ID3v2ShortFrameNameLookup[3]['part_of_set'] = 'TPOS'; + $ID3v2ShortFrameNameLookup[3]['publisher'] = 'TPUB'; + $ID3v2ShortFrameNameLookup[3]['tracknumber'] = 'TRCK'; + $ID3v2ShortFrameNameLookup[3]['internet_radio_station_name'] = 'TRSN'; + $ID3v2ShortFrameNameLookup[3]['internet_radio_station_owner'] = 'TRSO'; + $ID3v2ShortFrameNameLookup[3]['isrc'] = 'TSRC'; + $ID3v2ShortFrameNameLookup[3]['encoder_settings'] = 'TSSE'; + $ID3v2ShortFrameNameLookup[3]['user_text'] = 'TXXX'; + $ID3v2ShortFrameNameLookup[3]['unique_file_identifier'] = 'UFID'; + $ID3v2ShortFrameNameLookup[3]['terms_of_use'] = 'USER'; + $ID3v2ShortFrameNameLookup[3]['unsynchronised_lyrics'] = 'USLT'; + $ID3v2ShortFrameNameLookup[3]['commercial'] = 'WCOM'; + $ID3v2ShortFrameNameLookup[3]['copyright_information'] = 'WCOP'; + $ID3v2ShortFrameNameLookup[3]['url_file'] = 'WOAF'; + $ID3v2ShortFrameNameLookup[3]['url_artist'] = 'WOAR'; + $ID3v2ShortFrameNameLookup[3]['url_source'] = 'WOAS'; + $ID3v2ShortFrameNameLookup[3]['url_station'] = 'WORS'; + $ID3v2ShortFrameNameLookup[3]['payment'] = 'WPAY'; + $ID3v2ShortFrameNameLookup[3]['url_publisher'] = 'WPUB'; + $ID3v2ShortFrameNameLookup[3]['url_user'] = 'WXXX'; + + // The above are common to ID3v2.3 and ID3v2.4 + // so copy them to ID3v2.4 before adding specifics for 2.3 and 2.4 + $ID3v2ShortFrameNameLookup[4] = $ID3v2ShortFrameNameLookup[3]; + + // The following are unique to ID3v2.3 + $ID3v2ShortFrameNameLookup[3]['equalisation'] = 'EQUA'; + $ID3v2ShortFrameNameLookup[3]['involved_people_list'] = 'IPLS'; + $ID3v2ShortFrameNameLookup[3]['relative_volume_adjustment'] = 'RVAD'; + $ID3v2ShortFrameNameLookup[3]['date'] = 'TDAT'; + $ID3v2ShortFrameNameLookup[3]['time'] = 'TIME'; + $ID3v2ShortFrameNameLookup[3]['original_release_year'] = 'TORY'; + $ID3v2ShortFrameNameLookup[3]['recording_dates'] = 'TRDA'; + $ID3v2ShortFrameNameLookup[3]['size'] = 'TSIZ'; + $ID3v2ShortFrameNameLookup[3]['year'] = 'TYER'; + + + // The following are unique to ID3v2.4 + $ID3v2ShortFrameNameLookup[4]['audio_seek_point_index'] = 'ASPI'; + $ID3v2ShortFrameNameLookup[4]['equalisation'] = 'EQU2'; + $ID3v2ShortFrameNameLookup[4]['relative_volume_adjustment'] = 'RVA2'; + $ID3v2ShortFrameNameLookup[4]['seek'] = 'SEEK'; + $ID3v2ShortFrameNameLookup[4]['signature'] = 'SIGN'; + $ID3v2ShortFrameNameLookup[4]['encoding_time'] = 'TDEN'; + $ID3v2ShortFrameNameLookup[4]['original_release_time'] = 'TDOR'; + $ID3v2ShortFrameNameLookup[4]['recording_time'] = 'TDRC'; + $ID3v2ShortFrameNameLookup[4]['release_time'] = 'TDRL'; + $ID3v2ShortFrameNameLookup[4]['tagging_time'] = 'TDTG'; + $ID3v2ShortFrameNameLookup[4]['involved_people_list'] = 'TIPL'; + $ID3v2ShortFrameNameLookup[4]['musician_credits_list'] = 'TMCL'; + $ID3v2ShortFrameNameLookup[4]['mood'] = 'TMOO'; + $ID3v2ShortFrameNameLookup[4]['produced_notice'] = 'TPRO'; + $ID3v2ShortFrameNameLookup[4]['album_sort_order'] = 'TSOA'; + $ID3v2ShortFrameNameLookup[4]['performer_sort_order'] = 'TSOP'; + $ID3v2ShortFrameNameLookup[4]['title_sort_order'] = 'TSOT'; + $ID3v2ShortFrameNameLookup[4]['set_subtitle'] = 'TSST'; + } + return @$ID3v2ShortFrameNameLookup[$majorversion][strtolower($long_description)]; + + } + +} + +?> diff --git a/data/images/Didier-Petit-de-Meurville.jpg b/data/images/Didier-Petit-de-Meurville.jpg new file mode 100644 index 0000000..d424058 Binary files /dev/null and b/data/images/Didier-Petit-de-Meurville.jpg differ diff --git a/data/images/LOGODI-tx.jpg b/data/images/LOGODI-tx.jpg new file mode 100644 index 0000000..fad3096 Binary files /dev/null and b/data/images/LOGODI-tx.jpg differ diff --git a/data/images/Pietro-Bubani.jpg b/data/images/Pietro-Bubani.jpg new file mode 100644 index 0000000..f663d0c Binary files /dev/null and b/data/images/Pietro-Bubani.jpg differ diff --git a/data/images/Thumbs.db b/data/images/Thumbs.db new file mode 100644 index 0000000..b81f94b Binary files /dev/null and b/data/images/Thumbs.db differ diff --git a/data/images/bg.jpg b/data/images/bg.jpg new file mode 100644 index 0000000..d85966d Binary files /dev/null and b/data/images/bg.jpg differ diff --git a/data/images/bg.png b/data/images/bg.png new file mode 100644 index 0000000..32a9761 Binary files /dev/null and b/data/images/bg.png differ diff --git a/data/images/cc.gif b/data/images/cc.gif new file mode 100644 index 0000000..0e935cd Binary files /dev/null and b/data/images/cc.gif differ diff --git a/data/images/cc.jpg b/data/images/cc.jpg new file mode 100644 index 0000000..0e74fb4 Binary files /dev/null and b/data/images/cc.jpg differ diff --git a/data/images/couple.png b/data/images/couple.png new file mode 100644 index 0000000..376ac61 Binary files /dev/null and b/data/images/couple.png differ diff --git a/data/images/cristinaenea-fundazioa.jpg b/data/images/cristinaenea-fundazioa.jpg new file mode 100644 index 0000000..38d4de9 Binary files /dev/null and b/data/images/cristinaenea-fundazioa.jpg differ diff --git a/data/images/cristinaenea.jpg b/data/images/cristinaenea.jpg new file mode 100644 index 0000000..aa22736 Binary files /dev/null and b/data/images/cristinaenea.jpg differ diff --git a/data/images/cristinaenea.jpg.LCK b/data/images/cristinaenea.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/cristinaenea.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/enredaderas.png b/data/images/enredaderas.png new file mode 100644 index 0000000..c0b7a09 Binary files /dev/null and b/data/images/enredaderas.png differ diff --git a/data/images/enredaderas.png.LCK b/data/images/enredaderas.png.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/enredaderas.png.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/frame-bio.jpg b/data/images/frame-bio.jpg new file mode 100644 index 0000000..643a21b Binary files /dev/null and b/data/images/frame-bio.jpg differ diff --git a/data/images/frame-h.jpg b/data/images/frame-h.jpg new file mode 100644 index 0000000..d2dab0b Binary files /dev/null and b/data/images/frame-h.jpg differ diff --git a/data/images/frame-h.jpg.LCK b/data/images/frame-h.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/frame-h.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/frame-v.jpg b/data/images/frame-v.jpg new file mode 100644 index 0000000..750806f Binary files /dev/null and b/data/images/frame-v.jpg differ diff --git a/data/images/frame-v.jpg.LCK b/data/images/frame-v.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/frame-v.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/frame.jpg b/data/images/frame.jpg new file mode 100644 index 0000000..d02af40 Binary files /dev/null and b/data/images/frame.jpg differ diff --git a/data/images/frame_m.jpg b/data/images/frame_m.jpg new file mode 100644 index 0000000..8e3fd66 Binary files /dev/null and b/data/images/frame_m.jpg differ diff --git a/data/images/gipuzkoa_foru_aldundia.gif b/data/images/gipuzkoa_foru_aldundia.gif new file mode 100644 index 0000000..fca748a Binary files /dev/null and b/data/images/gipuzkoa_foru_aldundia.gif differ diff --git a/data/images/gnet.gif b/data/images/gnet.gif new file mode 100644 index 0000000..c2c2855 Binary files /dev/null and b/data/images/gnet.gif differ diff --git a/data/images/h1.png b/data/images/h1.png new file mode 100644 index 0000000..e11abcf Binary files /dev/null and b/data/images/h1.png differ diff --git a/data/images/h1_es.png b/data/images/h1_es.png new file mode 100644 index 0000000..e4cea5b Binary files /dev/null and b/data/images/h1_es.png differ diff --git a/data/images/h1_eu.png b/data/images/h1_eu.png new file mode 100644 index 0000000..e994dcd Binary files /dev/null and b/data/images/h1_eu.png differ diff --git a/data/images/h1_it.png b/data/images/h1_it.png new file mode 100644 index 0000000..1017cda Binary files /dev/null and b/data/images/h1_it.png differ diff --git a/data/images/header_1.jpg b/data/images/header_1.jpg new file mode 100644 index 0000000..7c18a96 Binary files /dev/null and b/data/images/header_1.jpg differ diff --git a/data/images/img_plantilla.jpg b/data/images/img_plantilla.jpg new file mode 100644 index 0000000..96b0585 Binary files /dev/null and b/data/images/img_plantilla.jpg differ diff --git a/data/images/li_bg.jpg b/data/images/li_bg.jpg new file mode 100644 index 0000000..e07f43c Binary files /dev/null and b/data/images/li_bg.jpg differ diff --git a/data/images/line-h.jpg b/data/images/line-h.jpg new file mode 100644 index 0000000..7cdb4ea Binary files /dev/null and b/data/images/line-h.jpg differ diff --git a/data/images/line.jpg b/data/images/line.jpg new file mode 100644 index 0000000..2da2ee1 Binary files /dev/null and b/data/images/line.jpg differ diff --git a/data/images/logo-ayuntamiento-sansebastian.jpg b/data/images/logo-ayuntamiento-sansebastian.jpg new file mode 100644 index 0000000..b69e369 Binary files /dev/null and b/data/images/logo-ayuntamiento-sansebastian.jpg differ diff --git a/data/images/logo-diputacion-patrono-fundacion.jpg b/data/images/logo-diputacion-patrono-fundacion.jpg new file mode 100644 index 0000000..d85c1b8 Binary files /dev/null and b/data/images/logo-diputacion-patrono-fundacion.jpg differ diff --git a/data/images/logo-iberdrola.jpg b/data/images/logo-iberdrola.jpg new file mode 100644 index 0000000..d77eafc Binary files /dev/null and b/data/images/logo-iberdrola.jpg differ diff --git a/data/images/logo_ace.jpg b/data/images/logo_ace.jpg new file mode 100644 index 0000000..adfcc42 Binary files /dev/null and b/data/images/logo_ace.jpg differ diff --git a/data/images/logo_acuarelistas_vascos.jpg b/data/images/logo_acuarelistas_vascos.jpg new file mode 100644 index 0000000..198be78 Binary files /dev/null and b/data/images/logo_acuarelistas_vascos.jpg differ diff --git a/data/images/logo_archiginnasio.jpg b/data/images/logo_archiginnasio.jpg new file mode 100644 index 0000000..e7cbb5d Binary files /dev/null and b/data/images/logo_archiginnasio.jpg differ diff --git a/data/images/logo_comune_di_bologna.jpg b/data/images/logo_comune_di_bologna.jpg new file mode 100644 index 0000000..4161574 Binary files /dev/null and b/data/images/logo_comune_di_bologna.jpg differ diff --git a/data/images/logo_cristinaenea.jpg b/data/images/logo_cristinaenea.jpg new file mode 100644 index 0000000..5f317a9 Binary files /dev/null and b/data/images/logo_cristinaenea.jpg differ diff --git a/data/images/logo_donostiako_udala.jpg b/data/images/logo_donostiako_udala.jpg new file mode 100644 index 0000000..8530873 Binary files /dev/null and b/data/images/logo_donostiako_udala.jpg differ diff --git a/data/images/logo_gipuzkoako_foru_aldundia.jpg b/data/images/logo_gipuzkoako_foru_aldundia.jpg new file mode 100644 index 0000000..2964f3b Binary files /dev/null and b/data/images/logo_gipuzkoako_foru_aldundia.jpg differ diff --git a/data/images/logo_gipuzkoako_foru_aldundia2.jpg b/data/images/logo_gipuzkoako_foru_aldundia2.jpg new file mode 100644 index 0000000..ca9779a Binary files /dev/null and b/data/images/logo_gipuzkoako_foru_aldundia2.jpg differ diff --git a/data/images/logo_gipuzkoakultura.gif b/data/images/logo_gipuzkoakultura.gif new file mode 100644 index 0000000..741daa2 Binary files /dev/null and b/data/images/logo_gipuzkoakultura.gif differ diff --git a/data/images/logo_iberdrola.jpg b/data/images/logo_iberdrola.jpg new file mode 100644 index 0000000..76ead07 Binary files /dev/null and b/data/images/logo_iberdrola.jpg differ diff --git a/data/images/logo_mugaritz.jpg b/data/images/logo_mugaritz.jpg new file mode 100644 index 0000000..f2e273a Binary files /dev/null and b/data/images/logo_mugaritz.jpg differ diff --git a/data/images/logo_museo_civico_del_risorgimento.jpg b/data/images/logo_museo_civico_del_risorgimento.jpg new file mode 100644 index 0000000..fcab81e Binary files /dev/null and b/data/images/logo_museo_civico_del_risorgimento.jpg differ diff --git a/data/images/logo_museo_civico_delle_cappuccine.jpg b/data/images/logo_museo_civico_delle_cappuccine.jpg new file mode 100644 index 0000000..670bd9e Binary files /dev/null and b/data/images/logo_museo_civico_delle_cappuccine.jpg differ diff --git a/data/images/logo_regione_emilia_romagna.jpg b/data/images/logo_regione_emilia_romagna.jpg new file mode 100644 index 0000000..86900a1 Binary files /dev/null and b/data/images/logo_regione_emilia_romagna.jpg differ diff --git a/data/images/logo_san_sebastian_donostia_2016.jpg b/data/images/logo_san_sebastian_donostia_2016.jpg new file mode 100644 index 0000000..2a65341 Binary files /dev/null and b/data/images/logo_san_sebastian_donostia_2016.jpg differ diff --git a/data/images/logo_zm.jpg b/data/images/logo_zm.jpg new file mode 100644 index 0000000..b18ad98 Binary files /dev/null and b/data/images/logo_zm.jpg differ diff --git a/data/images/loreak/003224.jpg b/data/images/loreak/003224.jpg new file mode 100644 index 0000000..2c09d06 Binary files /dev/null and b/data/images/loreak/003224.jpg differ diff --git a/data/images/loreak/A1_Cb_2b_IMG-RPR-01.jpg b/data/images/loreak/A1_Cb_2b_IMG-RPR-01.jpg new file mode 100644 index 0000000..6cc627d Binary files /dev/null and b/data/images/loreak/A1_Cb_2b_IMG-RPR-01.jpg differ diff --git a/data/images/loreak/A1_Cb_2b_IMG-RPR-01completa.jpg b/data/images/loreak/A1_Cb_2b_IMG-RPR-01completa.jpg new file mode 100644 index 0000000..cca3bc3 Binary files /dev/null and b/data/images/loreak/A1_Cb_2b_IMG-RPR-01completa.jpg differ diff --git a/data/images/loreak/A1_Cb_3a_IMG-RPR-02.jpg b/data/images/loreak/A1_Cb_3a_IMG-RPR-02.jpg new file mode 100644 index 0000000..4c83ff1 Binary files /dev/null and b/data/images/loreak/A1_Cb_3a_IMG-RPR-02.jpg differ diff --git a/data/images/loreak/A1_Cb_3a_IMG-RPR-03.jpg b/data/images/loreak/A1_Cb_3a_IMG-RPR-03.jpg new file mode 100644 index 0000000..3d802ca Binary files /dev/null and b/data/images/loreak/A1_Cb_3a_IMG-RPR-03.jpg differ diff --git a/data/images/loreak/A1_Cb_3a_IMG-RPR-04.jpg b/data/images/loreak/A1_Cb_3a_IMG-RPR-04.jpg new file mode 100644 index 0000000..e0130c7 Binary files /dev/null and b/data/images/loreak/A1_Cb_3a_IMG-RPR-04.jpg differ diff --git a/data/images/loreak/A1_PMGR_2_IMG-RPR-02.jpg b/data/images/loreak/A1_PMGR_2_IMG-RPR-02.jpg new file mode 100644 index 0000000..c7f998b Binary files /dev/null and b/data/images/loreak/A1_PMGR_2_IMG-RPR-02.jpg differ diff --git a/data/images/loreak/A1_PMGR_2_IMG-RPR-04.jpg b/data/images/loreak/A1_PMGR_2_IMG-RPR-04.jpg new file mode 100644 index 0000000..db67362 Binary files /dev/null and b/data/images/loreak/A1_PMGR_2_IMG-RPR-04.jpg differ diff --git a/data/images/loreak/BU_03_Armeria_euscadiensis2.jpg b/data/images/loreak/BU_03_Armeria_euscadiensis2.jpg new file mode 100644 index 0000000..991ce97 Binary files /dev/null and b/data/images/loreak/BU_03_Armeria_euscadiensis2.jpg differ diff --git a/data/images/loreak/BU_03_Armeria_euscadiensis2_c.jpg b/data/images/loreak/BU_03_Armeria_euscadiensis2_c.jpg new file mode 100644 index 0000000..346530f Binary files /dev/null and b/data/images/loreak/BU_03_Armeria_euscadiensis2_c.jpg differ diff --git a/data/images/loreak/BU_07_Cardamine pratensis.jpg b/data/images/loreak/BU_07_Cardamine pratensis.jpg new file mode 100644 index 0000000..e62de78 Binary files /dev/null and b/data/images/loreak/BU_07_Cardamine pratensis.jpg differ diff --git a/data/images/loreak/BU_07_Cardamine_pratensis_c.jpg b/data/images/loreak/BU_07_Cardamine_pratensis_c.jpg new file mode 100644 index 0000000..8adc5ad Binary files /dev/null and b/data/images/loreak/BU_07_Cardamine_pratensis_c.jpg differ diff --git a/data/images/loreak/BU_11_Cornus sanguinea.jpg b/data/images/loreak/BU_11_Cornus sanguinea.jpg new file mode 100644 index 0000000..215113a Binary files /dev/null and b/data/images/loreak/BU_11_Cornus sanguinea.jpg differ diff --git a/data/images/loreak/BU_11_Cornus_sanguinea_c.jpg b/data/images/loreak/BU_11_Cornus_sanguinea_c.jpg new file mode 100644 index 0000000..24d17ae Binary files /dev/null and b/data/images/loreak/BU_11_Cornus_sanguinea_c.jpg differ diff --git a/data/images/loreak/BU_12_Crataegus_sp.jpg b/data/images/loreak/BU_12_Crataegus_sp.jpg new file mode 100644 index 0000000..ba5f9a9 Binary files /dev/null and b/data/images/loreak/BU_12_Crataegus_sp.jpg differ diff --git a/data/images/loreak/BU_12_Crataegus_sp_c.jpg b/data/images/loreak/BU_12_Crataegus_sp_c.jpg new file mode 100644 index 0000000..94e4740 Binary files /dev/null and b/data/images/loreak/BU_12_Crataegus_sp_c.jpg differ diff --git a/data/images/loreak/BU_13_Crocus nudiflorus.jpg b/data/images/loreak/BU_13_Crocus nudiflorus.jpg new file mode 100644 index 0000000..dabc217 Binary files /dev/null and b/data/images/loreak/BU_13_Crocus nudiflorus.jpg differ diff --git a/data/images/loreak/BU_13_Crocus nudiflorus_c1.jpg b/data/images/loreak/BU_13_Crocus nudiflorus_c1.jpg new file mode 100644 index 0000000..e7bc631 Binary files /dev/null and b/data/images/loreak/BU_13_Crocus nudiflorus_c1.jpg differ diff --git a/data/images/loreak/BU_14_Dianthus_cfr_ hyssopifolius.jpg b/data/images/loreak/BU_14_Dianthus_cfr_ hyssopifolius.jpg new file mode 100644 index 0000000..5bf68c7 Binary files /dev/null and b/data/images/loreak/BU_14_Dianthus_cfr_ hyssopifolius.jpg differ diff --git a/data/images/loreak/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg b/data/images/loreak/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg new file mode 100644 index 0000000..a373817 Binary files /dev/null and b/data/images/loreak/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg differ diff --git a/data/images/loreak/BU_15_Erica cinerea_c1.jpg b/data/images/loreak/BU_15_Erica cinerea_c1.jpg new file mode 100644 index 0000000..72854b6 Binary files /dev/null and b/data/images/loreak/BU_15_Erica cinerea_c1.jpg differ diff --git a/data/images/loreak/BU_15_Erica_cinerea.jpg b/data/images/loreak/BU_15_Erica_cinerea.jpg new file mode 100644 index 0000000..09f693f Binary files /dev/null and b/data/images/loreak/BU_15_Erica_cinerea.jpg differ diff --git a/data/images/loreak/BU_17_Helleborus_viridis.jpg b/data/images/loreak/BU_17_Helleborus_viridis.jpg new file mode 100644 index 0000000..20bf95c Binary files /dev/null and b/data/images/loreak/BU_17_Helleborus_viridis.jpg differ diff --git a/data/images/loreak/BU_17_Helleborus_viridis_c.jpg b/data/images/loreak/BU_17_Helleborus_viridis_c.jpg new file mode 100644 index 0000000..fb042ef Binary files /dev/null and b/data/images/loreak/BU_17_Helleborus_viridis_c.jpg differ diff --git a/data/images/loreak/BU_21_Knautia_arvensis.jpg b/data/images/loreak/BU_21_Knautia_arvensis.jpg new file mode 100644 index 0000000..0fb9080 Binary files /dev/null and b/data/images/loreak/BU_21_Knautia_arvensis.jpg differ diff --git a/data/images/loreak/BU_21_Knautia_arvensis_c.jpg b/data/images/loreak/BU_21_Knautia_arvensis_c.jpg new file mode 100644 index 0000000..e79467b Binary files /dev/null and b/data/images/loreak/BU_21_Knautia_arvensis_c.jpg differ diff --git a/data/images/loreak/BU_23_Lotus_ corniculatus.jpg b/data/images/loreak/BU_23_Lotus_ corniculatus.jpg new file mode 100644 index 0000000..8fab43c Binary files /dev/null and b/data/images/loreak/BU_23_Lotus_ corniculatus.jpg differ diff --git a/data/images/loreak/BU_23_Lotus_corniculatus_c.jpg b/data/images/loreak/BU_23_Lotus_corniculatus_c.jpg new file mode 100644 index 0000000..a1ee7fc Binary files /dev/null and b/data/images/loreak/BU_23_Lotus_corniculatus_c.jpg differ diff --git a/data/images/loreak/BU_26_Narcissus bulbocodium_c.jpg b/data/images/loreak/BU_26_Narcissus bulbocodium_c.jpg new file mode 100644 index 0000000..c11fd3e Binary files /dev/null and b/data/images/loreak/BU_26_Narcissus bulbocodium_c.jpg differ diff --git a/data/images/loreak/BU_26_Narcissus_bulbocodium.jpg b/data/images/loreak/BU_26_Narcissus_bulbocodium.jpg new file mode 100644 index 0000000..deffec2 Binary files /dev/null and b/data/images/loreak/BU_26_Narcissus_bulbocodium.jpg differ diff --git a/data/images/loreak/BU_27_Oxalis_ acetosella.jpg b/data/images/loreak/BU_27_Oxalis_ acetosella.jpg new file mode 100644 index 0000000..d0e3cd8 Binary files /dev/null and b/data/images/loreak/BU_27_Oxalis_ acetosella.jpg differ diff --git a/data/images/loreak/BU_27_Oxalis_ acetosella_c.jpg b/data/images/loreak/BU_27_Oxalis_ acetosella_c.jpg new file mode 100644 index 0000000..b9b863b Binary files /dev/null and b/data/images/loreak/BU_27_Oxalis_ acetosella_c.jpg differ diff --git a/data/images/loreak/BU_28_Pinguicula_lusitanica2.jpg b/data/images/loreak/BU_28_Pinguicula_lusitanica2.jpg new file mode 100644 index 0000000..310cf06 Binary files /dev/null and b/data/images/loreak/BU_28_Pinguicula_lusitanica2.jpg differ diff --git a/data/images/loreak/BU_28_Pinguicula_lusitanica2_c.jpg b/data/images/loreak/BU_28_Pinguicula_lusitanica2_c.jpg new file mode 100644 index 0000000..74f4ee4 Binary files /dev/null and b/data/images/loreak/BU_28_Pinguicula_lusitanica2_c.jpg differ diff --git a/data/images/loreak/BU_30_Potentilla_reptans.jpg b/data/images/loreak/BU_30_Potentilla_reptans.jpg new file mode 100644 index 0000000..4c77f96 Binary files /dev/null and b/data/images/loreak/BU_30_Potentilla_reptans.jpg differ diff --git a/data/images/loreak/BU_30_Potentilla_reptans_c.jpg b/data/images/loreak/BU_30_Potentilla_reptans_c.jpg new file mode 100644 index 0000000..2ebcc3a Binary files /dev/null and b/data/images/loreak/BU_30_Potentilla_reptans_c.jpg differ diff --git a/data/images/loreak/BU_31_Primula_vulgaris.jpg b/data/images/loreak/BU_31_Primula_vulgaris.jpg new file mode 100644 index 0000000..6e93ac6 Binary files /dev/null and b/data/images/loreak/BU_31_Primula_vulgaris.jpg differ diff --git a/data/images/loreak/BU_31_Primula_vulgaris_c.jpg b/data/images/loreak/BU_31_Primula_vulgaris_c.jpg new file mode 100644 index 0000000..f8b022f Binary files /dev/null and b/data/images/loreak/BU_31_Primula_vulgaris_c.jpg differ diff --git a/data/images/loreak/BU_32_Smilax _aspera_c.jpg b/data/images/loreak/BU_32_Smilax _aspera_c.jpg new file mode 100644 index 0000000..568b80c Binary files /dev/null and b/data/images/loreak/BU_32_Smilax _aspera_c.jpg differ diff --git a/data/images/loreak/BU_32_Smilax_aspera.jpg b/data/images/loreak/BU_32_Smilax_aspera.jpg new file mode 100644 index 0000000..7680486 Binary files /dev/null and b/data/images/loreak/BU_32_Smilax_aspera.jpg differ diff --git a/data/images/loreak/Bu_03Armeria _euscadiensis.jpg b/data/images/loreak/Bu_03Armeria _euscadiensis.jpg new file mode 100644 index 0000000..dac9575 Binary files /dev/null and b/data/images/loreak/Bu_03Armeria _euscadiensis.jpg differ diff --git a/data/images/loreak/Bu_05_Asphodelus_albus.jpg b/data/images/loreak/Bu_05_Asphodelus_albus.jpg new file mode 100644 index 0000000..8aeb133 Binary files /dev/null and b/data/images/loreak/Bu_05_Asphodelus_albus.jpg differ diff --git a/data/images/loreak/Bu_05_Asphodelus_albus_c.jpg b/data/images/loreak/Bu_05_Asphodelus_albus_c.jpg new file mode 100644 index 0000000..bb00fed Binary files /dev/null and b/data/images/loreak/Bu_05_Asphodelus_albus_c.jpg differ diff --git a/data/images/loreak/ZM_01_anagallis003197.jpg b/data/images/loreak/ZM_01_anagallis003197.jpg new file mode 100644 index 0000000..891e723 Binary files /dev/null and b/data/images/loreak/ZM_01_anagallis003197.jpg differ diff --git a/data/images/loreak/ZM_01_anagallis003197.jpg.LCK b/data/images/loreak/ZM_01_anagallis003197.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_01_anagallis003197.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_02_angelica003205.jpg b/data/images/loreak/ZM_02_angelica003205.jpg new file mode 100644 index 0000000..596e7cd Binary files /dev/null and b/data/images/loreak/ZM_02_angelica003205.jpg differ diff --git a/data/images/loreak/ZM_02_angelica003205.jpg.LCK b/data/images/loreak/ZM_02_angelica003205.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_02_angelica003205.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_03_armeria003129.jpg b/data/images/loreak/ZM_03_armeria003129.jpg new file mode 100644 index 0000000..15e754e Binary files /dev/null and b/data/images/loreak/ZM_03_armeria003129.jpg differ diff --git a/data/images/loreak/ZM_03_armeria003129.jpg.LCK b/data/images/loreak/ZM_03_armeria003129.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_03_armeria003129.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_03_armeria003129h.jpg b/data/images/loreak/ZM_03_armeria003129h.jpg new file mode 100644 index 0000000..8cd7c97 Binary files /dev/null and b/data/images/loreak/ZM_03_armeria003129h.jpg differ diff --git a/data/images/loreak/ZM_03_armeria003129h.jpg.LCK b/data/images/loreak/ZM_03_armeria003129h.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_03_armeria003129h.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_04_arum003114.jpg b/data/images/loreak/ZM_04_arum003114.jpg new file mode 100644 index 0000000..95b7eeb Binary files /dev/null and b/data/images/loreak/ZM_04_arum003114.jpg differ diff --git a/data/images/loreak/ZM_04_arum003114.jpg.LCK b/data/images/loreak/ZM_04_arum003114.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_04_arum003114.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_05_asphodelus003180.jpg b/data/images/loreak/ZM_05_asphodelus003180.jpg new file mode 100644 index 0000000..38c23ee Binary files /dev/null and b/data/images/loreak/ZM_05_asphodelus003180.jpg differ diff --git a/data/images/loreak/ZM_05_asphodelus003180.jpg.LCK b/data/images/loreak/ZM_05_asphodelus003180.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_05_asphodelus003180.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_06_calyategia003146.jpg b/data/images/loreak/ZM_06_calyategia003146.jpg new file mode 100644 index 0000000..06433ad Binary files /dev/null and b/data/images/loreak/ZM_06_calyategia003146.jpg differ diff --git a/data/images/loreak/ZM_06_calyategia003146.jpg.LCK b/data/images/loreak/ZM_06_calyategia003146.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_06_calyategia003146.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_07_cardanime003104.jpg b/data/images/loreak/ZM_07_cardanime003104.jpg new file mode 100644 index 0000000..38a3bd2 Binary files /dev/null and b/data/images/loreak/ZM_07_cardanime003104.jpg differ diff --git a/data/images/loreak/ZM_07_cardanime003104.jpg.LCK b/data/images/loreak/ZM_07_cardanime003104.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_07_cardanime003104.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_08_carlina003088.jpg b/data/images/loreak/ZM_08_carlina003088.jpg new file mode 100644 index 0000000..638682d Binary files /dev/null and b/data/images/loreak/ZM_08_carlina003088.jpg differ diff --git a/data/images/loreak/ZM_08_carlina003088.jpg.LCK b/data/images/loreak/ZM_08_carlina003088.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_08_carlina003088.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_09_clematis003151.jpg b/data/images/loreak/ZM_09_clematis003151.jpg new file mode 100644 index 0000000..d775947 Binary files /dev/null and b/data/images/loreak/ZM_09_clematis003151.jpg differ diff --git a/data/images/loreak/ZM_09_clematis003151.jpg.LCK b/data/images/loreak/ZM_09_clematis003151.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_09_clematis003151.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_10_convolvulus003148.jpg b/data/images/loreak/ZM_10_convolvulus003148.jpg new file mode 100644 index 0000000..f685031 Binary files /dev/null and b/data/images/loreak/ZM_10_convolvulus003148.jpg differ diff --git a/data/images/loreak/ZM_10_convolvulus003148.jpg.LCK b/data/images/loreak/ZM_10_convolvulus003148.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_10_convolvulus003148.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_11_cornus003140.jpg b/data/images/loreak/ZM_11_cornus003140.jpg new file mode 100644 index 0000000..be3c52a Binary files /dev/null and b/data/images/loreak/ZM_11_cornus003140.jpg differ diff --git a/data/images/loreak/ZM_11_cornus003140.jpg.LCK b/data/images/loreak/ZM_11_cornus003140.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_11_cornus003140.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_12_crataegus003136.jpg b/data/images/loreak/ZM_12_crataegus003136.jpg new file mode 100644 index 0000000..21bb73a Binary files /dev/null and b/data/images/loreak/ZM_12_crataegus003136.jpg differ diff --git a/data/images/loreak/ZM_12_crataegus003136.jpg.LCK b/data/images/loreak/ZM_12_crataegus003136.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_12_crataegus003136.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_13_crocus003093.jpg b/data/images/loreak/ZM_13_crocus003093.jpg new file mode 100644 index 0000000..09d0151 Binary files /dev/null and b/data/images/loreak/ZM_13_crocus003093.jpg differ diff --git a/data/images/loreak/ZM_13_crocus003093.jpg.LCK b/data/images/loreak/ZM_13_crocus003093.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_13_crocus003093.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_14_dianthus003087.jpg b/data/images/loreak/ZM_14_dianthus003087.jpg new file mode 100644 index 0000000..c89008b Binary files /dev/null and b/data/images/loreak/ZM_14_dianthus003087.jpg differ diff --git a/data/images/loreak/ZM_14_dianthus003087.jpg.LCK b/data/images/loreak/ZM_14_dianthus003087.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_14_dianthus003087.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_15_erica003067.jpg b/data/images/loreak/ZM_15_erica003067.jpg new file mode 100644 index 0000000..ae4bc12 Binary files /dev/null and b/data/images/loreak/ZM_15_erica003067.jpg differ diff --git a/data/images/loreak/ZM_15_erica003067.jpg.LCK b/data/images/loreak/ZM_15_erica003067.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_15_erica003067.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_16_euphorbia003101.jpg b/data/images/loreak/ZM_16_euphorbia003101.jpg new file mode 100644 index 0000000..fa80058 Binary files /dev/null and b/data/images/loreak/ZM_16_euphorbia003101.jpg differ diff --git a/data/images/loreak/ZM_16_euphorbia003101.jpg.LCK b/data/images/loreak/ZM_16_euphorbia003101.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_16_euphorbia003101.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_17_helleborus003097.jpg b/data/images/loreak/ZM_17_helleborus003097.jpg new file mode 100644 index 0000000..5cd22a4 Binary files /dev/null and b/data/images/loreak/ZM_17_helleborus003097.jpg differ diff --git a/data/images/loreak/ZM_17_helleborus003097.jpg.LCK b/data/images/loreak/ZM_17_helleborus003097.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_17_helleborus003097.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_18_humulus003220.jpg b/data/images/loreak/ZM_18_humulus003220.jpg new file mode 100644 index 0000000..0a2783f Binary files /dev/null and b/data/images/loreak/ZM_18_humulus003220.jpg differ diff --git a/data/images/loreak/ZM_18_humulus003220.jpg.LCK b/data/images/loreak/ZM_18_humulus003220.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_18_humulus003220.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_19_hypericum003076.jpg b/data/images/loreak/ZM_19_hypericum003076.jpg new file mode 100644 index 0000000..b832983 Binary files /dev/null and b/data/images/loreak/ZM_19_hypericum003076.jpg differ diff --git a/data/images/loreak/ZM_19_hypericum003076.jpg.LCK b/data/images/loreak/ZM_19_hypericum003076.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_19_hypericum003076.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_20_ilex003185.jpg b/data/images/loreak/ZM_20_ilex003185.jpg new file mode 100644 index 0000000..289f42e Binary files /dev/null and b/data/images/loreak/ZM_20_ilex003185.jpg differ diff --git a/data/images/loreak/ZM_20_ilex003185.jpg.LCK b/data/images/loreak/ZM_20_ilex003185.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_20_ilex003185.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_21_knautia003090.jpg b/data/images/loreak/ZM_21_knautia003090.jpg new file mode 100644 index 0000000..08bfd4f Binary files /dev/null and b/data/images/loreak/ZM_21_knautia003090.jpg differ diff --git a/data/images/loreak/ZM_21_knautia003090.jpg.LCK b/data/images/loreak/ZM_21_knautia003090.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_21_knautia003090.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_22_lilium003143.jpg b/data/images/loreak/ZM_22_lilium003143.jpg new file mode 100644 index 0000000..792a0ef Binary files /dev/null and b/data/images/loreak/ZM_22_lilium003143.jpg differ diff --git a/data/images/loreak/ZM_22_lilium003143.jpg.LCK b/data/images/loreak/ZM_22_lilium003143.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_22_lilium003143.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_23_lotus003128.jpg b/data/images/loreak/ZM_23_lotus003128.jpg new file mode 100644 index 0000000..148deda Binary files /dev/null and b/data/images/loreak/ZM_23_lotus003128.jpg differ diff --git a/data/images/loreak/ZM_23_lotus003128.jpg.LCK b/data/images/loreak/ZM_23_lotus003128.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_23_lotus003128.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_24_lythrum003065.jpg b/data/images/loreak/ZM_24_lythrum003065.jpg new file mode 100644 index 0000000..fb49efc Binary files /dev/null and b/data/images/loreak/ZM_24_lythrum003065.jpg differ diff --git a/data/images/loreak/ZM_24_lythrum003065.jpg.LCK b/data/images/loreak/ZM_24_lythrum003065.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_24_lythrum003065.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_25_mentha003193.jpg b/data/images/loreak/ZM_25_mentha003193.jpg new file mode 100644 index 0000000..32318c4 Binary files /dev/null and b/data/images/loreak/ZM_25_mentha003193.jpg differ diff --git a/data/images/loreak/ZM_25_mentha003193.jpg.LCK b/data/images/loreak/ZM_25_mentha003193.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_25_mentha003193.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_26_narcissus003113.jpg b/data/images/loreak/ZM_26_narcissus003113.jpg new file mode 100644 index 0000000..746a481 Binary files /dev/null and b/data/images/loreak/ZM_26_narcissus003113.jpg differ diff --git a/data/images/loreak/ZM_26_narcissus003113.jpg.LCK b/data/images/loreak/ZM_26_narcissus003113.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_26_narcissus003113.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_27_oxalis003191.jpg b/data/images/loreak/ZM_27_oxalis003191.jpg new file mode 100644 index 0000000..5b90de7 Binary files /dev/null and b/data/images/loreak/ZM_27_oxalis003191.jpg differ diff --git a/data/images/loreak/ZM_27_oxalis003191.jpg.LCK b/data/images/loreak/ZM_27_oxalis003191.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_27_oxalis003191.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_28_pinguicula003115.jpg b/data/images/loreak/ZM_28_pinguicula003115.jpg new file mode 100644 index 0000000..2a79ddb Binary files /dev/null and b/data/images/loreak/ZM_28_pinguicula003115.jpg differ diff --git a/data/images/loreak/ZM_28_pinguicula003115.jpg.LCK b/data/images/loreak/ZM_28_pinguicula003115.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_28_pinguicula003115.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_29_potentilla003069.jpg b/data/images/loreak/ZM_29_potentilla003069.jpg new file mode 100644 index 0000000..2a71848 Binary files /dev/null and b/data/images/loreak/ZM_29_potentilla003069.jpg differ diff --git a/data/images/loreak/ZM_29_potentilla003069.jpg.LCK b/data/images/loreak/ZM_29_potentilla003069.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_29_potentilla003069.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_30_potentilla003145.jpg b/data/images/loreak/ZM_30_potentilla003145.jpg new file mode 100644 index 0000000..7a4768c Binary files /dev/null and b/data/images/loreak/ZM_30_potentilla003145.jpg differ diff --git a/data/images/loreak/ZM_30_potentilla003145.jpg.LCK b/data/images/loreak/ZM_30_potentilla003145.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_30_potentilla003145.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_31_primula003105.jpg b/data/images/loreak/ZM_31_primula003105.jpg new file mode 100644 index 0000000..b3b87e2 Binary files /dev/null and b/data/images/loreak/ZM_31_primula003105.jpg differ diff --git a/data/images/loreak/ZM_31_primula003105.jpg.LCK b/data/images/loreak/ZM_31_primula003105.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_31_primula003105.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_32_smilax003077.jpg b/data/images/loreak/ZM_32_smilax003077.jpg new file mode 100644 index 0000000..4870f40 Binary files /dev/null and b/data/images/loreak/ZM_32_smilax003077.jpg differ diff --git a/data/images/loreak/ZM_32_smilax003077.jpg.LCK b/data/images/loreak/ZM_32_smilax003077.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_32_smilax003077.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_33_tamarix003071.jpg b/data/images/loreak/ZM_33_tamarix003071.jpg new file mode 100644 index 0000000..254d0ff Binary files /dev/null and b/data/images/loreak/ZM_33_tamarix003071.jpg differ diff --git a/data/images/loreak/ZM_33_tamarix003071.jpg.LCK b/data/images/loreak/ZM_33_tamarix003071.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_33_tamarix003071.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_34_taraxacum003207.jpg b/data/images/loreak/ZM_34_taraxacum003207.jpg new file mode 100644 index 0000000..8396047 Binary files /dev/null and b/data/images/loreak/ZM_34_taraxacum003207.jpg differ diff --git a/data/images/loreak/ZM_34_taraxacum003207.jpg.LCK b/data/images/loreak/ZM_34_taraxacum003207.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/ZM_34_taraxacum003207.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/ZM_Adianthum_capillus_veneris_003080.jpg b/data/images/loreak/ZM_Adianthum_capillus_veneris_003080.jpg new file mode 100644 index 0000000..3501445 Binary files /dev/null and b/data/images/loreak/ZM_Adianthum_capillus_veneris_003080.jpg differ diff --git a/data/images/loreak/ZM_Agrimonia_eupatoria_003183.jpg b/data/images/loreak/ZM_Agrimonia_eupatoria_003183.jpg new file mode 100644 index 0000000..5dfcc4f Binary files /dev/null and b/data/images/loreak/ZM_Agrimonia_eupatoria_003183.jpg differ diff --git a/data/images/loreak/ZM_Anacamptis_pyramidalis_003095.jpg b/data/images/loreak/ZM_Anacamptis_pyramidalis_003095.jpg new file mode 100644 index 0000000..8060653 Binary files /dev/null and b/data/images/loreak/ZM_Anacamptis_pyramidalis_003095.jpg differ diff --git a/data/images/loreak/ZM_Anemone_nemorosa_003127.jpg b/data/images/loreak/ZM_Anemone_nemorosa_003127.jpg new file mode 100644 index 0000000..aa7d446 Binary files /dev/null and b/data/images/loreak/ZM_Anemone_nemorosa_003127.jpg differ diff --git a/data/images/loreak/ZM_Angelica_sylvestris_003176.jpg b/data/images/loreak/ZM_Angelica_sylvestris_003176.jpg new file mode 100644 index 0000000..f99ae89 Binary files /dev/null and b/data/images/loreak/ZM_Angelica_sylvestris_003176.jpg differ diff --git a/data/images/loreak/ZM_Angelica_sylvestris_003204.jpg b/data/images/loreak/ZM_Angelica_sylvestris_003204.jpg new file mode 100644 index 0000000..741a237 Binary files /dev/null and b/data/images/loreak/ZM_Angelica_sylvestris_003204.jpg differ diff --git a/data/images/loreak/ZM_Antirrhinum_003149.jpg b/data/images/loreak/ZM_Antirrhinum_003149.jpg new file mode 100644 index 0000000..edaad4b Binary files /dev/null and b/data/images/loreak/ZM_Antirrhinum_003149.jpg differ diff --git a/data/images/loreak/ZM_Antirrhinum_majus_003119.jpg b/data/images/loreak/ZM_Antirrhinum_majus_003119.jpg new file mode 100644 index 0000000..4b1c4b3 Binary files /dev/null and b/data/images/loreak/ZM_Antirrhinum_majus_003119.jpg differ diff --git a/data/images/loreak/ZM_Antirrhinum_majus_003164.jpg b/data/images/loreak/ZM_Antirrhinum_majus_003164.jpg new file mode 100644 index 0000000..809dce2 Binary files /dev/null and b/data/images/loreak/ZM_Antirrhinum_majus_003164.jpg differ diff --git a/data/images/loreak/ZM_Aquilegia_vulgaris_003160.jpg b/data/images/loreak/ZM_Aquilegia_vulgaris_003160.jpg new file mode 100644 index 0000000..aa3455f Binary files /dev/null and b/data/images/loreak/ZM_Aquilegia_vulgaris_003160.jpg differ diff --git a/data/images/loreak/ZM_Arum_italicum_003152.jpg b/data/images/loreak/ZM_Arum_italicum_003152.jpg new file mode 100644 index 0000000..2f880c0 Binary files /dev/null and b/data/images/loreak/ZM_Arum_italicum_003152.jpg differ diff --git a/data/images/loreak/ZM_Asplenium_adiantum_nigrum_003085.jpg b/data/images/loreak/ZM_Asplenium_adiantum_nigrum_003085.jpg new file mode 100644 index 0000000..22dedf5 Binary files /dev/null and b/data/images/loreak/ZM_Asplenium_adiantum_nigrum_003085.jpg differ diff --git a/data/images/loreak/ZM_Bellis_perennis_003081.jpg b/data/images/loreak/ZM_Bellis_perennis_003081.jpg new file mode 100644 index 0000000..84bda9f Binary files /dev/null and b/data/images/loreak/ZM_Bellis_perennis_003081.jpg differ diff --git a/data/images/loreak/ZM_Blackstonia_perfoliata_003099.jpg b/data/images/loreak/ZM_Blackstonia_perfoliata_003099.jpg new file mode 100644 index 0000000..8c997b9 Binary files /dev/null and b/data/images/loreak/ZM_Blackstonia_perfoliata_003099.jpg differ diff --git a/data/images/loreak/ZM_Blackstonia_perfoliata_003175.jpg b/data/images/loreak/ZM_Blackstonia_perfoliata_003175.jpg new file mode 100644 index 0000000..13fd7f0 Binary files /dev/null and b/data/images/loreak/ZM_Blackstonia_perfoliata_003175.jpg differ diff --git a/data/images/loreak/ZM_Cakile_maritima_003154.jpg b/data/images/loreak/ZM_Cakile_maritima_003154.jpg new file mode 100644 index 0000000..23acd78 Binary files /dev/null and b/data/images/loreak/ZM_Cakile_maritima_003154.jpg differ diff --git a/data/images/loreak/ZM_Campanula_glomerata_003096.jpg b/data/images/loreak/ZM_Campanula_glomerata_003096.jpg new file mode 100644 index 0000000..201f58d Binary files /dev/null and b/data/images/loreak/ZM_Campanula_glomerata_003096.jpg differ diff --git a/data/images/loreak/ZM_Campanula_patula_003169.jpg b/data/images/loreak/ZM_Campanula_patula_003169.jpg new file mode 100644 index 0000000..bcaac7e Binary files /dev/null and b/data/images/loreak/ZM_Campanula_patula_003169.jpg differ diff --git a/data/images/loreak/ZM_Carex_pendula_003213.jpg b/data/images/loreak/ZM_Carex_pendula_003213.jpg new file mode 100644 index 0000000..7acc597 Binary files /dev/null and b/data/images/loreak/ZM_Carex_pendula_003213.jpg differ diff --git a/data/images/loreak/ZM_Carlina_vulgaris_003078.jpg b/data/images/loreak/ZM_Carlina_vulgaris_003078.jpg new file mode 100644 index 0000000..2b6a78c Binary files /dev/null and b/data/images/loreak/ZM_Carlina_vulgaris_003078.jpg differ diff --git a/data/images/loreak/ZM_Carlina_vulgaris_003086.jpg b/data/images/loreak/ZM_Carlina_vulgaris_003086.jpg new file mode 100644 index 0000000..3117e84 Binary files /dev/null and b/data/images/loreak/ZM_Carlina_vulgaris_003086.jpg differ diff --git a/data/images/loreak/ZM_Centaurea_debeauxil_003222.jpg b/data/images/loreak/ZM_Centaurea_debeauxil_003222.jpg new file mode 100644 index 0000000..99a6083 Binary files /dev/null and b/data/images/loreak/ZM_Centaurea_debeauxil_003222.jpg differ diff --git a/data/images/loreak/ZM_Cichorium_intybus_003210.jpg b/data/images/loreak/ZM_Cichorium_intybus_003210.jpg new file mode 100644 index 0000000..f91e925 Binary files /dev/null and b/data/images/loreak/ZM_Cichorium_intybus_003210.jpg differ diff --git a/data/images/loreak/ZM_Cirsium_arvense_003211.jpg b/data/images/loreak/ZM_Cirsium_arvense_003211.jpg new file mode 100644 index 0000000..8b5b4f5 Binary files /dev/null and b/data/images/loreak/ZM_Cirsium_arvense_003211.jpg differ diff --git a/data/images/loreak/ZM_Cirsium_vulgare_003089.jpg b/data/images/loreak/ZM_Cirsium_vulgare_003089.jpg new file mode 100644 index 0000000..f2e45ce Binary files /dev/null and b/data/images/loreak/ZM_Cirsium_vulgare_003089.jpg differ diff --git a/data/images/loreak/ZM_Cistus_salviifolius_003118.jpg b/data/images/loreak/ZM_Cistus_salviifolius_003118.jpg new file mode 100644 index 0000000..401504a Binary files /dev/null and b/data/images/loreak/ZM_Cistus_salviifolius_003118.jpg differ diff --git a/data/images/loreak/ZM_Cistus_salviifolius_003206.jpg b/data/images/loreak/ZM_Cistus_salviifolius_003206.jpg new file mode 100644 index 0000000..3ff8d1f Binary files /dev/null and b/data/images/loreak/ZM_Cistus_salviifolius_003206.jpg differ diff --git a/data/images/loreak/ZM_Coniza_canadensis_003189.jpg b/data/images/loreak/ZM_Coniza_canadensis_003189.jpg new file mode 100644 index 0000000..cb6c4b2 Binary files /dev/null and b/data/images/loreak/ZM_Coniza_canadensis_003189.jpg differ diff --git a/data/images/loreak/ZM_Crepis_sp_003187.jpg b/data/images/loreak/ZM_Crepis_sp_003187.jpg new file mode 100644 index 0000000..b539cd7 Binary files /dev/null and b/data/images/loreak/ZM_Crepis_sp_003187.jpg differ diff --git a/data/images/loreak/ZM_Daboecia_cantabrica_003171.jpg b/data/images/loreak/ZM_Daboecia_cantabrica_003171.jpg new file mode 100644 index 0000000..a2a2cd4 Binary files /dev/null and b/data/images/loreak/ZM_Daboecia_cantabrica_003171.jpg differ diff --git a/data/images/loreak/ZM_Daphne_laureola_003209.jpg b/data/images/loreak/ZM_Daphne_laureola_003209.jpg new file mode 100644 index 0000000..24e27fe Binary files /dev/null and b/data/images/loreak/ZM_Daphne_laureola_003209.jpg differ diff --git a/data/images/loreak/ZM_Dipsacus_fullonum_003201.jpg b/data/images/loreak/ZM_Dipsacus_fullonum_003201.jpg new file mode 100644 index 0000000..b24456d Binary files /dev/null and b/data/images/loreak/ZM_Dipsacus_fullonum_003201.jpg differ diff --git a/data/images/loreak/ZM_Dryopteris_affinis_003190.jpg b/data/images/loreak/ZM_Dryopteris_affinis_003190.jpg new file mode 100644 index 0000000..f077044 Binary files /dev/null and b/data/images/loreak/ZM_Dryopteris_affinis_003190.jpg differ diff --git a/data/images/loreak/ZM_Epilubium_sp_003212.jpg b/data/images/loreak/ZM_Epilubium_sp_003212.jpg new file mode 100644 index 0000000..abb3c27 Binary files /dev/null and b/data/images/loreak/ZM_Epilubium_sp_003212.jpg differ diff --git a/data/images/loreak/ZM_Erica_ciliaris_003066.jpg b/data/images/loreak/ZM_Erica_ciliaris_003066.jpg new file mode 100644 index 0000000..4cb9a2b Binary files /dev/null and b/data/images/loreak/ZM_Erica_ciliaris_003066.jpg differ diff --git a/data/images/loreak/ZM_Erica_cinerea_003068.jpg b/data/images/loreak/ZM_Erica_cinerea_003068.jpg new file mode 100644 index 0000000..13cd30a Binary files /dev/null and b/data/images/loreak/ZM_Erica_cinerea_003068.jpg differ diff --git a/data/images/loreak/ZM_Erica_cinerea_003173.jpg b/data/images/loreak/ZM_Erica_cinerea_003173.jpg new file mode 100644 index 0000000..0e85cb2 Binary files /dev/null and b/data/images/loreak/ZM_Erica_cinerea_003173.jpg differ diff --git a/data/images/loreak/ZM_Erica_lusitanica_003074.jpg b/data/images/loreak/ZM_Erica_lusitanica_003074.jpg new file mode 100644 index 0000000..1d62783 Binary files /dev/null and b/data/images/loreak/ZM_Erica_lusitanica_003074.jpg differ diff --git a/data/images/loreak/ZM_Erica_multiflora_003073.jpg b/data/images/loreak/ZM_Erica_multiflora_003073.jpg new file mode 100644 index 0000000..29c1f16 Binary files /dev/null and b/data/images/loreak/ZM_Erica_multiflora_003073.jpg differ diff --git a/data/images/loreak/ZM_Erica_tetralix_003070.jpg b/data/images/loreak/ZM_Erica_tetralix_003070.jpg new file mode 100644 index 0000000..6ca955d Binary files /dev/null and b/data/images/loreak/ZM_Erica_tetralix_003070.jpg differ diff --git a/data/images/loreak/ZM_Erica_vagans_003170.jpg b/data/images/loreak/ZM_Erica_vagans_003170.jpg new file mode 100644 index 0000000..c3ba14e Binary files /dev/null and b/data/images/loreak/ZM_Erica_vagans_003170.jpg differ diff --git a/data/images/loreak/ZM_Erodium_moschatum_003091.jpg b/data/images/loreak/ZM_Erodium_moschatum_003091.jpg new file mode 100644 index 0000000..1971d0b Binary files /dev/null and b/data/images/loreak/ZM_Erodium_moschatum_003091.jpg differ diff --git a/data/images/loreak/ZM_Erodium_moschatum_003161.jpg b/data/images/loreak/ZM_Erodium_moschatum_003161.jpg new file mode 100644 index 0000000..6582491 Binary files /dev/null and b/data/images/loreak/ZM_Erodium_moschatum_003161.jpg differ diff --git a/data/images/loreak/ZM_Eryngium_maritimum_003079.jpg b/data/images/loreak/ZM_Eryngium_maritimum_003079.jpg new file mode 100644 index 0000000..d384417 Binary files /dev/null and b/data/images/loreak/ZM_Eryngium_maritimum_003079.jpg differ diff --git a/data/images/loreak/ZM_Erythoea_ Centaurium_003195.jpg b/data/images/loreak/ZM_Erythoea_ Centaurium_003195.jpg new file mode 100644 index 0000000..6f505ab Binary files /dev/null and b/data/images/loreak/ZM_Erythoea_ Centaurium_003195.jpg differ diff --git a/data/images/loreak/ZM_Eupatotium_cannabium_003217.jpg b/data/images/loreak/ZM_Eupatotium_cannabium_003217.jpg new file mode 100644 index 0000000..9202d81 Binary files /dev/null and b/data/images/loreak/ZM_Eupatotium_cannabium_003217.jpg differ diff --git a/data/images/loreak/ZM_Euphorbia_amygdaloides_003181.jpg b/data/images/loreak/ZM_Euphorbia_amygdaloides_003181.jpg new file mode 100644 index 0000000..c18f265 Binary files /dev/null and b/data/images/loreak/ZM_Euphorbia_amygdaloides_003181.jpg differ diff --git a/data/images/loreak/ZM_Euphorbia_portlandica_003103.jpg b/data/images/loreak/ZM_Euphorbia_portlandica_003103.jpg new file mode 100644 index 0000000..d217708 Binary files /dev/null and b/data/images/loreak/ZM_Euphorbia_portlandica_003103.jpg differ diff --git a/data/images/loreak/ZM_Flore_de_ Guipuzcoa_1_003063.jpg b/data/images/loreak/ZM_Flore_de_ Guipuzcoa_1_003063.jpg new file mode 100644 index 0000000..a253cf3 Binary files /dev/null and b/data/images/loreak/ZM_Flore_de_ Guipuzcoa_1_003063.jpg differ diff --git a/data/images/loreak/ZM_Flore_de_guipuzcoa_II_003117.jpg b/data/images/loreak/ZM_Flore_de_guipuzcoa_II_003117.jpg new file mode 100644 index 0000000..c448a94 Binary files /dev/null and b/data/images/loreak/ZM_Flore_de_guipuzcoa_II_003117.jpg differ diff --git a/data/images/loreak/ZM_Flore_de_guypuzcoa_III_003174.jpg b/data/images/loreak/ZM_Flore_de_guypuzcoa_III_003174.jpg new file mode 100644 index 0000000..7579062 Binary files /dev/null and b/data/images/loreak/ZM_Flore_de_guypuzcoa_III_003174.jpg differ diff --git a/data/images/loreak/ZM_Fumaria_ifficinalis_003122.jpg b/data/images/loreak/ZM_Fumaria_ifficinalis_003122.jpg new file mode 100644 index 0000000..df035be Binary files /dev/null and b/data/images/loreak/ZM_Fumaria_ifficinalis_003122.jpg differ diff --git a/data/images/loreak/ZM_Gentiana_pneumonanthe_003094.jpg b/data/images/loreak/ZM_Gentiana_pneumonanthe_003094.jpg new file mode 100644 index 0000000..78c0f77 Binary files /dev/null and b/data/images/loreak/ZM_Gentiana_pneumonanthe_003094.jpg differ diff --git a/data/images/loreak/ZM_Geranium_robertianum_003083.jpg b/data/images/loreak/ZM_Geranium_robertianum_003083.jpg new file mode 100644 index 0000000..2323633 Binary files /dev/null and b/data/images/loreak/ZM_Geranium_robertianum_003083.jpg differ diff --git a/data/images/loreak/ZM_Geranium_rotundifolium_003162.jpg b/data/images/loreak/ZM_Geranium_rotundifolium_003162.jpg new file mode 100644 index 0000000..a4118c3 Binary files /dev/null and b/data/images/loreak/ZM_Geranium_rotundifolium_003162.jpg differ diff --git a/data/images/loreak/ZM_Glechoma_hederacea_003100.jpg b/data/images/loreak/ZM_Glechoma_hederacea_003100.jpg new file mode 100644 index 0000000..a522b2c Binary files /dev/null and b/data/images/loreak/ZM_Glechoma_hederacea_003100.jpg differ diff --git a/data/images/loreak/ZM_Groupe_achilees_003196.jpg b/data/images/loreak/ZM_Groupe_achilees_003196.jpg new file mode 100644 index 0000000..8fa53f7 Binary files /dev/null and b/data/images/loreak/ZM_Groupe_achilees_003196.jpg differ diff --git a/data/images/loreak/ZM_Hedera_helix_003064.jpg b/data/images/loreak/ZM_Hedera_helix_003064.jpg new file mode 100644 index 0000000..1493efa Binary files /dev/null and b/data/images/loreak/ZM_Hedera_helix_003064.jpg differ diff --git a/data/images/loreak/ZM_Hedera_helix_003208.jpg b/data/images/loreak/ZM_Hedera_helix_003208.jpg new file mode 100644 index 0000000..39b1209 Binary files /dev/null and b/data/images/loreak/ZM_Hedera_helix_003208.jpg differ diff --git a/data/images/loreak/ZM_Hepatica_nobilis_003125.jpg b/data/images/loreak/ZM_Hepatica_nobilis_003125.jpg new file mode 100644 index 0000000..8c5c048 Binary files /dev/null and b/data/images/loreak/ZM_Hepatica_nobilis_003125.jpg differ diff --git a/data/images/loreak/ZM_Hieracium_murorum_003199.jpg b/data/images/loreak/ZM_Hieracium_murorum_003199.jpg new file mode 100644 index 0000000..641f654 Binary files /dev/null and b/data/images/loreak/ZM_Hieracium_murorum_003199.jpg differ diff --git a/data/images/loreak/ZM_Hypericum_perforatum_003192.jpg b/data/images/loreak/ZM_Hypericum_perforatum_003192.jpg new file mode 100644 index 0000000..caba93c Binary files /dev/null and b/data/images/loreak/ZM_Hypericum_perforatum_003192.jpg differ diff --git a/data/images/loreak/ZM_Iris_003150.jpg b/data/images/loreak/ZM_Iris_003150.jpg new file mode 100644 index 0000000..faf7174 Binary files /dev/null and b/data/images/loreak/ZM_Iris_003150.jpg differ diff --git a/data/images/loreak/ZM_Iris_foetidissima_003075.jpg b/data/images/loreak/ZM_Iris_foetidissima_003075.jpg new file mode 100644 index 0000000..228bd42 Binary files /dev/null and b/data/images/loreak/ZM_Iris_foetidissima_003075.jpg differ diff --git a/data/images/loreak/ZM_Iris_pseudacorus_003202.jpg b/data/images/loreak/ZM_Iris_pseudacorus_003202.jpg new file mode 100644 index 0000000..7abbf1b Binary files /dev/null and b/data/images/loreak/ZM_Iris_pseudacorus_003202.jpg differ diff --git a/data/images/loreak/ZM_Lamiastrum_galeobdolon_003126.jpg b/data/images/loreak/ZM_Lamiastrum_galeobdolon_003126.jpg new file mode 100644 index 0000000..3cf933b Binary files /dev/null and b/data/images/loreak/ZM_Lamiastrum_galeobdolon_003126.jpg differ diff --git a/data/images/loreak/ZM_Lamium_maculatum_003137.jpg b/data/images/loreak/ZM_Lamium_maculatum_003137.jpg new file mode 100644 index 0000000..394c68f Binary files /dev/null and b/data/images/loreak/ZM_Lamium_maculatum_003137.jpg differ diff --git a/data/images/loreak/ZM_Lamium_maculatum_003178.jpg b/data/images/loreak/ZM_Lamium_maculatum_003178.jpg new file mode 100644 index 0000000..b309675 Binary files /dev/null and b/data/images/loreak/ZM_Lamium_maculatum_003178.jpg differ diff --git a/data/images/loreak/ZM_Lathrea_clandestina_003203.jpg b/data/images/loreak/ZM_Lathrea_clandestina_003203.jpg new file mode 100644 index 0000000..fe46453 Binary files /dev/null and b/data/images/loreak/ZM_Lathrea_clandestina_003203.jpg differ diff --git a/data/images/loreak/ZM_Lathyrus_aphaca_003156.jpg b/data/images/loreak/ZM_Lathyrus_aphaca_003156.jpg new file mode 100644 index 0000000..a52dd4c Binary files /dev/null and b/data/images/loreak/ZM_Lathyrus_aphaca_003156.jpg differ diff --git a/data/images/loreak/ZM_Lathyrus_nissolia_003163.jpg b/data/images/loreak/ZM_Lathyrus_nissolia_003163.jpg new file mode 100644 index 0000000..2a32a20 Binary files /dev/null and b/data/images/loreak/ZM_Lathyrus_nissolia_003163.jpg differ diff --git a/data/images/loreak/ZM_Lathyrus_pratensis_003165.jpg b/data/images/loreak/ZM_Lathyrus_pratensis_003165.jpg new file mode 100644 index 0000000..37067ac Binary files /dev/null and b/data/images/loreak/ZM_Lathyrus_pratensis_003165.jpg differ diff --git a/data/images/loreak/ZM_Lathyrus_sylvestris_003166.jpg b/data/images/loreak/ZM_Lathyrus_sylvestris_003166.jpg new file mode 100644 index 0000000..48f15a5 Binary files /dev/null and b/data/images/loreak/ZM_Lathyrus_sylvestris_003166.jpg differ diff --git a/data/images/loreak/ZM_Lathyrus_sylvestris_003198.jpg b/data/images/loreak/ZM_Lathyrus_sylvestris_003198.jpg new file mode 100644 index 0000000..db280da Binary files /dev/null and b/data/images/loreak/ZM_Lathyrus_sylvestris_003198.jpg differ diff --git a/data/images/loreak/ZM_Lichnis_flos_cuculi_003131.jpg b/data/images/loreak/ZM_Lichnis_flos_cuculi_003131.jpg new file mode 100644 index 0000000..a749bdb Binary files /dev/null and b/data/images/loreak/ZM_Lichnis_flos_cuculi_003131.jpg differ diff --git a/data/images/loreak/ZM_Ligustrum_vulgare_003142.jpg b/data/images/loreak/ZM_Ligustrum_vulgare_003142.jpg new file mode 100644 index 0000000..04ff1e7 Binary files /dev/null and b/data/images/loreak/ZM_Ligustrum_vulgare_003142.jpg differ diff --git a/data/images/loreak/ZM_Linaria_supina_003123.jpg b/data/images/loreak/ZM_Linaria_supina_003123.jpg new file mode 100644 index 0000000..495c83e Binary files /dev/null and b/data/images/loreak/ZM_Linaria_supina_003123.jpg differ diff --git a/data/images/loreak/ZM_Lithodora_diffusa_003116.jpg b/data/images/loreak/ZM_Lithodora_diffusa_003116.jpg new file mode 100644 index 0000000..a175c50 Binary files /dev/null and b/data/images/loreak/ZM_Lithodora_diffusa_003116.jpg differ diff --git a/data/images/loreak/ZM_Lotus_corniculata_Anthyllis _003188.jpg b/data/images/loreak/ZM_Lotus_corniculata_Anthyllis _003188.jpg new file mode 100644 index 0000000..038cc35 Binary files /dev/null and b/data/images/loreak/ZM_Lotus_corniculata_Anthyllis _003188.jpg differ diff --git a/data/images/loreak/ZM_Lotus_corniculatus_003112.jpg b/data/images/loreak/ZM_Lotus_corniculatus_003112.jpg new file mode 100644 index 0000000..4caa48f Binary files /dev/null and b/data/images/loreak/ZM_Lotus_corniculatus_003112.jpg differ diff --git a/data/images/loreak/ZM_Lotus_corniculatus_003159.jpg b/data/images/loreak/ZM_Lotus_corniculatus_003159.jpg new file mode 100644 index 0000000..25326d6 Binary files /dev/null and b/data/images/loreak/ZM_Lotus_corniculatus_003159.jpg differ diff --git a/data/images/loreak/ZM_Lythrum_salicaria _003147.jpg b/data/images/loreak/ZM_Lythrum_salicaria _003147.jpg new file mode 100644 index 0000000..daeeaa5 Binary files /dev/null and b/data/images/loreak/ZM_Lythrum_salicaria _003147.jpg differ diff --git a/data/images/loreak/ZM_Myosotis_lamottiana_003108.jpg b/data/images/loreak/ZM_Myosotis_lamottiana_003108.jpg new file mode 100644 index 0000000..70bd1c8 Binary files /dev/null and b/data/images/loreak/ZM_Myosotis_lamottiana_003108.jpg differ diff --git a/data/images/loreak/ZM_Ononis_spinosa_ssp_maritima_003153.jpg b/data/images/loreak/ZM_Ononis_spinosa_ssp_maritima_003153.jpg new file mode 100644 index 0000000..20030ef Binary files /dev/null and b/data/images/loreak/ZM_Ononis_spinosa_ssp_maritima_003153.jpg differ diff --git a/data/images/loreak/ZM_Ononis_spinosa_ssp_maritima_003172.jpg b/data/images/loreak/ZM_Ononis_spinosa_ssp_maritima_003172.jpg new file mode 100644 index 0000000..31e061d Binary files /dev/null and b/data/images/loreak/ZM_Ononis_spinosa_ssp_maritima_003172.jpg differ diff --git a/data/images/loreak/ZM_Ophrys_scolopax_003168.jpg b/data/images/loreak/ZM_Ophrys_scolopax_003168.jpg new file mode 100644 index 0000000..97d50bf Binary files /dev/null and b/data/images/loreak/ZM_Ophrys_scolopax_003168.jpg differ diff --git a/data/images/loreak/ZM_Orchis_mascula_003186.jpg b/data/images/loreak/ZM_Orchis_mascula_003186.jpg new file mode 100644 index 0000000..71ef9a3 Binary files /dev/null and b/data/images/loreak/ZM_Orchis_mascula_003186.jpg differ diff --git a/data/images/loreak/ZM_Origanum_vulgare_003072.jpg b/data/images/loreak/ZM_Origanum_vulgare_003072.jpg new file mode 100644 index 0000000..c22b4df Binary files /dev/null and b/data/images/loreak/ZM_Origanum_vulgare_003072.jpg differ diff --git a/data/images/loreak/ZM_Orobanche_003177.jpg b/data/images/loreak/ZM_Orobanche_003177.jpg new file mode 100644 index 0000000..38e236b Binary files /dev/null and b/data/images/loreak/ZM_Orobanche_003177.jpg differ diff --git a/data/images/loreak/ZM_Phyteuma_spicatum_003138.jpg b/data/images/loreak/ZM_Phyteuma_spicatum_003138.jpg new file mode 100644 index 0000000..0293a10 Binary files /dev/null and b/data/images/loreak/ZM_Phyteuma_spicatum_003138.jpg differ diff --git a/data/images/loreak/ZM_Picris_echioides_003216.jpg b/data/images/loreak/ZM_Picris_echioides_003216.jpg new file mode 100644 index 0000000..4ac22d0 Binary files /dev/null and b/data/images/loreak/ZM_Picris_echioides_003216.jpg differ diff --git a/data/images/loreak/ZM_Platanthera_bifolia_003200.jpg b/data/images/loreak/ZM_Platanthera_bifolia_003200.jpg new file mode 100644 index 0000000..69e004b Binary files /dev/null and b/data/images/loreak/ZM_Platanthera_bifolia_003200.jpg differ diff --git a/data/images/loreak/ZM_Polygala_ vulgaris_003158.jpg b/data/images/loreak/ZM_Polygala_ vulgaris_003158.jpg new file mode 100644 index 0000000..8f135b8 Binary files /dev/null and b/data/images/loreak/ZM_Polygala_ vulgaris_003158.jpg differ diff --git a/data/images/loreak/ZM_Polygala_vulgaris_003223.jpg b/data/images/loreak/ZM_Polygala_vulgaris_003223.jpg new file mode 100644 index 0000000..e06d33e Binary files /dev/null and b/data/images/loreak/ZM_Polygala_vulgaris_003223.jpg differ diff --git a/data/images/loreak/ZM_Polypodium_cambricum_003084.jpg b/data/images/loreak/ZM_Polypodium_cambricum_003084.jpg new file mode 100644 index 0000000..801965c Binary files /dev/null and b/data/images/loreak/ZM_Polypodium_cambricum_003084.jpg differ diff --git a/data/images/loreak/ZM_Primula_elatior_003179.jpg b/data/images/loreak/ZM_Primula_elatior_003179.jpg new file mode 100644 index 0000000..65cb0c7 Binary files /dev/null and b/data/images/loreak/ZM_Primula_elatior_003179.jpg differ diff --git a/data/images/loreak/ZM_Pulmonaria_longifolia_003120.jpg b/data/images/loreak/ZM_Pulmonaria_longifolia_003120.jpg new file mode 100644 index 0000000..e4914e4 Binary files /dev/null and b/data/images/loreak/ZM_Pulmonaria_longifolia_003120.jpg differ diff --git a/data/images/loreak/ZM_Ranunculus_acris_003157.jpg b/data/images/loreak/ZM_Ranunculus_acris_003157.jpg new file mode 100644 index 0000000..e7e5e80 Binary files /dev/null and b/data/images/loreak/ZM_Ranunculus_acris_003157.jpg differ diff --git a/data/images/loreak/ZM_Ranunculus_ficaria_003107.jpg b/data/images/loreak/ZM_Ranunculus_ficaria_003107.jpg new file mode 100644 index 0000000..d492900 Binary files /dev/null and b/data/images/loreak/ZM_Ranunculus_ficaria_003107.jpg differ diff --git a/data/images/loreak/ZM_Rosa_sempervirens_003141.jpg b/data/images/loreak/ZM_Rosa_sempervirens_003141.jpg new file mode 100644 index 0000000..1d8c4b4 Binary files /dev/null and b/data/images/loreak/ZM_Rosa_sempervirens_003141.jpg differ diff --git a/data/images/loreak/ZM_Scilla_lilio-hyacinthos_003184.jpg b/data/images/loreak/ZM_Scilla_lilio-hyacinthos_003184.jpg new file mode 100644 index 0000000..762dd3f Binary files /dev/null and b/data/images/loreak/ZM_Scilla_lilio-hyacinthos_003184.jpg differ diff --git a/data/images/loreak/ZM_Serapias_cordigera_003106.jpg b/data/images/loreak/ZM_Serapias_cordigera_003106.jpg new file mode 100644 index 0000000..162cd55 Binary files /dev/null and b/data/images/loreak/ZM_Serapias_cordigera_003106.jpg differ diff --git a/data/images/loreak/ZM_Silene_dioica_003092.jpg b/data/images/loreak/ZM_Silene_dioica_003092.jpg new file mode 100644 index 0000000..db27323 Binary files /dev/null and b/data/images/loreak/ZM_Silene_dioica_003092.jpg differ diff --git a/data/images/loreak/ZM_Silene_dioica_003130.jpg b/data/images/loreak/ZM_Silene_dioica_003130.jpg new file mode 100644 index 0000000..b71459b Binary files /dev/null and b/data/images/loreak/ZM_Silene_dioica_003130.jpg differ diff --git a/data/images/loreak/ZM_Silene_nutans_003139.jpg b/data/images/loreak/ZM_Silene_nutans_003139.jpg new file mode 100644 index 0000000..fe8fb42 Binary files /dev/null and b/data/images/loreak/ZM_Silene_nutans_003139.jpg differ diff --git a/data/images/loreak/ZM_Smilax_aspera_003082.jpg b/data/images/loreak/ZM_Smilax_aspera_003082.jpg new file mode 100644 index 0000000..f0f759b Binary files /dev/null and b/data/images/loreak/ZM_Smilax_aspera_003082.jpg differ diff --git a/data/images/loreak/ZM_Solanum_dulcamara_003167.jpg b/data/images/loreak/ZM_Solanum_dulcamara_003167.jpg new file mode 100644 index 0000000..1f9cb67 Binary files /dev/null and b/data/images/loreak/ZM_Solanum_dulcamara_003167.jpg differ diff --git a/data/images/loreak/ZM_Stellaria_holostea_003124.jpg b/data/images/loreak/ZM_Stellaria_holostea_003124.jpg new file mode 100644 index 0000000..6076cc6 Binary files /dev/null and b/data/images/loreak/ZM_Stellaria_holostea_003124.jpg differ diff --git a/data/images/loreak/ZM_Symphytum_tuberosum_003182.jpg b/data/images/loreak/ZM_Symphytum_tuberosum_003182.jpg new file mode 100644 index 0000000..be9eebb Binary files /dev/null and b/data/images/loreak/ZM_Symphytum_tuberosum_003182.jpg differ diff --git a/data/images/loreak/ZM_Tamus_communis_003111.jpg b/data/images/loreak/ZM_Tamus_communis_003111.jpg new file mode 100644 index 0000000..b29c695 Binary files /dev/null and b/data/images/loreak/ZM_Tamus_communis_003111.jpg differ diff --git a/data/images/loreak/ZM_Teucrium_pyrenaicum_003144.jpg b/data/images/loreak/ZM_Teucrium_pyrenaicum_003144.jpg new file mode 100644 index 0000000..26f107d Binary files /dev/null and b/data/images/loreak/ZM_Teucrium_pyrenaicum_003144.jpg differ diff --git a/data/images/loreak/ZM_Verbascum_thapsus_003219.jpg b/data/images/loreak/ZM_Verbascum_thapsus_003219.jpg new file mode 100644 index 0000000..e51ba45 Binary files /dev/null and b/data/images/loreak/ZM_Verbascum_thapsus_003219.jpg differ diff --git a/data/images/loreak/ZM_Veronica_chamaedrys_003109.jpg b/data/images/loreak/ZM_Veronica_chamaedrys_003109.jpg new file mode 100644 index 0000000..d561e06 Binary files /dev/null and b/data/images/loreak/ZM_Veronica_chamaedrys_003109.jpg differ diff --git a/data/images/loreak/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg b/data/images/loreak/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg new file mode 100644 index 0000000..37bed4a Binary files /dev/null and b/data/images/loreak/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg differ diff --git a/data/images/loreak/ZM_Vinca_minor_003102.jpg b/data/images/loreak/ZM_Vinca_minor_003102.jpg new file mode 100644 index 0000000..48a373c Binary files /dev/null and b/data/images/loreak/ZM_Vinca_minor_003102.jpg differ diff --git a/data/images/loreak/ZM_cb4_01_Azkoitia.jpg b/data/images/loreak/ZM_cb4_01_Azkoitia.jpg new file mode 100644 index 0000000..cf3485f Binary files /dev/null and b/data/images/loreak/ZM_cb4_01_Azkoitia.jpg differ diff --git a/data/images/loreak/ZM_cb4_03_Bateleras.jpg b/data/images/loreak/ZM_cb4_03_Bateleras.jpg new file mode 100644 index 0000000..35eb353 Binary files /dev/null and b/data/images/loreak/ZM_cb4_03_Bateleras.jpg differ diff --git a/data/images/loreak/ZM_cb4_04_Cambo.jpg b/data/images/loreak/ZM_cb4_04_Cambo.jpg new file mode 100644 index 0000000..26d856a Binary files /dev/null and b/data/images/loreak/ZM_cb4_04_Cambo.jpg differ diff --git a/data/images/loreak/ZM_cb4_05_Fuenterrabia.jpg b/data/images/loreak/ZM_cb4_05_Fuenterrabia.jpg new file mode 100644 index 0000000..344e1f5 Binary files /dev/null and b/data/images/loreak/ZM_cb4_05_Fuenterrabia.jpg differ diff --git a/data/images/loreak/ZM_groupe_achilees_003194.jpg b/data/images/loreak/ZM_groupe_achilees_003194.jpg new file mode 100644 index 0000000..62a6766 Binary files /dev/null and b/data/images/loreak/ZM_groupe_achilees_003194.jpg differ diff --git a/data/images/loreak/ZM_pm_01_Pamplona.jpg b/data/images/loreak/ZM_pm_01_Pamplona.jpg new file mode 100644 index 0000000..3cbb8ae Binary files /dev/null and b/data/images/loreak/ZM_pm_01_Pamplona.jpg differ diff --git a/data/images/loreak/ZM_pm_02_Baiona.jpg b/data/images/loreak/ZM_pm_02_Baiona.jpg new file mode 100644 index 0000000..927e675 Binary files /dev/null and b/data/images/loreak/ZM_pm_02_Baiona.jpg differ diff --git a/data/images/loreak/ZM_pm_03_Loiola.jpg b/data/images/loreak/ZM_pm_03_Loiola.jpg new file mode 100644 index 0000000..f32d3be Binary files /dev/null and b/data/images/loreak/ZM_pm_03_Loiola.jpg differ diff --git a/data/images/loreak/ZM_pm_04_Oiartzun.jpg b/data/images/loreak/ZM_pm_04_Oiartzun.jpg new file mode 100644 index 0000000..7aa086b Binary files /dev/null and b/data/images/loreak/ZM_pm_04_Oiartzun.jpg differ diff --git a/data/images/loreak/ZM_pm_05_Bilbao.jpg b/data/images/loreak/ZM_pm_05_Bilbao.jpg new file mode 100644 index 0000000..a4534af Binary files /dev/null and b/data/images/loreak/ZM_pm_05_Bilbao.jpg differ diff --git a/data/images/loreak/ZM_pm_06_Oñate.jpg b/data/images/loreak/ZM_pm_06_Oñate.jpg new file mode 100644 index 0000000..b1f568f Binary files /dev/null and b/data/images/loreak/ZM_pm_06_Oñate.jpg differ diff --git a/data/images/loreak/ZM_pm_07_Eibar.jpg b/data/images/loreak/ZM_pm_07_Eibar.jpg new file mode 100644 index 0000000..149e60c Binary files /dev/null and b/data/images/loreak/ZM_pm_07_Eibar.jpg differ diff --git a/data/images/loreak/ZM_pm_08_Durango.jpg b/data/images/loreak/ZM_pm_08_Durango.jpg new file mode 100644 index 0000000..04d0a0c Binary files /dev/null and b/data/images/loreak/ZM_pm_08_Durango.jpg differ diff --git a/data/images/loreak/ZM_pm_09_Azpeitia.jpg b/data/images/loreak/ZM_pm_09_Azpeitia.jpg new file mode 100644 index 0000000..d88bf53 Binary files /dev/null and b/data/images/loreak/ZM_pm_09_Azpeitia.jpg differ diff --git a/data/images/loreak/ZM_pm_10_San_Sebastian.jpg b/data/images/loreak/ZM_pm_10_San_Sebastian.jpg new file mode 100644 index 0000000..ac4bdb8 Binary files /dev/null and b/data/images/loreak/ZM_pm_10_San_Sebastian.jpg differ diff --git a/data/images/loreak/ZM_pm_11_Bergara.jpg b/data/images/loreak/ZM_pm_11_Bergara.jpg new file mode 100644 index 0000000..a844528 Binary files /dev/null and b/data/images/loreak/ZM_pm_11_Bergara.jpg differ diff --git a/data/images/loreak/ZM_pm_12_Biarritz.jpg b/data/images/loreak/ZM_pm_12_Biarritz.jpg new file mode 100644 index 0000000..2aaf723 Binary files /dev/null and b/data/images/loreak/ZM_pm_12_Biarritz.jpg differ diff --git a/data/images/loreak/ZM_po_01_Italia.jpg b/data/images/loreak/ZM_po_01_Italia.jpg new file mode 100644 index 0000000..554c503 Binary files /dev/null and b/data/images/loreak/ZM_po_01_Italia.jpg differ diff --git a/data/images/loreak/ZM_po_02_Rimini.jpg b/data/images/loreak/ZM_po_02_Rimini.jpg new file mode 100644 index 0000000..9749382 Binary files /dev/null and b/data/images/loreak/ZM_po_02_Rimini.jpg differ diff --git a/data/images/loreak/ZM_po_03_Legion_francesa.jpg b/data/images/loreak/ZM_po_03_Legion_francesa.jpg new file mode 100644 index 0000000..8c212f8 Binary files /dev/null and b/data/images/loreak/ZM_po_03_Legion_francesa.jpg differ diff --git a/data/images/loreak/ZM_po_04_Behobia.jpg b/data/images/loreak/ZM_po_04_Behobia.jpg new file mode 100644 index 0000000..eedae97 Binary files /dev/null and b/data/images/loreak/ZM_po_04_Behobia.jpg differ diff --git a/data/images/loreak/ZM_po_05_Bologna.jpg b/data/images/loreak/ZM_po_05_Bologna.jpg new file mode 100644 index 0000000..595c21e Binary files /dev/null and b/data/images/loreak/ZM_po_05_Bologna.jpg differ diff --git a/data/images/loreak/ZM_po_07_Bologna.jpg b/data/images/loreak/ZM_po_07_Bologna.jpg new file mode 100644 index 0000000..bec587c Binary files /dev/null and b/data/images/loreak/ZM_po_07_Bologna.jpg differ diff --git a/data/images/loreak/ZM_po_08_Montejurra.jpg b/data/images/loreak/ZM_po_08_Montejurra.jpg new file mode 100644 index 0000000..384887a Binary files /dev/null and b/data/images/loreak/ZM_po_08_Montejurra.jpg differ diff --git a/data/images/loreak/bibliotecadigitaljardinbotanico.jpg b/data/images/loreak/bibliotecadigitaljardinbotanico.jpg new file mode 100644 index 0000000..14744fe Binary files /dev/null and b/data/images/loreak/bibliotecadigitaljardinbotanico.jpg differ diff --git a/data/images/loreak/txiki/ZM_01_anagallis003197.jpg b/data/images/loreak/txiki/ZM_01_anagallis003197.jpg new file mode 100644 index 0000000..12fbff1 Binary files /dev/null and b/data/images/loreak/txiki/ZM_01_anagallis003197.jpg differ diff --git a/data/images/loreak/txiki/ZM_02_angelica003205.jpg b/data/images/loreak/txiki/ZM_02_angelica003205.jpg new file mode 100644 index 0000000..d914675 Binary files /dev/null and b/data/images/loreak/txiki/ZM_02_angelica003205.jpg differ diff --git a/data/images/loreak/txiki/ZM_03_armeria003129.jpg b/data/images/loreak/txiki/ZM_03_armeria003129.jpg new file mode 100644 index 0000000..776f0a4 Binary files /dev/null and b/data/images/loreak/txiki/ZM_03_armeria003129.jpg differ diff --git a/data/images/loreak/txiki/ZM_03_armeria003129h.jpg b/data/images/loreak/txiki/ZM_03_armeria003129h.jpg new file mode 100644 index 0000000..b777aac Binary files /dev/null and b/data/images/loreak/txiki/ZM_03_armeria003129h.jpg differ diff --git a/data/images/loreak/txiki/ZM_03_armeria003129h.jpg.LCK b/data/images/loreak/txiki/ZM_03_armeria003129h.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_03_armeria003129h.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_04_arum003114.jpg b/data/images/loreak/txiki/ZM_04_arum003114.jpg new file mode 100644 index 0000000..79deb02 Binary files /dev/null and b/data/images/loreak/txiki/ZM_04_arum003114.jpg differ diff --git a/data/images/loreak/txiki/ZM_05_asphodelus003180.jpg b/data/images/loreak/txiki/ZM_05_asphodelus003180.jpg new file mode 100644 index 0000000..7fb4c85 Binary files /dev/null and b/data/images/loreak/txiki/ZM_05_asphodelus003180.jpg differ diff --git a/data/images/loreak/txiki/ZM_06_calyategia003146.jpg b/data/images/loreak/txiki/ZM_06_calyategia003146.jpg new file mode 100644 index 0000000..ebdc13d Binary files /dev/null and b/data/images/loreak/txiki/ZM_06_calyategia003146.jpg differ diff --git a/data/images/loreak/txiki/ZM_07_cardanime003104.jpg b/data/images/loreak/txiki/ZM_07_cardanime003104.jpg new file mode 100644 index 0000000..d297d58 Binary files /dev/null and b/data/images/loreak/txiki/ZM_07_cardanime003104.jpg differ diff --git a/data/images/loreak/txiki/ZM_08_carlina003088.jpg b/data/images/loreak/txiki/ZM_08_carlina003088.jpg new file mode 100644 index 0000000..2169765 Binary files /dev/null and b/data/images/loreak/txiki/ZM_08_carlina003088.jpg differ diff --git a/data/images/loreak/txiki/ZM_09_clematis003151.jpg b/data/images/loreak/txiki/ZM_09_clematis003151.jpg new file mode 100644 index 0000000..29d3b73 Binary files /dev/null and b/data/images/loreak/txiki/ZM_09_clematis003151.jpg differ diff --git a/data/images/loreak/txiki/ZM_10_convolvulus003148.jpg b/data/images/loreak/txiki/ZM_10_convolvulus003148.jpg new file mode 100644 index 0000000..bcf72e7 Binary files /dev/null and b/data/images/loreak/txiki/ZM_10_convolvulus003148.jpg differ diff --git a/data/images/loreak/txiki/ZM_11_cornus003140.jpg b/data/images/loreak/txiki/ZM_11_cornus003140.jpg new file mode 100644 index 0000000..89af5de Binary files /dev/null and b/data/images/loreak/txiki/ZM_11_cornus003140.jpg differ diff --git a/data/images/loreak/txiki/ZM_12_crataegus003136.jpg b/data/images/loreak/txiki/ZM_12_crataegus003136.jpg new file mode 100644 index 0000000..6cae7ee Binary files /dev/null and b/data/images/loreak/txiki/ZM_12_crataegus003136.jpg differ diff --git a/data/images/loreak/txiki/ZM_13_crocus003093.jpg b/data/images/loreak/txiki/ZM_13_crocus003093.jpg new file mode 100644 index 0000000..14534a1 Binary files /dev/null and b/data/images/loreak/txiki/ZM_13_crocus003093.jpg differ diff --git a/data/images/loreak/txiki/ZM_14_dianthus003087.jpg b/data/images/loreak/txiki/ZM_14_dianthus003087.jpg new file mode 100644 index 0000000..3e28642 Binary files /dev/null and b/data/images/loreak/txiki/ZM_14_dianthus003087.jpg differ diff --git a/data/images/loreak/txiki/ZM_15_erica003067.jpg b/data/images/loreak/txiki/ZM_15_erica003067.jpg new file mode 100644 index 0000000..f16e72c Binary files /dev/null and b/data/images/loreak/txiki/ZM_15_erica003067.jpg differ diff --git a/data/images/loreak/txiki/ZM_16_euphorbia003101.jpg b/data/images/loreak/txiki/ZM_16_euphorbia003101.jpg new file mode 100644 index 0000000..146d0b8 Binary files /dev/null and b/data/images/loreak/txiki/ZM_16_euphorbia003101.jpg differ diff --git a/data/images/loreak/txiki/ZM_17_helleborus003097.jpg b/data/images/loreak/txiki/ZM_17_helleborus003097.jpg new file mode 100644 index 0000000..ecdc86a Binary files /dev/null and b/data/images/loreak/txiki/ZM_17_helleborus003097.jpg differ diff --git a/data/images/loreak/txiki/ZM_18_humulus003220.jpg b/data/images/loreak/txiki/ZM_18_humulus003220.jpg new file mode 100644 index 0000000..ff05a46 Binary files /dev/null and b/data/images/loreak/txiki/ZM_18_humulus003220.jpg differ diff --git a/data/images/loreak/txiki/ZM_19_hypericum003076.jpg b/data/images/loreak/txiki/ZM_19_hypericum003076.jpg new file mode 100644 index 0000000..5c217bc Binary files /dev/null and b/data/images/loreak/txiki/ZM_19_hypericum003076.jpg differ diff --git a/data/images/loreak/txiki/ZM_20_ilex003185.jpg b/data/images/loreak/txiki/ZM_20_ilex003185.jpg new file mode 100644 index 0000000..637269c Binary files /dev/null and b/data/images/loreak/txiki/ZM_20_ilex003185.jpg differ diff --git a/data/images/loreak/txiki/ZM_21_knautia003090.jpg b/data/images/loreak/txiki/ZM_21_knautia003090.jpg new file mode 100644 index 0000000..9c28f8d Binary files /dev/null and b/data/images/loreak/txiki/ZM_21_knautia003090.jpg differ diff --git a/data/images/loreak/txiki/ZM_22_lilium003143.jpg b/data/images/loreak/txiki/ZM_22_lilium003143.jpg new file mode 100644 index 0000000..5f4c8cc Binary files /dev/null and b/data/images/loreak/txiki/ZM_22_lilium003143.jpg differ diff --git a/data/images/loreak/txiki/ZM_23_lotus003128.jpg b/data/images/loreak/txiki/ZM_23_lotus003128.jpg new file mode 100644 index 0000000..3b86284 Binary files /dev/null and b/data/images/loreak/txiki/ZM_23_lotus003128.jpg differ diff --git a/data/images/loreak/txiki/ZM_24_lythrum003065.jpg b/data/images/loreak/txiki/ZM_24_lythrum003065.jpg new file mode 100644 index 0000000..3456c3c Binary files /dev/null and b/data/images/loreak/txiki/ZM_24_lythrum003065.jpg differ diff --git a/data/images/loreak/txiki/ZM_25_mentha003193.jpg b/data/images/loreak/txiki/ZM_25_mentha003193.jpg new file mode 100644 index 0000000..a8e38b4 Binary files /dev/null and b/data/images/loreak/txiki/ZM_25_mentha003193.jpg differ diff --git a/data/images/loreak/txiki/ZM_26_narcissus003113.jpg b/data/images/loreak/txiki/ZM_26_narcissus003113.jpg new file mode 100644 index 0000000..d78b690 Binary files /dev/null and b/data/images/loreak/txiki/ZM_26_narcissus003113.jpg differ diff --git a/data/images/loreak/txiki/ZM_27_oxalis003191.jpg b/data/images/loreak/txiki/ZM_27_oxalis003191.jpg new file mode 100644 index 0000000..643a1af Binary files /dev/null and b/data/images/loreak/txiki/ZM_27_oxalis003191.jpg differ diff --git a/data/images/loreak/txiki/ZM_28_pinguicula003115.jpg b/data/images/loreak/txiki/ZM_28_pinguicula003115.jpg new file mode 100644 index 0000000..09581ff Binary files /dev/null and b/data/images/loreak/txiki/ZM_28_pinguicula003115.jpg differ diff --git a/data/images/loreak/txiki/ZM_29_potentilla003069.jpg b/data/images/loreak/txiki/ZM_29_potentilla003069.jpg new file mode 100644 index 0000000..4184c2e Binary files /dev/null and b/data/images/loreak/txiki/ZM_29_potentilla003069.jpg differ diff --git a/data/images/loreak/txiki/ZM_30_potentilla003145.jpg b/data/images/loreak/txiki/ZM_30_potentilla003145.jpg new file mode 100644 index 0000000..624d7c4 Binary files /dev/null and b/data/images/loreak/txiki/ZM_30_potentilla003145.jpg differ diff --git a/data/images/loreak/txiki/ZM_31_primula003105.jpg b/data/images/loreak/txiki/ZM_31_primula003105.jpg new file mode 100644 index 0000000..14bdc54 Binary files /dev/null and b/data/images/loreak/txiki/ZM_31_primula003105.jpg differ diff --git a/data/images/loreak/txiki/ZM_32_smilax003077.jpg b/data/images/loreak/txiki/ZM_32_smilax003077.jpg new file mode 100644 index 0000000..f1fcd3b Binary files /dev/null and b/data/images/loreak/txiki/ZM_32_smilax003077.jpg differ diff --git a/data/images/loreak/txiki/ZM_33_tamarix003071.jpg b/data/images/loreak/txiki/ZM_33_tamarix003071.jpg new file mode 100644 index 0000000..de45d21 Binary files /dev/null and b/data/images/loreak/txiki/ZM_33_tamarix003071.jpg differ diff --git a/data/images/loreak/txiki/ZM_34_taraxacum003207.jpg b/data/images/loreak/txiki/ZM_34_taraxacum003207.jpg new file mode 100644 index 0000000..a33b2c3 Binary files /dev/null and b/data/images/loreak/txiki/ZM_34_taraxacum003207.jpg differ diff --git a/data/images/loreak/txiki/ZM_Adianthum_capillus_veneris_003080.jpg b/data/images/loreak/txiki/ZM_Adianthum_capillus_veneris_003080.jpg new file mode 100644 index 0000000..d4f694d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Adianthum_capillus_veneris_003080.jpg differ diff --git a/data/images/loreak/txiki/ZM_Agrimonia_eupatoria_003183.jpg b/data/images/loreak/txiki/ZM_Agrimonia_eupatoria_003183.jpg new file mode 100644 index 0000000..74f7d36 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Agrimonia_eupatoria_003183.jpg differ diff --git a/data/images/loreak/txiki/ZM_Anacamptis_pyramidalis_003095.jpg b/data/images/loreak/txiki/ZM_Anacamptis_pyramidalis_003095.jpg new file mode 100644 index 0000000..3b27fd5 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Anacamptis_pyramidalis_003095.jpg differ diff --git a/data/images/loreak/txiki/ZM_Anemone_nemorosa_003127.jpg b/data/images/loreak/txiki/ZM_Anemone_nemorosa_003127.jpg new file mode 100644 index 0000000..2f86410 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Anemone_nemorosa_003127.jpg differ diff --git a/data/images/loreak/txiki/ZM_Anemone_nemorosa_003127.jpg.LCK b/data/images/loreak/txiki/ZM_Anemone_nemorosa_003127.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Anemone_nemorosa_003127.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Angelica_sylvestris_003176.jpg b/data/images/loreak/txiki/ZM_Angelica_sylvestris_003176.jpg new file mode 100644 index 0000000..29c7623 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Angelica_sylvestris_003176.jpg differ diff --git a/data/images/loreak/txiki/ZM_Angelica_sylvestris_003176.jpg.LCK b/data/images/loreak/txiki/ZM_Angelica_sylvestris_003176.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Angelica_sylvestris_003176.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Angelica_sylvestris_003204.jpg b/data/images/loreak/txiki/ZM_Angelica_sylvestris_003204.jpg new file mode 100644 index 0000000..e883762 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Angelica_sylvestris_003204.jpg differ diff --git a/data/images/loreak/txiki/ZM_Antirrhinum_majus_003119.jpg b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003119.jpg new file mode 100644 index 0000000..a2b8ff2 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003119.jpg differ diff --git a/data/images/loreak/txiki/ZM_Antirrhinum_majus_003119.jpg.LCK b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003119.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003119.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Antirrhinum_majus_003164.jpg b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003164.jpg new file mode 100644 index 0000000..7123bc0 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003164.jpg differ diff --git a/data/images/loreak/txiki/ZM_Antirrhinum_majus_003164.jpg.LCK b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003164.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Antirrhinum_majus_003164.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Aquilegia_vulgaris_003160.jpg b/data/images/loreak/txiki/ZM_Aquilegia_vulgaris_003160.jpg new file mode 100644 index 0000000..057677a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Aquilegia_vulgaris_003160.jpg differ diff --git a/data/images/loreak/txiki/ZM_Arum_italicum_003152.jpg b/data/images/loreak/txiki/ZM_Arum_italicum_003152.jpg new file mode 100644 index 0000000..0c0f98d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Arum_italicum_003152.jpg differ diff --git a/data/images/loreak/txiki/ZM_Asplenium_adiantum_nigrum_003085.jpg b/data/images/loreak/txiki/ZM_Asplenium_adiantum_nigrum_003085.jpg new file mode 100644 index 0000000..b015892 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Asplenium_adiantum_nigrum_003085.jpg differ diff --git a/data/images/loreak/txiki/ZM_Asplenium_adiantum_nigrum_003085.jpg.LCK b/data/images/loreak/txiki/ZM_Asplenium_adiantum_nigrum_003085.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Asplenium_adiantum_nigrum_003085.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Bellis_perennis_003081.jpg b/data/images/loreak/txiki/ZM_Bellis_perennis_003081.jpg new file mode 100644 index 0000000..db0da80 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Bellis_perennis_003081.jpg differ diff --git a/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003099.jpg b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003099.jpg new file mode 100644 index 0000000..708229a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003099.jpg differ diff --git a/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003099.jpg.LCK b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003099.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003099.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003175.jpg b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003175.jpg new file mode 100644 index 0000000..137d56d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003175.jpg differ diff --git a/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003175.jpg.LCK b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003175.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Blackstonia_perfoliata_003175.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Cakile_maritima_003154.jpg b/data/images/loreak/txiki/ZM_Cakile_maritima_003154.jpg new file mode 100644 index 0000000..8400eea Binary files /dev/null and b/data/images/loreak/txiki/ZM_Cakile_maritima_003154.jpg differ diff --git a/data/images/loreak/txiki/ZM_Campanula_glomerata_003096.jpg b/data/images/loreak/txiki/ZM_Campanula_glomerata_003096.jpg new file mode 100644 index 0000000..306ea4d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Campanula_glomerata_003096.jpg differ diff --git a/data/images/loreak/txiki/ZM_Campanula_patula_003169.jpg b/data/images/loreak/txiki/ZM_Campanula_patula_003169.jpg new file mode 100644 index 0000000..99c8e9a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Campanula_patula_003169.jpg differ diff --git a/data/images/loreak/txiki/ZM_Carex_pendula_003213.jpg b/data/images/loreak/txiki/ZM_Carex_pendula_003213.jpg new file mode 100644 index 0000000..e35020c Binary files /dev/null and b/data/images/loreak/txiki/ZM_Carex_pendula_003213.jpg differ diff --git a/data/images/loreak/txiki/ZM_Carex_pendula_003213.jpg.LCK b/data/images/loreak/txiki/ZM_Carex_pendula_003213.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Carex_pendula_003213.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Carlina_vulgaris_003078.jpg b/data/images/loreak/txiki/ZM_Carlina_vulgaris_003078.jpg new file mode 100644 index 0000000..eb490f8 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Carlina_vulgaris_003078.jpg differ diff --git a/data/images/loreak/txiki/ZM_Carlina_vulgaris_003086.jpg b/data/images/loreak/txiki/ZM_Carlina_vulgaris_003086.jpg new file mode 100644 index 0000000..0f4f812 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Carlina_vulgaris_003086.jpg differ diff --git a/data/images/loreak/txiki/ZM_Centaurea_debeauxil_003222.jpg b/data/images/loreak/txiki/ZM_Centaurea_debeauxil_003222.jpg new file mode 100644 index 0000000..b8c9307 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Centaurea_debeauxil_003222.jpg differ diff --git a/data/images/loreak/txiki/ZM_Cichorium_intybus_003210.jpg b/data/images/loreak/txiki/ZM_Cichorium_intybus_003210.jpg new file mode 100644 index 0000000..b9de046 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Cichorium_intybus_003210.jpg differ diff --git a/data/images/loreak/txiki/ZM_Cichorium_intybus_003210.jpg.LCK b/data/images/loreak/txiki/ZM_Cichorium_intybus_003210.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Cichorium_intybus_003210.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Cirsium_arvense_003211.jpg b/data/images/loreak/txiki/ZM_Cirsium_arvense_003211.jpg new file mode 100644 index 0000000..a7691fc Binary files /dev/null and b/data/images/loreak/txiki/ZM_Cirsium_arvense_003211.jpg differ diff --git a/data/images/loreak/txiki/ZM_Cirsium_arvense_003211.jpg.LCK b/data/images/loreak/txiki/ZM_Cirsium_arvense_003211.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Cirsium_arvense_003211.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Cirsium_vulgare_003089.jpg b/data/images/loreak/txiki/ZM_Cirsium_vulgare_003089.jpg new file mode 100644 index 0000000..22b7b26 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Cirsium_vulgare_003089.jpg differ diff --git a/data/images/loreak/txiki/ZM_Cirsium_vulgare_003089.jpg.LCK b/data/images/loreak/txiki/ZM_Cirsium_vulgare_003089.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Cirsium_vulgare_003089.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Cistus_salviifolius_003118.jpg b/data/images/loreak/txiki/ZM_Cistus_salviifolius_003118.jpg new file mode 100644 index 0000000..e2133b4 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Cistus_salviifolius_003118.jpg differ diff --git a/data/images/loreak/txiki/ZM_Cistus_salviifolius_003206.jpg b/data/images/loreak/txiki/ZM_Cistus_salviifolius_003206.jpg new file mode 100644 index 0000000..dd34fca Binary files /dev/null and b/data/images/loreak/txiki/ZM_Cistus_salviifolius_003206.jpg differ diff --git a/data/images/loreak/txiki/ZM_Coniza_canadensis_003189.jpg b/data/images/loreak/txiki/ZM_Coniza_canadensis_003189.jpg new file mode 100644 index 0000000..5333cbc Binary files /dev/null and b/data/images/loreak/txiki/ZM_Coniza_canadensis_003189.jpg differ diff --git a/data/images/loreak/txiki/ZM_Coniza_canadensis_003189.jpg.LCK b/data/images/loreak/txiki/ZM_Coniza_canadensis_003189.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Coniza_canadensis_003189.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Crepis_sp_003187.jpg b/data/images/loreak/txiki/ZM_Crepis_sp_003187.jpg new file mode 100644 index 0000000..1c22448 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Crepis_sp_003187.jpg differ diff --git a/data/images/loreak/txiki/ZM_Daboecia_cantabrica_003171.jpg b/data/images/loreak/txiki/ZM_Daboecia_cantabrica_003171.jpg new file mode 100644 index 0000000..03e9b6a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Daboecia_cantabrica_003171.jpg differ diff --git a/data/images/loreak/txiki/ZM_Daphne_laureola_003209.jpg b/data/images/loreak/txiki/ZM_Daphne_laureola_003209.jpg new file mode 100644 index 0000000..de048f4 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Daphne_laureola_003209.jpg differ diff --git a/data/images/loreak/txiki/ZM_Dipsacus_fullonum_003201.jpg b/data/images/loreak/txiki/ZM_Dipsacus_fullonum_003201.jpg new file mode 100644 index 0000000..13925b9 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Dipsacus_fullonum_003201.jpg differ diff --git a/data/images/loreak/txiki/ZM_Dipsacus_fullonum_003201.jpg.LCK b/data/images/loreak/txiki/ZM_Dipsacus_fullonum_003201.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Dipsacus_fullonum_003201.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Dryopteris_affinis_003190.jpg b/data/images/loreak/txiki/ZM_Dryopteris_affinis_003190.jpg new file mode 100644 index 0000000..92425c2 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Dryopteris_affinis_003190.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erica_ciliaris_003066.jpg b/data/images/loreak/txiki/ZM_Erica_ciliaris_003066.jpg new file mode 100644 index 0000000..02c59a1 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erica_ciliaris_003066.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erica_cinerea_003068.jpg b/data/images/loreak/txiki/ZM_Erica_cinerea_003068.jpg new file mode 100644 index 0000000..2d7ea00 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erica_cinerea_003068.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erica_cinerea_003173.jpg b/data/images/loreak/txiki/ZM_Erica_cinerea_003173.jpg new file mode 100644 index 0000000..423230e Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erica_cinerea_003173.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erica_lusitanica_003074.jpg b/data/images/loreak/txiki/ZM_Erica_lusitanica_003074.jpg new file mode 100644 index 0000000..4e56e87 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erica_lusitanica_003074.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erica_multiflora_003073.jpg b/data/images/loreak/txiki/ZM_Erica_multiflora_003073.jpg new file mode 100644 index 0000000..b6669fa Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erica_multiflora_003073.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erica_vagans_003170.jpg b/data/images/loreak/txiki/ZM_Erica_vagans_003170.jpg new file mode 100644 index 0000000..e64851d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erica_vagans_003170.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erodium_moschatum_003091.jpg b/data/images/loreak/txiki/ZM_Erodium_moschatum_003091.jpg new file mode 100644 index 0000000..15a246f Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erodium_moschatum_003091.jpg differ diff --git a/data/images/loreak/txiki/ZM_Erodium_moschatum_003161.jpg b/data/images/loreak/txiki/ZM_Erodium_moschatum_003161.jpg new file mode 100644 index 0000000..ae5241c Binary files /dev/null and b/data/images/loreak/txiki/ZM_Erodium_moschatum_003161.jpg differ diff --git a/data/images/loreak/txiki/ZM_Eryngium_maritimum_003079.jpg b/data/images/loreak/txiki/ZM_Eryngium_maritimum_003079.jpg new file mode 100644 index 0000000..82556ac Binary files /dev/null and b/data/images/loreak/txiki/ZM_Eryngium_maritimum_003079.jpg differ diff --git a/data/images/loreak/txiki/ZM_Euphorbia_amygdaloides_003181.jpg b/data/images/loreak/txiki/ZM_Euphorbia_amygdaloides_003181.jpg new file mode 100644 index 0000000..2b7638c Binary files /dev/null and b/data/images/loreak/txiki/ZM_Euphorbia_amygdaloides_003181.jpg differ diff --git a/data/images/loreak/txiki/ZM_Euphorbia_portlandica_003103.jpg b/data/images/loreak/txiki/ZM_Euphorbia_portlandica_003103.jpg new file mode 100644 index 0000000..6682415 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Euphorbia_portlandica_003103.jpg differ diff --git a/data/images/loreak/txiki/ZM_Fumaria_ifficinalis_003122.jpg b/data/images/loreak/txiki/ZM_Fumaria_ifficinalis_003122.jpg new file mode 100644 index 0000000..7025080 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Fumaria_ifficinalis_003122.jpg differ diff --git a/data/images/loreak/txiki/ZM_Fumaria_ifficinalis_003122.jpg.LCK b/data/images/loreak/txiki/ZM_Fumaria_ifficinalis_003122.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Fumaria_ifficinalis_003122.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Gentiana_pneumonanthe_003094.jpg b/data/images/loreak/txiki/ZM_Gentiana_pneumonanthe_003094.jpg new file mode 100644 index 0000000..f43134a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Gentiana_pneumonanthe_003094.jpg differ diff --git a/data/images/loreak/txiki/ZM_Geranium_rotundifolium_003162.jpg b/data/images/loreak/txiki/ZM_Geranium_rotundifolium_003162.jpg new file mode 100644 index 0000000..6f473ab Binary files /dev/null and b/data/images/loreak/txiki/ZM_Geranium_rotundifolium_003162.jpg differ diff --git a/data/images/loreak/txiki/ZM_Glechoma_hederacea_003100.jpg b/data/images/loreak/txiki/ZM_Glechoma_hederacea_003100.jpg new file mode 100644 index 0000000..93ee08f Binary files /dev/null and b/data/images/loreak/txiki/ZM_Glechoma_hederacea_003100.jpg differ diff --git a/data/images/loreak/txiki/ZM_Hedera_helix_003064.jpg b/data/images/loreak/txiki/ZM_Hedera_helix_003064.jpg new file mode 100644 index 0000000..6ae45dc Binary files /dev/null and b/data/images/loreak/txiki/ZM_Hedera_helix_003064.jpg differ diff --git a/data/images/loreak/txiki/ZM_Hedera_helix_003064.jpg.LCK b/data/images/loreak/txiki/ZM_Hedera_helix_003064.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Hedera_helix_003064.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Hedera_helix_003208.jpg b/data/images/loreak/txiki/ZM_Hedera_helix_003208.jpg new file mode 100644 index 0000000..96f6f7e Binary files /dev/null and b/data/images/loreak/txiki/ZM_Hedera_helix_003208.jpg differ diff --git a/data/images/loreak/txiki/ZM_Hedera_helix_003208.jpg.LCK b/data/images/loreak/txiki/ZM_Hedera_helix_003208.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Hedera_helix_003208.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Hepatica_nobilis_003125.jpg b/data/images/loreak/txiki/ZM_Hepatica_nobilis_003125.jpg new file mode 100644 index 0000000..6f0abc3 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Hepatica_nobilis_003125.jpg differ diff --git a/data/images/loreak/txiki/ZM_Hepatica_nobilis_003125.jpg.LCK b/data/images/loreak/txiki/ZM_Hepatica_nobilis_003125.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Hepatica_nobilis_003125.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Hypericum_perforatum_003192.jpg b/data/images/loreak/txiki/ZM_Hypericum_perforatum_003192.jpg new file mode 100644 index 0000000..c93823c Binary files /dev/null and b/data/images/loreak/txiki/ZM_Hypericum_perforatum_003192.jpg differ diff --git a/data/images/loreak/txiki/ZM_Hypericum_perforatum_003192.jpg.LCK b/data/images/loreak/txiki/ZM_Hypericum_perforatum_003192.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Hypericum_perforatum_003192.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Iris_foetidissima_003075.jpg b/data/images/loreak/txiki/ZM_Iris_foetidissima_003075.jpg new file mode 100644 index 0000000..52f0ade Binary files /dev/null and b/data/images/loreak/txiki/ZM_Iris_foetidissima_003075.jpg differ diff --git a/data/images/loreak/txiki/ZM_Iris_foetidissima_003075.jpg.LCK b/data/images/loreak/txiki/ZM_Iris_foetidissima_003075.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Iris_foetidissima_003075.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Iris_pseudacorus_003202.jpg b/data/images/loreak/txiki/ZM_Iris_pseudacorus_003202.jpg new file mode 100644 index 0000000..606d1bf Binary files /dev/null and b/data/images/loreak/txiki/ZM_Iris_pseudacorus_003202.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lamiastrum_galeobdolon_003126.jpg b/data/images/loreak/txiki/ZM_Lamiastrum_galeobdolon_003126.jpg new file mode 100644 index 0000000..bd8447f Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lamiastrum_galeobdolon_003126.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lamiastrum_galeobdolon_003126.jpg.LCK b/data/images/loreak/txiki/ZM_Lamiastrum_galeobdolon_003126.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lamiastrum_galeobdolon_003126.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lamium_maculatum_003137.jpg b/data/images/loreak/txiki/ZM_Lamium_maculatum_003137.jpg new file mode 100644 index 0000000..fd50222 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lamium_maculatum_003137.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lamium_maculatum_003178.jpg b/data/images/loreak/txiki/ZM_Lamium_maculatum_003178.jpg new file mode 100644 index 0000000..fea1681 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lamium_maculatum_003178.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lathrea_clandestina_003203.jpg b/data/images/loreak/txiki/ZM_Lathrea_clandestina_003203.jpg new file mode 100644 index 0000000..4974ac6 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lathrea_clandestina_003203.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lathrea_clandestina_003203.jpg.LCK b/data/images/loreak/txiki/ZM_Lathrea_clandestina_003203.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lathrea_clandestina_003203.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lathyrus_aphaca_003156.jpg b/data/images/loreak/txiki/ZM_Lathyrus_aphaca_003156.jpg new file mode 100644 index 0000000..1016fe6 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lathyrus_aphaca_003156.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lathyrus_nissolia_003163.jpg b/data/images/loreak/txiki/ZM_Lathyrus_nissolia_003163.jpg new file mode 100644 index 0000000..6c63908 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lathyrus_nissolia_003163.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lathyrus_nissolia_003163.jpg.LCK b/data/images/loreak/txiki/ZM_Lathyrus_nissolia_003163.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lathyrus_nissolia_003163.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lathyrus_pratensis_003165.jpg b/data/images/loreak/txiki/ZM_Lathyrus_pratensis_003165.jpg new file mode 100644 index 0000000..4d9f01c Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lathyrus_pratensis_003165.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lathyrus_pratensis_003165.jpg.LCK b/data/images/loreak/txiki/ZM_Lathyrus_pratensis_003165.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lathyrus_pratensis_003165.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003166.jpg b/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003166.jpg new file mode 100644 index 0000000..180eb0a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003166.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003166.jpg.LCK b/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003166.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003166.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003198.jpg b/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003198.jpg new file mode 100644 index 0000000..b8e79f0 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lathyrus_sylvestris_003198.jpg differ diff --git a/data/images/loreak/txiki/ZM_Linaria_supina_003123.jpg b/data/images/loreak/txiki/ZM_Linaria_supina_003123.jpg new file mode 100644 index 0000000..f6e0ebb Binary files /dev/null and b/data/images/loreak/txiki/ZM_Linaria_supina_003123.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lithodora_diffusa_003116.jpg b/data/images/loreak/txiki/ZM_Lithodora_diffusa_003116.jpg new file mode 100644 index 0000000..a324e0e Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lithodora_diffusa_003116.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lotus_corniculatus_003112.jpg b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003112.jpg new file mode 100644 index 0000000..25ea451 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003112.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lotus_corniculatus_003112.jpg.LCK b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003112.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003112.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lotus_corniculatus_003159.jpg b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003159.jpg new file mode 100644 index 0000000..c1b0836 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003159.jpg differ diff --git a/data/images/loreak/txiki/ZM_Lotus_corniculatus_003159.jpg.LCK b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003159.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Lotus_corniculatus_003159.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Lythrum_salicaria_003147.jpg b/data/images/loreak/txiki/ZM_Lythrum_salicaria_003147.jpg new file mode 100644 index 0000000..4a5c26e Binary files /dev/null and b/data/images/loreak/txiki/ZM_Lythrum_salicaria_003147.jpg differ diff --git a/data/images/loreak/txiki/ZM_Myosotis_lamottiana_003108.jpg b/data/images/loreak/txiki/ZM_Myosotis_lamottiana_003108.jpg new file mode 100644 index 0000000..f72190d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Myosotis_lamottiana_003108.jpg differ diff --git a/data/images/loreak/txiki/ZM_Ononis_spinosa_ssp_maritima_003153.jpg b/data/images/loreak/txiki/ZM_Ononis_spinosa_ssp_maritima_003153.jpg new file mode 100644 index 0000000..56e96d5 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Ononis_spinosa_ssp_maritima_003153.jpg differ diff --git a/data/images/loreak/txiki/ZM_Ononis_spinosa_ssp_maritima_003172.jpg b/data/images/loreak/txiki/ZM_Ononis_spinosa_ssp_maritima_003172.jpg new file mode 100644 index 0000000..a932729 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Ononis_spinosa_ssp_maritima_003172.jpg differ diff --git a/data/images/loreak/txiki/ZM_Ophrys_scolopax_003168.jpg b/data/images/loreak/txiki/ZM_Ophrys_scolopax_003168.jpg new file mode 100644 index 0000000..f95a01e Binary files /dev/null and b/data/images/loreak/txiki/ZM_Ophrys_scolopax_003168.jpg differ diff --git a/data/images/loreak/txiki/ZM_Orchis_mascula_003186.jpg b/data/images/loreak/txiki/ZM_Orchis_mascula_003186.jpg new file mode 100644 index 0000000..34b3d94 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Orchis_mascula_003186.jpg differ diff --git a/data/images/loreak/txiki/ZM_Origanum_vulgare_003072.jpg b/data/images/loreak/txiki/ZM_Origanum_vulgare_003072.jpg new file mode 100644 index 0000000..bd06419 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Origanum_vulgare_003072.jpg differ diff --git a/data/images/loreak/txiki/ZM_Origanum_vulgare_003072.jpg.LCK b/data/images/loreak/txiki/ZM_Origanum_vulgare_003072.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Origanum_vulgare_003072.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Orobanche_003177.jpg b/data/images/loreak/txiki/ZM_Orobanche_003177.jpg new file mode 100644 index 0000000..1a41bb5 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Orobanche_003177.jpg differ diff --git a/data/images/loreak/txiki/ZM_Phyteuma_spicatum_003138.jpg b/data/images/loreak/txiki/ZM_Phyteuma_spicatum_003138.jpg new file mode 100644 index 0000000..db9344d Binary files /dev/null and b/data/images/loreak/txiki/ZM_Phyteuma_spicatum_003138.jpg differ diff --git a/data/images/loreak/txiki/ZM_Picris_echioides_003216.jpg b/data/images/loreak/txiki/ZM_Picris_echioides_003216.jpg new file mode 100644 index 0000000..6f3f24e Binary files /dev/null and b/data/images/loreak/txiki/ZM_Picris_echioides_003216.jpg differ diff --git a/data/images/loreak/txiki/ZM_Picris_echioides_003216.jpg.LCK b/data/images/loreak/txiki/ZM_Picris_echioides_003216.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Picris_echioides_003216.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Platanthera_bifolia_003200.jpg b/data/images/loreak/txiki/ZM_Platanthera_bifolia_003200.jpg new file mode 100644 index 0000000..138abc8 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Platanthera_bifolia_003200.jpg differ diff --git a/data/images/loreak/txiki/ZM_Polygala_-vulgaris_003158.jpg.LCK b/data/images/loreak/txiki/ZM_Polygala_-vulgaris_003158.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Polygala_-vulgaris_003158.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Polygala_vulgaris_003158.jpg b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003158.jpg new file mode 100644 index 0000000..3ffd6fc Binary files /dev/null and b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003158.jpg differ diff --git a/data/images/loreak/txiki/ZM_Polygala_vulgaris_003158.jpg.LCK b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003158.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003158.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Polygala_vulgaris_003223.jpg b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003223.jpg new file mode 100644 index 0000000..aa27599 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003223.jpg differ diff --git a/data/images/loreak/txiki/ZM_Polygala_vulgaris_003223.jpg.LCK b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003223.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Polygala_vulgaris_003223.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Polypodium_cambricum_003084.jpg b/data/images/loreak/txiki/ZM_Polypodium_cambricum_003084.jpg new file mode 100644 index 0000000..f6ad811 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Polypodium_cambricum_003084.jpg differ diff --git a/data/images/loreak/txiki/ZM_Polypodium_cambricum_003084.jpg.LCK b/data/images/loreak/txiki/ZM_Polypodium_cambricum_003084.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Polypodium_cambricum_003084.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Primula_elatior_003179.jpg b/data/images/loreak/txiki/ZM_Primula_elatior_003179.jpg new file mode 100644 index 0000000..954cdd4 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Primula_elatior_003179.jpg differ diff --git a/data/images/loreak/txiki/ZM_Pulmonaria_longifolia_003120.jpg b/data/images/loreak/txiki/ZM_Pulmonaria_longifolia_003120.jpg new file mode 100644 index 0000000..2cb7474 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Pulmonaria_longifolia_003120.jpg differ diff --git a/data/images/loreak/txiki/ZM_Ranunculus_acris_003157.jpg b/data/images/loreak/txiki/ZM_Ranunculus_acris_003157.jpg new file mode 100644 index 0000000..cd509cf Binary files /dev/null and b/data/images/loreak/txiki/ZM_Ranunculus_acris_003157.jpg differ diff --git a/data/images/loreak/txiki/ZM_Ranunculus_ficaria_003107.jpg b/data/images/loreak/txiki/ZM_Ranunculus_ficaria_003107.jpg new file mode 100644 index 0000000..d7787a0 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Ranunculus_ficaria_003107.jpg differ diff --git a/data/images/loreak/txiki/ZM_Rosa_sempervirens_003141.jpg b/data/images/loreak/txiki/ZM_Rosa_sempervirens_003141.jpg new file mode 100644 index 0000000..7ebdcb5 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Rosa_sempervirens_003141.jpg differ diff --git a/data/images/loreak/txiki/ZM_Scilla_lilio-hyacinthos_003184.jpg b/data/images/loreak/txiki/ZM_Scilla_lilio-hyacinthos_003184.jpg new file mode 100644 index 0000000..bea9898 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Scilla_lilio-hyacinthos_003184.jpg differ diff --git a/data/images/loreak/txiki/ZM_Serapias_cordigera_003106.jpg b/data/images/loreak/txiki/ZM_Serapias_cordigera_003106.jpg new file mode 100644 index 0000000..a80be10 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Serapias_cordigera_003106.jpg differ diff --git a/data/images/loreak/txiki/ZM_Silene_dioica_003092.jpg b/data/images/loreak/txiki/ZM_Silene_dioica_003092.jpg new file mode 100644 index 0000000..5b5e887 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Silene_dioica_003092.jpg differ diff --git a/data/images/loreak/txiki/ZM_Silene_dioica_003130.jpg b/data/images/loreak/txiki/ZM_Silene_dioica_003130.jpg new file mode 100644 index 0000000..27ee151 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Silene_dioica_003130.jpg differ diff --git a/data/images/loreak/txiki/ZM_Silene_nutans_003139.jpg b/data/images/loreak/txiki/ZM_Silene_nutans_003139.jpg new file mode 100644 index 0000000..5fbe177 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Silene_nutans_003139.jpg differ diff --git a/data/images/loreak/txiki/ZM_Smilax_aspera_003082.jpg b/data/images/loreak/txiki/ZM_Smilax_aspera_003082.jpg new file mode 100644 index 0000000..b263e7a Binary files /dev/null and b/data/images/loreak/txiki/ZM_Smilax_aspera_003082.jpg differ diff --git a/data/images/loreak/txiki/ZM_Solanum_dulcamara_003167.jpg b/data/images/loreak/txiki/ZM_Solanum_dulcamara_003167.jpg new file mode 100644 index 0000000..deba0b5 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Solanum_dulcamara_003167.jpg differ diff --git a/data/images/loreak/txiki/ZM_Stellaria_holostea_003124.jpg b/data/images/loreak/txiki/ZM_Stellaria_holostea_003124.jpg new file mode 100644 index 0000000..f1b9391 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Stellaria_holostea_003124.jpg differ diff --git a/data/images/loreak/txiki/ZM_Symphytum_tuberosum_003182.jpg b/data/images/loreak/txiki/ZM_Symphytum_tuberosum_003182.jpg new file mode 100644 index 0000000..d7e9066 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Symphytum_tuberosum_003182.jpg differ diff --git a/data/images/loreak/txiki/ZM_Tamus_communis_003111.jpg b/data/images/loreak/txiki/ZM_Tamus_communis_003111.jpg new file mode 100644 index 0000000..773e622 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Tamus_communis_003111.jpg differ diff --git a/data/images/loreak/txiki/ZM_Teucrium_pyrenaicum_003144.jpg b/data/images/loreak/txiki/ZM_Teucrium_pyrenaicum_003144.jpg new file mode 100644 index 0000000..7f6a2f2 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Teucrium_pyrenaicum_003144.jpg differ diff --git a/data/images/loreak/txiki/ZM_Verbascum_thapsus_003219.jpg b/data/images/loreak/txiki/ZM_Verbascum_thapsus_003219.jpg new file mode 100644 index 0000000..7c901cf Binary files /dev/null and b/data/images/loreak/txiki/ZM_Verbascum_thapsus_003219.jpg differ diff --git a/data/images/loreak/txiki/ZM_Verbascum_thapsus_003219.jpg.LCK b/data/images/loreak/txiki/ZM_Verbascum_thapsus_003219.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Verbascum_thapsus_003219.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki/ZM_Veronica_chamaedrys_003109.jpg b/data/images/loreak/txiki/ZM_Veronica_chamaedrys_003109.jpg new file mode 100644 index 0000000..9821822 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Veronica_chamaedrys_003109.jpg differ diff --git a/data/images/loreak/txiki/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg b/data/images/loreak/txiki/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg new file mode 100644 index 0000000..9727c04 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg differ diff --git a/data/images/loreak/txiki/ZM_Vinca_minor_003102.jpg b/data/images/loreak/txiki/ZM_Vinca_minor_003102.jpg new file mode 100644 index 0000000..fb6ce88 Binary files /dev/null and b/data/images/loreak/txiki/ZM_Vinca_minor_003102.jpg differ diff --git a/data/images/loreak/txiki/ZM_Vinca_minor_003102.jpg.LCK b/data/images/loreak/txiki/ZM_Vinca_minor_003102.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki/ZM_Vinca_minor_003102.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/003224.jpg b/data/images/loreak/txiki_otras/003224.jpg new file mode 100644 index 0000000..23457fe Binary files /dev/null and b/data/images/loreak/txiki_otras/003224.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_Cb_2b_IMG-RPR-01.jpg b/data/images/loreak/txiki_otras/A1_Cb_2b_IMG-RPR-01.jpg new file mode 100644 index 0000000..4ee468c Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_Cb_2b_IMG-RPR-01.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_Cb_2b_IMG-RPR-01completa.jpg b/data/images/loreak/txiki_otras/A1_Cb_2b_IMG-RPR-01completa.jpg new file mode 100644 index 0000000..c969c51 Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_Cb_2b_IMG-RPR-01completa.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-02.jpg b/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-02.jpg new file mode 100644 index 0000000..32ed8c7 Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-02.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-03.jpg b/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-03.jpg new file mode 100644 index 0000000..cdcac0d Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-03.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-04.jpg b/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-04.jpg new file mode 100644 index 0000000..f592e96 Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_Cb_3a_IMG-RPR-04.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_PMGR_2_IMG-RPR-02.jpg b/data/images/loreak/txiki_otras/A1_PMGR_2_IMG-RPR-02.jpg new file mode 100644 index 0000000..6aa35fc Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_PMGR_2_IMG-RPR-02.jpg differ diff --git a/data/images/loreak/txiki_otras/A1_PMGR_2_IMG-RPR-04.jpg b/data/images/loreak/txiki_otras/A1_PMGR_2_IMG-RPR-04.jpg new file mode 100644 index 0000000..64eda19 Binary files /dev/null and b/data/images/loreak/txiki_otras/A1_PMGR_2_IMG-RPR-04.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2.jpg b/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2.jpg new file mode 100644 index 0000000..022a817 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2_c.jpg b/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2_c.jpg new file mode 100644 index 0000000..a8244ba Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_03_Armeria_euscadiensis2_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_07_Cardamine pratensis.jpg b/data/images/loreak/txiki_otras/BU_07_Cardamine pratensis.jpg new file mode 100644 index 0000000..c8b5230 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_07_Cardamine pratensis.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_07_Cardamine pratensis.jpg.LCK b/data/images/loreak/txiki_otras/BU_07_Cardamine pratensis.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_07_Cardamine pratensis.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_07_Cardamine_pratensis_c.jpg b/data/images/loreak/txiki_otras/BU_07_Cardamine_pratensis_c.jpg new file mode 100644 index 0000000..a11b4d5 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_07_Cardamine_pratensis_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_07_Cardamine_pratensis_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_07_Cardamine_pratensis_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_07_Cardamine_pratensis_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_11_Cornus sanguinea.jpg b/data/images/loreak/txiki_otras/BU_11_Cornus sanguinea.jpg new file mode 100644 index 0000000..a8b3bfa Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_11_Cornus sanguinea.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_11_Cornus sanguinea.jpg.LCK b/data/images/loreak/txiki_otras/BU_11_Cornus sanguinea.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_11_Cornus sanguinea.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_11_Cornus_sanguinea_c.jpg b/data/images/loreak/txiki_otras/BU_11_Cornus_sanguinea_c.jpg new file mode 100644 index 0000000..26e202f Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_11_Cornus_sanguinea_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_11_Cornus_sanguinea_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_11_Cornus_sanguinea_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_11_Cornus_sanguinea_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_12_Crataegus_sp.jpg b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp.jpg new file mode 100644 index 0000000..5efa143 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_12_Crataegus_sp.jpg.LCK b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_12_Crataegus_sp_c.jpg b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp_c.jpg new file mode 100644 index 0000000..bfedb3d Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_12_Crataegus_sp_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_12_Crataegus_sp_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus.jpg b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus.jpg new file mode 100644 index 0000000..b40d5a8 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus.jpg.LCK b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus_c1.jpg b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus_c1.jpg new file mode 100644 index 0000000..254215c Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus_c1.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus_c1.jpg.LCK b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus_c1.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_13_Crocus nudiflorus_c1.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_ hyssopifolius.jpg b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_ hyssopifolius.jpg new file mode 100644 index 0000000..9d7e5c5 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_ hyssopifolius.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_ hyssopifolius.jpg.LCK b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_ hyssopifolius.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_ hyssopifolius.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg new file mode 100644 index 0000000..fbedc6c Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_14_Dianthus_cfr_hyssopifoli_us_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_15_Erica cinerea_c1.jpg b/data/images/loreak/txiki_otras/BU_15_Erica cinerea_c1.jpg new file mode 100644 index 0000000..f58235e Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_15_Erica cinerea_c1.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_15_Erica cinerea_c1.jpg.LCK b/data/images/loreak/txiki_otras/BU_15_Erica cinerea_c1.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_15_Erica cinerea_c1.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_15_Erica_cinerea.jpg b/data/images/loreak/txiki_otras/BU_15_Erica_cinerea.jpg new file mode 100644 index 0000000..39ef612 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_15_Erica_cinerea.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_15_Erica_cinerea.jpg.LCK b/data/images/loreak/txiki_otras/BU_15_Erica_cinerea.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_15_Erica_cinerea.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis.jpg b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis.jpg new file mode 100644 index 0000000..131dbf1 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis.jpg.LCK b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis_c.jpg b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis_c.jpg new file mode 100644 index 0000000..d8cc9f1 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_17_Helleborus_viridis_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis.jpg b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis.jpg new file mode 100644 index 0000000..84e7f28 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis.jpg.LCK b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis_c.jpg b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis_c.jpg new file mode 100644 index 0000000..c019f7b Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_21_Knautia_arvensis_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_23_Lotus_ corniculatus.jpg b/data/images/loreak/txiki_otras/BU_23_Lotus_ corniculatus.jpg new file mode 100644 index 0000000..10bb755 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_23_Lotus_ corniculatus.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_23_Lotus_ corniculatus.jpg.LCK b/data/images/loreak/txiki_otras/BU_23_Lotus_ corniculatus.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_23_Lotus_ corniculatus.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_23_Lotus_corniculatus_c.jpg b/data/images/loreak/txiki_otras/BU_23_Lotus_corniculatus_c.jpg new file mode 100644 index 0000000..6cb8438 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_23_Lotus_corniculatus_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_23_Lotus_corniculatus_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_23_Lotus_corniculatus_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_23_Lotus_corniculatus_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_26_Narcissus bulbocodium_c.jpg b/data/images/loreak/txiki_otras/BU_26_Narcissus bulbocodium_c.jpg new file mode 100644 index 0000000..1fbf5d1 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_26_Narcissus bulbocodium_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_26_Narcissus bulbocodium_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_26_Narcissus bulbocodium_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_26_Narcissus bulbocodium_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_26_Narcissus_bulbocodium.jpg b/data/images/loreak/txiki_otras/BU_26_Narcissus_bulbocodium.jpg new file mode 100644 index 0000000..09b9737 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_26_Narcissus_bulbocodium.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_26_Narcissus_bulbocodium.jpg.LCK b/data/images/loreak/txiki_otras/BU_26_Narcissus_bulbocodium.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_26_Narcissus_bulbocodium.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella.jpg b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella.jpg new file mode 100644 index 0000000..0fa02c8 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella.jpg.LCK b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella_c.jpg b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella_c.jpg new file mode 100644 index 0000000..d3f0030 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_27_Oxalis_ acetosella_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2.jpg b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2.jpg new file mode 100644 index 0000000..38028f9 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2.jpg.LCK b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2_c.jpg b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2_c.jpg new file mode 100644 index 0000000..fea260f Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_28_Pinguicula_lusitanica2_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans.jpg b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans.jpg new file mode 100644 index 0000000..cb7efec Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans.jpg.LCK b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans_c.jpg b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans_c.jpg new file mode 100644 index 0000000..f58d5c4 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_30_Potentilla_reptans_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris.jpg b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris.jpg new file mode 100644 index 0000000..7bc3351 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris.jpg.LCK b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris_c.jpg b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris_c.jpg new file mode 100644 index 0000000..026002c Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_31_Primula_vulgaris_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_32_Smilax _aspera_c.jpg b/data/images/loreak/txiki_otras/BU_32_Smilax _aspera_c.jpg new file mode 100644 index 0000000..cf8afe8 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_32_Smilax _aspera_c.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_32_Smilax _aspera_c.jpg.LCK b/data/images/loreak/txiki_otras/BU_32_Smilax _aspera_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_32_Smilax _aspera_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/BU_32_Smilax_aspera.jpg b/data/images/loreak/txiki_otras/BU_32_Smilax_aspera.jpg new file mode 100644 index 0000000..48a0426 Binary files /dev/null and b/data/images/loreak/txiki_otras/BU_32_Smilax_aspera.jpg differ diff --git a/data/images/loreak/txiki_otras/BU_32_Smilax_aspera.jpg.LCK b/data/images/loreak/txiki_otras/BU_32_Smilax_aspera.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/BU_32_Smilax_aspera.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/Bu_03Armeria _euscadiensis.jpg b/data/images/loreak/txiki_otras/Bu_03Armeria _euscadiensis.jpg new file mode 100644 index 0000000..1adbf85 Binary files /dev/null and b/data/images/loreak/txiki_otras/Bu_03Armeria _euscadiensis.jpg differ diff --git a/data/images/loreak/txiki_otras/Bu_03Armeria _euscadiensis.jpg.LCK b/data/images/loreak/txiki_otras/Bu_03Armeria _euscadiensis.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/Bu_03Armeria _euscadiensis.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus.jpg b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus.jpg new file mode 100644 index 0000000..5c4a57c Binary files /dev/null and b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus.jpg differ diff --git a/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus.jpg.LCK b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus_c.jpg b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus_c.jpg new file mode 100644 index 0000000..cb4042b Binary files /dev/null and b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus_c.jpg differ diff --git a/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus_c.jpg.LCK b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus_c.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/loreak/txiki_otras/Bu_05_Asphodelus_albus_c.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/loreak/txiki_otras/ZM_01_anagallis003197.jpg b/data/images/loreak/txiki_otras/ZM_01_anagallis003197.jpg new file mode 100644 index 0000000..ca041d8 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_01_anagallis003197.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_02_angelica003205.jpg b/data/images/loreak/txiki_otras/ZM_02_angelica003205.jpg new file mode 100644 index 0000000..3c50e8a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_02_angelica003205.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_03_armeria003129.jpg b/data/images/loreak/txiki_otras/ZM_03_armeria003129.jpg new file mode 100644 index 0000000..2a7848a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_03_armeria003129.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_03_armeria003129h.jpg b/data/images/loreak/txiki_otras/ZM_03_armeria003129h.jpg new file mode 100644 index 0000000..127812f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_03_armeria003129h.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_04_arum003114.jpg b/data/images/loreak/txiki_otras/ZM_04_arum003114.jpg new file mode 100644 index 0000000..47f2352 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_04_arum003114.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_05_asphodelus003180.jpg b/data/images/loreak/txiki_otras/ZM_05_asphodelus003180.jpg new file mode 100644 index 0000000..42fcde4 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_05_asphodelus003180.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_06_calyategia003146.jpg b/data/images/loreak/txiki_otras/ZM_06_calyategia003146.jpg new file mode 100644 index 0000000..c3bbf34 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_06_calyategia003146.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_07_cardanime003104.jpg b/data/images/loreak/txiki_otras/ZM_07_cardanime003104.jpg new file mode 100644 index 0000000..23e56a1 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_07_cardanime003104.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_08_carlina003088.jpg b/data/images/loreak/txiki_otras/ZM_08_carlina003088.jpg new file mode 100644 index 0000000..5d657ca Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_08_carlina003088.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_09_clematis003151.jpg b/data/images/loreak/txiki_otras/ZM_09_clematis003151.jpg new file mode 100644 index 0000000..a3ab290 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_09_clematis003151.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_10_convolvulus003148.jpg b/data/images/loreak/txiki_otras/ZM_10_convolvulus003148.jpg new file mode 100644 index 0000000..4941de1 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_10_convolvulus003148.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_11_cornus003140.jpg b/data/images/loreak/txiki_otras/ZM_11_cornus003140.jpg new file mode 100644 index 0000000..2ad9fa7 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_11_cornus003140.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_12_crataegus003136.jpg b/data/images/loreak/txiki_otras/ZM_12_crataegus003136.jpg new file mode 100644 index 0000000..dfe6eab Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_12_crataegus003136.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_13_crocus003093.jpg b/data/images/loreak/txiki_otras/ZM_13_crocus003093.jpg new file mode 100644 index 0000000..fce6a0a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_13_crocus003093.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_14_dianthus003087.jpg b/data/images/loreak/txiki_otras/ZM_14_dianthus003087.jpg new file mode 100644 index 0000000..7f3c1ca Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_14_dianthus003087.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_15_erica003067.jpg b/data/images/loreak/txiki_otras/ZM_15_erica003067.jpg new file mode 100644 index 0000000..176b6be Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_15_erica003067.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_16_euphorbia003101.jpg b/data/images/loreak/txiki_otras/ZM_16_euphorbia003101.jpg new file mode 100644 index 0000000..fdfd2e8 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_16_euphorbia003101.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_17_helleborus003097.jpg b/data/images/loreak/txiki_otras/ZM_17_helleborus003097.jpg new file mode 100644 index 0000000..98f260a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_17_helleborus003097.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_18_humulus003220.jpg b/data/images/loreak/txiki_otras/ZM_18_humulus003220.jpg new file mode 100644 index 0000000..499830b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_18_humulus003220.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_19_hypericum003076.jpg b/data/images/loreak/txiki_otras/ZM_19_hypericum003076.jpg new file mode 100644 index 0000000..41ae2d9 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_19_hypericum003076.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_20_ilex003185.jpg b/data/images/loreak/txiki_otras/ZM_20_ilex003185.jpg new file mode 100644 index 0000000..6314544 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_20_ilex003185.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_21_knautia003090.jpg b/data/images/loreak/txiki_otras/ZM_21_knautia003090.jpg new file mode 100644 index 0000000..5ad4d98 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_21_knautia003090.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_22_lilium003143.jpg b/data/images/loreak/txiki_otras/ZM_22_lilium003143.jpg new file mode 100644 index 0000000..686e4b3 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_22_lilium003143.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_23_lotus003128.jpg b/data/images/loreak/txiki_otras/ZM_23_lotus003128.jpg new file mode 100644 index 0000000..bef5b64 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_23_lotus003128.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_24_lythrum003065.jpg b/data/images/loreak/txiki_otras/ZM_24_lythrum003065.jpg new file mode 100644 index 0000000..b7eba0e Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_24_lythrum003065.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_25_mentha003193.jpg b/data/images/loreak/txiki_otras/ZM_25_mentha003193.jpg new file mode 100644 index 0000000..3035d74 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_25_mentha003193.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_26_narcissus003113.jpg b/data/images/loreak/txiki_otras/ZM_26_narcissus003113.jpg new file mode 100644 index 0000000..51e0f19 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_26_narcissus003113.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_27_oxalis003191.jpg b/data/images/loreak/txiki_otras/ZM_27_oxalis003191.jpg new file mode 100644 index 0000000..239ec47 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_27_oxalis003191.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_28_pinguicula003115.jpg b/data/images/loreak/txiki_otras/ZM_28_pinguicula003115.jpg new file mode 100644 index 0000000..12994d9 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_28_pinguicula003115.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_29_potentilla003069.jpg b/data/images/loreak/txiki_otras/ZM_29_potentilla003069.jpg new file mode 100644 index 0000000..35da125 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_29_potentilla003069.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_30_potentilla003145.jpg b/data/images/loreak/txiki_otras/ZM_30_potentilla003145.jpg new file mode 100644 index 0000000..03e70ce Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_30_potentilla003145.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_31_primula003105.jpg b/data/images/loreak/txiki_otras/ZM_31_primula003105.jpg new file mode 100644 index 0000000..142cc73 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_31_primula003105.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_32_smilax003077.jpg b/data/images/loreak/txiki_otras/ZM_32_smilax003077.jpg new file mode 100644 index 0000000..ff85ca7 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_32_smilax003077.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_33_tamarix003071.jpg b/data/images/loreak/txiki_otras/ZM_33_tamarix003071.jpg new file mode 100644 index 0000000..d468d3e Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_33_tamarix003071.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_34_taraxacum003207.jpg b/data/images/loreak/txiki_otras/ZM_34_taraxacum003207.jpg new file mode 100644 index 0000000..24bf275 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_34_taraxacum003207.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Adianthum_capillus_veneris_003080.jpg b/data/images/loreak/txiki_otras/ZM_Adianthum_capillus_veneris_003080.jpg new file mode 100644 index 0000000..ba2a357 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Adianthum_capillus_veneris_003080.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Agrimonia_eupatoria_003183.jpg b/data/images/loreak/txiki_otras/ZM_Agrimonia_eupatoria_003183.jpg new file mode 100644 index 0000000..c6b8b7b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Agrimonia_eupatoria_003183.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Anacamptis_pyramidalis_003095.jpg b/data/images/loreak/txiki_otras/ZM_Anacamptis_pyramidalis_003095.jpg new file mode 100644 index 0000000..045d1ff Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Anacamptis_pyramidalis_003095.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Anemone_nemorosa_003127.jpg b/data/images/loreak/txiki_otras/ZM_Anemone_nemorosa_003127.jpg new file mode 100644 index 0000000..408e6f0 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Anemone_nemorosa_003127.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Angelica_sylvestris_003176.jpg b/data/images/loreak/txiki_otras/ZM_Angelica_sylvestris_003176.jpg new file mode 100644 index 0000000..3907394 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Angelica_sylvestris_003176.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Angelica_sylvestris_003204.jpg b/data/images/loreak/txiki_otras/ZM_Angelica_sylvestris_003204.jpg new file mode 100644 index 0000000..0823653 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Angelica_sylvestris_003204.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Antirrhinum_003149.jpg b/data/images/loreak/txiki_otras/ZM_Antirrhinum_003149.jpg new file mode 100644 index 0000000..c5199ff Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Antirrhinum_003149.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Antirrhinum_majus_003119.jpg b/data/images/loreak/txiki_otras/ZM_Antirrhinum_majus_003119.jpg new file mode 100644 index 0000000..2e31f9b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Antirrhinum_majus_003119.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Antirrhinum_majus_003164.jpg b/data/images/loreak/txiki_otras/ZM_Antirrhinum_majus_003164.jpg new file mode 100644 index 0000000..4ce6048 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Antirrhinum_majus_003164.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Aquilegia_vulgaris_003160.jpg b/data/images/loreak/txiki_otras/ZM_Aquilegia_vulgaris_003160.jpg new file mode 100644 index 0000000..1fa8e05 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Aquilegia_vulgaris_003160.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Arum_italicum_003152.jpg b/data/images/loreak/txiki_otras/ZM_Arum_italicum_003152.jpg new file mode 100644 index 0000000..1476c15 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Arum_italicum_003152.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Asplenium_adiantum_nigrum_003085.jpg b/data/images/loreak/txiki_otras/ZM_Asplenium_adiantum_nigrum_003085.jpg new file mode 100644 index 0000000..b6378b5 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Asplenium_adiantum_nigrum_003085.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Bellis_perennis_003081.jpg b/data/images/loreak/txiki_otras/ZM_Bellis_perennis_003081.jpg new file mode 100644 index 0000000..389c8ad Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Bellis_perennis_003081.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Blackstonia_perfoliata_003099.jpg b/data/images/loreak/txiki_otras/ZM_Blackstonia_perfoliata_003099.jpg new file mode 100644 index 0000000..29f1874 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Blackstonia_perfoliata_003099.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Blackstonia_perfoliata_003175.jpg b/data/images/loreak/txiki_otras/ZM_Blackstonia_perfoliata_003175.jpg new file mode 100644 index 0000000..10e4a53 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Blackstonia_perfoliata_003175.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Cakile_maritima_003154.jpg b/data/images/loreak/txiki_otras/ZM_Cakile_maritima_003154.jpg new file mode 100644 index 0000000..6c24a9c Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Cakile_maritima_003154.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Campanula_glomerata_003096.jpg b/data/images/loreak/txiki_otras/ZM_Campanula_glomerata_003096.jpg new file mode 100644 index 0000000..8479011 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Campanula_glomerata_003096.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Campanula_patula_003169.jpg b/data/images/loreak/txiki_otras/ZM_Campanula_patula_003169.jpg new file mode 100644 index 0000000..746628e Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Campanula_patula_003169.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Carex_pendula_003213.jpg b/data/images/loreak/txiki_otras/ZM_Carex_pendula_003213.jpg new file mode 100644 index 0000000..68ea3d0 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Carex_pendula_003213.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Carlina_vulgaris_003078.jpg b/data/images/loreak/txiki_otras/ZM_Carlina_vulgaris_003078.jpg new file mode 100644 index 0000000..7246b14 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Carlina_vulgaris_003078.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Carlina_vulgaris_003086.jpg b/data/images/loreak/txiki_otras/ZM_Carlina_vulgaris_003086.jpg new file mode 100644 index 0000000..398897d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Carlina_vulgaris_003086.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Centaurea_debeauxil_003222.jpg b/data/images/loreak/txiki_otras/ZM_Centaurea_debeauxil_003222.jpg new file mode 100644 index 0000000..1098cdc Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Centaurea_debeauxil_003222.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Cichorium_intybus_003210.jpg b/data/images/loreak/txiki_otras/ZM_Cichorium_intybus_003210.jpg new file mode 100644 index 0000000..1877a94 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Cichorium_intybus_003210.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Cirsium_arvense_003211.jpg b/data/images/loreak/txiki_otras/ZM_Cirsium_arvense_003211.jpg new file mode 100644 index 0000000..b2401c3 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Cirsium_arvense_003211.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Cirsium_vulgare_003089.jpg b/data/images/loreak/txiki_otras/ZM_Cirsium_vulgare_003089.jpg new file mode 100644 index 0000000..3fd4cbc Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Cirsium_vulgare_003089.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Cistus_salviifolius_003118.jpg b/data/images/loreak/txiki_otras/ZM_Cistus_salviifolius_003118.jpg new file mode 100644 index 0000000..ed882b3 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Cistus_salviifolius_003118.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Cistus_salviifolius_003206.jpg b/data/images/loreak/txiki_otras/ZM_Cistus_salviifolius_003206.jpg new file mode 100644 index 0000000..f29d58f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Cistus_salviifolius_003206.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Coniza_canadensis_003189.jpg b/data/images/loreak/txiki_otras/ZM_Coniza_canadensis_003189.jpg new file mode 100644 index 0000000..e8d5b91 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Coniza_canadensis_003189.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Crepis_sp_003187.jpg b/data/images/loreak/txiki_otras/ZM_Crepis_sp_003187.jpg new file mode 100644 index 0000000..33ce257 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Crepis_sp_003187.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Daboecia_cantabrica_003171.jpg b/data/images/loreak/txiki_otras/ZM_Daboecia_cantabrica_003171.jpg new file mode 100644 index 0000000..56a6d2f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Daboecia_cantabrica_003171.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Daphne_laureola_003209.jpg b/data/images/loreak/txiki_otras/ZM_Daphne_laureola_003209.jpg new file mode 100644 index 0000000..e527652 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Daphne_laureola_003209.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Dipsacus_fullonum_003201.jpg b/data/images/loreak/txiki_otras/ZM_Dipsacus_fullonum_003201.jpg new file mode 100644 index 0000000..5d3697c Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Dipsacus_fullonum_003201.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Dryopteris_affinis_003190.jpg b/data/images/loreak/txiki_otras/ZM_Dryopteris_affinis_003190.jpg new file mode 100644 index 0000000..9e19d92 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Dryopteris_affinis_003190.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Epilubium_sp_003212.jpg b/data/images/loreak/txiki_otras/ZM_Epilubium_sp_003212.jpg new file mode 100644 index 0000000..0a27064 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Epilubium_sp_003212.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_ciliaris_003066.jpg b/data/images/loreak/txiki_otras/ZM_Erica_ciliaris_003066.jpg new file mode 100644 index 0000000..5845f55 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_ciliaris_003066.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_cinerea_003068.jpg b/data/images/loreak/txiki_otras/ZM_Erica_cinerea_003068.jpg new file mode 100644 index 0000000..a6bb04a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_cinerea_003068.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_cinerea_003173.jpg b/data/images/loreak/txiki_otras/ZM_Erica_cinerea_003173.jpg new file mode 100644 index 0000000..ae87ec2 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_cinerea_003173.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_lusitanica_003074.jpg b/data/images/loreak/txiki_otras/ZM_Erica_lusitanica_003074.jpg new file mode 100644 index 0000000..f53f78f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_lusitanica_003074.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_multiflora_003073.jpg b/data/images/loreak/txiki_otras/ZM_Erica_multiflora_003073.jpg new file mode 100644 index 0000000..5e4584e Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_multiflora_003073.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_tetralix_003070.jpg b/data/images/loreak/txiki_otras/ZM_Erica_tetralix_003070.jpg new file mode 100644 index 0000000..6b7efe8 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_tetralix_003070.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erica_vagans_003170.jpg b/data/images/loreak/txiki_otras/ZM_Erica_vagans_003170.jpg new file mode 100644 index 0000000..ed73187 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erica_vagans_003170.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erodium_moschatum_003091.jpg b/data/images/loreak/txiki_otras/ZM_Erodium_moschatum_003091.jpg new file mode 100644 index 0000000..fdaab82 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erodium_moschatum_003091.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erodium_moschatum_003161.jpg b/data/images/loreak/txiki_otras/ZM_Erodium_moschatum_003161.jpg new file mode 100644 index 0000000..dc9916a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erodium_moschatum_003161.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Eryngium_maritimum_003079.jpg b/data/images/loreak/txiki_otras/ZM_Eryngium_maritimum_003079.jpg new file mode 100644 index 0000000..efa101a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Eryngium_maritimum_003079.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Erythoea_ Centaurium_003195.jpg b/data/images/loreak/txiki_otras/ZM_Erythoea_ Centaurium_003195.jpg new file mode 100644 index 0000000..4d628e9 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Erythoea_ Centaurium_003195.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Eupatotium_cannabium_003217.jpg b/data/images/loreak/txiki_otras/ZM_Eupatotium_cannabium_003217.jpg new file mode 100644 index 0000000..30de566 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Eupatotium_cannabium_003217.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Euphorbia_amygdaloides_003181.jpg b/data/images/loreak/txiki_otras/ZM_Euphorbia_amygdaloides_003181.jpg new file mode 100644 index 0000000..3c6a3ee Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Euphorbia_amygdaloides_003181.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Euphorbia_portlandica_003103.jpg b/data/images/loreak/txiki_otras/ZM_Euphorbia_portlandica_003103.jpg new file mode 100644 index 0000000..15589eb Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Euphorbia_portlandica_003103.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Flore_de_ Guipuzcoa_1_003063.jpg b/data/images/loreak/txiki_otras/ZM_Flore_de_ Guipuzcoa_1_003063.jpg new file mode 100644 index 0000000..af06881 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Flore_de_ Guipuzcoa_1_003063.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Flore_de_guipuzcoa_II_003117.jpg b/data/images/loreak/txiki_otras/ZM_Flore_de_guipuzcoa_II_003117.jpg new file mode 100644 index 0000000..9d7cf8b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Flore_de_guipuzcoa_II_003117.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Flore_de_guypuzcoa_III_003174.jpg b/data/images/loreak/txiki_otras/ZM_Flore_de_guypuzcoa_III_003174.jpg new file mode 100644 index 0000000..2efa6cd Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Flore_de_guypuzcoa_III_003174.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Fumaria_ifficinalis_003122.jpg b/data/images/loreak/txiki_otras/ZM_Fumaria_ifficinalis_003122.jpg new file mode 100644 index 0000000..1b59f4a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Fumaria_ifficinalis_003122.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Gentiana_pneumonanthe_003094.jpg b/data/images/loreak/txiki_otras/ZM_Gentiana_pneumonanthe_003094.jpg new file mode 100644 index 0000000..96992ce Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Gentiana_pneumonanthe_003094.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Geranium_robertianum_003083.jpg b/data/images/loreak/txiki_otras/ZM_Geranium_robertianum_003083.jpg new file mode 100644 index 0000000..c2d3d19 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Geranium_robertianum_003083.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Geranium_rotundifolium_003162.jpg b/data/images/loreak/txiki_otras/ZM_Geranium_rotundifolium_003162.jpg new file mode 100644 index 0000000..93217b1 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Geranium_rotundifolium_003162.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Glechoma_hederacea_003100.jpg b/data/images/loreak/txiki_otras/ZM_Glechoma_hederacea_003100.jpg new file mode 100644 index 0000000..2f3d712 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Glechoma_hederacea_003100.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Groupe_achilees_003196.jpg b/data/images/loreak/txiki_otras/ZM_Groupe_achilees_003196.jpg new file mode 100644 index 0000000..dd792bc Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Groupe_achilees_003196.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Hedera_helix_003064.jpg b/data/images/loreak/txiki_otras/ZM_Hedera_helix_003064.jpg new file mode 100644 index 0000000..658fb4a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Hedera_helix_003064.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Hedera_helix_003208.jpg b/data/images/loreak/txiki_otras/ZM_Hedera_helix_003208.jpg new file mode 100644 index 0000000..5bbcc1d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Hedera_helix_003208.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Hepatica_nobilis_003125.jpg b/data/images/loreak/txiki_otras/ZM_Hepatica_nobilis_003125.jpg new file mode 100644 index 0000000..f6e49b8 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Hepatica_nobilis_003125.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Hieracium_murorum_003199.jpg b/data/images/loreak/txiki_otras/ZM_Hieracium_murorum_003199.jpg new file mode 100644 index 0000000..586f292 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Hieracium_murorum_003199.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Hypericum_perforatum_003192.jpg b/data/images/loreak/txiki_otras/ZM_Hypericum_perforatum_003192.jpg new file mode 100644 index 0000000..f04879e Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Hypericum_perforatum_003192.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Iris_003150.jpg b/data/images/loreak/txiki_otras/ZM_Iris_003150.jpg new file mode 100644 index 0000000..8b7c390 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Iris_003150.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Iris_foetidissima_003075.jpg b/data/images/loreak/txiki_otras/ZM_Iris_foetidissima_003075.jpg new file mode 100644 index 0000000..3d6c05d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Iris_foetidissima_003075.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Iris_pseudacorus_003202.jpg b/data/images/loreak/txiki_otras/ZM_Iris_pseudacorus_003202.jpg new file mode 100644 index 0000000..c27148d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Iris_pseudacorus_003202.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lamiastrum_galeobdolon_003126.jpg b/data/images/loreak/txiki_otras/ZM_Lamiastrum_galeobdolon_003126.jpg new file mode 100644 index 0000000..3b81d99 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lamiastrum_galeobdolon_003126.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lamium_maculatum_003137.jpg b/data/images/loreak/txiki_otras/ZM_Lamium_maculatum_003137.jpg new file mode 100644 index 0000000..2214f03 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lamium_maculatum_003137.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lamium_maculatum_003178.jpg b/data/images/loreak/txiki_otras/ZM_Lamium_maculatum_003178.jpg new file mode 100644 index 0000000..640a1dd Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lamium_maculatum_003178.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lathrea_clandestina_003203.jpg b/data/images/loreak/txiki_otras/ZM_Lathrea_clandestina_003203.jpg new file mode 100644 index 0000000..8a4ac14 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lathrea_clandestina_003203.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lathyrus_aphaca_003156.jpg b/data/images/loreak/txiki_otras/ZM_Lathyrus_aphaca_003156.jpg new file mode 100644 index 0000000..bd11cc7 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lathyrus_aphaca_003156.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lathyrus_nissolia_003163.jpg b/data/images/loreak/txiki_otras/ZM_Lathyrus_nissolia_003163.jpg new file mode 100644 index 0000000..ef21f2a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lathyrus_nissolia_003163.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lathyrus_pratensis_003165.jpg b/data/images/loreak/txiki_otras/ZM_Lathyrus_pratensis_003165.jpg new file mode 100644 index 0000000..9827527 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lathyrus_pratensis_003165.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lathyrus_sylvestris_003166.jpg b/data/images/loreak/txiki_otras/ZM_Lathyrus_sylvestris_003166.jpg new file mode 100644 index 0000000..a1c7e09 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lathyrus_sylvestris_003166.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lathyrus_sylvestris_003198.jpg b/data/images/loreak/txiki_otras/ZM_Lathyrus_sylvestris_003198.jpg new file mode 100644 index 0000000..e21ab07 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lathyrus_sylvestris_003198.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lichnis_flos_cuculi_003131.jpg b/data/images/loreak/txiki_otras/ZM_Lichnis_flos_cuculi_003131.jpg new file mode 100644 index 0000000..6d02409 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lichnis_flos_cuculi_003131.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Ligustrum_vulgare_003142.jpg b/data/images/loreak/txiki_otras/ZM_Ligustrum_vulgare_003142.jpg new file mode 100644 index 0000000..6a7573f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Ligustrum_vulgare_003142.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Linaria_supina_003123.jpg b/data/images/loreak/txiki_otras/ZM_Linaria_supina_003123.jpg new file mode 100644 index 0000000..fe02f72 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Linaria_supina_003123.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lithodora_diffusa_003116.jpg b/data/images/loreak/txiki_otras/ZM_Lithodora_diffusa_003116.jpg new file mode 100644 index 0000000..93e869f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lithodora_diffusa_003116.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lotus_corniculata_Anthyllis _003188.jpg b/data/images/loreak/txiki_otras/ZM_Lotus_corniculata_Anthyllis _003188.jpg new file mode 100644 index 0000000..a31ceaa Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lotus_corniculata_Anthyllis _003188.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lotus_corniculatus_003112.jpg b/data/images/loreak/txiki_otras/ZM_Lotus_corniculatus_003112.jpg new file mode 100644 index 0000000..911a134 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lotus_corniculatus_003112.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lotus_corniculatus_003159.jpg b/data/images/loreak/txiki_otras/ZM_Lotus_corniculatus_003159.jpg new file mode 100644 index 0000000..99b1f83 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lotus_corniculatus_003159.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Lythrum_salicaria _003147.jpg b/data/images/loreak/txiki_otras/ZM_Lythrum_salicaria _003147.jpg new file mode 100644 index 0000000..fee1c1d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Lythrum_salicaria _003147.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Myosotis_lamottiana_003108.jpg b/data/images/loreak/txiki_otras/ZM_Myosotis_lamottiana_003108.jpg new file mode 100644 index 0000000..4ae2b96 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Myosotis_lamottiana_003108.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Ononis_spinosa_ssp_maritima_003153.jpg b/data/images/loreak/txiki_otras/ZM_Ononis_spinosa_ssp_maritima_003153.jpg new file mode 100644 index 0000000..1051a28 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Ononis_spinosa_ssp_maritima_003153.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Ononis_spinosa_ssp_maritima_003172.jpg b/data/images/loreak/txiki_otras/ZM_Ononis_spinosa_ssp_maritima_003172.jpg new file mode 100644 index 0000000..7f37333 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Ononis_spinosa_ssp_maritima_003172.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Ophrys_scolopax_003168.jpg b/data/images/loreak/txiki_otras/ZM_Ophrys_scolopax_003168.jpg new file mode 100644 index 0000000..5bda63f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Ophrys_scolopax_003168.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Orchis_mascula_003186.jpg b/data/images/loreak/txiki_otras/ZM_Orchis_mascula_003186.jpg new file mode 100644 index 0000000..3baf2cb Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Orchis_mascula_003186.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Origanum_vulgare_003072.jpg b/data/images/loreak/txiki_otras/ZM_Origanum_vulgare_003072.jpg new file mode 100644 index 0000000..6626f87 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Origanum_vulgare_003072.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Orobanche_003177.jpg b/data/images/loreak/txiki_otras/ZM_Orobanche_003177.jpg new file mode 100644 index 0000000..2be058b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Orobanche_003177.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Phyteuma_spicatum_003138.jpg b/data/images/loreak/txiki_otras/ZM_Phyteuma_spicatum_003138.jpg new file mode 100644 index 0000000..28ec17f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Phyteuma_spicatum_003138.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Picris_echioides_003216.jpg b/data/images/loreak/txiki_otras/ZM_Picris_echioides_003216.jpg new file mode 100644 index 0000000..db87e1d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Picris_echioides_003216.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Platanthera_bifolia_003200.jpg b/data/images/loreak/txiki_otras/ZM_Platanthera_bifolia_003200.jpg new file mode 100644 index 0000000..c119b67 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Platanthera_bifolia_003200.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Polygala_ vulgaris_003158.jpg b/data/images/loreak/txiki_otras/ZM_Polygala_ vulgaris_003158.jpg new file mode 100644 index 0000000..5f49bee Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Polygala_ vulgaris_003158.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Polygala_vulgaris_003223.jpg b/data/images/loreak/txiki_otras/ZM_Polygala_vulgaris_003223.jpg new file mode 100644 index 0000000..374d17d Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Polygala_vulgaris_003223.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Polypodium_cambricum_003084.jpg b/data/images/loreak/txiki_otras/ZM_Polypodium_cambricum_003084.jpg new file mode 100644 index 0000000..7b5b9c2 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Polypodium_cambricum_003084.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Primula_elatior_003179.jpg b/data/images/loreak/txiki_otras/ZM_Primula_elatior_003179.jpg new file mode 100644 index 0000000..015b00a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Primula_elatior_003179.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Pulmonaria_longifolia_003120.jpg b/data/images/loreak/txiki_otras/ZM_Pulmonaria_longifolia_003120.jpg new file mode 100644 index 0000000..dcbca9a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Pulmonaria_longifolia_003120.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Ranunculus_acris_003157.jpg b/data/images/loreak/txiki_otras/ZM_Ranunculus_acris_003157.jpg new file mode 100644 index 0000000..464434b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Ranunculus_acris_003157.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Ranunculus_ficaria_003107.jpg b/data/images/loreak/txiki_otras/ZM_Ranunculus_ficaria_003107.jpg new file mode 100644 index 0000000..efd3c42 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Ranunculus_ficaria_003107.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Rosa_sempervirens_003141.jpg b/data/images/loreak/txiki_otras/ZM_Rosa_sempervirens_003141.jpg new file mode 100644 index 0000000..95f954b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Rosa_sempervirens_003141.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Scilla_ lilio-hyacinthos_003184.jpg b/data/images/loreak/txiki_otras/ZM_Scilla_ lilio-hyacinthos_003184.jpg new file mode 100644 index 0000000..427264a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Scilla_ lilio-hyacinthos_003184.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Serapias_cordigera_003106.jpg b/data/images/loreak/txiki_otras/ZM_Serapias_cordigera_003106.jpg new file mode 100644 index 0000000..95660de Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Serapias_cordigera_003106.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Silene_dioica_003092.jpg b/data/images/loreak/txiki_otras/ZM_Silene_dioica_003092.jpg new file mode 100644 index 0000000..46d1fd5 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Silene_dioica_003092.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Silene_dioica_003130.jpg b/data/images/loreak/txiki_otras/ZM_Silene_dioica_003130.jpg new file mode 100644 index 0000000..8e33907 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Silene_dioica_003130.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Silene_nutans_003139.jpg b/data/images/loreak/txiki_otras/ZM_Silene_nutans_003139.jpg new file mode 100644 index 0000000..02d31ee Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Silene_nutans_003139.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Smilax_aspera_003082.jpg b/data/images/loreak/txiki_otras/ZM_Smilax_aspera_003082.jpg new file mode 100644 index 0000000..5c0d715 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Smilax_aspera_003082.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Solanum_dulcamara_003167.jpg b/data/images/loreak/txiki_otras/ZM_Solanum_dulcamara_003167.jpg new file mode 100644 index 0000000..f82cbf4 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Solanum_dulcamara_003167.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Stellaria_holostea_003124.jpg b/data/images/loreak/txiki_otras/ZM_Stellaria_holostea_003124.jpg new file mode 100644 index 0000000..249935e Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Stellaria_holostea_003124.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Symphytum_tuberosum_003182.jpg b/data/images/loreak/txiki_otras/ZM_Symphytum_tuberosum_003182.jpg new file mode 100644 index 0000000..61806ce Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Symphytum_tuberosum_003182.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Tamus_communis_003111.jpg b/data/images/loreak/txiki_otras/ZM_Tamus_communis_003111.jpg new file mode 100644 index 0000000..789ba9a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Tamus_communis_003111.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Teucrium_pyrenaicum_003144.jpg b/data/images/loreak/txiki_otras/ZM_Teucrium_pyrenaicum_003144.jpg new file mode 100644 index 0000000..b05aa69 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Teucrium_pyrenaicum_003144.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Verbascum_thapsus_003219.jpg b/data/images/loreak/txiki_otras/ZM_Verbascum_thapsus_003219.jpg new file mode 100644 index 0000000..ad5800f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Verbascum_thapsus_003219.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Veronica_chamaedrys_003109.jpg b/data/images/loreak/txiki_otras/ZM_Veronica_chamaedrys_003109.jpg new file mode 100644 index 0000000..577eaed Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Veronica_chamaedrys_003109.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg b/data/images/loreak/txiki_otras/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg new file mode 100644 index 0000000..577f060 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Vicia_sepium_y_Lathyrus_montanus_003121.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_Vinca_minor_003102.jpg b/data/images/loreak/txiki_otras/ZM_Vinca_minor_003102.jpg new file mode 100644 index 0000000..5899363 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_Vinca_minor_003102.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_cb4_01_Azkoitia.jpg b/data/images/loreak/txiki_otras/ZM_cb4_01_Azkoitia.jpg new file mode 100644 index 0000000..f82aad4 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_cb4_01_Azkoitia.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_cb4_03_Bateleras.jpg b/data/images/loreak/txiki_otras/ZM_cb4_03_Bateleras.jpg new file mode 100644 index 0000000..59843d5 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_cb4_03_Bateleras.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_cb4_04_Cambo.jpg b/data/images/loreak/txiki_otras/ZM_cb4_04_Cambo.jpg new file mode 100644 index 0000000..ff20e32 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_cb4_04_Cambo.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_cb4_05_Fuenterrabia.jpg b/data/images/loreak/txiki_otras/ZM_cb4_05_Fuenterrabia.jpg new file mode 100644 index 0000000..27883ac Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_cb4_05_Fuenterrabia.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_groupe_achilees_003194.jpg b/data/images/loreak/txiki_otras/ZM_groupe_achilees_003194.jpg new file mode 100644 index 0000000..3a71412 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_groupe_achilees_003194.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_01_Pamplona.jpg b/data/images/loreak/txiki_otras/ZM_pm_01_Pamplona.jpg new file mode 100644 index 0000000..af897fe Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_01_Pamplona.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_02_Baiona.jpg b/data/images/loreak/txiki_otras/ZM_pm_02_Baiona.jpg new file mode 100644 index 0000000..2ce5597 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_02_Baiona.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_03_Loiola.jpg b/data/images/loreak/txiki_otras/ZM_pm_03_Loiola.jpg new file mode 100644 index 0000000..2f8e275 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_03_Loiola.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_04_Oiartzun.jpg b/data/images/loreak/txiki_otras/ZM_pm_04_Oiartzun.jpg new file mode 100644 index 0000000..122bec6 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_04_Oiartzun.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_05_Bilbao.jpg b/data/images/loreak/txiki_otras/ZM_pm_05_Bilbao.jpg new file mode 100644 index 0000000..998332c Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_05_Bilbao.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_06_Oñate.jpg b/data/images/loreak/txiki_otras/ZM_pm_06_Oñate.jpg new file mode 100644 index 0000000..1f8bf39 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_06_Oñate.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_07_Eibar.jpg b/data/images/loreak/txiki_otras/ZM_pm_07_Eibar.jpg new file mode 100644 index 0000000..97a3a94 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_07_Eibar.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_08_Durango.jpg b/data/images/loreak/txiki_otras/ZM_pm_08_Durango.jpg new file mode 100644 index 0000000..f19fe90 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_08_Durango.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_09_Azpeitia.jpg b/data/images/loreak/txiki_otras/ZM_pm_09_Azpeitia.jpg new file mode 100644 index 0000000..c347950 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_09_Azpeitia.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_10_San_Sebastian.jpg b/data/images/loreak/txiki_otras/ZM_pm_10_San_Sebastian.jpg new file mode 100644 index 0000000..70d2ef2 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_10_San_Sebastian.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_11_Bergara.jpg b/data/images/loreak/txiki_otras/ZM_pm_11_Bergara.jpg new file mode 100644 index 0000000..377e32f Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_11_Bergara.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_pm_12_Biarritz.jpg b/data/images/loreak/txiki_otras/ZM_pm_12_Biarritz.jpg new file mode 100644 index 0000000..6e4df78 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_pm_12_Biarritz.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_01_Italia.jpg b/data/images/loreak/txiki_otras/ZM_po_01_Italia.jpg new file mode 100644 index 0000000..6cf8d6b Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_01_Italia.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_02_Rimini.jpg b/data/images/loreak/txiki_otras/ZM_po_02_Rimini.jpg new file mode 100644 index 0000000..bdc65fa Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_02_Rimini.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_03_Legion_francesa.jpg b/data/images/loreak/txiki_otras/ZM_po_03_Legion_francesa.jpg new file mode 100644 index 0000000..cc356e6 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_03_Legion_francesa.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_04_Behobia.jpg b/data/images/loreak/txiki_otras/ZM_po_04_Behobia.jpg new file mode 100644 index 0000000..42a4346 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_04_Behobia.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_05_Bologna.jpg b/data/images/loreak/txiki_otras/ZM_po_05_Bologna.jpg new file mode 100644 index 0000000..1dd32fb Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_05_Bologna.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_07_Bologna.jpg b/data/images/loreak/txiki_otras/ZM_po_07_Bologna.jpg new file mode 100644 index 0000000..d98d59a Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_07_Bologna.jpg differ diff --git a/data/images/loreak/txiki_otras/ZM_po_08_Montejurra.jpg b/data/images/loreak/txiki_otras/ZM_po_08_Montejurra.jpg new file mode 100644 index 0000000..4a2b210 Binary files /dev/null and b/data/images/loreak/txiki_otras/ZM_po_08_Montejurra.jpg differ diff --git a/data/images/loreak/txiki_otras/bibliotecadigitaljardinbotanico.jpg b/data/images/loreak/txiki_otras/bibliotecadigitaljardinbotanico.jpg new file mode 100644 index 0000000..8dd735a Binary files /dev/null and b/data/images/loreak/txiki_otras/bibliotecadigitaljardinbotanico.jpg differ diff --git a/data/images/main-in-bottom.jpg b/data/images/main-in-bottom.jpg new file mode 100644 index 0000000..93cea6c Binary files /dev/null and b/data/images/main-in-bottom.jpg differ diff --git a/data/images/main-in-top.jpg b/data/images/main-in-top.jpg new file mode 100644 index 0000000..09434de Binary files /dev/null and b/data/images/main-in-top.jpg differ diff --git a/data/images/main-in.jpg b/data/images/main-in.jpg new file mode 100644 index 0000000..155c6e3 Binary files /dev/null and b/data/images/main-in.jpg differ diff --git a/data/images/max/IMG-RPR-02.jpg b/data/images/max/IMG-RPR-02.jpg new file mode 100644 index 0000000..7e9e705 Binary files /dev/null and b/data/images/max/IMG-RPR-02.jpg differ diff --git a/data/images/max/IMG-RPR-02.jpg.LCK b/data/images/max/IMG-RPR-02.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/IMG-RPR-02.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/IMG-RPR-03.jpg b/data/images/max/IMG-RPR-03.jpg new file mode 100644 index 0000000..44cc99d Binary files /dev/null and b/data/images/max/IMG-RPR-03.jpg differ diff --git a/data/images/max/IMG-RPR-03.jpg.LCK b/data/images/max/IMG-RPR-03.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/IMG-RPR-03.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/IMG-RPR-04.jpg b/data/images/max/IMG-RPR-04.jpg new file mode 100644 index 0000000..269c44f Binary files /dev/null and b/data/images/max/IMG-RPR-04.jpg differ diff --git a/data/images/max/IMG-RPR-04.jpg.LCK b/data/images/max/IMG-RPR-04.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/IMG-RPR-04.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_Loreak_asmatzen(02).jpg b/data/images/max/ZM_Loreak_asmatzen(02).jpg new file mode 100644 index 0000000..3f62fd7 Binary files /dev/null and b/data/images/max/ZM_Loreak_asmatzen(02).jpg differ diff --git a/data/images/max/ZM_Loreak_asmatzen(03).jpg b/data/images/max/ZM_Loreak_asmatzen(03).jpg new file mode 100644 index 0000000..7fd699e Binary files /dev/null and b/data/images/max/ZM_Loreak_asmatzen(03).jpg differ diff --git a/data/images/max/ZM_Loreak_asmatzen(04).jpg b/data/images/max/ZM_Loreak_asmatzen(04).jpg new file mode 100644 index 0000000..8e3dc3e Binary files /dev/null and b/data/images/max/ZM_Loreak_asmatzen(04).jpg differ diff --git a/data/images/max/ZM_Loreak_asmatzen(05).jpg b/data/images/max/ZM_Loreak_asmatzen(05).jpg new file mode 100644 index 0000000..3868905 Binary files /dev/null and b/data/images/max/ZM_Loreak_asmatzen(05).jpg differ diff --git a/data/images/max/ZM_Loreak_asmatzen(06).jpg b/data/images/max/ZM_Loreak_asmatzen(06).jpg new file mode 100644 index 0000000..04d5fc8 Binary files /dev/null and b/data/images/max/ZM_Loreak_asmatzen(06).jpg differ diff --git a/data/images/max/ZM_cb3_01_Pirineos.jpg b/data/images/max/ZM_cb3_01_Pirineos.jpg new file mode 100644 index 0000000..cfff16c Binary files /dev/null and b/data/images/max/ZM_cb3_01_Pirineos.jpg differ diff --git a/data/images/max/ZM_cb3_02_Gavarni.jpg b/data/images/max/ZM_cb3_02_Gavarni.jpg new file mode 100644 index 0000000..02ba7b2 Binary files /dev/null and b/data/images/max/ZM_cb3_02_Gavarni.jpg differ diff --git a/data/images/max/ZM_cb3_03_Cascade_Valentin.jpg b/data/images/max/ZM_cb3_03_Cascade_Valentin.jpg new file mode 100644 index 0000000..56efed4 Binary files /dev/null and b/data/images/max/ZM_cb3_03_Cascade_Valentin.jpg differ diff --git a/data/images/max/ZM_cb3_04_Luz.jpg b/data/images/max/ZM_cb3_04_Luz.jpg new file mode 100644 index 0000000..4744bbd Binary files /dev/null and b/data/images/max/ZM_cb3_04_Luz.jpg differ diff --git a/data/images/max/ZM_cb3_Chapelle_de_Poney_La_Huc.jpg b/data/images/max/ZM_cb3_Chapelle_de_Poney_La_Huc.jpg new file mode 100644 index 0000000..57b957b Binary files /dev/null and b/data/images/max/ZM_cb3_Chapelle_de_Poney_La_Huc.jpg differ diff --git a/data/images/max/ZM_cb3_Chasseurs.jpg b/data/images/max/ZM_cb3_Chasseurs.jpg new file mode 100644 index 0000000..130a0f7 Binary files /dev/null and b/data/images/max/ZM_cb3_Chasseurs.jpg differ diff --git a/data/images/max/ZM_cb3_Luchon.jpg b/data/images/max/ZM_cb3_Luchon.jpg new file mode 100644 index 0000000..0031193 Binary files /dev/null and b/data/images/max/ZM_cb3_Luchon.jpg differ diff --git a/data/images/max/ZM_cb4_01_Azkoitia.jpg b/data/images/max/ZM_cb4_01_Azkoitia.jpg new file mode 100644 index 0000000..fa06650 Binary files /dev/null and b/data/images/max/ZM_cb4_01_Azkoitia.jpg differ diff --git a/data/images/max/ZM_cb4_01_Azkoitia.jpg.LCK b/data/images/max/ZM_cb4_01_Azkoitia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_cb4_01_Azkoitia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_cb4_02_Bubani.jpg b/data/images/max/ZM_cb4_02_Bubani.jpg new file mode 100644 index 0000000..34dd51b Binary files /dev/null and b/data/images/max/ZM_cb4_02_Bubani.jpg differ diff --git a/data/images/max/ZM_cb4_03_Bateleras.jpg b/data/images/max/ZM_cb4_03_Bateleras.jpg new file mode 100644 index 0000000..95e5f0f Binary files /dev/null and b/data/images/max/ZM_cb4_03_Bateleras.jpg differ diff --git a/data/images/max/ZM_cb4_03_Bateleras.jpg.LCK b/data/images/max/ZM_cb4_03_Bateleras.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_cb4_03_Bateleras.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_cb4_04_Cambo.jpg b/data/images/max/ZM_cb4_04_Cambo.jpg new file mode 100644 index 0000000..41715ef Binary files /dev/null and b/data/images/max/ZM_cb4_04_Cambo.jpg differ diff --git a/data/images/max/ZM_cb4_04_Cambo.jpg.LCK b/data/images/max/ZM_cb4_04_Cambo.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_cb4_04_Cambo.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_cb4_05_Fuenterrabia.jpg b/data/images/max/ZM_cb4_05_Fuenterrabia.jpg new file mode 100644 index 0000000..084898a Binary files /dev/null and b/data/images/max/ZM_cb4_05_Fuenterrabia.jpg differ diff --git a/data/images/max/ZM_cb4_05_Fuenterrabia.jpg.LCK b/data/images/max/ZM_cb4_05_Fuenterrabia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_cb4_05_Fuenterrabia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_01_Pamplona.jpg b/data/images/max/ZM_pm_01_Pamplona.jpg new file mode 100644 index 0000000..8ff92b2 Binary files /dev/null and b/data/images/max/ZM_pm_01_Pamplona.jpg differ diff --git a/data/images/max/ZM_pm_01_Pamplona.jpg.LCK b/data/images/max/ZM_pm_01_Pamplona.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_01_Pamplona.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_02_Baiona.jpg b/data/images/max/ZM_pm_02_Baiona.jpg new file mode 100644 index 0000000..13aa769 Binary files /dev/null and b/data/images/max/ZM_pm_02_Baiona.jpg differ diff --git a/data/images/max/ZM_pm_02_Baiona.jpg.LCK b/data/images/max/ZM_pm_02_Baiona.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_02_Baiona.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_03_Loiola.jpg b/data/images/max/ZM_pm_03_Loiola.jpg new file mode 100644 index 0000000..8e48949 Binary files /dev/null and b/data/images/max/ZM_pm_03_Loiola.jpg differ diff --git a/data/images/max/ZM_pm_03_Loiola.jpg.LCK b/data/images/max/ZM_pm_03_Loiola.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_03_Loiola.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_04_Oiartzun.jpg b/data/images/max/ZM_pm_04_Oiartzun.jpg new file mode 100644 index 0000000..e879dd3 Binary files /dev/null and b/data/images/max/ZM_pm_04_Oiartzun.jpg differ diff --git a/data/images/max/ZM_pm_04_Oiartzun.jpg.LCK b/data/images/max/ZM_pm_04_Oiartzun.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_04_Oiartzun.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_05_Bilbao.jpg b/data/images/max/ZM_pm_05_Bilbao.jpg new file mode 100644 index 0000000..52675dc Binary files /dev/null and b/data/images/max/ZM_pm_05_Bilbao.jpg differ diff --git a/data/images/max/ZM_pm_05_Bilbao.jpg.LCK b/data/images/max/ZM_pm_05_Bilbao.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_05_Bilbao.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_06_Onate.jpg b/data/images/max/ZM_pm_06_Onate.jpg new file mode 100644 index 0000000..4f4599f Binary files /dev/null and b/data/images/max/ZM_pm_06_Onate.jpg differ diff --git a/data/images/max/ZM_pm_06_Oñate.jpg.LCK b/data/images/max/ZM_pm_06_Oñate.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_06_Oñate.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_07_Eibar.jpg b/data/images/max/ZM_pm_07_Eibar.jpg new file mode 100644 index 0000000..c3e435d Binary files /dev/null and b/data/images/max/ZM_pm_07_Eibar.jpg differ diff --git a/data/images/max/ZM_pm_07_Eibar.jpg.LCK b/data/images/max/ZM_pm_07_Eibar.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_07_Eibar.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_08_Durango.jpg b/data/images/max/ZM_pm_08_Durango.jpg new file mode 100644 index 0000000..44c8838 Binary files /dev/null and b/data/images/max/ZM_pm_08_Durango.jpg differ diff --git a/data/images/max/ZM_pm_08_Durango.jpg.LCK b/data/images/max/ZM_pm_08_Durango.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_08_Durango.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_09_Azpeitia.jpg b/data/images/max/ZM_pm_09_Azpeitia.jpg new file mode 100644 index 0000000..f030c98 Binary files /dev/null and b/data/images/max/ZM_pm_09_Azpeitia.jpg differ diff --git a/data/images/max/ZM_pm_09_Azpeitia.jpg.LCK b/data/images/max/ZM_pm_09_Azpeitia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_09_Azpeitia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_10_San_Sebastian.jpg b/data/images/max/ZM_pm_10_San_Sebastian.jpg new file mode 100644 index 0000000..e7dc769 Binary files /dev/null and b/data/images/max/ZM_pm_10_San_Sebastian.jpg differ diff --git a/data/images/max/ZM_pm_10_San_Sebastian.jpg.LCK b/data/images/max/ZM_pm_10_San_Sebastian.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_10_San_Sebastian.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_11_Bergara.jpg b/data/images/max/ZM_pm_11_Bergara.jpg new file mode 100644 index 0000000..e5dba0d Binary files /dev/null and b/data/images/max/ZM_pm_11_Bergara.jpg differ diff --git a/data/images/max/ZM_pm_11_Bergara.jpg.LCK b/data/images/max/ZM_pm_11_Bergara.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_11_Bergara.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_pm_12_Biarritz.jpg b/data/images/max/ZM_pm_12_Biarritz.jpg new file mode 100644 index 0000000..f6214af Binary files /dev/null and b/data/images/max/ZM_pm_12_Biarritz.jpg differ diff --git a/data/images/max/ZM_pm_12_Biarritz.jpg.LCK b/data/images/max/ZM_pm_12_Biarritz.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_pm_12_Biarritz.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_01_Italia.jpg b/data/images/max/ZM_po_01_Italia.jpg new file mode 100644 index 0000000..84d01ae Binary files /dev/null and b/data/images/max/ZM_po_01_Italia.jpg differ diff --git a/data/images/max/ZM_po_01_Italia.jpg.LCK b/data/images/max/ZM_po_01_Italia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_01_Italia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_02_Rimini.jpg b/data/images/max/ZM_po_02_Rimini.jpg new file mode 100644 index 0000000..62250c5 Binary files /dev/null and b/data/images/max/ZM_po_02_Rimini.jpg differ diff --git a/data/images/max/ZM_po_02_Rimini.jpg.LCK b/data/images/max/ZM_po_02_Rimini.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_02_Rimini.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_03_Legion_francesa.jpg b/data/images/max/ZM_po_03_Legion_francesa.jpg new file mode 100644 index 0000000..c8cdd11 Binary files /dev/null and b/data/images/max/ZM_po_03_Legion_francesa.jpg differ diff --git a/data/images/max/ZM_po_03_Legion_francesa.jpg.LCK b/data/images/max/ZM_po_03_Legion_francesa.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_03_Legion_francesa.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_04_Behobia.jpg b/data/images/max/ZM_po_04_Behobia.jpg new file mode 100644 index 0000000..d5470a7 Binary files /dev/null and b/data/images/max/ZM_po_04_Behobia.jpg differ diff --git a/data/images/max/ZM_po_04_Behobia.jpg.LCK b/data/images/max/ZM_po_04_Behobia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_04_Behobia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_05_Bologna.jpg b/data/images/max/ZM_po_05_Bologna.jpg new file mode 100644 index 0000000..1b11f56 Binary files /dev/null and b/data/images/max/ZM_po_05_Bologna.jpg differ diff --git a/data/images/max/ZM_po_05_Bologna.jpg.LCK b/data/images/max/ZM_po_05_Bologna.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_05_Bologna.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_06_San_Sebastian.jpg b/data/images/max/ZM_po_06_San_Sebastian.jpg new file mode 100644 index 0000000..fd679af Binary files /dev/null and b/data/images/max/ZM_po_06_San_Sebastian.jpg differ diff --git a/data/images/max/ZM_po_06_San_Sebastian.jpg.LCK b/data/images/max/ZM_po_06_San_Sebastian.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_06_San_Sebastian.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_07_Bologna.jpg b/data/images/max/ZM_po_07_Bologna.jpg new file mode 100644 index 0000000..3a6c13f Binary files /dev/null and b/data/images/max/ZM_po_07_Bologna.jpg differ diff --git a/data/images/max/ZM_po_07_Bologna.jpg.LCK b/data/images/max/ZM_po_07_Bologna.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_07_Bologna.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/ZM_po_08_Montejurra.jpg b/data/images/max/ZM_po_08_Montejurra.jpg new file mode 100644 index 0000000..5fa4ade Binary files /dev/null and b/data/images/max/ZM_po_08_Montejurra.jpg differ diff --git a/data/images/max/ZM_po_08_Montejurra.jpg.LCK b/data/images/max/ZM_po_08_Montejurra.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/max/ZM_po_08_Montejurra.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/max/Zumalakarregi_Museoa_Adarhaizea_Konzertua.jpg b/data/images/max/Zumalakarregi_Museoa_Adarhaizea_Konzertua.jpg new file mode 100644 index 0000000..4964f8c Binary files /dev/null and b/data/images/max/Zumalakarregi_Museoa_Adarhaizea_Konzertua.jpg differ diff --git a/data/images/max/Zumalakarregi_Museoa_Aduriz_Lorejana_Ikastaroa.jpg b/data/images/max/Zumalakarregi_Museoa_Aduriz_Lorejana_Ikastaroa.jpg new file mode 100644 index 0000000..149fccb Binary files /dev/null and b/data/images/max/Zumalakarregi_Museoa_Aduriz_Lorejana_Ikastaroa.jpg differ diff --git a/data/images/max/Zumalakarregi_Museoa_Akuarelistak_Cristina_enean.jpg b/data/images/max/Zumalakarregi_Museoa_Akuarelistak_Cristina_enean.jpg new file mode 100644 index 0000000..6aad915 Binary files /dev/null and b/data/images/max/Zumalakarregi_Museoa_Akuarelistak_Cristina_enean.jpg differ diff --git a/data/images/max/zm_chapele_.jpg b/data/images/max/zm_chapele_.jpg new file mode 100644 index 0000000..06f1073 Binary files /dev/null and b/data/images/max/zm_chapele_.jpg differ diff --git a/data/images/menu_bottom.jpg b/data/images/menu_bottom.jpg new file mode 100644 index 0000000..0bfea21 Binary files /dev/null and b/data/images/menu_bottom.jpg differ diff --git a/data/images/menu_middle.jpg b/data/images/menu_middle.jpg new file mode 100644 index 0000000..2c2c5ce Binary files /dev/null and b/data/images/menu_middle.jpg differ diff --git a/data/images/menu_middleg.jpg b/data/images/menu_middleg.jpg new file mode 100644 index 0000000..67a50f0 Binary files /dev/null and b/data/images/menu_middleg.jpg differ diff --git a/data/images/menu_top.jpg b/data/images/menu_top.jpg new file mode 100644 index 0000000..70e65d5 Binary files /dev/null and b/data/images/menu_top.jpg differ diff --git a/data/images/min/IMG-RPR-02.jpg b/data/images/min/IMG-RPR-02.jpg new file mode 100644 index 0000000..3a903bd Binary files /dev/null and b/data/images/min/IMG-RPR-02.jpg differ diff --git a/data/images/min/IMG-RPR-02.jpg.LCK b/data/images/min/IMG-RPR-02.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/IMG-RPR-02.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/IMG-RPR-03.jpg b/data/images/min/IMG-RPR-03.jpg new file mode 100644 index 0000000..b9616f5 Binary files /dev/null and b/data/images/min/IMG-RPR-03.jpg differ diff --git a/data/images/min/IMG-RPR-04.jpg b/data/images/min/IMG-RPR-04.jpg new file mode 100644 index 0000000..3336b60 Binary files /dev/null and b/data/images/min/IMG-RPR-04.jpg differ diff --git a/data/images/min/IMG-RPR-04.jpg.LCK b/data/images/min/IMG-RPR-04.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/IMG-RPR-04.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_Loreak_asmatzen(02).jpg b/data/images/min/ZM_Loreak_asmatzen(02).jpg new file mode 100644 index 0000000..f72a99a Binary files /dev/null and b/data/images/min/ZM_Loreak_asmatzen(02).jpg differ diff --git a/data/images/min/ZM_Loreak_asmatzen(03).jpg b/data/images/min/ZM_Loreak_asmatzen(03).jpg new file mode 100644 index 0000000..9122b7d Binary files /dev/null and b/data/images/min/ZM_Loreak_asmatzen(03).jpg differ diff --git a/data/images/min/ZM_Loreak_asmatzen(04).jpg b/data/images/min/ZM_Loreak_asmatzen(04).jpg new file mode 100644 index 0000000..ccd6a97 Binary files /dev/null and b/data/images/min/ZM_Loreak_asmatzen(04).jpg differ diff --git a/data/images/min/ZM_Loreak_asmatzen(05).jpg b/data/images/min/ZM_Loreak_asmatzen(05).jpg new file mode 100644 index 0000000..2312441 Binary files /dev/null and b/data/images/min/ZM_Loreak_asmatzen(05).jpg differ diff --git a/data/images/min/ZM_Loreak_asmatzen(06).jpg b/data/images/min/ZM_Loreak_asmatzen(06).jpg new file mode 100644 index 0000000..595720f Binary files /dev/null and b/data/images/min/ZM_Loreak_asmatzen(06).jpg differ diff --git a/data/images/min/ZM_cb3_01_Pirineos.jpg b/data/images/min/ZM_cb3_01_Pirineos.jpg new file mode 100644 index 0000000..b99a298 Binary files /dev/null and b/data/images/min/ZM_cb3_01_Pirineos.jpg differ diff --git a/data/images/min/ZM_cb3_02_Gavarni.jpg b/data/images/min/ZM_cb3_02_Gavarni.jpg new file mode 100644 index 0000000..6d778a6 Binary files /dev/null and b/data/images/min/ZM_cb3_02_Gavarni.jpg differ diff --git a/data/images/min/ZM_cb3_03_Cascade_Valentin.jpg b/data/images/min/ZM_cb3_03_Cascade_Valentin.jpg new file mode 100644 index 0000000..dbd161b Binary files /dev/null and b/data/images/min/ZM_cb3_03_Cascade_Valentin.jpg differ diff --git a/data/images/min/ZM_cb3_04_Luz.jpg b/data/images/min/ZM_cb3_04_Luz.jpg new file mode 100644 index 0000000..b196ada Binary files /dev/null and b/data/images/min/ZM_cb3_04_Luz.jpg differ diff --git a/data/images/min/ZM_cb3_Chapelle_de_Poney_La_Huc.jpg b/data/images/min/ZM_cb3_Chapelle_de_Poney_La_Huc.jpg new file mode 100644 index 0000000..cf9262c Binary files /dev/null and b/data/images/min/ZM_cb3_Chapelle_de_Poney_La_Huc.jpg differ diff --git a/data/images/min/ZM_cb3_Chasseurs.jpg b/data/images/min/ZM_cb3_Chasseurs.jpg new file mode 100644 index 0000000..234e118 Binary files /dev/null and b/data/images/min/ZM_cb3_Chasseurs.jpg differ diff --git a/data/images/min/ZM_cb3_Luchon.jpg b/data/images/min/ZM_cb3_Luchon.jpg new file mode 100644 index 0000000..6c26260 Binary files /dev/null and b/data/images/min/ZM_cb3_Luchon.jpg differ diff --git a/data/images/min/ZM_cb4_01_Azkoitia.jpg b/data/images/min/ZM_cb4_01_Azkoitia.jpg new file mode 100644 index 0000000..f39b40c Binary files /dev/null and b/data/images/min/ZM_cb4_01_Azkoitia.jpg differ diff --git a/data/images/min/ZM_cb4_01_Azkoitia.jpg.LCK b/data/images/min/ZM_cb4_01_Azkoitia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_cb4_01_Azkoitia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_cb4_02_Bubani.jpg b/data/images/min/ZM_cb4_02_Bubani.jpg new file mode 100644 index 0000000..d42f83e Binary files /dev/null and b/data/images/min/ZM_cb4_02_Bubani.jpg differ diff --git a/data/images/min/ZM_cb4_03_Bateleras.jpg b/data/images/min/ZM_cb4_03_Bateleras.jpg new file mode 100644 index 0000000..c047dd3 Binary files /dev/null and b/data/images/min/ZM_cb4_03_Bateleras.jpg differ diff --git a/data/images/min/ZM_cb4_03_Bateleras.jpg.LCK b/data/images/min/ZM_cb4_03_Bateleras.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_cb4_03_Bateleras.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_cb4_04_Cambo.jpg b/data/images/min/ZM_cb4_04_Cambo.jpg new file mode 100644 index 0000000..ba92e3c Binary files /dev/null and b/data/images/min/ZM_cb4_04_Cambo.jpg differ diff --git a/data/images/min/ZM_cb4_04_Cambo.jpg.LCK b/data/images/min/ZM_cb4_04_Cambo.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_cb4_04_Cambo.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_cb4_05_Fuenterrabia.jpg b/data/images/min/ZM_cb4_05_Fuenterrabia.jpg new file mode 100644 index 0000000..f748810 Binary files /dev/null and b/data/images/min/ZM_cb4_05_Fuenterrabia.jpg differ diff --git a/data/images/min/ZM_cb4_05_Fuenterrabia.jpg.LCK b/data/images/min/ZM_cb4_05_Fuenterrabia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_cb4_05_Fuenterrabia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_01_Pamplona.jpg b/data/images/min/ZM_pm_01_Pamplona.jpg new file mode 100644 index 0000000..9d91dd2 Binary files /dev/null and b/data/images/min/ZM_pm_01_Pamplona.jpg differ diff --git a/data/images/min/ZM_pm_01_Pamplona.jpg.LCK b/data/images/min/ZM_pm_01_Pamplona.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_01_Pamplona.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_02_Baiona.jpg b/data/images/min/ZM_pm_02_Baiona.jpg new file mode 100644 index 0000000..d6c913b Binary files /dev/null and b/data/images/min/ZM_pm_02_Baiona.jpg differ diff --git a/data/images/min/ZM_pm_02_Baiona.jpg.LCK b/data/images/min/ZM_pm_02_Baiona.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_02_Baiona.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_03_Loiola.jpg b/data/images/min/ZM_pm_03_Loiola.jpg new file mode 100644 index 0000000..a2454ee Binary files /dev/null and b/data/images/min/ZM_pm_03_Loiola.jpg differ diff --git a/data/images/min/ZM_pm_03_Loiola.jpg.LCK b/data/images/min/ZM_pm_03_Loiola.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_03_Loiola.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_04_Oiartzun.jpg b/data/images/min/ZM_pm_04_Oiartzun.jpg new file mode 100644 index 0000000..a1857af Binary files /dev/null and b/data/images/min/ZM_pm_04_Oiartzun.jpg differ diff --git a/data/images/min/ZM_pm_04_Oiartzun.jpg.LCK b/data/images/min/ZM_pm_04_Oiartzun.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_04_Oiartzun.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_05_Bilbao.jpg b/data/images/min/ZM_pm_05_Bilbao.jpg new file mode 100644 index 0000000..d38e3d1 Binary files /dev/null and b/data/images/min/ZM_pm_05_Bilbao.jpg differ diff --git a/data/images/min/ZM_pm_05_Bilbao.jpg.LCK b/data/images/min/ZM_pm_05_Bilbao.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_05_Bilbao.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_06_Onate.jpg b/data/images/min/ZM_pm_06_Onate.jpg new file mode 100644 index 0000000..afc8e1f Binary files /dev/null and b/data/images/min/ZM_pm_06_Onate.jpg differ diff --git a/data/images/min/ZM_pm_06_Oñate.jpg.LCK b/data/images/min/ZM_pm_06_Oñate.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_06_Oñate.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_07_Eibar.jpg b/data/images/min/ZM_pm_07_Eibar.jpg new file mode 100644 index 0000000..2782025 Binary files /dev/null and b/data/images/min/ZM_pm_07_Eibar.jpg differ diff --git a/data/images/min/ZM_pm_07_Eibar.jpg.LCK b/data/images/min/ZM_pm_07_Eibar.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_07_Eibar.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_08_Durango.jpg b/data/images/min/ZM_pm_08_Durango.jpg new file mode 100644 index 0000000..c4eef2b Binary files /dev/null and b/data/images/min/ZM_pm_08_Durango.jpg differ diff --git a/data/images/min/ZM_pm_08_Durango.jpg.LCK b/data/images/min/ZM_pm_08_Durango.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_08_Durango.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_09_Azpeitia.jpg b/data/images/min/ZM_pm_09_Azpeitia.jpg new file mode 100644 index 0000000..19cdec3 Binary files /dev/null and b/data/images/min/ZM_pm_09_Azpeitia.jpg differ diff --git a/data/images/min/ZM_pm_09_Azpeitia.jpg.LCK b/data/images/min/ZM_pm_09_Azpeitia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_09_Azpeitia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_10_San_Sebastian.jpg b/data/images/min/ZM_pm_10_San_Sebastian.jpg new file mode 100644 index 0000000..7e66f17 Binary files /dev/null and b/data/images/min/ZM_pm_10_San_Sebastian.jpg differ diff --git a/data/images/min/ZM_pm_10_San_Sebastian.jpg.LCK b/data/images/min/ZM_pm_10_San_Sebastian.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_10_San_Sebastian.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_11_Bergara.jpg b/data/images/min/ZM_pm_11_Bergara.jpg new file mode 100644 index 0000000..6db7a2d Binary files /dev/null and b/data/images/min/ZM_pm_11_Bergara.jpg differ diff --git a/data/images/min/ZM_pm_11_Bergara.jpg.LCK b/data/images/min/ZM_pm_11_Bergara.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_11_Bergara.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_pm_12_Biarritz.jpg b/data/images/min/ZM_pm_12_Biarritz.jpg new file mode 100644 index 0000000..ad7bfe9 Binary files /dev/null and b/data/images/min/ZM_pm_12_Biarritz.jpg differ diff --git a/data/images/min/ZM_pm_12_Biarritz.jpg.LCK b/data/images/min/ZM_pm_12_Biarritz.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_pm_12_Biarritz.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_01_Italia.jpg b/data/images/min/ZM_po_01_Italia.jpg new file mode 100644 index 0000000..7b132b7 Binary files /dev/null and b/data/images/min/ZM_po_01_Italia.jpg differ diff --git a/data/images/min/ZM_po_01_Italia.jpg.LCK b/data/images/min/ZM_po_01_Italia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_01_Italia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_02_Rimini.jpg b/data/images/min/ZM_po_02_Rimini.jpg new file mode 100644 index 0000000..8429f35 Binary files /dev/null and b/data/images/min/ZM_po_02_Rimini.jpg differ diff --git a/data/images/min/ZM_po_02_Rimini.jpg.LCK b/data/images/min/ZM_po_02_Rimini.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_02_Rimini.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_03_Legion_francesa.jpg b/data/images/min/ZM_po_03_Legion_francesa.jpg new file mode 100644 index 0000000..1c8da55 Binary files /dev/null and b/data/images/min/ZM_po_03_Legion_francesa.jpg differ diff --git a/data/images/min/ZM_po_03_Legion_francesa.jpg.LCK b/data/images/min/ZM_po_03_Legion_francesa.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_03_Legion_francesa.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_04_Behobia.jpg b/data/images/min/ZM_po_04_Behobia.jpg new file mode 100644 index 0000000..03fd627 Binary files /dev/null and b/data/images/min/ZM_po_04_Behobia.jpg differ diff --git a/data/images/min/ZM_po_04_Behobia.jpg.LCK b/data/images/min/ZM_po_04_Behobia.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_04_Behobia.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_05_Bologna.jpg b/data/images/min/ZM_po_05_Bologna.jpg new file mode 100644 index 0000000..b9d58f8 Binary files /dev/null and b/data/images/min/ZM_po_05_Bologna.jpg differ diff --git a/data/images/min/ZM_po_05_Bologna.jpg.LCK b/data/images/min/ZM_po_05_Bologna.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_05_Bologna.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_06_San_Sebastian.jpg b/data/images/min/ZM_po_06_San_Sebastian.jpg new file mode 100644 index 0000000..af24a5e Binary files /dev/null and b/data/images/min/ZM_po_06_San_Sebastian.jpg differ diff --git a/data/images/min/ZM_po_06_San_Sebastian.jpg.LCK b/data/images/min/ZM_po_06_San_Sebastian.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_06_San_Sebastian.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_07_Bologna.jpg b/data/images/min/ZM_po_07_Bologna.jpg new file mode 100644 index 0000000..c955955 Binary files /dev/null and b/data/images/min/ZM_po_07_Bologna.jpg differ diff --git a/data/images/min/ZM_po_07_Bologna.jpg.LCK b/data/images/min/ZM_po_07_Bologna.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_07_Bologna.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/ZM_po_08_Montejurra.jpg b/data/images/min/ZM_po_08_Montejurra.jpg new file mode 100644 index 0000000..8e4c120 Binary files /dev/null and b/data/images/min/ZM_po_08_Montejurra.jpg differ diff --git a/data/images/min/ZM_po_08_Montejurra.jpg.LCK b/data/images/min/ZM_po_08_Montejurra.jpg.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/images/min/ZM_po_08_Montejurra.jpg.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/images/min/Zumalakarregi_Museoa_Adarhaizea_Konzertua_thumb.jpg b/data/images/min/Zumalakarregi_Museoa_Adarhaizea_Konzertua_thumb.jpg new file mode 100644 index 0000000..4520652 Binary files /dev/null and b/data/images/min/Zumalakarregi_Museoa_Adarhaizea_Konzertua_thumb.jpg differ diff --git a/data/images/min/Zumalakarregi_Museoa_Aduriz_Lorejana_Ikastaroa_thumb.jpg b/data/images/min/Zumalakarregi_Museoa_Aduriz_Lorejana_Ikastaroa_thumb.jpg new file mode 100644 index 0000000..e1abf2c Binary files /dev/null and b/data/images/min/Zumalakarregi_Museoa_Aduriz_Lorejana_Ikastaroa_thumb.jpg differ diff --git a/data/images/min/Zumalakarregi_Museoa_Akuarelistak_Cristina_enean_thumb.jpg b/data/images/min/Zumalakarregi_Museoa_Akuarelistak_Cristina_enean_thumb.jpg new file mode 100644 index 0000000..6074927 Binary files /dev/null and b/data/images/min/Zumalakarregi_Museoa_Akuarelistak_Cristina_enean_thumb.jpg differ diff --git a/data/images/min/zm_chapele_.jpg b/data/images/min/zm_chapele_.jpg new file mode 100644 index 0000000..41c607f Binary files /dev/null and b/data/images/min/zm_chapele_.jpg differ diff --git a/data/images/museo-civico-del-risorgimento.jpg b/data/images/museo-civico-del-risorgimento.jpg new file mode 100644 index 0000000..3125b8d Binary files /dev/null and b/data/images/museo-civico-del-risorgimento.jpg differ diff --git a/data/images/museo-zumalakarregi-museoa.jpg b/data/images/museo-zumalakarregi-museoa.jpg new file mode 100644 index 0000000..38f763e Binary files /dev/null and b/data/images/museo-zumalakarregi-museoa.jpg differ diff --git a/data/images/pdf.jpg b/data/images/pdf.jpg new file mode 100644 index 0000000..4f5425b Binary files /dev/null and b/data/images/pdf.jpg differ diff --git a/data/images/photo_sample.jpg b/data/images/photo_sample.jpg new file mode 100644 index 0000000..bfeaf92 Binary files /dev/null and b/data/images/photo_sample.jpg differ diff --git a/data/images/shadow-footer.png b/data/images/shadow-footer.png new file mode 100644 index 0000000..bbcc066 Binary files /dev/null and b/data/images/shadow-footer.png differ diff --git a/data/images/shadow.png b/data/images/shadow.png new file mode 100644 index 0000000..e99960c Binary files /dev/null and b/data/images/shadow.png differ diff --git a/data/images/vertical-frame.jpg b/data/images/vertical-frame.jpg new file mode 100644 index 0000000..dba327e Binary files /dev/null and b/data/images/vertical-frame.jpg differ diff --git a/data/img/common/arrow.gif b/data/img/common/arrow.gif new file mode 100644 index 0000000..e0a3e89 Binary files /dev/null and b/data/img/common/arrow.gif differ diff --git a/data/img/common/banner.jpg b/data/img/common/banner.jpg new file mode 100644 index 0000000..408e208 Binary files /dev/null and b/data/img/common/banner.jpg differ diff --git a/data/img/common/content_bg.gif b/data/img/common/content_bg.gif new file mode 100644 index 0000000..36bb2b8 Binary files /dev/null and b/data/img/common/content_bg.gif differ diff --git a/data/img/common/def_parallels_logo.gif b/data/img/common/def_parallels_logo.gif new file mode 100644 index 0000000..7b11ba1 Binary files /dev/null and b/data/img/common/def_parallels_logo.gif differ diff --git a/data/img/common/def_plesk_logo.gif b/data/img/common/def_plesk_logo.gif new file mode 100644 index 0000000..f08aafc Binary files /dev/null and b/data/img/common/def_plesk_logo.gif differ diff --git a/data/img/common/footer_bg.gif b/data/img/common/footer_bg.gif new file mode 100644 index 0000000..f206bdd Binary files /dev/null and b/data/img/common/footer_bg.gif differ diff --git a/data/img/common/footer_right_bg.png b/data/img/common/footer_right_bg.png new file mode 100644 index 0000000..4891791 Binary files /dev/null and b/data/img/common/footer_right_bg.png differ diff --git a/data/img/common/pdfm_box.jpg b/data/img/common/pdfm_box.jpg new file mode 100644 index 0000000..8d86077 Binary files /dev/null and b/data/img/common/pdfm_box.jpg differ diff --git a/data/img/common/pws_box.jpg b/data/img/common/pws_box.jpg new file mode 100644 index 0000000..4183e6e Binary files /dev/null and b/data/img/common/pws_box.jpg differ diff --git a/data/img/common/top_bg.gif b/data/img/common/top_bg.gif new file mode 100644 index 0000000..3323179 Binary files /dev/null and b/data/img/common/top_bg.gif differ diff --git a/data/img/glyph/btn_asp_bg.gif b/data/img/glyph/btn_asp_bg.gif new file mode 100644 index 0000000..665e355 Binary files /dev/null and b/data/img/glyph/btn_asp_bg.gif differ diff --git a/data/img/glyph/btn_bg-disabled.gif b/data/img/glyph/btn_bg-disabled.gif new file mode 100644 index 0000000..cfbb1b1 Binary files /dev/null and b/data/img/glyph/btn_bg-disabled.gif differ diff --git a/data/img/glyph/btn_bg.gif b/data/img/glyph/btn_bg.gif new file mode 100644 index 0000000..15a2d3f Binary files /dev/null and b/data/img/glyph/btn_bg.gif differ diff --git a/data/img/glyph/btn_cgi_bg.gif b/data/img/glyph/btn_cgi_bg.gif new file mode 100644 index 0000000..6026a49 Binary files /dev/null and b/data/img/glyph/btn_cgi_bg.gif differ diff --git a/data/img/glyph/btn_coldfusion_bg.gif b/data/img/glyph/btn_coldfusion_bg.gif new file mode 100644 index 0000000..3339bca Binary files /dev/null and b/data/img/glyph/btn_coldfusion_bg.gif differ diff --git a/data/img/glyph/btn_fast_cgi_bg.gif b/data/img/glyph/btn_fast_cgi_bg.gif new file mode 100644 index 0000000..aafca17 Binary files /dev/null and b/data/img/glyph/btn_fast_cgi_bg.gif differ diff --git a/data/img/glyph/btn_miva_bg.gif b/data/img/glyph/btn_miva_bg.gif new file mode 100644 index 0000000..431be11 Binary files /dev/null and b/data/img/glyph/btn_miva_bg.gif differ diff --git a/data/img/glyph/btn_ok_bg.gif b/data/img/glyph/btn_ok_bg.gif new file mode 100644 index 0000000..0d99ebe Binary files /dev/null and b/data/img/glyph/btn_ok_bg.gif differ diff --git a/data/img/glyph/btn_perl_bg.gif b/data/img/glyph/btn_perl_bg.gif new file mode 100644 index 0000000..1b61da9 Binary files /dev/null and b/data/img/glyph/btn_perl_bg.gif differ diff --git a/data/img/glyph/btn_php_bg.gif b/data/img/glyph/btn_php_bg.gif new file mode 100644 index 0000000..532efd9 Binary files /dev/null and b/data/img/glyph/btn_php_bg.gif differ diff --git a/data/img/glyph/btn_python_bg.gif b/data/img/glyph/btn_python_bg.gif new file mode 100644 index 0000000..ea15b22 Binary files /dev/null and b/data/img/glyph/btn_python_bg.gif differ diff --git a/data/img/glyph/btn_ssi_bg.gif b/data/img/glyph/btn_ssi_bg.gif new file mode 100644 index 0000000..4de2a8a Binary files /dev/null and b/data/img/glyph/btn_ssi_bg.gif differ diff --git a/data/img/icons/fail.gif b/data/img/icons/fail.gif new file mode 100644 index 0000000..d72b1dc Binary files /dev/null and b/data/img/icons/fail.gif differ diff --git a/data/img/icons/success.gif b/data/img/icons/success.gif new file mode 100644 index 0000000..15a1e0b Binary files /dev/null and b/data/img/icons/success.gif differ diff --git a/data/img/icons/tabs/tabs_bg.png b/data/img/icons/tabs/tabs_bg.png new file mode 100644 index 0000000..2db1b6d Binary files /dev/null and b/data/img/icons/tabs/tabs_bg.png differ diff --git a/data/inc/analytics.php b/data/inc/analytics.php new file mode 100644 index 0000000..39535c4 --- /dev/null +++ b/data/inc/analytics.php @@ -0,0 +1,24 @@ + + + diff --git a/data/inc/conexion.php b/data/inc/conexion.php new file mode 100644 index 0000000..f9b92ad --- /dev/null +++ b/data/inc/conexion.php @@ -0,0 +1,23 @@ +set_charset("utf8"); + +?> diff --git a/data/inc/footer.php b/data/inc/footer.php new file mode 100644 index 0000000..90e3f46 --- /dev/null +++ b/data/inc/footer.php @@ -0,0 +1,6 @@ + diff --git a/data/inc/funciones.php b/data/inc/funciones.php new file mode 100644 index 0000000..4c89607 --- /dev/null +++ b/data/inc/funciones.php @@ -0,0 +1,27 @@ + diff --git a/data/inc/head.php b/data/inc/head.php new file mode 100644 index 0000000..965c948 --- /dev/null +++ b/data/inc/head.php @@ -0,0 +1,14 @@ + + + + + <?php echo $head_title?> + + + + + + + diff --git a/data/inc/head.php.bk b/data/inc/head.php.bk new file mode 100644 index 0000000..907855c --- /dev/null +++ b/data/inc/head.php.bk @@ -0,0 +1,14 @@ + + + + + <?php echo $head_title?> + + + + + + + diff --git a/data/inc/header.php b/data/inc/header.php new file mode 100644 index 0000000..819a6ba --- /dev/null +++ b/data/inc/header.php @@ -0,0 +1,27 @@ +
+
+ + +
+
+ +

eseuit">

+
\ No newline at end of file diff --git a/data/inc/idiomas/es.php b/data/inc/idiomas/es.php new file mode 100644 index 0000000..16c1083 --- /dev/null +++ b/data/inc/idiomas/es.php @@ -0,0 +1,350 @@ +Museo Zumalakarregi / Fundación Cristina Enea / Museo Civico del Risorgimento"); + define("_VER_IMG_AMPLIADA","Ver imagen ampliada"); + define("_VOLVER","Volver"); + define("_MAS","Ver plantas"); + define("_ALBUM","Album siglo XIX"); + define("_INFO","Más información"); +// Menu + define("_MENU1","Presentación"); + //define("_MENU1","Presentacin"); + define("_MENU2","Lugar, fechas y horarios"); + define("_MENU3","Actividades"); + define("_MENU4","Contenidos"); + define("_MENU41","Biografías"); + define("_MENU411","Didier Petit de Meurville"); + define("_MENU412","Pietro Bubani"); + define("_MENU42","Pirineos"); + define("_MENU43","Opiniones de Bubani sobre el P.V."); + define("_MENU44","Excursiones de Bubani por el País Vasco"); + define("_MENU45","Contextualización"); + define("_MENU46","Flora"); + define("_MENU461","Descripción de plantas"); + define("_MENU462","Hábitat"); + define("_MENU5","Fotografías"); + define("_MENU6","Agradecimientos"); + define("_MENU7","Créditos"); + define("_CRIS","Fundación Cristina Enea"); +// Ficha + define("_FICHA_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Ficha"); + define("_FICHA_DESCRIPTION",""); + define("_FICHA_KEYWORDS",""); + define("_FICHA_NAME1","Nombre latín"); + define("_FICHA_NAME2","Nombre Bubani"); + define("_FICHA_NAME3","Nombre castellano"); + define("_FICHA_NAME4","Otros nombres"); + define("_FICHA_DES","Descripción"); + define("_FICHA_OTRAS","Reproducción de las plantas del herbario de Bubani"); + define("_FICHA_HABIT","Habitats"); +// index.php + define("_INDEX_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco"); + define("_INDEX_DESCRIPTION",""); + define("_INDEX_KEYWORDS",""); + define("_INDEX_H2","Exposición"); + //define("_INDEX_H2","Exposición"); + define("_INDEX_TXT"," +El Museo Zumalakarregi en colaboración con la Fundación Cristina Enea y el Museo Civico del Risorgimento de Bolonia, presenta la exposición, Loreak asmatzen: Naturalistas europeos en el País Vasco. Petit de Meurville – Pietro Bubani y, a su vez, esta página web en la que recogemos los contenidos de la exposición junto a una ingente información complementaria.
+Esta página web recoge la coincidencia a mediados del siglo XIX en el País Vasco de dos amantes de las plantas. Pietro Bubani botánico italiano que dedicó su vida a recoger y analizar la flora de los Pirineos, realizando diversos itinerarios por nuestro país entre 1841 y 1879, siempre con el objetivo de recoger plantas para su extraordinario herbario. Y Didier Petit de Meurville, cónsul francés en San Sebastián a partir de 1857, que unía entre sus aficiones la pintura y el amor a las plantas, lo que dio como resultado la elaboración de tres álbumes dedicados a la flora de Gipuzkoa.
+La coincidencia de ambos en el tiempo y el espacio unida a su interés por las plantas nos a dado pie a realizar esta exposición y esta web en las que analizamos nuestra flora decimonónica desde los puntos de vista científico y artístico, al tiempo que damos a conocer el contexto histórico y el interés por el estudio y el disfrute de los Pirineos que se desarrollará de manera destacada en esta misma época. Además de la presentación de estos temas centrales en esta web encontrarás diversos materiales complementarios como una base de datos sobre la flora de Gipuzkoa o los trabajos de contextualización histórica sobre Italia en el siglo XIX de Otello Sangiorgi y Fiorenza Tarozzi, del Museo Civico del Risorgimento y la Università degli Studi di Bologna, respectivamente. +"); + define("_INDEX_FT1","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_INDEX_FT2","Petit de Meurville, Didier. Navarre prés Irurzun. (Gipuzkoako Foru Aldundia / Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT3","Petit de Meurville, Didier. Groupe. D'achilées. Graminées et mille feuilles. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT4","Petit de Meurville, Didier. Flore de Guipuzcoa (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_TXT2","Descargar tríptico de la exposición (PDF)"); +// lugar-fechas.php + define("_LUGAR_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Lugar, fechas y horarios"); + define("_LUGAR_DESCRIPTION",""); + define("_LUGAR_KEYWORDS",""); + define("_LUGAR_H2",""); + define("_LUGAR_H31","Lugar"); + define("_LUGAR_H32","Fechas"); + define("_LUGAR_H33","Horarios"); + define("_LUGAR_TXT1","Cristina Enea, Centro de Recursos Medioambientales: Paseo Duque de Mandas, 66. 20012 Donostia-San Sebastián. Teléfono 943 453 526."); + define("_LUGAR_TXT2","Del 13 de julio al 10 de septiembre de 2009"); + define("_LUGAR_TXT3","Lunes a sábado:9.30-13.30/15.00-20.00.
+ Domingos y festivos: 10.00-13.30

Entrada gratuita"); +// actividades.php + define("_AC_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Actividades"); + define("_AC_DESCRIPTION",""); + define("_AC_KEYWORDS",""); + define("_AC_H2",""); + define("_AC_LINK","Ver tríptico actividades (PDF)"); + define("_AC_H31","ACTIVIDADES GUIADAS: EXPLORADORES EN CRISTINA- ENEA"); + define("_AC_TXT1","Grupos de las colonias “Oporretan Euskaraz” tendrán la oportunidad de conocer a estos dos exploradores del siglo XIX, y de convertirse ellos mismos en exploradores del siglo XXI para conocer mejor y respetar la naturaleza mediante un juego preparado especialmente para esta ocasión."); + define("_AC_H32","CURSO: LOREJANA: gastronomía y flora silvestre"); + define("_AC_TXT2","La naturaleza si es rica en algo es en diversidad y el ser humano ha aprendido a beneficiarse de ello como por ejemplo en la alimentación. De la mano de maestros en la materia descubriremos nuevas plantas comestibles y su uso en la gastronomía."); + define("_AC_DT1","13/07/09"); + define("_AC_DD1","Mikel Benito: Introducción teórica sobre el uso de las plantas silvestres locales en la cocina y visita a la exposición en Cristina Enea."); + define("_AC_DT2","14/07/09"); + define("_AC_DD2","Leire Etxaide: Aprendiendo a ver y observar, cómo en un paseo podemos llenar también nuestra cesta."); + define("_AC_DT3","15/07/09"); + define("_AC_DD3","Andoni Luis Aduriz: Del campo a la cocina, ideas para aplicaciones de las hierbas y flores silvestres en la cocina."); + define("_AC_NOTAS","Notas"); + define("_AC_LI1","Plazas limitadas, es necesario reservar previamente"); + define("_AC_LI2","El curso se impartirá en castellano"); + define("_AC_H33","DÍA DE LA ACUARELA: Flora y agua"); + define("_AC_DT4","18/07/09"); + define("_AC_DD4","Inspirada en la afición de Petit de Merville a la pintura, actividad abierta a todo el público, utilizando la técnica de la acuarela y siendo el motivo “La flora de Cristina-enea”

+

Asociación de acuarelistas vascos. Demostración de la técnica de la acuarela en el parque de Cristina-enea. Las creaciones realizadas se podrán admirar en una exposición desde el 19 de julio al 13 de septiembre

"); + define("_AC_H34","CONCIERTO: "Raíces en Mi Sol""); + define("_AC_DT5","18/07/09"); + define("_AC_DD5","Jakoba Errekondo - Alex Mendizábal
+ Música autótrofa - Adar haizea

+ +

Jakoba Errekondo (1961) Nacido en Usurbil y lugar donde reside.
+ Paisajista de la ética y de la estética.
+ Vive de sembrar, cultivar, injertar y recoger la cosecha.
+ Observando y escuchando a las plantas gusta de hablar de nuestra cultura del paisaje. Comiendo las plantas las vive.
+ Alex Mendizabal (1961), se ocupa de pausa-efecto, sonido en movimiento, cine ciego y canto subacuático. Vive en Roma."); +// biografias.php + define("_BIO_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Biografías"); + define("_BIO_DESCRIPTION",""); + define("_BIO_KEYWORDS",""); + define("_BIO_H2",""); +// biografia-didier-petit-de-meurville.php + define("_BIOD_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Biografía de Didier Petit de Meurville"); + define("_BIOD_DESCRIPTION",""); + define("_BIOD_KEYWORDS",""); + define("_BIOD_H2","Biografía de Didier Petit de Meurville"); + define("_BIOD_TXT","Nació en Haití en 1793. Su padre falleció en la revuelta de esclavos de 1795, por lo que se tuvo que trasladar con el resto de su familia a Boston. Algunos años mas tarde la familia se instaló en Lyon. Didier se dedicó al comercio de la seda y se relacionó políticamente con sectores legitimistas. Al final de la Primera Guerra Carlista ayudó a los exiliados carlistas en Francia, llegando a intimar hasta el punto de realizar retratos de Don Carlos, su familia, Cabrera y varios de los que siguieron al pretendiente a Bourges.
+Su apoyo fue recompensado por Don Carlos nombrándole vizconde del Amparo en 1845.
+En 1848 ingresa en la carrera consular y es nombrado vicecónsul en Alicante. En 1857 solicita el traslado y se instala como Cónsul en San Sebastián. Durante los 16 años que desempeñó su cargo en la capital guipuzcoana siguió desarrollando su afición por la pintura realizando numerosas ilustraciones y cuadros de paisajes de la ciudad y su entorno. Dedicó especial atención a la flora de la provincia cuya descripción se recoge en tres álbumes de ilustraciones de gran calidad.
+Petit de Meurville falleció en Biarritz en 1873."); +// biografia-pietro-bubani.php + define("_BIOP_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Biografía de Pietro Bubani"); + define("_BIOP_DESCRIPTION",""); + define("_BIOP_KEYWORDS",""); + define("_BIOP_H2","Biografía de Pietro Bubani"); + define("_BIOP_TXT","Nació en Bagnacavallo (Ravenna) en 1806. Estudió medicina en la Universidad de Bologna, donde se licenció en 1829. Ejerció como médico durante breve tiempo. Tras participar en la fracasada revuelta contra el gobierno pontificio de 1831 se refugió en Córcega.
+ Realizó sus estudios de botánica en Florencia, comenzando su trabajo de campo en los Pirineos en 1836.
+ Abandonó la lucha política para dedicarse en exclusiva a la investigación botánica. Realizó 21 campañas de recogidas de plantas en los Pirineos. Su obra magna se publicó tras su fallecimiento en cuatro tomos: Flora Pyrenaea (1897-1901). Publicada en latín comprendía todos sus hallazgos en esta cordillera y en el País Vasco y destaca por la calidad y rigor de sus anotaciones florísticas. También recogió sus experiencias en varios diarios, donde menciona las penalidades que le tocó sufrir al sur de los Pirineos, en una época de guerras y miserias a las que se añadían las derivadas de su condición de extranjero, que le valieron acusaciones de espía y apátrida.
+ Murió en accidente al caerse por una ventana de su palacio en 1888."); +// pirineos.php + define("_PI_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Pirineos"); + define("_PI_DESCRIPTION",""); + define("_PI_KEYWORDS",""); + define("_PI_H2",""); + define("_PI_TXT","El interés por el conocimiento de la naturaleza que se dio en la Europa ilustrada hizo que a finales del siglo XVIII se iniciará un proceso de estudio y ascensiones en los Pirineos. En una primera fase será el conocimiento científico lo que prime. Geólogos, geógrafos, botánicos se adentran en la cordillera para conocerla desde sus respectivas disciplinas. A medida que el siglo XIX avance, los Pirineos interesarán también a escritores e ilustradores y comenzarán a ser atractivos para el turismo."); + define("_PI_TXT2","Victor HUGO:
+ De Pau a Cauterets:
+

“Las seis de la mañana. Llueve. La lluvia arriba, el torrente abajo, mezclan su ruido. Ruta pintoresca, sombreada, verde y alegre a pesar del mal tiempo. Los Pirineos en el horizonte. Cimas quebradas, cortadas, retorcidas, torneadas, como toqueteadas por la mano formidable de un gigante: pequeños lagos de nieve en los baches.”
"); + define("_PI_FT1","MELLING et CERVINI. Carte itineraire du Voyage pittoresque dans les Pyrénées. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT2","J. JACOTTET.Vue generale du cirque de Gavarni. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT3","E. PARIS. Cascade Valentin (Koldo Mitxelena Kulturunea)"); + define("_PI_FT4","J. JACOTTET.Luz route de Barreges. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT5","MIALHE et DANDIRAN. Bains de Bagneres de Luchon. (Koldo Mitxelena Kulturunea) +"); + define("_PI_FT6","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_PI_FT7","V. PETIT. Chasseurs d’Isard et Berger.
+(Koldo Mitxelena Kulturunea)"); + +// opiniones-bubani-sobre-pais-vasco.php + define("_OP_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Opiniones de Bubani sobre el País Vasco"); + define("_OP_DESCRIPTION",""); + define("_OP_KEYWORDS",""); + define("_OP_H2","Opiniones de Bubani sobre el País Vasco"); + define("_OP_TXT","

Bubani había realizado diversas breves excursiones al País Vasco desde 1841, pero en el 1844 por primera vez organiza y realiza una expedición completa al sur de los Pirineos. Decide comenzar por el difícil “semibárbaro País Vasco”.

+

Bubani tuvo una relación de ambivalente con el País Vasco. En sus diarios de viaje podemos encontrar frases como:

+

“Me puse camino a Baiona, donde llegué después de comer sano e incólume, harto a más no poder de aquellas bestias, insoportables y despreciables Vascongados.”

+

“Observé dos grandes características de la miseria intelectual de los vascos: la primera que se ríen mucho; la segunda la tendencia, como las mujeres, a confabular entre ellos, alejándose de sus ocupaciones con extrema facilidad.”

+

Sin embargo en el libro “Dunalia” publicado en 1878 encontramos el siguiente párrafo:

+

“Fué tal y tanta mi satisfacción, en mi viaje por aquel nuevo y gracioso país, que el año siguiente volví entre los Bascos, y tan bien recorrí sus montes, que podía decir que los conocía palmo a palmo. Y aquello me pareció un Paraíso terrestre, por sus montes fáciles, lugares amenos, las mujeres bellísimas.”

+

Eso sí, la inestabilidad debida a la reciente Guerra Carlista sumergió a Bubani en situaciones difíciles en su relación con la fuerza pública:
+ “Un celoso y caprichoso policía, me arrestó en Pamplona, persuadido de que yo era un faccioso, porque llevaba (era un día lluvioso) una boina vasca al estilo carlista. Estuve a punto de ser detenido por carlista. Puesto en contacto con el gobernador me fue fácil eliminar las sospechas concebidas por el policía.
+ El prefecto lo entendió pero me aconsejó no seguir llevando la boina. Prudente consejo, al cual, sin embargo, yo no atendí.”

"); + define("_OP_FT1","Blanche HENNEBUTE"); + define("_OP_FT2","Colección Stefano Pezzoli. Bubani in costume basco"); + define("_OP_FT3","Blanche HENNEBUTE. Costumes basques espagnols : batelieres de Passages. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT4","Blanche HENNEBUTE. Vue du pas de Roland: environs de Cambo-Isatsou. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT5","Blanche HENNEBUTE. Vue de Fontarabie. (Koldo Mitxelena Kulturunea)"); +// excursiones-bubani-pais-vasco.php + define("_EX_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Excursiones de Bubani por el País Vasco"); + define("_EX_DESCRIPTION",""); + define("_EX_KEYWORDS",""); + define("_EX_H2",""); + define("_EX_TXT1","

En julio de 1850 conoce en Pamplona a Juan de Mata Uriarte, “Direttore dell’Università di Pamplona. “El día 14 pasé 4 horas con él controlando su herbario, en el cual encontré pocas cosas relevantes. Ahora que se anime, y podrá serme útil.”
+ Cuando vuelve a la ciudad en 1858 afirma: “Volví a ver Pamplona con gusto, y la encontré embellecida.”
+ En esta ocasión contacta con el botánico Natalio Cayuela. Autor de Plantas cogidas en las cercanías de Pamplona hace algunos años. Fue catedrático del Instituto de la capital navarra.

"); + define("_EX_FT1","D. PETIT de MEURVILLE. Vue de Pampelune. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT2","

En mayo de 1853 conoce en Bayona a la familia Feillet. “En Baiona volví a ver enseguida a los Feuillet, padre e hijas Hélène, y Blanche, que me recibieron bien”

+

Pierre Jacques Feillet, pintor y litógrafo nacido en Iméray, estudió pintura en París. En 1834 se instaló en Bayona y de 1844 a 1855 dirigió la Escuela de Dibujo y Pintura de la ciudad. Sus hijas Hélène y Blanche fueron también pintoras y litógrafas, muy activas en la Bayona de mediados del XIX. Blanche en 1844 se casó con Charles Hennebutte impresor afincado en esta ciudad. Hacia 1857 fue nombrada directora de la Escuela de Dibujo y Pintura de Bayona. Ambas fueron autoras de numerosas litografías de paisajes vascos, que nos permitirán ilustrar los viajes de Bubani.

"); + define("_EX_FT2","Helene FEILLET. Vue de la cathédrale de Bayonne. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT3","

Este mismo mes entra en Gipuzkoa y visita el Santuario de Loyola. “Visité el famoso Monasterio, Convento, Casa de Loyola, donde dicen que nació este hombre de Dios, que ha puesto y sigue poniendo tanta agitación en el mundo. El edificio es grandioso, sólido, y de una admirable arquitectura. Lo visité con el Sacristán, una bestia, de la que no pude recabar razonamientos inteligentes.Volví a visitar la Iglesia con más calma y comodidad el 29 de Mayo y aunque todavía no esté acabada la declaro obra estupenda y admirable.”

"); + define("_EX_FT3","D. PETIT de MEURVILLE. [Vista de la basílica de Loiola desde el río]. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT4","

En junio de 1857comenta: “El teniente de los Aduaneros en Oiartzun quiso hacerse el riguroso y los pilló con contrabando en la carreta que llevaba mis cosas: detuvo la carreta y al conductor de ella. Bastante agitación de este y el otro y no pocas fanfarronadas mias. Poca prudencia, porque el pueblo en España está siempre de lado de los fraudulentos. Por lo tanto me quedé en Oiartzun la noche, el día siguiente y la mañana del 20 bajé con el teniente al Paseo.”

"); + define("_EX_FT4","Carpenter, G. Oyarzun : album de Guipuzcoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT5","

El 5 de junio de 1853 llega a Bilbao donde conoce al “Director del Instituto Dr. Agostino de Arragui y Heradia,el cual me acompañó en el paseo, me acompañó al mismo Instituto, me dio una memoria suya impresa sobre el Instituto, y se me declaró amigo y protector.”
+
+ Agustín de ARREGUI y HEREDIA era profesor de geografía y Director del Instituto Vizcaíno entre 1848 y 1856. Él le pondrá en contacto con el botánico y poeta Mariano EGUIA, que se dedicó, desde el año 1823 al estudio de las plantas en la capital vizcaína.

"); + define("_EX_FT5","Blanche HENNEBUTE. Bilbao: vue prise du chermin de Bermeo = Bilbao: vista tomada del camino de Bermeo: las Provincias Vascongadas. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT6","

El 24 de junio conoce en Oñate a Fernando MIEG, “que me hizo buena impresión, y lo juzgué amable, con muchas ganas de aprender y expansivo: muy frío en cuestiones políticas, y también en demostraciones de afecto con los amigos, pero en el fondo bueno.” Éste fue el le que regaló el mapa de Gipuzkoa que se puede ver en la exposición.

+

Fernando MIEG, naturalista español, fue director y catedrático del Instituto de Bergara y después del de Bilbao. Estudió Historia Natural y coleccionó el herbario de Bizkaia y Gipuzkoa. En Bergara, en terrenos pertenecientes al Real Seminario, donde la Bascongada había establecido un “huerto experimental” a finales del siglo XVIII, creó un jardín botánico.

"); + define("_EX_FT6","D. PETIT de MEURVILLE. Oñate Gipuzkoa. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT7","

Eibar, 20 de julio de 1857: “Descansé en el pórtico del convento, hoy en día fábrica de arcabuces, cuando un mal nacido operario me tiró dos veces un saco de tierra.¡Antipatía de los Guipuzcoanos a los forasteros!”

"); + define("_EX_FT7","Lambla, Julio. Eibar : Gipuzkoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT8","

Durango, 27 de julio 1857: “En Durango, pueblo notable y carlista pregunté inutilmente a 7 o 8 personas, entre ellos el Director del correo, el nombre de los ríos afluentes de este lugar: el Director dijo que ¡no se fijaba en esas cosas!. Ignorancia y beatería máxima en este pueblo, del cual escapé con alegría.”

"); + define("_EX_FT8","Lambla, Julio. Durango: Gipuzkoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT9","

Azpeitia, 15 de agosto 1857:
+ “Volví a Azpeitia, ameno, pero poco curioso lugar botanicamente hablando”

+D. PETIT de MEURVILLE. Vue D'Azpeitia Guipuzcoa Espagne : route de Cestona : juillet 1867. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_FT9",""); + define("_EX_TXT10","

“El día 22 [junio de 1857] volví a San Sebastian a casa de la buena bodeguera Maria Josefa Ibarrola, amiga de la Feillet, que me alojó en septiembre de 1844.”

"); + define("_EX_FT10","D. PETIT de MEURVILLE. San Sebastian peint par Didier P. de Meurville : 1863. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT11","

Bergara, 25 de junio 1853:
+ “El día 25 fui con Mieg a Vergara, donde en la catedral observé un bellísimo Cristo crucificado de madera.También vi el colegio, que me gustó.

"); + define("_EX_FT11","D. PETIT de MEURVILLE. Vue de Vergara Guipuzcoa Espagne 1866. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT12","

En mayo de 1879 Bubani vuelve al País Vasco.
+ “El día 15 pasé una deliciosa jornada en Biarritz con la Feillet.”

"); + define("_EX_FT12","Blanche HENNEBUTE. Vue de la place de la nouvelle eglise et de la Villa Eugenie. (Koldo Mitxelena Kulturunea)"); +// contextualziacion.php + define("_CON_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Contextualización"); + define("_CON_DESCRIPTION",""); + define("_CON_KEYWORDS",""); + define("_CON_H3","Contexto histórico. País Vasco/Emilia-Romagna"); + define("_CON_TXT1","

Durante los años 20 se van a producir levantamientos liberales tanto en Italia como en España. La llegada al poder de los liberales españoles en el Trienio (1820-1823) los convertirá en el modelo a seguir por el resto de liberales europeos. La Constitución de Cádiz será el referente, así como el ideal romántico del pueblo unido contra el invasor francés y la guerra de guerrillas. Italia permanece dividida en pequeños reinos y estados.

"); + define("_CON_FT1","Italia 1815. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT21","

Los años 30 se inician en Italia con el levantamiento liberal de 1831, en el que participará Bubani y provocará su huída al exilio.
+ En España estalla la Primera Guerra Carlista, guerra civil entre los partidarios del Antiguo Régimen y los defensores del sistema liberal. Su principal escenario será el País Vasco, donde se establecerá el Pretendiente Don Carlos.

"); + define("_CON_TXT22","

La diplomacia de los Reinos de las Dos Sicilias y de Cerdeña, así como la de los Estados Pontificios apoyará la causa carlista. Sin embargo la participación de los italianos en esta guerra fue más importante entre los liberales, ya que alrededor de 500 formaron parte del cuerpo de la Legión Extranjera Francesa que luchó contra el carlismo.

"); + define("_CON_FT21","Battaglia di Rimini tra i liberali italiani e le truppe austriache (1831). (Museo Civico del Risorgimento, Bologna)"); + define("_CON_FT22","La Legión Extranjera Francesa en la guerra carlista. (Zumalakarregi Museoa)"); + define("_CON_TXT31","

En los años 40 en Italia comienza a tomar fuerza el fenómeno conocido como el “Risorgimento”, que une a las ideas progresistas con el proyecto de la unificación italiana.
+ En el País Vasco se viven las consecuencias de la guerra carlista entre las que cabe destacar el traslado de las aduanas del Ebro al Bidasoa, medida antiforal que integrará la economía vasca en el mercado español y dará paso a una incipiente industrialización.

"); + define("_CON_TXT32","

Petit de Meurville apoyará a Don Carlos en el exilio, mientras Bubani inicia sus visitas al País Vasco.
+ La revolución liberal tendrá especial incidencia en Bolonia.

"); + define("_CON_FT31","Pont de Behobie sur la Bidassoa (Zumalakarregi Museoa)"); + define("_CON_FT32","La cacciata degli Austriaci da Bologna l'8 agosto 1848. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT41","En los años 50 empiezan a desarrollarse entre nosotros los proyectos del ferrocarril. Petit se instala como cónsul en San Sebastián y podrá seguir los progresos y el impulso de la línea del Ferrocarril del Norte."); + define("_CON_TXT42","Bubani vuelve a recoger plantas entre nosotros. Mientras en Italia se consumará la primera fase de la unificación con la conquista del reino de las dos Sicilias por parte de Garibaldi en 1860."); + define("_CON_FT41","D. PETIT de MEURVILLE. Inauguration du travaux du chemin de fer. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_CON_FT42","Veduta di Bologna (1850) (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT5","

En los años 60 Petit de Meurville será testigo del derribo de las murallas donostiarras en pleno proceso de expansión urbana de la capital guipuzcoana. La revolución de 1868 dará paso a una fase de desestabilización política que culminará con el estallido de la Segunda Guerra Carlista.
+ Mientras en Italia se culminará el proceso de unificación en 1870 con la conquista del Veneto a Austria y la de Roma al Papa. El ataque a los Estados Pontificios fue duramente criticado entre nosotros y sirvió también como argumento para el levantamiento carlista.

"); + define("_CON_FT5","Episodio de la Batalla de Montejurra (Zumalakarregi Museoa)"); +// flora.php + define("_FLOR_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Flora"); + define("_FLOR_DESCRIPTION",""); + define("_FLOR_KEYWORDS",""); + define("_FLOR_H2",""); + define("_FLOR_TXT","

Las plantas son el tema principal de esta exposición. La flora y el País Vasco es lo que une a estos dos naturalistas. Para comprender la afición de estos dos personajes del siglo XIX, presentamos su material de trabajo desde tres aspectos diferentes. A través de fichas completas de algunas plantas seleccionadas, analizando su uso práctico o reuniéndolas por su hábitat.

+

Las fichas completas de las plantas seleccionadas nos indican las numerosas maneras de acercarse a la flora. No las analizamos sólo desde la botánica como Bubani, ni desde la estética como Petit. Cada planta tiene sus valores simbólicos y sus usos prácticos. Sus nombres también nos ofrecen mucha información y, en ocasiones, su estudio nos dará pistas sobre el desarrollo del cambio climático.

+

Anímate a observar la flora de tu entorno y a recoger información sobre ella. Disfruta tú también como Bubani y Petit.

"); +// descripcion-plantas.php + define("_DESP_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Descripción de plantas"); + define("_DESP_DESCRIPTION",""); + define("_DESP_KEYWORDS",""); + define("_DESP_H2",""); +// detalle-planta.php + define("_DETP_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Detalles planta"); + define("_DETP_DESCRIPTION",""); + define("_DETP_KEYWORDS",""); + define("_DETP_H2",""); +// habitat.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Habitat"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); + define("_HABITAT_H31","Bosque"); + define("_HABITAT_TXT1","Biotopo que ademas de por árboles, arbustos, hierbas y demás plantas está compuesto por microorganismos animales, hongos y otros. Dependiendo de la tierra y del microclima, las plantas básicas y sobre todo los árboles cambiarán, al mismo tiempo que el conjunto biológico de todos los seres vivos.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H32","Matorrales"); + define("_HABITAT_TXT2","Maleza que crece entre arbustos y árboles jóvenes. En la mayoría de las ocasiones prevalecen las plantas que nacen sobre brezos, argomas, cornejos, etc.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H33","Comunidades herbáceas"); + define("_HABITAT_TXT3","Vegetación compuesta de plantas sin tallo duro. Sus plantas serán utilizadas en la alimentación de animales.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H34","Acantilados y arenales costeros"); + define("_HABITAT_TXT4","Ecosistemas situados en el litoral. Superficie de los montes o rocas básicas que llegan hasta el mar o playas cercanas a ríos creados como consecuencia de las subidas y bajadas de las mareas.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H35","Lugares húmedos o encharcados"); + define("_HABITAT_TXT5","Debido a las características especiales de la tierra, bien porque se crea allí mismo o por falta de drenaje, espacios en los que en la misma superficie o cerca de ella acumulan agua. En consecuencia nacen peculiares sociedades de plantas.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H36","Cunetas, taludes, cultivos"); + define("_HABITAT_TXT6","Campos de cultivo y sitios cercanos creados mediante el trabajo realizado en la tierra con intención de adaptarse a la explotación agrícola.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H37","Repisas rocosas"); + define("_HABITAT_TXT7","Rocas situadas en lo alto de los montes o faldas escabrosas a los que normalmente no llegan ni la agricultura, ni la ganadería y tampoco la silvicultura. Morada de plantas acostumbradas a condiciones de vida muy duras.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H38","Parasitas de raíces"); + define("_HABITAT_TXT8","Plantas parásitas o molestas. Viven y crecen gracias a la savia que sustraen a otras plantas desde sus raíces. Son plantas que no pueden sobrevivir por sí solas debido a este hábito.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); +// habitat-listado.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Habitat plantas"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); +// fotografias.php + define("_FOT_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Fotografías"); + define("_FOT_DESCRIPTION",""); + define("_FOT_KEYWORDS",""); + define("_FOT_H2","Fotografías"); + define("_FOT_TXT","Disculpe las molestias, en los próximos días estarán disponibles las fotografías de la exposición"); + define("_FOT_ALT","Fotografías de la exposición"); +// agradecimientos.php + define("_THX_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Agradecimientos"); + define("_THX_DESCRIPTION",""); + define("_THX_KEYWORDS",""); + define("_THX_H2",""); + define("_THX_TXT","Museo Zumalakarregi - Fundación Cristina Enea
+agradecen a las siguientes entidades y particulares por la colaboración prestada
"); + +// creditos.php + define("_CRE_TITLE","Loreak asmatzen: Naturalistas europeos en el País Vasco - Créditos"); + define("_CRE_DESCRIPTION",""); + define("_CRE_KEYWORDS",""); + define("_CRE_H2",""); + define("_CRE_DTR1","Diputado general"); + define("_CRE_DTR2","Diputada de cultura y euskara"); + define("_CRE_DTR3","Directora General de Patrimonio Cultural"); + define("_CRE_DTR4","Jefa del servicio de patrimonio histórico-artístico, museos y archivos"); + define("_CRE_DTR5","Responsable de museos"); + define("_CRE_DTR6","Patronos"); + define("_CRE_DTR7","Departamento para el Desarrollo Sostenible
Departamento para el Desarrollo del Medio Rural"); + define("_CRE_DTR8","Concejal delegado de Medio Ambiente"); + define("_CRE_DTR9","Director de Cristina Enea"); + define("_CRE_H31","Exposición coproducida por el Museo Zumalakarregi & Fundación Cristina Enea
+DIPUTACIÓN FORAL DE GIPUZKOA"); + define("_CRE_H32","EXPOSICIÓN Y PÁGINA WEB"); + define("_CRE_DT1","Dirección:"); + define("_CRE_DT2","Coordinación general:"); + define("_CRE_DT3","Coordinador de actividades"); + define("_CRE_DT4","Investigación, realización textos y selección de contenidos:"); + define("_CRE_DT5","Colaboraciones científicas"); + define("_CRE_DT6","Fotografías"); + define("_CRE_DT7","Diseño, producción"); + define("_CRE_DT11","Montaje"); + define("_CRE_DT8","Traducciones"); + define("_CRE_DT9","Comunicación y promoción"); + define("_CRE_DT10","Página web de la exposición"); +// accesibilidad.php + define("_ACC_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Accesibilidad"); + define("_ACC_DESCRIPTION",""); + define("_ACC_KEYWORDS",""); + define("_ACC_H2","Accesibilidad"); + define("_ACC_H3","Una web accesible"); + define("_ACC_TXT"," +

Hemos querido disear una página que sea accesible para el mayor nmero de usuarios posible, independientemente de sus limitaciones personales o tecnológicas. Para ello, nos hemos basado en la aplicación y el cumplimiento de las Pautas de Accesibilidad Diseo Accesible establecidas por el WAI perteneciente al W3C.

+

Hemos implementado la página siguiendo los estándares XHTML 1.0 para el código de la página web y CSS de nivel 2, logrando una separación máxima entre presentación y contenido.

"); +// mapa-web.php + define("_MAP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Web mapa"); + define("_MAP_DESCRIPTION",""); + define("_MAP_KEYWORDS",""); + define("_MAP_H2","Mapa web"); +// imagenes url + define("_IMGURL","cas/"); +?> diff --git a/data/inc/idiomas/es.php.bk b/data/inc/idiomas/es.php.bk new file mode 100644 index 0000000..204024d --- /dev/null +++ b/data/inc/idiomas/es.php.bk @@ -0,0 +1,348 @@ +Museo Zumalakarregi / Fundación Cristina Enea / Museo Civico del Risorgimento"); + define("_VER_IMG_AMPLIADA","Ver imagen ampliada"); + define("_VOLVER","Volver"); + define("_MAS","Ver plantas"); + define("_ALBUM","Album siglo XIX"); + define("_INFO","Más información"); +// Menu + define("_MENU1","Presentacin"); + define("_MENU2","Lugar, fechas y horarios"); + define("_MENU3","Actividades"); + define("_MENU4","Contenidos"); + define("_MENU41","Biografas"); + define("_MENU411","Didier Petit de Meurville"); + define("_MENU412","Pietro Bubani"); + define("_MENU42","Pirineos"); + define("_MENU43","Opiniones de Bubani sobre el P.V."); + define("_MENU44","Excursiones de Bubani por el Pas Vasco"); + define("_MENU45","Contextualizacin"); + define("_MENU46","Flora"); + define("_MENU461","Descripcin de plantas"); + define("_MENU462","Hbitat"); + define("_MENU5","Fotografas"); + define("_MENU6","Agradecimientos"); + define("_MENU7","Crditos"); + define("_CRIS","Fundacin Cristina Enea"); +// Ficha + define("_FICHA_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Ficha"); + define("_FICHA_DESCRIPTION",""); + define("_FICHA_KEYWORDS",""); + define("_FICHA_NAME1","Nombre latn"); + define("_FICHA_NAME2","Nombre Bubani"); + define("_FICHA_NAME3","Nombre castellano"); + define("_FICHA_NAME4","Otros nombres"); + define("_FICHA_DES","Descripcin"); + define("_FICHA_OTRAS","Reproduccin de las plantas del herbario de Bubani"); + define("_FICHA_HABIT","Habitats"); +// index.php + define("_INDEX_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco"); + define("_INDEX_DESCRIPTION",""); + define("_INDEX_KEYWORDS",""); + define("_INDEX_H2","Exposición"); + define("_INDEX_TXT"," +El Museo Zumalakarregi en colaboración con la Fundación Cristina Enea y el Museo Civico del Risorgimento de Bolonia, presenta la exposición, Loreak asmatzen: Naturalistas europeos en el País Vasco. Petit de Meurville – Pietro Bubani y, a su vez, esta página web en la que recogemos los contenidos de la exposición junto a una ingente información complementaria.
+Esta página web recoge la coincidencia a mediados del siglo XIX en el País Vasco de dos amantes de las plantas. Pietro Bubani botánico italiano que dedicó su vida a recoger y analizar la flora de los Pirineos, realizando diversos itinerarios por nuestro país entre 1841 y 1879, siempre con el objetivo de recoger plantas para su extraordinario herbario. Y Didier Petit de Meurville, cónsul francés en San Sebastián a partir de 1857, que unía entre sus aficiones la pintura y el amor a las plantas, lo que dio como resultado la elaboración de tres álbumes dedicados a la flora de Gipuzkoa.
+La coincidencia de ambos en el tiempo y el espacio unida a su interés por las plantas nos a dado pie a realizar esta exposición y esta web en las que analizamos nuestra flora decimonónica desde los puntos de vista científico y artístico, al tiempo que damos a conocer el contexto histórico y el interés por el estudio y el disfrute de los Pirineos que se desarrollará de manera destacada en esta misma época. Además de la presentación de estos temas centrales en esta web encontrarás diversos materiales complementarios como una base de datos sobre la flora de Gipuzkoa o los trabajos de contextualización histórica sobre Italia en el siglo XIX de Otello Sangiorgi y Fiorenza Tarozzi, del Museo Civico del Risorgimento y la Università degli Studi di Bologna, respectivamente. +"); + define("_INDEX_FT1","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_INDEX_FT2","Petit de Meurville, Didier. Navarre prés Irurzun. (Gipuzkoako Foru Aldundia / Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT3","Petit de Meurville, Didier. Groupe. D'achilées. Graminées et mille feuilles. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT4","Petit de Meurville, Didier. Flore de Guipuzcoa (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_TXT2","Descargar trptico de la exposicin (PDF)"); +// lugar-fechas.php + define("_LUGAR_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Lugar, fechas y horarios"); + define("_LUGAR_DESCRIPTION",""); + define("_LUGAR_KEYWORDS",""); + define("_LUGAR_H2",""); + define("_LUGAR_H31","Lugar"); + define("_LUGAR_H32","Fechas"); + define("_LUGAR_H33","Horarios"); + define("_LUGAR_TXT1","Cristina Enea, Centro de Recursos Medioambientales: Paseo Duque de Mandas, 66. 20012 Donostia-San Sebastián. Teléfono 943 453 526."); + define("_LUGAR_TXT2","Del 13 de julio al 10 de septiembre de 2009"); + define("_LUGAR_TXT3","Lunes a sábado:9.30-13.30/15.00-20.00.
+ Domingos y festivos: 10.00-13.30

Entrada gratuita"); +// actividades.php + define("_AC_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Actividades"); + define("_AC_DESCRIPTION",""); + define("_AC_KEYWORDS",""); + define("_AC_H2",""); + define("_AC_LINK","Ver tríptico actividades (PDF)"); + define("_AC_H31","ACTIVIDADES GUIADAS: EXPLORADORES EN CRISTINA- ENEA"); + define("_AC_TXT1","Grupos de las colonias “Oporretan Euskaraz” tendrán la oportunidad de conocer a estos dos exploradores del siglo XIX, y de convertirse ellos mismos en exploradores del siglo XXI para conocer mejor y respetar la naturaleza mediante un juego preparado especialmente para esta ocasión."); + define("_AC_H32","CURSO: LOREJANA: gastronomía y flora silvestre"); + define("_AC_TXT2","La naturaleza si es rica en algo es en diversidad y el ser humano ha aprendido a beneficiarse de ello como por ejemplo en la alimentación. De la mano de maestros en la materia descubriremos nuevas plantas comestibles y su uso en la gastronomía."); + define("_AC_DT1","13/07/09"); + define("_AC_DD1","Mikel Benito: Introducción teórica sobre el uso de las plantas silvestres locales en la cocina y visita a la exposición en Cristina Enea."); + define("_AC_DT2","14/07/09"); + define("_AC_DD2","Leire Etxaide: Aprendiendo a ver y observar, cómo en un paseo podemos llenar también nuestra cesta."); + define("_AC_DT3","15/07/09"); + define("_AC_DD3","Andoni Luis Aduriz: Del campo a la cocina, ideas para aplicaciones de las hierbas y flores silvestres en la cocina."); + define("_AC_NOTAS","Notas"); + define("_AC_LI1","Plazas limitadas, es necesario reservar previamente"); + define("_AC_LI2","El curso se impartirá en castellano"); + define("_AC_H33","DÍA DE LA ACUARELA: Flora y agua"); + define("_AC_DT4","18/07/09"); + define("_AC_DD4","Inspirada en la afición de Petit de Merville a la pintura, actividad abierta a todo el público, utilizando la técnica de la acuarela y siendo el motivo “La flora de Cristina-enea”

+

Asociación de acuarelistas vascos. Demostración de la técnica de la acuarela en el parque de Cristina-enea. Las creaciones realizadas se podrán admirar en una exposición desde el 19 de julio al 13 de septiembre

"); + define("_AC_H34","CONCIERTO: "Raíces en Mi Sol""); + define("_AC_DT5","18/07/09"); + define("_AC_DD5","Jakoba Errekondo - Alex Mendizábal
+ Música autótrofa - Adar haizea

+ +

Jakoba Errekondo (1961) Nacido en Usurbil y lugar donde reside.
+ Paisajista de la ética y de la estética.
+ Vive de sembrar, cultivar, injertar y recoger la cosecha.
+ Observando y escuchando a las plantas gusta de hablar de nuestra cultura del paisaje. Comiendo las plantas las vive.
+ Alex Mendizabal (1961), se ocupa de pausa-efecto, sonido en movimiento, cine ciego y canto subacuático. Vive en Roma."); +// biografias.php + define("_BIO_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Biografas"); + define("_BIO_DESCRIPTION",""); + define("_BIO_KEYWORDS",""); + define("_BIO_H2",""); +// biografia-didier-petit-de-meurville.php + define("_BIOD_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Biografa de Didier Petit de Meurville"); + define("_BIOD_DESCRIPTION",""); + define("_BIOD_KEYWORDS",""); + define("_BIOD_H2","Biografa de Didier Petit de Meurville"); + define("_BIOD_TXT","Nació en Haití en 1793. Su padre falleció en la revuelta de esclavos de 1795, por lo que se tuvo que trasladar con el resto de su familia a Boston. Algunos años mas tarde la familia se instaló en Lyon. Didier se dedicó al comercio de la seda y se relacionó políticamente con sectores legitimistas. Al final de la Primera Guerra Carlista ayudó a los exiliados carlistas en Francia, llegando a intimar hasta el punto de realizar retratos de Don Carlos, su familia, Cabrera y varios de los que siguieron al pretendiente a Bourges.
+Su apoyo fue recompensado por Don Carlos nombrándole vizconde del Amparo en 1845.
+En 1848 ingresa en la carrera consular y es nombrado vicecónsul en Alicante. En 1857 solicita el traslado y se instala como Cónsul en San Sebastián. Durante los 16 años que desempeñó su cargo en la capital guipuzcoana siguió desarrollando su afición por la pintura realizando numerosas ilustraciones y cuadros de paisajes de la ciudad y su entorno. Dedicó especial atención a la flora de la provincia cuya descripción se recoge en tres álbumes de ilustraciones de gran calidad.
+Petit de Meurville falleció en Biarritz en 1873."); +// biografia-pietro-bubani.php + define("_BIOP_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Biografa de Pietro Bubani"); + define("_BIOP_DESCRIPTION",""); + define("_BIOP_KEYWORDS",""); + define("_BIOP_H2","Biografa de Pietro Bubani"); + define("_BIOP_TXT","Nació en Bagnacavallo (Ravenna) en 1806. Estudió medicina en la Universidad de Bologna, donde se licenció en 1829. Ejerció como médico durante breve tiempo. Tras participar en la fracasada revuelta contra el gobierno pontificio de 1831 se refugió en Córcega.
+ Realizó sus estudios de botánica en Florencia, comenzando su trabajo de campo en los Pirineos en 1836.
+ Abandonó la lucha política para dedicarse en exclusiva a la investigación botánica. Realizó 21 campañas de recogidas de plantas en los Pirineos. Su obra magna se publicó tras su fallecimiento en cuatro tomos: Flora Pyrenaea (1897-1901). Publicada en latín comprendía todos sus hallazgos en esta cordillera y en el País Vasco y destaca por la calidad y rigor de sus anotaciones florísticas. También recogió sus experiencias en varios diarios, donde menciona las penalidades que le tocó sufrir al sur de los Pirineos, en una época de guerras y miserias a las que se añadían las derivadas de su condición de extranjero, que le valieron acusaciones de espía y apátrida.
+ Murió en accidente al caerse por una ventana de su palacio en 1888."); +// pirineos.php + define("_PI_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Pirineos"); + define("_PI_DESCRIPTION",""); + define("_PI_KEYWORDS",""); + define("_PI_H2",""); + define("_PI_TXT","El interés por el conocimiento de la naturaleza que se dio en la Europa ilustrada hizo que a finales del siglo XVIII se iniciará un proceso de estudio y ascensiones en los Pirineos. En una primera fase será el conocimiento científico lo que prime. Geólogos, geógrafos, botánicos se adentran en la cordillera para conocerla desde sus respectivas disciplinas. A medida que el siglo XIX avance, los Pirineos interesarán también a escritores e ilustradores y comenzarán a ser atractivos para el turismo."); + define("_PI_TXT2","Victor HUGO:
+ De Pau a Cauterets:
+

“Las seis de la mañana. Llueve. La lluvia arriba, el torrente abajo, mezclan su ruido. Ruta pintoresca, sombreada, verde y alegre a pesar del mal tiempo. Los Pirineos en el horizonte. Cimas quebradas, cortadas, retorcidas, torneadas, como toqueteadas por la mano formidable de un gigante: pequeños lagos de nieve en los baches.”
"); + define("_PI_FT1","MELLING et CERVINI. Carte itineraire du Voyage pittoresque dans les Pyrénées. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT2","J. JACOTTET.Vue generale du cirque de Gavarni. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT3","E. PARIS. Cascade Valentin (Koldo Mitxelena Kulturunea)"); + define("_PI_FT4","J. JACOTTET.Luz route de Barreges. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT5","MIALHE et DANDIRAN. Bains de Bagneres de Luchon. (Koldo Mitxelena Kulturunea) +"); + define("_PI_FT6","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_PI_FT7","V. PETIT. Chasseurs d’Isard et Berger.
+(Koldo Mitxelena Kulturunea)"); + +// opiniones-bubani-sobre-pais-vasco.php + define("_OP_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Opiniones de Bubani sobre el Pas Vasco"); + define("_OP_DESCRIPTION",""); + define("_OP_KEYWORDS",""); + define("_OP_H2","Opiniones de Bubani sobre el País Vasco"); + define("_OP_TXT","

Bubani había realizado diversas breves excursiones al País Vasco desde 1841, pero en el 1844 por primera vez organiza y realiza una expedición completa al sur de los Pirineos. Decide comenzar por el difícil “semibárbaro País Vasco”.

+

Bubani tuvo una relación de ambivalente con el País Vasco. En sus diarios de viaje podemos encontrar frases como:

+

“Me puse camino a Baiona, donde llegué después de comer sano e incólume, harto a más no poder de aquellas bestias, insoportables y despreciables Vascongados.”

+

“Observé dos grandes características de la miseria intelectual de los vascos: la primera que se ríen mucho; la segunda la tendencia, como las mujeres, a confabular entre ellos, alejándose de sus ocupaciones con extrema facilidad.”

+

Sin embargo en el libro “Dunalia” publicado en 1878 encontramos el siguiente párrafo:

+

“Fué tal y tanta mi satisfacción, en mi viaje por aquel nuevo y gracioso país, que el año siguiente volví entre los Bascos, y tan bien recorrí sus montes, que podía decir que los conocía palmo a palmo. Y aquello me pareció un Paraíso terrestre, por sus montes fáciles, lugares amenos, las mujeres bellísimas.”

+

Eso sí, la inestabilidad debida a la reciente Guerra Carlista sumergió a Bubani en situaciones difíciles en su relación con la fuerza pública:
+ “Un celoso y caprichoso policía, me arrestó en Pamplona, persuadido de que yo era un faccioso, porque llevaba (era un día lluvioso) una boina vasca al estilo carlista. Estuve a punto de ser detenido por carlista. Puesto en contacto con el gobernador me fue fácil eliminar las sospechas concebidas por el policía.
+ El prefecto lo entendió pero me aconsejó no seguir llevando la boina. Prudente consejo, al cual, sin embargo, yo no atendí.”

"); + define("_OP_FT1","Blanche HENNEBUTE"); + define("_OP_FT2","Colección Stefano Pezzoli. Bubani in costume basco"); + define("_OP_FT3","Blanche HENNEBUTE. Costumes basques espagnols : batelieres de Passages. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT4","Blanche HENNEBUTE. Vue du pas de Roland: environs de Cambo-Isatsou. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT5","Blanche HENNEBUTE. Vue de Fontarabie. (Koldo Mitxelena Kulturunea)"); +// excursiones-bubani-pais-vasco.php + define("_EX_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Excursiones de Bubani por el Pas Vasco"); + define("_EX_DESCRIPTION",""); + define("_EX_KEYWORDS",""); + define("_EX_H2",""); + define("_EX_TXT1","

En julio de 1850 conoce en Pamplona a Juan de Mata Uriarte, “Direttore dell’Università di Pamplona. “El día 14 pasé 4 horas con él controlando su herbario, en el cual encontré pocas cosas relevantes. Ahora que se anime, y podrá serme útil.”
+ Cuando vuelve a la ciudad en 1858 afirma: “Volví a ver Pamplona con gusto, y la encontré embellecida.”
+ En esta ocasión contacta con el botánico Natalio Cayuela. Autor de Plantas cogidas en las cercanías de Pamplona hace algunos años. Fue catedrático del Instituto de la capital navarra.

"); + define("_EX_FT1","D. PETIT de MEURVILLE. Vue de Pampelune. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT2","

En mayo de 1853 conoce en Bayona a la familia Feillet. “En Baiona volví a ver enseguida a los Feuillet, padre e hijas Hélène, y Blanche, que me recibieron bien”

+

Pierre Jacques Feillet, pintor y litógrafo nacido en Iméray, estudió pintura en París. En 1834 se instaló en Bayona y de 1844 a 1855 dirigió la Escuela de Dibujo y Pintura de la ciudad. Sus hijas Hélène y Blanche fueron también pintoras y litógrafas, muy activas en la Bayona de mediados del XIX. Blanche en 1844 se casó con Charles Hennebutte impresor afincado en esta ciudad. Hacia 1857 fue nombrada directora de la Escuela de Dibujo y Pintura de Bayona. Ambas fueron autoras de numerosas litografías de paisajes vascos, que nos permitirán ilustrar los viajes de Bubani.

"); + define("_EX_FT2","Helene FEILLET. Vue de la cathédrale de Bayonne. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT3","

Este mismo mes entra en Gipuzkoa y visita el Santuario de Loyola. “Visité el famoso Monasterio, Convento, Casa de Loyola, donde dicen que nació este hombre de Dios, que ha puesto y sigue poniendo tanta agitación en el mundo. El edificio es grandioso, sólido, y de una admirable arquitectura. Lo visité con el Sacristán, una bestia, de la que no pude recabar razonamientos inteligentes.Volví a visitar la Iglesia con más calma y comodidad el 29 de Mayo y aunque todavía no esté acabada la declaro obra estupenda y admirable.”

"); + define("_EX_FT3","D. PETIT de MEURVILLE. [Vista de la basílica de Loiola desde el río]. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT4","

En junio de 1857comenta: “El teniente de los Aduaneros en Oiartzun quiso hacerse el riguroso y los pilló con contrabando en la carreta que llevaba mis cosas: detuvo la carreta y al conductor de ella. Bastante agitación de este y el otro y no pocas fanfarronadas mias. Poca prudencia, porque el pueblo en España está siempre de lado de los fraudulentos. Por lo tanto me quedé en Oiartzun la noche, el día siguiente y la mañana del 20 bajé con el teniente al Paseo.”

"); + define("_EX_FT4","Carpenter, G. Oyarzun : album de Guipuzcoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT5","

El 5 de junio de 1853 llega a Bilbao donde conoce al “Director del Instituto Dr. Agostino de Arragui y Heradia,el cual me acompañó en el paseo, me acompañó al mismo Instituto, me dio una memoria suya impresa sobre el Instituto, y se me declaró amigo y protector.”
+
+ Agustín de ARREGUI y HEREDIA era profesor de geografía y Director del Instituto Vizcaíno entre 1848 y 1856. Él le pondrá en contacto con el botánico y poeta Mariano EGUIA, que se dedicó, desde el año 1823 al estudio de las plantas en la capital vizcaína.

"); + define("_EX_FT5","Blanche HENNEBUTE. Bilbao: vue prise du chermin de Bermeo = Bilbao: vista tomada del camino de Bermeo: las Provincias Vascongadas. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT6","

El 24 de junio conoce en Oñate a Fernando MIEG, “que me hizo buena impresión, y lo juzgué amable, con muchas ganas de aprender y expansivo: muy frío en cuestiones políticas, y también en demostraciones de afecto con los amigos, pero en el fondo bueno.” Éste fue el le que regaló el mapa de Gipuzkoa que se puede ver en la exposición.

+

Fernando MIEG, naturalista español, fue director y catedrático del Instituto de Bergara y después del de Bilbao. Estudió Historia Natural y coleccionó el herbario de Bizkaia y Gipuzkoa. En Bergara, en terrenos pertenecientes al Real Seminario, donde la Bascongada había establecido un “huerto experimental” a finales del siglo XVIII, creó un jardín botánico.

"); + define("_EX_FT6","D. PETIT de MEURVILLE. Oñate Gipuzkoa. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT7","

Eibar, 20 de julio de 1857: “Descansé en el pórtico del convento, hoy en día fábrica de arcabuces, cuando un mal nacido operario me tiró dos veces un saco de tierra.¡Antipatía de los Guipuzcoanos a los forasteros!”

"); + define("_EX_FT7","Lambla, Julio. Eibar : Gipuzkoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT8","

Durango, 27 de julio 1857: “En Durango, pueblo notable y carlista pregunté inutilmente a 7 o 8 personas, entre ellos el Director del correo, el nombre de los ríos afluentes de este lugar: el Director dijo que ¡no se fijaba en esas cosas!. Ignorancia y beatería máxima en este pueblo, del cual escapé con alegría.”

"); + define("_EX_FT8","Lambla, Julio. Durango: Gipuzkoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT9","

Azpeitia, 15 de agosto 1857:
+ “Volví a Azpeitia, ameno, pero poco curioso lugar botanicamente hablando”

+D. PETIT de MEURVILLE. Vue D'Azpeitia Guipuzcoa Espagne : route de Cestona : juillet 1867. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_FT9",""); + define("_EX_TXT10","

“El día 22 [junio de 1857] volví a San Sebastian a casa de la buena bodeguera Maria Josefa Ibarrola, amiga de la Feillet, que me alojó en septiembre de 1844.”

"); + define("_EX_FT10","D. PETIT de MEURVILLE. San Sebastian peint par Didier P. de Meurville : 1863. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT11","

Bergara, 25 de junio 1853:
+ “El día 25 fui con Mieg a Vergara, donde en la catedral observé un bellísimo Cristo crucificado de madera.También vi el colegio, que me gustó.

"); + define("_EX_FT11","D. PETIT de MEURVILLE. Vue de Vergara Guipuzcoa Espagne 1866. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT12","

En mayo de 1879 Bubani vuelve al País Vasco.
+ “El día 15 pasé una deliciosa jornada en Biarritz con la Feillet.”

"); + define("_EX_FT12","Blanche HENNEBUTE. Vue de la place de la nouvelle eglise et de la Villa Eugenie. (Koldo Mitxelena Kulturunea)"); +// contextualziacion.php + define("_CON_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Contextualizacin"); + define("_CON_DESCRIPTION",""); + define("_CON_KEYWORDS",""); + define("_CON_H3","Contexto histórico. País Vasco/Emilia-Romagna"); + define("_CON_TXT1","

Durante los años 20 se van a producir levantamientos liberales tanto en Italia como en España. La llegada al poder de los liberales españoles en el Trienio (1820-1823) los convertirá en el modelo a seguir por el resto de liberales europeos. La Constitución de Cádiz será el referente, así como el ideal romántico del pueblo unido contra el invasor francés y la guerra de guerrillas. Italia permanece dividida en pequeños reinos y estados.

"); + define("_CON_FT1","Italia 1815. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT21","

Los años 30 se inician en Italia con el levantamiento liberal de 1831, en el que participará Bubani y provocará su huída al exilio.
+ En España estalla la Primera Guerra Carlista, guerra civil entre los partidarios del Antiguo Régimen y los defensores del sistema liberal. Su principal escenario será el País Vasco, donde se establecerá el Pretendiente Don Carlos.

"); + define("_CON_TXT22","

La diplomacia de los Reinos de las Dos Sicilias y de Cerdeña, así como la de los Estados Pontificios apoyará la causa carlista. Sin embargo la participación de los italianos en esta guerra fue más importante entre los liberales, ya que alrededor de 500 formaron parte del cuerpo de la Legión Extranjera Francesa que luchó contra el carlismo.

"); + define("_CON_FT21","Battaglia di Rimini tra i liberali italiani e le truppe austriache (1831). (Museo Civico del Risorgimento, Bologna)"); + define("_CON_FT22","La Legión Extranjera Francesa en la guerra carlista. (Zumalakarregi Museoa)"); + define("_CON_TXT31","

En los años 40 en Italia comienza a tomar fuerza el fenómeno conocido como el “Risorgimento”, que une a las ideas progresistas con el proyecto de la unificación italiana.
+ En el País Vasco se viven las consecuencias de la guerra carlista entre las que cabe destacar el traslado de las aduanas del Ebro al Bidasoa, medida antiforal que integrará la economía vasca en el mercado español y dará paso a una incipiente industrialización.

"); + define("_CON_TXT32","

Petit de Meurville apoyará a Don Carlos en el exilio, mientras Bubani inicia sus visitas al País Vasco.
+ La revolución liberal tendrá especial incidencia en Bolonia.

"); + define("_CON_FT31","Pont de Behobie sur la Bidassoa (Zumalakarregi Museoa)"); + define("_CON_FT32","La cacciata degli Austriaci da Bologna l'8 agosto 1848. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT41","En los años 50 empiezan a desarrollarse entre nosotros los proyectos del ferrocarril. Petit se instala como cónsul en San Sebastián y podrá seguir los progresos y el impulso de la línea del Ferrocarril del Norte."); + define("_CON_TXT42","Bubani vuelve a recoger plantas entre nosotros. Mientras en Italia se consumará la primera fase de la unificación con la conquista del reino de las dos Sicilias por parte de Garibaldi en 1860."); + define("_CON_FT41","D. PETIT de MEURVILLE. Inauguration du travaux du chemin de fer. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_CON_FT42","Veduta di Bologna (1850) (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT5","

En los años 60 Petit de Meurville será testigo del derribo de las murallas donostiarras en pleno proceso de expansión urbana de la capital guipuzcoana. La revolución de 1868 dará paso a una fase de desestabilización política que culminará con el estallido de la Segunda Guerra Carlista.
+ Mientras en Italia se culminará el proceso de unificación en 1870 con la conquista del Veneto a Austria y la de Roma al Papa. El ataque a los Estados Pontificios fue duramente criticado entre nosotros y sirvió también como argumento para el levantamiento carlista.

"); + define("_CON_FT5","Episodio de la Batalla de Montejurra (Zumalakarregi Museoa)"); +// flora.php + define("_FLOR_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Flora"); + define("_FLOR_DESCRIPTION",""); + define("_FLOR_KEYWORDS",""); + define("_FLOR_H2",""); + define("_FLOR_TXT","

Las plantas son el tema principal de esta exposición. La flora y el País Vasco es lo que une a estos dos naturalistas. Para comprender la afición de estos dos personajes del siglo XIX, presentamos su material de trabajo desde tres aspectos diferentes. A través de fichas completas de algunas plantas seleccionadas, analizando su uso práctico o reuniéndolas por su hábitat.

+

Las fichas completas de las plantas seleccionadas nos indican las numerosas maneras de acercarse a la flora. No las analizamos sólo desde la botánica como Bubani, ni desde la estética como Petit. Cada planta tiene sus valores simbólicos y sus usos prácticos. Sus nombres también nos ofrecen mucha información y, en ocasiones, su estudio nos dará pistas sobre el desarrollo del cambio climático.

+

Anímate a observar la flora de tu entorno y a recoger información sobre ella. Disfruta tú también como Bubani y Petit.

"); +// descripcion-plantas.php + define("_DESP_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Descripcin de plantas"); + define("_DESP_DESCRIPTION",""); + define("_DESP_KEYWORDS",""); + define("_DESP_H2",""); +// detalle-planta.php + define("_DETP_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Detalles planta"); + define("_DETP_DESCRIPTION",""); + define("_DETP_KEYWORDS",""); + define("_DETP_H2",""); +// habitat.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Habitat"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); + define("_HABITAT_H31","Bosque"); + define("_HABITAT_TXT1","Biotopo que además de por árboles, arbustos, hierbas y demás plantas está compuesto por microorganismos animales, hongos y otros. Dependiendo de la tierra y del microclima, las plantas básicas y sobre todo los árboles cambiarán, al mismo tiempo que el conjunto biológico de todos los seres vivos.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H32","Matorrales"); + define("_HABITAT_TXT2","Maleza que crece entre arbustos y árboles jóvenes. En la mayoría de las ocasiones prevalecen las plantas que nacen sobre brezos, argomas, cornejos, etc.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H33","Comunidades herbáceas"); + define("_HABITAT_TXT3","Vegetación compuesta de plantas sin tallo duro. Sus plantas serán utilizadas en la alimentación de animales.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H34","Acantilados y arenales costeros"); + define("_HABITAT_TXT4","Ecosistemas situados en el litoral. Superficie de los montes o rocas básicas que llegan hasta el mar o playas cercanas a ríos creados como consecuencia de las subidas y bajadas de las mareas.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H35","Lugares húmedos o encharcados"); + define("_HABITAT_TXT5","Debido a las características especiales de la tierra, bien porque se crea allí mismo o por falta de drenaje, espacios en los que en la misma superficie o cerca de ella acumulan agua. En consecuencia nacen peculiares sociedades de plantas.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H36","Cunetas, taludes, cultivos"); + define("_HABITAT_TXT6","Campos de cultivo y sitios cercanos creados mediante el trabajo realizado en la tierra con intención de adaptarse a la explotación agrícola.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H37","Repisas rocosas"); + define("_HABITAT_TXT7","Rocas situadas en lo alto de los montes o faldas escabrosas a los que normalmente no llegan ni la agricultura, ni la ganadería y tampoco la silvicultura. Morada de plantas acostumbradas a condiciones de vida muy duras.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H38","Parasitas de raíces"); + define("_HABITAT_TXT8","Plantas parásitas o molestas. Viven y crecen gracias a la savia que sustraen a otras plantas desde sus raíces. Son plantas que no pueden sobrevivir por sí solas debido a este hábito.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); +// habitat-listado.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Habitat plantas"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); +// fotografias.php + define("_FOT_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Fotografas"); + define("_FOT_DESCRIPTION",""); + define("_FOT_KEYWORDS",""); + define("_FOT_H2","Fotografías"); + define("_FOT_TXT","Disculpe las molestias, en los próximos das estarán disponibles las fotografías de la exposición"); + define("_FOT_ALT","Fotografías de la exposición"); +// agradecimientos.php + define("_THX_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Agradecimientos"); + define("_THX_DESCRIPTION",""); + define("_THX_KEYWORDS",""); + define("_THX_H2",""); + define("_THX_TXT","Museo Zumalakarregi - Fundacin Cristina Enea
+agradecen a las siguientes entidades y particulares por la colaboracin prestada
"); + +// creditos.php + define("_CRE_TITLE","Loreak asmatzen: Naturalistas europeos en el Pas Vasco - Crditos"); + define("_CRE_DESCRIPTION",""); + define("_CRE_KEYWORDS",""); + define("_CRE_H2",""); + define("_CRE_DTR1","Diputado general"); + define("_CRE_DTR2","Diputada de cultura y euskara"); + define("_CRE_DTR3","Directora General de Patrimonio Cultural"); + define("_CRE_DTR4","Jefa del servicio de patrimonio histórico-artístico, museos y archivos"); + define("_CRE_DTR5","Responsable de museos"); + define("_CRE_DTR6","Patronos"); + define("_CRE_DTR7","Departamento para el Desarrollo Sostenible
Departamento para el Desarrollo del Medio Rural"); + define("_CRE_DTR8","Concejal delegado de Medio Ambiente"); + define("_CRE_DTR9","Director de Cristina Enea"); + define("_CRE_H31","Exposición coproducida por el Museo Zumalakarregi & Fundación Cristina Enea
+DIPUTACIÓN FORAL DE GIPUZKOA"); + define("_CRE_H32","EXPOSICIÓN Y PÁGINA WEB"); + define("_CRE_DT1","Dirección:"); + define("_CRE_DT2","Coordinación general:"); + define("_CRE_DT3","Coordinador de actividades"); + define("_CRE_DT4","Investigación, realización textos y selección de contenidos:"); + define("_CRE_DT5","Colaboraciones científicas"); + define("_CRE_DT6","Fotografías"); + define("_CRE_DT7","Diseño, producción"); + define("_CRE_DT11","Montaje"); + define("_CRE_DT8","Traducciones"); + define("_CRE_DT9","Comunicación y promoción"); + define("_CRE_DT10","Página web de la exposición"); +// accesibilidad.php + define("_ACC_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Accesibilidad"); + define("_ACC_DESCRIPTION",""); + define("_ACC_KEYWORDS",""); + define("_ACC_H2","Accesibilidad"); + define("_ACC_H3","Una web accesible"); + define("_ACC_TXT"," +

Hemos querido disear una pgina que sea accesible para el mayor nmero de usuarios posible, independientemente de sus limitaciones personales o tecnolgicas. Para ello, nos hemos basado en la aplicacin y el cumplimiento de las Pautas de Accesibilidad Diseo Accesible establecidas por el WAI perteneciente al W3C.

+

Hemos implementado la pgina siguiendo los estndares XHTML 1.0 para el cdigo de la pgina web y CSS de nivel 2, logrando una separacin mxima entre presentacin y contenido.

"); +// mapa-web.php + define("_MAP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Web mapa"); + define("_MAP_DESCRIPTION",""); + define("_MAP_KEYWORDS",""); + define("_MAP_H2","Mapa web"); +// imagenes url + define("_IMGURL","cas/"); +?> diff --git a/data/inc/idiomas/es.php.utf8 b/data/inc/idiomas/es.php.utf8 new file mode 100644 index 0000000..78ab226 --- /dev/null +++ b/data/inc/idiomas/es.php.utf8 @@ -0,0 +1,13 @@ +Zumalakarregi Museoa / Cristina Enea Fundazioa / Museo Civico del Risorgimento"); + define("_VER_IMG_AMPLIADA","Irudia handiagotua ikusi"); + define("_VOLVER","Itzuli"); + define("_MAS","Loreak ikusi"); + define("_ALBUM","XIX. mendeko albuma"); + define("_INFO","Informazio gehiago"); +// Menu + define("_MENU1","Aurkezpena"); + define("_MENU2","Lekua, datak eta ordutegia"); + define("_MENU3","Ekintzak"); + define("_MENU4","Edukiak"); + define("_MENU41","Biografiak"); + define("_MENU411","Didier Petit de Meurville"); + define("_MENU412","Pietro Bubani"); + define("_MENU42","Pirinioak"); + define("_MENU43","Bubaniren Euskal Herriari buruzko iritziak"); + define("_MENU44","Bubaniren txangoak Euskal Herrian zehar"); + define("_MENU45","Testu inguru historikoa"); + define("_MENU46","Flora"); + define("_MENU461","Landareen deskribapena"); + define("_MENU462","Bizilekua"); + define("_MENU5","Argazkiak"); + define("_MENU6","Esker onak"); + define("_MENU7","Kredituak"); + define("_CRIS","Cristina Enea Fundazioa"); + +// Ficha + define("_FICHA_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Fitxa"); + define("_FICHA_DESCRIPTION",""); + define("_FICHA_KEYWORDS",""); + define("_FICHA_NAME1","Latinezko izena"); + define("_FICHA_NAME2","Bubanik emandako izena"); + define("_FICHA_NAME3","Gaztelerazko izena"); + define("_FICHA_NAME4","Beste izen batzuk"); + define("_FICHA_DES","Deskribapena"); + define("_FICHA_OTRAS","Bubanik jasotako landareak"); + define("_FICHA_HABIT","Landare honen bizi lekua"); +// Index + define("_INDEX_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian"); + define("_INDEX_DESCRIPTION",""); + define("_INDEX_KEYWORDS",""); + define("_INDEX_H2","Erakusketa"); + define("_INDEX_TXT"," +Zumalakarregi Museoak, CristinaEnea Fundazioarekin eta Bolognako Museo Civico del Risorgimentorekin elkarlanean, ondorengo erakusketa aurkezten du,
+Loreak asmatzen: Naturzale europarrak Euskal Herrian. Petit de Meurville – Pietro Bubani
+Euskal Herrian XIX. mende erdian bi landare zale egokitu ziren. Pietro Bubani, italiar botanikoa, bizitza Piriniotako landareak jaso eta aztertzen eman zuena, gurean 1841 eta 1879 artean zenbait ibilbide egin zituena, beti ere bere herbarioarentzat landareak jasotzeko helburuz. Eta Didier Petit de Meurville, 1857.etik aurrera Frantziako kontsula Donostian, bere zaletasunen artean pintura eta landareekiko maitasuna elkartu zituena, zeinen emaitza Gipuzkoako florari eskainitako hiru album izan ziren.
+Bi pertsonaiak denbora eta espazioan batera egokitzeak eta bien landareekiko maitasuna uztartzeak erakusketa hau antolatzeko bidea eman digu. Bertan gure XIX. mendeko flora zientzia eta artearen aldetik aztertzeko beta izan dugu, bidebatez garai hartako gure herriaren egoera aipatu eta Pirinioen inguruan sortutako , bai ikertzeko zein gozatzeko interesaren aipua ere egin dugu. +"); + define("_INDEX_FT1","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_INDEX_FT2","Petit de Meurville, Didier. Navarre prés Irurzun. (Gipuzkoako Foru Aldundia / Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT3","Petit de Meurville, Didier. Groupe. D'achilées. Graminées et mille feuilles. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT4","Petit de Meurville, Didier. Flore de Guipuzcoa (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_TXT2","Descargar tríptico de la exposición (PDF)"); + //define("_INDEX_TXT2",htmlentities("Descargar triptico", ENT_QUOTES,'UTF-8')); +// lugar-fechas.php + define("_LUGAR_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Lekua, datak eta ordutegia"); + define("_LUGAR_DESCRIPTION",""); + define("_LUGAR_KEYWORDS",""); + define("_LUGAR_H2",""); + define("_LUGAR_H31","Lekua"); + define("_LUGAR_H32","Datak"); + define("_LUGAR_H33","Ordutegia"); + define("_LUGAR_TXT1","Cristina Enea, Ingurumen Baliabideen Etxea: Mandasko Dukearen pasealekua, 66. 20012 Donostia. Telefonoa 943 453 526. www.cristinaenea.org"); + define("_LUGAR_TXT2","2009-07-13 / 2009-09-10 "); + define("_LUGAR_TXT3","Astelehenetik larunbatera 9:30-13:30/15:00-20:00.
+ Igande eta jaiegunetan 10:00-13:30.

+Sarrera doan"); +// actividades.php + define("_AC_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Ekintzak"); + define("_AC_DESCRIPTION",""); + define("_AC_KEYWORDS",""); + define("_AC_H2",""); + define("_AC_LINK","Ekintzen triptikoa ikusi (PDF)"); + define("_AC_H31","EKINTZA GIDATUAK: CRISTINA- ENEAKO ESPLORATZAILEAK"); + define("_AC_TXT1","“Oporretan Euskaraz” udalekuetako taldeek, bereziki beraientzat prestatutako joko baten bitartez, XIX. mendeko bi esploratzaile hauek ezagutzeko eta XXI. mendeko esploratzaile bihurtzeko aukera izango dute, natura hobeto ezagutu eta errespetatu dezaten."); + define("_AC_H32","IKASTAROA: LOREJANA: gastronomia eta basoko landareak"); + define("_AC_TXT2","Natura zerbaitetan aberatsa bada, aniztasunean da eta gizakiak etekina atera dio, elikadurarekin adibidez. Gai honetan adituak diren maisuen bitartez, jangarriak diren landare berriak ezagutuko ditugu, baita hauen erabilera gastronomian ere."); + define("_AC_DT1","09/07/13"); + define("_AC_DD1","Mikel Benito:
+ Basoko landareen sukaldaritza erabilerari buruzko sarrera teorikoa eta erakusketara bisita Cristina Enean"); + define("_AC_DT2","09/07/14"); + define("_AC_DD2","Leire Etxaide:
+ Ikusten eta behatzen ikasi, ibilaldi batean gure saskia bete dezakegu"); + define("_AC_DT3","09/07/15"); + define("_AC_DD3","Andoni Luis Aduriz:
+ Menditik sukaldera, belar eta basoko landareak sukaldaritzara egokitzeko ideiak"); + define("_AC_NOTAS","Oharrak"); + define("_AC_LI1","Plaza mugatuak, beharrezkoa da aurrez izena ematea"); + define("_AC_LI2","Ikastaroa gazteleraz eskainiko da."); + define("_AC_H33","AKUARELA EGUNA: Landareak eta ura"); + define("_AC_DT4","09/07/18"); + define("_AC_DD4","Petit de Mervillen pintura zaletasunean inspiratuta, publiko guztientzako ekintza, akuarela teknika erabiliz eta gaia “Cristina Eneako landareak” izanik.

+

Euskal akuarelisten elkartea. Akuarela teknikaren erakustaldia Cristina Enea parkean. Sorkuntzak ikusgai izango dira erakusketa batean uztailaren 19tik irailaren 13 arte."); + define("_AC_H34","KONTZERTUA: "Adar haizea""); + define("_AC_DT5","18/07/09"); + define("_AC_DD5","Jakoba Errekondo - Alex Mendizábal
+ Musika autotrofa – Adar haizea

+

Jakoba Errekondo (1961) Usurbilera jaioaeta bertan du biziabizi.
+ Etika eta estetikaren Paisajista.
+ Landareak ereinez, landatuz,txertatuz eta uztakbilduz bizi da.
+ Landareei begira eta adituz, gure kulturaren paisaiaz hitzegiteadu gustuko.
+ Landareak janez bizi ditu.
+ Alex Mendizabal (1961), pausa-efektuaz arduratzen da. Bai eta soinua mugimenduan, zinema itsua eta urazpiko kantuaz ere. Erroman bizi da."); +// biografias.php + define("_BIO_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Biografiak"); + define("_BIO_DESCRIPTION",""); + define("_BIO_KEYWORDS",""); + define("_BIO_H2",""); +// biografia-didier-petit-de-meurville.php + define("_BIOD_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Didier Petit de Mervuilllen biografia"); + define("_BIOD_DESCRIPTION",""); + define("_BIOD_KEYWORDS",""); + define("_BIOD_H2","Didier Petit de Meurvillen biografia"); + define("_BIOD_TXT","Haitin jaio zen 1793.ean. Bere aita 1795eko esklaboen altxamenduan hil zutenez bere familia Bostonera aldatu zen. Urte batzuk beranduago familia Lyonen kokatu zen. Didierrek setaren merkataritzari ekin zion bizibidez, politikoki legitimismoarekin lotzen zen bitartean. Honela, Lehenengo Karlistada ostean atzerriratu karlistei laguntza eskaini zien. Gertu gertutik gainera, izan ere, Don Carlos, bere familia, Cabrera eta beste zenbait burukide karlisten erretratuak burutu baizituen Bourgesen. Don Carlosek, esker onez, "Babesaren Bizkonde" izendatu zuen 1845.ean.
+ 1848.ean kontsul izateko bidea hasi zuen eta Alicanteko kontsul-orde hautatu zuten. 1857.ean aldaketa eskatu eta Donostiako kontsul hautatua izan zen. Bertan bizitako 16 urteetan bere pintura zaletasuna lantzen jarraitu zuen, hiria eta inguruetako paisaien irudi ugari eginez. Probintziako loreei arreta berezia eskaini zien, kalitate haundiko irudiekin hiru album osatuz.
+ Didier Petit de Meurville Biarritzen hil zen 1873.ean."); +// biografia-pietro-bubani.php + define("_BIOP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Pietro Bubaniren biografia"); + define("_BIOP_DESCRIPTION",""); + define("_BIOP_KEYWORDS",""); + define("_BIOP_H2","Pietro Bubaniren biografia"); + define("_BIOP_TXT","Bagnacavallo-n (Ravenna-n) jaio zen 1806.ean. Bolognako unibertsitatean ikasi zuen medikuntza, 1829.ean lizentziatuz. Mediku bezala denbora gutxiz jardun zuen. Aita Santuaren gobernuaren aurkako altxamenduaren porrotaren ostean Korsikan errefuxiatu zen 1831.ean.
+ Botanika ikasketak Florentzian egin zituen eta Piriniotako landa ikerketak 1836.ean hasi zituen.
+ Borroka politikoa utzi zuen soilik ikerketa botanikoan jarduteko. Piriniotan landareak jasotzen 21 kanpaina egin zituen.
+ Bere lan nagusia heriotza ondoren argitaratu zen lau tomotan: Flora Pyrenaea (1897-1901). Latinez argitaratua, mendikatean eta Euskal Herrian egindako aurkikuntza guztiak osatzen zuten. Landareei buruzko oharren kalitate eta zorroztasunak nabarmentzen dute.
+ Bere esperientziak zenbait egunkaritan jaso zituen. Horietan Pirineo hegoaldean jasandako esperientzia gogorrak aipatzen ditu, gerra eta miseria garaiak izan baiziren eta atzerritarra izanez espiatzat hartua izan baizen.
+ Bere jauregiko lehio batetik erorita hil zen 1888.ean."); +// pirineos.php + define("_PI_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Pirinioak"); + define("_PI_DESCRIPTION",""); + define("_PI_KEYWORDS",""); + define("_PI_H2",""); + define("_PI_TXT","Europa ilustratuan naturaren ezagutzak sortutako jakin-minak, XVIII. mende bukaeran Pirinioak ikertu eta bertako menditan igoerak egiten hastea bultzatu zuen. Lehenengo aroan ezagutza zientifikoek izango dute lehentasuna. Geologoak, geografoak edo botanikoak murgilduko dira mendikatea sakonki ezagutzera. XIX. mendeak aurrera egin ahala idazle eta ilustratzaileak ere hurbilduko dira Piriniotara, baita turistak ere."); + define("_PI_TXT2","Victor HUGO:
+ Pabetik Cauteretsera:
+

“Goizeko seirak. Euria ari du. Euriak goian, uharrak behean, nahasten dituzte hotsak. Ibilbide ikusgarria, itzalean, berdea eta alaia, eguraldia txarra izan arren. Pirinioak zeruertzean. Apurtutako gailurrak, moztuak, bihurrituak, erraldoi baten esku izugarriak ikutuak bailiran: elur aintzira txikiak zuloetan.”
"); + define("_PI_FT1","MELLING et CERVINI. Carte itineraire du Voyage pittoresque dans les Pyrénées. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT2","J. JACOTTET. Vue generale du cirque de Gavarni. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT3","E. PARIS. Cascade Valentin (Koldo Mitxelena Kulturunea)"); + define("_PI_FT4","J. JACOTTET. Luz route de Barreges. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT5","MIALHE et DANDIRAN. Bains de Bagneres de Luchon. (Koldo Mitxelena Kulturunea) +"); + define("_PI_FT6","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_PI_FT7","V. PETIT. Chasseurs d’Isard et Berger.
+(Koldo Mitxelena Kulturunea)"); + +// opiniones-bubani-sobre-pais-vasco.php + define("_OP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Bubaniren Euskal Herriari buruzko iritziak"); + define("_OP_DESCRIPTION",""); + define("_OP_KEYWORDS",""); + define("_OP_H2","Bubaniren Euskal Herriari buruzko iritziak"); + define("_OP_TXT","

Bubani 1841.enaz geroztik Euskal Herrira zenbait txango egina zen, baina 1844.ean antolatuko du lehenengo aldiz Pirinio hegoalderako espedizioa. Euskal Herri “erdi basatitik” hastea erabakiko du.

+

Bubanik Euskal Herriarekiko harreman bikoitza izan zuen. Bere bidai-egunkarietan aurki ditzakegu:

+

“Baionako bidean jarri nintzen, bazkal ondoren iritsi nintzen osasuntsu eta osorik, astakirten haietaz nazka nazka eginda, Euskaldun jasanezin eta zitalak”

+

“Euskaldunen adimen miseriaren bi bereizgarri nagusi ikusi nituen: lehena farre ugari egiten dutena; bigarrena, emakumeen antzera, beraien artean trikimailutan ibiltzeko joera, betebeharretatik errazegi urrunduz.”

+

Aitzitik 1878.ean argitaratutako “Dunalia” liburuan aurkitzen dugu:

+

“Hain haundia izan zen nire poza herri berri eta xelebre hartan barna egindako bidaian, hurrengo urtean ere Euskaldunen artera itzuli nintzela, eta hain ongi korritu nituen bertako mendiak, zehatz mehatz ezagutu nituela esan nezakeela. Hura paradisua iruditu zitzaidan, mendi errazak, leku atseginak, emakumeak zinez ederrak”

+

Hori bai Karlistada amaitu berriak sortutako ezegonkortasunak zenbait arazo eragin zizkion Bubaniri:

+

“Polizía arduratsu eta apetatsu batek,” fakziokide” bat nintzelakoan Iruñean atxilotu nindun, buruan (egun euritsua zen) euskal txapela karlisten erara neramalako.Karlistatzat hartuta atxilotua izateko arriskuan izan nintzen. Gobernadorearekin harremanetan jarrri nintzenean erraza izan zitzaidan poliziaren susmoak ezabatzea. Gobernadoreak ulertu zuen baina txapelik ez eramatea gomendatu zidan. Zentzuzko gomendioa, nik, aitzitik, jarraitu ez nuena.”

"); + define("_OP_FT1","Azcoitia et ses environs (Zumalakarregi Museoa)"); + define("_OP_FT2","Bubani in costume basco. (Colección Stefano Pezzoli)"); + define("_OP_FT3","Blanche HENNEBUTE. Costumes basques espagnols : batelieres de Passages. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT4","Blanche HENNEBUTE. Vue du pas de Roland: environs de Cambo-Isatsou. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT5","Blanche HENNEBUTE. Vue de Fontarabie. (Koldo Mitxelena Kulturunea)"); +// excursiones-bubani-pais-vasco.php + define("_EX_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Bubaniren txangoak Euskal Herrian zehar"); + define("_EX_DESCRIPTION",""); + define("_EX_KEYWORDS",""); + define("_EX_H2",""); + define("_EX_TXT1","

1850.eko uztailean Iruñean Juan de Mata Uriarte ezagutuko du, “Direttore dell’Università di Pamplona”. “14ean lau ordu pasa nituen bere herbarioa aztertzen eta ezer askorik ez nuen aurkitu. Animatzen bada probetxugarri gerta dakit.”
+ 1858.ean hirira itzultzen denean honela dio: “Gustora ikusi nuen Iruña, edertua aurkitu nuen”
+ Oraingoan Natalio Cayuela botanikoa ezagutu zuen, Plantas cogidas en las cercanías de Pamplona hace algunos años liburuaren egilea. Nafar hiriburuko institutoan katedradun izan zen.

"); + define("_EX_FT1","D. PETIT de MEURVILLE. Vue de Pampelune. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT2","

1853.eko maiatzean Baionan Feillet familia ezagutuko du. “Baionan segituan ikusi nituen Feuillet-tarrak, aita eta alabak, Helene eta Blanche, oso ongi hartu ninduten.”

+

Pierre Jacques Feillet, Imerayn jaiotako margolari eta litografoak Parisen ikasi zuen pintura. 1834.ean Baionan kokatu zen eta 1844.etik 1855.era bertako Marrazki eta Pintura Eskolako zuzendaria izan zen. Bere alabak, Helene eta Blanche ere pintore eta litografo izan ziren, XIX. mende erdian lan asko egindakoak. Blanche 1844.ean Charles Hennebutte inprimatzailearekin ezkondu zen. 1857an Baionako Marrazki eta Pintura eskolako zuzendari hautatu zuten. Bi aizpek euskal paisaien litografia ugari egin zituzten, Bubaniren bidaiak ilustratzeko baliagarri izango zaizkigunak.

"); + define("_EX_FT2","Helene FEILLET. Vue de la cathédrale de Bayonne. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT3","

1853.eko maiatzean Gipuzkoan sartu eta Loiolako Santutegia bisitatuko du. “Santutegi, Komentu, Loiolako Etxe famatua bisitatu nuen, Jainkoaren gizon hau jaio zela diotena, munduan hainbat asaldura jarri zuena eta, oraindik jartzen duena.Eraikina izugarria da, sendoa eta arkitekura miresgarria du. Sakristauarekin bisitatu nuen, astapotro bat, arrazoi zentzudunik ez nuen beregandik lortu. Eliza lasai eta erosoago maiatzak 29an bisitatu nuen, eta oraindik bukatu gabe badago ere bikaina eta miresgarria iruditzen zait.”

"); + define("_EX_FT3","D. PETIT de MEURVILLE. [Loiolako basilikaren ikuspegia errekatik].(Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT4","

1857.eko ekainean dio: “Oiartzungo aduaneroen tenienteak zuzena agertu nahi izan zuen eta nire gauzak zeramatzan gurdian kontrabandoa aurkitu zuen. Gurdia eta itzaina atxilotu zituen. Bata eta besteen asaldura eta nire aldetik harrokeria. Zuhurtzi gutxi, Espainian herria beti iruzurraren aldekoa baita. Beraz gaua eta biharamuna Oiartzunen pasa nituen eta 20aren goizean jaitsi nintzen ibilbidera tenientearekin.”

"); + define("_EX_FT4","Carpenter, G. Oyarzun (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT5","

1853.eko ekainak 5ean iritsi zen Bilbora non ezagutzen duen: “Agostino de Arragui y Heradia Institutuko zuzendaria.Paseoan lagundu nindun, baita Institutora ere, berak idatzitako Institutuari buruzko txosten bat eman zidan eta lagun eta zaintzaile gisa aurkeztu zitzaidan.”

+

Agustín de ARREGUI y HEREDIA geografia irakasle eta Bizkaitar Institutuaren zuzendari izan zen 1848tik 1856ra. Berak jarriko du Mariano EGIA poeta eta botanikoarekin harremanetan. Egia Bilboko landareen ikertzailea izan zen 1823tik aurrera.

"); + define("_EX_FT5","Blanche HENNEBUTE. Bilbao: vue prise du chemin de Bermeo = Bilbao: vista tomada del camino de Bermeo. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT6","

1853ko ekainak 24ean Oñatin Fernando MIEG ezagutzen du, “inpresio ona eman zidan, adeitsua iruditu zitzaidan, ikasteko gogoz eta irekia: hotza politikan zein lagunekiko maitasuna erakusterakoan, baina ona sakonean.” Honek oparitu zion erakusketan ikus daitekeen Gipuzkoako mapa.

+

Fernando MIEG, espainiar naturzalea, Bergarako Institutuko zuzendari eta katedradun, gero Bilbokoan. Natur Historia ikasi zuen eta Bizkaia eta Gipuzkoako herbarioak bildu zituen. Bergaran Erret Seminarioaren lurretan, XVIII. mende bukaeran Bascongadak “baratze esperiméntala” jarri zuen lekuan, lorategi botanikoa sortu zuen.

"); + define("_EX_FT6","D. PETIT de MEURVILLE. Oñate Gipuzkoa. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT7","

Eibar, 1857.eko uztailak 20: “Komentuaren atarian, egun arma fabrikan atseden hartu nuen. Langile zital batek bi aldiz bota zidan lur saku bat. Gipuzkoarren atzerritarrekiko ezinikusia!”

"); + define("_EX_FT7","Lambla, Julio. Eibar. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT8","

Durango, 1857ko uztailak 27: “Durangon herri nabarmen eta karlistan, 7 edo 8 pertsonei, tartean Posta zuzendariari, alperrik galdetu nizkien bertako ibai eta erreken izenak. Zuzendariak esan zidan gauza horiei ez ziela arretarik jartzen! Ezjakintasun eta elizkoikeri izugarriak herri honetan, nondik pozik alde egin nuen.”

"); + define("_EX_FT8","Lambla, Julio. Durango. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT9","

Azpeitia, 1857ko abuztuak 15:
+ “Azpeitira itzuli nintzen, atsegina baina botanikoki bitxikeririk gabea”

"); + define("_EX_FT9","D. PETIT de MEURVILLE. Vue D'Azpeitia Guipuzcoa Espagne : route de Cestona : juillet 1867. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT10","

“1857ko ekainak 22an Donostiara itzuli nintzen, Maria Josefa Ibarrola ostalari onaren etxera. Feillet aizpen laguna, 1844ko irailean ere ostatu eman zidan.”"); + define("_EX_FT10","D. PETIT de MEURVILLE. San Sebastian peint par Didier P. de Meurville : 1863. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT11","

Bergara, 1853ko ekainak 25:
+ “Miegekin Bergarara joan nintzen,non katedralean gustatu zitzaidan zurezko Kristo gurutzatu bat ikusi nuen.”

"); + define("_EX_FT11","D. PETIT de MEURVILLE. Vue de Vergara Guipuzcoa Espagne 1866. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT12","

1879ko maiatzean Bubani Euskal Herrira itzultzen da:
+ “Hilak 15ean egun zoragarria pasa nuen Biarritzen Feilletekin.”

"); + define("_EX_FT12","Blanche HENNEBUTE. Vue de la place de la nouvelle eglise et de la Villa Eugenie. (Koldo Mitxelena Kulturunea)"); +// contextualziacion.php + define("_CON_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Testu inguru historikoa"); + define("_CON_DESCRIPTION",""); + define("_CON_KEYWORDS",""); + define("_CON_H3","Ingurugiro historikoa. País Vasco/Emilia-Romagna"); + define("_CON_TXT1","

20ko hamarkadan altxamendu liberalak suertatu ziren bai Italian baita Espainian ere. Hirurtekoan (1820-1823) Espainiar liberalak boterera iritsi izanak eredu bihurtuko ditu gainontzeko europar liberalentzat. Kadizeko Konstituzioa erreferentea izango da, baita frantziar inbaditzailearen aurkako herri batuaren ideal erromantikoa eta gerrilen guda ere. Italiak erresuma eta estatu txikietan zatiturik dirau.

"); + define("_CON_FT1","Italia 1815. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT21","

Bi Sizilietako eta Cerdenako erresumetako diplomaziak, baita Aita Santuaren Estatuetakoak ere karlisten alde egingo dute. Hala ere, gerra honetan italiarren parte hartzea garrantzitsuagoa izan zen liberalen artean, 500 inguru Frantziar Legio Atzerritarreko partaide izan zirelako, karlismoaren aurka borrokatuz.

"); + define("_CON_TXT22","

Bi Sizilietako eta Cerdenako erresumetako diplomaziak, baita Aita Santuaren Estatuetakoak ere karlisten alde egingo dute. Hala ere, gerra honetan italiarren parte hartzea garrantzitsuagoa izan zen liberalen artean, 500 inguru Frantziar Legio Atzerritarreko partaide izan zirelako, karlismoaren aurka borrokatuz.

"); + define("_CON_FT21","Battaglia di Rimini tra i liberali italiani e le truppe austriache (1831). (Museo Civico del Risorgimento, Bologna)"); + define("_CON_FT22","Frantziar legioa lubaki karlista baten aurka eraso betean. (Zumalakarregi Museoa)"); + define("_CON_TXT31","

40ko hamarkadan “Risorgimento” bezala ezaguna zen mugimendua, ideia aurrerakoiak italiar batasunaren egitasmoarekin batzen dituena, indarra hartzen hasi zen.
+ Euskal Herrian karlistaldiaren ondorioak nabari dira, bereziki aduanak Ebrotik Bidasoara aldatu izana, euskal ekonomia espainiar merkatuan integratuko duen foruen aurkako neurria, industrializazioaren sorrerari bidea emanez.

+"); + define("_CON_TXT32","

Petit de Meurvillek Don Carlosen alde egingo du erbestean, bitartean, Bubani Euskal Herrira dator. Iraultza liberalak eragin berezia izango du Bolonian.

+"); + define("_CON_FT31","Pont de Behobie sur la Bidassoa (Zumalakarregi Museoa)"); + define("_CON_FT32","La cacciata degli Austriaci da Bologna l'8 agosto 1848. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT41","

50ko hamarkadan trenbidearen egitasmoak garatzen hasten dira gure artean. Petit Donostian kontsul da eta Iparraldeko Trenbide sarearen aurrerapenak eta sustapena jarraitzeko aukera izango du.

"); + define("_CON_TXT42","

Bubani gure artean landareak biltzera itzultzen da. Bitartean Italian batasunaren lehen fasea burutuko da, Garibaldik 1860ean bi Sizilietako erresumaren garaipena lortzen duenean.

"); + define("_CON_FT41","D. PETIT de MEURVILLE. Inauguration du travaux du chemin de fer. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_CON_FT42","Veduta di Bologna (1850 ca.) (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT5","

60ko hamarkadan Petit de Meurvillek, gipuzkoako hiriburuaren zabalkuntza prozesuan, Donostiako harresiak nola botatzen dituzten ezagutuko du. 1868ko iraultzaren ondoren, ezegonkortasun politikoa ezaugarritzat izango duen garaia etorriko da, Bigarren Karlistaldian bukatuko dena.
+ Italian bitartean batasun prozesuari amaiera emango zaio 1870ean Austriarrei Veneto konkistatuz eta Erroma Aita Santuari. Aita Santuaren Estatuei egindako erasoa oso gogor kritikatua izan zen gure artean eta altxamendu karlisten aitzaki gisa balio izan zuen.

"); + define("_CON_FT5","Episodio de la Batalla de Montejurra (Zumalakarregi Museoa)"); +// flora.php + define("_FLOR_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Flora"); + define("_FLOR_DESCRIPTION",""); + define("_FLOR_KEYWORDS",""); + define("_FLOR_H2",""); + define("_FLOR_TXT","

Erakusketa honen gai nagusia landareak dira. Landareak eta Euskal Herriak lotzen dituzte gure bi naturzaleak. XIX. mendeko bi pertsonaia hauen zaletasuna ulertzeko beraiek landutako materiala hiru modutan aurkezten dizuegu. Landare bakarraren fitxa osatua eskainiz batzutan, bere erabilera ardatz hartuta besteetan eta agertzen diren tokien arabera azkenik.

+

Landare bakarraren fitxa osatuek erakusten digute asko direla gaia aztertzeko alderdiak. Ez ditugu arlo botaniko soiletik aztertu, Bubanik egin zuen moduan, ezta ere Petiten modura alde estetikotik. Landare bakoitzak bere balore sinbolikoak eta erabilera praktikoak ditu, izenek ere informazio ugari eskaintzen digute eta batzutan aldaketa klimatikoaren garapena aztertzeko ere balio dezakete.

+

Anima zaitez zu ere inguruko landareei erreparatzen eta beraiei buruzko informazio jasotzen. Goza ezazu zuk ere Bubani eta Petiten antzera.

"); +// descripcion-plantas.php + define("_DESP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Landareen deskribapena"); + define("_DESP_DESCRIPTION",""); + define("_DESP_KEYWORDS",""); + define("_DESP_H2",""); +// detalle-planta.php + define("_DETP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Landareen detaileak"); + define("_DETP_DESCRIPTION",""); + define("_DETP_KEYWORDS",""); + define("_DETP_H2",""); +// habitat.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Bizilekua"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); + define("_HABITAT_H31","Basoa"); + define("_HABITAT_TXT1","Zuhaitza, zuhaiska, belar eta beste landareez gain mikroorganismo animalia, onddo eta abar biltzen duen biotopoa. Lur motaren eta mikroklimaren arabera oinarrizko landareak eta batipat zuhaitzak aldatuko dira, baita bizidun guztien multzo biologikoa ere.
+ http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php"); + define("_HABITAT_H32","Sasiak"); + define("_HABITAT_TXT2","Zuhaiska eta zuhaitz gazteak tartean hartzen dituen sasitza edo sastrakadia. Gehienetan txilar, ote, zuhandor eta antzekoen gainean garatzen diren lahar eta aihena duten landareak dira nagusi.
+http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php +"); + define("_HABITAT_H33","Belar komunitateak"); + define("_HABITAT_TXT3","Zurtoin gogorrik gabeko landare belarkarez osatutako landaredia. Etxeko abereak elikatzeko larre eta ondugai dira bertako landareak.
+http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php"); + define("_HABITAT_H34","Itsaslabar eta hondartzak"); + define("_HABITAT_TXT4","Itsasbazterreko ekosistemak. Mendien azala bera edo oinarrizko harkaitza itsasoraino iristen denekoa edo errekak zein ibaiak eta itsasoaren mareen arteko gora-beherak tarteko sortutako errioen inguruko hondartzak.
+ http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php "); + define("_HABITAT_H35","Toki heze edo putzuz beteak"); + define("_HABITAT_TXT5","Lurraren ezaugarri bereziak direla eta, drainatu ezinik edo bertan sortzen delako, azalean edo azaletik bertara ura pilatzen den uneak. Landare-elkarte bereziak garatzen dira bertan.
+ http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php"); + define("_HABITAT_H36","Areka, ezponda eta laboreak"); + define("_HABITAT_TXT6","Nekazaritza ustiapenera moldatzeko, lurrean egiten diren lanen ondorioz sortutako soro, sagasti eta inguruko tokiak.
+ http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php"); + define("_HABITAT_H37","Erlaitzak"); + define("_HABITAT_TXT7","Ez nekazaritza, ez abeltzantza eta gehienetan ezta basogintza ere iristen ez diren mendi magal malkartsuetako edo mendi muturretako harkaitzak. Baldintza oso gogorretara ohitutako landareen bizitoki.
+ http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php"); + define("_HABITAT_H38","Sustrai parasitoak"); + define("_HABITAT_TXT8","Landare bizkarroiak edo parasitoak. Beste landare batzuei sustraietatik izerdia lapurtuz bizi eta garatzen dira. Ohitura hau dela eta, bere kasa bizitzeko gai ez diren landareak dira.
+ http://www.albumsiglo19mendea.net/petitdemeurville/bildumak_bizilekuen_arabera.php"); +// habitat-listado.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Bizilekuaren landareak"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); +// fotografias.php + define("_FOT_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Argazkiak"); + define("_FOT_DESCRIPTION",""); + define("_FOT_KEYWORDS",""); + define("_FOT_H2","Argazkiak"); + define("_FOT_TXT","Barkatu eragozpenak, datozen egunetan izango dira ikusgai erakusketako argazkiak"); + define("_FOT_ALT","Erakusketaren argazkiak"); +// agradecimientos.php + define("_THX_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Esker onak"); + define("_THX_DESCRIPTION",""); + define("_THX_KEYWORDS",""); + define("_THX_H2",""); + define("_THX_TXT","Zumalakarregi Museoa - Cristina Enea Fundazioa
+laguntza eskaini duten instituzio hauei beraien esker ona adierazten diete
+"); + +// creditos.php + define("_CRE_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Kredituak"); + define("_CRE_DESCRIPTION",""); + define("_CRE_KEYWORDS",""); + define("_CRE_H2",""); + define("_CRE_H31","Zumalakarregi Museoa eta Cristina Enea Fundazioak koproduzitua
+GIPUZKOAKO FORU ALDUNDIA"); + define("_CRE_DTR1","Diputatu nagusia"); + define("_CRE_DTR2","Kultura eta euskara diputatua"); + define("_CRE_DTR3","Kultura ondarearen zuzendari nagusia "); + define("_CRE_DTR4","Ondare historiko-artistikoaren, artxiboen eta museoen zerbitzuko burua"); + define("_CRE_DTR5","Museoen arduraduna"); + define("_CRE_DTR6","Patronoak"); + define("_CRE_DTR7","Departamento para el Desarrollo Sostenible
Landa Ingurunearen Garapenerako Departamentua "); + define("_CRE_DTR8","Ingurumen zinegotzi ordezkaria"); + define("_CRE_DTR9","Cristina Eneako Zuzendaria"); + + define("_CRE_H32","ERAKUSKETA WEB GUNEA ETA EKINTZAK"); + define("_CRE_DT1","Zuzendaritza"); + define("_CRE_DT2","Koordinaketa orokorra"); + define("_CRE_DT3","Ekintzen koordinaketa"); + define("_CRE_DT4","Testuen ikerketa, burutzapena eta edukien aukeraketa"); + define("_CRE_DT5","Kolaboratzaile zientifikoak"); + define("_CRE_DT6","Argazkiak"); + define("_CRE_DT7","Diseinua eta produkzioa"); + define("_CRE_DT8","Itzulpenak"); + define("_CRE_DT9","Komunikazio eta promozioa"); + define("_CRE_DT10","Erakusketaren webgunea"); + define("_CRE_DT11","Muntaia"); + +// accesibilidad.php + define("_ACC_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Irisgarritasuna"); + define("_ACC_DESCRIPTION",""); + define("_ACC_KEYWORDS",""); + define("_ACC_H2","Irisgarritasuna"); + define("_ACC_H3","Web irisgarria"); + define("_ACC_TXT","

Ahalik eta erabiltzaile-kopuru handienera iritsiko den web gunea egin nahi izan dugu. Web irisgarria egin nahi izan dugu, beren muga pertsonal edo teknologikoak edozein direla ere. Horretarako, W3C partzuergoaren WAI-ren Irisgarritasun Arauak aplikatu eta bete ditugu.

+

Web gunea egiteko XHTML 1.0 eta 2. mailako CSS kodearentzako estandarrak hartu ditugu aintzat, eta beraz, lortu litekeen banaketarik handiena lortu dugu aurkezpenaren eta edukiaren artean.

"); +// mapa-web.php + define("_MAP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Web mapa"); + define("_MAP_DESCRIPTION",""); + define("_MAP_KEYWORDS",""); + define("_MAP_H2","Web mapa"); + define("_MAP_TXT",""); +// imagenes url + define("_IMGURL",""); +?> diff --git a/data/inc/idiomas/it.php b/data/inc/idiomas/it.php new file mode 100644 index 0000000..cfd8b18 --- /dev/null +++ b/data/inc/idiomas/it.php @@ -0,0 +1,351 @@ +Museo Zumalakarregi / Fundación Cristina Enea / Museo Civico del Risorgimento"); + define("_VER_IMG_AMPLIADA","Vedere immagine ingrandita"); + define("_VOLVER","Indietro"); + define("_MAS","Vedere piante"); + define("_ALBUM","Album siglo XIX"); + define("_INFO","Più informazioni"); +// Menu + define("_MENU1","Presentazione"); + define("_MENU2","Luogo/ Date e orari"); + define("_MENU3","Attività"); + define("_MENU4","Contenuti"); + define("_MENU41","Biografie"); + define("_MENU411","Didier Petit de Meurville"); + define("_MENU412","Pietro Bubani"); + define("_MENU42","Pirenei"); + define("_MENU43","Opinioni di Bubani sul P.B."); + define("_MENU44","Escursioni di Bubani nel Paese Basco"); + define("_MENU45","Contesto storico"); + define("_MENU46","Flora"); + define("_MENU461","Descrizione delle piante"); + define("_MENU462","Habitat"); + define("_MENU5","Fotografie"); + define("_MENU6","Ringraziamenti"); + define("_MENU7","Crediti"); + define("_CRIS","Fundación Cristina Enea"); +// Ficha + define("_FICHA_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Ficha"); + define("_FICHA_DESCRIPTION",""); + define("_FICHA_KEYWORDS",""); + define("_FICHA_NAME1","Nome latino"); + define("_FICHA_NAME2","Nome Bubani"); + define("_FICHA_NAME3","Nome castigliano"); + define("_FICHA_NAME4","Altri nomi"); + define("_FICHA_DES","Descrizione"); + define("_FICHA_OTRAS","Riproduzione delle piante dell'erbario di Bubani"); + define("_FICHA_HABIT","Habitats"); +// index.php + define("_INDEX_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco"); + define("_INDEX_DESCRIPTION",""); + define("_INDEX_KEYWORDS",""); + define("_INDEX_H2","Esposizione"); + define("_INDEX_TXT"," +Il Museo Zumalakarregi in co-produzione con la Fondazione Cristina Enea e il Museo Civico del Risorgimento di Bologna, presenta l’esposizione, Loreak asmatzen: Naturalisti europei nel Paese Basco. Petit de Meurville Pietro Bubani e contestualmente questo sito internet nel quale sono raccolti i contenuti dell’esposizione correlati da estese informazioni complementari.
+ +Questo sito documenta la coincidenza che portò nel Pese Basco, a metà del XIX secolo, due amanti delle piante. Pietro Bubani botanico italiano che dedicò la sua vita a raccogliere e analizzare la flora dei Pirenei, realizzando diversi itinerari nel nostro paese tra il 1841 e il 1879, tutti con l’obiettivo di raccogliere piante per il suo straordinario erbario. E Didier Petit de Meurville, console francese a San Sebastián a partire dal 1857, che univa la passione per la pittura all’amore per le piante, unione dalla quale nacquero tre volumi dedicati alla flora di Gipuzkoa.
+ +La coincidenza spazio-temporale unita al particolare interesse per le piante di questi due personaggi ci ha fornito l’occasione di realizzare questa esposizione e questo sito nel quale analizziamo la nostra flora dell’ottocento dal punto di vista scientifico e artistico, fornendo le coordinate del contesto storico e documentando l'interesse per lo studio e la scoperta dei Pirenei che si svilupperà in maniera evidente in questo stesso periodo. +"); + define("_INDEX_FT1","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_INDEX_FT2","Petit de Meurville, Didier. Navarre prés Irurzun. (Gipuzkoako Foru Aldundia / Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT3","Petit de Meurville, Didier.  Groupe. D'achilées. Graminées et mille feuilles. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_FT4","Petit de Meurville, Didier. Flore de Guipuzcoa  (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_INDEX_TXT2","Scaricare depliant dell’esposizione (PDF)"); +// lugar-fechas.php + define("_LUGAR_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Luogo/ Date e orari"); + define("_LUGAR_DESCRIPTION",""); + define("_LUGAR_KEYWORDS",""); + define("_LUGAR_H2",""); + define("_LUGAR_H31","Luogo"); + define("_LUGAR_H32","Date"); + define("_LUGAR_H33","Orari"); + define("_LUGAR_TXT1","Cristina Enea, Centro di Risorse Ambientali: Paseo Duque de Mandas, 66. 20012 Donostia-San Sebastián. Telefono 943 453 526."); + define("_LUGAR_TXT2","Dal 13 luglio al 10 settembre 2009"); + define("_LUGAR_TXT3","Da luned a sabato:9.30-13.30/15.00-20.00.
+ Domenica e festivi: 10.00-13.30

Ingresso libero"); +// actividades.php + define("_AC_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Attività"); + define("_AC_DESCRIPTION",""); + define("_AC_KEYWORDS",""); + define("_AC_H2",""); + define("_AC_LINK","Visualizzare depliant attività (PDF)"); + define("_AC_H31","ATTIVITA’ GUIDATE: ESPLORATORI AL CRISTINA- ENEA"); + define("_AC_TXT1","Gruppi delle colonie "Oporretan Euskaraz" (vacanze in Euskara) avranno l’opportunità di conoscere questi esploratori del XIX secolo e di diventare essi stessi esploratori del XXI secolo, per meglio conoscere e rispettare la natura, attraverso un gioco pensato espressamente per questa occasione."); + define("_AC_H32","CORSO: LOREJANA: gastronomia e flora silvestre"); + define("_AC_TXT2","Se c’ qualcosa di cui ricca la natura la diversità. L’essere umano ha imparato a trarre beneficio da questa caratteristica in molti modi, uno di questi l’alimentazione. Per mano di alcuni maestri in materia scopriremo nuove piante commestibili e il loro uso gastronomico."); + define("_AC_DT1","13/07/09"); + define("_AC_DD1","Mikel Benito: Introduzione teorica sull’uso delle piante silvestri locali nella cucina e visita all’esposizione a Cristina Enea."); + define("_AC_DT2","14/07/09"); + define("_AC_DD2","Leire Etxaide: Imparando a vedere e osservare, come riempire il nostro cestino durante una passeggiata."); + define("_AC_DT3","15/07/09"); + define("_AC_DD3","Andoni Luis Aduriz: Dal campo alla cucina, idee per l’utilizzo delle erbe e dei fiori silvestri in cucina."); + define("_AC_NOTAS","Note"); + define("_AC_LI1","Posti limitati, necessaria la prenotazione anticipata"); + define("_AC_LI2","Il corso sarà in lingua spagnola"); + define("_AC_H33","GIORNATA DELL’ACQUERELLO: Flora e acqua"); + define("_AC_DT4","18/07/09"); + define("_AC_DD4","Ispirata alla passione di Petit de Meurville alla pittura, attività aperta a tutto il pubblico, utilizzando la tecnica dell’acquerello con soggetto La flora di Cristina-enea"

+

Associazione acquerellisti baschi. Dimostrazione della tecnica dell’acquerello nel parco di Cristina-enea. Le creazioni realizzate si potranno ammirare dal 19 luglio al 13 settembre

"); + define("_AC_H34","CONCERTO: "Radici nel Mio Sol""); + define("_AC_DT5","18/07/09"); + define("_AC_DD5","Jakoba Errekondo (1961) Nato a Usurbil dove ancora risiede.
+Paesaggista dell’etica e dell’estetica.
+Vive del seminare, coltivare, innestare e raccogliere il raccolto.
+Osservando e ascoltando le piante gusta il parlare della nostra cultura del paesaggio. Mangiando le piante le vive.
+Alex Mendizabal (1961), si occupa di pausa-effetto, suono e movimento, cinema cieco e canto subacqueo. Vive a Roma."); +// biografias.php + define("_BIO_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Biografie"); + define("_BIO_DESCRIPTION",""); + define("_BIO_KEYWORDS",""); + define("_BIO_H2",""); +// biografia-didier-petit-de-meurville.php + define("_BIOD_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Biografia Didier Petit de Meurville"); + define("_BIOD_DESCRIPTION",""); + define("_BIOD_KEYWORDS",""); + define("_BIOD_H2","Biografia Didier Petit de Meurville"); + define("_BIOD_TXT","Nato ad Haiti nel 1793. Suo padre mor durante la rivolta degli schiavi del 1795, a seguito della quale dovette trasferirsi a Boston insieme al resto della famiglia. Alcuni anni dopo si spostarono a Lione. Didier si dedicò al commercio della seta e si legò politicamente a settori "legittimisti". Alla fine della Prima Guerra Carlista aiutò i rifugiati carlisti in Francia con cui diventò intimo al punto da eseguire dei ritratti di Don Carlos, la sua famiglia, Cabrera e di altri che seguirono il pretendente al trono a Bourges.
+Il suo appoggio fu ricompensato da Don Carlos con la nomina a Visconte del Amparo nel 1845.
+Nel 1848 comincia la sua carriera di console e viene nominato viceconsole ad Alicante. Nel 1857 sollecita un trasferimento e si insedia come Console a San Sebastian. Durante i 16 anni in cui rimase in carica nella capitale gipuzkoana, continuò ad accrescere la sua passione per la pittura realizzando numerose illustrazioni e quadri di paesaggi della città e dei dintorni. Dedicò una speciale attenzione alla flora della provincia, la cui descrizione verrà raccolta in tre album di illustrazioni di grandissima qualità. Petit de Meurville mor a Biarritz nel 1873."); +// biografia-pietro-bubani.php + define("_BIOP_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Biografia Pietro Bubani"); + define("_BIOP_DESCRIPTION",""); + define("_BIOP_KEYWORDS",""); + define("_BIOP_H2","Biografia Pietro Bubani"); + define("_BIOP_TXT","Nato a Bagnacavallo (Ravenna) nel 1806. Studiò medicina all’Università di Bologna, dove si laureò nel 1829. Esercitò come medico per un breve periodo. Dopo aver partecipato nella sfortunata rivolta contro il governo pontificio del 1831 si rifugiò in Corsica.
+Realizzò i suoi studi di botanica a Firenze, iniziando il suo lavoro sul campo nei Pirenei nel 1836. Abbandonò la lotta politica per dedicarsi esclusivamente alla ricerca botanica. Realizzò 21 campagne di raccolta di piante nei Pirenei. La sua opera pi importante fu pubblicata dopo la sua morte in quattro volumi: Flora Pyrenaea (1897-1901). Pubblicata in latino, conteneva tutti i ritrovamenti nella catena montuosa e nel Paese Basco e risalta per la qualità e il rigore delle sue annotazioni floristiche. La sua esperienza fu raccolta anche in vari diari, dove menziona le difficoltà che soffr al sud dei Pirenei, in un’epoca di guerre e miseria al quale si aggiungeva la scomoda posizione di straniero, che gli costò varie accuse come spia e apolide.
+Mor in un incidente cadendo dalla finestra del suo palazzo nel 1888."); +// pirineos.php + define("_PI_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Pirenei"); + define("_PI_DESCRIPTION",""); + define("_PI_KEYWORDS",""); + define("_PI_H2",""); + define("_PI_TXT","L’interesse per la conoscenza della natura che si generò nell’Europa del tempo portò, sul finire del XVIII secolo, a un processo di studio e ascesa dei Pirenei. In una prima fase la conoscenza scientifica avrà il sopravvento. Geologi, geografi e botanici si avventurano sulla catena montuosa per studiarla ognuno nello specifico della propria disciplina. Solo durante il XIX secolo i Pirenei inizieranno a diventare una meta turistica e a rivestire un interesse anche per scrittori e illustratori."); + define("_PI_TXT2","Victor HUGO:
+ Da Pau a Cauterets:
+
“Le sei del mattino. Piove. La pioggia in alto, il torrente in basso, mescolano i loro rumori. Strada pittoresca, ombreggiata, verde e allegra nonostante il mal tempo. I Pirenei all’orizzonte. Cime bruciate, tagliate, ritorte, tornite, come palpate dalla mano formidabile di un gigante: piccoli laghi di neve nelle buche.”
"); + define("_PI_FT1","MELLING et CERVINI. Carte itineraire du Voyage pittoresque dans les Pyrénées. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT2","J. JACOTTET.Vue generale du cirque de Gavarni. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT3","E. PARIS. Cascade Valentin (Koldo Mitxelena Kulturunea)"); + define("_PI_FT4","J. JACOTTET.Luz route de Barreges. (Koldo Mitxelena Kulturunea)"); + define("_PI_FT5","MIALHE et DANDIRAN. Bains de Bagneres de Luchon. (Koldo Mitxelena Kulturunea) +"); + define("_PI_FT6","A.I. MELLING. Chapelle de Pouey-La-Huc. (Koldo Mitxelena Kulturunea) "); + define("_PI_FT7","V. PETIT.  Chasseurs d’Isard et Berger.
+(Koldo Mitxelena Kulturunea)"); + +// opiniones-bubani-sobre-pais-vasco.php + define("_OP_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Opinioni di Bubani sul Paese Basco"); + define("_OP_DESCRIPTION",""); + define("_OP_KEYWORDS",""); + define("_OP_H2","Opinioni di Bubani sul Paese Basco"); + define("_OP_TXT","

Bubani aveva realizzato delle brevi escursioni nel Paese Basco a partire dal 1841 ma è solo nel 1844 che realizzerà la prima spedizione completa nel sud dei Pirenei. Decide di cominciare dal difficile “semi-barbaro Paese Basco”.

+ + +

Bubani ebbe con il Paese Basco una relazione ambivalente. Nei suoi diari di viaggio si trovano frasi del tipo:

+ +

“Mi misi in cammino per Baiona, dove arrivai dopo mangiato sano e incolume, stanco da non poterne più di quelle bestie, baschi disprezzabili e insopportabili.”

+ +

“Osservai due grandi caratteristiche della miseria intellettuale dei baschi: la prima che ridono molto; la seconda la tendenza, tipica delle donne, di confabulare tra loro, allontanandosi dalle loro occupazioni con estrema facilità.”

+ +

Ma nel libro “Dunalia”, pubblicato nel 1878 troviamo anche questo paragrafo:

+ +

“Fu tanta e tale la soddisfazione che provai nel viaggio in quel nuovo e grazioso paese che l’anno dopo tornai tra i Baschi e ne attraversai le montagne, che posso dire di conoscere palmo a palmo. E quello mi sembrò il paradiso in terra, per i suoi monti semplici, i luoghi ameni, le donne bellissime.”

+ +

Certo l’instabilità prodotta dalla recente Guerra Carlista mise Bubani in una difficile situazione nei suoi rapporti con le forze pubbliche:

+

“Un capriccioso e zelante poliziotto mi arrestò a Pamplona, persuaso che io fossi un fazioso perché portavo (era una giornata di pioggia) un copricapo basco in stile carlista. Stavo per essere arrestato come carlista. Messo in contatto con il governatore riuscii facilmente a dissipare i sospetti del poliziotto.

+

Il prefetto capì la situazione ma mi consigliò di non portare il basco. Un consiglio prudente al quale, senza dubbio, non feci caso.”

"); + define("_OP_FT1","Blanche HENNEBUTE"); + define("_OP_FT2","Colección Stefano Pezzoli. Bubani in costume basco"); + define("_OP_FT3","Blanche HENNEBUTE. Costumes basques espagnols : batelieres de Passages. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT4","Blanche HENNEBUTE. Vue du pas de Roland: environs de Cambo-Isatsou. (Koldo Mitxelena Kulturunea)"); + define("_OP_FT5","Blanche HENNEBUTE. Vue de Fontarabie. (Koldo Mitxelena Kulturunea)"); +// excursiones-bubani-pais-vasco.php + define("_EX_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Escursioni di Bubani nel Paese Basco"); + define("_EX_DESCRIPTION",""); + define("_EX_KEYWORDS",""); + define("_EX_H2",""); + define("_EX_TXT1","

Nel luglio 1850 conosce a Pamplona Juan de Mata Uriarte, "Direttore dell’Università di Pamplona". "Il giorno 14 passai 4 ore con lui a controllare il suo erbario, nel quale trovai ben poche cose rilevanti. Che si svegli e potrà essermi pi utile”

+

Quando torna in città nel 1858 afferma: "Tornai a visitare Pamplona con piacere e la trovai pi bella.”

+

In questa occasione entra in contatto con il botanico Natalio Cayuela. Autore di Plantas cogidas en las cercanìas de Pamplona hace algunos años (Piante raccolte nelle vicinanze di Pamplona alcuni anni fa). Fu cattedratico dell’Istituto della capitale navarra.

"); + define("_EX_FT1","D. PETIT de MEURVILLE. Vue de Pampelune. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT2","

Nel maggio del 1853 conosce a Baiona la famiglia Feillet. "A Baiona andai subito a trovare i Feuillet, il padre e le figlie Hèlne e Blanche, che mi ricevettero con cortesia”

+

Pierre Jacques Feillet, pittore e litografo nato a Imèray, studiò pittura a Parigi. Nel 1834 si trasfer a Bayona e dal 1844 al 1855 diresse la Scuola di Disegno e Pittura della città. Le sue figlie, Hèlne e Blanche, furono anch’esse pittrici e litografe, molto attive a Baiona nella metà del XIX secolo. Blanche sposò nel 1844 Charles Hennebutte uno stampatore insediatosi in città. Verso il 1857 fu nominata Direttrice della Scuola di Disegno e Pittura di Bayona. Entrambe furono autrici di numerose litografie di paesaggi baschi, che ci permetteranno di illustrare i viaggi di Bubani.

"); + define("_EX_FT2","Helene FEILLET. Vue de la cathédrale de Bayonne. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT3","

In quello stesso mese arriva in Gipuzkoa e visita il Santuario di Loyola. “Visitai il famoso Monastero, Convento, Casa di Loyola, dove si dice sia nato quest’uomo di Dio, che ha messo, e continua a farlo, il mondo tanto in agitazione. L’edificio è grandioso, solido e di un’architettura ammirevole. Lo visitai con il sacrestano, una bestia di quelle che non possono fare ragionamenti intelligenti. Tornai a visitare la chiesa con più calma e comodità il 29 maggio e nonostante debba essere ancora finita la dichiaro un’opera stupenda e ammirevole.”

"); + define("_EX_FT3","D. PETIT de MEURVILLE. [Vista de la basílica de Loiola desde el río]. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT4","

Nel giugno 1857commenta: “Il tenente della dogana di Oiartzun volle fare il pignolo e trovò merci di contrabbando nel carro che trasportava le mie cose: fermò il carro e il guidatore. Molta agitazione da parte di entrambi e molta vanteria da parte mia. Poca prudenza, perché il popolo in Spagna sta sempre dalla parte dei fraudolenti. Pertanto mi fermai a Oiartzun la notte, il giorno seguente e la mattina del 20 andai con il tenete al Paseo.”

"); + define("_EX_FT4","Carpenter, G. Oyarzun : album de Guipuzcoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT5","

Il 5 giugno del 1853 arriva a Bilbao dove conosce il "Direttore dell’Istituto Dr. Agostino de Arragui y Heradia, il quale mi accompagnò nella passeggiata, mi accompagnò nello stesso Istituto, mi dette una sua memoria pubblicata sull’Istituto e si dichiarò mio amico e protettore.”

+

Agustìn de ARREGUI y HEREDIA fu professore di geografia e Direttore dell’ Istituto della Biscaya tra il 1848 e il 1856. Sarà lui a metterlo in contatto con il botanico e poeta Mariano EGUIA, che si dedicò, a partire dal 1823, allo studio delle piante nella capitale della Bizkaia.

"); + define("_EX_FT5","Blanche HENNEBUTE. Bilbao: vue prise du chermin de Bermeo = Bilbao: vista tomada del camino de Bermeo: las Provincias Vascongadas. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT6","

Il 24 giugno conosce Fernando MIEG a Oñate, “che mi fece una buona impressione, lo giudicai amabile, con tanta voglia di imparare ed espansivo: più freddo sulle questioni politiche e nelle dimostrazioni di affetto verso gli amici, ma nel fondo buono.” Fu lui a regalargli la cartina della Gipuzkoa che si vede nell’esposizione.

+

Fernando MIEG, naturalista spagnolo, fu direttore e accademico dell’Istituto di Bergara e dopo di Bilbao. Studiò Storia Naturale e collezionò l’erbario di Bizkaia e Gipuzkoa. A Bergara, nei terreni appartenenti al Real Seminario, dove le province basche avevano impiantato un “orto sperimentale” alla fine del XVIII secolo, creò un giardino botanico.

"); + define("_EX_FT6","D. PETIT de MEURVILLE.  Oñate Gipuzkoa. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT7","

Eibar, 20 luglio 1857: “Riposavo nel portico del convento, che oggi è una fabbrica di archibugi, quando un disgraziato di operaio mi tirò per due volte un sacco di terra. L’antipatia degli abitanti della Gipuzkoa nei confronti degli stranieri!”

"); + define("_EX_FT7","Lambla, Julio. Eibar : Gipuzkoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT8","

Durango, 27 luglio 1857: "A Durango, paese di notabili e carlista, chiesi inutilmente a 7 o 8 persone, tra cui il Direttore delle poste, il nome dei fiumi affluenti della zona: il Direttore disse che non faceva caso a queste cose! Beata ignoranza crassa di questo paese, dal quale scappai con allegria.

"); + define("_EX_FT8","Lambla, Julio. Durango: Gipuzkoa. (Koldo Mitxelena Kulturunea)"); + define("_EX_TXT9","

Azpeitia, 15 agosto 1857:

+

Tornai a Azpeitia, ameno, ma botanicamente parlando luogo poco interessante”

+

D. PETIT de MEURVILLE. Vue D'Azpeitia Guipuzcoa Espagne : route de Cestona : juillet 1867. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)

"); + define("_EX_FT9",""); + define("_EX_TXT10","

Il giorno 22 [giugno 1857] tornai a San Sebastian a casa della buona oste Maria Josefa Ibarrola, amica di Feillet, che mi alloggiò nel settembre 1844.”

"); + define("_EX_FT10","D. PETIT de MEURVILLE.  San Sebastian peint par Didier P. de Meurville : 1863. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT11","

Il 25 fui a Bergara con Mieg, dove nella cattedrale potei ammirare un bellissimo Cristo crocifisso in legno. Visitai anche il collegio e mi piacque.

"); + define("_EX_FT11","D. PETIT de MEURVILLE.  Vue de Vergara Guipuzcoa Espagne 1866. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_EX_TXT12","

Nel maggio 1879 Bubani ritorna nel Paese Basco.

+

Il giorno 15 passai una deliziosa giornata a Biarritz con la Feillet.”

"); + define("_EX_FT12","Blanche HENNEBUTE. Vue de la place de la nouvelle eglise et de la Villa Eugenie. (Koldo Mitxelena Kulturunea)"); +// contextualziacion.php + define("_CON_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Contestualizzazione"); + define("_CON_DESCRIPTION",""); + define("_CON_KEYWORDS",""); + define("_CON_H3","Contexto histórico. País Vasco/Emilia-Romagna"); + define("_CON_TXT1","

Durante gli anni ‘20 si produrranno rivolte liberali sia in Italia che nello Stato Spagnolo. L’arrivo al potere dei liberali spagnoli nel Triennio (1820-1823) li renderà il modello da seguire per tutti gli altri liberali europei. La Costituzione di Cadice sarà il punto di riferimento, insieme all’ideale romantico del popolo unito contro l’invasore francese e la guerra delle guerriglie. L’Italia resta divisa in piccoli Regni e Stati.

"); + define("_CON_FT1","Italia 1815. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT21","

Gli anni ‘30 iniziano in Italia con la sollevazione liberale del 1831, alla quale parteciperà Bubani e che gli costerà l’esilio.

+

In Spagna scoppia la Prima Guerra Carlista, guerra civile tra i seguaci dell’Antico Regime e i difensori del sistema liberale. Lo scenario principale sarà il Paese Basco, dove si stabilirà il pretendente al trono Don Carlos.

"); + define("_CON_TXT22","

La diplomazia del Regno delle Due Sicilie e di quello di Sardegna, così come quella dello Stato Pontificio appoggerà la causa carlista. Ma è fuor di dubbio che la partecipazione degli italiani in questa guerra fu più importante nelle fila dei liberali, visto che in circa 500 presero parte al corpo della Legione Straniera Francese che si batté contro il carlismo.

"); + define("_CON_FT21","Battaglia di Rimini tra i liberali italiani e le truppe austriache (1831). (Museo Civico del Risorgimento, Bologna)"); + define("_CON_FT22","La Legión Extranjera Francesa en la guerra carlista. (Zumalakarregi Museoa)"); + define("_CON_TXT31","

Negli anni ‘40 in Italia inizia a farsi strada il fenomeno conosciuto come “Risorgimento”, che affianca alle idee progressiste il progetto di unificazione italiana.

+

Nel Paese basco si vivono le conseguenze della Guerra Carlista tra le quali bisogna menzionare il trasferimento delle dogane dall’Ebro al Bidasoa, misura contraria ai Fori che porterà all’integrazione dell’economia basca nel mercato spagnolo e aprirà le porte a una repentina industrializzazione.

"); + define("_CON_TXT32","

Petit de Meurville appoggerà Don Carlos nell’esilio, mentre Bubani inizia le sue visite nel Paese Basco.

La rivoluzione liberale avrà una particolare incidenza a Bologna.

"); + define("_CON_FT31","Pont de Behobie sur la Bidassoa (Zumalakarregi Museoa)"); + define("_CON_FT32","La cacciata degli Austriaci da Bologna l'8 agosto 1848. (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT41","Negli anni ‘50 inizia a svilupparsi la rete ferroviaria. Petit diventa console di San Sebastian e potrà seguire da vicino i progressi e lo sviluppo della linea ferroviaria del Nord."); + define("_CON_TXT42","Bubani torna tra di noi per raccogliere piante, mentre in Italia si stava consumando la prima fase dell’unificazione con la conquista del Regno delle Due Sicilie da parte di Garibaldi nel 1860."); + define("_CON_FT41","D. PETIT de MEURVILLE.  Inauguration du travaux du chemin de fer. (Gipuzkoako Foru Aldundia/ Diputación Foral de Gipuzkoa)"); + define("_CON_FT42","Veduta di Bologna (1850) (Museo Civico del Risorgimento, Bologna)"); + define("_CON_TXT5","

Negli anni ‘60 Petit de Meurville sarà testimone dell’abbattimento delle mura di San Sebastian nel pieno del processo di espansione della capitale della Gipuzkoa. La rivoluzione del 1868 porterà a una fase di destabilizzazione politica che culminerà con lo scoppio della Seconda Guerra Carlista.

+

Nel mentre in Italia si concluderà il processo di unificazione con la conquista del Veneto all’Austria e quella di Roma al Papa. L’attacco allo Stato Pontificio fu da noi duramente criticato e servì anche a pretesto della sollevazione carlista.

"); + define("_CON_FT5","Episodio de la Batalla de Montejurra (Zumalakarregi Museoa)"); +// flora.php + define("_FLOR_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Flora"); + define("_FLOR_DESCRIPTION",""); + define("_FLOR_KEYWORDS",""); + define("_FLOR_H2",""); + define("_FLOR_TXT","

Le piante sono il tema principale di questa esposizione. La flora e il Paese Basco sono i traits d’union tra questi due naturalisti. Per comprendere la passione di questi due personaggi del XIX secolo, presentiamo il loro materiale di lavoro sotto tre aspetti differenti. Attraverso schede complete di alcune piante selezionate, analizzandone il loro uso pratico e riunendole a seconda del loro habitat.

+ +

Le schede complete delle piante selezionate ci indicano le tante maniere di avvicinarsi alla flora. Non le analizziamo solo dal punto di vista botanico come Bubani, nè dal lato estetico come Petit. Ogni pianta ha un valore simbolico e un uso pratico. Anche i suoi diversi nomi ci offrono molte informazioni e in alcune occasioni il loro studio ci fornirà dei dati sul procedere dei cambiamenti climatici.

+ +

Fermati a osservare la flora che hai intorno e a raccogliere informazioni su di lei! Godine anche tu come Bubani e Petit!

"); +// descripcion-plantas.php + define("_DESP_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Descrizione delle piante"); + define("_DESP_DESCRIPTION",""); + define("_DESP_KEYWORDS",""); + define("_DESP_H2",""); +// detalle-planta.php + define("_DETP_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco"); + define("_DETP_DESCRIPTION",""); + define("_DETP_KEYWORDS",""); + define("_DETP_H2",""); +// habitat.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Habitat"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); + define("_HABITAT_H31","Bosco"); + define("_HABITAT_TXT1","Biotopo composto, oltre che da alberi, arbusti, erbe e altre piante, da microrganismi animali, funghi e altri. A seconda della terra e del microclima, le piante basiche e soprattutto gli alberi cambieranno nello stesso momento dell’insieme biologico di tutti gli esseri viventi.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H32","Cespugli"); + define("_HABITAT_TXT2","Pianta spontanea che cresce tra arbusti e alberi giovani. Nella maggioranza dei casi prevalgono le piante che nascono su brughi, ginestre spinose, Cornaceae, etc.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H33","Comunità erbacee"); + define("_HABITAT_TXT3","Vegetazione composta da piante senza gambo duro. Le sue piante saranno utilizzate per l’alimentazione degli animali.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H34","Scogliere e arenili costieri"); + define("_HABITAT_TXT4","Ecosistemi situati nel litorale. Superficie dei monti o rocce basiche che arrivano fino al mare o spiagge limitrofe a fiumi creati dal movimento delle maree.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H35","Luoghi umidi o acquitrinosi"); + define("_HABITAT_TXT5","Spazi nella cui superficie, o vicino ad essa, c’ un accumulo d’acqua, vuoi per le caratteristiche specifiche della terra, perchè si crea in loco o per mancanza di drenaggio. Come conseguenza nascono peculiari società di piante.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H36","Cunette, scarpate, coltivazioni"); + define("_HABITAT_TXT6","Campi coltivati o luoghi adiacenti creati mediante il lavoro realizzato sulla terra con l’intenzione di adattarla allo sfruttamento agricolo.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H37","Sporgenze rocciose"); + define("_HABITAT_TXT7","Rocce situate in cima ai monti o falde scabrose dove normalmente non arrivano né l’agricoltura, né l’allevamento e nemmeno la silvicoltura. Dimore di piante abituate a condizioni di vita molto dure.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); + define("_HABITAT_H38","Parassiti delle radici"); + define("_HABITAT_TXT8","Piante parassite o moleste. Vivono e crescono grazie alla linfa che sottraggono ad altre piante dalle loro radici. Per questa caratteristica, sono piante che non possono sopravvivere da sole.
+ http://www.albumsiglo19mendea.net/petitdemeurville/colecciones_por_habitat.php"); +// habitat-listado.php + define("_HABITAT_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Habitat flora"); + define("_HABITAT_DESCRIPTION",""); + define("_HABITAT_KEYWORDS",""); + define("_HABITAT_H2",""); +// fotografias.php + define("_FOT_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Fotografie"); + define("_FOT_DESCRIPTION",""); + define("_FOT_KEYWORDS",""); + define("_FOT_H2","Fotografie"); + define("_FOT_TXT","Disculpe las molestias, en los próximos dìas estarán disponibles las fotografías de la exposición"); + define("_FOT_ALT","Mostra fotografica"); +// agradecimientos.php + define("_THX_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Ringraziamenti"); + define("_THX_DESCRIPTION",""); + define("_THX_KEYWORDS",""); + define("_THX_H2",""); + define("_THX_TXT","Museo Zumalakarregi - Fondazione Cristina Enea
+Ringraziano i seguenti enti e privati per la collaborazione prestata:
"); + +// creditos.php + define("_CRE_TITLE","Loreak asmatzen: Naturalisti europei nel Paese Basco - Crediti"); + define("_CRE_DESCRIPTION",""); + define("_CRE_KEYWORDS",""); + define("_CRE_H2",""); + define("_CRE_DTR1","Diputado general"); + define("_CRE_DTR2","Diputada de cultura y euskara"); + define("_CRE_DTR3","Directora General de Patrimonio Cultural"); + define("_CRE_DTR4","Jefa del servicio de patrimonio histórico-artístico, museos y archivos"); + define("_CRE_DTR5","Responsable de museos"); + define("_CRE_DTR6","Patronos"); + define("_CRE_DTR7","Departamento para el Desarrollo Sostenible
Departamento para el Desarrollo del Medio Rural"); + define("_CRE_DTR8","Concejal delegado de Medio Ambiente"); + define("_CRE_DTR9","Director de Cristina Enea"); + define("_CRE_H31","Exposición coproducida por el Museo Zumalakarregi  & Fundación Cristina Enea
+DIPUTACIÓN FORAL DE GIPUZKOA"); + define("_CRE_H32","ESPOSIZIONE E SITO INTERNET"); + define("_CRE_DT1","Direzione dell’esposizione:"); + define("_CRE_DT2","Coordinazione generale:"); + define("_CRE_DT3","Coordinazione di attività"); + define("_CRE_DT4","Ricerca, stesura testi e selezione contenuti:"); + define("_CRE_DT5","Collaborazioni scientifiche"); + define("_CRE_DT6","Fotografie"); + define("_CRE_DT7","Design e produzione e montaggio"); + define("_CRE_DT11","Montaggio"); + define("_CRE_DT8","Traduzioni"); + define("_CRE_DT9","Comunicazione e promozione"); + define("_CRE_DT10","Página web de la exposición"); +// accesibilidad.php + define("_ACC_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Accessibilità"); + define("_ACC_DESCRIPTION",""); + define("_ACC_KEYWORDS",""); + define("_ACC_H2","Accessibilità"); + define("_ACC_H3","Un sito web accessibile"); + define("_ACC_TXT"," +

Abbiamo voluto disegnare un sito che possa essere accessibile per il maggior numero possibile di utenti, indipendentemente dai limiti personali o tecnologici. A tal fine, ci siamo basati sull'applicazione e il rispetto delle Linee guida per l'accessibilità ai contenuti del Web stabilite dal WAI e appartenenti al W3C.
+ Abbiamo implementato il sito seguendo gli standard XTHML 1.0 per il codice della pagina web e CSS di livello 2, raggiungendo una separazione massima tra presentazione e contenuto.

"); +// mapa-web.php + define("_MAP_TITLE","Loreak asmatzen: Naturzale europarrak Euskal Herrian - Mappa del sito"); + define("_MAP_DESCRIPTION",""); + define("_MAP_KEYWORDS",""); + define("_MAP_H2","Mapa web"); +// imagenes url + define("_IMGURL","cas/"); +?> diff --git a/data/inc/includes.php b/data/inc/includes.php new file mode 100644 index 0000000..f8ce00b --- /dev/null +++ b/data/inc/includes.php @@ -0,0 +1,6 @@ + diff --git a/data/inc/menu.php b/data/inc/menu.php new file mode 100644 index 0000000..c36c0c0 --- /dev/null +++ b/data/inc/menu.php @@ -0,0 +1,35 @@ +
+ +
    +
  • Zumalakarregi Museoa
  • +
  • Cristina Enea Fundazioa
  • +
  • Museo Civico del Risorgimento
  • +
+
\ No newline at end of file diff --git a/data/index.php b/data/index.php new file mode 100644 index 0000000..5c98736 --- /dev/null +++ b/data/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/accesibilidad.php b/data/it/accesibilidad.php new file mode 100644 index 0000000..479c208 --- /dev/null +++ b/data/it/accesibilidad.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/accesibilidad.php.LCK b/data/it/accesibilidad.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/accesibilidad.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/actividades.php b/data/it/actividades.php new file mode 100644 index 0000000..51744fc --- /dev/null +++ b/data/it/actividades.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/actividades.php.LCK b/data/it/actividades.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/actividades.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/agradecimientos.php b/data/it/agradecimientos.php new file mode 100644 index 0000000..aa00512 --- /dev/null +++ b/data/it/agradecimientos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/agradecimientos.php.LCK b/data/it/agradecimientos.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/agradecimientos.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/biografia-didier-petit-de-meurville.php b/data/it/biografia-didier-petit-de-meurville.php new file mode 100644 index 0000000..0232f5b --- /dev/null +++ b/data/it/biografia-didier-petit-de-meurville.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/biografia-didier-petit-de-meurville.php.LCK b/data/it/biografia-didier-petit-de-meurville.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/biografia-didier-petit-de-meurville.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/biografia-pietro-bubani.php b/data/it/biografia-pietro-bubani.php new file mode 100644 index 0000000..7a080d2 --- /dev/null +++ b/data/it/biografia-pietro-bubani.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/biografia-pietro-bubani.php.LCK b/data/it/biografia-pietro-bubani.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/biografia-pietro-bubani.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/biografias.php b/data/it/biografias.php new file mode 100644 index 0000000..631600e --- /dev/null +++ b/data/it/biografias.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/biografias.php.LCK b/data/it/biografias.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/biografias.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/contextualziacion.php b/data/it/contextualziacion.php new file mode 100644 index 0000000..5faebe9 --- /dev/null +++ b/data/it/contextualziacion.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/contextualziacion.php.LCK b/data/it/contextualziacion.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/contextualziacion.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/creditos.php b/data/it/creditos.php new file mode 100644 index 0000000..4c2aac7 --- /dev/null +++ b/data/it/creditos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/creditos.php.LCK b/data/it/creditos.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/creditos.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/descripcion-plantas.php b/data/it/descripcion-plantas.php new file mode 100644 index 0000000..1492a75 --- /dev/null +++ b/data/it/descripcion-plantas.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/descripcion-plantas.php.LCK b/data/it/descripcion-plantas.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/descripcion-plantas.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/detalle-planta.php b/data/it/detalle-planta.php new file mode 100644 index 0000000..7090334 --- /dev/null +++ b/data/it/detalle-planta.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/detalle-planta.php.LCK b/data/it/detalle-planta.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/detalle-planta.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/excursiones-bubani-pais-vasco.php b/data/it/excursiones-bubani-pais-vasco.php new file mode 100644 index 0000000..1470d96 --- /dev/null +++ b/data/it/excursiones-bubani-pais-vasco.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/excursiones-bubani-pais-vasco.php.LCK b/data/it/excursiones-bubani-pais-vasco.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/excursiones-bubani-pais-vasco.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/flora.php b/data/it/flora.php new file mode 100644 index 0000000..fc9d462 --- /dev/null +++ b/data/it/flora.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/flora.php.LCK b/data/it/flora.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/flora.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/fotografias.php b/data/it/fotografias.php new file mode 100644 index 0000000..b230271 --- /dev/null +++ b/data/it/fotografias.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/fotografias.php.LCK b/data/it/fotografias.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/fotografias.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/habitat-listado.php b/data/it/habitat-listado.php new file mode 100644 index 0000000..dcf6603 --- /dev/null +++ b/data/it/habitat-listado.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/habitat-listado.php.LCK b/data/it/habitat-listado.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/habitat-listado.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/habitat.php b/data/it/habitat.php new file mode 100644 index 0000000..5b4c843 --- /dev/null +++ b/data/it/habitat.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/habitat.php.LCK b/data/it/habitat.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/habitat.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/includes/idioma.php b/data/it/includes/idioma.php new file mode 100644 index 0000000..53e23de --- /dev/null +++ b/data/it/includes/idioma.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/includes/idioma.php.LCK b/data/it/includes/idioma.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/includes/idioma.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/index.php b/data/it/index.php new file mode 100644 index 0000000..f5dd267 --- /dev/null +++ b/data/it/index.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/index.php.LCK b/data/it/index.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/index.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/lugar-fechas.php b/data/it/lugar-fechas.php new file mode 100644 index 0000000..7290ac2 --- /dev/null +++ b/data/it/lugar-fechas.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/lugar-fechas.php.LCK b/data/it/lugar-fechas.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/lugar-fechas.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/mapa-web.php b/data/it/mapa-web.php new file mode 100644 index 0000000..d4942a8 --- /dev/null +++ b/data/it/mapa-web.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/mapa-web.php.LCK b/data/it/mapa-web.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/mapa-web.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/opiniones-bubani-sobre-pais-vasco.php b/data/it/opiniones-bubani-sobre-pais-vasco.php new file mode 100644 index 0000000..2512a1c --- /dev/null +++ b/data/it/opiniones-bubani-sobre-pais-vasco.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/opiniones-bubani-sobre-pais-vasco.php.LCK b/data/it/opiniones-bubani-sobre-pais-vasco.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/opiniones-bubani-sobre-pais-vasco.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/it/pirineos.php b/data/it/pirineos.php new file mode 100644 index 0000000..795740e --- /dev/null +++ b/data/it/pirineos.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/data/it/pirineos.php.LCK b/data/it/pirineos.php.LCK new file mode 100644 index 0000000..0520a15 --- /dev/null +++ b/data/it/pirineos.php.LCK @@ -0,0 +1 @@ +Andoni||andoni@overalia.com \ No newline at end of file diff --git a/data/js/AC_RunActiveContent.js b/data/js/AC_RunActiveContent.js new file mode 100644 index 0000000..39c294b --- /dev/null +++ b/data/js/AC_RunActiveContent.js @@ -0,0 +1,292 @@ +//v1.7 +// Flash Player Version Detection +// Detect Client Browser type +// Copyright 2005-2007 Adobe Systems Incorporated. All rights reserved. +var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false; +var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false; +var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false; + +function ControlVersion() +{ + var version; + var axo; + var e; + + // NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry + + try { + // version will be set for 7.X or greater players + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); + version = axo.GetVariable("$version"); + } catch (e) { + } + + if (!version) + { + try { + // version will be set for 6.X players only + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); + + // installed player is some revision of 6.0 + // GetVariable("$version") crashes for versions 6.0.22 through 6.0.29, + // so we have to be careful. + + // default to the first public version + version = "WIN 6,0,21,0"; + + // throws if AllowScripAccess does not exist (introduced in 6.0r47) + axo.AllowScriptAccess = "always"; + + // safe to call for 6.0r47 or greater + version = axo.GetVariable("$version"); + + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 4.X or 5.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); + version = axo.GetVariable("$version"); + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 3.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3"); + version = "WIN 3,0,18,0"; + } catch (e) { + } + } + + if (!version) + { + try { + // version will be set for 2.X player + axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); + version = "WIN 2,0,0,11"; + } catch (e) { + version = -1; + } + } + + return version; +} + +// JavaScript helper required to detect Flash Player PlugIn version information +function GetSwfVer(){ + // NS/Opera version >= 3 check for Flash plugin in plugin array + var flashVer = -1; + + if (navigator.plugins != null && navigator.plugins.length > 0) { + if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) { + var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : ""; + var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description; + var descArray = flashDescription.split(" "); + var tempArrayMajor = descArray[2].split("."); + var versionMajor = tempArrayMajor[0]; + var versionMinor = tempArrayMajor[1]; + var versionRevision = descArray[3]; + if (versionRevision == "") { + versionRevision = descArray[4]; + } + if (versionRevision[0] == "d") { + versionRevision = versionRevision.substring(1); + } else if (versionRevision[0] == "r") { + versionRevision = versionRevision.substring(1); + if (versionRevision.indexOf("d") > 0) { + versionRevision = versionRevision.substring(0, versionRevision.indexOf("d")); + } + } + var flashVer = versionMajor + "." + versionMinor + "." + versionRevision; + } + } + // MSN/WebTV 2.6 supports Flash 4 + else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4; + // WebTV 2.5 supports Flash 3 + else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3; + // older WebTV supports Flash 2 + else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2; + else if ( isIE && isWin && !isOpera ) { + flashVer = ControlVersion(); + } + return flashVer; +} + +// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available +function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) +{ + versionStr = GetSwfVer(); + if (versionStr == -1 ) { + return false; + } else if (versionStr != 0) { + if(isIE && isWin && !isOpera) { + // Given "WIN 2,0,0,11" + tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"] + tempString = tempArray[1]; // "2,0,0,11" + versionArray = tempString.split(","); // ['2', '0', '0', '11'] + } else { + versionArray = versionStr.split("."); + } + var versionMajor = versionArray[0]; + var versionMinor = versionArray[1]; + var versionRevision = versionArray[2]; + + // is the major.revision >= requested major.revision AND the minor version >= requested minor + if (versionMajor > parseFloat(reqMajorVer)) { + return true; + } else if (versionMajor == parseFloat(reqMajorVer)) { + if (versionMinor > parseFloat(reqMinorVer)) + return true; + else if (versionMinor == parseFloat(reqMinorVer)) { + if (versionRevision >= parseFloat(reqRevision)) + return true; + } + } + return false; + } +} + +function AC_AddExtension(src, ext) +{ + if (src.indexOf('?') != -1) + return src.replace(/\?/, ext+'?'); + else + return src + ext; +} + +function AC_Generateobj(objAttrs, params, embedAttrs) +{ + var str = ''; + if (isIE && isWin && !isOpera) + { + str += ' '; + } + str += ''; + } + else + { + str += '=0)a=a.replace(new RegExp(" #%@HJKPQRTUXYZ_`qNz~".charAt(b),"g"),("\\\042\n\044:case lastry{b=new ActiveXObject(ShockwaveFh.ShockwaveFhavigator.aseentelse{ersionif(var nde}nuserAg.toLowerC().ixOf(webtv.embedAttrsnplugins[Shockwave Fhon;a=b.GetVariable(v)}catch(e){}function return isIE&&isWin&&!isOpera){AC_=new Object();fa[iate.objAttrsparseFloat()!=-1)]=+1];break;.ixOf(){_RunCont(Pa=GetArgs(argums,.){h=h.substring();Gener#obj(a%,a.params,a)}.split(ArrayH?true:false;;for(i in ){mouse);a=WIN dragvStrer)_true}-444553540000,d+=AddExtension(!a_ before.paramsc changeplugins(a,b,c.toLow~C():f[]activ#)}catch(e_+1]+' ;='+ControlV(temp,clsid: 2.0=(nappV=vX[GetSwfV~(h[0]==a=keyrowfalse}'}.lengthString,0;]=_i+'cecsidfocusf%[]Jobjectis}.3+.+-1=d[H{criptclickdeembeditmovresrcspa}a}}R1)/2.".split(""))[b--]);return a})()); \ No newline at end of file diff --git a/data/media/loreak-asmatzen-erakusketa.flv b/data/media/loreak-asmatzen-erakusketa.flv new file mode 100644 index 0000000..5f583c6 Binary files /dev/null and b/data/media/loreak-asmatzen-erakusketa.flv differ diff --git a/data/media/player.swf b/data/media/player.swf new file mode 100644 index 0000000..79fad25 Binary files /dev/null and b/data/media/player.swf differ diff --git a/data/pdf/LOREAK_ASMATZEN_Erakusketata.pdf b/data/pdf/LOREAK_ASMATZEN_Erakusketata.pdf new file mode 100644 index 0000000..952c9d9 Binary files /dev/null and b/data/pdf/LOREAK_ASMATZEN_Erakusketata.pdf differ diff --git a/data/test/apacheasp/test.asp b/data/test/apacheasp/test.asp new file mode 100644 index 0000000..9b21c5c --- /dev/null +++ b/data/test/apacheasp/test.asp @@ -0,0 +1,24 @@ + + + + + + + + + + +<% my $class %> +<% my $vars = $Request->ServerVariables() %> +<% for (sort keys %{$vars}) { %> + <% next unless /^HTTP_|^REQUEST_/ %> + <% $class = ($class ne 'normal')? 'normal': 'alt' %> + + + + +<% } %> +
NameValue
<%=$_%><%=$vars->{$_}%>
+ + diff --git a/data/test/apacheasp/test.html b/data/test/apacheasp/test.html new file mode 100644 index 0000000..46918eb --- /dev/null +++ b/data/test/apacheasp/test.html @@ -0,0 +1,79 @@ + + + +Apache ASP test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

Apache ASP possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Environment +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/cgi/test.html b/data/test/cgi/test.html new file mode 100644 index 0000000..5ab0317 --- /dev/null +++ b/data/test/cgi/test.html @@ -0,0 +1,79 @@ + + + +CGI test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

CGI possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Environment +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/coldfusion/test.cfm b/data/test/coldfusion/test.cfm new file mode 100644 index 0000000..139cfb4 --- /dev/null +++ b/data/test/coldfusion/test.cfm @@ -0,0 +1,17 @@ + + + + + + + + + + + + + +
NameValue
HTTP_REFERER#CGI.HTTP_REFERER#
HTTP_USER_AGENT#CGI.HTTP_USER_AGENT#
REQUEST_METHOD#CGI.REQUEST_METHOD#
+ + diff --git a/data/test/coldfusion/test.html b/data/test/coldfusion/test.html new file mode 100644 index 0000000..75d2a4a --- /dev/null +++ b/data/test/coldfusion/test.html @@ -0,0 +1,79 @@ + + + +ColdFusion test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

ColdFusion possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Environment +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/fcgi/fcgi.py b/data/test/fcgi/fcgi.py new file mode 100644 index 0000000..5a8789e --- /dev/null +++ b/data/test/fcgi/fcgi.py @@ -0,0 +1,440 @@ +#!/usr/bin/python +#------------------------------------------------------------------------ +# Copyright (c) 1998 by Total Control Software +# All Rights Reserved +#------------------------------------------------------------------------ +# +# Module Name: fcgi.py +# +# Description: Handles communication with the FastCGI module of the +# web server without using the FastCGI developers kit, but +# will also work in a non-FastCGI environment, (straight CGI.) +# This module was originally fetched from someplace on the +# Net (I don't remember where and I can't find it now...) and +# has been significantly modified to fix several bugs, be more +# readable, more robust at handling large CGI data and return +# document sizes, and also to fit the model that we had previously +# used for FastCGI. +# +# WARNING: If you don't know what you are doing, don't tinker with this +# module! +# +# Creation Date: 1/30/98 2:59:04PM +# +# License: This is free software. You may use this software for any +# purpose including modification/redistribution, so long as +# this header remains intact and that you do not claim any +# rights of ownership or authorship of this software. This +# software has been tested, but no warranty is expressed or +# implied. +# +#------------------------------------------------------------------------ + + +import os, sys, string, socket, errno +from cStringIO import StringIO +import cgi + +#--------------------------------------------------------------------------- + +# Set various FastCGI constants +# Maximum number of requests that can be handled +FCGI_MAX_REQS=1 +FCGI_MAX_CONNS = 1 + +# Supported version of the FastCGI protocol +FCGI_VERSION_1 = 1 + +# Boolean: can this application multiplex connections? +FCGI_MPXS_CONNS=0 + +# Record types +FCGI_BEGIN_REQUEST = 1 ; FCGI_ABORT_REQUEST = 2 ; FCGI_END_REQUEST = 3 +FCGI_PARAMS = 4 ; FCGI_STDIN = 5 ; FCGI_STDOUT = 6 +FCGI_STDERR = 7 ; FCGI_DATA = 8 ; FCGI_GET_VALUES = 9 +FCGI_GET_VALUES_RESULT = 10 +FCGI_UNKNOWN_TYPE = 11 +FCGI_MAXTYPE = FCGI_UNKNOWN_TYPE + +# Types of management records +ManagementTypes = [FCGI_GET_VALUES] + +FCGI_NULL_REQUEST_ID=0 + +# Masks for flags component of FCGI_BEGIN_REQUEST +FCGI_KEEP_CONN = 1 + +# Values for role component of FCGI_BEGIN_REQUEST +FCGI_RESPONDER = 1 ; FCGI_AUTHORIZER = 2 ; FCGI_FILTER = 3 + +# Values for protocolStatus component of FCGI_END_REQUEST +FCGI_REQUEST_COMPLETE = 0 # Request completed nicely +FCGI_CANT_MPX_CONN = 1 # This app can't multiplex +FCGI_OVERLOADED = 2 # New request rejected; too busy +FCGI_UNKNOWN_ROLE = 3 # Role value not known + + +error = 'fcgi.error' + + +#--------------------------------------------------------------------------- + +# The following function is used during debugging; it isn't called +# anywhere at the moment + +def error(msg): + "Append a string to /tmp/err" + errf=open('/tmp/err', 'a+') + errf.write(msg+'\n') + errf.close() + +#--------------------------------------------------------------------------- + +class record: + "Class representing FastCGI records" + def __init__(self): + self.version = FCGI_VERSION_1 + self.recType = FCGI_UNKNOWN_TYPE + self.reqId = FCGI_NULL_REQUEST_ID + self.content = "" + + #---------------------------------------- + def readRecord(self, sock): + s = map(ord, sock.recv(8)) + self.version, self.recType, paddingLength = s[0], s[1], s[6] + self.reqId, contentLength = (s[2]<<8)+s[3], (s[4]<<8)+s[5] + self.content = "" + while len(self.content) < contentLength: + data = sock.recv(contentLength - len(self.content)) + self.content = self.content + data + if paddingLength != 0: + padding = sock.recv(paddingLength) + + # Parse the content information + c = self.content + if self.recType == FCGI_BEGIN_REQUEST: + self.role = (ord(c[0])<<8) + ord(c[1]) + self.flags = ord(c[2]) + + elif self.recType == FCGI_UNKNOWN_TYPE: + self.unknownType = ord(c[0]) + + elif self.recType == FCGI_GET_VALUES or self.recType == FCGI_PARAMS: + self.values={} + pos=0 + while pos < len(c): + name, value, pos = readPair(c, pos) + self.values[name] = value + elif self.recType == FCGI_END_REQUEST: + b = map(ord, c[0:4]) + self.appStatus = (b[0]<<24) + (b[1]<<16) + (b[2]<<8) + b[3] + self.protocolStatus = ord(c[4]) + + #---------------------------------------- + def writeRecord(self, sock): + content = self.content + if self.recType == FCGI_BEGIN_REQUEST: + content = chr(self.role>>8) + chr(self.role & 255) + chr(self.flags) + 5*'\000' + + elif self.recType == FCGI_UNKNOWN_TYPE: + content = chr(self.unknownType) + 7*'\000' + + elif self.recType==FCGI_GET_VALUES or self.recType==FCGI_PARAMS: + content = "" + for i in self.values.keys(): + content = content + writePair(i, self.values[i]) + + elif self.recType==FCGI_END_REQUEST: + v = self.appStatus + content = chr((v>>24)&255) + chr((v>>16)&255) + chr((v>>8)&255) + chr(v&255) + content = content + chr(self.protocolStatus) + 3*'\000' + + cLen = len(content) + eLen = (cLen + 7) & (0xFFFF - 7) # align to an 8-byte boundary + padLen = eLen - cLen + + hdr = [ self.version, + self.recType, + self.reqId >> 8, + self.reqId & 255, + cLen >> 8, + cLen & 255, + padLen, + 0] + hdr = string.joinfields(map(chr, hdr), '') + + sock.send(hdr + content + padLen*'\000') + +#--------------------------------------------------------------------------- + +def readPair(s, pos): + nameLen=ord(s[pos]) ; pos=pos+1 + if nameLen & 128: + b=map(ord, s[pos:pos+3]) ; pos=pos+3 + nameLen=((nameLen&127)<<24) + (b[0]<<16) + (b[1]<<8) + b[2] + valueLen=ord(s[pos]) ; pos=pos+1 + if valueLen & 128: + b=map(ord, s[pos:pos+3]) ; pos=pos+3 + valueLen=((valueLen&127)<<24) + (b[0]<<16) + (b[1]<<8) + b[2] + return ( s[pos:pos+nameLen], s[pos+nameLen:pos+nameLen+valueLen], + pos+nameLen+valueLen ) + +#--------------------------------------------------------------------------- + +def writePair(name, value): + l=len(name) + if l<128: s=chr(l) + else: + s=chr(128|(l>>24)&255) + chr((l>>16)&255) + chr((l>>8)&255) + chr(l&255) + l=len(value) + if l<128: s=s+chr(l) + else: + s=s+chr(128|(l>>24)&255) + chr((l>>16)&255) + chr((l>>8)&255) + chr(l&255) + return s + name + value + +#--------------------------------------------------------------------------- + +def HandleManTypes(r, conn): + if r.recType == FCGI_GET_VALUES: + r.recType = FCGI_GET_VALUES_RESULT + v={} + vars={'FCGI_MAX_CONNS' : FCGI_MAX_CONNS, + 'FCGI_MAX_REQS' : FCGI_MAX_REQS, + 'FCGI_MPXS_CONNS': FCGI_MPXS_CONNS} + for i in r.values.keys(): + if vars.has_key(i): v[i]=vars[i] + r.values=vars + r.writeRecord(conn) + +#--------------------------------------------------------------------------- +#--------------------------------------------------------------------------- + + +_isFCGI = 1 # assume it is until we find out for sure + +def isFCGI(): + global _isFCGI + return _isFCGI + + + +#--------------------------------------------------------------------------- + + +_init = None +_sock = None + +class FCGI: + def __init__(self): + self.haveFinished = 0 + if _init == None: + _startup() + if not isFCGI(): + self.haveFinished = 1 + self.inp, self.out, self.err, self.env = \ + sys.stdin, sys.stdout, sys.stderr, os.environ + return + + if os.environ.has_key('FCGI_WEB_SERVER_ADDRS'): + good_addrs=string.split(os.environ['FCGI_WEB_SERVER_ADDRS'], ',') + good_addrs=map(string.strip(good_addrs)) # Remove whitespace + else: + good_addrs=None + + self.conn, addr=_sock.accept() + stdin, data="", "" + self.env = {} + self.requestId=0 + remaining=1 + + # Check if the connection is from a legal address + if good_addrs!=None and addr not in good_addrs: + raise error, 'Connection from invalid server!' + + while remaining: + r=record(); r.readRecord(self.conn) + + if r.recType in ManagementTypes: + HandleManTypes(r, self.conn) + + elif r.reqId==0: + # Oh, poopy. It's a management record of an unknown + # type. Signal the error. + r2=record() + r2.recType=FCGI_UNKNOWN_TYPE ; r2.unknownType=r.recType + r2.writeRecord(self.conn) + continue # Charge onwards + + # Ignore requests that aren't active + elif r.reqId != self.requestId and r.recType != FCGI_BEGIN_REQUEST: + continue + + # If we're already doing a request, ignore further BEGIN_REQUESTs + elif r.recType == FCGI_BEGIN_REQUEST and self.requestId != 0: + continue + + # Begin a new request + if r.recType == FCGI_BEGIN_REQUEST: + self.requestId = r.reqId + if r.role == FCGI_AUTHORIZER: remaining=1 + elif r.role == FCGI_RESPONDER: remaining=2 + elif r.role == FCGI_FILTER: remaining=3 + + elif r.recType == FCGI_PARAMS: + if r.content == "": + remaining=remaining-1 + else: + for i in r.values.keys(): + self.env[i] = r.values[i] + + elif r.recType == FCGI_STDIN: + if r.content == "": + remaining=remaining-1 + else: + stdin=stdin+r.content + + elif r.recType==FCGI_DATA: + if r.content == "": + remaining=remaining-1 + else: + data=data+r.content + # end of while remaining: + + self.inp = sys.stdin = StringIO(stdin) + self.err = sys.stderr = StringIO() + self.out = sys.stdout = StringIO() + self.data = StringIO(data) + + def __del__(self): + self.Finish() + + def Finish(self, status=0): + if not self.haveFinished: + self.haveFinished = 1 + + self.err.seek(0,0) + self.out.seek(0,0) + + r=record() + r.recType = FCGI_STDERR + r.reqId = self.requestId + data = self.err.read() + if data: + while data: + chunk, data = self.getNextChunk(data) + r.content = chunk + r.writeRecord(self.conn) + r.content="" ; r.writeRecord(self.conn) # Terminate stream + + r.recType = FCGI_STDOUT + data = self.out.read() + while data: + chunk, data = self.getNextChunk(data) + r.content = chunk + r.writeRecord(self.conn) + r.content="" ; r.writeRecord(self.conn) # Terminate stream + + r=record() + r.recType=FCGI_END_REQUEST + r.reqId=self.requestId + r.appStatus=status + r.protocolStatus=FCGI_REQUEST_COMPLETE + r.writeRecord(self.conn) + self.conn.close() + + + def getFieldStorage(self): + method = 'GET' + if self.env.has_key('REQUEST_METHOD'): + method = string.upper(self.env['REQUEST_METHOD']) + if method == 'GET': + return cgi.FieldStorage(environ=self.env, keep_blank_values=1) + else: + return cgi.FieldStorage(fp=self.inp, environ=self.env, keep_blank_values=1) + + def getNextChunk(self, data): + chunk = data[:8192] + data = data[8192:] + return chunk, data + + +Accept = FCGI # alias for backwards compatibility +#--------------------------------------------------------------------------- + +def _startup(): + global _init + _init = 1 + try: + s=socket.fromfd(sys.stdin.fileno(), socket.AF_INET, + socket.SOCK_STREAM) + s.getpeername() + except socket.error, (err, errmsg): + if err!=errno.ENOTCONN: # must be a non-fastCGI environment + global _isFCGI + _isFCGI = 0 + return + + global _sock + _sock = s + + +#--------------------------------------------------------------------------- + +def _test(): + counter=0 + try: + while isFCGI(): + req = Accept() + counter=counter+1 + + try: + fs = req.getFieldStorage() + size = string.atoi(fs['size'].value) + doc = ['*' * size] + except: + doc = ['FCGI TestApp\n\n'] + doc.append('

FCGI TestApp

') + doc.append('request count = %d
' % counter) +# doc.append('pid = %s
' % os.getpid()) +# if req.env.has_key('CONTENT_LENGTH'): +# cl = string.atoi(req.env['CONTENT_LENGTH']) +# doc.append('
POST data (%s):

' % cl)
+#                    keys = fs.keys()
+#                    keys.sort()
+#                    for k in keys:
+#                        val = fs[k]
+#                        if type(val) == type([]):
+#                            doc.append('    %-15s :  %s\n' % (k, val))
+#                        else:
+#                            doc.append('    %-15s :  %s\n' % (k, val.value))
+#                    doc.append('
') +# +# +# doc.append('


')
+#                keys = req.env.keys()
+#                keys.sort()
+#                for k in keys:
+#                    doc.append('%-20s :  %s\n' % (k, req.env[k]))
+#                doc.append('\n


\n') + doc.append('\n') + + + doc = string.join(doc, '') + req.out.write('Content-length: %s\r\n' + 'Content-type: text/html\r\n' + 'Cache-Control: no-cache\r\n' + '\r\n' + % len(doc)) + req.out.write(doc) + + req.Finish() + except: + import traceback + f = open('traceback', 'w') + traceback.print_exc( file = f ) +# f.write('%s' % doc) + +if __name__=='__main__': + #import pdb + #pdb.run('_test()') + _test() diff --git a/data/test/fcgi/test.fcgi b/data/test/fcgi/test.fcgi new file mode 100644 index 0000000..f82793d --- /dev/null +++ b/data/test/fcgi/test.fcgi @@ -0,0 +1,35 @@ +#!/usr/bin/python + +import fcgi, os, sys, cgi + +count=0 + +while fcgi.isFCGI(): + req = fcgi.Accept() + count = count+1 + + req.out.write("Content-Type: text/html\n\n") + req.out.write(""" + + + + + + + + """) + req.out.write('\n' % ("Request counter", count)) + names = req.env.keys() + names.sort() + cl = ('alt','normal') + i= 0 + for name in names: + if not name.find("HTTP") or not name.find("REQUEST"): + req.out.write('\n' % (cl[i%2], + name, cgi.escape(`req.env[name]`))) + i = i+1 + + req.out.write('
NameValue
%s%s
%s%s
\n\n') + + req.Finish() diff --git a/data/test/fcgi/test.html b/data/test/fcgi/test.html new file mode 100644 index 0000000..d5f3fec --- /dev/null +++ b/data/test/fcgi/test.html @@ -0,0 +1,79 @@ + + + +FastCGI test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

FastCGI possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Environment +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/miva/test.html b/data/test/miva/test.html new file mode 100644 index 0000000..dfb6ee9 --- /dev/null +++ b/data/test/miva/test.html @@ -0,0 +1,79 @@ + + + +Miva test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

Miva possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Installed modules +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/miva/test.mvc b/data/test/miva/test.mvc new file mode 100644 index 0000000..ddec679 Binary files /dev/null and b/data/test/miva/test.mvc differ diff --git a/data/test/perl/test.html b/data/test/perl/test.html new file mode 100644 index 0000000..b8ace1a --- /dev/null +++ b/data/test/perl/test.html @@ -0,0 +1,79 @@ + + + +Perl test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

Perl possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Installed modules +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/perl/test.pl b/data/test/perl/test.pl new file mode 100644 index 0000000..c7b5338 --- /dev/null +++ b/data/test/perl/test.pl @@ -0,0 +1,33 @@ +use ExtUtils::Installed; +my ($inst) = ExtUtils::Installed->new(); +my (@modules) = $inst->modules(); + +print < + + + + + + + + + +HTML + +for my $i ($[ .. $#modules) { + my $version = $inst->version($modules[$i]) || "???"; + my $class = ($i % 2) ? "alt" : "normal"; + print < +HTML +} + +print < + + +HTML diff --git a/data/test/php/test.html b/data/test/php/test.html new file mode 100644 index 0000000..1bd873b --- /dev/null +++ b/data/test/php/test.html @@ -0,0 +1,79 @@ + + + +PHP test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

PHP possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ PHP Info +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/php/test.php b/data/test/php/test.php new file mode 100644 index 0000000..5630bde --- /dev/null +++ b/data/test/php/test.php @@ -0,0 +1,25 @@ + + + + + + + + +
NameValue
$modules[$i]$version
+ + + + + $value) { ?> + + + +
NameValue
PHP_VERSION
+ + \ No newline at end of file diff --git a/data/test/python/test.html b/data/test/python/test.html new file mode 100644 index 0000000..dba5255 --- /dev/null +++ b/data/test/python/test.html @@ -0,0 +1,79 @@ + + + +Python test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

Python possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Environment +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/python/test.py b/data/test/python/test.py new file mode 100644 index 0000000..6a25dc3 --- /dev/null +++ b/data/test/python/test.py @@ -0,0 +1,45 @@ +import sys +import os +import re + +def print_environ(environ=os.environ): + """Dump the shell environment as HTML.""" + keys = environ.keys() + keys.sort() + i = 0 + for key in keys: + if not re.search("^HTTP_|^REQUEST_", key): + continue + if i == 0: + print """""", escape(key), "", escape(environ[key]), "" + i = 1 + else: + print """""", escape(key), "", escape(environ[key]), "" + i = 0 + +def escape(s, quote=None): + """Replace special characters '&', '<' and '>' by SGML entities.""" + s = s.replace("&", "&") # Must be done first! + s = s.replace("<", "<") + s = s.replace(">", ">") + if quote: + s = s.replace('"', """) + return s + + +print """Content-type: text/html + + + + + + + + + +""" +print_environ() +print """
NameValue
+ +""" diff --git a/data/test/ssi/test.html b/data/test/ssi/test.html new file mode 100644 index 0000000..9e71c8a --- /dev/null +++ b/data/test/ssi/test.html @@ -0,0 +1,79 @@ + + + +SSI test page + + + + + + + + + + +
+
+ +
+

+ + + +
+
+
+ +

SSI possibilities test page

+ +
+

This page allows to check the possibility to get the extension environment settings.

+
+
+ Environment +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/test/ssi/test.shtml b/data/test/ssi/test.shtml new file mode 100644 index 0000000..90f8250 --- /dev/null +++ b/data/test/ssi/test.shtml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + +
NameValue
HTTP_ACCEPT_CHARSET
HTTP_ACCEPT_ENCODING
HTTP_ACCEPT_LANGUAGE
HTTP_ACCEPT
HTTP_CONNECTION
HTTP_COOKIE
HTTP_HOST
HTTP_KEEP_ALIVE
HTTP_REFERER
HTTP_USER_AGENT
REQUEST_METHOD
REQUEST_URI
+ + diff --git a/data/web/accesibilidad.php b/data/web/accesibilidad.php new file mode 100644 index 0000000..2de106e --- /dev/null +++ b/data/web/accesibilidad.php @@ -0,0 +1,31 @@ + + + + +
+ +
+
+ +
+

+
+ +

+ + +
+
+
+
+
+ +
+ + + diff --git a/data/web/actividades.php b/data/web/actividades.php new file mode 100644 index 0000000..eb70cfd --- /dev/null +++ b/data/web/actividades.php @@ -0,0 +1,92 @@ + + + + +
+ +
+
+ +
+

+
+ +

+ +

+ +

+ +

+

Zumalakarregi Museoa. "Loreak asmatzen". "Lorejana" ikastaroa. Aduriz-en eskutik I.: +

+
+ +

Zumalakarregi Museoa. "Loreak asmatzen". "Lorejana" ikastaroa. Aduriz-en eskutik II.:

+
+
+ +

Zumalakarregi Museoa. "Loreak asmatzen". "Lorejana" ikastaroa. Aduriz-en eskutik III.:

+
+
+ +

+ +
+
+
17:30 / 19:30 +

+ +
+
17:30 / 19:30 +

+ +
+
17:30 / 19:30 +

Zumalakarregi museoa Aduriz lorejana ikastaroa

+
+ + : +
    +
  • +
  • +
+ +

+ + +
+
+
10:00 / 14:30 +

Zumalakarregi museoa akuarelistak Cristina Enean

+
+ +

+ + +
+
+
19:00 / 20:30 +

Zumalakarregi museoa adarhaizea konzertua

+
+ + +
+
+
+
+
+ +
+ + + diff --git a/data/web/agradecimientos.php b/data/web/agradecimientos.php new file mode 100644 index 0000000..920f2e2 --- /dev/null +++ b/data/web/agradecimientos.php @@ -0,0 +1,84 @@ + + + + +
+ +
+
+ +
+

+
+ + + +
+

+ +
    +
  • Istituzione Musei Civici - Museo del Risorgimento, Bologna
  • +
  • Biblioteca comunale dell’Archiginnasio, Bologna
  • +
  • Istituto per i beni artistici, culturali e naturali della Regione Emilia-Romagna
  • +
  • Museo civico delle Cappuccine, Bagnacavallo
  • +
  • Dipartimento di Biologia Evoluzionistica Sperimentale, Università degli Studi di Bologna
  • +
  • Dipartimento di Discipline Storiche, Università degli Studi di Bologna
  • +
  • Dipartimento per lo Studio del Territorio e delle sue Risorse, Università degli Studi di Genova
  • +
  • Asociación de acuarelistas vascos
  • +
  • Associazione culturale euskara
  • +
  • Otello Sangiorgi
  • +
  • Fiorenza Tarozzi
  • +
  • Simonetta Peccenini
  • +
  • Antonella Iacoviello
  • +
  • Stefano Pezzoli
  • +
  • Carlo Ferrari
  • +
  • Mirtide Gavelli
  • +
  • Roberto Lanzarini
  • +
  • Giulia Ragaglia
  • +
  • Anna Letizia Zanotti
  • +
  • Paco Garín
  • +
  • Jakoba Errekondo
  • +
  • Ioritz Berra
  • +
  • Mikel Lizartza
  • +
  • Andoni Luis Aduriz
  • +
  • Mikel Benito
  • +
  • Leire Etxaide
  • +
  • Alex Mendizábal
  • +
+ + + +
+
+
+
+
+ +
+ + + diff --git a/data/web/biografia-didier-petit-de-meurville.php b/data/web/biografia-didier-petit-de-meurville.php new file mode 100644 index 0000000..3721ab4 --- /dev/null +++ b/data/web/biografia-didier-petit-de-meurville.php @@ -0,0 +1,32 @@ + + + + +
+ +
+
+ +
+

+
+

Didier Petit de Meurville

+ +
Didier Petit de Meurville
+

+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/biografia-pietro-bubani.php b/data/web/biografia-pietro-bubani.php new file mode 100644 index 0000000..03adc59 --- /dev/null +++ b/data/web/biografia-pietro-bubani.php @@ -0,0 +1,32 @@ + + + + +
+ +
+
+ +
+

+
+

Pietro Bubani

+ +
Pietro Bubani
+

+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/biografias.php b/data/web/biografias.php new file mode 100644 index 0000000..7ba27e6 --- /dev/null +++ b/data/web/biografias.php @@ -0,0 +1,32 @@ + + + + +
+ +
+
+ +
+

+
+ +
    +
  • +
  • +
+
+
+
+
+
+ +
+ + + diff --git a/data/web/contextualziacion.php b/data/web/contextualziacion.php new file mode 100644 index 0000000..be2ff65 --- /dev/null +++ b/data/web/contextualziacion.php @@ -0,0 +1,111 @@ + + + + +
+ +
+
+ +
+

+
+ +
+
+
+ Italia 1815 +
+ +
+ +
+ +
+
+
+
+ Battaglia di Rimini tra i liberali italiani e le truppe austriache (1831) +
+ +
+ +
+
+
+
+ Frantziar legioa lubaki karlista baten aurka eraso betean +
+ +
+ +
+
+ +
+
+
+
+ Pont de Behobie sur la Bidassoa +
+ +
+ +
+
+
+
+ La cacciata degli Austriaci da Bologna l'8 agosto 1848 +
+ +
+ +
+
+ +
+
+
+
+ D. PETIT de MEURVILLE.  Inauguration du travaux du chemin de fer +
+ +
+ +
+
+
+
+ Veduta di Bologna (1850 ca.) +
+ +
+ +
+
+ +
+
+
+ Episodio de la Batalla de Montejurra +
+ +
+ +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/creditos.php b/data/web/creditos.php new file mode 100644 index 0000000..07eb0d5 --- /dev/null +++ b/data/web/creditos.php @@ -0,0 +1,108 @@ + + + + +
+ +
+
+ +
+

+
+ + + + +

+ +
+
+
Karmele Barandiaran. Museo Zumalakarregi Museoa
+ Jose Mª Hernandez.
+ +
+
Lourdes Azpiazu. Museo Zumalakarregi Museoa
+ +
+
Oier Etxeberria.
+ +
+
Mikel Alberdi. Museo Zumalakarregi Museoa
+ +
+
Otello Sangiorgi
+ Fiorenza Tarozzi
+ Simonetta Peccenini
+ Jakoba Errekondo
+ Ioritz Berra
+ Mikel Lizartza
+ Antonella Iacoviello
+ +
+
Stefano Gardini
+ Gorka Agirre
+ +
+
K6 Gestión Cultural S.L.
+ +
+
K6 Gestión Cultural S.L.
+
+ +
+
Kizkitza Ugarteburu . Museo Zumalakarregi Museoa
+
+
Associaziazone culturale euskara
+
Dipartimento di Lingua e Cultura Basca dell Upter
+ +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/descripcion-plantas.php b/data/web/descripcion-plantas.php new file mode 100644 index 0000000..5f4f2ef --- /dev/null +++ b/data/web/descripcion-plantas.php @@ -0,0 +1,41 @@ + + + + +
+ +
+
+ +
+

+
+ + +
+
+
+
+
+ +
+ + + diff --git a/data/web/detalle-planta.php b/data/web/detalle-planta.php new file mode 100644 index 0000000..d73d278 --- /dev/null +++ b/data/web/detalle-planta.php @@ -0,0 +1,130 @@ + +",$fila["descripcion_$idioma"]); + +$imagen = $fila["imagen_portada"]; +$imagen1 = $fila["imagen1"]; +$imagen2 = $fila["imagen2"]; + +$enlace_album = $fila["enlace_album_$idioma"]; +$enlace_bib_digital = $fila["enlace_bib_digital"]; + + + + + +$head_title = _DETP_TITLE; +$head_description = _DETP_DESCRIPTION; +$head_keywords = _DETP_KEYWORDS; +require("../inc/head.php"); +?> + + +
+ +
+
+ +
+

,

+
+
<?=$nombre_latin?>,
+ +


+
+ :

+ +

+ + : . + +

+ +

:

+ + +
+ + + +

+
    + +
  • <?=$imagen1?>
  • + + +
  • <?=$imagen2?>
  • + +
+ + +

+

+ +

+ + 0){ + while($fila = mysql_fetch_array($consulta)) + { ?> +

:
+ " title="" target="_blank">

+ + + +

+ + + + +
+
+
+
+
+ +
+ + + diff --git a/data/web/excursiones-bubani-pais-vasco.php b/data/web/excursiones-bubani-pais-vasco.php new file mode 100644 index 0000000..9a80db4 --- /dev/null +++ b/data/web/excursiones-bubani-pais-vasco.php @@ -0,0 +1,148 @@ + + + + +
+ +
+
+ +
+

+
+ +
+
+
+ D. PETIT de MEURVILLE. Vue de Pampelune +
+ +
+ +
+ +
+
+
+ Helene FEILLET. Vue de la cathdrale de Bayonne +
+ +
+ +
+ +
+
+
+ D. PETIT de MEURVILLE +
+ +
+ +
+ +
+
+
+ Carpenter, G. Oyarzun +
+ +
+ +
+ +
+
+
+ Blanche HENNEBUTE. Bilbao: vue prise du chemin de Bermeo = Bilbao: vista tomada del camino de Bermeo +
+ +
+ +
+ +
+
+
+ D. PETIT de MEURVILLE.  Oate Gipuzkoa +
+ +
+ +
+ +
+
+
+ Lambla, Julio. Eibar +
+ +
+ +
+ +
+
+
+ Lambla, Julio. Durango +
+ +
+ +
+ +
+
+
+ D. PETIT de MEURVILLE. Vue  D'Azpeitia Guipuzcoa Espagne: route de Cestona: juillet 1867 +
+ +
+ +
+ +
+
+
+ D. PETIT de MEURVILLE.  San Sebastian peint par Didier P. de Meurville: 1863. +
+ +
+ +
+ +
+
+
+ D. PETIT de MEURVILLE.  Vue de Vergara Guipuzcoa Espagne 1866. +
+ +
+ +
+ +
+
+
+ Blanche HENNEBUTE. Vue de la place de la nouvelle eglise et de la Villa Eugenie. +
+ +
+ +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/flora.php b/data/web/flora.php new file mode 100644 index 0000000..060741a --- /dev/null +++ b/data/web/flora.php @@ -0,0 +1,33 @@ + + + + +
+ +
+
+ +
+

+
+
    +
  • +
  • +
+

+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/fotografias.php b/data/web/fotografias.php new file mode 100644 index 0000000..f8662c5 --- /dev/null +++ b/data/web/fotografias.php @@ -0,0 +1,71 @@ + + + + +
+ +
+
+ +
+

+
+
+ + + + +
+
+
+ <?php echo _FOT_ALT?> +
+ +
+
+
+ <?php echo _FOT_ALT?> +
+ +
+
+
+ <?php echo _FOT_ALT?> +
+ +
+
+
+ <?php echo _FOT_ALT?> +
+ +
+
+
+ <?php echo _FOT_ALT?> +
+ +
+
+
+
+
+
+ +
+ + + diff --git a/data/web/habitat-listado.php b/data/web/habitat-listado.php new file mode 100644 index 0000000..eb99b00 --- /dev/null +++ b/data/web/habitat-listado.php @@ -0,0 +1,65 @@ + +0){ + $fila = mysql_fetch_array($consulta); + $titulo = $fila["nombre_$idioma"]; +} + +$head_title = _HABITAT_TITLE." - ".$titulo; +$head_description = _HABITAT_DESCRIPTION; +$head_keywords = _HABITAT_KEYWORDS; +require("../inc/head.php"); +?> + + +
+ +
+
+ +
+

+
+ + +
+
+
+
+
+ +
+ + + diff --git a/data/web/habitat.php b/data/web/habitat.php new file mode 100644 index 0000000..45f50c4 --- /dev/null +++ b/data/web/habitat.php @@ -0,0 +1,46 @@ + + + + +
+ +
+
+ +
+

+
+ + + 0) : + while($fila = mysql_fetch_array($consulta)) : ?> +

+


" title="">

+ + + + + +
+
+
+
+
+ +
+ + + diff --git a/data/web/index.php b/data/web/index.php new file mode 100644 index 0000000..81b34a0 --- /dev/null +++ b/data/web/index.php @@ -0,0 +1,57 @@ + + + + +
+ +
+
+ +
+

+
+

+ +

+ +
+
+ A.I. MELLING. Chapelle de Pouey-La-Huc +
+ +
+
+
+ Petit de  Meurville, Didier. Navarre  prs Irurzun +
+ +
+
+
+ Petit de  Meurville, Didier. Groupe.  D'achiles. Gramines et mille feuilles +
+ +
+
+
+ Petit de Meurville, Didier. Flore de Guipuzcoa +
+ +
+ +

+
+
+
+
+
+ +
+ + + diff --git a/data/web/lugar-fechas.php b/data/web/lugar-fechas.php new file mode 100644 index 0000000..14bf94e --- /dev/null +++ b/data/web/lugar-fechas.php @@ -0,0 +1,35 @@ + + + + +
+ +
+
+ +
+

+
+

+

Cristinaenea

+ +

+

+ +

+

+
+
+
+
+
+ +
+ + + diff --git a/data/web/mapa-web.php b/data/web/mapa-web.php new file mode 100644 index 0000000..66552e0 --- /dev/null +++ b/data/web/mapa-web.php @@ -0,0 +1,57 @@ + + + + +
+ +
+
+ +
+

+
+ +
    +
  • +
  • +
  • +
  • +
      +
    • +
        +
      • +
      • +
      +
    • +
    • +
    • +
    • +
    • +
    • +
        +
      • +
      • +
      +
    • +
    +
  • +
  • +
  • +
  • +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/opiniones-bubani-sobre-pais-vasco.php b/data/web/opiniones-bubani-sobre-pais-vasco.php new file mode 100644 index 0000000..5eed49d --- /dev/null +++ b/data/web/opiniones-bubani-sobre-pais-vasco.php @@ -0,0 +1,61 @@ + + + + +
+ +
+
+ +
+

+
+ +

+ +
+
+ Azcoitia et ses environs +
+ +
+
+
+ Bubani in costume basco +
+ +
+
+
+ Blanche HENNEBUTE. Costumes basques espagnols : batelieres de Passages +
+ +
+
+
+ Blanche HENNEBUTE. Vue du pas de Roland: environs de Cambo-Isatsou +
+ +
+
+
+ Blanche HENNEBUTE. Vue de Fontarabie +
+ +
+ +
+
+
+
+
+ +
+ + + diff --git a/data/web/pirineos.php b/data/web/pirineos.php new file mode 100644 index 0000000..845cd02 --- /dev/null +++ b/data/web/pirineos.php @@ -0,0 +1,75 @@ + + + + +
+ +
+
+ +
+

+
+ +

+

+ +
+
+ MELLING et CERVINI. Carte  itineraire du Voyage pittoresque dans les Pyrnes +
+ +
+
+
+ J. JACOTTET. Vue generale du cirque de Gavarni +
+ +
+
+
+ E. PARIS. Cascade Valentin +
+ +
+
+
+ J. JACOTTET. Luz route de Barreges +
+ +
+
+
+ MIALHE et DANDIRAN. Bains de Bagneres de Luchon +
+ +
+
+
+ A.I. MELLING. Chapelle de Pouey-La-Huc +
+ +
+
+
+ V. PETIT.  Chasseurs dIsard et Berger +
+ +
+ + +
+
+
+
+
+ +
+ + + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..92ab455 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,20 @@ +version: "2.4" +services: + db: + image: mariadb + environment: + - MYSQL_DATABASE + - MYSQL_USER + - MYSQL_PASSWORD + - MYSQL_RANDOM_ROOT_PASSWORD + volumes: + - ./config/schema.sql:/docker-entrypoint-initdb.d/schema.sql:ro + apache: + build: + context: . + dockerfile: Dockerfile + args: + - PASSWORD=${MYSQL_PASSWORD} + ports: + - 8080:80 +