iNaturalist ist eine Online-Plattform für Naturbeobachtungen, auf der Nutzer weltweit Funde von Pflanzen, Tieren und anderen Organismen dokumentieren und teilen können.
Das Modul „iNaturalist-Beobachtungen” bettet die neuesten Beobachtungen eines bestimmten Benutzers in eine Joomla! v4/5 basierte Website ein. Die angezeigten Beobachtungen können optional nach Taxongruppen wie Pflanzen, Pilze & Flechten, Tiere oder ein benutzerdefiniertes Taxon (ID erforderlich) gefiltert werden. Das Modul verwendet server-seitiges Caching, um API-Aufrufe zu reduzieren, ist vollständig DSGVO-konform und unterstützt mehrere Sprachen.
🌿 Features
- Zeigt die neuesten Beobachtungen eines bestimmten iNaturalist-Benutzers an
- Optional Filterung nach Organismengruppe oder benutzerdefinierter Taxon-ID
- Konfigurierbare Anzahl von Beobachtungen
- Serverseitige Zwischenspeicherung (konfigurierbare Dauer)
- Vollständig konform zur Datenschutz-Grundverordnung (DSGVO)
- Mehrsprachig (Deutsch und Englisch)
- Automatische Sprachauswahl basierend auf der Sprache des Besuchers der Website (Artnamen, Monatsnamen in Datumsangaben)
- GPL v3 lizenziert
📦 Installation
- Lade das neueste ZIP-Archiv aus dem Releases-Bereich meines Github-Repositorys herunter.
- Installiere es über das Joomla-Backend (Administration) unter System > Installieren > Erweiterungen.
- Beachte die Hinweise im Abschnitt „Schutz von zwischengespeicherten Inhalten” und folge den Anweisungen, falls nötig.
- Gehe im Joomla! Backend zu Content > Site Modules, finde iNaturalist-Beobachtungen, und veröffentliche es in einer geeigneten Modulposition.
- Konfiguriere die Moduloptionen, insbesondere iNaturalist-Benutzername, Anzahl der Beobachtungen und Cache-Dauer (in Stunden).
- Lege auf der Registerkarte „Menüzuordnung” fest, unter welchen Menüpunkten und deren Seiten das Modul angezeigt werden soll.
⚙️ Moduloptionen
Parameter | Beschreibung | Standard |
---|---|---|
iNaturalist-Benutzername * | Benutzername des iNaturalist-Kontos, dessen Beobachtungen angezeigt werden sollen | <leer> |
Taxon-Filter | Optional: Organismengruppe oder benutzerdefinierte Taxon-ID zum Filtern der Beobachtungen | Alle Lebewesen |
iNaturalist-Taxon-ID | iNaturalist-Taxon-ID zum Filtern der Beobachtungen (nur bei „Benutzerdefiniert“ in obiger Auswahl nötig) | <leer> |
Anzahl der Beobachtungen * | Anzahl der neuesten Beobachtungen, die angezeigt werden sollen | 5 |
Cache-Dauer (in Stunden) * | Dauer der Zwischenspeicherung von Beobachtungsdaten, bevor eine neue Abfrage erfolgt | 24 |
* Sternchen kennzeichnen Pflichtfelder
🔍 Ermitteln einer Taxon-ID
Öffne die Seite mit den Beobachtungen auf iNaturalist.org und gib den Namen des gewünschten Taxons in das Suchfeld ein. Dies kann entweder der wissenschaftliche Name oder der Name in einer Landessprache sein; oft reichen Fragmente aus, damit das gesuchte Taxon in der Vorschlagsliste erscheint.
Klicke/tippe nun auf das gewünschte Taxon und suche in der Adresszeile des Webbrowsers nach dem Parameter „taxon_id“. Die dort angegebene Ziffernfolge ist die Taxon-ID, die in der Moduloption „iNaturalist Taxon-ID” für die individuelle Filterung der Beobachtungen hinterlegt werden muss.
🔒 Schutz zwischengespeicherter Inhalte
Während der Installation des Moduls werden die beiden Dateien robots.txt und .htaccess im Cache-Verzeichnis angelegt. Während die robots.txt als höfliche Aufforderung an die Suchmaschinen zu verstehen ist, den gecachten Inhalt nicht zu crawlen und zu indizieren, blockieren Serverregeln (in z. B. .htaccess) den Zugriff.
🤖 robots.txt
Auch wenn der direkte Zugriff auf das Cache-Verzeichnis bereits über die .htaccess-Datei (Apache-Webserver) oder die nginx-Konfigurationsdatei blockiert ist, wird zum zusätzlichen Schutz eine robots.txt-Datei erstellt:
User-agent: * # Die Regel gilt für alle Webcrawler
Disallow: / # Crawler vom Zugriff auf das Verzeichnis abhalten
🪶 .htaccess (Apache Webserver)
Sollte die .htaccess-Datei aufgrund fehlender Berechtigungen nicht automatisch erstellt werden, füge bitte die folgenden Zeilen manuell in die .htaccess-Datei im Cache-Verzeichnis ein:
# Verhindert den direkten Zugriff auf alle Dateien im Cache-Verzeichnis
<Files *>
Order Deny,Allow
Deny from all
</Files># Verhindert die Indizierung und Anzeige von Inhalten durch Suchmaschinen
<IfModule mod_headers.c>
Header set X-Robots-Tag "noindex, nofollow, noarchive, nosnippet"
</IfModule>
🚀 Konfiguration (nginx Webserver)
Der nginx-Webserver unterstützt keine .htaccess-Dateien. Bitte füge die folgenden Regeln in die zentrale Konfigurationsdatei /etc/nginx/nginx.conf ein, um das Cache-Verzeichnis zu schützen:
location /cache/mod_inaturalist_observations/ {
# Verhindert den Zugriff auf das Cache-Verzeichnis
deny all;
# Gibt den HTTP-Fehlercode 403 zurück, wenn versucht wird, auf das Verzeichnis zuzugreifen
return 403;
# Verhindert die Indizierung und Anzeige des Inhalts durch Suchmaschinen
add_header X-Robots-Tag "noindex, nofollow, noarchive, nosnippet";
}
📄Entwurf für Datenschutzerklärungen
iNaturalist
Diese Website enthält Inhalte (z. B. Bilder und Metadaten von beobachteten Organismen) von iNaturalist. Dabei handelt es sich um eine Online-Plattform für Naturbeobachtungen, auf der Nutzer weltweit Funde von Pflanzen, Tieren und anderen Organismen dokumentieren und teilen können. Der Anbieter ist die California Academy of Sciences, 55 Music Concourse Dr, San Francisco, CA 94118, USA.
Die Inhalte werden jedoch nicht direkt von den Servern des Anbieters geladen, sondern zunächst auf unserem eigenen Webserver zwischengespeichert (Caching) und dann von dort ausgeliefert. Dadurch wird verhindert, dass beim Abruf der Inhalte eine direkte Verbindung zu den Servern von iNaturalist aufgebaut wird und z. B. Ihre IP-Adresse übermittelt wird.
Bitte beachten Sie, dass beim Anklicken von verlinkten Beobachtungen oder dem Link zu allen Beobachtungen des Website-Betreibers eine direkte Verbindung zu den iNaturalist-Servern hergestellt wird. Dabei können personenbezogene Daten (wie z. B. Ihre IP-Adresse) vom Anbieter erhoben und verarbeitet werden. Auf diese Datenverarbeitung haben wir keinen Einfluss.
Weitere Informationen zum Datenschutz bei iNaturalist finden Sie hier: https://www.inaturalist.org/pages/privacy.
📜 Lizenz
Dieses Modul unterliegt der GNU General Public License v3.0.
✨ Wie geht es weiter?
Dieses Modul funktioniert wie vorgesehen, aber ich werde es nicht aktiv weiterentwickeln. Ich bin kein professioneller Entwickler und ohne die Hilfe von ChatGPT (OpenAI GPT-4) wäre ich nicht in der Lage gewesen, es zu erstellen.
Wenn Du es nützlich findest und verbessern oder erweitern willst, bist Du herzlich dazu eingeladen, das Repository zu forken. Auch wenn ich keine neuen Funktionen hinzufügen werde, hoffe ich, dass das Modul für die Joomla!- und iNaturalist-Gemeinschaft nützlich ist.
⚖️ Haftungsausschluss für Markenzeichen
Dieses Repository ist nicht mit dem Joomla!-Projekt oder der iNaturalist-Plattform verbunden oder wird von diesen unterstützt.
Es wird weder von Joomla!, Open Source Matters, noch von der California Academy of Sciences (iNaturalist) unterstützt oder verantwortet.