IFRAME und Container

Gesperrt
SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

IFRAME und Container

Beitrag von SIL » Mo 10. Dez 2007, 20:06

Ich finde einfach auf Anhieb keine Lösung, wie ich einen CMS-CONTAINER (z. B. einfachen Text) direkt in einem IFRAME aufrufen kann.

Wie kann ich im Hauptlayout eine Seite in einem IFRAME aufrufen, die direkt den Inhalt aus einem Container aufruft und dort natürlich auch für jede Seite neu bearbeitet werden kann?

Bestimmt habe ich nur ein Brett vor dem Kopf... ;-)

Danke + Gruß
SIL

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Mi 12. Dez 2007, 00:14

Die einfache Variante:
Dein Hauptlayout enthält ein IFRAME. Als Inhalt ist ein anderer Contenido-Artikel verlinkt. Der andere Artikel verwendet ein Template mit nur einem Container.
Die schicke Variante
Dein Hauptlayout enthält ein IFRAME, dass auf immer denselben Contenido-Artikel verlinkt und dabei seine idartlang mitübergibt (Achtung umbenennen) Der andere Artikel ließt aus der Datenbank den Inhalt des gewünschten Containers der Ursprungsartikels aus.
Oder so:
Mann kann PHP-Code auch im Layout verwenden. Damit kann man 2 Layouts in eins basteln. Eins für den Hauptartikel eins für das IFRAME. Das IFRAME verlinkt den Artikel selbst mit z.B. &iframe=true. Das Layout gibt dann die IFRAME-Darstellung wieder.

Alles nicht probiert nur so ausgedacht.
Bis dann
Tono

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » Do 13. Dez 2007, 07:11

Hallo Tono,

danke für deine Hilfe und genau deine "schicke" Variante würde genau das Problem lösen. Ich weiß nur nicht wie.

Ein kleiner Codeschnipsel für das Einbinden des IFRAME würde schon ausreichen :shock:...

Viele Grüße
SIL

holger.librenz_4fb

Beitrag von holger.librenz_4fb » Do 13. Dez 2007, 09:28

Hallo SIL.

Das Prinzip des iframes ist immer noch das Gleiche wie das eines Frames: Es stellt separaten Content dar. Ich glaube da liegt Dein Denkfehler. Hier mein Tipp für das Vorgehen:

1. Hauptlayout mit iframe definieren, das iframe zeigt auf eine Contenido-URL und gibt z.B. den GET-Parameter iartng mit
2. Du baust Dir ein Layout, welches die Seite im iframe definiert. Innerhalb dieses Layout liest ein Modul den GET-Parameter iartlng aus und setzt intern idartlang auf genau diesen Wert (Achtung: immer auf int casten und Werte <= 0 verwerfen!)
3. Spass haben

So long.
Holger

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » Fr 14. Dez 2007, 11:03

holger.librenz_4fb hat geschrieben:Hallo SIL.

1. Hauptlayout mit iframe definieren, das iframe zeigt auf eine Contenido-URL und gibt z.B. den GET-Parameter iartng mit
2. Du baust Dir ein Layout, welches die Seite im iframe definiert. Innerhalb dieses Layout liest ein Modul den GET-Parameter iartlng aus und setzt intern idartlang auf genau diesen Wert (Achtung: immer auf int casten und Werte <= 0 verwerfen!)
3. Spass haben
Hallo Holger,

danke für deinen Versuch zu helfen, aber ich bin leider kein Modulentwickler, deshalb hatte ich nach dem Code gefragt, der zumindest halbwegs erklärt, wie die Parameter für den Linkaufruf in dem IFRAME aussehen müssen und wie ich später wieder darauf zurückgreifen kann. Ich bin davon ausgegangen, dass das sicherlich schon jemand einmal ausprobiert hat.

Das, was du geschrieben hast, ist eindeutig eine Nummer zu hoch für mich... ;-)

Viele Grüße
SIL

wosch

Beitrag von wosch » Fr 14. Dez 2007, 14:30

Ist dieser CMS-CONTAINER eine komplette Seite (mit Überschrift, Navi, ...) und daraus soll eben nur der CMS-CONTAINER dargestellt werden oder besteht diese Seite nur aus dem CMS-CONTAINER ohne Overhead (Navi, ...) der eben zentral verwaltet oder editiert wird?

In dem Fall wäre die Lösung von tono doch ideal.

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » Fr 14. Dez 2007, 14:37

Hallo Wosch,

nur das hier soll in den IFRAME geladen werden:

Code: Alles auswählen

<head>
</head>
<style>
body {
    background-image: url('/contenido/cms/images/al/hg1.jpg'); 
    background-repeat:no-repeat;
    background-position:  right top;
    background-attachment: fixed
}
</style>

<body topmargin="0" leftmargin="0" bgcolor="#375494">

<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
  <tr>
    <td width="100%" valign="top">
     CMS_CONTAINER[10]
      </td>
  </tr>
</table>

</body>

</html>
Das Problem ist ein Layout, das auf 100% der Seite gestreckt werden muss. Dazu muss überlaufender Inhalt scrollbar sein, ohne dass der Kopf und die linke Navigation mitgehen.

Mit DIV ist mir leider keine Lösung bekannt, bei der ich z. B. für die Navigation 175px Breite links angeben kann und der Rest einfach auf 100% gestreckt wird.

Im IE geht das, aber FF zeigt die Seite dann fehlerhaft an.
Mit dem Iframe würde es perfekt laufen, aber ich habe leider nicht genug Ahnung um mir das Modul selbst zu schreiben, bzw. die Übergabe des Links richtig umzusetzen.

Gruß
SIL

wosch

Beitrag von wosch » Fr 14. Dez 2007, 15:01

Das sollte aber mit der Lösung von tono gehen.
Dafür legst du ein Template an das nur den Container CMS_CONTAINER[10] enthält, und damit eine Seite mit dem Inhalt.

In der Seite, die das Iframe zur Ausgabe enthält (Text HTML Container) gibts du folgendes ein:

<IFRAME HEIGHT="xxx_in_px" WIDTH="yyy_in_px" SRC="frontend.php?_der_link_zur_ausgabe" NAME="frame_name" BORDER="0" SCROLLING="NO">

Die Werte für height und width ausprobieren, scrolling no/yes
Dateiname bei Artikel -> Eingenschaften -> Links anzeigen -> kopieren, einfügen im iframe

Einfach mal probieren.

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » Fr 14. Dez 2007, 15:47

Hallo Wosch,

hmm, soweit war ich ja auch schon und der IFRAME selbst funktioniert ja auch genauso wie er soll.

Aber die Seite ist ja dann statisch und es wird immer die gleiche Seite in dem IFRAME aufgerufen. Das hilft ja nicht wirklich weiter...

Oder habe ich etwas bei deiner Lösung übersehen?
Ich denke Holger hat schon das Richtige beschrieben, ich verstehe es halt nur nicht..., bzw. kann ich es nicht umsetzen.

Gruß
SIL

wosch

Beitrag von wosch » Fr 14. Dez 2007, 19:08

SIL hat geschrieben:Aber die Seite ist ja dann statisch und es wird immer die gleiche Seite in dem IFRAME aufgerufen. Das hilft ja nicht wirklich weiter...
Und ich verstehe nur noch Bahnhof bei dem was dein Ziel ist, was du willst.

Anzeige im iframe -> scheint zu gehen wie du sagst, was soll da dynamisch werden?
Soll ja nach Wetterlage/Körpertemperatur eine andere Seite im iframe geladen werden?

SIL
Beiträge: 12
Registriert: Sa 25. Jun 2005, 13:33
Kontaktdaten:

Beitrag von SIL » Fr 14. Dez 2007, 23:04

Hallo Wosch,

wenn ich in der Vorlage der zu ladenden Seite für den Iframe eine feste Seite angebe, ist die doch immer gleich.

Ich habe jetzt zwei Layouts:

Das erste komplett mit Navi, Header, Footer und eben dem Iframe, den ich so lade:

Code: Alles auswählen

<iframe name="i1" marginwidth="0" marginheight="0" width="100%" height="100%" border="0" frameborder="0" src="front_content.php?idart=91" name="conframe" border="0"></iframe>
Die Seite, die über idart=91 geladen wird, hat nur folgenden Inhalt:

Code: Alles auswählen

<head>
</head>
<style>
body {
    background-image: url('/contenido/cms/images/al/header_bg2.jpg'); 
    background-repeat:no-repeat;
    background-position:  right top;
    background-attachment: fixed
}
</style>

<body topmargin="0" leftmargin="0" bgcolor="#375494">

<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%">
  <tr>
    <td width="100%" valign="top">
     CMS_CONTAINER[10]
      </td>
  </tr>
</table>
</body>
</html>
Damit bekomme ich zwar den Iframe perfekt in IE und FF angezeigt und alle Editierfunktionen sind vorhanden, aber in dieser Form funktioniert natürlich die Navigation nicht mehr und ich habe logischerweise auch immer die gleiche Seite. Dafür brauche ich aber kein CMS... 8)

Über das CMS soll ja später nur noch die zu ladende Seite geändert werden. Das Haupttemplate bleibt ja gleich. Nur so funktioniert es einfach nicht.

Viele Grüße
SIL

tono
Beiträge: 574
Registriert: Mo 25. Apr 2005, 20:51
Wohnort: Frankfurt am Main
Kontaktdaten:

Beitrag von tono » Fr 14. Dez 2007, 23:14

Ich glaube was SIL meint ist, dass in jedem Artikel ein anderer Inhalt in den IFRAME geladen werden soll.

Wie ich schon schrieb, könte es so gehen:

<IFRAME HEIGHT="xxx_in_px" WIDTH="yyy_in_px" SRC="frontend.php?idart={idart_des_moduls_unten}&idartparent={aktuelle_idart($idart)}" NAME="frame_name" BORDER="0" SCROLLING="NO">

Das Modul auf der Seite mit der idart {idart_des_moduls_unten} sollte dann den gewünschten Container aus der DB laden, die idart der aufrufenden Seite ist ja als $idartparent bekannt.

Sorry fertigen Code gibts nicht, hat ja scheinbar noch niemand so gemacht. => php.net
Bis dann
Tono

Gesperrt