PluginProbe
iframe / 6.0
iframe v6.0
trunk 1.0.0 1.1.0 1.2.0 1.3.0 1.4.0 1.5.0 1.6.0 1.7 1.8 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 3.0 4.0 4.1 4.2 4.3 All 35 releases
iframe / iframe.php

iframe.php in iframe 6.0, at iframe.php

105 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /*
3 Plugin Name: iframe
4 Plugin URI: http://wordpress.org/plugins/iframe/
5 Description: [iframe src="http://www.youtube.com/embed/7_nAZQt9qu0" width="100%" height="500"] shortcode
6 Version: 6.0
7 Author: webvitaly
8 Author URI: http://web-profile.net/wordpress/plugins/
9 License: GPLv3
10 */
11
12 if ( ! defined( 'ABSPATH' ) ) { // Avoid direct calls to this file and prevent full path disclosure
13 exit;
14 }
15
16 define('IFRAME_PLUGIN_VERSION', '6.0');
17
18 // Load settings page functionality
19 require_once( plugin_dir_path( __FILE__ ) . 'iframe-settings.php' );
20
21
22 function iframe_plugin_add_shortcode_cb( $atts ) {
23 // Get plugin settings
24 $settings = iframe_plugin_get_settings();
25
26 $defaults = array(
27 //'src' => 'http://www.youtube.com/embed/7_nAZQt9qu0',
28 'width' => '100%',
29 'height' => '500',
30 'scrolling' => 'yes',
31 'class' => 'iframe-class',
32 'frameborder' => '0',
33 'loading' => $settings['loading'] // Global setting from settings array
34 );
35
36 if ( ! is_array( $atts ) ) {
37 $atts = array();
38 }
39
40 foreach ( $defaults as $default => $value ) { // add defaults
41 if ( ! @array_key_exists( $default, $atts ) ) { // mute warning with "@" when no params at all
42 $atts[$default] = $value;
43 }
44 }
45
46 $html = "\n".'<!-- iframe plugin v.'.IFRAME_PLUGIN_VERSION.' wordpress.org/plugins/iframe/ -->'."\n";
47 $html .= '<iframe';
48 foreach( $atts as $attr => $value ) {
49 if ( strtolower($attr) == 'src' ) { // sanitize url
50 $value = esc_url( $value );
51 }
52
53 // Remove 'srcdoc' attribute
54 if ( strtolower($attr) == 'srcdoc' ) {
55 continue;
56 }
57
58 // Skip attributes starting with "on". Examples: onload, onmouseover, onfocus, onpageshow, onclick
59 if ( strpos( strtolower( $attr ), 'on' ) === 0 ) {
60 continue;
61 }
62
63 // Skip loading attribute if set to 'none' (browser default)
64 if ( strtolower($attr) == 'loading' && strtolower($value) == 'none' ) {
65 continue;
66 }
67
68 if ($value !== '') { // adding all attributes
69 $html .= ' ' . esc_attr($attr) . '="' . esc_attr($value) . '"';
70 } else { // adding empty attributes
71 $html .= ' ' . esc_attr($attr);
72 }
73 }
74 $html .= '></iframe>'."\n";
75
76 if ( isset( $atts["same_height_as"] ) ) {
77 $html .= '
78 <script>
79 document.addEventListener("DOMContentLoaded", function(){
80 var target_element, iframe_element;
81 iframe_element = document.querySelector("iframe.' . esc_attr( $atts["class"] ) . '");
82 target_element = document.querySelector("' . esc_attr( $atts["same_height_as"] ) . '");
83 iframe_element.style.height = target_element.offsetHeight + "px";
84 });
85 </script>
86 ';
87 }
88
89 return $html;
90 }
91 add_shortcode( 'iframe', 'iframe_plugin_add_shortcode_cb' );
92
93
94 function iframe_plugin_row_meta_cb( $links, $file ) {
95 if ( $file == plugin_basename( __FILE__ ) ) {
96 $row_meta = array(
97 'support' => '<a href="http://web-profile.net/wordpress/plugins/iframe/" target="_blank">' . __( 'Iframe', 'iframe' ) . '</a>',
98 'donate' => '<a href="http://web-profile.net/donate/" target="_blank">' . __( 'Donate', 'iframe' ) . '</a>'
99 );
100 $links = array_merge( $links, $row_meta );
101 }
102 return (array) $links;
103 }
104 add_filter( 'plugin_row_meta', 'iframe_plugin_row_meta_cb', 10, 2 );
105