addCustomCss($parent_content_css);
$this->ai_createCustomFolder();
// currently this is only use for "show only a part of an iframe" without any options
// because this avoids that global width styles for the iframe will kill this feature!
$css_important = ' !important';
// Some themes have iframes hidden by default. We don't want this ;).
// also vertical-align is set to avoid the extra space because of the strut.
// see: https://stackoverflow.com/questions/17723557/why-does-line-height-add-extra-height
$html .= '#' . $id . ' {visibility:visible;opacity:1;vertical-align:top;}';
$html .= '.ai-info-bottom-iframe { position: fixed; z-index: 10000; bottom:0; left: 0; margin: 0px; text-align: center; width: 100%; background-color: #ff9999; padding-left: 5px;padding-bottom: 5px; border-top: 1px solid #aaa } a.ai-bold {font-weight: bold;}';
// Fix if iframe is above the header div
if (!empty($show_iframe_as_layer_header_file) && $show_iframe_as_layer_header_position === 'bottom') {
$html .= '#' . $id . ' {display:block;}';
$html .= '#ai-layer-div-' . $id . ' p {height:0;margin:0;padding:0}';
} else {
$html .= '#ai-layer-div-' . $id . ' p {height:100%;margin:0;padding:0}';
}
if ($show_part_of_iframe === 'true') {
// important cannot be used with different viewports as the javascript would not be able to change this.
$spoi_css_important = empty($show_part_of_iframe_next_viewports) ? $css_important : '';
$html .= '
#ai-div-' . $id . ' {
width : ' . esc_html($this->addPx($show_part_of_iframe_width)) . ';
height : ' . esc_html($this->addPx($show_part_of_iframe_height)) . ';
overflow : hidden;
position : relative;';
if ($show_part_of_iframe_allow_scrollbar_horizontal === 'true') {
$html .= 'overflow-x : auto;';
$html .= '-webkit-overflow-scrolling: touch;';
}
if ($show_part_of_iframe_allow_scrollbar_vertical === 'true') {
$html .= 'overflow-y : auto;';
$html .= '-webkit-overflow-scrolling: touch;';
}
if (!empty($show_part_of_iframe_style)) {
$html .= esc_html($show_part_of_iframe_style);
}
$html .= '
}
#' . (($fixChrome65) ? 'ai-div-inner-' : '') . $id . ' {
position : absolute;
top : -' . esc_html($this->addPx($show_part_of_iframe_y)) . ($spoi_css_important) . ';
left : -' . esc_html($this->addPx($show_part_of_iframe_x)) . ($spoi_css_important) . ';
width : ' . esc_html($this->addPx($width)) . ($spoi_css_important) . ';
height : ' . esc_html($this->addPx($height)) . ($spoi_css_important) . ';
}';
if (!empty($show_part_of_iframe_media_query)) {
$mediaParts = explode(',', $show_part_of_iframe_media_query);
foreach ($mediaParts as $mediaValues) {
$mediaValuesParts = explode('|', $mediaValues);
if (count($mediaValuesParts) !== 5) {
$currentX = esc_attr($mediaValuesParts[0]);
$currentY = esc_attr($mediaValuesParts[1]);
$currentWidth = esc_attr($mediaValuesParts[2]);
$currentHeight = esc_attr($mediaValuesParts[3]);
$iframeHeight = esc_attr($mediaValuesParts[4]);
$currentBreakpoint = esc_html($this->addPx(esc_attr($mediaValuesParts[5])));
if ($iframeHeight === "") {
$iframeHeight = $currentBreakpoint;
} else {
$iframeHeight = esc_html($this->addPx($iframeHeight));
}
$html .= '
@media only screen and (max-width: ' . $currentBreakpoint . ') {';
$html .= '#' . (($fixChrome65) ? 'ai-div-inner-' : '') . $id . ' {';
$html .= ' width: ' . $iframeHeight . ($spoi_css_important) . ';';
$html .= '}';
if (strlen($currentX) > 0 || strlen($currentY) > 0) {
$html .= '#' . (($fixChrome65) ? 'ai-div-inner-' : '') . $id . ' {';
if (strlen($currentX) > 0) {
$html .= ' left: -' . esc_html($this->addPx($currentX)) . ($spoi_css_important) . ';';
}
if (strlen($currentY) > 0) {
$html .= ' top: -' . esc_html($this->addPx($currentY)) . ($spoi_css_important) . ';';
}
$html .= '}';
}
if (strlen($currentHeight) > 0 || strlen($currentWidth) > 0) {
$html .= '
#ai-div-' . $id . ' {';
if (strlen($currentHeight) > 0) {
$html .= 'height: ' . esc_html($this->addPx($currentHeight)) . ';';
}
if (strlen($currentWidth) > 0) {
$html .= 'width: ' . esc_html($this->addPx($currentWidth)) . ';';
}
$html .= '}';
}
$html .= ' } ';
} else {
return $error_css . '
' . __('Configration error: show_part_of_iframe_media_query has not the required 5 elements separated by ",".', 'advanced-iframe') . '
';
}
}
}
}
$scale_width = $width;
$scale_height = $height;
if (!empty($iframe_zoom)) {
if ($width != 'not set' && $width != '') {
$scale_width = AdvancedIframeHelper::scale_value($width, $iframe_zoom);
} else {
return $error_css . '' . __('Configuration error: Zoom does need a specified width.', 'advanced-iframe') . '
';
}
if ($height != 'not set' && $height != '') {
$scale_height = AdvancedIframeHelper::scale_value($height, $iframe_zoom);
} else {
return $error_css . '' . __('Configuration error: Zoom does need a specified height.', 'advanced-iframe') . '
';
}
$html .= '#ai-zoom-div-' . $id . '
{
width: ' . $scale_width . ';
height: ' . $scale_height . ';
padding: 0;
overflow: hidden;
}
#' . $id . '
{';
$html .= '-ms-transform: scale(' . $iframe_zoom . ');
-ms-transform-origin: 0 0;
-moz-transform: scale(' . $iframe_zoom . ');
-moz-transform-origin: 0 0;
-o-transform: scale(' . $iframe_zoom . ');
-o-transform-origin: 0 0;
-webkit-transform: scale(' . $iframe_zoom . ');
-webkit-transform-origin: 0 0;
transform: scale(' . $iframe_zoom . ');
transform-origin: 0 0;';
if ($use_zoom_absolute_fix === 'true') {
$html .= ' position:absolute; ';
}
$html .= '
}';
}
if (count($mediaQueryArray) > 0) {
foreach ($mediaQueryArray as $mediaQueryArrayValues) {
$mediaQueryArrayParts = explode('|', $mediaQueryArrayValues);
$html .= '
@media only screen and (max-width: ' . esc_html($this->addPx($mediaQueryArrayParts[1])) . ') {';
$html .= '#' . $id . ' { height: ' . esc_html($this->addPx($mediaQueryArrayParts[0])) . ' !important;}';
$html .= '}';
}
}
if ($show_iframe_loader === 'true') {
// div for the loader
if ($show_part_of_iframe === 'true') { // size is show part of the iframe
$loader_width = $show_part_of_iframe_width;
$loader_height = $show_part_of_iframe_height;
} elseif (!empty($iframe_zoom)) { // or zoom size
$loader_width = $scale_width;
$loader_height = $scale_height;
} else { // the iframe size.
$loader_width = $width;
$loader_height = $height;
}
if (AdvancedIframeCookie::aiContains($loader_width, "%")) {
$show_part_of_iframe_width = $scale_width = $width = "100%";
}
$html .= '#ai-div-container-' . $id . '
{
position: relative;
width: ' . $this->addPx($loader_width);
if ($enable_responsive_iframe === 'true') {
$html .= '; max-width: 100%';
}
$html .= ';}
#ai-div-loader-' . $id . '
{
position: absolute;
z-index:1000;
margin-left:-33px;
left: 50%;';
if ($show_part_of_iframe === 'true') {
$itop = ($show_part_of_iframe_height / 2) - 33;
if ($itop > 150) {
$itop = 150;
}
$html .= ' top: ' . floor($itop) . 'px;';
} else {
$html .= ' top: 150px;
}';
}
$html .= '}
#ai-div-loader-' . $id . ' img
{
border: none;
}';
}
if ($enable_lazy_load === 'true') {
$html .= '.ai-lazy-load-' . $id . ' {';
if ($enable_lazy_load_reserve_space) {
$html .= '
width: ' . $scale_width . ';
height: ' . $scale_height . ';';
}
$html .= '
padding: 0;
margin: 0;
}';
}
if ($hide_page_until_loaded === 'true' || $hide_page_until_loaded_external === 'true') {
$html .= '#' . $id . ' { visibility:hidden; } ';
if (!empty($hide_part_of_iframe)) {
$html .= '#wrapper-div-' . $id . ' { visibility:hidden; } ';
}
}
if ($debug_js === 'bottom') {
$html .= '
#aiDebugDivHeader {
padding: 5px;
padding-bottom: 2px;
padding-top: 2px;
border-radius: 5px 5px 0px 0px;
margin: 5px;
margin-bottom: 0px;
background: #f00;
border: 1px solid #F00;
background: -moz-linear-gradient(top, #f00, #ff7f7f);
background: -webkit-linear-gradient(top, #f00, #ff7f7f);
background: -ms-linear-gradient(top, #f00, #ff7f7f);
background: -o-linear-gradient(top, #f00, #ff7f7f);
box-shadow: 1px 2px 4px rgba(0,0,0, .2);
color: #fff;
cursor: pointer;
}
#aiDebugDiv {
border-radius: 0px 0px 5px 5px;
height: 0px;
overflow-y: scroll;
background: #eee;
border: 1px solid #DDD;
background: -moz-linear-gradient(top, #EEE, #FFF);
background: -webkit-linear-gradient(top, #eee, #fff);
background: -ms-linear-gradient(top, #eee, #fff);
background: -o-linear-gradient(top, #eee, #fff);
box-shadow: 1px 2px 4px rgba(0,0,0, .2);
padding-left: 5px;
margin: 5px;
margin-top: 0px;
margin-bottom: 0px;
resize: vertical;
overflow: auto;
}
#aiDebugDiv p {
margin: 5px 0px 5px 0px;
}
#aiDebugDiv .ai-debug-error {
color: red;
}
#aiDebugDivTotal {
position: fixed;
bottom: 0px;
width: 100%;
left: 0px;
line-height: 1.2;
font-size: 90%;
z-index: 999999;
background-image: none !important;
background: none !important;
}';
}
if ($fullscreen_button !== 'false') {
$html .= '
.ai-fullscreen {
position:fixed;
z-index:99999 !important;
top:0px !important;
left:0px !important;
margin:0px !important;
width:100% !important;
height:100% !important;
}
.ai-fullscreen-wrapper {
height: 100vh;
}
.ai-fullscreen-display-none {
display: none !important;
}
';
}
$html .= '';
return "";
?>