Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

Ausgabe einer HTML-Datei bei Aufruf einer Node dort einbinden...

Eingetragen von JRopers (55)
am 13.09.2013 - 22:58 Uhr in
  • Allgemeines zu Drupal
  • Drupal 7.x oder neuer

Liebe Drupalianer,

entweder suche ich nach den falsche Wörtern, oder ich finde es einfach nicht.

Folgende Problematik:

Wir haben bald bei uns eine Regatta. Unsere Regattasoftware kann die Ergebnisse automatisch in eine html-datei per ftp hochladen.
Nun möchte ich diese HTML-Datei, im Seitendesign anzeigen, also z. B. in eine Node einbinden, die ich dann im Menü als Menüpunkt auch verlinken kann.

Ich glaube ich erkläre es gerade unheimlich kompliziert, ist ja auch schon spät...

Hier einfach mal die Datei, bzw, der Link:
http://wsbederkesa.de/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm

und eingebunden soll es natürlich in die Webseite
http://www.wsbederkesa.de
werden.

Die Rennen werden ca. im 3-minutentakt stattfinden. die Datei wird automatisch aktualisiert, wenn die Ergebnisse erfasst sind. Dies geschiet allerdings manuell, aber auch ca. alle 3 Minuten. Somit wäre es also am besten, wenn im Moment des Aufrufs der Node der Inhalt der HTML gelesen und eingebunden wird.

Wie gehe ich denn da vor? PHP in der Node? Ein Modul? Ganz anders?

Liebe Grüße
Jerns

‹ SEF URL / Aliase im IE funktionieren nicht Wireframing in Drupal 7 Projekten ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Der einfachste Weg für die

Eingetragen von SteffenR@drupal.org (2262)
am 14.09.2013 - 08:51 Uhr

Der einfachste Weg für die Einbindung der externen Inhalte wäre wohl ein iFrame - dieses iFrame würdest du dann einfach als Seiteninhalt einbinden. Die Einbindung kannst du entweder direkt in den Content integrieren (Text-Format: Full-HTML) oder mithilfe des Moduls https://drupal.org/project/insertframe - hier hast du dann einen Inputfilter, der die Einbindung etwas erleichtert.

Alternativ wäre das Nachladen der Inhalte via Ajax - hier würdest du dir aber auch eine eigene Seite im System anlegen und dort dann die nachgeladenen Inhalte als Seiteninhalt anzeigen. Hier hättest du im Gegensatz zur iFrame Lösung noch die Möglichkeit das Styling komplett zu beeinflussen.

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

oder ein kleines Modul

Eingetragen von ronald (3857)
am 14.09.2013 - 09:27 Uhr

das die Datei einliest und ins Textfeld eines Nodes schreibt, also einen Node generiert.

  • Anmelden oder Registrieren um Kommentare zu schreiben

ronald schrieb das die Datei

Eingetragen von SteffenR@drupal.org (2262)
am 15.09.2013 - 17:21 Uhr
ronald schrieb

das die Datei einliest und ins Textfeld eines Nodes schreibt, also einen Node generiert.

Das wäre auch noch eine Möglichkeit. Hierfür müsste man sich - um den Drupalweg zu gehen - aber eigentlich einen eigenen Menu Callback schreiben und durch diesen die Seite ausliefern lassen. Den Inhalt der externen Quelle könnte man sich via file_get_contents oder der Klasse simplehtmldom (direktes Auslesen definierter DOM Selektoren) auslesen.

SteffenR

  • Anmelden oder Registrieren um Kommentare zu schreiben

eindeutig ist...

Eingetragen von JRopers (55)
am 15.09.2013 - 22:18 Uhr

... das ich gerade merke, dass ich mir noch sehr viel aneignen muss...
ich verstehe zumindest wohl grob, wie es technisch ablaufen würde, wie ich es umsetzen müsste, davon habe ich aber leider keinen Plan.

Mit meinem Freund google habe ich bisher folgendes zu stande gebracht:
http://www.wsbederkesa.de/inhalt/ergebnisse-der-beerster-kanuregatta-2013

folgendes habe ich mir dazu zusammengegoogelt:
ein script, welches die größe des iframe anpasst, und den iframe dann halt an sich einbindet.

allerdings wäre es cool, wenn dieser sich nun in regelmäßigen Intervallen neu die Quelldatei einliest.
Ich habe beim Probieren festgestellt, dass recht lange eine Version aus dem Cache angezeigt wird. ich musste den Browser-Cache löschen, um den Inhalt der neuen HTML-Datei im IFrame angezeigt zu bekommen... das ist für die Live-Ergebnisse natürlich kaum praktikabel.

Das chaching an sich möchte ich für die Seite aber auch nicht abstellen müssen...

Das mit AJAX oben habe ich übrigens, trotz google, nicht verstanden bisher. auch wenn ich grob verstanden habe, was AJAX macht bzw. bewirkt...

Hier mal der Code des Node hinter dem Link oben:

<script language="JavaScript">
<!--
function autoResize(id){
    var newheight;
    var newwidth;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
        newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
    }

    document.getElementById(id).height= (newheight) + "px";
    document.getElementById(id).width= (newwidth) + "px";
}
//-->
</script>

<IFRAME SRC="/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm" width="50%" height="200px" id="iframe1" marginheight="0" frameborder="0" onLoad="autoResize('iframe1');"></iframe>

kann mir jemand weiterhelfen, was die regelmäßige aktualisierung angeht?
Ich habe soeben auch festgestellt, dass ich die Ergebnisse auch als XML-Datei übertragen könnte... wäre das ggf einfacher zu handeln?

Grüße
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

wenn die Daten innerhalb

Eingetragen von ronald (3857)
am 15.09.2013 - 22:29 Uhr

Laufend aktualisiert werden sollen, kommst du an AJAX kaum vorbei.
Es sei denn, du machst die Aktualisierungen aus einem eingebetteten Objekt aus Flash oder JAVA.

  • Anmelden oder Registrieren um Kommentare zu schreiben

mal wieder google...

Eingetragen von JRopers (55)
am 15.09.2013 - 22:49 Uhr

aber die Lösung scheint es nicht zu sein

Wie bringe ich denn in den obigen code eine Ajax-Routine zum regelmäßigen aktualisieren mit rein?

so offenbar nicht.

<script type="text/javascript">
     $(document).ready(function() {
       $("#refresh").load("/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm");
       var refreshId = setInterval(function() {
          $("#refresh").load('/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm' + 1*new Date());
       }, 1000);
    });
</script>

<script language="JavaScript">
<!--
function autoResize(id){
    var newheight;
    var newwidth;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
        newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
    }

    document.getElementById(id).height= (newheight) + "px";
    document.getElementById(id).width= (newwidth) + "px";
}
//-->
</script>
<div id="refresh" style="text-align:center;">
<IFRAME SRC="/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm" width="50%" height="200px" id="iframe1" marginheight="0" frameborder="0" onLoad="autoResize('iframe1');"></iframe></div>

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe zwei separate Lösungen, aber...

Eingetragen von JRopers (55)
am 17.09.2013 - 12:07 Uhr

die müsste ich jetzt irgendwie zusammen gefügt bekommen... Da hab ich gestern hin und her probiert, aber zuletzt hat es mir das Layout zerschossen :( kann mit da jemand weiterhelfen?

Also, ich habe einen Html-seite, welche regelmäßig den Inhalt der Quelle aktualisiert:

<!doctype html>
<html>
<head>
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<META HTTP-EQUIV="EXPIRES" CONTENT="Wed, 11 Jan 1984 05:00:00 GMT">
<meta http-equiv="Expires" content="0" />
<meta charset="utf-8" />
<script src="/misc/jquery.js"></script>
    <script>
     $( document ).ready(function() {
  $("#refresh").load("/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm");
       var refreshId = setInterval(function() {
          $("#refresh").load("/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm");
       }, 1500);
    });
    </script>
</head>
<body>
<div id="refresh" style="text-align:left;"></div>
</body>
</html>

und einen Code, der die Seite als iframe einbindet, aber leider nicht aktualisiert...

<!DOCTYPE HTML>
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="0" />

<script language="JavaScript">
<!--
function autoResize(id){
    var newheight;
    var newwidth;

    if(document.getElementById){
        newheight=document.getElementById(id).contentWindow.document .body.scrollHeight;
        newwidth=document.getElementById(id).contentWindow.document .body.scrollWidth;
    }

    document.getElementById(id).height= (newheight) + "px";
    document.getElementById(id).width= (newwidth) + "px";
}
//-->
</script>

<script>
window.setInterval("reloadIFrame();", 1000);
function reloadIFrame() {
document.frames["MeldeErg"].location.reload();
}
</script>

<IFRAME SRC="/sites/wsbederkesa.de/files/regergeb/Mld_Erg_Vereine.htm" name="MeldeErg" width="50%" height="200px" id="iframe1" marginheight="0" frameborder="0" onLoad="autoResize('iframe1');"></iframe>

wie bekomme ich jetzt beides in eins? Also einen iframe, der von der größe her automatisch sich dem Inhalt anpasst und aktualisiert?

Grüße
Jens

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 2 Wochen 1 Tag
  • Hey danke
    vor 2 Wochen 2 Tagen
  • Update: jetzt gibt's ein
    vor 2 Wochen 3 Tagen
  • Hallo, im Prinzip habe ich
    vor 3 Wochen 16 Stunden
  • Da scheint die Terminologie
    vor 3 Wochen 19 Stunden
  • Kannst doch auch alles direkt
    vor 3 Wochen 5 Tagen
  • In der entsprechenden View
    vor 3 Wochen 5 Tagen
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 5 Tagen
  • gelöst
    vor 6 Wochen 1 Tag
  • Ja natürlich. Dass ist etwas,
    vor 6 Wochen 2 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 25 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association