Changeset 3285863
- Timestamp:
- 05/01/2025 08:45:44 PM (11 months ago)
- Location:
- rsvpify-oembed/trunk
- Files:
-
- 2 edited
-
readme.txt (modified) (1 diff)
-
rsvpify-embedder.php (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
rsvpify-oembed/trunk/readme.txt
r3285859 r3285863 8 8 Requires at least: 5.6 9 9 Tested up to: 6.8 10 Stable tag: 3.0 510 Stable tag: 3.06 11 11 Requires PHP: 7.0 12 12 License: GNU General Public License v3 -
rsvpify-oembed/trunk/rsvpify-embedder.php
r3285859 r3285863 4 4 * Plugin URI: https://wordpress.org/plugins/rsvpify-oembed/ 5 5 * Description: Easily embed your RSVPify event RSVP and ticket forms by pasting your event URL. 6 * Version: 3.0 56 * Version: 3.06 7 7 * Author: RSVPify Inc. 8 8 * Author URI: https://www.rsvpify.com … … 14 14 */ 15 15 16 if ( ! defined( 'ABSPATH' ) ) exit; 16 if ( ! defined( 'ABSPATH' ) ) { 17 exit; 18 } 17 19 18 20 class RsvpifyEmbedder { … … 77 79 </div> 78 80 79 <script >81 <script type="text/javascript"> 80 82 document.addEventListener('DOMContentLoaded', function(){ 83 // Generate new shortcode 81 84 document.getElementById('rsvpify_generate').addEventListener('click', function(){ 82 85 var url = document.getElementById('rsvpify_url').value.trim(); 83 if (!url) return; 84 var sc = '[rsvpify_form url="'+url+'"]'; 85 var item = document.createElement('div'); 86 item.className = 'rsvpify-item'; 87 item.innerHTML = '<code>'+sc+'</code>' 88 + '<button class="button copy-button">Copy</button>' 89 + '<button class="button delete-button"><span class="dashicons dashicons-trash"></span></button>'; 90 document.getElementById('rsvpify_list').appendChild(item); 86 if (! url ) return; 87 var sc = '[rsvpify_form url="'+ url +'"]'; 88 var div = document.createElement('div'); 89 div.className = 'rsvpify-item'; 90 div.innerHTML = 91 '<code>' + sc + '</code>' + 92 '<button class="button copy-button">Copy</button>' + 93 '<button class="button delete-button">' + 94 '<span class="dashicons dashicons-trash"></span></button>'; 95 document.getElementById('rsvpify_list').appendChild(div); 91 96 }); 92 97 98 // Delegate Copy & Delete 93 99 document.getElementById('rsvpify_list').addEventListener('click', function(e){ 94 var c b= e.target.closest('.copy-button');95 if ( cb) {96 var code = c b.parentNode.querySelector('code').innerText;97 navigator.clipboard.writeText( code).then(function(){98 var old = c b.innerText;99 c b.innerText = 'Copied!';100 setTimeout(function(){ c b.innerText = old; }, 2000);100 var copyBtn = e.target.closest('.copy-button'); 101 if ( copyBtn ) { 102 var code = copyBtn.parentNode.querySelector('code').innerText; 103 navigator.clipboard.writeText( code ).then(function(){ 104 var old = copyBtn.innerText; 105 copyBtn.innerText = 'Copied!'; 106 setTimeout(function(){ copyBtn.innerText = old; }, 2000); 101 107 }); 102 108 return; 103 109 } 104 var d b= e.target.closest('.delete-button');105 if ( db) {106 d b.closest('.rsvpify-item').remove();110 var delBtn = e.target.closest('.delete-button'); 111 if ( delBtn ) { 112 delBtn.closest('.rsvpify-item').remove(); 107 113 } 108 114 }); … … 113 119 114 120 public function set_sandbox_attribute( $result, $data, $url ) { 115 if ( empty( $data->provider_url) || 'https://www.rsvpify.com' !== $data->provider_url ) {121 if ( empty( $data->provider_url ) || 'https://www.rsvpify.com' !== $data->provider_url ) { 116 122 return $result; 117 123 } 118 if ( preg_match( '/sandbox=["\']([^"\']+)["\']/', $data->html, $m) ) {124 if ( preg_match( '/sandbox=["\']([^"\']+)["\']/', $data->html, $matches ) ) { 119 125 $result = preg_replace( 120 126 '/sandbox=["\']allow-scripts["\']/', 121 'sandbox="'. esc_attr($m[1]).'"',127 'sandbox="'. esc_attr( $matches[1] ) .'"', 122 128 $result 123 129 ); 124 130 } 125 return str_replace( 'security="restricted"','',$result);131 return str_replace( 'security="restricted"', '', $result ); 126 132 } 127 133 }
Note: See TracChangeset
for help on using the changeset viewer.