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

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen
(→‎Bilder SVG: +Abschnitt)
 
(3 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 11: Zeile 11:
 
== CORS (cross-origin resource sharing) ==
 
== CORS (cross-origin resource sharing) ==
  
(1) Auf Server-Ebene von Apache, daß die Erlaubnis des Ursprungs (=origin) gegeben wird:
+
(1) a: Auf Server-Wiki-Ebene von Apache, daß die Erlaubnis des Ursprungs (=origin) gegeben wird:
  
 
<syntaxhighlight lang="apache">
 
<syntaxhighlight lang="apache">
Zeile 23: Zeile 23:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
(2) Auf Ebene des Wikis in den <code>LocalSettings.php</code> selbst:
+
(1) b: Auf Ebene des Wikis in den <code>LocalSettings.php</code> selbst:
 
<syntaxhighlight lang="php">
 
<syntaxhighlight lang="php">
 
$wgCrossSiteAJAXdomains = [
 
$wgCrossSiteAJAXdomains = [
Zeile 30: Zeile 30:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
(3) auf dem Fremdserver 3dviewer.net muß wahrscheinlich folgendes frei eingestellt sein:
+
(2) auf dem Fremdserver 3dviewer.net muß wahrscheinlich folgendes frei eingestellt sein:
 
<syntaxhighlight lang="apache">
 
<syntaxhighlight lang="apache">
 
<IfModule mod_headers.c>
 
<IfModule mod_headers.c>
Zeile 47: Zeile 47:
 
</IfModule>
 
</IfModule>
 
</syntaxhighlight>
 
</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

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