PageSourceSearch

https://www.literaturportal-bayern.de/templates/yoo_master2/styles/lpb/js/lpb_vimeo_embed.js

js literaturportal-bayern.de collected 2026-10-02 06:58:51 UTC 12,398 bytes, 207 lines download raw bytes

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&ouml;chten Sie darauf hinweisen, dass nach der Aktivierung Daten an Vimeo &uuml;bermittelt werden. Sie k&ouml;nnen mit einem Klick dauerhaft das Abspielen aktivieren oder im Datenschutzschalter rechts die Aktivierung auch dauerhaft wieder r&uuml;ckg&auml;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 &uuml;bertragen. Nach Setzen des H&auml;kchens k&ouml;nnen alle Videos dauerhaft ohne nochmalige Aktivierung abgerufen werden. Durch Entfernen des H&auml;kchens k&ouml;nnen Sie die dauerhafte Aktivierung wieder deaktivieren.</div>" );
161			$( ".embed_vimeo .embed_settings" ).after( "<div class='embed_settings_box'>Dauerhaft aktivieren und Daten&uuml;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.