1// Vorwort Sepp Kuffer, 2// Laden der youtube-Videos immer mit document.write vgl. 3// <script type="text/javascript">document.write('<div class="embed_youtube">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://www.youtube.com/watch?v=gdvb_4bynUw 61 // wuerde mit dem Replace unten https://www.youtube.com/embed/gdvb_4bynUw?showinfo=0&wmode=transparent 62 63 // Das kontaktiert bereits youtube, wird aber weiter unten in der ready.funktion nur ausgefuehrt, wenn Opt-In passiert ist. 64 // Ist ok. 65 // alert(url); 66 var embed_url = url.replace( "watch?v=", "embed/" ) + "?showinfo=0&wmode=transparent"; 67 // alert(embed_url); 68 // var embed_url = url + "?showinfo=0&wmode=transparent"; 69 // alert(embed_url); 70 71 var embed_code = "<iframe width='492' height='277' src='" + embed_url + "' frameborder='0' allowfullscreen></iframe>"; 72 return embed_code; 73} 74 75jQuery(document).ready(function($) { 76 // If YouTube-Link is found 77 if ( jQuery( ".embed_youtube" ).length ) { 78 var youtube_url = []; 79 var clickIndex = 0; 80 // For each Video-Link 81 for ( var i = 0; i < $( ".embed_youtube" ).length; i = i + 1 ) { 82 // Get URL 83 // youtube_url[i] = $( ".embed_youtube" ).eq( i ).html(); 84 85 // alert(youtube_url[i]); 86 // youtube_url[i] = $( ".embed_youtube" ).eq( i ).html().replace(/^.* src *= *[\"\']?(https?:)?(\/\/www\.youtube\.com\/(embed\/|watch\?v=)\w+).*/,"https:$2"); 87 88 // new regex for more youtube videos 89 youtube_url[i] = $( ".embed_youtube" ).eq( i ).html().replace(/^.* src *= *[\"\']?(https?:)?(\/\/www\.youtube\.com\/(embed\/|watch\?v=)\w+\-?\d?\w+).*/,"https:$2"); 90 91 // alert (youtube_url[i]); 92 93 // Cookie set? 94 if ( read_cookie( "lpbyoutubeembed" ) === "yes" ) { 95 // Create YouTube-iFrame 96 $( ".embed_youtube" ).eq( i ).html( create_embedcode( youtube_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 111 // var youtube_img = youtube_url[i].replace( "https://www.youtube.com/watch?v=", "/templates/lpb/images/youtube/" ) + "/maxresdefault.jpg"; 112 113 // var youtube_img = youtube_url[i].replace( "https://www.youtube.com/watch?v=", "/externmedia/youtube/" ) + "/maxresdefault.jpg"; 114 var youtube_img = youtube_url[i].replace( "https://www.youtube.com/watch?v=", "/images/externmedia/youtube/" ) + "/maxresdefault.jpg"; 115 116 // youtube_img = youtube_img.replace("https://www.youtube.com/embed/", "/templates/lpb/images/youtube/" ); 117 118 // youtube_img = youtube_img.replace("https://www.youtube.com/embed/", "/externmedia/youtube/" ); 119 youtube_img = youtube_img.replace("https://www.youtube.com/embed/", "/images/externmedia/youtube/" ); 120 121 // var youtube_img = youtube_url[i].replace( "/templates/lpb/", "/images/" ) + "/maxresdefault.jpg"; 122 123 124 $(".embed_youtube").eq(i).html( "<img class='embed_youtube_preview' src='" + youtube_img + "' width='492' height='277'>" ); 125 // Initiate dialog 126 if ( $( "html" ).attr( "lang" ) == "en" ) { 127 // English version 128 $( ".embed_youtube" ).eq( i ).append( "<div class='embed_dialog'><h1>Activation required</h1>By clicking on this video, YouTube videos will be shown on the website www.literaturportal-bayern.de in the future. Please note that after activation data are transferred to YouTube. 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='/datenschutzerklaerung/'>More Information</a><br><div class='embed_ok'>Permanent activation</div></div>" ); 129 } 130 else { 131 // German version 132 $( ".embed_youtube" ).eq( i ).append( "<div class='embed_dialog'><h1>Aktivierung erforderlich</h1>Durch das Klicken auf dieses Video werden in Zukunft YouTube-Videos auf www.literaturportal-bayern.de eingeblendet. Wir möchten Sie darauf hinweisen, dass nach der Aktivierung Daten an YouTube ü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='/datenschutzerklaerung/'>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( "lpbyoutubeembed", "yes", 180 ); 139 $( ".embed_dialog" ).remove(); 140 for ( var i = $( ".embed_youtube" ).length-1; i >= 0; i = i - 1 ) { 141 $( ".embed_youtube .embed_youtube_preview" ).eq( i ).replaceWith( create_embedcode( youtube_url[i] ) ); 142 } 143 if ( read_cookie( "lpbyoutubeembed" ) === "yes" ) { 144 $( ".embed_youtube .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_youtube" ).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_youtube .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 YouTube. 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_youtube .embed_settings" ).after( "<div class='embed_settings_box'>Activate permanently and agree with data transfer:<br><input type='checkbox' class='embed_settings_checkbox'>YouTube</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_youtube" ).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_youtube .embed_info" ).after( "<div class='embed_info_box'>Wenn Sie das Feld durch einen Klick aktivieren, werden Informationen an den Betreiber von YouTube ü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_youtube .embed_settings" ).after( "<div class='embed_settings_box'>Dauerhaft aktivieren und Datenübertragung zustimmen:<br><input type='checkbox' class='embed_settings_checkbox'>YouTube</div>" ); 162 } 163 if ( read_cookie( "lpbyoutubeembed" ) === "yes" ) { 164 $( ".embed_youtube .embed_settings_box input" ).prop('checked', true); 165 } 166 167 // On click Info Icon 168 $( ".embed_youtube .embed_info" ).click(function() { 169 clickIndex = $( ".embed_info" ).index( this ); 170 if ( $( ".embed_youtube .embed_info_box" ).eq( clickIndex ).is( ":visible" ) ) { 171 $( ".embed_youtube .embed_info_box" ).eq( clickIndex ).hide(); 172 } 173 else { 174 $( ".embed_youtube .embed_settings_box" ).eq( clickIndex ).hide(); 175 $( ".embed_info_box" ).eq( clickIndex ).show(); 176 } 177 }); 178 179 // On click Settings Icon 180 $( ".embed_youtube .embed_settings" ).click(function() { 181 clickIndex = $( ".embed_settings" ).index( this ); 182 if ( $( ".embed_youtube .embed_settings_box" ).eq( clickIndex ).is( ":visible" ) ) { 183 $( ".embed_youtube .embed_settings_box" ).eq( clickIndex ).hide(); 184 } 185 else { 186 $( ".embed_youtube .embed_info_box" ).eq( clickIndex ).hide(); 187 $( ".embed_settings_box" ).eq( clickIndex ).show(); 188 } 189 }); 190 191 // On click Settings Checkbox 192 $( ".embed_youtube .embed_settings_box :checkbox" ).change(function(){ 193 if ( $(this).prop("checked") ) { 194 $( ".embed_youtube .embed_settings_box input" ).prop('checked', true); 195 set_cookie( "lpbyoutubeembed", "yes", 180 ); 196 $( ".embed_youtube .embed_settings_box" ).hide(); 197 $( ".embed_dialog .embed_ok" ).click(); 198 } 199 else { 200 delete_cookie( "lpbyoutubeembed" ); 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.