2009-02-27 03:41:21 +01:00
< ? php
class IFramePage extends Page {
static $db = array (
'IFrameUrl' => 'Text' ,
'DynamicHeight' => 'Boolean' ,
2009-06-04 04:35:03 +02:00
'FixedHeight' => 'Int' ,
'AlternateContent' => 'HTMLText' ,
'BottomContent' => 'HTMLText'
2009-02-27 03:41:21 +01:00
);
function getCMSFields () {
$fields = parent :: getCMSFields ();
2012-06-01 07:21:05 +02:00
$fields -> removeFieldFromTab ( 'Root.Main' , 'Content' );
$fields -> addFieldToTab ( 'Root.Main' , new TextField ( 'IFrameUrl' , 'IFrame URL' ));
$fields -> addFieldToTab ( 'Root.Main' , new CheckboxField ( 'DynamicHeight' , 'Dynamically resize the IFrame height (this doesn\'t work if IFrame URL is on a different domain)' ));
$fields -> addFieldToTab ( 'Root.Main' , new NumericField ( 'FixedHeight' , 'Fixed Height (in pixels)' ));
$fields -> addFieldToTab ( 'Root.Main' , new HtmlEditorField ( 'Content' , 'Content (appears above IFrame)' ));
$fields -> addFieldToTab ( 'Root.Main' , new HtmlEditorField ( 'BottomContent' , 'Content (appears below IFrame)' ));
$fields -> addFieldToTab ( 'Root.Main' , new HtmlEditorField ( 'AlternateContent' , 'Alternate Content (appears when user has IFrames disabled)' ));
2009-02-27 03:41:21 +01:00
return $fields ;
2012-06-01 07:21:05 +02:00
}
2009-02-27 03:41:21 +01:00
}
class IFramePage_Controller extends Page_Controller {
2012-06-01 07:21:05 +02:00
function init () {
parent :: init ();
if ( $this -> DynamicHeight ) {
Requirements :: customScript ( <<< SCRIPT
2009-02-27 03:41:21 +01:00
2012-06-01 07:21:05 +02:00
if ( typeof jQuery !== 'undefined' ) {
jQuery ( function ( $ ) {
var iframe = $ ( 'iframe.iframeautosize' );
iframe . load ( function () {
var iframeSize = $ ( iframe [ 0 ] . contentWindow . document . body ) . height ();
iframeSize = ( parseInt ( iframeSize ) + 100 ) + 'px' ;
iframe . attr ( 'height' , iframeSize );
});
});
}
2009-02-27 03:41:21 +01:00
2012-06-01 07:21:05 +02:00
SCRIPT
);
}
}
}