=== LAGATH Papiergewicht ===
Tags: shortcode, papier, gewicht, grammatur, rechner
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1
License: GPLv2
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Berechnet das Gewicht von Papierbogen. Shortcode: [papiergewichtberechnen]

== Description ==

Ein kleiner Rechner fuer den Papierbedarf: Breite, Hoehe, Grammatur und
Anzahl eingeben, das Gewicht steht sofort da - je Bogen und in der Summe.
Gedacht fuer die Frage, was eine Aussendung wiegt, bevor man sie zur Post
bringt.

`[papiergewichtberechnen]`

Gerechnet wird im Browser. Das Formular schickt sich nicht ab, dadurch
laedt die Seite nicht neu, es werden keine Daten uebertragen, und das
Ergebnis erscheint auch auf Seiten, die von einem Cache ausgeliefert
werden.

Das Gesamtgewicht wird auf ganze Gramm aufgerundet - beim Porto ist das die
sichere Richtung. Ab einem Kilogramm steht die Summe zusaetzlich in
Kilogramm daneben. Zahlen werden in der Schreibweise der eingestellten
Sprache ausgegeben, und bei der Eingabe zaehlt Komma wie Punkt.

Mehr macht das Plugin nicht: keine Einstellungsseite, keine Optionen, keine
Datenbanktabellen. Stylesheet und Skript laedt es nur auf Seiten, auf denen
der Shortcode tatsaechlich steht.

== Installation ==

1. Den Ordner `lagath-papiergewicht` nach `wp-content/plugins/` hochladen.
2. Das Plugin im Menue "Plugins" aktivieren.
3. `[papiergewichtberechnen]` an der gewuenschten Stelle einfuegen - im
   Inhalt, in einem Shortcode-Block oder im Theme ueber
   `do_shortcode('[papiergewichtberechnen]')`.

Weitere Schritte sind nicht noetig.

== Frequently Asked Questions ==

= Wie wird gerechnet? =

Breite in Millimetern mal Hoehe in Millimetern mal Grammatur in Gramm pro
Quadratmeter, geteilt durch eine Million. Der Teiler rechnet
Quadratmillimeter in Quadratmeter um. Ein Bogen A4 mit 80 g/m2 wiegt danach
210 x 297 x 80 / 1.000.000 = 4,99 g.

= Kann ich Komma statt Punkt eingeben? =

Ja, beides wird angenommen.

= Funktioniert der Rechner ohne JavaScript? =

Nein. Statt eines Formulars, das nichts tut, erscheint dann ein Hinweis.

= Kann der Shortcode mehrfach auf einer Seite stehen? =

Ja. Jeder Rechner arbeitet fuer sich.

= Hinterlaesst das Plugin Spuren in der Datenbank? =

Nur einen zwischengespeicherten Update-Eintrag. Der wird bei der
Deaktivierung und beim Loeschen des Plugins automatisch entfernt.

== Changelog ==

= 1.1 =
* Das Plugin heisst jetzt LAGATH Papiergewicht. Der Shortcode [papiergewichtberechnen] bleibt unveraendert.
* Verzeichnis, Dateinamen, Textdomaene und saemtliche internen Kennungen heissen jetzt lagath-papiergewicht beziehungsweise lagath_. Fuer WordPress ist das ein neues Plugin: Die vorherige Fassung muss deaktiviert und geloescht werden, und die Einstellungen sind einmalig neu einzutragen. Ein Update von der TM-Fassung aus gibt es deshalb nicht.

= 1.0 =
Erste Fassung, die funktioniert. Version 0.7 war in mehreren Punkten
unbrauchbar; alles davon ist behoben.

* Der Rechner gibt jetzt tatsaechlich ein Formular aus. Bisher stand `ob_start()` ausserhalb der Funktion: Der Shortcode lieferte dadurch die gesamte bis dahin erzeugte Seitenausgabe zurueck und schloss einen Ausgabepuffer, der ihm nicht gehoerte.
* Das Formular wird nicht mehr abgeschickt, sondern im Browser gerechnet. Die bisherige Zieladresse aus `PHP_SELF` und `REQUEST_URI` ergab einen Pfad, den es nicht gab.
* Sicherheitsluecke geschlossen: Die eingegebenen Werte wurden ungeprueft in die value-Attribute des Formulars geschrieben (Cross-Site-Scripting). Es werden jetzt gar keine Formulardaten mehr entgegengenommen.
* Leere Felder fuehrten unter PHP 8 zu einem Fatal Error, weil die Multiplikation zweier leerer Zeichenketten einen TypeError ausloest. Eingaben werden jetzt geprueft, und der Rechner meldet verstaendlich, was fehlt.
* Das `<form>`-Tag wurde nie geschlossen; das folgende `<br>` wurde dadurch zu einem Attribut.
* Neu: Anzahl der Bogen, Ausgabe von Einzel- und Gesamtgewicht, ab einem Kilogramm zusaetzlich in Kilogramm.
* Komma und Punkt gelten beide als Dezimaltrennzeichen; Zahlen werden nach der eingestellten Sprache formatiert.
* Beschriftungen sind jetzt mit den Feldern verknuepft, das Ergebnis wird von Screenreadern angesagt.
* Update-Pruefung wird nur noch im Backend, beim Cron und unter WP-CLI registriert. Bisher lief bei jedem Seitenaufruf - auch im Frontend - eine externe Anfrage, und weil die Zwischenspeicherung abgeschaltet war, jedes Mal aufs Neue.
* Fehlgeschlagene Update-Abfragen werden eine Stunde zwischengespeichert, statt bei jedem Aufruf erneut in den Timeout zu laufen.
* Eigener Cache-Schluessel `lagath_papiergewicht_upd`. Version 0.7 benutzte `tmedia_custom_upd` - den Schluessel eines anderen Plugins.
* Die Pruefung der PHP-Mindestversion schloss die exakt passende Version aus (`<` statt `<=`).
* In der Plugin-Liste erscheint jetzt der Link "Details" mit Beschreibung, Changelog und Banner.
* Alle Ausgaben der Server-Antwort werden escaped, fehlende Felder loesen keine PHP-Warnungen mehr aus.
* Die Versionsnummer steht nur noch im Plugin-Header, nicht mehr zusaetzlich im Quelltext.
* Site-Transients fuer Multisite.
* `Update URI` ergaenzt, damit ein gleichnamiger Slug auf wordpress.org das Plugin nicht ueberschreiben kann.
* Vollstaendige Plugin-Header, Lizenztext als LICENSE, `uninstall.php` und `readme.txt` ergaenzt.

= 0.7 =
* Nie funktionsfaehig veroeffentlicht.

== Upgrade Notice ==

= 1.0 =
Erste benutzbare Fassung. Wer 0.7 installiert hat, sollte aktualisieren: Diese Version schliesst eine XSS-Luecke und beendet eine externe Anfrage bei jedem Seitenaufruf.
