Benutzer:Andreas Plank/Wiki-Programmierung: Unterschied zwischen den Versionen
(→Bilder SVG: +Abschnitt) |
|||
(4 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 8: | Zeile 8: | ||
* herkömmliche Funktions-Bausteine https://www.mediawiki.org/wiki/ResourceLoader/Core_modules | * herkömmliche Funktions-Bausteine https://www.mediawiki.org/wiki/ResourceLoader/Core_modules | ||
* Reguläre Ausdrücke testen https://regex101.com | * Reguläre Ausdrücke testen https://regex101.com | ||
+ | |||
+ | == CORS (cross-origin resource sharing) == | ||
+ | |||
+ | (1) a: Auf Server-Wiki-Ebene von Apache, daß die Erlaubnis des Ursprungs (=origin) gegeben wird: | ||
+ | |||
+ | <syntaxhighlight lang="apache"> | ||
+ | <IfModule mod_headers.c> | ||
+ | # define external resources that are allowed to read resources from wiki.opensourceecology.de | ||
+ | SetEnvIf Origin "https://(3dviewer\.net)$" ORIGIN=$0 | ||
+ | Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN | ||
+ | Header set Access-Control-Allow-Credentials "true" env=ORIGIN | ||
+ | Header merge Vary Origin | ||
+ | </IfModule> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | (1) b: Auf Ebene des Wikis in den <code>LocalSettings.php</code> selbst: | ||
+ | <syntaxhighlight lang="php"> | ||
+ | $wgCrossSiteAJAXdomains = [ | ||
+ | '3dviewer.net' | ||
+ | ]; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | (2) auf dem Fremdserver 3dviewer.net muß wahrscheinlich folgendes frei eingestellt sein: | ||
+ | <syntaxhighlight lang="apache"> | ||
+ | <IfModule mod_headers.c> | ||
+ | Header set Access-Control-Allow-Origin "*" | ||
+ | </IfModule> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | … oder genauer genommen und sicherer müßte auf 3dviewer.net der genaue Ursprung (=origin) erlaubt werden, mit dem Daten vermittelt werden dürfen: | ||
+ | <syntaxhighlight lang="apache"> | ||
+ | <IfModule mod_headers.c> | ||
+ | # define external origins that are allowed to read from 3dviewer.net as a resource | ||
+ | SetEnvIf Origin "https://(wiki\.opensourceecology\.de)$" ORIGIN=$0 | ||
+ | Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN | ||
+ | Header set Access-Control-Allow-Credentials "true" env=ORIGIN | ||
+ | Header merge Vary Origin | ||
+ | </IfModule> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Siehe auch | ||
+ | * https://enable-cors.org/server_apache.html | ||
+ | * https://www.html5rocks.com/static/images/cors_server_flowchart.png | ||
+ | |||
+ | == Bilder SVG == | ||
+ | |||
+ | Echte Lösung, SVG wie es ist, darstellen lassen: | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | # Erweiterung einstellen jenachdem, welche MediaWiki Abfassung (REL1_…) | ||
+ | cd extensions/ | ||
+ | git clone --branch REL1_39 --depth=1 https://gerrit.wikimedia.org/r/mediawiki/extensions/NativeSvgHandler | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Dann in <code>LocalSettings.php</code>: | ||
+ | wfLoadExtension( 'NativeSvgHandler' ); | ||
+ | |||
+ | Notbehelf in <code>LocalSettings.php</code> die Bilddichte (density) hochsetzen, allerdings kann dies an Vorgaben-Begrenzungen stoßen, und ein SVG in angeforderter Rießengröße (weil es ja in ein Rasterbild umgewandelt wird) kann dann vielleicht nicht dargestellt werden, und führt zu kaputten Bilddarstellungen: | ||
+ | * <code>$wgSVGConverters['ImageMagick'] = '"' . $wgImageMagickConvertCommand . '" -density 300 -thumbnail $widthx$height^! $input PNG:$output';</code> | ||
+ | * <code>-density 300</code> ist vielleicht eine gutes Mittelmaß, <code>-density 600</code> führte schnell an die Grenzen der Bilder-Voreinstellungen |
Aktuelle Version vom 6. Juni 2024, 13:22 Uhr
Einstellungen
- https://www.mediawiki.org/wiki/Manual:Configuration_settings
- technische Benutzer-Einstellungen
php ./maintenance/userOptions.php --list --conf LocalSettings.php
JavaScript
- herkömmliche Funktions-Bausteine https://www.mediawiki.org/wiki/ResourceLoader/Core_modules
- Reguläre Ausdrücke testen https://regex101.com
CORS (cross-origin resource sharing)
(1) a: Auf Server-Wiki-Ebene von Apache, daß die Erlaubnis des Ursprungs (=origin) gegeben wird:
<IfModule mod_headers.c>
# define external resources that are allowed to read resources from wiki.opensourceecology.de
SetEnvIf Origin "https://(3dviewer\.net)$" ORIGIN=$0
Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN
Header set Access-Control-Allow-Credentials "true" env=ORIGIN
Header merge Vary Origin
</IfModule>
(1) b: Auf Ebene des Wikis in den LocalSettings.php
selbst:
$wgCrossSiteAJAXdomains = [
'3dviewer.net'
];
(2) auf dem Fremdserver 3dviewer.net muß wahrscheinlich folgendes frei eingestellt sein:
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
… oder genauer genommen und sicherer müßte auf 3dviewer.net der genaue Ursprung (=origin) erlaubt werden, mit dem Daten vermittelt werden dürfen:
<IfModule mod_headers.c>
# define external origins that are allowed to read from 3dviewer.net as a resource
SetEnvIf Origin "https://(wiki\.opensourceecology\.de)$" ORIGIN=$0
Header set Access-Control-Allow-Origin %{ORIGIN}e env=ORIGIN
Header set Access-Control-Allow-Credentials "true" env=ORIGIN
Header merge Vary Origin
</IfModule>
Siehe auch
- https://enable-cors.org/server_apache.html
- https://www.html5rocks.com/static/images/cors_server_flowchart.png
Bilder SVG
Echte Lösung, SVG wie es ist, darstellen lassen:
# Erweiterung einstellen jenachdem, welche MediaWiki Abfassung (REL1_…)
cd extensions/
git clone --branch REL1_39 --depth=1 https://gerrit.wikimedia.org/r/mediawiki/extensions/NativeSvgHandler
Dann in LocalSettings.php
:
wfLoadExtension( 'NativeSvgHandler' );
Notbehelf in LocalSettings.php
die Bilddichte (density) hochsetzen, allerdings kann dies an Vorgaben-Begrenzungen stoßen, und ein SVG in angeforderter Rießengröße (weil es ja in ein Rasterbild umgewandelt wird) kann dann vielleicht nicht dargestellt werden, und führt zu kaputten Bilddarstellungen:
$wgSVGConverters['ImageMagick'] = '"' . $wgImageMagickConvertCommand . '" -density 300 -thumbnail $widthx$height^! $input PNG:$output';
-density 300
ist vielleicht eine gutes Mittelmaß,-density 600
führte schnell an die Grenzen der Bilder-Voreinstellungen