1// Vorwort Sepp Kuffer, 2// Laden der vimeo-Videos immer mit document.write vgl. 3// <script type="text/javascript">document.write('<div class="embed_vimeo">https://www.youtube.com/watch?v=gdvb_4bynUw</div>');</script> 4// in 5// https://www.bsb-muenchen.de/aktuelles/article/bsb-navigator-neue-app-der-bayerischen-staatsbibliothek-online/ 6// Laden auf der HTML-Seite mit document.write hat den Sinn, dass ohne aktiviertes Javascript kein Laden. 7// Sonst könnte das Opt-In umgangen werden. 8// Beachte Aufruf per https von youtube https://www.youtube.com/watch?v= 9// ist für das Funktionieren der Ersetzungen unten notwendig 10 11// Der Text im Opt-In verlangt von uns Impressum-Datenschutzerklaerung 12// unter https://www.literaturportal-bayern.de/impressum-datenschutzerklaerung/ 13 14// Pfade fileadmin/media/scripts/BSBYouTubeEmbed/images/settings.png 15// und fileadmin/media/scripts/BSBYouTubeEmbed/images/info.png wuerden wir anpassen (Typo3-Pfade) 16// und natuerlich auch die entsprechende Icons dort hinterlegen. 17 18// cookie habe ich von "bsbyoutubeembed" nach "lpbyoutubeembed" umbenannt. 19 20// css koennte wohl verwendet werden wie es ist. 21 22// Function Set Cookie 23function set_cookie(my_cookie,value,days) { 24 if (days) { 25 var date = new Date(); 26 date.setTime(date.getTime()+(days*24*60*60*1000)); 27 var expires = "; expires="+date.toGMTString(); 28 } 29 else { 30 expires = ""; 31 } 32 document.cookie = my_cookie+"="+value+expires+"; path=/"; 33} 34 35// Function Delete Cookie 36function delete_cookie(my_cookie) { 37 set_cookie(my_cookie,"",-1); 38} 39 40// Function Read Cookie 41function read_cookie(my_cookie) { 42 var my_cookie_eq = my_cookie + "="; 43 var ca = document.cookie.split(';'); 44 for(var i=0;i< ca.length;i++) { 45 var c = ca[i]; 46 while (c.charAt(0)==' ') { 47 c = c.substring(1,c.length); 48 } 49 if (c.indexOf(my_cookie_eq) == 0) { 50 return c.substring(my_cookie_eq.length,c.length); 51 } 52 } 53 return null 54} 55 56// Function Create Embed-Code 57function create_embedcode( url ) { 58 // Sepp Kuffer 59 // Fuer den BSB-Navigator 60 // https://player.vimeo.com/video/67056908 61 // wuerde mit dem Replace unten https://www.youtube.com/embed/gdvb_4bynUw?showinfo=0&wmode=transparent 62 // Das kontaktiert bereits youtube, wird aber weiter unten in der ready.funktion nur ausgefuehrt, 63 // wenn Opt-In passiert ist. 64 // Ist ok. 65 var embed_url = url.replace( "watch?v=", "embed/" ) + "?showinfo=0&wmode=transparent" ; 66 // var embed_url = url + "?showinfo=0&wmode=transparent"; 67 // alert(embed_url); 68 // <iframe src="https://player.vimeo.com/video/67056908" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe> 69 var embed_code = "<iframe width='492' height='277' src='" + embed_url + "' frameborder='0' webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>"; 70 return embed_code; 71} 72 73jQuery(document).ready(function($) { 74 // If Vimeo-Link is found 75 if ( jQuery( ".embed_vimeo" ).length ) { 76 77 var vimeo_url = []; 78 var clickIndex = 0; 79 // For each Video-Link 80 for ( var i = 0; i < $( ".embed_vimeo" ).length; i = i + 1 ) { 81 // Get URL 82 //youtube_url[i] = $( ".embed_youtube" ).eq( i ).text(); 83 // vimeo_url[i] = $( ".embed_vimeo" ).eq( i ).html().replace(/^.* src *= *[\"\']?(https?:)?(\/\/www\.youtube\.com\/(embed\/|watch\?v=)\w+).*/,"https:$2"); 84 // vimeo_url[i] = $( ".embed_vimeo" ).eq( i ).html(); 85 // alert(vimeo_url[i]); // ersetze http://player.vimeo.com/video/80993443 durch 86 vimeo_url[i] = $( ".embed_vimeo" ).eq( i ).html().replace(/^.* ((src)|(data)) *= *[\"\']?(https?:)?(\/\/player\.vimeo\.com\/video\/([0-9]+)).*/,"https:$5"); 87 // vimeo_url[i] = $( ".embed_vimeo" ).eq( i ).html().replace(/^.* data *= *[\"\']?(https?:)?(\/\/player\.vimeo\.com\/video\/([0-9]+)).*/,"https:$2"); 88 // alert (vimeo_url[i]); 89 // beide müssen abgefangen werden, also "src" und "data" 90 91 // <object data="https://player.vimeo.com/video/67056908" type="application/x-shockwave-flash" height="281" width="500"><param name="src" value="https://player.vimeo.com/video/67056908"></object> 92 93 // Cookie set? 94 if ( read_cookie( "lpbvimeoembed" ) === "yes" ) { 95 // Create YouTube-iFrame 96 $( ".embed_vimeo" ).eq( i ).html( create_embedcode( vimeo_url[i] ) ); 97 } 98 else { 99 // Load Image from YouTube-Server ; img.youtube.com via BSB-Proxy on /youtubeimg/ 100 // Sepp Kuffer, Hier kommt im Endeffekt 101 // https://www.bsb-muenchen.de/youtubeimg/vi/gdvb_4bynUw/maxresdefault.jpg 102 // fuer das Ersatzbild fuer youtube zustande. 103 // Hiesse fuer uns wir muessten https://www.literaturportal-bayern.de/youtubeimg/ 104 // anlegen und dort Unterverzeichnisse zur ID (im Beispiel gdvb_4bynUw 105 // und dort das Ãquivalent von 106 // https://www.youtube.com/embed/gdvb_4bynUw?showinfo=0&wmode=transparent 107 // als maxresdefault.jpg ablegen.
108 // Den Pfad koennten wir beibelassen (oder aendern) ID als Unterverzeichnis belaasen wir. 109 110 // var youtube_img = youtube_url[i].replace( "https://www.youtube.com/watch?v=", "/youtubeimg/vi/" ) + "/maxresdefault.jpg"; 111 // var youtube_img = youtube_url[i].replace( "https://www.youtube.com/watch?v=", "/templates/lpb/images/" ) + "/maxresdefault.jpg"; 112 113 // var vimeo_img = vimeo_url[i].replace( "https://player.vimeo.com/video/", "/templates/lpb/images/vimeo/" ) + "/maxresdefault.jpg"; 114 // var vimeo_img = vimeo_url[i].replace( "https://player.vimeo.com/video/", "/externmedia/vimeo/" ) + "/maxresdefault.jpg"; 115 var vimeo_img = vimeo_url[i].replace( "https://player.vimeo.com/video/", "/images/externmedia/vimeo/" ) + "/maxresdefault.jpg"; 116 117 // youtube_img = youtube_img.replace("https://www.youtube.com/embed/", "/templates/lpb/images/" ); 118 119 // vimeo_img = vimeo_img.replace("https://www.youtube.com/embed/", "/templates/lpb/images/" ); 120 // var youtube_img = youtube_url[i].replace( "/templates/lpb/", "/images/" ) + "/maxresdefault.jpg"; 121 122 // $(".embed_youtube").eq(i).html( "<img class='embed_youtube_preview' src='" + youtube_img + "' width='492' height='277'>" ); 123 $(".embed_vimeo").eq(i).html( "<img class='embed_vimeo_preview' src='" + vimeo_img + "' width='492' height='277'>" ); 124 125 // Initiate dialog 126 if ( $( "html" ).attr( "lang" ) == "en" ) { 127 // English version 128 $( ".embed_vimeo" ).eq( i ).append( "<div class='embed_dialog'><h1>Activation required</h1>By clicking on this video, Vimeo videos will be shown on the website www.literaturportal-bayern.de in the future. Please note that after activation data are transferred to Vimeo. You can permanently activate the playing by one click or permanently deactivate the playing again by clicking on the data protection button on the right.<br><a href='/impressum/'>More Information</a><br><div class='embed_ok'>Permanent activation</div></div>" ); 129 } 130 else { 131 // German version 132 $( ".embed_vimeo" ).eq( i ).append( "<div class='embed_dialog'><h1>Aktivierung erforderlich</h1>Durch das Klicken auf dieses Video werden in Zukunft Vimeo-Videos auf www.literaturportal-bayern.de eingeblendet. Wir möchten Sie darauf hinweisen, dass nach der Aktivierung Daten an Vimeo übermittelt werden. Sie können mit einem Klick dauerhaft das Abspielen aktivieren oder im Datenschutzschalter rechts die Aktivierung auch dauerhaft wieder rückgängig machen.<br><a href='/impressum/'>Weitere Informationen</a><br><div class='embed_ok'>Dauerhafte Aktivierung</div></div>" ); 133 } 134 } 135 } 136 // On commit dialog: Create YouTube-iFrame 137 $( ".embed_dialog .embed_ok" ).click(function() { 138 set_cookie( "lpbvimeoembed", "yes", 180 ); 139 $( ".embed_dialog" ).remove(); 140 for ( var i = $( ".embed_vimeo" ).length-1; i >= 0; i = i - 1 ) { 141 $( ".embed_vimeo .embed_vimeo_preview" ).eq( i ).replaceWith( create_embedcode( vimeo_url[i] ) ); 142 } 143 if ( read_cookie( "lpbvimeoembed" ) === "yes" ) { 144 $( ".embed_vimeo .embed_settings_box input" ).prop('checked', true); 145 } 146 }); 147 148 // Create Buttons and Boxes for Info and Settings 149 if ( $( "html" ).attr( "lang" ) == "en" ) { 150 // English version 151 // $( ".embed_youtube" ).prepend( "<ul><li class='embed_settings'><img src='fileadmin/media/scripts/BSBYouTubeEmbed/images/settings.png'></li><li class='embed_info'><img src='fileadmin/media/scripts/BSBYouTubeEmbed/images/info.png'></li></ul>" ); 152 $( ".embed_vimeo" ).prepend( "<ul><li class='embed_settings'><img src='/images/icons/settings.png'></li><li class='embed_info'><img src='/images/icons/info.png'></li></ul>" ); 153 $( ".embed_vimeo .embed_info" ).after( "<div class='embed_info_box'>If you activate the field by clicking on it, information will be transferred to the operator of Vimeo. After placing the check mark, all videos can be viewed permanently without activation in the individual case. By removing the check mark, the permanent activation can be cancelled again.</div>" ); 154 $( ".embed_vimeo .embed_settings" ).after( "<div class='embed_settings_box'>Activate permanently and agree with data transfer:<br><input type='checkbox' class='embed_settings_checkbox'>Vimeo</div>" ); 155 } 156 else { 157 // German version 158 // $( ".embed_youtube" ).prepend( "<ul><li class='embed_settings'>
158<img src='fileadmin/media/scripts/BSBYouTubeEmbed/images/settings.png'></li><li class='embed_info'><img src='fileadmin/media/scripts/BSBYouTubeEmbed/images/info.png'></li></ul>" ); 159 $( ".embed_vimeo" ).prepend( "<ul><li class='embed_settings'><img src='/images/icons/settings.png'></li><li class='embed_info'><img src='/images/icons/info.png'></li></ul>" ); 160 $( ".embed_vimeo .embed_info" ).after( "<div class='embed_info_box'>Wenn Sie das Feld durch einen Klick aktivieren, werden Informationen an den Betreiber von Vimeo übertragen. Nach Setzen des Häkchens können alle Videos dauerhaft ohne nochmalige Aktivierung abgerufen werden. Durch Entfernen des Häkchens können Sie die dauerhafte Aktivierung wieder deaktivieren.</div>" ); 161 $( ".embed_vimeo .embed_settings" ).after( "<div class='embed_settings_box'>Dauerhaft aktivieren und Datenübertragung zustimmen:<br><input type='checkbox' class='embed_settings_checkbox'>Vimeo</div>" ); 162 } 163 if ( read_cookie( "lpbvimeoembed" ) === "yes" ) { 164 $( ".embed_vimeo .embed_settings_box input" ).prop('checked', true); 165 } 166 167 // On click Info Icon 168 $( ".embed_vimeo .embed_info" ).click(function() { 169 clickIndex = $( ".embed_info" ).index( this ); 170 if ( $( ".embed_vimeo .embed_info_box" ).eq( clickIndex ).is( ":visible" ) ) { 171 $( ".embed_vimeo .embed_info_box" ).eq( clickIndex ).hide(); 172 } 173 else { 174 $( ".embed_vimeo .embed_settings_box" ).eq( clickIndex ).hide(); 175 $( ".embed_info_box" ).eq( clickIndex ).show(); 176 } 177 }); 178 179 // On click Settings Icon 180 $( ".embed_vimeo .embed_settings" ).click(function() { 181 clickIndex = $( ".embed_settings" ).index( this ); 182 if ( $( ".embed_vimeo .embed_settings_box" ).eq( clickIndex ).is( ":visible" ) ) { 183 $( ".embed_vimeo .embed_settings_box" ).eq( clickIndex ).hide(); 184 } 185 else { 186 $( ".embed_vimeo .embed_info_box" ).eq( clickIndex ).hide(); 187 $( ".embed_settings_box" ).eq( clickIndex ).show(); 188 } 189 }); 190 191 // On click Settings Checkbox 192 $( ".embed_vimeo .embed_settings_box :checkbox" ).change(function(){ 193 if ( $(this).prop("checked") ) { 194 $( ".embed_vimeo .embed_settings_box input" ).prop('checked', true); 195 set_cookie( "lpbvimeoembed", "yes", 180 ); 196 $( ".embed_vimeo .embed_settings_box" ).hide(); 197 $( ".embed_dialog .embed_ok" ).click(); 198 } 199 else { 200 delete_cookie( "lpbvimeoembed" ); 201 location.reload(); 202 } 203 }); 204 205 } 206}); 207
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.