WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 01.07.2020 15:54:09

cyberdyne
Mitglied

Inline Wrapper: Inhalte von Wikipedia?

Hallo,
wollte via Inline Wrapper eine umfangreiche Wikipediaseite importieren. Das will aber nicht recht, wie ich es mir vorstelle ;-) .Zum einen werden Images nicht mitgeliefert, zum zweiten liefert die Navigation in betreffendem Content per #Anker jeweils einen fehlerhaften Link aus.

Aus ...

[== HTML ==]
https://de.wikipedia.org/wiki/Stolpersteine_in_Rastatt#Am_Grün_11

... wird ...

[== HTML ==]
http://stolpersteine.423kilometer.de/pages/stolpersteine-in-unserer-stadt.php?wrapperurl=https%3A%2F%2Fde.wikipedia.org%2Fwiki%2F%23Am_Gr%C3%BCn_11

Ist das irgendwie zu händeln, oder lass ich es lieber?

Viele Grüße,
Klaus

Link
Zugehörige Wikipedia-Seite

PS: hatte schon versucht per Leaflet eine interaktive Karte der Stolpersteine anzulegen, doch reicht hier der Platz im Parameter >>Name<< nicht aus. Import per Inline Wrapper ist der nächste Versuch die Stolpersteine auf der Seite abzubilden.


Macht's gut und danke für den Fisch!

Online

#2 01.07.2020 18:01:19

florian
Administrator

Re: Inline Wrapper: Inhalte von Wikipedia?

Ich habe die Frage vom Ursprungsthread abgetrennt, weil es nicht um die grundsätzliche Funktionalität vom Modul Inlinewrapper, sondern einen konkreten Anwendungsfall geht.

Ich vermute, die URL-Struktur von Wikipedia ist zu speziell - ich wundere mich sowieso jedes Mal, wenn ich dann doch mal in Wikipedia schaue, was da für sonderbare Zeichen einfach so in der URL stehen (Doppelpunkte, Umlaute...)

Abgesehen davon halte ich es aus grundsätzlichen Erwägungen für grenzwertig, Wikipedia-Seiten zu wrappen. Ob das rechtlich zulässig ist, will ich nicht beurteilen, auf jeden Fall kann es so aber passieren, dass wenn auf Wikipedia irgend ein Troll irgendwelchen unerfreulichen Kram in die Seite schreibt, dieser dann postwendend auch auf Deiner Seite erscheint.

Vorschlag: Installiere OneForAll 1.1.5 und probiere, ob es mit dem hier beschriebenen und verfügbaren Leaflet-Preset möglich ist, eine Deinen Erfordernissen entsprechende Karte darzustellen.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 01.07.2020 23:22:44

cyberdyne
Mitglied

Re: Inline Wrapper: Inhalte von Wikipedia?

Super, das probier ich morgen gleich aus.
Vielen Dank für den Tipp!


Macht's gut und danke für den Fisch!

Online

#4 02.07.2020 15:59:56

bernd
Developer

Re: Inline Wrapper: Inhalte von Wikipedia?

Ich wollte mich eigentlich nur schlau machen in wie weit das Einbinden von Wikipedia-Artikeln in eigene Webseiten zulässig ist, bin dabei aber bischen abgelenkt worden als ich gesehen habe, dass Wikipedia ja sogar eine API-Schnittstelle hat!
Hab daraufhin bischen damit rumgespielt und rausgekommen ist dabei mal auf die Schnelle folgender Code2 Abschnitt:

$url = 'https://de.wikipedia.org/w/api.php?action=parse&format=json&page=Stolpersteine_in_Rastatt&prop=text&formatversion=2';
$content = file_get_contents($url);
$content = json_decode($content, TRUE);
echo $content['parse']['text'];

Die URL gibt in einem json-Objekt u.a. den kompletten HTML-formatierten Text der angegeben Seite zurück.
Da müssten jetzt eigentlich nur noch die blöden Bearbeiten-Links (müsste mit bischen jQuery-Magic gehen) weg und schon wäre es recht schick...

Nachtrag 2:
Ein zweiter Code2 Abschnitt vom Typ "Javascript dazu:

$(document).ready(function(){
  $('.mw-editsection').css('display', 'none');
});

und die Bearbeiten-Links sind Geschichte.

Nachtrag 1: file_get_contents setzt halt voraus das auf dem Server allow_url_fopen enabled ist.

Beitrag geändert von bernd (02.07.2020 16:11:44)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

mrbaseman

#5 02.07.2020 16:27:51

mrbaseman
Developer

Re: Inline Wrapper: Inhalte von Wikipedia?

Also es ist beides der Fall:

  • inline wrapper kann nicht richtig mit Anchors umgehen. Ich baue habe eine neue Version gebaut, in der das verbessert ist

  • Wikipedia hat irgendwie komische Links im Menü, die selbst mit der korrigierten Version nicht funktionieren werden, denn das Sprungziel (den Anker, der im Link angegeben ist) gibt es in der Seite gar nicht.

Edit: Link zur korrigierten Version eingefügt, Formulierung dahingehend geändert, Zweiten Punkt gestrichen (siehe unten)

Beitrag geändert von mrbaseman (02.07.2020 20:23:03)

Offline

#6 02.07.2020 16:43:20

bernd
Developer

Re: Inline Wrapper: Inhalte von Wikipedia?

@mrbaseman:
wobei ich fast sagen möchte das grade für Wikipedia der Inline-Wrapper eher ungeeignet ist.
Man holt sich damit ja auch den ganzen unnötigen "Beifang" (linkes Menu, Kopfzeile/Kopfmenu, Fußzeile) auf die Seite.


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

#7 02.07.2020 16:47:43

cyberdyne
Mitglied

Re: Inline Wrapper: Inhalte von Wikipedia?

bernd schrieb:

Ich wollte mich eigentlich nur schlau machen in wie weit das Einbinden von Wikipedia-Artikeln in eigene Webseiten zulässig ist, bin dabei aber bischen abgelenkt worden als ich gesehen habe, dass Wikipedia ja sogar eine API-Schnittstelle hat!
Hab daraufhin bischen damit rumgespielt und rausgekommen ist dabei mal auf die Schnelle folgender Code2 Abschnitt:
...


Absolut Genial! Habe zwar mit One4All & dem genannten Repository schon eine neue Leaflet-Karte gebastelt, den geschilderten Import der Wikipedia-Seite kann ich der Karte aber wunderbar als Quellenangabe zur Seite stellen!

Besten Dank!


Macht's gut und danke für den Fisch!

Online

#8 02.07.2020 17:37:33

bernd
Developer

Re: Inline Wrapper: Inhalte von Wikipedia?

Mit einer kleinen Ergänzung kann man sich auch noch rudimentäre CSS-Formatierungen (TOC im Rahmen, Bilderausrichtung mit Caption im Rahmen, etc.) an Bord holen:

$stylesheet = '<link rel="stylesheet"
   href="//de.wikipedia.org/w/load.php?debug=false&lang=de&modules=mediawiki.legacy.commonPrint,shared|skins.vector.styles&only=styles&skin=vector&*">';
$url = 'https://de.wikipedia.org/w/api.php?action=parse&format=json&page=Stolpersteine_in_Rastatt&prop=text&formatversion=2';
$content = file_get_contents($url);
$content = json_decode($content, TRUE);
echo $stylesheet;
echo $content['parse']['text'];

Und noch bischen mehr jQuery dazu das den externen Links ein target _blank verpasst und die Wiki-internen Links  (z.B. /wiki/) zu funktionierenden externen Links macht.

$(document).ready(function(){
  //hide edit links
  $('.mw-editsection').css('display', 'none');
  //add target _blank to external links
  $('.external').attr('target','_blank') 
  //make wiki internal links external
  $('.mw-parser-output a').each(function() {
    var this_href = $(this).attr('href');
    if (this_href != undefined) {
      var fragment = this_href.substring(0,6);
      if (fragment == '/wiki/' || fragment == '/w/ind') { 
      	var new_href = 'https://de.wikipedia.org' + this_href;
      	$(this).attr('href', new_href).attr('target','_blank');
      }
    }
  });
});

Mmmhh ... ich glaub ich klöppel da mal ein Modul draus ... devil

Beitrag geändert von bernd (02.07.2020 18:42:39)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

mrbaseman, cyberdyne, jean

#9 02.07.2020 20:16:02

mrbaseman
Developer

Re: Inline Wrapper: Inhalte von Wikipedia?

bernd schrieb:

@mrbaseman:
wobei ich fast sagen möchte das grade für Wikipedia der Inline-Wrapper eher ungeeignet ist.
Man holt sich damit ja auch den ganzen unnötigen "Beifang" (linkes Menu, Kopfzeile/Kopfmenu, Fußzeile) auf die Seite.

Da geb ich dir recht. Ich hätte die Seite doch nochmal neu laden sollen, bevor ich antworte. Dann hätte ich gesehen, dass du schon eine bessere Lösung am Start hast. Ich hatte den Browsertab schon eine Weile offen und hab dann geantwortet. Aber nichts desto trotz ist das oben beschriebene Verhalten ein Bug im inlinewrapper, für den ich eine neue Version bereit gestellt habe.

Und übrigens: Die Anker gibt es sehr wohl auf der Originalseite von Wikipedia. Beim Einbinden via Inlinewrapper hat sie mir allerdings ein Outputfilter, der alle span-Tags entfernt, mit weggeputzt.

Offline

#10 03.07.2020 16:39:36

bernd
Developer

Re: Inline Wrapper: Inhalte von Wikipedia?

Wikipedia-Wrapper siehe hier ...
Nach Austausch mit Florian und reiflicher Überlegung habe ich mich entschlossen das Modul doch nicht zu veröffentlichen.
Die Copyright- und Lizenzrechtliche Seite ist doch - besonders im Hinblick auf die eingebundenen Bilder - ziemlich wachsweich.
Und ich möchte ungern ein Modul verantworten das evtl. Urheberrechtsverstößen Vorschub leistet ...

Beitrag geändert von bernd (04.07.2020 15:08:41)


... nein in Europa verwenden wir beim Programmieren nicht € statt $ ...

Offline

Liked by:

florian

Fußzeile des Forums

up