Modul "iFrame Auto-Height"

halousi
Beiträge: 111
Registriert: Mi 30. Mär 2005, 15:31
Kontaktdaten:

Modul "iFrame Auto-Height"

Beitrag von halousi » Mo 7. Nov 2005, 12:26

ok, hier das überarbeitete modul "Auto iFrame" für con 4.6.

Dieses Modul berechnet die Höhe des "contents" für ein iFrame bei jedem Seitenaufruf. Die Breite kann im iFrame Modul-Output beliebig konfiguriert werden. (Hier 100%)

ACHTUNG: Funktioniert nur mit Dokumenten die auf dem selben Server liegen wie Contenido!

1. Modul für den Head
(Im Layout einen CMS_Container[x] im Header anlegen)

OUTPUT:

Code: Alles auswählen

/*********************************************** 
* CONTENIDO HEAD-MODUL - OUTPUT 
* 
* Modulname   :    Auto iFrame Head-Modul v1.0 
* Author(s)   :     halousi 
* Copyright   :     Johannes Sanwald 
* Created     :     07.11.2005 
************************************************/ 

<script type="text/javascript"> 

/*********************************************** 
* IFrame SSI script II- © Dynamic Drive DHTML code library (http://www.dynamicdrive.com) 
* Visit DynamicDrive.com for hundreds of original DHTML scripts 
* This notice must stay intact for legal use 
***********************************************/ 

//Input the IDs of the IFRAMES you wish to dynamically resize to match its content height: 
//Separate each ID with a comma. Examples: ["myframe1", "myframe2"] or ["myframe"] or [] for none: 
var iframeids=["myframe"] 

//Should script hide iframe from browsers that don't support this script (non IE5+/NS6+ browsers. Recommended): 
var iframehide="yes" 

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1] 
var FFextraHeight=parseFloat(getFFVersion)>=0.1? 16 : 0 //extra height in px to add to iframe in FireFox 1.0+ browsers 

function resizeCaller() { 
var dyniframe=new Array() 
for (i=0; i<iframeids.length; i++){ 
if (document.getElementById) 
resizeIframe(iframeids[i]) 
//reveal iframe for lower end browsers? (see var above): 
if ((document.all || document.getElementById) && iframehide=="no"){ 
var tempobj=document.all? document.all[iframeids[i]] : document.getElementById(iframeids[i]) 
tempobj.style.display="block" 
} 
} 
} 

function resizeIframe(frameid){ 
var currentfr=document.getElementById(frameid) 
if (currentfr && !window.opera){ 
currentfr.style.display="block" 
if (currentfr.contentDocument && currentfr.contentDocument.body.offsetHeight) //ns6 syntax 
currentfr.height = currentfr.contentDocument.body.offsetHeight+FFextraHeight; 
else if (currentfr.Document && currentfr.Document.body.scrollHeight) //ie5+ syntax 
currentfr.height = currentfr.Document.body.scrollHeight; 
if (currentfr.addEventListener) 
currentfr.addEventListener("load", readjustIframe, false) 
else if (currentfr.attachEvent){ 
currentfr.detachEvent("onload", readjustIframe) // Bug fix line 
currentfr.attachEvent("onload", readjustIframe) 
} 
} 
} 

function readjustIframe(loadevt) { 
var crossevt=(window.event)? event : loadevt 
var iframeroot=(crossevt.currentTarget)? crossevt.currentTarget : crossevt.srcElement 
if (iframeroot) 
resizeIframe(iframeroot.id); 
} 

function loadintoIframe(iframeid, url){ 
if (document.getElementById) 
document.getElementById(iframeid).src=url 
} 

if (window.addEventListener) 
window.addEventListener("load", resizeCaller, false) 
else if (window.attachEvent) 
window.attachEvent("onload", resizeCaller) 
else 
window.onload=resizeCaller 

</script>
2. Modul für das Iframe

INPUT:

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :    Auto iFrame-Modul v 1.0 
* Basismodul : MOD_IFRAME_PICKER by Stefan Bürk 
*
* Author: SkyBlader 
* Modified By: halousi, 07-11-2005
* Created     :     26-04-2004

************************************************/ 
$moddir         =   "iframedata/"; 

// VALUES 
$sky_selectedfile   =   "CMS_VALUE[4000]"; 
$sky_iframe_width   =    "CMS_VALUE[4001]"; 
$sky_iframe_height      =    "CMS_VALUE[4002]"; 
$sky_iframe_border      =    "CMS_VALUE[4003]"; 
$sky_iframe_style       =    "CMS_VALUE[4004]";   // not used till yet 
$sky_iframe_class       =    "CMS_VALUE[4005]";   // not used till yet 
$sky_iframe_httpinput   =    "CMS_VALUE[4006]"; 

// VARIABLES 
$sky_selectedfile2   =   "CMS_VAR[4000]"; 
$sky_iframe_width2   =    "CMS_VAR[4001]"; 
$sky_iframe_height2     =    "CMS_VAR[4002]"; 
$sky_iframe_border2     =    "CMS_VAR[4003]"; 
$sky_iframe_style2      =    "CMS_VAR[4004]";   // not used till yet 
$sky_iframe_class2      =    "CMS_VAR[4005]";   // not used till yet 
$sky_iframe_httpinput2  =    "CMS_VAR[4006]";    



// starting Modul Options Table 
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">"; 



// ################################################################################################ 
//   START HTTPInput 
// ################################################################################################ 

echo "  <tr valign=\"top\">"; 
echo "    <td>HTTP Link:</td>"; 
echo "    <td>"; 

echo "      <input type=\"text\" name=\"".$sky_iframe_httpinput2."\" value=\"".$sky_iframe_httpinput."\"> ";    

echo "    </td>"; 
echo "  </tr>"; 

// ################################################################################################ 
//   END HTTPInput 
// ################################################################################################ 



// ################################################################################################ 
//   START IFRAME-BORDER 
// ################################################################################################ 
echo "  <tr valign=\"top\">"; 
echo "    <td>IFRAME-Border:</td>"; 
echo "    <td>"; 

echo "      <input type=\"text\" name=\"".$sky_iframe_border2."\" value=\"".$sky_iframe_border."\"> ";    

echo "    </td>"; 
echo "  </tr>"; 
// ################################################################################################ 
//   END IFRAME-BORDER 
// ################################################################################################ 

// closing Module Options Table 
echo "</table>";  
OUTPUT:

Code: Alles auswählen

<?php 

// Lese ausgewählte Datei aus. 
$moddir      =   "upload/iframedata/"; 
$sky_selected_file    = "CMS_VALUE[4000]"; 
$sky_iframe_width   = "CMS_VALUE[4001]"; 
$sky_iframe_heiht       = "CMS_VALUE[4002]"; 
$sky_iframe_border      = "CMS_VALUE[4003]"; 
$sky_iframe_style       = "CMS_VALUE[4004]";   // not used till yet 
$sky_iframe_class       = "CMS_VALUE[4005]";   // not used till yet 
$sky_iframe_httpinput   = "CMS_VALUE[4006]"; 



// Arbeite Einstellungsvariabeln ab 

// ################################################################################### 
// START - IFRAME-BORDER 
if ( strlen($sky_iframe_border) > 0 ) 
{ 
   $ls_iframe_border = $sky_iframe_border; 
} 
else 
{ 
   $ls_iframe_border = "1"; 
} 
// END - IFRAME-BORDER 
// ################################################################################### 


// check for NO FILE Selected 

if ( $sky_selected_file != "--KEIN--" ) 
{ 
   // using selected file 

   // überprüfe ob ausgewählte Datei noch existiert 
   if ( file_exists( $moddir.$sky_selected_file ) ) 
   { 

      // erzeuge IFrame Ausgabecode 
      echo '<iframe id="myframe" src="'.$moddir.$sky_selected_file.'" width="100%" height="100%" frameborder="'.$ls_iframe_border.'" scrolling="no">'; 
      echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>'; 
      echo '</iframe>'; 
   } 
   else 
   { 
      // using HTTP Input 
      echo '<iframe id="myframe" src="'.$sky_iframe_httpinput.'" width="100%" height="100%" frameborder="'.$ls_iframe_border.'" scrolling="no">'; 
      echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>'; 
      echo '</iframe>'; 
   } 
    
} 
else 
{ 
   // using HTTP Input 
   echo '<iframe  id="myframe" src="'.$sky_iframe_httpinput.'" width="100%" height="100%" frameborder="'.$ls_iframe_border.'" scrolling="no">'; 
   echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>'; 
   echo '</iframe>'; 
} 

?>
Das müsste funktionieren. Bei mir tut es das jedenfalls.

Viele Grüße,
halousi
Zuletzt geändert von halousi am Mo 28. Nov 2005, 14:56, insgesamt 3-mal geändert.

Dave.82
Beiträge: 37
Registriert: Fr 14. Okt 2005, 15:27
Wohnort: Emmelshausen (Hunsrück)
Kontaktdaten:

Beitrag von Dave.82 » Mi 9. Nov 2005, 11:12

Hinweis: Das Modul funktioniert bei mir auch mit Con-Version 4.4.5

http://contenido.org/forum/viewtopic.php?p=60222#60222

SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader » Sa 26. Nov 2005, 23:06

also lieber halousi,

ich find es irgendwo schon eine Frechheit, ein Modul von jemand anderen zu nehmen, den Autoren/Modulnamen vermerk zu änder, aber ansonsten das restliche Modul so ziemlich ohne Änderung einfach zu übernehemn und dann im selben Forum, in dem das Orginal Modul pupliziert wurde zu posten.

Es geht um dein "2.tes Modul" in deinem Thread

---> http://www.contenido.de/forum/viewtopic.php?t=4861

Kommt dir das irgendwie bekannt vor ?

Ich finds eigentlich nur hammer, das du dir nciht mal die Mühe gemacht hast die Variabel Namen umzuändern.

Btw. SKY_XXX VarNamen ... das Sky ist der kürzel meines nicks ;)

also wenn schon Änderungen am modul, dann bitte auch ein Hinweis woher das Grundmodul ist ... ( okay, hats nicht als GPL/LGPL oder ähnlihces gestellt, aber so offensichtlich ist es ja doch eien Frechheit )

so long

Stefan
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Sa 26. Nov 2005, 23:15

SkyBlader hat geschrieben:Btw. SKY_XXX VarNamen ... das Sky ist der kürzel meines nicks ;)
So kommt man Plagiatoren auf die Schliche. :wink:
Nebenbei: es gibt auch die Moeglichkeit, weitere Zeilen in die Beschreibung einzufuegen (schliesslich hat er genug geloescht), wie z.B. "Modified by:", statt den Namen beim "Author" zu aendern.
Es kommt schon manchmal vor, dass man nicht weiss, von wem ein Modul stammt, aber das wird hier wohl bei der Beschreibung in Skys Thread kaum der Fall gewesen sein.

MyAccount
Beiträge: 383
Registriert: Do 17. Jul 2003, 10:21

Beitrag von MyAccount » Sa 26. Nov 2005, 23:59

Da schließe ich mich Halchteranerin an. Ich weiß auch nicht mehr, wo meine ganzen Module her sind. ;-) Und Comments hab ich da eh meist weggetuned. Aber den Autoren überschreiben?! Pfui.

halousi
Beiträge: 111
Registriert: Mi 30. Mär 2005, 15:31
Kontaktdaten:

Beitrag von halousi » So 27. Nov 2005, 19:26

sorry, ich hatte keine ahnung mehr von wem das ur-modul war!

werd dich selbsverständlich sofort als autor einfügen.

halousi
Beiträge: 111
Registriert: Mi 30. Mär 2005, 15:31
Kontaktdaten:

Beitrag von halousi » Mo 28. Nov 2005, 09:25

also nochmals zu den vorwürfen von Halchteranerin.

wie du selber sehen kannst war der copyright hinweis für dein modul nur in der modulbeschreibung eingefügt. leider hab ich mir die modulbeschreibung damals nicht mit kopiert und konnte mich an den autor nicht mehr erinnern (ok, mein fehler). ich habe also nichts gelöscht, sondern nur eingefügt was nicht vorhanden war.

und bitte, ich muss mich hier nicht gleich beschimpfen lassen. ich stelle hier "neues" modul zur freien verfügung welches auf einem anderen (deinem) modul aufbaut. du kannst mir glauben, daß mir mein name im copyright völlig egal ist. außerdem ist dieses modul eigentlich keine modifikation oder erweiterung, sondern eine völlig neue funktion.
also, was soll ich schreiben: modified? changed? updated? ich denke das trifft alles nicht wirklich zu, oder?

ch finds eigentlich nur hammer, das du dir nciht mal die Mühe gemacht hast die Variabel Namen umzuändern.
nun, wozu soll ich die variabeln ändern? ich kann das natürlich machen, aber was bringt dir das?

also nochmals, ich entschuldige mich dafür dein modul als grundlage genommen zu haben und habe dich als autor eingefügt.

ich denke dieses cms-projekt basiert darauf, daß viele unterschiedliche anwender sich an der entwicklung von modulen und erweiterungen beteiligen. ich freue mich über alle neuen funktionen und module die hier zur verfügung gestellt werden, egal von wem. es geht hier um gemeinschaftliches arbeiten und nicht darum sich zu profilieren.

HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB » Mo 28. Nov 2005, 14:50

Das ist jetzt keine Erwiderung. Es ist alles gesagt und es ist Ok, denke ich.

Bitte formuliere es in den relevanten Modulen (d.h. ändere Deinen ersten Beitrag) z.B. so:

Author: SkyBlader
Modified By: halousi, <Datum>

Ein Link zum Original und zu Diese Thread ist nicht schlecht, ich würde es übrigens alles in die Beschreibung packen...

Nein, Variablen braucht man natürlich nicht umbenennen (da war mehr die Heimtücke unterstellt, die aber - natürlich - nicht vorhanden war).

Da es sich um ein Modul-Thread handelt, bleibt er offen; ab jetzt bitte aber nur noch das Modul betreffende Beiträge. Danke.

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net

SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader » Sa 7. Jan 2006, 18:06

sry wenn ich vlt etwas überreagiert habe, aber zu dem Zeitpunkt war ich dennoch etwas gekränkt.

Klar stellt man hier ind er Community module zur verfügung, aber nach wie vor, es ist ja kein muß. Wenn man dies aber tut, möchte der ein oder andere auch sein Name dadrin stehen haben, damit andere ggf. wissen bei wem sie support dazu bekommen oder auch nicht.
und bitte, ich muss mich hier nicht gleich beschimpfen lassen. ich stelle hier "neues" modul zur freien verfügung welches auf einem anderen (deinem) modul aufbaut. du kannst mir glauben, daß mir mein name im copyright völlig egal ist. außerdem ist dieses modul eigentlich keine modifikation oder erweiterung, sondern eine völlig neue funktion.
also, was soll ich schreiben: modified? changed? updated? ich denke das trifft alles nicht wirklich zu, oder?
öhm sry ... aber wenn es eine komplett neue funktion hat, warum hast dann nicht gleich das gästebuch modul als basis modul geniommen ? .... scherz beiseite, modified trifft es schon, vlt auch eher "shorted" oder "shrinked" *gg* schmeiß bitte aber auch die in deiner abgeänderteten version die unnötigen variabeln noch raus, da du ja nur 2 Variabeln noch benutzt. Könnte sonst bei etwas unerfahreneren Codern zu verständnisproblemen führen.

Ansonsten werd ich mir dein Modul mal antesten wenn ich Zeit und gelegenheit dazu habe.

so long

Stefan
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x

votapero
Beiträge: 63
Registriert: Do 9. Mär 2006, 15:04
Kontaktdaten:

Beitrag von votapero » Do 28. Dez 2006, 08:16

Hallo allerseits.
Gibt es eine möglichkeit, das "sky_selected_file" als Parameter mitzugeben?
Ich möchte das Modul in einer Seite nutzen, das File, welches dann aber im iFrame geladen werden soll, möchte ich als Parameter mitgeben.
So im Stil : http://www.muster.com/front_content.php ... /index.php

Der Artikel 178 nutzt das Template mit iFrame.

Danke für eure hilfe.

SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader » Di 2. Jan 2007, 18:52

kannst ja mal als OUTPUT folgednes probieren, könnte für deinen zwekc klappen, aber ohne es getestet zu haben:

ajo, die http_input funktionalitäöt ist dann aber auch weg, und im Modul Configurator bei Artikeln/Cats sind die SelectBoxen nun auch überflüssig, aber da hatte ich jetzt keine lust was zu ändenr, sind halt dann einfahc blind und wurscht was da drinsteht ;)

Wobei ja der Sinn des Moduls darin ebstenad, die auswahl anhand des Upload Ordners zu machen ;) ( fehlen würde nur eine DBFS unterstützung, da bin ich aber an meinem origanl ifram modul grad dran wenn ich endlich mal wieder zeit für contenido finde ).

Code: Alles auswählen

<?php 

// Lese ausgewählte Datei aus. 
$sky_iframe_width   = "CMS_VALUE[4001]"; 
$sky_iframe_heiht       = "CMS_VALUE[4002]"; 
$sky_iframe_border      = "CMS_VALUE[4003]"; 
$sky_iframe_style       = "CMS_VALUE[4004]";   // not used till yet 
$sky_iframe_class       = "CMS_VALUE[4005]";   // not used till yet 




// Arbeite Einstellungsvariabeln ab 

// ################################################################################### 
// START - IFRAME-BORDER 
if ( strlen($sky_iframe_border) > 0 ) 
{ 
   $ls_iframe_border = $sky_iframe_border; 
} 
else 
{ 
   $ls_iframe_border = "1"; 
} 
// END - IFRAME-BORDER 
// ################################################################################### 


// ################################################################################### 
// workaround check
if ( !isset($sky_file_selected_file) ) 
{
	$sky_selected_file = "--KEIN--";
}
// ################################################################################### 

// check for NO FILE Selected 

if ( $sky_selected_file != "--KEIN--" ) 
{ 
   // using selected file 

   // überprüfe ob ausgewählte Datei noch existiert 
   if ( file_exists( $sky_selected_file ) ) 
   { 

      // erzeuge IFrame Ausgabecode 
      echo '<iframe id="myframe" src="'.$sky_selected_file.'" width="100%" height="100%" frameborder="'.$ls_iframe_border.'" scrolling="no">'; 
      echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>'; 
      echo '</iframe>'; 
   } 
   else 
   { 
      // using HTTP Input $sky_selected_file.'" width="100%" height="100%" frameborder="'.$ls_iframe_border.'" scrolling="no">'; 
      echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>'; 
      echo '</iframe>'; 
   } 
    
} 
else 
{ 
   // using HTTP Input 
   echo '<iframe  id="myframe" src="'.$sky_selected_file.'" width="100%" height="100%" frameborder="'.$ls_iframe_border.'" scrolling="no">'; 
   echo '<p>Ihr Browser unterstützt keine IFrames. Bitte aktualisieren Sie ihren Browser.</p>'; 
   echo '</iframe>'; 
} 

?>
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x

votapero
Beiträge: 63
Registriert: Do 9. Mär 2006, 15:04
Kontaktdaten:

Beitrag von votapero » Di 2. Jan 2007, 22:15

Hallo SykBlader

habe deinen Output Code in das Modul kopiert. Soweit alles ok. Aber wie muss ich jetzt die Seite mit dem Modul aufrufen und den Parameter übergeben?

(Kriege immer die Fehlermeldung das die Seite nicht gefunden wird...)
Danke für deinen Hinweis.

SkyBlader
Beiträge: 303
Registriert: Do 18. Mär 2004, 16:23
Wohnort: Ratingen / NRW
Kontaktdaten:

Beitrag von SkyBlader » Mi 3. Jan 2007, 22:07

ausgangspunkt ist die "front_content.php"


also beispielsweise mit

http://www.konklave-der-schatten.de/cms ... .google.de

Das Modul einfach in einem Template einen Container zuweisen, und dann entsprechend einer Kategorie oder Artikel dieses Template zuwesen, die noch übrigen einstellungen in der Modulkonfiguration vornehmen, das Javascrippt / INPUT Code des Modules aus dem anfangs post des threads erstellers solltest du aber nicht vergessen, mein Output code war halt nur die Veränderung des org. posts dieses Threades.

wie gesagt, das ganze war ohne test, muß mal sehn, komm zur Zeit leidder nicht zum Coden, zu viele Kunden haben es verschwitzt rechtzeitig die neuen Programmversionen von Sage zu kaufen, und daher stehen noch ne Menge updates / umstellungen an :(((((
Contenido 4.4.4/4.4.5 - Contenido 4.5.x

Module:sn_multinav für 4.5.x

votapero
Beiträge: 63
Registriert: Do 9. Mär 2006, 15:04
Kontaktdaten:

Beitrag von votapero » Mi 3. Jan 2007, 22:25

Klappt leider nicht (das normale iFrame mit Grössenanpassung funktioniert bei mir tadellos im 4.6.15)

Habe den DHTML Code im Header des Layouts. Dann rufe ich das Modul auf wie du geschrieben hast...aber ich erhalte immer noch im iFrame die meldung, dass das File nicht gefunden wird (404 Error).

Kannst du es bei dir ausführen? Hast du auch die Version 4.6.15?

Huhnduluk
Beiträge: 32
Registriert: Mo 25. Jun 2007, 10:58
Kontaktdaten:

Beitrag von Huhnduluk » Mi 4. Jul 2007, 05:17

gibt es die möglichkeit in dieses script eine abfrage zu inegrieren:
if (externe seite) machHöhe (100%)
else berechneHöhe

hat das jemad schonmal so angepasst?

Gesperrt