Benutzer:Andreas Plank/Wiki-Programmierung: Unterschied zwischen den Versionen

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(→‎Bilder SVG: +Abschnitt)
 
Zeile 51: Zeile 51:
 
* https://enable-cors.org/server_apache.html
 
* https://enable-cors.org/server_apache.html
 
* https://www.html5rocks.com/static/images/cors_server_flowchart.png
 
* 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

JavaScript

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

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