Den selben Text an verscheidenen Stellen anzeigen

Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Anzahl Antworten: 18

Ich würde gerne den selben Text an verschiedenen Stellen im Kurs anzeigen, genauer gesagt, jeweils in der AKtivität "Buch".

Wir nutzen das Buch um Zusammenfassungen über die jeweiligen Abschnitte des Kurses zu geben.

Jeden Abschnitt kommt etwas neues hinzu, und das vorherige ist auch enthalten, was uns dazu zwing, in jedem Abschnitt ein neues Buch anzulegen (oder?). Nun ist es sehr mühsam, Aktualisierungen und Korrekturen in den verschiedenen Büchern jeweils einzeln vorzunehmen. Daher suche ich nach einer Möglichkeit in das Buchkapitel nur eine Art Referenz oder SHortcode einzugeben, der/die dann den gewünschten Text anzeigt, und einen zentralen Ort, an dem Der TExt liegt, sodass ich ihn nur einmal bearbeiten muss, er aber in allen Büchern aktualisiert auftauchen kann.

Ich hoffe das habe ich einigermaßen verständlich ausgedrückt und freue mich über jeden Hinweis =)


LG Matthias

Mittelwert:  -
Als Antwort auf Matthias Winter

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Giger -
Nutzerbild von Besonders aktive Moodler

Eine relativ einfache Lösung ist das Einbinden einer externen HTML-Datei als Iframe.

Wenn die Daten nur in einem Kurs gebraucht werden, kann man diese auch in einen Ordner hochladen und dann im Iframe auf die entsprechende Datei verweisen.

Der Code für die Einbindung könnte dann etwa so aussehen:

<iframe width="100%" style="border:none;" src="https://.../moodle/pluginfile.php/28613/mod_folder/content/0/text.html" id="myIframe"></iframe>
    
    <script>
    // Selecting the iframe element
    var iframe = document.getElementById("myIframe");
    
    // Adjusting the iframe height onload event
    iframe.onload = function(){
        iframe.style.height = iframe.contentWindow.document.body.scrollHeight + 'px';
    }
</script>

                                    
Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Super, danke, Matthias!
ich werde das auspronbieren.
Sowas habe ich noch nie gemacht, aber es hört sich machbar an.
Darf ich kurz einmal checken, ob ich DIch richtig verstanden habe?

- ich lege das Kapitel in einem HTML-Editor(z.B. NVU) formatiert so an wie ich es haben will.
- ich füge das Material "Datei" zum Kurs hinzu und lade hier die HTML Datei hoch
- In dem Kapitel des Buches gehe ich in die HTML Bearbeitung und Kopiere den von Dir geposteten Code, ergänzt um unsere URL und den tatsächlichen Dateinamen
- fertig

Und falls der Text in mehreren Kursen auftauchen soll, kann ich ihn auch einfach in einen seperarten Ordner des Servers legen und die URL entsprechend anpassen?

Sorry fürs Überprüfen aber das ist alles Neuland zwinkernd

Viele GRüße aus Hamburg,

Matthias
Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Toll! Hat wuderbar geklappt, nachdem ich das Erstellen von HTML Dateien rausbekommen hatte =).

Tausend Dank!
Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Wenn ich den Kurs nun kopiere, behalten die eingebetteten Links ihre Gültigkeit oder muss ich sie alle aktualisieren?
Je nachdem würde ich es dann nämlich vorziehen sie außerhalb von Moodle zu "lagern", es sei denn das ist ein Sicherheitsrisiko?
Als Antwort auf Matthias Winter

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Giger -
Nutzerbild von Besonders aktive Moodler
Wenn die Inhalte ausserhalb von Moodle liegen, ist eine Kurskopie kein Problem.

Sind die Webseiten hingegen in einem Ordner abgelegt, müssten die Links (fast) sicher angepasst werden.

Sicherheitsrisiko: Grundsätzlich könnten mit dieser Methode auch schädliche Inhalte in den Browser gelangen. Entscheidend ist, wer Zugriff auf den Server hat. Ich würde empfehlen, die Seiten über ein sichere Schnittstelle abzulegen, nicht einfach per FTP.
Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Der Server ist unser und den Link habe ich als "https://website.de/zielordner/Datei.html angelegt.

Allerdings passiert nun folgendes:
Die Höhe des Iframe ist viel geringer und es gibt einen Scroll-Balken am rechten Rand, was unschön ist.
Besonders wenn ich mehrere Textbausteine untereinander auf diese Art einbinde. Dann erhalte ich eine Seite mit "gestapleten" Fenstern in denen ich scrollen muss. (Eine Internetrecherche brachte mich zu der Annahme, dass der Browser aus Sicherheitsgründen das Auslesen der Dokumentengröße verhindert, das könnte doch der Grund sein, oder?)

Binde ich hingegen zwei Inhalte untereinander ein, die im Kurs selbst liegen, dann ist das nur beim zweiten Inhalt der Fall.

Bei Einbindung der Inhalte, die im Moodle selbst liegen striekt allerdings dieMoodle- APP. DIe zeigt dann im iframe ein Anmeldungsfenster =/

Habt Ihr Lösungsvorschläge?
Als Antwort auf Matthias Winter

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Giger -
Nutzerbild von Besonders aktive Moodler
Bei mehreren Texten, die eingebunden werden, muss jeweils die ID angepasst werden, also z.B. "myFrame1", "myFrame2" ... Dies muss sowohl im HMTL-Code als auch im JavaScript geschehen. Dann sollte es eigentlich funktionieren.

Im Hinblick auf die App habe ich keine Idee, da wir diese nicht verwenden.
Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Hi Matthias,
Erst mal herzlichen Dank, dass Du Dich der Sache annimmst, es macht echt Spaß das herauszufinden, aber ohne Helfer ist es fast unmöglich =).

Die ID anzupassen hatte ich schon versucht, und zwar so (und das ist alles was in der Seite steht, kein weiteres HTML):


Das Ergebnis waren zwei niedrige Fenster, beide gleich hoch, beide mit Scrollleiste.
Habe ich vielleicht irgendetwas außen um den Code herum vergessen, oder so?

Dann habe ich danach gesucht, ob man dem Scrip vielleicht sagen kann, dass es die Dokumentengröße mehrerer Dokumente ausließt und addiert, habe aber nichts dazu gefunden, wobei ich sagen muss, dass ich Null AHnung von Javascript habe, also auch nicht besonders effektiv suchen kann zwinkernd

Matthias
Als Antwort auf Matthias Winter

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Giger -
Nutzerbild von Besonders aktive Moodler

Damit es klappt müssen auch die Variablen iframe im JavaScript angepasst werden:

<iframe width="100%" style="border:none;" src="..." id="myIframe2"></iframe>
    
    <script>
    // Selecting the iframe element
    var iframe2 = document.getElementById("myIframe2");
    
    // Adjusting the iframe height onload event
    iframe2.onload = function(){
        iframe2.style.height = iframe2.contentWindow.document.body.scrollHeight + 'px';
    }

Also: Die IDs müssen sich unterscheiden und die Variablen in den beiden Scripten ebenfalls, da sie sonst entweder überschrieben werden oder einen Konflikt generieren.

Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Oh Mann! Klar. Das ist ja auch logisch... wenn man es sieht =P

Also, ich danke Dir, das klappt nun. Wie schön!
Zwar gibt es am rechten Rand jeden Abschnitts einen Scrollbalken, obwohl der gesamte Text im Fenster sichtbar ist, aber geht wohl nicht anders?
Als Antwort auf Matthias Winter

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Giger -
Nutzerbild von Besonders aktive Moodler

Wahrscheinlich ist dies das Resultat eines Rundungsfehlers, evt. hilft es - zumindest wenn nicht gezoomt wird - bei der Höhenberechnung ein paar Pixel zu addieren:

 iframe.style.height = (10+iframe.contentWindow.document.body.scrollHeight) + 'px';
Je grösser der Wert, desto mehr muss gezoomt werden, bis der Scrollbalken wieder erscheint. Dafür erkauft man sich am Ende des Textes etwas Abstand, der aber bei kleinen Werten nicht gross auffällt.

Weniger Probleme mit den Layout, aber dafür mehr mit der Sicherheit (z.B. nicht mehr funktionierende Moodle-Navigation) hat man, wenn man den Code der gewünschten Quellseite direkt in die Zielseite einbaut:

<div id="Result">
<script>
var req = new XMLHttpRequest();
req.open('GET', 'https://learn4school.ch/moodle30/mod/book/view.php?id=16059&chapterid=2125', true);
req.onreadystatechange = function (aEvt) {
    if (req.readyState == 4 && req.status == 200) {
        Result.innerHTML = req.responseText;
    }
};
req.send(null);
Result.innerHTML = '';
</script>
</div>

Welche Variante man wählt, hängt letztlich von den Prioritäten ab.

Als Antwort auf Matthias Giger

Re: Den selben Text an verscheidenen Stellen anzeigen

von Oliver Bay -
Das sieht nach einer sehr pfiffigen Lösung aus. Ein bisschen kompliziert ist es, den Pfad zur Datei herauszubekommen. Da habe ich noch keine einfache Lösung gefunden.
Ich habe bisher eine Datei in verschiedene Kurse eingebunden, indem ich die Text- oder HTML-Datei in den Bereich "Meine Dateien" hochgeladen habe. Danach wählt man dann "Hinzufügen/Arbeitsmaterial/Datei". Als Datei wählt man dann die zuvor hochgeladene "Eigene Datei" als Verknüpfung, nicht als Kopie. Wenn die Ursprungsdatei geändert wird, wird diese Änderung in allen Verknüpfungen reflektiert. Das ist ziemlich einfach.

Die Methode von Matthias hat den Vorteil, dass man als Icon nicht das hässliche Verknüpfungssymbol im Kurs bekommt und außerdem gibt es bei seiner Methode keinen Rahmen um den gesamten Text. Das sieht auch schöner aus.

Aber bei beiden Arten ist es mir bisher noch nicht gelungen, einen etwas komplexeren HTML Code korrekt anzuzeigen; z.B. eingefügte Font Awesome-Symbole oder Bootstrap-Elemente. Wenn ich den HTML-Code anschaue, ist alles vorhanden, aber es wird nicht richtig übernommen. Auch Formatierungen werden nicht alle übernommen.
Wenn da jemand eine Idee hätte ...????

Gruss
Oliver
Als Antwort auf Oliver Bay

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
@Oliver
mit der Formatierung hatte ich zuerst auch Probleme.
Mit Texten, die ich in Bluegriffon formatiert habe, hatte ich die dann bisher nicht, allerdings ist meine Formatierung auch recht simpel.

Das direkte Einbinden von Dateien ist auch 'ne gute Idee.
Für unseren Anwendungsfall allerdings fehlt dann die Option diese ins Buch zu bekommen, oder?

Ich habe eben die selben Textbausteine als Aufgabe, und, zusammemgefasst, als Buch.

Gruß,
Matthias
Als Antwort auf Matthias Winter

Re: Den selben Text an verscheidenen Stellen anzeigen

von Steffen Bachmann -
Nutzerbild von Besonders aktive Moodler
Also ich würde einen Kursabschnitt "Infothek" o.ä. anlegen und dort das Buch, das dort dann auch ergänzt wird und in den anderen Kursabschnitten einen Link auf das Buch.
Als Antwort auf Steffen Bachmann

Re: Den selben Text an verscheidenen Stellen anzeigen

von Steffen Bachmann -
Nutzerbild von Besonders aktive Moodler
Noch eine Ergänzung: Wenn man eine Aktivität oder Ressource im gleichen Kurs verlinkt, wird dieser Link bei einem Backup bzw. wiederherstellen des Kurses nicht automatisch angepasst. D.h. der Link zeigt nach der Wiederherstellung auf die Aktivität oder Ressource im ursprünglichen Kurs.

Deshalb ist ein verbaler Verweis auf die Infothek evtl. der bessere Weg.
Als Antwort auf Steffen Bachmann

Re: Den selben Text an verscheidenen Stellen anzeigen

von Matthias Winter -
Das ist auch ne gute Verfahrensweise, nur bei uns klappt das so nicht.
Das Buch ist für den ganzen Kurs und wird mit jeder Lektion um deren Inhalt ergänzt.
Ich lege also für jede Lektion ein eigenes Buch an.
Dank der Einbettung der Texte muss ich nun aber nicht wieder jedes Buch einzeln anfassen, nur um einen Kommafehler oder eine Formulierung auszubessern =). Zumal ich die Texte, die ins Buch kommen nun auch in der Lektion selbst einfach einbetten kann.

Das anzulegen ist aufwändig, und wie Du schon sagst, hoffen wir sehr, dass wir nicht mal das Backup brauchen und wenn ich den Kurs kopiere kommt eine Orgie von Linkanpassungen auf mich zu, aber mit externe n Links klappt es halt so nicht.

Was mir gerade auffällt: vielleicht kann ich aber Deine Idee der Infothek nutzen, um die HTML Dateien dort zu hinterlegen, dann wäre das Problem der Links zumindest bei Kopie des Kurses schon mal eingefangen. =)!!!

Danke und viele Grüße,
Matthias